twitter_cldr 3.0.3 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. checksums.yaml +13 -5
  2. data/Gemfile +3 -7
  3. data/History.txt +6 -0
  4. data/README.md +1 -1
  5. data/Rakefile +26 -16
  6. data/lib/twitter_cldr/data_readers/number_data_reader.rb +9 -2
  7. data/lib/twitter_cldr/data_readers/timespan_data_reader.rb +11 -12
  8. data/lib/twitter_cldr/formatters/numbers/abbreviated/abbreviated_number_formatter.rb +10 -8
  9. data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +2 -2
  10. data/lib/twitter_cldr/localized/localized_datetime.rb +1 -1
  11. data/lib/twitter_cldr/localized/localized_number.rb +13 -3
  12. data/lib/twitter_cldr/resources/collation_tries_dumper.rb +1 -2
  13. data/lib/twitter_cldr/resources/language_codes_importer.rb +1 -1
  14. data/lib/twitter_cldr/resources/locales_resources_importer.rb +13 -2
  15. data/lib/twitter_cldr/resources/tailoring_importer.rb +3 -2
  16. data/lib/twitter_cldr/shared/calendar.rb +4 -4
  17. data/lib/twitter_cldr/shared/postal_codes.rb +5 -7
  18. data/lib/twitter_cldr/version.rb +1 -1
  19. data/resources/collation/tailoring/de-CH.yml +4 -0
  20. data/resources/collation/tailoring/en-AU.yml +4 -0
  21. data/resources/collation/tailoring/en-CA.yml +4 -0
  22. data/resources/collation/tailoring/en-IE.yml +4 -0
  23. data/resources/collation/tailoring/en-SG.yml +4 -0
  24. data/resources/collation/tailoring/en-ZA.yml +4 -0
  25. data/resources/collation/tailoring/es-CO.yml +4 -0
  26. data/resources/collation/tailoring/es-MX.yml +4 -0
  27. data/resources/collation/tailoring/es-US.yml +4 -0
  28. data/resources/collation/tailoring/fr-BE.yml +4 -0
  29. data/resources/collation/tailoring/fr-CA.yml +4 -0
  30. data/resources/collation/tailoring/fr-CH.yml +4 -0
  31. data/resources/collation/tailoring/it-CH.yml +4 -0
  32. data/resources/collation/tries/af.dump +0 -0
  33. data/resources/collation/tries/ar.dump +0 -0
  34. data/resources/collation/tries/be.dump +0 -0
  35. data/resources/collation/tries/bg.dump +0 -0
  36. data/resources/collation/tries/bn.dump +0 -0
  37. data/resources/collation/tries/ca.dump +0 -0
  38. data/resources/collation/tries/cs.dump +0 -0
  39. data/resources/collation/tries/cy.dump +0 -0
  40. data/resources/collation/tries/da.dump +0 -0
  41. data/resources/collation/tries/de-CH.dump +0 -0
  42. data/resources/collation/tries/de.dump +0 -0
  43. data/resources/collation/tries/default.dump +0 -0
  44. data/resources/collation/tries/el.dump +0 -0
  45. data/resources/collation/tries/en-AU.dump +0 -0
  46. data/resources/collation/tries/en-CA.dump +0 -0
  47. data/resources/collation/tries/en-GB.dump +0 -0
  48. data/resources/collation/tries/en-IE.dump +0 -0
  49. data/resources/collation/tries/en-SG.dump +0 -0
  50. data/resources/collation/tries/en-ZA.dump +0 -0
  51. data/resources/collation/tries/en.dump +0 -0
  52. data/resources/collation/tries/es-CO.dump +0 -0
  53. data/resources/collation/tries/es-MX.dump +0 -0
  54. data/resources/collation/tries/es-US.dump +0 -0
  55. data/resources/collation/tries/es.dump +0 -0
  56. data/resources/collation/tries/eu.dump +0 -0
  57. data/resources/collation/tries/fa.dump +0 -0
  58. data/resources/collation/tries/fi.dump +0 -0
  59. data/resources/collation/tries/fil.dump +0 -0
  60. data/resources/collation/tries/fr-BE.dump +0 -0
  61. data/resources/collation/tries/fr-CA.dump +0 -0
  62. data/resources/collation/tries/fr-CH.dump +0 -0
  63. data/resources/collation/tries/fr.dump +0 -0
  64. data/resources/collation/tries/ga.dump +0 -0
  65. data/resources/collation/tries/gl.dump +0 -0
  66. data/resources/collation/tries/he.dump +0 -0
  67. data/resources/collation/tries/hi.dump +0 -0
  68. data/resources/collation/tries/hr.dump +0 -0
  69. data/resources/collation/tries/hu.dump +0 -0
  70. data/resources/collation/tries/id.dump +0 -0
  71. data/resources/collation/tries/is.dump +0 -0
  72. data/resources/collation/tries/it-CH.dump +0 -0
  73. data/resources/collation/tries/it.dump +0 -0
  74. data/resources/collation/tries/ja.dump +0 -0
  75. data/resources/collation/tries/ko.dump +0 -0
  76. data/resources/collation/tries/lv.dump +0 -0
  77. data/resources/collation/tries/ms.dump +0 -0
  78. data/resources/collation/tries/nb.dump +0 -0
  79. data/resources/collation/tries/nl.dump +0 -0
  80. data/resources/collation/tries/pl.dump +0 -0
  81. data/resources/collation/tries/pt.dump +0 -0
  82. data/resources/collation/tries/ro.dump +0 -0
  83. data/resources/collation/tries/ru.dump +0 -0
  84. data/resources/collation/tries/sk.dump +0 -0
  85. data/resources/collation/tries/sq.dump +0 -0
  86. data/resources/collation/tries/sr.dump +0 -0
  87. data/resources/collation/tries/sv.dump +0 -0
  88. data/resources/collation/tries/ta.dump +0 -0
  89. data/resources/collation/tries/th.dump +0 -0
  90. data/resources/collation/tries/tr.dump +0 -0
  91. data/resources/collation/tries/uk.dump +0 -0
  92. data/resources/collation/tries/ur.dump +0 -0
  93. data/resources/collation/tries/vi.dump +0 -0
  94. data/resources/collation/tries/zh-Hant.dump +0 -0
  95. data/resources/collation/tries/zh.dump +0 -0
  96. data/resources/locales/af/plurals.yml +2 -1
  97. data/resources/locales/af/units.yml +108 -108
  98. data/resources/locales/ar/plurals.yml +5 -4
  99. data/resources/locales/ar/units.yml +220 -220
  100. data/resources/locales/be/plurals.yml +6 -6
  101. data/resources/locales/be/units.yml +122 -122
  102. data/resources/locales/bg/plurals.yml +2 -1
  103. data/resources/locales/bg/units.yml +108 -108
  104. data/resources/locales/bn/plurals.yml +2 -1
  105. data/resources/locales/bn/units.yml +108 -108
  106. data/resources/locales/ca/plurals.yml +3 -2
  107. data/resources/locales/ca/units.yml +108 -108
  108. data/resources/locales/cs/plurals.yml +5 -5
  109. data/resources/locales/cs/units.yml +136 -136
  110. data/resources/locales/cy/plurals.yml +3 -3
  111. data/resources/locales/cy/units.yml +108 -220
  112. data/resources/locales/da/plurals.yml +3 -2
  113. data/resources/locales/da/units.yml +108 -108
  114. data/resources/locales/de-CH/calendars.yml +303 -0
  115. data/resources/locales/de-CH/currencies.yml +955 -0
  116. data/resources/locales/de-CH/languages.yml +583 -0
  117. data/resources/locales/de-CH/layout.yml +5 -0
  118. data/resources/locales/de-CH/lists.yml +23 -0
  119. data/resources/locales/de-CH/numbers.yml +62 -0
  120. data/resources/locales/de-CH/plurals.yml +5 -0
  121. data/resources/locales/de-CH/rbnf.yml +4 -0
  122. data/resources/locales/de-CH/territories.yml +264 -0
  123. data/resources/locales/de-CH/units.yml +108 -0
  124. data/resources/locales/de/plurals.yml +3 -2
  125. data/resources/locales/de/units.yml +108 -108
  126. data/resources/locales/el/plurals.yml +2 -1
  127. data/resources/locales/el/units.yml +108 -108
  128. data/resources/locales/en-AU/calendars.yml +208 -0
  129. data/resources/locales/en-AU/currencies.yml +953 -0
  130. data/resources/locales/en-AU/languages.yml +583 -0
  131. data/resources/locales/en-AU/layout.yml +5 -0
  132. data/resources/locales/en-AU/lists.yml +23 -0
  133. data/resources/locales/en-AU/numbers.yml +62 -0
  134. data/resources/locales/en-AU/plurals.yml +5 -0
  135. data/resources/locales/en-AU/rbnf.yml +4 -0
  136. data/resources/locales/en-AU/territories.yml +264 -0
  137. data/resources/locales/en-AU/units.yml +108 -0
  138. data/resources/locales/en-CA/calendars.yml +208 -0
  139. data/resources/locales/en-CA/currencies.yml +953 -0
  140. data/resources/locales/en-CA/languages.yml +583 -0
  141. data/resources/locales/en-CA/layout.yml +5 -0
  142. data/resources/locales/en-CA/lists.yml +23 -0
  143. data/resources/locales/en-CA/numbers.yml +62 -0
  144. data/resources/locales/en-CA/plurals.yml +5 -0
  145. data/resources/locales/en-CA/rbnf.yml +4 -0
  146. data/resources/locales/en-CA/territories.yml +264 -0
  147. data/resources/locales/en-CA/units.yml +108 -0
  148. data/resources/locales/en-GB/plurals.yml +3 -2
  149. data/resources/locales/en-GB/units.yml +108 -108
  150. data/resources/locales/en-IE/calendars.yml +208 -0
  151. data/resources/locales/en-IE/currencies.yml +953 -0
  152. data/resources/locales/en-IE/languages.yml +583 -0
  153. data/resources/locales/en-IE/layout.yml +5 -0
  154. data/resources/locales/en-IE/lists.yml +23 -0
  155. data/resources/locales/en-IE/numbers.yml +62 -0
  156. data/resources/locales/en-IE/plurals.yml +5 -0
  157. data/resources/locales/en-IE/rbnf.yml +4 -0
  158. data/resources/locales/en-IE/territories.yml +264 -0
  159. data/resources/locales/en-IE/units.yml +108 -0
  160. data/resources/locales/en-SG/calendars.yml +208 -0
  161. data/resources/locales/en-SG/currencies.yml +953 -0
  162. data/resources/locales/en-SG/languages.yml +583 -0
  163. data/resources/locales/en-SG/layout.yml +5 -0
  164. data/resources/locales/en-SG/lists.yml +23 -0
  165. data/resources/locales/en-SG/numbers.yml +62 -0
  166. data/resources/locales/en-SG/plurals.yml +5 -0
  167. data/resources/locales/en-SG/rbnf.yml +4 -0
  168. data/resources/locales/en-SG/territories.yml +264 -0
  169. data/resources/locales/en-SG/units.yml +108 -0
  170. data/resources/locales/en-ZA/calendars.yml +208 -0
  171. data/resources/locales/en-ZA/currencies.yml +954 -0
  172. data/resources/locales/en-ZA/languages.yml +583 -0
  173. data/resources/locales/en-ZA/layout.yml +5 -0
  174. data/resources/locales/en-ZA/lists.yml +23 -0
  175. data/resources/locales/en-ZA/numbers.yml +62 -0
  176. data/resources/locales/en-ZA/plurals.yml +5 -0
  177. data/resources/locales/en-ZA/rbnf.yml +4 -0
  178. data/resources/locales/en-ZA/territories.yml +264 -0
  179. data/resources/locales/en-ZA/units.yml +108 -0
  180. data/resources/locales/en/plurals.yml +3 -2
  181. data/resources/locales/en/units.yml +108 -108
  182. data/resources/locales/es-CO/calendars.yml +290 -0
  183. data/resources/locales/es-CO/currencies.yml +953 -0
  184. data/resources/locales/es-CO/languages.yml +583 -0
  185. data/resources/locales/es-CO/layout.yml +5 -0
  186. data/resources/locales/es-CO/lists.yml +23 -0
  187. data/resources/locales/es-CO/numbers.yml +62 -0
  188. data/resources/locales/es-CO/plurals.yml +4 -0
  189. data/resources/locales/es-CO/rbnf.yml +4 -0
  190. data/resources/locales/es-CO/territories.yml +264 -0
  191. data/resources/locales/es-CO/units.yml +108 -0
  192. data/resources/locales/es-MX/calendars.yml +290 -0
  193. data/resources/locales/es-MX/currencies.yml +1075 -0
  194. data/resources/locales/es-MX/languages.yml +583 -0
  195. data/resources/locales/es-MX/layout.yml +5 -0
  196. data/resources/locales/es-MX/lists.yml +23 -0
  197. data/resources/locales/es-MX/numbers.yml +62 -0
  198. data/resources/locales/es-MX/plurals.yml +4 -0
  199. data/resources/locales/es-MX/rbnf.yml +4 -0
  200. data/resources/locales/es-MX/territories.yml +264 -0
  201. data/resources/locales/es-MX/units.yml +108 -0
  202. data/resources/locales/es-US/calendars.yml +296 -0
  203. data/resources/locales/es-US/currencies.yml +953 -0
  204. data/resources/locales/es-US/languages.yml +583 -0
  205. data/resources/locales/es-US/layout.yml +5 -0
  206. data/resources/locales/es-US/lists.yml +23 -0
  207. data/resources/locales/es-US/numbers.yml +62 -0
  208. data/resources/locales/es-US/plurals.yml +4 -0
  209. data/resources/locales/es-US/rbnf.yml +4 -0
  210. data/resources/locales/es-US/territories.yml +264 -0
  211. data/resources/locales/es-US/units.yml +108 -0
  212. data/resources/locales/es/plurals.yml +2 -1
  213. data/resources/locales/es/units.yml +108 -108
  214. data/resources/locales/eu/plurals.yml +2 -1
  215. data/resources/locales/eu/units.yml +108 -108
  216. data/resources/locales/fa/plurals.yml +2 -1
  217. data/resources/locales/fa/units.yml +108 -108
  218. data/resources/locales/fi/plurals.yml +3 -2
  219. data/resources/locales/fi/units.yml +108 -108
  220. data/resources/locales/fil/plurals.yml +3 -2
  221. data/resources/locales/fil/units.yml +108 -108
  222. data/resources/locales/fr-BE/calendars.yml +305 -0
  223. data/resources/locales/fr-BE/currencies.yml +968 -0
  224. data/resources/locales/fr-BE/languages.yml +583 -0
  225. data/resources/locales/fr-BE/layout.yml +5 -0
  226. data/resources/locales/fr-BE/lists.yml +23 -0
  227. data/resources/locales/fr-BE/numbers.yml +62 -0
  228. data/resources/locales/fr-BE/plurals.yml +4 -0
  229. data/resources/locales/fr-BE/rbnf.yml +596 -0
  230. data/resources/locales/fr-BE/territories.yml +264 -0
  231. data/resources/locales/fr-BE/units.yml +108 -0
  232. data/resources/locales/fr-CA/calendars.yml +308 -0
  233. data/resources/locales/fr-CA/currencies.yml +968 -0
  234. data/resources/locales/fr-CA/languages.yml +583 -0
  235. data/resources/locales/fr-CA/layout.yml +5 -0
  236. data/resources/locales/fr-CA/lists.yml +23 -0
  237. data/resources/locales/fr-CA/numbers.yml +62 -0
  238. data/resources/locales/fr-CA/plurals.yml +4 -0
  239. data/resources/locales/fr-CA/rbnf.yml +4 -0
  240. data/resources/locales/fr-CA/territories.yml +264 -0
  241. data/resources/locales/fr-CA/units.yml +108 -0
  242. data/resources/locales/fr-CH/calendars.yml +307 -0
  243. data/resources/locales/fr-CH/currencies.yml +969 -0
  244. data/resources/locales/fr-CH/languages.yml +583 -0
  245. data/resources/locales/fr-CH/layout.yml +5 -0
  246. data/resources/locales/fr-CH/lists.yml +23 -0
  247. data/resources/locales/fr-CH/numbers.yml +62 -0
  248. data/resources/locales/fr-CH/plurals.yml +4 -0
  249. data/resources/locales/fr-CH/rbnf.yml +599 -0
  250. data/resources/locales/fr-CH/territories.yml +264 -0
  251. data/resources/locales/fr-CH/units.yml +108 -0
  252. data/resources/locales/fr/plurals.yml +2 -1
  253. data/resources/locales/fr/units.yml +108 -108
  254. data/resources/locales/ga/plurals.yml +4 -3
  255. data/resources/locales/ga/units.yml +108 -108
  256. data/resources/locales/gl/plurals.yml +3 -2
  257. data/resources/locales/gl/units.yml +108 -108
  258. data/resources/locales/he/plurals.yml +5 -5
  259. data/resources/locales/he/units.yml +164 -164
  260. data/resources/locales/hi/plurals.yml +2 -1
  261. data/resources/locales/hi/units.yml +108 -108
  262. data/resources/locales/hr/plurals.yml +7 -11
  263. data/resources/locales/hr/units.yml +164 -164
  264. data/resources/locales/hu/plurals.yml +2 -1
  265. data/resources/locales/hu/units.yml +108 -108
  266. data/resources/locales/id/plurals.yml +2 -1
  267. data/resources/locales/id/units.yml +108 -108
  268. data/resources/locales/is/plurals.yml +4 -4
  269. data/resources/locales/is/units.yml +108 -108
  270. data/resources/locales/it-CH/calendars.yml +291 -0
  271. data/resources/locales/it-CH/currencies.yml +954 -0
  272. data/resources/locales/it-CH/languages.yml +583 -0
  273. data/resources/locales/it-CH/layout.yml +5 -0
  274. data/resources/locales/it-CH/lists.yml +23 -0
  275. data/resources/locales/it-CH/numbers.yml +62 -0
  276. data/resources/locales/it-CH/plurals.yml +5 -0
  277. data/resources/locales/it-CH/rbnf.yml +4 -0
  278. data/resources/locales/it-CH/territories.yml +264 -0
  279. data/resources/locales/it-CH/units.yml +108 -0
  280. data/resources/locales/it/plurals.yml +3 -2
  281. data/resources/locales/it/units.yml +108 -108
  282. data/resources/locales/ja/plurals.yml +2 -1
  283. data/resources/locales/ja/units.yml +108 -108
  284. data/resources/locales/ko/plurals.yml +2 -1
  285. data/resources/locales/ko/units.yml +108 -108
  286. data/resources/locales/lv/plurals.yml +8 -10
  287. data/resources/locales/lv/units.yml +136 -136
  288. data/resources/locales/ms/plurals.yml +2 -1
  289. data/resources/locales/ms/units.yml +108 -108
  290. data/resources/locales/nb/plurals.yml +2 -1
  291. data/resources/locales/nb/units.yml +108 -108
  292. data/resources/locales/nl/plurals.yml +3 -2
  293. data/resources/locales/nl/units.yml +108 -108
  294. data/resources/locales/pl/plurals.yml +8 -10
  295. data/resources/locales/pl/units.yml +164 -164
  296. data/resources/locales/pt/plurals.yml +4 -3
  297. data/resources/locales/pt/units.yml +108 -108
  298. data/resources/locales/ro/plurals.yml +5 -4
  299. data/resources/locales/ro/units.yml +136 -136
  300. data/resources/locales/ru/plurals.yml +6 -7
  301. data/resources/locales/ru/units.yml +164 -164
  302. data/resources/locales/sk/plurals.yml +5 -5
  303. data/resources/locales/sk/units.yml +136 -136
  304. data/resources/locales/sq/plurals.yml +2 -1
  305. data/resources/locales/sq/units.yml +108 -108
  306. data/resources/locales/sr/plurals.yml +7 -11
  307. data/resources/locales/sr/units.yml +164 -164
  308. data/resources/locales/sv/plurals.yml +3 -2
  309. data/resources/locales/sv/units.yml +108 -108
  310. data/resources/locales/ta/plurals.yml +2 -1
  311. data/resources/locales/ta/units.yml +108 -108
  312. data/resources/locales/th/plurals.yml +2 -1
  313. data/resources/locales/th/units.yml +108 -108
  314. data/resources/locales/tr/plurals.yml +2 -1
  315. data/resources/locales/tr/units.yml +108 -108
  316. data/resources/locales/uk/plurals.yml +8 -9
  317. data/resources/locales/uk/units.yml +164 -164
  318. data/resources/locales/ur/plurals.yml +3 -2
  319. data/resources/locales/ur/units.yml +108 -108
  320. data/resources/locales/vi/plurals.yml +2 -1
  321. data/resources/locales/vi/units.yml +108 -108
  322. data/resources/locales/zh-Hant/plurals.yml +3 -2
  323. data/resources/locales/zh-Hant/units.yml +108 -108
  324. data/resources/locales/zh/plurals.yml +2 -1
  325. data/resources/locales/zh/units.yml +108 -108
  326. data/resources/shared/language_codes_table.dump +0 -0
  327. data/resources/shared/phone_codes.yml +9 -1
  328. data/resources/shared/postal_codes.yml +1276 -333
  329. data/resources/shared/segments/segments_root.yml +3 -0
  330. data/spec/data_readers/timespan_data_reader_spec.rb +16 -0
  331. data/spec/formatters/calendars/datetime_formatter_spec.rb +2 -2
  332. data/spec/formatters/numbers/abbreviated/abbreviated_number_formatter_spec.rb +25 -17
  333. data/spec/formatters/numbers/abbreviated/short_decimal_formatter_spec.rb +47 -34
  334. data/spec/formatters/numbers/currency_formatter_spec.rb +1 -1
  335. data/spec/formatters/numbers/decimal_formatter_spec.rb +1 -1
  336. data/spec/formatters/numbers/number_formatter_spec.rb +1 -1
  337. data/spec/formatters/numbers/percent_formatter_spec.rb +1 -1
  338. data/spec/formatters/numbers/rbnf/locales/de-CH/rbnf_test.yml +940 -0
  339. data/spec/formatters/numbers/rbnf/locales/en-AU/rbnf_test.yml +1291 -0
  340. data/spec/formatters/numbers/rbnf/locales/en-CA/rbnf_test.yml +1291 -0
  341. data/spec/formatters/numbers/rbnf/locales/en-IE/rbnf_test.yml +1291 -0
  342. data/spec/formatters/numbers/rbnf/locales/en-SG/rbnf_test.yml +1291 -0
  343. data/spec/formatters/numbers/rbnf/locales/en-ZA/rbnf_test.yml +1291 -0
  344. data/spec/formatters/numbers/rbnf/locales/es-CO/rbnf_test.yml +1642 -0
  345. data/spec/formatters/numbers/rbnf/locales/es-MX/rbnf_test.yml +1642 -0
  346. data/spec/formatters/numbers/rbnf/locales/es-US/rbnf_test.yml +1642 -0
  347. data/spec/formatters/numbers/rbnf/locales/fr-BE/rbnf_test.yml +1408 -0
  348. data/spec/formatters/numbers/rbnf/locales/fr-CA/rbnf_test.yml +1408 -0
  349. data/spec/formatters/numbers/rbnf/locales/fr-CH/rbnf_test.yml +1408 -0
  350. data/spec/formatters/numbers/rbnf/locales/it-CH/rbnf_test.yml +1174 -0
  351. data/spec/formatters/plurals/rules_spec.rb +4 -0
  352. data/spec/localized/localized_datetime_spec.rb +1 -1
  353. data/spec/localized/localized_number_spec.rb +28 -0
  354. data/spec/localized/localized_time_spec.rb +1 -1
  355. data/spec/shared/calendar_spec.rb +4 -1
  356. data/spec/tokenizers/calendars/date_tokenizer_spec.rb +3 -3
  357. data/spec/tokenizers/calendars/datetime_tokenizer_spec.rb +1 -2
  358. data/spec/tokenizers/calendars/time_tokenizer_spec.rb +2 -2
  359. data/spec/tokenizers/numbers/number_tokenizer_spec.rb +4 -4
  360. metadata +399 -230
  361. data/spec/data_readers/timespan_data_reader.rb +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3724c4298d198dc34908dd336418c19edde6f09e
