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.
Files changed (297) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +439 -0
  3. data/MIT-LICENSE.txt +1 -1
  4. data/README.md +104 -48
  5. data/lib/rails-i18n.rb +1 -4
  6. data/lib/rails_i18n.rb +2 -0
  7. data/lib/rails_i18n/common_pluralizations/east_slavic.rb +42 -0
  8. data/lib/rails_i18n/common_pluralizations/one_other.rb +19 -0
  9. data/lib/rails_i18n/common_pluralizations/one_two_other.rb +28 -0
  10. data/lib/rails_i18n/common_pluralizations/one_upto_two_other.rb +19 -0
  11. data/lib/rails_i18n/common_pluralizations/one_with_zero_other.rb +20 -0
  12. data/lib/rails_i18n/common_pluralizations/other.rb +17 -0
  13. data/lib/rails_i18n/common_pluralizations/romanian.rb +28 -0
  14. data/lib/rails_i18n/common_pluralizations/west_slavic.rb +27 -0
  15. data/lib/rails_i18n/railtie.rb +33 -0
  16. data/lib/rails_i18n/unicode.rb +1 -0
  17. data/rails/locale/af.yml +213 -0
  18. data/rails/locale/ar.yml +256 -204
  19. data/rails/locale/az.yml +203 -0
  20. data/rails/locale/be.yml +269 -0
  21. data/rails/locale/bg.yml +176 -302
  22. data/rails/locale/bn.yml +176 -0
  23. data/rails/locale/bs.yml +232 -141
  24. data/rails/locale/ca.yml +176 -230
  25. data/rails/locale/cs.yml +218 -0
  26. data/rails/locale/cy.yml +222 -197
  27. data/rails/locale/da.yml +183 -211
  28. data/rails/locale/de-AT.yml +191 -166
  29. data/rails/locale/de-CH.yml +190 -165
  30. data/rails/locale/de-DE.yml +219 -0
  31. data/rails/locale/de.yml +190 -201
  32. data/rails/locale/el-CY.yml +202 -0
  33. data/rails/locale/el.yml +178 -149
  34. data/rails/locale/en-AU.yml +193 -198
  35. data/rails/locale/en-CA.yml +215 -0
  36. data/rails/locale/en-CY.yml +215 -0
  37. data/rails/locale/en-GB.yml +192 -197
  38. data/rails/locale/en-IE.yml +215 -0
  39. data/rails/locale/en-IN.yml +215 -0
  40. data/rails/locale/en-NZ.yml +215 -0
  41. data/rails/locale/en-US.yml +193 -200
  42. data/rails/locale/en-ZA.yml +215 -0
  43. data/rails/locale/en.yml +215 -0
  44. data/rails/locale/eo.yml +165 -189
  45. data/rails/locale/es-419.yml +219 -0
  46. data/rails/locale/es-AR.yml +190 -190
  47. data/rails/locale/es-CL.yml +195 -200
  48. data/rails/locale/es-CO.yml +189 -190
  49. data/rails/locale/es-CR.yml +219 -0
  50. data/rails/locale/es-EC.yml +219 -0
  51. data/rails/locale/es-ES.yml +219 -0
  52. data/rails/locale/es-MX.yml +189 -197
  53. data/rails/locale/es-NI.yml +219 -0
  54. data/rails/locale/es-PA.yml +219 -0
  55. data/rails/locale/es-PE.yml +200 -151
  56. data/rails/locale/es-US.yml +219 -0
  57. data/rails/locale/es-VE.yml +219 -0
  58. data/rails/locale/es.yml +198 -204
  59. data/rails/locale/et.yml +183 -236
  60. data/rails/locale/eu.yml +187 -201
  61. data/rails/locale/fa.yml +183 -199
  62. data/rails/locale/fi.yml +188 -202
  63. data/rails/locale/fr-CA.yml +185 -195
  64. data/rails/locale/fr-CH.yml +185 -192
  65. data/rails/locale/fr-FR.yml +217 -0
  66. data/rails/locale/fr.yml +184 -189
  67. data/rails/locale/gl.yml +172 -0
  68. data/rails/locale/he.yml +176 -205
  69. data/rails/locale/hi-IN.yml +172 -197
  70. data/rails/locale/hi.yml +172 -197
  71. data/rails/locale/hr.yml +224 -143
  72. data/rails/locale/hu.yml +173 -192
  73. data/rails/locale/id.yml +193 -168
  74. data/rails/locale/is.yml +192 -206
  75. data/rails/locale/it-CH.yml +202 -0
  76. data/rails/locale/it.yml +192 -215
  77. data/rails/locale/ja.yml +184 -205
  78. data/rails/locale/ka.yml +211 -0
  79. data/rails/locale/km.yml +167 -0
  80. data/rails/locale/kn.yml +172 -198
  81. data/rails/locale/ko.yml +182 -205
  82. data/rails/locale/lb.yml +209 -0
  83. data/rails/locale/lo.yml +221 -227
  84. data/rails/locale/lt.yml +204 -167
  85. data/rails/locale/lv.yml +199 -187
  86. data/rails/locale/mk.yml +184 -140
  87. data/rails/locale/ml.yml +210 -0
  88. data/rails/locale/mn.yml +180 -177
  89. data/rails/locale/mr-IN.yml +207 -0
  90. data/rails/locale/ms.yml +202 -0
  91. data/rails/locale/nb.yml +184 -189
  92. data/rails/locale/ne.yml +205 -0
  93. data/rails/locale/nl.yml +190 -203
  94. data/rails/locale/nn.yml +186 -117
  95. data/rails/locale/oc.yml +212 -0
  96. data/rails/locale/or.yml +196 -0
  97. data/rails/locale/pa.yml +208 -0
  98. data/rails/locale/pl.yml +217 -210
  99. data/rails/locale/pt-BR.yml +200 -216
  100. data/rails/locale/pt.yml +216 -0
  101. data/rails/locale/rm.yml +194 -147
  102. data/rails/locale/ro.yml +185 -187
  103. data/rails/locale/ru.yml +244 -351
  104. data/rails/locale/sk.yml +210 -235
  105. data/rails/locale/sl.yml +198 -222
  106. data/rails/locale/sq.yml +208 -0
  107. data/rails/locale/sr.yml +224 -141
  108. data/rails/locale/sv-SE.yml +191 -257
  109. data/rails/locale/sv.yml +207 -0
  110. data/rails/locale/sw.yml +174 -202
  111. data/rails/locale/ta.yml +208 -0
  112. data/rails/locale/te.yml +215 -0
  113. data/rails/locale/th.yml +170 -0
  114. data/rails/locale/tl.yml +202 -0
  115. data/rails/locale/tr.yml +189 -157
  116. data/rails/locale/tt.yml +218 -0
  117. data/rails/locale/ug.yml +207 -0
  118. data/rails/locale/uk.yml +245 -330
  119. data/rails/locale/ur.yml +209 -0
  120. data/rails/locale/uz.yml +254 -0
  121. data/rails/locale/vi.yml +187 -226
  122. data/rails/locale/wo.yml +208 -0
  123. data/rails/locale/zh-CN.yml +154 -223
  124. data/rails/locale/zh-HK.yml +213 -0
  125. data/rails/locale/zh-TW.yml +180 -217
  126. data/rails/locale/zh-YUE.yml +213 -0
  127. data/rails/pluralization/ak.rb +3 -0
  128. data/rails/pluralization/am.rb +3 -0
  129. data/rails/pluralization/ar.rb +32 -0
  130. data/rails/pluralization/az.rb +3 -0
  131. data/rails/pluralization/be.rb +3 -0
  132. data/rails/pluralization/bg.rb +3 -0
  133. data/rails/pluralization/bh.rb +3 -0
  134. data/rails/pluralization/bm.rb +3 -0
  135. data/rails/pluralization/bn.rb +3 -0
  136. data/rails/pluralization/bo.rb +3 -0
  137. data/rails/pluralization/br.rb +31 -0
  138. data/rails/pluralization/bs.rb +3 -0
  139. data/rails/pluralization/by.rb +3 -0
  140. data/rails/pluralization/ca.rb +3 -0
  141. data/rails/pluralization/cs.rb +3 -0
  142. data/rails/pluralization/cy.rb +24 -0
  143. data/rails/pluralization/da.rb +3 -0
  144. data/rails/pluralization/de-AT.rb +3 -0
  145. data/rails/pluralization/de-CH.rb +3 -0
  146. data/rails/pluralization/de-DE.rb +3 -0
  147. data/rails/pluralization/de.rb +3 -0
  148. data/rails/pluralization/dz.rb +3 -0
  149. data/rails/pluralization/el.rb +3 -0
  150. data/rails/pluralization/en-AU.rb +3 -0
  151. data/rails/pluralization/en-CA.rb +3 -0
  152. data/rails/pluralization/en-GB.rb +3 -0
  153. data/rails/pluralization/en-IN.rb +3 -0
  154. data/rails/pluralization/en-NZ.rb +3 -0
  155. data/rails/pluralization/en.rb +3 -0
  156. data/rails/pluralization/eo.rb +3 -0
  157. data/rails/pluralization/es-419.rb +3 -0
  158. data/rails/pluralization/es-AR.rb +3 -0
  159. data/rails/pluralization/es-CL.rb +3 -0
  160. data/rails/pluralization/es-CO.rb +3 -0
  161. data/rails/pluralization/es-CR.rb +3 -0
  162. data/rails/pluralization/es-EC.rb +3 -0
  163. data/rails/pluralization/es-ES.rb +3 -0
  164. data/rails/pluralization/es-MX.rb +3 -0
  165. data/rails/pluralization/es-NI.rb +3 -0
  166. data/rails/pluralization/es-PA.rb +3 -0
  167. data/rails/pluralization/es-PE.rb +3 -0
  168. data/rails/pluralization/es-US.rb +3 -0
  169. data/rails/pluralization/es-VE.rb +3 -0
  170. data/rails/pluralization/es.rb +3 -0
  171. data/rails/pluralization/et.rb +3 -0
  172. data/rails/pluralization/eu.rb +3 -0
  173. data/rails/pluralization/fa.rb +3 -0
  174. data/rails/pluralization/ff.rb +3 -0
  175. data/rails/pluralization/fi.rb +3 -0
  176. data/rails/pluralization/fr-CA.rb +3 -0
  177. data/rails/pluralization/fr-CH.rb +3 -0
  178. data/rails/pluralization/fr-FR.rb +3 -0
  179. data/rails/pluralization/fr.rb +3 -0
  180. data/rails/pluralization/ga.rb +27 -0
  181. data/rails/pluralization/gd.rb +25 -0
  182. data/rails/pluralization/gl.rb +3 -0
  183. data/rails/pluralization/guw.rb +3 -0
  184. data/rails/pluralization/gv.rb +22 -0
  185. data/rails/pluralization/he.rb +3 -0
  186. data/rails/pluralization/hi-IN.rb +3 -0
  187. data/rails/pluralization/hi.rb +3 -0
  188. data/rails/pluralization/hr.rb +3 -0
  189. data/rails/pluralization/hsb.rb +28 -0
  190. data/rails/pluralization/hu.rb +3 -0
  191. data/rails/pluralization/id.rb +3 -0
  192. data/rails/pluralization/ig.rb +3 -0
  193. data/rails/pluralization/ii.rb +3 -0
  194. data/rails/pluralization/is.rb +3 -0
  195. data/rails/pluralization/it-CH.rb +3 -0
  196. data/rails/pluralization/it.rb +3 -0
  197. data/rails/pluralization/iu.rb +3 -0
  198. data/rails/pluralization/ja.rb +3 -0
  199. data/rails/pluralization/jv.rb +3 -0
  200. data/rails/pluralization/ka.rb +3 -0
  201. data/rails/pluralization/kab.rb +3 -0
  202. data/rails/pluralization/kde.rb +3 -0
  203. data/rails/pluralization/kea.rb +3 -0
  204. data/rails/pluralization/km.rb +3 -0
  205. data/rails/pluralization/kn.rb +3 -0
  206. data/rails/pluralization/ko.rb +3 -0
  207. data/rails/pluralization/ksh.rb +23 -0
  208. data/rails/pluralization/kw.rb +3 -0
  209. data/rails/pluralization/lag.rb +24 -0
  210. data/rails/pluralization/ln.rb +3 -0
  211. data/rails/pluralization/lo.rb +3 -0
  212. data/rails/pluralization/lt.rb +27 -0
  213. data/rails/pluralization/lv.rb +22 -0
  214. data/rails/pluralization/mg.rb +3 -0
  215. data/rails/pluralization/mk.rb +22 -0
  216. data/rails/pluralization/ml.rb +3 -0
  217. data/rails/pluralization/mn.rb +3 -0
  218. data/rails/pluralization/mo.rb +3 -0
  219. data/rails/pluralization/mr-IN.rb +3 -0
  220. data/rails/pluralization/ms.rb +3 -0
  221. data/rails/pluralization/mt.rb +28 -0
  222. data/rails/pluralization/my.rb +3 -0
  223. data/rails/pluralization/naq.rb +3 -0
  224. data/rails/pluralization/nb.rb +3 -0
  225. data/rails/pluralization/ne.rb +3 -0
  226. data/rails/pluralization/nl.rb +3 -0
  227. data/rails/pluralization/nn.rb +3 -0
  228. data/rails/pluralization/nso.rb +3 -0
  229. data/rails/pluralization/oc.rb +3 -0
  230. data/rails/pluralization/or.rb +3 -0
  231. data/rails/pluralization/pa.rb +3 -0
  232. data/rails/pluralization/pl.rb +29 -0
  233. data/rails/pluralization/pt.rb +3 -0
  234. data/rails/pluralization/ro.rb +3 -0
  235. data/rails/pluralization/root.rb +3 -0
  236. data/rails/pluralization/ru.rb +3 -0
  237. data/rails/pluralization/sah.rb +3 -0
  238. data/rails/pluralization/se.rb +3 -0
  239. data/rails/pluralization/ses.rb +3 -0
  240. data/rails/pluralization/sg.rb +3 -0
  241. data/rails/pluralization/sh.rb +3 -0
  242. data/rails/pluralization/shi.rb +3 -0
  243. data/rails/pluralization/sk.rb +3 -0
  244. data/rails/pluralization/sl.rb +28 -0
  245. data/rails/pluralization/sma.rb +3 -0
  246. data/rails/pluralization/smi.rb +3 -0
  247. data/rails/pluralization/smj.rb +3 -0
  248. data/rails/pluralization/smn.rb +3 -0
  249. data/rails/pluralization/sms.rb +3 -0
  250. data/rails/pluralization/sr.rb +3 -0
  251. data/rails/pluralization/sv-SE.rb +3 -0
  252. data/rails/pluralization/sv.rb +3 -0
  253. data/rails/pluralization/sw.rb +3 -0
  254. data/rails/pluralization/th.rb +3 -0
  255. data/rails/pluralization/ti.rb +3 -0
  256. data/rails/pluralization/tl.rb +3 -0
  257. data/rails/pluralization/to.rb +3 -0
  258. data/rails/pluralization/tr.rb +3 -0
  259. data/rails/pluralization/tzm.rb +21 -0
  260. data/rails/pluralization/uk.rb +3 -0
  261. data/rails/pluralization/ur.rb +3 -0
  262. data/rails/pluralization/vi.rb +3 -0
  263. data/rails/pluralization/wa.rb +3 -0
  264. data/rails/pluralization/wo.rb +3 -0
  265. data/rails/pluralization/yo.rb +3 -0
  266. data/rails/pluralization/zh-CN.rb +3 -0
  267. data/rails/pluralization/zh-HK.rb +3 -0
  268. data/rails/pluralization/zh-TW.rb +3 -0
  269. data/rails/pluralization/zh-YUE.rb +3 -0
  270. data/rails/pluralization/zh.rb +3 -0
  271. data/rails/transliteration/az.yml +24 -0
  272. data/rails/transliteration/bg.yml +64 -0
  273. data/rails/transliteration/ca.yml +28 -0
  274. data/rails/transliteration/de.yml +12 -0
  275. data/rails/transliteration/el.yml +104 -0
  276. data/rails/transliteration/es.yml +18 -0
  277. data/rails/transliteration/fa.yml +47 -0
  278. data/rails/transliteration/fr.yml +36 -0
  279. data/rails/transliteration/hu.yml +22 -0
  280. data/rails/transliteration/oc.yml +28 -0
  281. data/rails/transliteration/pl.yml +22 -0
  282. data/rails/transliteration/pt.yml +28 -0
  283. data/rails/transliteration/ro.yml +14 -0
  284. data/rails/transliteration/ru.rb +93 -0
  285. data/rails/transliteration/uk.rb +129 -0
  286. data/rails/transliteration/vi.yml +138 -0
  287. metadata +376 -118
  288. data/rails/locale/bn-IN.yml +0 -223
  289. data/rails/locale/cs.rb +0 -229
  290. data/rails/locale/dsb.yml +0 -225
  291. data/rails/locale/fur.yml +0 -184
  292. data/rails/locale/gl-ES.yml +0 -236
  293. data/rails/locale/gsw-CH.yml +0 -222
  294. data/rails/locale/hsb.yml +0 -233
  295. data/rails/locale/pt-PT.yml +0 -230
  296. data/rails/locale/sr-Latn.yml +0 -159
  297. 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
