twitter_cldr 3.0.3 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: ''