4
- data.tar.gz: 72c50812ce644c70245b774155212becde60020e
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ODMyYmYzMDM4ODg4NjY1OTIzOGMxNDY1MTRkNWI5YzU2Njg4ZDI1Yg==
5
+ data.tar.gz: !binary |-
6
+ N2YxZWZlMDNhZDRjODI3NGU1OGZlZWVhZjNhMDk0NzBhYjQ3ZGU5Mg==
5
7
  SHA512:
6
- metadata.gz: 4c11d5870b7b355a40cff2348892eabac422f33a01e28ba5db006af38b59e8543fa97d42b9f516ad8e87f18358eb258338e7cd7aa27df9687f5dd583cfe28c9e
7
- data.tar.gz: 3ef234d9ff5a630854d83010f63be2302d60ff130b75577ed6bd5a8cf4000bb44277dcd464ac2023960aa079ea81477695d0b9593f79355c5d59b76e77e9d599
8
+ metadata.gz: !binary |-
9
+ OGE2MTZmYTZhYTg2ZDBiZjA5MDk0YWQ1YTRlZjEzYjA5MzQ1ZDI2Y2IxYzg5
10
+ MjlhYjdhYmVkMzUyN2M4ZmU2NTljNzQ1YTUwZWIyNzFjYTYyODk1ZDdiZDA3
11
+ NzY4ZGJlNDIxOTdkYjhlMjRiMzNkYmQ5Njg0NDcxZjAzY2RiYjU=
12
+ data.tar.gz: !binary |-
13
+ ODM4YjY1MmI1MzQ2MWRmZTZkYjIyYTk1MTU0NmU4ODNhNDAyZTRjMzJiY2Yw
14
+ MDM3NGUwNmNiODY4NGIwNjA1YmRhOGQ4YzNiZjE2YzU5OGE0NGE2NDlmMGIy
15
+ NmI3NGZiMTM5ODk0YWI5YThhZDBiYWM3NzBmODhmYTBkNzk5MjE=
data/Gemfile CHANGED
@@ -5,10 +5,8 @@ gemspec
5
5
  group :development, :test do