- Central point to collect locale data for use in Ruby on Rails.
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
- ## Gem installation
7
+ Centralization of locale data collection for Ruby on Rails.
7
8
 
8
- Add to your Gemfile:
9
+ ## Gem Installation
9
10
 
10
- gem 'rails-i18n'
11
+ Include the gem to your Gemfile:
11
12
 
12
- or run this command:
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
- gem install rails-i18n
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
- ## Manual installation
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
- Download the locale files that are found in the directory [rails/locale](http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/) and put them into the `config/locales` directory of your Rails application.
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
- Available locales are:
46
+ ## Usage on Rails 2.3
26
47
 
27
- > ar, bg, bn-IN, bs, ca, cs, cy, da, de, de-AT, de-CH, dsb, el, en-AU, en-GB, en-US, eo, es,
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
- Note that all locale files are not yet ready for Rails 3. Currently, following locales are ready for Rails 2 and 3:
50
+ ## Available Locales
34
51
 
35
- > ar, ca, cs, cy, da, de, en-AU, en-GB, en-US, eo, es, es-AR, es-CL, es-CO, es-MX, et, eu, fa, fi, fr, fr-CA, fr-CH, gsw-CH, he, hi, hi-IN, hu, is, it, ja, kn, ko, lv, nb, nl, pl, pt-BR, pt-PT, ro, ru, sk, sv-SE, sw, th, uk, zh-CN, zh-TW
52
+ Available locales:
36
53
 
