I18n::JSON
Export I18n translations to JSON. A perfect fit if you want to export translations to JavaScript.
Installation
Add this line to your application's Gemfile:
gem "i18n-json"
And then execute:
$ bundle
Or install it yourself as:
$ gem install i18n-json
Usage
About patterns:
- Patterns can use
*
as a wildcard and can appear more than once.*
will include everything*.messages.*
- Patterns starting with
!
are excluded.!*.activerecord.*
will exclude all ActiveRecord translations.
The config file:
---
translations:
- file: app/frontend/locales/en.json
patterns:
- "en.*"
- "!en.*.activerecord.errors"
- file: app/frontend/locales/:locale.json
patterns:
- "*"
The Ruby API:
require "i18n-json"
I18nJSON.call(config_file: "config/i18n.yml")
I18nJSON.call(config: config)
The CLI API:
$ i18n-json init --config config/i18n.yml
$ i18n-json export --config config/i18n.yml --require config/boot.rb
Automatically export translations
Using guard
You can also automatically export translations when file changes using guard-i18n-json.
First, add the template to your Guardfile
with the following command:
$ bundle exec guard init i18n_json
Something like this will be added:
guard(:i18n_json,
run_on_start: true,
config_file: "./config/i18n.yml",
require_file: "./config/boot.rb") do
watch(%r{^(app|config)/locales/.+\.(yml|po)$})
watch(%r{^config/i18n.yml$})
watch("Gemfile")
end
Configure file paths accordingly.
Using listen
Create a file under config/initializers/i18n.rb
with the following content:
# frozen_string_literal: true
require "i18n-json/listen"
I18nJSON.listen
The code above will watch for changes based on config/i18n.yml
and
config/locales
. You can customize these options with
I18nJSON.listen(config_file: "config/i18n.yml", locales_dir: "config/locales")
.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run
rake test
to run the tests. You can also run bin/console
for an interactive
prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To
release a new version, update the version number in version.rb
, and then run
bundle exec rake release
, which will create a git tag for the version, push
git commits and tags, and push the .gem
file to
rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/fnando/i18n-json. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.
Code of Conduct
Everyone interacting in the I18n::Json project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.