6
6
  gem 'rake'
7
7
 
8
- platform :mri do
9
- gem 'pry'
10
- gem 'pry-nav'
11
- end
8
+ gem 'pry'
9
+ gem 'pry-nav'
12
10
 
13
11
  platform :rbx do
14
12
  gem 'rubinius-debugger'
@@ -28,9 +26,7 @@ end
28
26
  group :development do
29
27
  gem 'nokogiri', "~> 1.5.9"
30
28
 
31
- # https://github.com/svenfuchs/ruby-cldr/pull/18
32
- # gem 'ruby-cldr', :github => 'svenfuchs/ruby-cldr'
33
- gem 'ruby-cldr', :github => 'camertron/ruby-cldr', :branch => "segmentation"
29
+ gem 'ruby-cldr', :github => 'svenfuchs/ruby-cldr', :tag => 'v0.1.1'
34
30
  end
35
31
 
36
32
  group :test do
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ == 3.0.4
2
+
3
+ * Fixed short numbers formatting for ja, ko, af, and a few other locales.
4
+ * Added more locales: de-CH, en-AU, en-CA, en-GB, en-IE, en-SG, en-ZA,
5
+ es-CO, es-MX, es-US, fr-BE, fr-CA, fr-CH, it-CH.
6
+
1
7
  == 3.0.3