37
- Not-yet-ready locales are:
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
- > bg, bn-IN, bs, de-AT, de-CH, dsb, el, es-PE, fur, gl-ES, hr, hsb, id, lo, lt, mk, mn, nn, rm, sl, sr, sr-Latn, tr, vi
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
- ## How to contribute
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
- ### Quick contribution
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
- If you are familiar with GitHub operations, follow the procedures described in the subsequent sections.
90
+ ```YAML
91
+ tr:
92
+ number:
93
+ currency:
94
+ format:
95
+ unit: TL
96
+ ```
48
97
 
49
- If you are not,
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
- ### Fetch the `rails-18n` repository
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
- ### Create or edit your locale file
114
+ ### Creating or Editing your Locale File
60
115
 
61
- * Have a look in `rails/locale/en-US.yml`, which can be used as the base of your translation.
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 include a comment with the language/locale name and your name and email address (or other contact information like your github profile) to the locale file so people can come contact you and ask questions etc.
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
- sudo gem install i18n thor
120
+ ### Testing your Locale File
75
121
 
76
- You can test your locale by running following command on the root directory of this repository:
122
+ Before committing and pushing your changes, test the integrity of your locale file.
77
123
 
78
- thor locales:test [your-locale]
124
+ bundle exec rake spec
79
125
 
