Rails Locale Data Repository
Centralization of locale data collection for Ruby on Rails.
Include the gem to your Gemfile:
gem 'rails-i18n', '~> 7.0.0' # For 7.0.0 gem 'rails-i18n', '~> 6.0' # For 6.x gem 'rails-i18n', '~> 5.1' # For 5.0.x, 5.1.x and 5.2.x gem 'rails-i18n', '~> 4.0' # For 4.0.x gem 'rails-i18n', '~> 3.0' # For 3.x gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'master' # For 5.x gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'rails-4-x' # For 4.x gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'rails-3-x' # For 3.x
Alternatively, execute the following command:
gem install rails-i18n -v '~> 7.0.0' # For 7.0.0 gem install rails-i18n -v '~> 6.0' # For 6.x gem install rails-i18n -v '~> 5.1' # For For 5.0.x, 5.1.x and 5.2.x gem install rails-i18n -v '~> 4.0' # For 4.0.x gem install rails-i18n -v '~> 3.0' # For 3.x
Note that your Ruby on Rails version must be 3.0 or higher in order to install the
rails-i18n gem. For rails 2.x, install it manually as described in the Manual Installation section below.
rails-i18n gem initially loads all available locale files, pluralization and transliteration rules. This default behaviour can be changed. If you specify in
config/environments/* the locales which have to be loaded via
config.i18n.available_locales = ['es-CO', :de]
config.i18n.available_locales = :nl
Download desired locale files found in rails/locale directory and move them into the
config/locales directory of your Rails application.
If any translation doesn't suit well to the requirements of your application, edit them or add your own locale files.
For more information, visit Rails Internationalization (I18n) API on the RailsGuides.
Usage on Rails 2.3
Locale data whose structure is compatible with Rails 2.3 are available on the separate branch rails-2-3.
af, ar, az, be, bg, bn, bs, ca, cs, csb, da, de, de-AT, de-CH, de-DE, dsb, el, el-CY, en, en-AU, en-CA, en-CY, en-GB, en-IE, en-IN, en-NZ, en-TT, en-US, en-ZA, eo, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, eu, fa, fi, fr, fr-CA, fr-CH, fr-FR, fur, fy, gl, gsw-CH, he, hi, hi-IN, hr, hsb, hu, id, is, it, it-CH, ja, ka, kk, km, kn, ko, lb, lo, lt, lv, mg, mk, ml, mn, mr-IN, ms, nb, ne, nl, nn, oc, or, pa, pap-AW, pap-CW, pl, pt, pt-BR, rm, ro, ru, sc, scr, sk, sl, sq, sr, st, sv, sv-SE, sw, ta, te, th, tl, tr, tt, ug, uk, ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUE
da, de, de-AT, de-CH, de-DE, en-US, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC, es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, fa, fr, fr-CA, fr-CH, fr-FR, fy, id, it, ja, ka, ml, nb, nl, nn, pt, pt-BR, sv, sv-SE, tr, zh-CN, zh-HK, zh-TW, zh-YUE, uk
Locales with missing pluralization rules
af, csb, dsb, fur, gsw-CH, lb, rm, scr, sq, te, tt, ug, uz
The cy locale was removed in commit 84f6c6b9b7a3e50df2b1fb1ccf7add329f7eab4f since unfortunately we could not find a Welsh speaker to support it. We would welcome contributions to add it back to the project. The locale is mostly complete for the missing translations please refer to #1006
ak, am, bh, bm, bo, br, by, cy, dz, ff, ga, gd, guw, gv, ig, ii, iu, jv, kab, kde, kea, ksh, kw, lag, ln, mo, mt, my, naq, nso, root, sah, se, ses, sg, sh, shi, sma, smi, smj, smn, sms, ti, to, tzm, wa, yo, zh
The above pluralization rules were removed because they did not have corresponding locale files.
Currently, most locales are incomplete. Typically they lack the following keys:
The following keys should NOT be included:
We always welcome your contributions!
Some locales have the symbol of the currency (e.g.
€) under the key
while others have the code (e.g.
CHF). The value of the key depends on the widespread adoption of
the unicode currency symbols by fonts.
For example the Turkish Lira sign (
₺) was recently added in Unicode 6.2 and while most popular
fonts have a glyph, there are still many fonts that will not render the character correctly.
If you want to provide a different value, you can create a custom locale file under
config/locales/tr.yml and override the respective key:
tr: number: currency: format: unit: TL
How to Contribute
If you are familiar with GitHub operations, then follow the procedures described in the subsequent sections.
- Save your locale data in a Gist.
- Open an issue with reference to the Gist you created.
- Get a github account and Git program if you haven't. See Help.Github for instructions.
svenfuchs/rails-i18nrepository and clone it into your PC.
Creating or Editing your Locale File
- Have a look in
rails/locale/en.yml, which should be used as the base of your translation.
- Create or edit your locale file. Please pay attention to save your files as UTF-8.
Testing your Locale File
Before committing and pushing your changes, test the integrity of your locale file. (You can also run the tests using Docker, see below)
bundle exec rake spec
Make sure you have included all translations with:
bundle exec rake i18n-spec:completeness rails/locale/en.yml rails/locale/YOUR_NEW_LOCALE.yml
Make sure it is normalized with:
thor locales:normalize LOCALE # or "thor locales:normalize_all"
You can list all complete and incomplete locales:
thor locales:complete thor locales:incomplete
Also, you can list all available locales:
You can list all missing keys:
i18n-tasks missing es
Add your locale name to the list in
README.md if it isn't there.
Send pull request
If you are ready, push the repository into the Github and send us a pull request.
We will do the formality check and publish it as quick as we can.
Add an informative title to your pull request or issue
If your pull request or issue concerns a specific locale - please indicate the relevant locale in the issue or pull request title in order to facilitate triage.
Danish: change da.errors.messages.required to "skal udfyldes"
Human precision in Swedish locale file is set to 1
Update es-PE.yml, the currency unit is incorrect
Changing some string about validation
Build the image:
docker build --tag=railsi18n .
Run the tests:
docker run railsi18n
To run the other commands described above:
docker run railsi18n bundle exec rake i18n-spec:completeness rails/locale/en.yml rails/locale/YOUR_NEW_LOCALE.yml
- i18n-country-translation for translations of country names
- i18n-timezones for translations of Rails time zones
- i18n-spec for RSpec matchers to test your locale files
- iso for the list of valid language/region codes and their translations
Tsutomu Kuroda for untiringly taking care of this repository, issues and pull requests