2
8
 
3
9
  * Rubinius support.
data/README.md CHANGED
@@ -472,7 +472,7 @@ postal_code.regexp # /\d{5}([ \-]\d{4})?/
472
472
  Get a sample of valid postal codes with the `#sample` method:
473
473
 
474
474
  ```ruby
475
- postal_code.sample(5) # ["50043", "13363-8821", "70461", "34021-2280", "82049"]
475
+ postal_code.sample(5) # ["15175", "65142", "23110", "81366", "81295-6386"]
476
476
  ```
477
477
 
478
478
  ### Phone Codes
data/Rakefile CHANGED
@@ -62,22 +62,30 @@ else
62
62
  end
63
63
 
64
64
  task :update do
65
- tasks = [
66
- "update:locales_resources",
67
- "update:tailoring_data",
68
- "update:unicode_data",
69
- "update:unicode_properties",
70
- "update:generate_casefolder", # must come after unicode data
71
- "update:composition_exclusions",
72
- "update:postal_codes",
73
- "update:phone_codes",
74
- "update:language_codes",
75
- "update:collation_tries",
76
- "update:canonical_compositions",
77
- "update:rbnf_tests",
78
- "update:segment_exceptions",
79
- "update:readme"
80
- ]
65
+ tasks = if RUBY_PLATFORM == 'java'
66
+ # these should be run using JRuby 1.7 in 1.9 mode and CLDR v23 (v24 collation rules syntax is not supported yet)
67
+ [
68
+ "update:tailoring_data", # per locale
69
+ "update:collation_tries", # per locale, must come after update:tailoring_data
70
+ "update:rbnf_tests", # per locale
71
+ ]
72
+ else
73
+ puts "You might also want to run this rake task using JRuby 1.7 (in 1.9 mode) to update collation data and RBNF tests."
74
+
75
+ [
76
+ "update:locales_resources", # per locale
77
+ "update:unicode_data",
78
+ "update:unicode_properties",
79
+ "update:generate_casefolder", # must come after unicode data
80
+ "update:composition_exclusions",
81
+ "update:postal_codes",
82
+ "update:phone_codes",
83
+ "update:language_codes",
84
+ "update:canonical_compositions",
85
+ "update:segment_exceptions", # per locale
86
+ "update:readme"
87
+ ]
88
+ end
81
89
 
