rails-i18n 0.1.0 → 5.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +439 -0
- data/MIT-LICENSE.txt +1 -1
- data/README.md +104 -48
- data/lib/rails-i18n.rb +1 -4
- data/lib/rails_i18n.rb +2 -0
- data/lib/rails_i18n/common_pluralizations/east_slavic.rb +42 -0
- data/lib/rails_i18n/common_pluralizations/one_other.rb +19 -0
- data/lib/rails_i18n/common_pluralizations/one_two_other.rb +28 -0
- data/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb +19 -0
- data/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb +20 -0
- data/lib/rails_i18n/common_pluralizations/other.rb +17 -0
- data/lib/rails_i18n/common_pluralizations/romanian.rb +28 -0
- data/lib/rails_i18n/common_pluralizations/west_slavic.rb +27 -0
- data/lib/rails_i18n/railtie.rb +33 -0
- data/lib/rails_i18n/unicode.rb +1 -0
- data/rails/locale/af.yml +213 -0
- data/rails/locale/ar.yml +256 -204
- data/rails/locale/az.yml +203 -0
- data/rails/locale/be.yml +269 -0
- data/rails/locale/bg.yml +176 -302
- data/rails/locale/bn.yml +176 -0
- data/rails/locale/bs.yml +232 -141
- data/rails/locale/ca.yml +176 -230
- data/rails/locale/cs.yml +218 -0
- data/rails/locale/cy.yml +222 -197
- data/rails/locale/da.yml +183 -211
- data/rails/locale/de-AT.yml +191 -166
- data/rails/locale/de-CH.yml +190 -165
- data/rails/locale/de-DE.yml +219 -0
- data/rails/locale/de.yml +190 -201
- data/rails/locale/el-CY.yml +202 -0
- data/rails/locale/el.yml +178 -149
- data/rails/locale/en-AU.yml +193 -198
- data/rails/locale/en-CA.yml +215 -0
- data/rails/locale/en-CY.yml +215 -0
- data/rails/locale/en-GB.yml +192 -197
- data/rails/locale/en-IE.yml +215 -0
- data/rails/locale/en-IN.yml +215 -0
- data/rails/locale/en-NZ.yml +215 -0
- data/rails/locale/en-US.yml +193 -200
- data/rails/locale/en-ZA.yml +215 -0
- data/rails/locale/en.yml +215 -0
- data/rails/locale/eo.yml +165 -189
- data/rails/locale/es-419.yml +219 -0
- data/rails/locale/es-AR.yml +190 -190
- data/rails/locale/es-CL.yml +195 -200
- data/rails/locale/es-CO.yml +189 -190
- data/rails/locale/es-CR.yml +219 -0
- data/rails/locale/es-EC.yml +219 -0
- data/rails/locale/es-ES.yml +219 -0
- data/rails/locale/es-MX.yml +189 -197
- data/rails/locale/es-NI.yml +219 -0
- data/rails/locale/es-PA.yml +219 -0
- data/rails/locale/es-PE.yml +200 -151
- data/rails/locale/es-US.yml +219 -0
- data/rails/locale/es-VE.yml +219 -0
- data/rails/locale/es.yml +198 -204
- data/rails/locale/et.yml +183 -236
- data/rails/locale/eu.yml +187 -201
- data/rails/locale/fa.yml +183 -199
- data/rails/locale/fi.yml +188 -202
- data/rails/locale/fr-CA.yml +185 -195
- data/rails/locale/fr-CH.yml +185 -192
- data/rails/locale/fr-FR.yml +217 -0
- data/rails/locale/fr.yml +184 -189
- data/rails/locale/gl.yml +172 -0
- data/rails/locale/he.yml +176 -205
- data/rails/locale/hi-IN.yml +172 -197
- data/rails/locale/hi.yml +172 -197
- data/rails/locale/hr.yml +224 -143
- data/rails/locale/hu.yml +173 -192
- data/rails/locale/id.yml +193 -168
- data/rails/locale/is.yml +192 -206
- data/rails/locale/it-CH.yml +202 -0
- data/rails/locale/it.yml +192 -215
- data/rails/locale/ja.yml +184 -205
- data/rails/locale/ka.yml +211 -0
- data/rails/locale/km.yml +167 -0
- data/rails/locale/kn.yml +172 -198
- data/rails/locale/ko.yml +182 -205
- data/rails/locale/lb.yml +209 -0
- data/rails/locale/lo.yml +221 -227
- data/rails/locale/lt.yml +204 -167
- data/rails/locale/lv.yml +199 -187
- data/rails/locale/mk.yml +184 -140
- data/rails/locale/ml.yml +210 -0
- data/rails/locale/mn.yml +180 -177
- data/rails/locale/mr-IN.yml +207 -0
- data/rails/locale/ms.yml +202 -0
- data/rails/locale/nb.yml +184 -189
- data/rails/locale/ne.yml +205 -0
- data/rails/locale/nl.yml +190 -203
- data/rails/locale/nn.yml +186 -117
- data/rails/locale/oc.yml +212 -0
- data/rails/locale/or.yml +196 -0
- data/rails/locale/pa.yml +208 -0
- data/rails/locale/pl.yml +217 -210
- data/rails/locale/pt-BR.yml +200 -216
- data/rails/locale/pt.yml +216 -0
- data/rails/locale/rm.yml +194 -147
- data/rails/locale/ro.yml +185 -187
- data/rails/locale/ru.yml +244 -351
- data/rails/locale/sk.yml +210 -235
- data/rails/locale/sl.yml +198 -222
- data/rails/locale/sq.yml +208 -0
- data/rails/locale/sr.yml +224 -141
- data/rails/locale/sv-SE.yml +191 -257
- data/rails/locale/sv.yml +207 -0
- data/rails/locale/sw.yml +174 -202
- data/rails/locale/ta.yml +208 -0
- data/rails/locale/te.yml +215 -0
- data/rails/locale/th.yml +170 -0
- data/rails/locale/tl.yml +202 -0
- data/rails/locale/tr.yml +189 -157
- data/rails/locale/tt.yml +218 -0
- data/rails/locale/ug.yml +207 -0
- data/rails/locale/uk.yml +245 -330
- data/rails/locale/ur.yml +209 -0
- data/rails/locale/uz.yml +254 -0
- data/rails/locale/vi.yml +187 -226
- data/rails/locale/wo.yml +208 -0
- data/rails/locale/zh-CN.yml +154 -223
- data/rails/locale/zh-HK.yml +213 -0
- data/rails/locale/zh-TW.yml +180 -217
- data/rails/locale/zh-YUE.yml +213 -0
- data/rails/pluralization/ak.rb +3 -0
- data/rails/pluralization/am.rb +3 -0
- data/rails/pluralization/ar.rb +32 -0
- data/rails/pluralization/az.rb +3 -0
- data/rails/pluralization/be.rb +3 -0
- data/rails/pluralization/bg.rb +3 -0
- data/rails/pluralization/bh.rb +3 -0
- data/rails/pluralization/bm.rb +3 -0
- data/rails/pluralization/bn.rb +3 -0
- data/rails/pluralization/bo.rb +3 -0
- data/rails/pluralization/br.rb +31 -0
- data/rails/pluralization/bs.rb +3 -0
- data/rails/pluralization/by.rb +3 -0
- data/rails/pluralization/ca.rb +3 -0
- data/rails/pluralization/cs.rb +3 -0
- data/rails/pluralization/cy.rb +24 -0
- data/rails/pluralization/da.rb +3 -0
- data/rails/pluralization/de-AT.rb +3 -0
- data/rails/pluralization/de-CH.rb +3 -0
- data/rails/pluralization/de-DE.rb +3 -0
- data/rails/pluralization/de.rb +3 -0
- data/rails/pluralization/dz.rb +3 -0
- data/rails/pluralization/el.rb +3 -0
- data/rails/pluralization/en-AU.rb +3 -0
- data/rails/pluralization/en-CA.rb +3 -0
- data/rails/pluralization/en-GB.rb +3 -0
- data/rails/pluralization/en-IN.rb +3 -0
- data/rails/pluralization/en-NZ.rb +3 -0
- data/rails/pluralization/en.rb +3 -0
- data/rails/pluralization/eo.rb +3 -0
- data/rails/pluralization/es-419.rb +3 -0
- data/rails/pluralization/es-AR.rb +3 -0
- data/rails/pluralization/es-CL.rb +3 -0
- data/rails/pluralization/es-CO.rb +3 -0
- data/rails/pluralization/es-CR.rb +3 -0
- data/rails/pluralization/es-EC.rb +3 -0
- data/rails/pluralization/es-ES.rb +3 -0
- data/rails/pluralization/es-MX.rb +3 -0
- data/rails/pluralization/es-NI.rb +3 -0
- data/rails/pluralization/es-PA.rb +3 -0
- data/rails/pluralization/es-PE.rb +3 -0
- data/rails/pluralization/es-US.rb +3 -0
- data/rails/pluralization/es-VE.rb +3 -0
- data/rails/pluralization/es.rb +3 -0
- data/rails/pluralization/et.rb +3 -0
- data/rails/pluralization/eu.rb +3 -0
- data/rails/pluralization/fa.rb +3 -0
- data/rails/pluralization/ff.rb +3 -0
- data/rails/pluralization/fi.rb +3 -0
- data/rails/pluralization/fr-CA.rb +3 -0
- data/rails/pluralization/fr-CH.rb +3 -0
- data/rails/pluralization/fr-FR.rb +3 -0
- data/rails/pluralization/fr.rb +3 -0
- data/rails/pluralization/ga.rb +27 -0
- data/rails/pluralization/gd.rb +25 -0
- data/rails/pluralization/gl.rb +3 -0
- data/rails/pluralization/guw.rb +3 -0
- data/rails/pluralization/gv.rb +22 -0
- data/rails/pluralization/he.rb +3 -0
- data/rails/pluralization/hi-IN.rb +3 -0
- data/rails/pluralization/hi.rb +3 -0
- data/rails/pluralization/hr.rb +3 -0
- data/rails/pluralization/hsb.rb +28 -0
- data/rails/pluralization/hu.rb +3 -0
- data/rails/pluralization/id.rb +3 -0
- data/rails/pluralization/ig.rb +3 -0
- data/rails/pluralization/ii.rb +3 -0
- data/rails/pluralization/is.rb +3 -0
- data/rails/pluralization/it-CH.rb +3 -0
- data/rails/pluralization/it.rb +3 -0
- data/rails/pluralization/iu.rb +3 -0
- data/rails/pluralization/ja.rb +3 -0
- data/rails/pluralization/jv.rb +3 -0
- data/rails/pluralization/ka.rb +3 -0
- data/rails/pluralization/kab.rb +3 -0
- data/rails/pluralization/kde.rb +3 -0
- data/rails/pluralization/kea.rb +3 -0
- data/rails/pluralization/km.rb +3 -0
- data/rails/pluralization/kn.rb +3 -0
- data/rails/pluralization/ko.rb +3 -0
- data/rails/pluralization/ksh.rb +23 -0
- data/rails/pluralization/kw.rb +3 -0
- data/rails/pluralization/lag.rb +24 -0
- data/rails/pluralization/ln.rb +3 -0
- data/rails/pluralization/lo.rb +3 -0
- data/rails/pluralization/lt.rb +27 -0
- data/rails/pluralization/lv.rb +22 -0
- data/rails/pluralization/mg.rb +3 -0
- data/rails/pluralization/mk.rb +22 -0
- data/rails/pluralization/ml.rb +3 -0
- data/rails/pluralization/mn.rb +3 -0
- data/rails/pluralization/mo.rb +3 -0
- data/rails/pluralization/mr-IN.rb +3 -0
- data/rails/pluralization/ms.rb +3 -0
- data/rails/pluralization/mt.rb +28 -0
- data/rails/pluralization/my.rb +3 -0
- data/rails/pluralization/naq.rb +3 -0
- data/rails/pluralization/nb.rb +3 -0
- data/rails/pluralization/ne.rb +3 -0
- data/rails/pluralization/nl.rb +3 -0
- data/rails/pluralization/nn.rb +3 -0
- data/rails/pluralization/nso.rb +3 -0
- data/rails/pluralization/oc.rb +3 -0
- data/rails/pluralization/or.rb +3 -0
- data/rails/pluralization/pa.rb +3 -0
- data/rails/pluralization/pl.rb +29 -0
- data/rails/pluralization/pt.rb +3 -0
- data/rails/pluralization/ro.rb +3 -0
- data/rails/pluralization/root.rb +3 -0
- data/rails/pluralization/ru.rb +3 -0
- data/rails/pluralization/sah.rb +3 -0
- data/rails/pluralization/se.rb +3 -0
- data/rails/pluralization/ses.rb +3 -0
- data/rails/pluralization/sg.rb +3 -0
- data/rails/pluralization/sh.rb +3 -0
- data/rails/pluralization/shi.rb +3 -0
- data/rails/pluralization/sk.rb +3 -0
- data/rails/pluralization/sl.rb +28 -0
- data/rails/pluralization/sma.rb +3 -0
- data/rails/pluralization/smi.rb +3 -0
- data/rails/pluralization/smj.rb +3 -0
- data/rails/pluralization/smn.rb +3 -0
- data/rails/pluralization/sms.rb +3 -0
- data/rails/pluralization/sr.rb +3 -0
- data/rails/pluralization/sv-SE.rb +3 -0
- data/rails/pluralization/sv.rb +3 -0
- data/rails/pluralization/sw.rb +3 -0
- data/rails/pluralization/th.rb +3 -0
- data/rails/pluralization/ti.rb +3 -0
- data/rails/pluralization/tl.rb +3 -0
- data/rails/pluralization/to.rb +3 -0
- data/rails/pluralization/tr.rb +3 -0
- data/rails/pluralization/tzm.rb +21 -0
- data/rails/pluralization/uk.rb +3 -0
- data/rails/pluralization/ur.rb +3 -0
- data/rails/pluralization/vi.rb +3 -0
- data/rails/pluralization/wa.rb +3 -0
- data/rails/pluralization/wo.rb +3 -0
- data/rails/pluralization/yo.rb +3 -0
- data/rails/pluralization/zh-CN.rb +3 -0
- data/rails/pluralization/zh-HK.rb +3 -0
- data/rails/pluralization/zh-TW.rb +3 -0
- data/rails/pluralization/zh-YUE.rb +3 -0
- data/rails/pluralization/zh.rb +3 -0
- data/rails/transliteration/az.yml +24 -0
- data/rails/transliteration/bg.yml +64 -0
- data/rails/transliteration/ca.yml +28 -0
- data/rails/transliteration/de.yml +12 -0
- data/rails/transliteration/el.yml +104 -0
- data/rails/transliteration/es.yml +18 -0
- data/rails/transliteration/fa.yml +47 -0
- data/rails/transliteration/fr.yml +36 -0
- data/rails/transliteration/hu.yml +22 -0
- data/rails/transliteration/oc.yml +28 -0
- data/rails/transliteration/pl.yml +22 -0
- data/rails/transliteration/pt.yml +28 -0
- data/rails/transliteration/ro.yml +14 -0
- data/rails/transliteration/ru.rb +93 -0
- data/rails/transliteration/uk.rb +129 -0
- data/rails/transliteration/vi.yml +138 -0
- metadata +376 -118
- data/rails/locale/bn-IN.yml +0 -223
- data/rails/locale/cs.rb +0 -229
- data/rails/locale/dsb.yml +0 -225
- data/rails/locale/fur.yml +0 -184
- data/rails/locale/gl-ES.yml +0 -236
- data/rails/locale/gsw-CH.yml +0 -222
- data/rails/locale/hsb.yml +0 -233
- data/rails/locale/pt-PT.yml +0 -230
- data/rails/locale/sr-Latn.yml +0 -159
- data/rails/locale/th.rb +0 -199
data/README.md
CHANGED
@@ -1,99 +1,144 @@
|
|
1
1
|
Rails Locale Data Repository
|
2
2
|
============================
|
3
3
|
|
4
|
-
|
4
|
+
[![Gem Version](https://badge.fury.io/rb/rails-i18n.svg)](http://badge.fury.io/rb/rails-i18n)
|
5
|
+
[![Build Status](https://secure.travis-ci.org/svenfuchs/rails-i18n.png)](http://travis-ci.org/svenfuchs/rails-i18n)
|
5
6
|
|
6
|
-
|
7
|
+
Centralization of locale data collection for Ruby on Rails.
|
7
8
|
|
8
|
-
|
9
|
+
## Gem Installation
|
9
10
|
|
10
|
-
|
11
|
+
Include the gem to your Gemfile:
|
11
12
|
|
12
|
-
|
13
|
+
gem 'rails-i18n', '~> 5.1' # For 5.0.x, 5.1.x and 5.2.x
|
14
|
+
gem 'rails-i18n', '~> 4.0' # For 4.0.x
|
15
|
+
gem 'rails-i18n', '~> 3.0' # For 3.x
|
16
|
+
gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'master' # For 5.x
|
17
|
+
gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'rails-4-x' # For 4.x
|
18
|
+
gem 'rails-i18n', github: 'svenfuchs/rails-i18n', branch: 'rails-3-x' # For 3.x
|
13
19
|
|
14
|
-
|
20
|
+
Alternatively, execute the following command:
|
15
21
|
|
22
|
+
gem install rails-i18n -v '~> 5.1' # For For 5.0.x, 5.1.x and 5.2.x
|
23
|
+
gem install rails-i18n -v '~> 4.0' # For 4.0.x
|
24
|
+
gem install rails-i18n -v '~> 3.0' # For 3.x
|
16
25
|
|
17
|
-
|
26
|
+
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.
|
18
27
|
|
19
|
-
|
28
|
+
## Configuration
|
29
|
+
|
30
|
+
`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 `I18n.available_locales` option:
|
31
|
+
|
32
|
+
config.i18n.available_locales = ['es-CO', :de]
|
33
|
+
|
34
|
+
or
|
35
|
+
|
36
|
+
config.i18n.available_locales = :nl
|
37
|
+
|
38
|
+
## Manual Installation
|
39
|
+
|
40
|
+
Download desired locale files found in [rails/locale](http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/) directory and move them into the `config/locales` directory of your Rails application.
|
20
41
|
|
21
42
|
If any translation doesn't suit well to the requirements of your application, edit them or add your own locale files.
|
22
43
|
|
23
44
|
For more information, visit [Rails Internationalization (I18n) API](http://guides.rubyonrails.org/i18n.html) on the _RailsGuides._
|
24
45
|
|
25
|
-
|
46
|
+
## Usage on Rails 2.3
|
26
47
|
|
27
|
-
|
28
|
-
> es-AR, es-CL, es-CO, es-MX, es-PE, et, eu, fa, fi, fr, fr-CA, fr-CH, fur, gl-ES,
|
29
|
-
> gsw-CH, he, hi-IN, hr, hsb, hu, id, is, it, ja, kn, ko, lo, lt, lv, mk, mn, nb,
|
30
|
-
> nl, nn, pl, pt-BR, pt-PT, rm, ro, ru, sk, sl, sr, sr-Latn, sv-SE, sw, th,
|
31
|
-
> tr, uk, vi, zh-CN, zh-TW
|
48
|
+
Locale data whose structure is compatible with Rails 2.3 are available on the separate branch [rails-2-3](https://github.com/svenfuchs/rails-i18n/tree/rails-2-3).
|
32
49
|
|
33
|
-
|
50
|
+
## Available Locales
|
34
51
|
|
35
|
-
|
52
|
+
Available locales:
|
36
53
|
|
37
|
-
|
54
|
+
> af, ar, az, be, bg, bn, bs, ca, cs, cy, da, de, de-AT, de-CH, de-DE, el, el-CY,
|
55
|
+
> en, en-AU, en-CA, en-GB, en-IE, en-IN, en-NZ, en-US, en-ZA, en-CY,eo, es,
|
56
|
+
> 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,
|
57
|
+
> et, eu, fa, fi, fr, fr-CA, fr-CH, fr-FR, gl, he, hi, hi-IN, hr, hu, id, is, it,
|
58
|
+
> it-CH, ja, ka, km, kn, ko, lb, lo, lt, lv, mk, ml, mn, mr-IN, ms, nb, ne, nl, nn, oc, or,
|
59
|
+
> pa, pl, pt, pt-BR, rm, ro, ru, sk, sl, sq, sr, sw, ta, te, th, tl, tr, tt, ug,
|
60
|
+
> ur, uz, vi, wo, zh-CN, zh-HK, zh-TW, zh-YUE
|
38
61
|
|
39
|
-
|
62
|
+
Complete locales:
|
63
|
+
|
64
|
+
> af, da, de, de-AT, de-CH, de-DE, en-US, es, es-419, es-AR, es-CL, es-CO, es-CR, es-EC,
|
65
|
+
> es-ES, es-MX, es-NI, es-PA, es-PE, es-US, es-VE, et, fa, fr, fr-CA, fr-CH, fr-FR, id, ja, ka, ml, nb,
|
66
|
+
> nl, nn, pt-BR, sv, sv-SE, tr, zh-CN, zh-HK, zh-TW, zh-YUE, uk
|
67
|
+
|
68
|
+
Currently, most locales are incomplete. Typically they lack the following keys:
|
69
|
+
|
70
|
+
- `activerecord.errors.messages.record_invalid`
|
71
|
+
- `activerecord.errors.messages.restrict_dependent_destroy.has_one`
|
72
|
+
- `activerecord.errors.messages.restrict_dependent_destroy.has_many`
|
73
|
+
- `errors.messages.model_invalid`
|
74
|
+
- `errors.messages.required`
|
40
75
|
|
41
76
|
We always welcome your contributions!
|
42
77
|
|
43
|
-
##
|
78
|
+
## Currency Symbols
|
79
|
+
|
80
|
+
Some locales have the symbol of the currency (e.g. `€`) under the key `number.currency.format.unit`,
|
81
|
+
while others have the code (e.g. `CHF`). The value of the key depends on the widespread adoption of
|
82
|
+
the unicode currency symbols by fonts.
|
83
|
+
|
84
|
+
For example the Turkish Lira sign (`₺`) was recently added in Unicode 6.2 and while most popular
|
85
|
+
fonts have a glyph, there are still many fonts that will not render the character correctly.
|
44
86
|
|
45
|
-
|
87
|
+
If you want to provide a different value, you can create a custom locale file under
|
88
|
+
`config/locales/tr.yml` and override the respective key:
|
46
89
|
|
47
|
-
|
90
|
+
```YAML
|
91
|
+
tr:
|
92
|
+
number:
|
93
|
+
currency:
|
94
|
+
format:
|
95
|
+
unit: TL
|
96
|
+
```
|
48
97
|
|
49
|
-
|
98
|
+
## How to Contribute
|
99
|
+
|
100
|
+
### Quick Contribution
|
101
|
+
|
102
|
+
If you are familiar with GitHub operations, then follow the procedures described in the subsequent sections.
|
103
|
+
|
104
|
+
If not,
|
50
105
|
|
51
106
|
* Save your locale data on the [Gist](http://gist.github.com).
|
52
107
|
* Open an issue with reference to the Gist you created.
|
53
108
|
|
54
|
-
###
|
109
|
+
### Fetching the `rails-i18n` Repository
|
55
110
|
|
56
111
|
* Get a github account and Git program if you haven't. See [Help.Github](http://help.github.com/) for instructions.
|
57
112
|
* Fork `svenfuchs/rails-i18n` repository and clone it into your PC.
|
58
113
|
|
59
|
-
###
|
114
|
+
### Creating or Editing your Locale File
|
60
115
|
|
61
|
-
* Have a look in `rails/locale/en
|
62
|
-
This file is a compound of all translation files in the Rails 2 and 3 packages.
|
63
|
-
Note that we use `&errors_messages` and `<<: *errors_messages` to anchor and merge a part of translation data.
|
116
|
+
* Have a look in `rails/locale/en.yml`, which should be used as the base of your translation.
|
64
117
|
* Create or edit your locale file.
|
65
|
-
Please
|
66
|
-
Also, please pay attention to save your files as UTF-8.
|
67
|
-
|
68
|
-
### Test your locale file
|
69
|
-
|
70
|
-
Before commit and push your changes, test the integrity of your locale file.
|
71
|
-
|
72
|
-
Make sure you have the <code>i18n</code> and <code>thor</code> installed. If you haven't, install them:
|
118
|
+
Please pay attention to save your files as UTF-8.
|
73
119
|
|
74
|
-
|
120
|
+
### Testing your Locale File
|
75
121
|
|
76
|
-
|
122
|
+
Before committing and pushing your changes, test the integrity of your locale file.
|
77
123
|
|
78
|
-
|
124
|
+
bundle exec rake spec
|
79
125
|
|
80
|
-
|
126
|
+
Make sure you have included all translations with:
|
81
127
|
|
82
|
-
|
128
|
+
bundle exec rake i18n-spec:completeness rails/locale/en.yml rails/locale/YOUR_NEW_LOCALE.yml
|
83
129
|
|
84
|
-
|
130
|
+
You can list all complete and incomplete locales:
|
85
131
|
|
86
|
-
|
132
|
+
thor locales:complete
|
133
|
+
thor locales:incomplete
|
87
134
|
|
88
|
-
|
135
|
+
Also, you can list all available locales:
|
89
136
|
|
90
|
-
|
91
|
-
|
92
|
-
thor locales:ready_for 3
|
137
|
+
thor locales:list
|
93
138
|
|
94
|
-
|
139
|
+
You can list all missing keys:
|
95
140
|
|
96
|
-
|
141
|
+
i18n-tasks missing es
|
97
142
|
|
98
143
|
### Edit README.md
|
99
144
|
|
@@ -105,6 +150,17 @@ If you are ready, push the repository into the Github and send us a pull request
|
|
105
150
|
|
106
151
|
We will do the formality check and publish it as quick as we can.
|
107
152
|
|
153
|
+
## See also
|
154
|
+
|
155
|
+
* [devise-i18n](https://github.com/tigrish/devise-i18n)
|
156
|
+
* [will-paginate-i18n](https://github.com/tigrish/will-paginate-i18n)
|
157
|
+
* [kaminari-i18n](https://github.com/tigrish/kaminari-i18n)
|
158
|
+
* [i18n-country-translation](https://github.com/onomojo/i18n-country-translations) for translations of country names
|
159
|
+
* [i18n-timezones](https://github.com/onomojo/i18n-timezones) for translations of Rails time zones
|
160
|
+
* [i18n-spec](https://github.com/tigrish/i18n-spec) for RSpec matchers to test your locale files
|
161
|
+
* [iso](https://github.com/tigrish/iso) for the list of valid language/region codes and their translations
|
162
|
+
* [i18n-tasks](https://github.com/glebm/i18n-tasks)
|
163
|
+
|
108
164
|
## License
|
109
165
|
|
110
166
|
[MIT](https://github.com/svenfuchs/rails-i18n/blob/master/MIT-LICENSE.txt)
|
data/lib/rails-i18n.rb
CHANGED
data/lib/rails_i18n.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
# Originally was implemented by Yaroslav Markin in "russian" gem
|
2
|
+
# (http://github.com/yaroslav/russian)
|
3
|
+
#
|
4
|
+
# Used for Belarusian, Bosnian, Croatian, Russian, Serbian, Serbo-Croatian, Ukrainian.
|
5
|
+
|
6
|
+
module RailsI18n
|
7
|
+
module Pluralization
|
8
|
+
module EastSlavic
|
9
|
+
|
10
|
+
FROM_2_TO_4 = (2..4).to_a.freeze
|
11
|
+
FROM_5_TO_9 = (5..9).to_a.freeze
|
12
|
+
FROM_11_TO_14 = (11..14).to_a.freeze
|
13
|
+
FROM_12_TO_14 = (12..14).to_a.freeze
|
14
|
+
|
15
|
+
def self.rule
|
16
|
+
lambda do |n|
|
17
|
+
n ||= 0
|
18
|
+
mod10 = n % 10
|
19
|
+
mod100 = n % 100
|
20
|
+
|
21
|
+
if mod10 == 1 && mod100 != 11
|
22
|
+
:one
|
23
|
+
elsif FROM_2_TO_4.include?(mod10) && !FROM_12_TO_14.include?(mod100)
|
24
|
+
:few
|
25
|
+
elsif mod10 == 0 || FROM_5_TO_9.include?(mod10) || FROM_11_TO_14.include?(mod100)
|
26
|
+
:many
|
27
|
+
else
|
28
|
+
:other
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.with_locale(locale)
|
34
|
+
{ locale => {
|
35
|
+
:i18n => {
|
36
|
+
:plural => {
|
37
|
+
:keys => [:one, :few, :many, :other],
|
38
|
+
:rule => rule }}}}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Used as "default" pluralization rule
|
2
|
+
|
3
|
+
module RailsI18n
|
4
|
+
module Pluralization
|
5
|
+
module OneOther
|
6
|
+
def self.rule
|
7
|
+
lambda { |n| n == 1 ? :one : :other }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.with_locale(locale)
|
11
|
+
{ locale => {
|
12
|
+
:'i18n' => {
|
13
|
+
:plural => {
|
14
|
+
:keys => [:one, :other],
|
15
|
+
:rule => rule }}}}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Used for Cornish, Inari Sami, Inuktitut, Lule Sami, Nama, Northern Sami,
|
2
|
+
# Sami Language, Skolt Sami, Southern Sami.
|
3
|
+
|
4
|
+
module RailsI18n
|
5
|
+
module Pluralization
|
6
|
+
module OneTwoOther
|
7
|
+
def self.rule
|
8
|
+
lambda do |n|
|
9
|
+
if n == 1
|
10
|
+
:one
|
11
|
+
elsif n == 2
|
12
|
+
:two
|
13
|
+
else
|
14
|
+
:other
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.with_locale(locale)
|
20
|
+
{ locale => {
|
21
|
+
:'i18n' => {
|
22
|
+
:plural => {
|
23
|
+
:keys => [:one, :two, :other],
|
24
|
+
:rule => rule }}}}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Used for French, Fulah, Kabyle.
|
2
|
+
|
3
|
+
module RailsI18n
|
4
|
+
module Pluralization
|
5
|
+
module OneUptoTwoOther
|
6
|
+
def self.rule
|
7
|
+
lambda { |n| n && n >= 0 && n < 2 ? :one : :other }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.with_locale(locale)
|
11
|
+
{ locale => {
|
12
|
+
:'i18n' => {
|
13
|
+
:plural => {
|
14
|
+
:keys => [:one, :other],
|
15
|
+
:rule => rule }}}}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Used in Akan, Amharic, Bihari, Filipino, guw, Hindi, Lingala, Malagasy,
|
2
|
+
# Northen Sotho, Tachelhit, Tagalog, Tigrinya, Walloon.
|
3
|
+
|
4
|
+
module RailsI18n
|
5
|
+
module Pluralization
|
6
|
+
module OneWithZeroOther
|
7
|
+
def self.rule
|
8
|
+
lambda { |n| n == 0 || n == 1 ? :one : :other }
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.with_locale(locale)
|
12
|
+
{ locale => {
|
13
|
+
:'i18n' => {
|
14
|
+
:plural => {
|
15
|
+
:keys => [:one, :other],
|
16
|
+
:rule => rule }}}}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module RailsI18n
|
2
|
+
module Pluralization
|
3
|
+
module Other
|
4
|
+
def self.rule
|
5
|
+
Proc.new { :other }
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.with_locale(locale)
|
9
|
+
{ locale => {
|
10
|
+
:'i18n' => {
|
11
|
+
:plural => {
|
12
|
+
:keys => [:other],
|
13
|
+
:rule => rule }}}}
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Used for Moldavian, Romanian.
|
2
|
+
|
3
|
+
module RailsI18n
|
4
|
+
module Pluralization
|
5
|
+
module Romanian
|
6
|
+
def self.rule
|
7
|
+
lambda do |n|
|
8
|
+
n ||= 0
|
9
|
+
if n == 1
|
10
|
+
:one
|
11
|
+
elsif n == 0 || (1..19).to_a.include?(n % 100)
|
12
|
+
:few
|
13
|
+
else
|
14
|
+
:other
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.with_locale(locale)
|
20
|
+
{ locale => {
|
21
|
+
:'i18n' => {
|
22
|
+
:plural => {
|
23
|
+
:keys => [:one, :few, :other],
|
24
|
+
:rule => rule }}}}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# Used for Czech, Slovak.
|
2
|
+
|
3
|
+
module RailsI18n
|
4
|
+
module Pluralization
|
5
|
+
module WestSlavic
|
6
|
+
def self.rule
|
7
|
+
lambda do |n|
|
8
|
+
if n == 1
|
9
|
+
:one
|
10
|
+
elsif [2, 3, 4].include?(n)
|
11
|
+
:few
|
12
|
+
else
|
13
|
+
:other
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.with_locale(locale)
|
19
|
+
{ locale => {
|
20
|
+
:'i18n' => {
|
21
|
+
:plural => {
|
22
|
+
:keys => [:one, :few, :other],
|
23
|
+
:rule => rule }}}}
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module RailsI18n
|
4
|
+
class Railtie < ::Rails::Railtie #:nodoc:
|
5
|
+
initializer 'rails-i18n' do |app|
|
6
|
+
RailsI18n::Railtie.instance_eval do
|
7
|
+
pattern = pattern_from app.config.i18n.available_locales
|
8
|
+
|
9
|
+
add("rails/locale/#{pattern}.yml")
|
10
|
+
add("rails/pluralization/#{pattern}.rb")
|
11
|
+
add("rails/transliteration/#{pattern}.{rb,yml}")
|
12
|
+
|
13
|
+
init_pluralization_module
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
|
19
|
+
def self.add(pattern)
|
20
|
+
files = Dir[File.join(File.dirname(__FILE__), '../..', pattern)]
|
21
|
+
I18n.load_path.concat(files)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.pattern_from(args)
|
25
|
+
array = Array(args || [])
|
26
|
+
array.blank? ? '*' : "{#{array.join ','}}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.init_pluralization_module
|
30
|
+
I18n.backend.class.send(:include, I18n::Backend::Pluralization)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|