80
- Assuming that there is a file <code>rails/locale/[your-locale].{rb,yml}</code> you will get a list of keys missing from your locale data.
126
+ Make sure you have included all translations with:
81
127
 
82
- Invoke following command to test all locale files:
128
+ bundle exec rake i18n-spec:completeness rails/locale/en.yml rails/locale/YOUR_NEW_LOCALE.yml
83
129
 
84
- thor locales:test_all
130
+ You can list all complete and incomplete locales:
85
131
 
86
- You can list all locales that are ready both for Rails version 2 and 3:
132
+ thor locales:complete
133
+ thor locales:incomplete
87
134
 
88
- thor locales:ready
135
+ Also, you can list all available locales:
89
136
 
90
- You can also list the locales ready for a specific version of Rails. For example:
91
-
92
- thor locales:ready_for 3
137
+ thor locales:list
93
138
 
94
- Lastly, you can list all available locales:
139
+ You can list all missing keys:
95
140
 
96
- thor locales:list
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
@@ -1,4 +1 @@
1
- ActiveSupport.on_load(:i18n) do
2
- I18n.load_path << Dir[File.join(File.expand_path(File.dirname(__FILE__) + '/../rails/locale'), '*.{rb,yml}')]
3
- I18n.load_path.flatten!
4
- end
1
+ require 'rails_i18n'
data/lib/rails_i18n.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'rails_i18n/unicode'
2
+ require 'rails_i18n/railtie'
@@ -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