82
90
  tasks.each do |task|
83
91
  puts "Executing #{task}"
@@ -85,6 +93,8 @@ task :update do
85
93
  end
86
94
  end
87
95
 
96
+ # TODO: 'add_locale' task that creates a new directory and runs all necessary 'update' tasks (+ suggests to run those that depend on JRuby)
97
+
88
98
  namespace :update do
89
99
  ICU_JAR = './vendor/icu4j-51_2.jar'
90
100
 
@@ -11,8 +11,8 @@ module TwitterCldr
11
11
  ABBREVIATED_MIN_POWER = 3
12
12
  ABBREVIATED_MAX_POWER = 14
13
13
 
14
- NUMBER_MAX = 10 ** (ABBREVIATED_MAX_POWER + 1)
15
14
  NUMBER_MIN = 10 ** ABBREVIATED_MIN_POWER
15
+ NUMBER_MAX = 10 ** (ABBREVIATED_MAX_POWER + 1)
16
16
 
17
17
  BASE_PATH = [:numbers, :formats]
18
18
  SYMBOL_PATH = [:numbers, :symbols]
@@ -34,6 +34,10 @@ module TwitterCldr
34
34
 
35
35
  attr_reader :type, :format
36
36
 
37
+ def self.types
38
+ TYPE_PATHS.keys
39
+ end
40
+
37
41
  def initialize(locale, options = {})
38
42
  super(locale)
39
43
  @type = options[:type] || DEFAULT_TYPE
@@ -98,7 +102,7 @@ module TwitterCldr
98
102
 
99
103
  def valid_type_for?(number, type)
100
104
  if abbreviated?(type)
101
- (number < NUMBER_MAX) && (number >= NUMBER_MIN)
105
+ self.class.within_abbreviation_range?(number)
102
106
  else
103
107
  TYPE_PATHS.include?(type)
104
108
  end
@@ -137,6 +141,9 @@ module TwitterCldr
137
141
  end
138
142
  end
139
143
 
144
+ def self.within_abbreviation_range?(number)
145
+ NUMBER_MIN <= number && number < NUMBER_MAX
146
+ end
140
147
  end
141
148
  end
142
149
  end
@@ -82,16 +82,8 @@ module TwitterCldr
82
82
  TwitterCldr::Formatters::TimespanFormatter.new(self)
83
83
  end
84
84
 
85
- def all_types
86
- traverse(BASE_PATH + [PATHS[direction][unit]]).keys
87
- end
88
-
89
85
  protected
90
86
 
91
- def default_type
92
- all_types.first
93
- end
94
-
95
87
  def pluralization_for(rule, available)
96
88
  # sometimes the plural rule will return ":one" when the resource only contains a path with "1"
97
89
  case rule
@@ -111,12 +103,19 @@ module TwitterCldr
111
103
  end
112
104
 
113
105
  def resource
114
- @resource = begin
115
- raw = TwitterCldr.get_locale_resource(locale, :units)
116
- raw[TwitterCldr.convert_locale(locale)]
117
- end
106
+ @resource ||= self.class.resource_for_locale(locale)
118
107
  end
119
108
 
109
+ class << self
110
+ def all_types_for(locale, unit, direction)
111
+ TwitterCldr::Utils.traverse_hash(resource_for_locale(locale), BASE_PATH + [PATHS[direction][unit]]).keys
112
+ end
113
+
114
+ def resource_for_locale(locale)
115
+ @resources ||= {}
116
+ @resources[locale] ||= TwitterCldr.get_locale_resource(locale, :units)[TwitterCldr.convert_locale(locale)]
117
+ end
118
+ end
120
119
  end
121
120
  end
122
121
  end
@@ -7,16 +7,18 @@ module TwitterCldr
7
7
  module Formatters
8
8
  class AbbreviatedNumberFormatter < NumberFormatter
9
9
 
10
- protected
10
+ FORMAT_REGEX = /^0+$/
11
11
 
12
- def transform_number(number)
13
- within = number < TwitterCldr::DataReaders::NumberDataReader::NUMBER_MAX &&
14
- number >= TwitterCldr::DataReaders::NumberDataReader::NUMBER_MIN
12
+ protected
15
13
 
16
- if within
17
- power = (((number.to_s.length - 1) / 3) * 3).floor
18
- factor = (10 ** power).to_f
19
- number / factor
14
+ def truncate_number(number, integer_format)
15
+ if TwitterCldr::DataReaders::NumberDataReader.within_abbreviation_range?(number)
16
+ if integer_format.format =~ FORMAT_REGEX
17
+ factor = [0, number.to_i.to_s.length - integer_format.format.length].max
18
+ number / (10.0 ** factor)
19
+ else
20
+ raise ArgumentError.new("unexpected format string #{integer_format.inspect}")
21
+ end
20
22
  else
21
23
  number
22
24
  end
@@ -25,7 +25,7 @@ module TwitterCldr
25
25
  options[:type] ||= :decimal
26
26
 
27
27
  prefix, suffix, integer_format, fraction_format = *partition_tokens(tokens)
28
- number = transform_number(number)
28
+ number = truncate_number(number, integer_format)
29
29
 
30
30
  int, fraction = parse_number(number, options)
31
31
  result = integer_format.apply(int, options)
@@ -46,7 +46,7 @@ module TwitterCldr
46
46
  )
47
47
  end
48
48
 
49
- def transform_number(number)
49
+ def truncate_number(number, integer_format)
50
50
  number # noop for base class
51
51
  end
52
52
 
@@ -13,7 +13,7 @@ module TwitterCldr
13
13
 
14
14
  class << self
15
15
  def types
16
- TwitterCldr::DataReaders::CalendarDataReader::TYPE_PATHS.keys
16
+ TwitterCldr::DataReaders::CalendarDataReader.types
17
17
  end
18
18
  end
19
19
 
@@ -17,7 +17,7 @@ module TwitterCldr
17
17
 
18
18
  class << self
19
19
  def types
20
- TwitterCldr::DataReaders::NumberDataReader::TYPE_PATHS.keys
20
+ TwitterCldr::DataReaders::NumberDataReader.types
21
21
  end
22
22
  end
23
23
 
@@ -33,8 +33,18 @@ module TwitterCldr
33
33
  :format => @format
34
34
  })
35
35
 
36
- tokens = data_reader.tokenizer.tokenize(data_reader.pattern(base_obj))
37
- data_reader.formatter.format(tokens, base_obj, options.merge(:type => @type))
36
+ pattern = data_reader.pattern(base_obj)
37
+
38
+ if pattern == 0
39
+ # can't format the number for current locale
40
+ base_obj.to_s
41
+ else
42
+ data_reader.formatter.format(
43
+ data_reader.tokenizer.tokenize(pattern),
44
+ base_obj,
45
+ options.merge(:type => @type)
46
+ )
47
+ end
38
48
  end
39
49
 
40
50
  def plural_rule
@@ -12,8 +12,7 @@ module TwitterCldr
12
12
 
13
13
  def update_dumps
14
14
  update_default_trie_dump
15
- #TwitterCldr.supported_locales
16
- [:he].each { |locale| update_tailoring_trie_dump(locale) }
15
+ TwitterCldr.supported_locales.each { |locale| update_tailoring_trie_dump(locale) }
17
16
  end
18
17
 
19
18
  private
@@ -13,7 +13,7 @@ module TwitterCldr
13
13
  BCP_47_FILE, ISO_639_FILE = %w[bcp-47.txt iso-639.txt]
14
14
 
15
15
  INPUT_DATA = {
16
- BCP_47_FILE => 'http://www.iana.org/assignments/language-subtag-registry',
16
+ BCP_47_FILE => 'http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry',
17
17
  ISO_639_FILE => 'http://www-01.sil.org/iso639-3/iso-639-3_20120614.tab'
18
18
  }
19
19
 
@@ -3,6 +3,7 @@
3
3
  # Copyright 2012 Twitter, Inc
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
+ require 'fileutils'
6
7
  require 'cldr/export'
7
8
 
8
9
  require 'twitter_cldr/resources/download'
@@ -12,7 +13,8 @@ module TwitterCldr
12
13
 
13
14
  class LocalesResourcesImporter
14
15
 
15
- # NOTE: units.yml was NOT updated to cldr 24 (too many significant changes) - add back in when appropriate
16
+ # NOTE: units.yml was NOT updated to cldr 24 (too many significant changes) - add back in when appropriate.
17
+ # Meanwhile, use ruby-cldr v0.0.2 and CLDR 22.1 to update units.yml files.
16
18
  LOCALE_COMPONENTS = %w[calendars languages numbers plurals lists layout currencies territories rbnf] # units
17
19
  SHARED_COMPONENTS = %w[currency_digits_and_rounding rbnf_root numbering_systems segments_root]
18
20
 
@@ -43,7 +45,15 @@ module TwitterCldr
43
45
  def copy_zh_hant_plurals
44
46
  File.open(File.join(@output_path, 'locales', 'zh-Hant', 'plurals.yml'), 'w:utf-8') do |output|
45
47
  data = YAML.load(File.read(File.join(@output_path, 'locales', 'zh', 'plurals.yml')))
46
- output.write(YAML.dump(:'zh-Hant' => data[:zh].gsub(':zh', ":'zh-Hant'")))
48
+ output.write(YAML.dump(:'zh-Hant' => data[:zh].gsub(":'zh'", ":'zh-Hant'")))
49
+ end
50
+ end
51
+
52
+ def move_segments_root_file
53
+ file_path = File.join(@output_path, 'shared', 'segments_root.yml')
54
+
55
+ if File.file?(file_path)
56
+ FileUtils.move(file_path, File.join(@output_path, 'shared', 'segments', 'segments_root.yml'))
47
57
  end
48
58
  end
49
59
 
@@ -72,6 +82,7 @@ module TwitterCldr
72
82
  deep_symbolize(component, locale, path)
73
83
  end
74
84
 
85
+ move_segments_root_file
75
86
  copy_zh_hant_plurals
76
87
  end
77
88
 
@@ -10,7 +10,8 @@ require 'twitter_cldr/resources/download'
10
10
 
11
11
  module TwitterCldr
12
12
  module Resources
13
- # This class should be used with JRuby 1.7 in 1.9 mode and ICU4J version >= 49.1.
13
+ # This class should be used with JRuby 1.7 in 1.9 mode, ICU4J version >= 49.1,
14
+ # and CLDR version <= 23 (v24 syntax is not supported yet).
14
15
  #
15
16
  class TailoringImporter < IcuBasedImporter
16
17
 
@@ -225,7 +226,7 @@ module TwitterCldr
225
226
  end
226
227
 
227
228
  def get_code_points(string)
228
- TwitterCldr::Normalization::NFD.normalize_code_points(TwitterCldr::Utils::CodePoints.from_string(string))
229
+ TwitterCldr::Utils::CodePoints.from_string(TwitterCldr::Normalization.normalize(string))
229
230
  end
230
231
 
231
232
  end
@@ -86,6 +86,10 @@ module TwitterCldr
86
86
  get_order_for(TwitterCldr::DataReaders::DateTimeDataReader, options)
87
87
  end
88
88
 
89
+ def calendar_data
90
+ @calendar_data ||= TwitterCldr::Utils.traverse_hash(resource, [locale, :calendars, calendar_type])
91
+ end
92
+
89
93
  private
90
94
 
91
95
  def cache_field_data(field, names_form = nil, format = nil)
@@ -154,10 +158,6 @@ module TwitterCldr
154
158
  Regexp.new("^calendars\.#{calendar_type}\.(.*)$")
155
159
  end
156
160
 
157
- def calendar_data
158
- @calendar_data ||= TwitterCldr::Utils.traverse_hash(resource, [locale, :calendars, calendar_type])
159
- end
160
-
161
161
  def resource
162
162
  TwitterCldr.get_locale_resource(@locale, :calendars)
163
163
  end
@@ -19,13 +19,11 @@ module TwitterCldr
19
19
  def for_territory(territory)
20
20
  key = territory.to_s.downcase.to_sym
21
21
  if res = resource[key]
22
- territory_cache[key] ||= begin
23
- new(
24
- territory,
25
- res[:regex],
26
- TwitterCldr::Utils::RegexpAst.load(res[:ast])
27
- )
28
- end
22
+ territory_cache[key] ||= new(
23
+ territory,
24
+ res[:regex],
25
+ TwitterCldr::Utils::RegexpAst.load(res[:ast])
26
+ )
29
27
  else
30
28
  raise InvalidTerritoryError, "invalid territory"
31
29
  end
@@ -4,5 +4,5 @@
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
6
  module TwitterCldr
7
- VERSION = "3.0.3"
7
+ VERSION = "3.0.4"
8
8
  end
@@ -0,0 +1,4 @@
1
+ ---
2
+ :collator_options: {}
3
+ :tailored_table: ''
4
+ :suppressed_contractions: ''
@@ -0,0 +1,4 @@
1
+ ---
2
+ :collator_options: {}
3
+ :tailored_table: ''
4
+ :suppressed_contractions: ''
@@ -0,0 +1,4 @@
1
+ ---
2
+ :collator_options: {}
3
+ :tailored_table: ''
4
+ :suppressed_contractions: ''
@@ -0,0 +1,4 @@
1
+ ---
2
+ :collator_options: {}
3
+ :tailored_table: ''
4
+ :suppressed_contractions: ''