twitter_cldr 3.0.0.beta1 → 3.0.0

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 (698) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +16 -2
  3. data/History.txt +9 -1
  4. data/README.md +297 -113
  5. data/Rakefile +97 -17
  6. data/lib/twitter_cldr/collation/collator.rb +12 -3
  7. data/lib/twitter_cldr/collation/trie_builder.rb +1 -1
  8. data/lib/twitter_cldr/{tokenizers/calendars → data_readers}/additional_date_format_selector.rb +6 -4
  9. data/lib/twitter_cldr/data_readers/calendar_data_reader.rb +91 -0
  10. data/lib/twitter_cldr/data_readers/data_reader.rb +32 -0
  11. data/lib/twitter_cldr/data_readers/date_data_reader.rb +26 -0
  12. data/lib/twitter_cldr/data_readers/date_time_data_reader.rb +41 -0
  13. data/lib/twitter_cldr/data_readers/number_data_reader.rb +142 -0
  14. data/lib/twitter_cldr/data_readers/time_data_reader.rb +26 -0
  15. data/lib/twitter_cldr/data_readers/timespan_data_reader.rb +122 -0
  16. data/lib/twitter_cldr/data_readers.rb +17 -0
  17. data/lib/twitter_cldr/formatters/calendars/{datetime_formatter.rb → date_time_formatter.rb} +27 -42
  18. data/lib/twitter_cldr/formatters/calendars/timespan_formatter.rb +3 -64
  19. data/lib/twitter_cldr/formatters/formatter.rb +39 -0
  20. data/lib/twitter_cldr/formatters/list_formatter.rb +22 -12
  21. data/lib/twitter_cldr/formatters/numbers/abbreviated/abbreviated_number_formatter.rb +5 -26
  22. data/lib/twitter_cldr/formatters/numbers/currency_formatter.rb +2 -11
  23. data/lib/twitter_cldr/formatters/numbers/decimal_formatter.rb +4 -2
  24. data/lib/twitter_cldr/formatters/numbers/number_formatter.rb +45 -27
  25. data/lib/twitter_cldr/formatters/numbers/percent_formatter.rb +3 -13
  26. data/lib/twitter_cldr/formatters/numbers/rbnf/formatters.rb +224 -0
  27. data/lib/twitter_cldr/formatters/numbers/rbnf/post_processors/chinese.rb +122 -0
  28. data/lib/twitter_cldr/formatters/numbers/rbnf/rule.rb +93 -0
  29. data/lib/twitter_cldr/formatters/numbers/rbnf/rule_group.rb +20 -0
  30. data/lib/twitter_cldr/formatters/numbers/rbnf/rule_parser.rb +86 -0
  31. data/lib/twitter_cldr/formatters/numbers/rbnf/rule_set.rb +259 -0
  32. data/lib/twitter_cldr/formatters/numbers/rbnf/substitution.rb +30 -0
  33. data/lib/twitter_cldr/formatters/numbers/rbnf.rb +127 -0
  34. data/lib/twitter_cldr/formatters/plurals/plural_formatter.rb +18 -6
  35. data/lib/twitter_cldr/formatters.rb +4 -5
  36. data/lib/twitter_cldr/localized/localized_array.rb +1 -1
  37. data/lib/twitter_cldr/localized/localized_date.rb +6 -3
  38. data/lib/twitter_cldr/localized/localized_datetime.rb +38 -15
  39. data/lib/twitter_cldr/localized/localized_number.rb +40 -24
  40. data/lib/twitter_cldr/localized/localized_object.rb +4 -4
  41. data/lib/twitter_cldr/localized/localized_string.rb +40 -7
  42. data/lib/twitter_cldr/localized/localized_time.rb +9 -2
  43. data/lib/twitter_cldr/localized/localized_timespan.rb +50 -5
  44. data/lib/twitter_cldr/normalization.rb +8 -19
  45. data/lib/twitter_cldr/parsers/parser.rb +50 -0
  46. data/lib/twitter_cldr/parsers/segmentation_parser.rb +137 -0
  47. data/lib/twitter_cldr/parsers/symbol_table.rb +30 -0
  48. data/lib/twitter_cldr/parsers/unicode_regex/character_class.rb +91 -0
  49. data/lib/twitter_cldr/parsers/unicode_regex/character_range.rb +39 -0
  50. data/lib/twitter_cldr/parsers/unicode_regex/character_set.rb +65 -0
  51. data/lib/twitter_cldr/parsers/unicode_regex/component.rb +50 -0
  52. data/lib/twitter_cldr/parsers/unicode_regex/literal.rb +83 -0
  53. data/lib/twitter_cldr/parsers/unicode_regex/unicode_string.rb +41 -0
  54. data/lib/twitter_cldr/parsers/unicode_regex_parser.rb +262 -0
  55. data/lib/twitter_cldr/parsers.rb +5 -1
  56. data/lib/twitter_cldr/resources/casefolder.rb.erb +64 -0
  57. data/lib/twitter_cldr/resources/casefolder_class_generator.rb +75 -0
  58. data/lib/twitter_cldr/resources/download.rb +10 -4
  59. data/lib/twitter_cldr/resources/icu_based_importer.rb +18 -0
  60. data/lib/twitter_cldr/resources/locales_resources_importer.rb +24 -13
  61. data/lib/twitter_cldr/resources/normalization_quick_check_importer.rb +1 -14
  62. data/lib/twitter_cldr/resources/rbnf_test_importer.rb +107 -0
  63. data/lib/twitter_cldr/resources/readme_renderer.rb +115 -0
  64. data/lib/twitter_cldr/resources/tailoring_importer.rb +2 -8
  65. data/lib/twitter_cldr/resources/uli/segment_exceptions_importer.rb +62 -0
  66. data/lib/twitter_cldr/resources/uli.rb +12 -0
  67. data/lib/twitter_cldr/resources/unicode_data_importer.rb +84 -14
  68. data/lib/twitter_cldr/resources/unicode_importer.rb +37 -0
  69. data/lib/twitter_cldr/resources/unicode_properties_importer.rb +79 -0
  70. data/lib/twitter_cldr/resources.rb +8 -1
  71. data/lib/twitter_cldr/shared/break_iterator.rb +213 -0
  72. data/lib/twitter_cldr/shared/calendar.rb +38 -14
  73. data/lib/twitter_cldr/shared/casefolder.rb +210 -0
  74. data/lib/twitter_cldr/shared/code_point.rb +103 -16
  75. data/lib/twitter_cldr/shared/numbering_system.rb +58 -0
  76. data/lib/twitter_cldr/shared/territories.rb +43 -1
  77. data/lib/twitter_cldr/shared/unicode_regex.rb +81 -0
  78. data/lib/twitter_cldr/shared.rb +13 -9
  79. data/lib/twitter_cldr/tokenizers/calendars/date_time_tokenizer.rb +77 -0
  80. data/lib/twitter_cldr/tokenizers/calendars/date_tokenizer.rb +14 -29
  81. data/lib/twitter_cldr/tokenizers/calendars/time_tokenizer.rb +13 -28
  82. data/lib/twitter_cldr/tokenizers/calendars/timespan_tokenizer.rb +11 -87
  83. data/lib/twitter_cldr/tokenizers/numbers/number_tokenizer.rb +16 -71
  84. data/lib/twitter_cldr/tokenizers/numbers/rbnf_tokenizer.rb +53 -0
  85. data/lib/twitter_cldr/tokenizers/pattern_tokenizer.rb +42 -0
  86. data/lib/twitter_cldr/tokenizers/segmentation/segmentation_tokenizer.rb +39 -0
  87. data/lib/twitter_cldr/tokenizers/tokenizer.rb +116 -0
  88. data/lib/twitter_cldr/tokenizers/unicode_regex/unicode_regex_tokenizer.rb +52 -0
  89. data/lib/twitter_cldr/tokenizers.rb +8 -4
  90. data/lib/twitter_cldr/utils/code_points.rb +1 -1
  91. data/lib/twitter_cldr/utils/range_set.rb +242 -0
  92. data/lib/twitter_cldr/utils/yaml.rb +17 -12
  93. data/lib/twitter_cldr/utils.rb +1 -1
  94. data/lib/twitter_cldr/version.rb +1 -1
  95. data/lib/twitter_cldr.rb +2 -1
  96. data/resources/custom/locales/sv/units.yml +8 -0
  97. data/resources/locales/af/calendars.yml +278 -224
  98. data/resources/locales/af/currencies.yml +954 -916
  99. data/resources/locales/af/languages.yml +583 -580
  100. data/resources/locales/af/layout.yml +5 -5
  101. data/resources/locales/af/lists.yml +23 -7
  102. data/resources/locales/af/numbers.yml +59 -54
  103. data/resources/locales/af/plurals.yml +2 -2
  104. data/resources/locales/af/rbnf.yml +261 -0
  105. data/resources/locales/af/territories.yml +264 -263
  106. data/resources/locales/ar/calendars.yml +287 -259
  107. data/resources/locales/ar/currencies.yml +1730 -1692
  108. data/resources/locales/ar/languages.yml +583 -580
  109. data/resources/locales/ar/layout.yml +5 -5
  110. data/resources/locales/ar/lists.yml +23 -7
  111. data/resources/locales/ar/numbers.yml +66 -61
  112. data/resources/locales/ar/plurals.yml +5 -8
  113. data/resources/locales/ar/rbnf.yml +519 -0
  114. data/resources/locales/ar/territories.yml +264 -263
  115. data/resources/locales/be/calendars.yml +238 -237
  116. data/resources/locales/be/currencies.yml +954 -917
  117. data/resources/locales/be/languages.yml +583 -580
  118. data/resources/locales/be/layout.yml +5 -5
  119. data/resources/locales/be/lists.yml +23 -7
  120. data/resources/locales/be/numbers.yml +62 -57
  121. data/resources/locales/be/plurals.yml +7 -4
  122. data/resources/locales/be/rbnf.yml +1288 -0
  123. data/resources/locales/be/territories.yml +264 -263
  124. data/resources/locales/bg/calendars.yml +278 -218
  125. data/resources/locales/bg/currencies.yml +955 -917
  126. data/resources/locales/bg/languages.yml +583 -580
  127. data/resources/locales/bg/layout.yml +5 -5
  128. data/resources/locales/bg/lists.yml +23 -7
  129. data/resources/locales/bg/numbers.yml +62 -57
  130. data/resources/locales/bg/plurals.yml +2 -2
  131. data/resources/locales/bg/rbnf.yml +280 -0
  132. data/resources/locales/bg/territories.yml +264 -263
  133. data/resources/locales/bn/calendars.yml +287 -225
  134. data/resources/locales/bn/currencies.yml +953 -916
  135. data/resources/locales/bn/languages.yml +583 -580
  136. data/resources/locales/bn/layout.yml +5 -5
  137. data/resources/locales/bn/lists.yml +23 -7
  138. data/resources/locales/bn/numbers.yml +62 -57
  139. data/resources/locales/bn/plurals.yml +2 -2
  140. data/resources/locales/bn/rbnf.yml +4 -0
  141. data/resources/locales/bn/territories.yml +264 -263
  142. data/resources/locales/ca/calendars.yml +278 -278
  143. data/resources/locales/ca/currencies.yml +953 -916
  144. data/resources/locales/ca/languages.yml +583 -580
  145. data/resources/locales/ca/layout.yml +5 -5
  146. data/resources/locales/ca/lists.yml +23 -7
  147. data/resources/locales/ca/numbers.yml +62 -57
  148. data/resources/locales/ca/plurals.yml +3 -2
  149. data/resources/locales/ca/rbnf.yml +756 -0
  150. data/resources/locales/ca/territories.yml +264 -263
  151. data/resources/locales/cs/calendars.yml +269 -262
  152. data/resources/locales/cs/currencies.yml +1483 -1172
  153. data/resources/locales/cs/languages.yml +583 -580
  154. data/resources/locales/cs/layout.yml +5 -5
  155. data/resources/locales/cs/lists.yml +23 -7
  156. data/resources/locales/cs/numbers.yml +64 -58
  157. data/resources/locales/cs/plurals.yml +6 -2
  158. data/resources/locales/cs/rbnf.yml +367 -0
  159. data/resources/locales/cs/territories.yml +264 -263
  160. data/resources/locales/cy/calendars.yml +275 -274
  161. data/resources/locales/cy/currencies.yml +1585 -1548
  162. data/resources/locales/cy/languages.yml +583 -580
  163. data/resources/locales/cy/layout.yml +5 -5
  164. data/resources/locales/cy/lists.yml +23 -7
  165. data/resources/locales/cy/numbers.yml +66 -61
  166. data/resources/locales/cy/plurals.yml +4 -3
  167. data/resources/locales/cy/rbnf.yml +298 -0
  168. data/resources/locales/cy/territories.yml +264 -263
  169. data/resources/locales/da/calendars.yml +281 -280
  170. data/resources/locales/da/currencies.yml +954 -916
  171. data/resources/locales/da/languages.yml +583 -580
  172. data/resources/locales/da/layout.yml +5 -5
  173. data/resources/locales/da/lists.yml +23 -7
  174. data/resources/locales/da/numbers.yml +62 -57
  175. data/resources/locales/da/plurals.yml +3 -2
  176. data/resources/locales/da/rbnf.yml +194 -0
  177. data/resources/locales/da/territories.yml +264 -263
  178. data/resources/locales/de/calendars.yml +294 -293
  179. data/resources/locales/de/currencies.yml +954 -916
  180. data/resources/locales/de/languages.yml +583 -580
  181. data/resources/locales/de/layout.yml +5 -5
  182. data/resources/locales/de/lists.yml +23 -7
  183. data/resources/locales/de/numbers.yml +62 -57
  184. data/resources/locales/de/plurals.yml +3 -2
  185. data/resources/locales/de/rbnf.yml +346 -0
  186. data/resources/locales/de/territories.yml +264 -263
  187. data/resources/locales/el/calendars.yml +279 -282
  188. data/resources/locales/el/currencies.yml +954 -916
  189. data/resources/locales/el/languages.yml +583 -580
  190. data/resources/locales/el/layout.yml +5 -5
  191. data/resources/locales/el/lists.yml +23 -7
  192. data/resources/locales/el/numbers.yml +62 -57
  193. data/resources/locales/el/plurals.yml +2 -2
  194. data/resources/locales/el/rbnf.yml +880 -0
  195. data/resources/locales/el/territories.yml +264 -263
  196. data/resources/locales/en/calendars.yml +192 -191
  197. data/resources/locales/en/currencies.yml +953 -915
  198. data/resources/locales/en/languages.yml +583 -580
  199. data/resources/locales/en/layout.yml +5 -5
  200. data/resources/locales/en/lists.yml +23 -7
  201. data/resources/locales/en/numbers.yml +62 -57
  202. data/resources/locales/en/plurals.yml +3 -2
  203. data/resources/locales/en/rbnf.yml +542 -0
  204. data/resources/locales/en/territories.yml +264 -263
  205. data/resources/locales/en-GB/calendars.yml +195 -194
  206. data/resources/locales/en-GB/currencies.yml +953 -915
  207. data/resources/locales/en-GB/languages.yml +583 -580
  208. data/resources/locales/en-GB/layout.yml +5 -5
  209. data/resources/locales/en-GB/lists.yml +23 -7
  210. data/resources/locales/en-GB/numbers.yml +62 -57
  211. data/resources/locales/en-GB/plurals.yml +2 -1
  212. data/resources/locales/en-GB/rbnf.yml +4 -0
  213. data/resources/locales/en-GB/territories.yml +264 -263
  214. data/resources/locales/es/calendars.yml +288 -238
  215. data/resources/locales/es/currencies.yml +953 -922
  216. data/resources/locales/es/languages.yml +583 -580
  217. data/resources/locales/es/layout.yml +5 -5
  218. data/resources/locales/es/lists.yml +23 -7
  219. data/resources/locales/es/numbers.yml +62 -57
  220. data/resources/locales/es/plurals.yml +2 -2
  221. data/resources/locales/es/rbnf.yml +913 -0
  222. data/resources/locales/es/territories.yml +264 -263
  223. data/resources/locales/eu/calendars.yml +277 -218
  224. data/resources/locales/eu/currencies.yml +953 -916
  225. data/resources/locales/eu/languages.yml +583 -580
  226. data/resources/locales/eu/layout.yml +5 -5
  227. data/resources/locales/eu/lists.yml +23 -7
  228. data/resources/locales/eu/numbers.yml +56 -51
  229. data/resources/locales/eu/plurals.yml +2 -2
  230. data/resources/locales/eu/rbnf.yml +4 -0
  231. data/resources/locales/eu/territories.yml +264 -263
  232. data/resources/locales/fa/calendars.yml +294 -293
  233. data/resources/locales/fa/currencies.yml +955 -916
  234. data/resources/locales/fa/languages.yml +583 -580
  235. data/resources/locales/fa/layout.yml +5 -5
  236. data/resources/locales/fa/lists.yml +23 -7
  237. data/resources/locales/fa/numbers.yml +62 -57
  238. data/resources/locales/fa/plurals.yml +2 -2
  239. data/resources/locales/fa/rbnf.yml +157 -0
  240. data/resources/locales/fa/territories.yml +264 -263
  241. data/resources/locales/fi/calendars.yml +284 -283
  242. data/resources/locales/fi/currencies.yml +953 -915
  243. data/resources/locales/fi/languages.yml +583 -580
  244. data/resources/locales/fi/layout.yml +5 -5
  245. data/resources/locales/fi/lists.yml +23 -7
  246. data/resources/locales/fi/numbers.yml +62 -57
  247. data/resources/locales/fi/plurals.yml +3 -2
  248. data/resources/locales/fi/rbnf.yml +206 -0
  249. data/resources/locales/fi/territories.yml +264 -263
  250. data/resources/locales/fil/calendars.yml +281 -230
  251. data/resources/locales/fil/currencies.yml +953 -916
  252. data/resources/locales/fil/languages.yml +583 -580
  253. data/resources/locales/fil/layout.yml +5 -5
  254. data/resources/locales/fil/lists.yml +23 -7
  255. data/resources/locales/fil/numbers.yml +62 -57
  256. data/resources/locales/fil/plurals.yml +3 -2
  257. data/resources/locales/fil/rbnf.yml +158 -0
  258. data/resources/locales/fil/territories.yml +264 -263
  259. data/resources/locales/fr/calendars.yml +297 -296
  260. data/resources/locales/fr/currencies.yml +968 -949
  261. data/resources/locales/fr/languages.yml +583 -580
  262. data/resources/locales/fr/layout.yml +5 -5
  263. data/resources/locales/fr/lists.yml +23 -7
  264. data/resources/locales/fr/numbers.yml +62 -57
  265. data/resources/locales/fr/plurals.yml +2 -2
  266. data/resources/locales/fr/rbnf.yml +621 -0
  267. data/resources/locales/fr/territories.yml +264 -263
  268. data/resources/locales/ga/calendars.yml +192 -191
  269. data/resources/locales/ga/currencies.yml +954 -916
  270. data/resources/locales/ga/languages.yml +583 -580
  271. data/resources/locales/ga/layout.yml +5 -5
  272. data/resources/locales/ga/lists.yml +23 -7
  273. data/resources/locales/ga/numbers.yml +62 -57
  274. data/resources/locales/ga/plurals.yml +4 -3
  275. data/resources/locales/ga/rbnf.yml +615 -0
  276. data/resources/locales/ga/territories.yml +264 -263
  277. data/resources/locales/gl/calendars.yml +283 -217
  278. data/resources/locales/gl/currencies.yml +953 -916
  279. data/resources/locales/gl/languages.yml +583 -580
  280. data/resources/locales/gl/layout.yml +5 -5
  281. data/resources/locales/gl/lists.yml +23 -7
  282. data/resources/locales/gl/numbers.yml +62 -57
  283. data/resources/locales/gl/plurals.yml +3 -2
  284. data/resources/locales/gl/rbnf.yml +4 -0
  285. data/resources/locales/gl/territories.yml +264 -263
  286. data/resources/locales/he/calendars.yml +248 -220
  287. data/resources/locales/he/currencies.yml +992 -932
  288. data/resources/locales/he/languages.yml +583 -580
  289. data/resources/locales/he/layout.yml +5 -5
  290. data/resources/locales/he/lists.yml +23 -7
  291. data/resources/locales/he/numbers.yml +64 -59
  292. data/resources/locales/he/plurals.yml +6 -3
  293. data/resources/locales/he/rbnf.yml +1029 -0
  294. data/resources/locales/he/territories.yml +264 -263
  295. data/resources/locales/hi/calendars.yml +284 -216
  296. data/resources/locales/hi/currencies.yml +953 -915
  297. data/resources/locales/hi/languages.yml +583 -580
  298. data/resources/locales/hi/layout.yml +5 -5
  299. data/resources/locales/hi/lists.yml +23 -7
  300. data/resources/locales/hi/numbers.yml +60 -55
  301. data/resources/locales/hi/plurals.yml +2 -2
  302. data/resources/locales/hi/rbnf.yml +430 -0
  303. data/resources/locales/hi/territories.yml +264 -263
  304. data/resources/locales/hr/calendars.yml +308 -307
  305. data/resources/locales/hr/currencies.yml +1248 -1504
  306. data/resources/locales/hr/languages.yml +583 -580
  307. data/resources/locales/hr/layout.yml +5 -5
  308. data/resources/locales/hr/lists.yml +23 -7
  309. data/resources/locales/hr/numbers.yml +63 -59
  310. data/resources/locales/hr/plurals.yml +12 -4
  311. data/resources/locales/hr/rbnf.yml +599 -0
  312. data/resources/locales/hr/territories.yml +264 -263
  313. data/resources/locales/hu/calendars.yml +285 -284
  314. data/resources/locales/hu/currencies.yml +954 -916
  315. data/resources/locales/hu/languages.yml +583 -580
  316. data/resources/locales/hu/layout.yml +5 -5
  317. data/resources/locales/hu/lists.yml +23 -7
  318. data/resources/locales/hu/numbers.yml +62 -57
  319. data/resources/locales/hu/plurals.yml +2 -2
  320. data/resources/locales/hu/rbnf.yml +363 -0
  321. data/resources/locales/hu/territories.yml +264 -263
  322. data/resources/locales/id/calendars.yml +276 -275
  323. data/resources/locales/id/currencies.yml +954 -916
  324. data/resources/locales/id/languages.yml +583 -580
  325. data/resources/locales/id/layout.yml +5 -5
  326. data/resources/locales/id/lists.yml +23 -7
  327. data/resources/locales/id/numbers.yml +61 -56
  328. data/resources/locales/id/plurals.yml +2 -2
  329. data/resources/locales/id/rbnf.yml +121 -0
  330. data/resources/locales/id/territories.yml +264 -263
  331. data/resources/locales/is/calendars.yml +281 -242
  332. data/resources/locales/is/currencies.yml +954 -916
  333. data/resources/locales/is/languages.yml +583 -580
  334. data/resources/locales/is/layout.yml +5 -5
  335. data/resources/locales/is/lists.yml +23 -7
  336. data/resources/locales/is/numbers.yml +62 -57
  337. data/resources/locales/is/plurals.yml +5 -2
  338. data/resources/locales/is/rbnf.yml +326 -0
  339. data/resources/locales/is/territories.yml +264 -263
  340. data/resources/locales/it/calendars.yml +275 -260
  341. data/resources/locales/it/currencies.yml +953 -920
  342. data/resources/locales/it/languages.yml +583 -580
  343. data/resources/locales/it/layout.yml +5 -5
  344. data/resources/locales/it/lists.yml +23 -7
  345. data/resources/locales/it/numbers.yml +59 -54
  346. data/resources/locales/it/plurals.yml +3 -2
  347. data/resources/locales/it/rbnf.yml +1189 -0
  348. data/resources/locales/it/territories.yml +264 -263
  349. data/resources/locales/ja/calendars.yml +269 -207
  350. data/resources/locales/ja/currencies.yml +953 -915
  351. data/resources/locales/ja/languages.yml +583 -580
  352. data/resources/locales/ja/layout.yml +5 -5
  353. data/resources/locales/ja/lists.yml +23 -7
  354. data/resources/locales/ja/numbers.yml +62 -57
  355. data/resources/locales/ja/plurals.yml +2 -2
  356. data/resources/locales/ja/rbnf.yml +209 -0
  357. data/resources/locales/ja/territories.yml +264 -263
  358. data/resources/locales/ko/calendars.yml +246 -213
  359. data/resources/locales/ko/currencies.yml +953 -915
  360. data/resources/locales/ko/languages.yml +583 -580
  361. data/resources/locales/ko/layout.yml +5 -5
  362. data/resources/locales/ko/lists.yml +23 -7
  363. data/resources/locales/ko/numbers.yml +60 -55
  364. data/resources/locales/ko/plurals.yml +2 -2
  365. data/resources/locales/ko/rbnf.yml +722 -0
  366. data/resources/locales/ko/territories.yml +264 -263
  367. data/resources/locales/lv/calendars.yml +286 -285
  368. data/resources/locales/lv/currencies.yml +1122 -1084
  369. data/resources/locales/lv/languages.yml +583 -580
  370. data/resources/locales/lv/layout.yml +5 -5
  371. data/resources/locales/lv/lists.yml +23 -7
  372. data/resources/locales/lv/numbers.yml +63 -58
  373. data/resources/locales/lv/plurals.yml +11 -3
  374. data/resources/locales/lv/rbnf.yml +238 -0
  375. data/resources/locales/lv/territories.yml +264 -263
  376. data/resources/locales/ms/calendars.yml +280 -279
  377. data/resources/locales/ms/currencies.yml +954 -916
  378. data/resources/locales/ms/languages.yml +583 -580
  379. data/resources/locales/ms/layout.yml +5 -5
  380. data/resources/locales/ms/lists.yml +23 -7
  381. data/resources/locales/ms/numbers.yml +62 -57
  382. data/resources/locales/ms/plurals.yml +2 -2
  383. data/resources/locales/ms/rbnf.yml +130 -0
  384. data/resources/locales/ms/territories.yml +264 -263
  385. data/resources/locales/nb/calendars.yml +284 -283
  386. data/resources/locales/nb/currencies.yml +958 -916
  387. data/resources/locales/nb/languages.yml +583 -580
  388. data/resources/locales/nb/layout.yml +5 -5
  389. data/resources/locales/nb/lists.yml +23 -7
  390. data/resources/locales/nb/numbers.yml +62 -57
  391. data/resources/locales/nb/plurals.yml +2 -2
  392. data/resources/locales/nb/rbnf.yml +191 -0
  393. data/resources/locales/nb/territories.yml +264 -263
  394. data/resources/locales/nl/calendars.yml +285 -284
  395. data/resources/locales/nl/currencies.yml +953 -917
  396. data/resources/locales/nl/languages.yml +583 -580
  397. data/resources/locales/nl/layout.yml +5 -5
  398. data/resources/locales/nl/lists.yml +23 -7
  399. data/resources/locales/nl/numbers.yml +62 -57
  400. data/resources/locales/nl/plurals.yml +3 -2
  401. data/resources/locales/nl/rbnf.yml +320 -0
  402. data/resources/locales/nl/territories.yml +264 -263
  403. data/resources/locales/pl/calendars.yml +288 -287
  404. data/resources/locales/pl/currencies.yml +1326 -1284
  405. data/resources/locales/pl/languages.yml +583 -580
  406. data/resources/locales/pl/layout.yml +5 -5
  407. data/resources/locales/pl/lists.yml +23 -7
  408. data/resources/locales/pl/numbers.yml +64 -59
  409. data/resources/locales/pl/plurals.yml +11 -4
  410. data/resources/locales/pl/rbnf.yml +410 -0
  411. data/resources/locales/pl/territories.yml +264 -263
  412. data/resources/locales/pt/calendars.yml +290 -289
  413. data/resources/locales/pt/currencies.yml +954 -916
  414. data/resources/locales/pt/languages.yml +583 -580
  415. data/resources/locales/pt/layout.yml +5 -5
  416. data/resources/locales/pt/lists.yml +23 -7
  417. data/resources/locales/pt/numbers.yml +62 -57
  418. data/resources/locales/pt/plurals.yml +4 -2
  419. data/resources/locales/pt/rbnf.yml +586 -0
  420. data/resources/locales/pt/territories.yml +264 -263
  421. data/resources/locales/ro/calendars.yml +284 -283
  422. data/resources/locales/ro/currencies.yml +1170 -1132
  423. data/resources/locales/ro/languages.yml +583 -580
  424. data/resources/locales/ro/layout.yml +5 -5
  425. data/resources/locales/ro/lists.yml +23 -7
  426. data/resources/locales/ro/numbers.yml +63 -58
  427. data/resources/locales/ro/plurals.yml +5 -2
  428. data/resources/locales/ro/rbnf.yml +250 -0
  429. data/resources/locales/ro/territories.yml +264 -263
  430. data/resources/locales/ru/calendars.yml +282 -281
  431. data/resources/locales/ru/currencies.yml +1118 -1247
  432. data/resources/locales/ru/languages.yml +583 -580
  433. data/resources/locales/ru/layout.yml +5 -5
  434. data/resources/locales/ru/lists.yml +23 -7
  435. data/resources/locales/ru/numbers.yml +63 -59
  436. data/resources/locales/ru/plurals.yml +8 -4
  437. data/resources/locales/ru/rbnf.yml +385 -0
  438. data/resources/locales/ru/territories.yml +264 -263
  439. data/resources/locales/sk/calendars.yml +254 -251
  440. data/resources/locales/sk/currencies.yml +1174 -1008
  441. data/resources/locales/sk/languages.yml +583 -580
  442. data/resources/locales/sk/layout.yml +5 -5
  443. data/resources/locales/sk/lists.yml +23 -7
  444. data/resources/locales/sk/numbers.yml +64 -58
  445. data/resources/locales/sk/plurals.yml +6 -2
  446. data/resources/locales/sk/rbnf.yml +304 -0
  447. data/resources/locales/sk/territories.yml +264 -263
  448. data/resources/locales/sq/calendars.yml +283 -206
  449. data/resources/locales/sq/currencies.yml +954 -916
  450. data/resources/locales/sq/languages.yml +583 -580
  451. data/resources/locales/sq/layout.yml +5 -5
  452. data/resources/locales/sq/lists.yml +23 -7
  453. data/resources/locales/sq/numbers.yml +62 -57
  454. data/resources/locales/sq/plurals.yml +2 -2
  455. data/resources/locales/sq/rbnf.yml +181 -0
  456. data/resources/locales/sq/territories.yml +264 -263
  457. data/resources/locales/sr/calendars.yml +290 -289
  458. data/resources/locales/sr/currencies.yml +1251 -1508
  459. data/resources/locales/sr/languages.yml +583 -580
  460. data/resources/locales/sr/layout.yml +5 -5
  461. data/resources/locales/sr/lists.yml +23 -7
  462. data/resources/locales/sr/numbers.yml +62 -58
  463. data/resources/locales/sr/plurals.yml +12 -4
  464. data/resources/locales/sr/rbnf.yml +429 -0
  465. data/resources/locales/sr/territories.yml +264 -263
  466. data/resources/locales/sv/calendars.yml +290 -289
  467. data/resources/locales/sv/currencies.yml +960 -930
  468. data/resources/locales/sv/languages.yml +583 -580
  469. data/resources/locales/sv/layout.yml +5 -5
  470. data/resources/locales/sv/lists.yml +23 -7
  471. data/resources/locales/sv/numbers.yml +63 -58
  472. data/resources/locales/sv/plurals.yml +3 -2
  473. data/resources/locales/sv/rbnf.yml +692 -0
  474. data/resources/locales/sv/territories.yml +264 -263
  475. data/resources/locales/ta/calendars.yml +281 -266
  476. data/resources/locales/ta/currencies.yml +953 -915
  477. data/resources/locales/ta/languages.yml +583 -580
  478. data/resources/locales/ta/layout.yml +5 -5
  479. data/resources/locales/ta/lists.yml +23 -7
  480. data/resources/locales/ta/numbers.yml +62 -57
  481. data/resources/locales/ta/plurals.yml +2 -2
  482. data/resources/locales/ta/rbnf.yml +241 -0
  483. data/resources/locales/ta/territories.yml +264 -263
  484. data/resources/locales/th/calendars.yml +278 -289
  485. data/resources/locales/th/currencies.yml +953 -915
  486. data/resources/locales/th/languages.yml +583 -580
  487. data/resources/locales/th/layout.yml +5 -5
  488. data/resources/locales/th/lists.yml +23 -7
  489. data/resources/locales/th/numbers.yml +62 -57
  490. data/resources/locales/th/plurals.yml +2 -2
  491. data/resources/locales/th/rbnf.yml +119 -0
  492. data/resources/locales/th/territories.yml +264 -263
  493. data/resources/locales/tr/calendars.yml +287 -286
  494. data/resources/locales/tr/currencies.yml +953 -916
  495. data/resources/locales/tr/languages.yml +583 -580
  496. data/resources/locales/tr/layout.yml +5 -5
  497. data/resources/locales/tr/lists.yml +23 -7
  498. data/resources/locales/tr/numbers.yml +61 -56
  499. data/resources/locales/tr/plurals.yml +2 -2
  500. data/resources/locales/tr/rbnf.yml +277 -0
  501. data/resources/locales/tr/territories.yml +264 -263
  502. data/resources/locales/uk/calendars.yml +286 -252
  503. data/resources/locales/uk/currencies.yml +1311 -1070
  504. data/resources/locales/uk/languages.yml +583 -580
  505. data/resources/locales/uk/layout.yml +5 -5
  506. data/resources/locales/uk/lists.yml +23 -7
  507. data/resources/locales/uk/numbers.yml +64 -59
  508. data/resources/locales/uk/plurals.yml +10 -4
  509. data/resources/locales/uk/rbnf.yml +430 -0
  510. data/resources/locales/uk/territories.yml +264 -263
  511. data/resources/locales/ur/calendars.yml +267 -228
  512. data/resources/locales/ur/currencies.yml +954 -916
  513. data/resources/locales/ur/languages.yml +583 -580
  514. data/resources/locales/ur/layout.yml +5 -5
  515. data/resources/locales/ur/lists.yml +23 -7
  516. data/resources/locales/ur/numbers.yml +62 -57
  517. data/resources/locales/ur/plurals.yml +3 -2
  518. data/resources/locales/ur/rbnf.yml +4 -0
  519. data/resources/locales/ur/territories.yml +264 -263
  520. data/resources/locales/vi/calendars.yml +256 -236
  521. data/resources/locales/vi/currencies.yml +953 -915
  522. data/resources/locales/vi/languages.yml +583 -580
  523. data/resources/locales/vi/layout.yml +5 -5
  524. data/resources/locales/vi/lists.yml +23 -7
  525. data/resources/locales/vi/numbers.yml +62 -57
  526. data/resources/locales/vi/plurals.yml +2 -2
  527. data/resources/locales/vi/rbnf.yml +164 -0
  528. data/resources/locales/vi/territories.yml +264 -263
  529. data/resources/locales/zh/calendars.yml +266 -265
  530. data/resources/locales/zh/currencies.yml +953 -915
  531. data/resources/locales/zh/languages.yml +583 -580
  532. data/resources/locales/zh/layout.yml +5 -5
  533. data/resources/locales/zh/lists.yml +23 -7
  534. data/resources/locales/zh/numbers.yml +62 -57
  535. data/resources/locales/zh/plurals.yml +2 -2
  536. data/resources/locales/zh/rbnf.yml +689 -0
  537. data/resources/locales/zh/territories.yml +264 -263
  538. data/resources/locales/zh-Hant/calendars.yml +266 -265
  539. data/resources/locales/zh-Hant/currencies.yml +955 -915
  540. data/resources/locales/zh-Hant/languages.yml +583 -580
  541. data/resources/locales/zh-Hant/layout.yml +5 -5
  542. data/resources/locales/zh-Hant/lists.yml +23 -7
  543. data/resources/locales/zh-Hant/numbers.yml +62 -57
  544. data/resources/locales/zh-Hant/plurals.yml +2 -2
  545. data/resources/locales/zh-Hant/rbnf.yml +647 -0
  546. data/resources/locales/zh-Hant/territories.yml +264 -263
  547. data/resources/shared/currency_digits_and_rounding.yml +67 -64
  548. data/resources/shared/numbering_systems.yml +176 -0
  549. data/resources/shared/rbnf_root.yml +1573 -0
  550. data/resources/shared/segments/segments_root.yml +728 -0
  551. data/resources/shared/segments/tailorings/en.yml +8 -0
  552. data/resources/uli/segments/de.yml +128 -0
  553. data/resources/uli/segments/en.yml +154 -0
  554. data/resources/uli/segments/es.yml +112 -0
  555. data/resources/uli/segments/fr.yml +47 -0
  556. data/resources/uli/segments/it.yml +37 -0
  557. data/resources/uli/segments/pt.yml +173 -0
  558. data/resources/uli/segments/ru.yml +10 -0
  559. data/resources/unicode_data/casefolding.yml +4765 -0
  560. data/resources/unicode_data/indices/bidi_class.yml +4572 -0
  561. data/resources/unicode_data/indices/bidi_mirrored.yml +3087 -0
  562. data/resources/unicode_data/indices/category.yml +10918 -0
  563. data/resources/unicode_data/indices/keys.yml +101 -0
  564. data/resources/unicode_data/properties/line_break.yml +9269 -0
  565. data/resources/unicode_data/properties/sentence_break.yml +8067 -0
  566. data/resources/unicode_data/properties/word_break.yml +3001 -0
  567. data/spec/collation/collation_spec.rb +2 -1
  568. data/spec/collation/collator_spec.rb +4 -3
  569. data/spec/collation/tailoring_spec.rb +2 -2
  570. data/spec/collation/tailoring_tests/he.txt +5 -2
  571. data/spec/{tokenizers/calendars → data_readers}/additional_date_format_selector_spec.rb +13 -13
  572. data/spec/data_readers/date_time_data_reader_spec.rb +26 -0
  573. data/spec/data_readers/number_data_reader_spec.rb +18 -0
  574. data/spec/data_readers/timespan_data_reader.rb +22 -0
  575. data/spec/formatters/calendars/datetime_formatter_spec.rb +18 -22
  576. data/spec/formatters/list_formatter_spec.rb +16 -87
  577. data/spec/formatters/numbers/abbreviated/abbreviated_number_formatter_spec.rb +15 -59
  578. data/spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb +32 -17
  579. data/spec/formatters/numbers/abbreviated/short_decimal_formatter_spec.rb +33 -17
  580. data/spec/formatters/numbers/currency_formatter_spec.rb +18 -13
  581. data/spec/formatters/numbers/decimal_formatter_spec.rb +16 -18
  582. data/spec/formatters/numbers/number_formatter_spec.rb +40 -31
  583. data/spec/formatters/numbers/percent_formatter_spec.rb +14 -6
  584. data/spec/formatters/numbers/rbnf/allowed_failures.yml +74 -0
  585. data/spec/formatters/numbers/rbnf/locales/af/rbnf_test.yml +706 -0
  586. data/spec/formatters/numbers/rbnf/locales/ar/rbnf_test.yml +706 -0
  587. data/spec/formatters/numbers/rbnf/locales/be/rbnf_test.yml +1174 -0
  588. data/spec/formatters/numbers/rbnf/locales/bg/rbnf_test.yml +706 -0
  589. data/spec/formatters/numbers/rbnf/locales/bn/rbnf_test.yml +1291 -0
  590. data/spec/formatters/numbers/rbnf/locales/ca/rbnf_test.yml +1174 -0
  591. data/spec/formatters/numbers/rbnf/locales/cs/rbnf_test.yml +823 -0
  592. data/spec/formatters/numbers/rbnf/locales/cy/rbnf_test.yml +940 -0
  593. data/spec/formatters/numbers/rbnf/locales/da/rbnf_test.yml +940 -0
  594. data/spec/formatters/numbers/rbnf/locales/de/rbnf_test.yml +940 -0
  595. data/spec/formatters/numbers/rbnf/locales/el/rbnf_test.yml +1174 -0
  596. data/spec/formatters/numbers/rbnf/locales/en/rbnf_test.yml +1291 -0
  597. data/spec/formatters/numbers/rbnf/locales/en-GB/rbnf_test.yml +1291 -0
  598. data/spec/formatters/numbers/rbnf/locales/es/rbnf_test.yml +1642 -0
  599. data/spec/formatters/numbers/rbnf/locales/eu/rbnf_test.yml +1291 -0
  600. data/spec/formatters/numbers/rbnf/locales/fa/rbnf_test.yml +589 -0
  601. data/spec/formatters/numbers/rbnf/locales/fi/rbnf_test.yml +706 -0
  602. data/spec/formatters/numbers/rbnf/locales/fil/rbnf_test.yml +706 -0
  603. data/spec/formatters/numbers/rbnf/locales/fr/rbnf_test.yml +1408 -0
  604. data/spec/formatters/numbers/rbnf/locales/ga/rbnf_test.yml +940 -0
  605. data/spec/formatters/numbers/rbnf/locales/gl/rbnf_test.yml +1291 -0
  606. data/spec/formatters/numbers/rbnf/locales/he/rbnf_test.yml +1057 -0
  607. data/spec/formatters/numbers/rbnf/locales/hi/rbnf_test.yml +823 -0
  608. data/spec/formatters/numbers/rbnf/locales/hr/rbnf_test.yml +1174 -0
  609. data/spec/formatters/numbers/rbnf/locales/hu/rbnf_test.yml +940 -0
  610. data/spec/formatters/numbers/rbnf/locales/id/rbnf_test.yml +706 -0
  611. data/spec/formatters/numbers/rbnf/locales/is/rbnf_test.yml +823 -0
  612. data/spec/formatters/numbers/rbnf/locales/it/rbnf_test.yml +1174 -0
  613. data/spec/formatters/numbers/rbnf/locales/ja/rbnf_test.yml +823 -0
  614. data/spec/formatters/numbers/rbnf/locales/ko/rbnf_test.yml +1408 -0
  615. data/spec/formatters/numbers/rbnf/locales/lv/rbnf_test.yml +706 -0
  616. data/spec/formatters/numbers/rbnf/locales/ms/rbnf_test.yml +706 -0
  617. data/spec/formatters/numbers/rbnf/locales/nb/rbnf_test.yml +940 -0
  618. data/spec/formatters/numbers/rbnf/locales/nl/rbnf_test.yml +706 -0
  619. data/spec/formatters/numbers/rbnf/locales/pl/rbnf_test.yml +823 -0
  620. data/spec/formatters/numbers/rbnf/locales/pt/rbnf_test.yml +1174 -0
  621. data/spec/formatters/numbers/rbnf/locales/ro/rbnf_test.yml +823 -0
  622. data/spec/formatters/numbers/rbnf/locales/ru/rbnf_test.yml +823 -0
  623. data/spec/formatters/numbers/rbnf/locales/sk/rbnf_test.yml +823 -0
  624. data/spec/formatters/numbers/rbnf/locales/sq/rbnf_test.yml +706 -0
  625. data/spec/formatters/numbers/rbnf/locales/sr/rbnf_test.yml +940 -0
  626. data/spec/formatters/numbers/rbnf/locales/sv/rbnf_test.yml +1876 -0
  627. data/spec/formatters/numbers/rbnf/locales/ta/rbnf_test.yml +706 -0
  628. data/spec/formatters/numbers/rbnf/locales/th/rbnf_test.yml +706 -0
  629. data/spec/formatters/numbers/rbnf/locales/tr/rbnf_test.yml +706 -0
  630. data/spec/formatters/numbers/rbnf/locales/uk/rbnf_test.yml +823 -0
  631. data/spec/formatters/numbers/rbnf/locales/ur/rbnf_test.yml +1291 -0
  632. data/spec/formatters/numbers/rbnf/locales/vi/rbnf_test.yml +706 -0
  633. data/spec/formatters/numbers/rbnf/locales/zh/rbnf_test.yml +940 -0
  634. data/spec/formatters/numbers/rbnf/locales/zh-Hant/rbnf_test.yml +940 -0
  635. data/spec/formatters/numbers/rbnf/rbnf_spec.rb +98 -0
  636. data/spec/formatters/plurals/plural_formatter_spec.rb +4 -4
  637. data/spec/formatters/plurals/rules_spec.rb +5 -5
  638. data/spec/localized/localized_date_spec.rb +1 -1
  639. data/spec/localized/localized_datetime_spec.rb +8 -13
  640. data/spec/localized/localized_number_spec.rb +17 -32
  641. data/spec/localized/localized_object_spec.rb +0 -5
  642. data/spec/localized/localized_string_spec.rb +40 -2
  643. data/spec/localized/localized_time_spec.rb +3 -6
  644. data/spec/localized/localized_timespan_spec.rb +144 -0
  645. data/spec/normalization_spec.rb +12 -12
  646. data/spec/parsers/number_parser_spec.rb +5 -5
  647. data/spec/parsers/parser_spec.rb +60 -0
  648. data/spec/parsers/segmentation_parser_spec.rb +96 -0
  649. data/spec/parsers/symbol_table_spec.rb +32 -0
  650. data/spec/parsers/unicode_regex/character_class_spec.rb +117 -0
  651. data/spec/parsers/unicode_regex/character_range_spec.rb +21 -0
  652. data/spec/parsers/unicode_regex/character_set_spec.rb +36 -0
  653. data/spec/parsers/unicode_regex/literal_spec.rb +34 -0
  654. data/spec/parsers/unicode_regex/unicode_string_spec.rb +22 -0
  655. data/spec/parsers/unicode_regex_parser_spec.rb +86 -0
  656. data/spec/readme_spec.rb +8 -269
  657. data/spec/shared/break_iterator_spec.rb +72 -0
  658. data/spec/shared/calendar_spec.rb +5 -4
  659. data/spec/shared/casefolder_spec.rb +30 -0
  660. data/spec/shared/casefolding.txt +251 -0
  661. data/spec/shared/casefolding_expected.txt +251 -0
  662. data/spec/shared/code_point_spec.rb +44 -14
  663. data/spec/shared/numbering_system_spec.rb +41 -0
  664. data/spec/shared/territories_spec.rb +14 -6
  665. data/spec/shared/unicode_regex_spec.rb +203 -0
  666. data/spec/spec_helper.rb +17 -0
  667. data/spec/tokenizers/calendars/date_tokenizer_spec.rb +26 -30
  668. data/spec/tokenizers/calendars/datetime_tokenizer_spec.rb +11 -90
  669. data/spec/tokenizers/calendars/time_tokenizer_spec.rb +5 -5
  670. data/spec/tokenizers/calendars/timespan_tokenizer_spec.rb +17 -7
  671. data/spec/tokenizers/numbers/number_tokenizer_spec.rb +28 -27
  672. data/spec/tokenizers/segmentation/segmentation_tokenizer_spec.rb +40 -0
  673. data/spec/tokenizers/unicode_regex/unicode_regex_tokenizer_spec.rb +190 -0
  674. data/spec/utils/range_set_spec.rb +171 -0
  675. data/spec/utils/yaml/yaml_spec.rb +62 -51
  676. data/twitter_cldr.gemspec +1 -1
  677. metadata +199 -30
  678. data/lib/twitter_cldr/formatters/base.rb +0 -47
  679. data/lib/twitter_cldr/formatters/calendars/date_formatter.rb +0 -19
  680. data/lib/twitter_cldr/formatters/calendars/time_formatter.rb +0 -19
  681. data/lib/twitter_cldr/normalization/base.rb +0 -37
  682. data/lib/twitter_cldr/normalization/hangul.rb +0 -79
  683. data/lib/twitter_cldr/normalization/nfc.rb +0 -24
  684. data/lib/twitter_cldr/normalization/nfd.rb +0 -26
  685. data/lib/twitter_cldr/normalization/nfkc.rb +0 -114
  686. data/lib/twitter_cldr/normalization/nfkd.rb +0 -120
  687. data/lib/twitter_cldr/normalization/quick_check.rb +0 -41
  688. data/lib/twitter_cldr/tokenizers/base.rb +0 -169
  689. data/lib/twitter_cldr/tokenizers/calendars/datetime_tokenizer.rb +0 -131
  690. data/lib/twitter_cldr/utils/territories.rb +0 -56
  691. data/spec/formatters/base_spec.rb +0 -18
  692. data/spec/formatters/calendars/timespan_formatter_spec.rb +0 -112
  693. data/spec/normalization/NormalizationTestShort.txt +0 -602
  694. data/spec/normalization/base_spec.rb +0 -16
  695. data/spec/normalization/hangul_spec.rb +0 -42
  696. data/spec/normalization/normalization_spec.rb +0 -113
  697. data/spec/tokenizers/base_spec.rb +0 -259
  698. data/spec/utils/territories_spec.rb +0 -16
@@ -0,0 +1,706 @@
1
+ ---
2
+ SpelloutRules:
3
+ spellout-ordinal:
4
+ -1141: minus keseribu seratus empat puluh satu
5
+ -1142: minus keseribu seratus empat puluh dua
6
+ -1143: minus keseribu seratus empat puluh tiga
7
+ -100: minus keseratus
8
+ -75: minus ketujuh puluh lima
9
+ -50: minus kelima puluh
10
+ -24: minus kedua puluh empat
11
+ 0: kekosong
12
+ 1: pertama
13
+ 2: kedua
14
+ 3: ketiga
15
+ 4: keempat
16
+ 5: kelima
17
+ 6: keenam
18
+ 7: ketujuh
19
+ 8: kelapan
20
+ 9: kesembilan
21
+ 10: kesepuluh
22
+ 11: kesebelas
23
+ 12: kedua belas
24
+ 13: ketiga belas
25
+ 14: keempat belas
26
+ 15: kelima belas
27
+ 16: keenam belas
28
+ 17: ketujuh belas
29
+ 18: kelapan belas
30
+ 19: kesembilan belas
31
+ 20: kedua puluh
32
+ 21: kedua puluh satu
33
+ 22: kedua puluh dua
34
+ 23: kedua puluh tiga
35
+ 24: kedua puluh empat
36
+ 25: kedua puluh lima
37
+ 26: kedua puluh enam
38
+ 27: kedua puluh tujuh
39
+ 28: kedua puluh lapan
40
+ 29: kedua puluh sembilan
41
+ 30: ketiga puluh
42
+ 31: ketiga puluh satu
43
+ 32: ketiga puluh dua
44
+ 33: ketiga puluh tiga
45
+ 34: ketiga puluh empat
46
+ 35: ketiga puluh lima
47
+ 36: ketiga puluh enam
48
+ 37: ketiga puluh tujuh
49
+ 38: ketiga puluh lapan
50
+ 39: ketiga puluh sembilan
51
+ 40: keempat puluh
52
+ 41: keempat puluh satu
53
+ 42: keempat puluh dua
54
+ 43: keempat puluh tiga
55
+ 44: keempat puluh empat
56
+ 45: keempat puluh lima
57
+ 46: keempat puluh enam
58
+ 47: keempat puluh tujuh
59
+ 48: keempat puluh lapan
60
+ 49: keempat puluh sembilan
61
+ 50: kelima puluh
62
+ 51: kelima puluh satu
63
+ 52: kelima puluh dua
64
+ 53: kelima puluh tiga
65
+ 54: kelima puluh empat
66
+ 55: kelima puluh lima
67
+ 56: kelima puluh enam
68
+ 57: kelima puluh tujuh
69
+ 58: kelima puluh lapan
70
+ 59: kelima puluh sembilan
71
+ 60: keenam puluh
72
+ 61: keenam puluh satu
73
+ 62: keenam puluh dua
74
+ 63: keenam puluh tiga
75
+ 64: keenam puluh empat
76
+ 65: keenam puluh lima
77
+ 66: keenam puluh enam
78
+ 67: keenam puluh tujuh
79
+ 68: keenam puluh lapan
80
+ 69: keenam puluh sembilan
81
+ 70: ketujuh puluh
82
+ 71: ketujuh puluh satu
83
+ 72: ketujuh puluh dua
84
+ 73: ketujuh puluh tiga
85
+ 74: ketujuh puluh empat
86
+ 75: ketujuh puluh lima
87
+ 76: ketujuh puluh enam
88
+ 77: ketujuh puluh tujuh
89
+ 78: ketujuh puluh lapan
90
+ 79: ketujuh puluh sembilan
91
+ 80: kelapan puluh
92
+ 81: kelapan puluh satu
93
+ 82: kelapan puluh dua
94
+ 83: kelapan puluh tiga
95
+ 84: kelapan puluh empat
96
+ 85: kelapan puluh lima
97
+ 86: kelapan puluh enam
98
+ 87: kelapan puluh tujuh
99
+ 88: kelapan puluh lapan
100
+ 89: kelapan puluh sembilan
101
+ 90: kesembilan puluh
102
+ 91: kesembilan puluh satu
103
+ 92: kesembilan puluh dua
104
+ 93: kesembilan puluh tiga
105
+ 94: kesembilan puluh empat
106
+ 95: kesembilan puluh lima
107
+ 96: kesembilan puluh enam
108
+ 97: kesembilan puluh tujuh
109
+ 98: kesembilan puluh lapan
110
+ 99: kesembilan puluh sembilan
111
+ 100: keseratus
112
+ 321: ketiga ratus dua puluh satu
113
+ 322: ketiga ratus dua puluh dua
114
+ 323: ketiga ratus dua puluh tiga
115
+ 1141: keseribu seratus empat puluh satu
116
+ 1142: keseribu seratus empat puluh dua
117
+ 1143: keseribu seratus empat puluh tiga
118
+ 10311: kesepuluh ribu tiga ratus sebelas
119
+ 138400: keseratus tiga puluh lapan ribu empat ratus
120
+ spellout-cardinal:
121
+ -1141: minus seribu seratus empat puluh satu
122
+ -1142: minus seribu seratus empat puluh dua
123
+ -1143: minus seribu seratus empat puluh tiga
124
+ -100: minus seratus
125
+ -75: minus tujuh puluh lima
126
+ -50: minus lima puluh
127
+ -24: minus dua puluh empat
128
+ 0: kosong
129
+ 1: satu
130
+ 2: dua
131
+ 3: tiga
132
+ 4: empat
133
+ 5: lima
134
+ 6: enam
135
+ 7: tujuh
136
+ 8: lapan
137
+ 9: sembilan
138
+ 10: sepuluh
139
+ 11: sebelas
140
+ 12: dua belas
141
+ 13: tiga belas
142
+ 14: empat belas
143
+ 15: lima belas
144
+ 16: enam belas
145
+ 17: tujuh belas
146
+ 18: lapan belas
147
+ 19: sembilan belas
148
+ 20: dua puluh
149
+ 21: dua puluh satu
150
+ 22: dua puluh dua
151
+ 23: dua puluh tiga
152
+ 24: dua puluh empat
153
+ 25: dua puluh lima
154
+ 26: dua puluh enam
155
+ 27: dua puluh tujuh
156
+ 28: dua puluh lapan
157
+ 29: dua puluh sembilan
158
+ 30: tiga puluh
159
+ 31: tiga puluh satu
160
+ 32: tiga puluh dua
161
+ 33: tiga puluh tiga
162
+ 34: tiga puluh empat
163
+ 35: tiga puluh lima
164
+ 36: tiga puluh enam
165
+ 37: tiga puluh tujuh
166
+ 38: tiga puluh lapan
167
+ 39: tiga puluh sembilan
168
+ 40: empat puluh
169
+ 41: empat puluh satu
170
+ 42: empat puluh dua
171
+ 43: empat puluh tiga
172
+ 44: empat puluh empat
173
+ 45: empat puluh lima
174
+ 46: empat puluh enam
175
+ 47: empat puluh tujuh
176
+ 48: empat puluh lapan
177
+ 49: empat puluh sembilan
178
+ 50: lima puluh
179
+ 51: lima puluh satu
180
+ 52: lima puluh dua
181
+ 53: lima puluh tiga
182
+ 54: lima puluh empat
183
+ 55: lima puluh lima
184
+ 56: lima puluh enam
185
+ 57: lima puluh tujuh
186
+ 58: lima puluh lapan
187
+ 59: lima puluh sembilan
188
+ 60: enam puluh
189
+ 61: enam puluh satu
190
+ 62: enam puluh dua
191
+ 63: enam puluh tiga
192
+ 64: enam puluh empat
193
+ 65: enam puluh lima
194
+ 66: enam puluh enam
195
+ 67: enam puluh tujuh
196
+ 68: enam puluh lapan
197
+ 69: enam puluh sembilan
198
+ 70: tujuh puluh
199
+ 71: tujuh puluh satu
200
+ 72: tujuh puluh dua
201
+ 73: tujuh puluh tiga
202
+ 74: tujuh puluh empat
203
+ 75: tujuh puluh lima
204
+ 76: tujuh puluh enam
205
+ 77: tujuh puluh tujuh
206
+ 78: tujuh puluh lapan
207
+ 79: tujuh puluh sembilan
208
+ 80: lapan puluh
209
+ 81: lapan puluh satu
210
+ 82: lapan puluh dua
211
+ 83: lapan puluh tiga
212
+ 84: lapan puluh empat
213
+ 85: lapan puluh lima
214
+ 86: lapan puluh enam
215
+ 87: lapan puluh tujuh
216
+ 88: lapan puluh lapan
217
+ 89: lapan puluh sembilan
218
+ 90: sembilan puluh
219
+ 91: sembilan puluh satu
220
+ 92: sembilan puluh dua
221
+ 93: sembilan puluh tiga
222
+ 94: sembilan puluh empat
223
+ 95: sembilan puluh lima
224
+ 96: sembilan puluh enam
225
+ 97: sembilan puluh tujuh
226
+ 98: sembilan puluh lapan
227
+ 99: sembilan puluh sembilan
228
+ 100: seratus
229
+ 321: tiga ratus dua puluh satu
230
+ 322: tiga ratus dua puluh dua
231
+ 323: tiga ratus dua puluh tiga
232
+ 1141: seribu seratus empat puluh satu
233
+ 1142: seribu seratus empat puluh dua
234
+ 1143: seribu seratus empat puluh tiga
235
+ 10311: sepuluh ribu tiga ratus sebelas
236
+ 138400: seratus tiga puluh lapan ribu empat ratus
237
+ spellout-numbering:
238
+ -1141: minus seribu seratus empat puluh satu
239
+ -1142: minus seribu seratus empat puluh dua
240
+ -1143: minus seribu seratus empat puluh tiga
241
+ -100: minus seratus
242
+ -75: minus tujuh puluh lima
243
+ -50: minus lima puluh
244
+ -24: minus dua puluh empat
245
+ 0: kosong
246
+ 1: satu
247
+ 2: dua
248
+ 3: tiga
249
+ 4: empat
250
+ 5: lima
251
+ 6: enam
252
+ 7: tujuh
253
+ 8: lapan
254
+ 9: sembilan
255
+ 10: sepuluh
256
+ 11: sebelas
257
+ 12: dua belas
258
+ 13: tiga belas
259
+ 14: empat belas
260
+ 15: lima belas
261
+ 16: enam belas
262
+ 17: tujuh belas
263
+ 18: lapan belas
264
+ 19: sembilan belas
265
+ 20: dua puluh
266
+ 21: dua puluh satu
267
+ 22: dua puluh dua
268
+ 23: dua puluh tiga
269
+ 24: dua puluh empat
270
+ 25: dua puluh lima
271
+ 26: dua puluh enam
272
+ 27: dua puluh tujuh
273
+ 28: dua puluh lapan
274
+ 29: dua puluh sembilan
275
+ 30: tiga puluh
276
+ 31: tiga puluh satu
277
+ 32: tiga puluh dua
278
+ 33: tiga puluh tiga
279
+ 34: tiga puluh empat
280
+ 35: tiga puluh lima
281
+ 36: tiga puluh enam
282
+ 37: tiga puluh tujuh
283
+ 38: tiga puluh lapan
284
+ 39: tiga puluh sembilan
285
+ 40: empat puluh
286
+ 41: empat puluh satu
287
+ 42: empat puluh dua
288
+ 43: empat puluh tiga
289
+ 44: empat puluh empat
290
+ 45: empat puluh lima
291
+ 46: empat puluh enam
292
+ 47: empat puluh tujuh
293
+ 48: empat puluh lapan
294
+ 49: empat puluh sembilan
295
+ 50: lima puluh
296
+ 51: lima puluh satu
297
+ 52: lima puluh dua
298
+ 53: lima puluh tiga
299
+ 54: lima puluh empat
300
+ 55: lima puluh lima
301
+ 56: lima puluh enam
302
+ 57: lima puluh tujuh
303
+ 58: lima puluh lapan
304
+ 59: lima puluh sembilan
305
+ 60: enam puluh
306
+ 61: enam puluh satu
307
+ 62: enam puluh dua
308
+ 63: enam puluh tiga
309
+ 64: enam puluh empat
310
+ 65: enam puluh lima
311
+ 66: enam puluh enam
312
+ 67: enam puluh tujuh
313
+ 68: enam puluh lapan
314
+ 69: enam puluh sembilan
315
+ 70: tujuh puluh
316
+ 71: tujuh puluh satu
317
+ 72: tujuh puluh dua
318
+ 73: tujuh puluh tiga
319
+ 74: tujuh puluh empat
320
+ 75: tujuh puluh lima
321
+ 76: tujuh puluh enam
322
+ 77: tujuh puluh tujuh
323
+ 78: tujuh puluh lapan
324
+ 79: tujuh puluh sembilan
325
+ 80: lapan puluh
326
+ 81: lapan puluh satu
327
+ 82: lapan puluh dua
328
+ 83: lapan puluh tiga
329
+ 84: lapan puluh empat
330
+ 85: lapan puluh lima
331
+ 86: lapan puluh enam
332
+ 87: lapan puluh tujuh
333
+ 88: lapan puluh lapan
334
+ 89: lapan puluh sembilan
335
+ 90: sembilan puluh
336
+ 91: sembilan puluh satu
337
+ 92: sembilan puluh dua
338
+ 93: sembilan puluh tiga
339
+ 94: sembilan puluh empat
340
+ 95: sembilan puluh lima
341
+ 96: sembilan puluh enam
342
+ 97: sembilan puluh tujuh
343
+ 98: sembilan puluh lapan
344
+ 99: sembilan puluh sembilan
345
+ 100: seratus
346
+ 321: tiga ratus dua puluh satu
347
+ 322: tiga ratus dua puluh dua
348
+ 323: tiga ratus dua puluh tiga
349
+ 1141: seribu seratus empat puluh satu
350
+ 1142: seribu seratus empat puluh dua
351
+ 1143: seribu seratus empat puluh tiga
352
+ 10311: sepuluh ribu tiga ratus sebelas
353
+ 138400: seratus tiga puluh lapan ribu empat ratus
354
+ spellout-numbering-year:
355
+ -1141: minus seribu seratus empat puluh satu
356
+ -1142: minus seribu seratus empat puluh dua
357
+ -1143: minus seribu seratus empat puluh tiga
358
+ -100: minus seratus
359
+ -75: minus tujuh puluh lima
360
+ -50: minus lima puluh
361
+ -24: minus dua puluh empat
362
+ 0: kosong
363
+ 1: satu
364
+ 2: dua
365
+ 3: tiga
366
+ 4: empat
367
+ 5: lima
368
+ 6: enam
369
+ 7: tujuh
370
+ 8: lapan
371
+ 9: sembilan
372
+ 10: sepuluh
373
+ 11: sebelas
374
+ 12: dua belas
375
+ 13: tiga belas
376
+ 14: empat belas
377
+ 15: lima belas
378
+ 16: enam belas
379
+ 17: tujuh belas
380
+ 18: lapan belas
381
+ 19: sembilan belas
382
+ 20: dua puluh
383
+ 21: dua puluh satu
384
+ 22: dua puluh dua
385
+ 23: dua puluh tiga
386
+ 24: dua puluh empat
387
+ 25: dua puluh lima
388
+ 26: dua puluh enam
389
+ 27: dua puluh tujuh
390
+ 28: dua puluh lapan
391
+ 29: dua puluh sembilan
392
+ 30: tiga puluh
393
+ 31: tiga puluh satu
394
+ 32: tiga puluh dua
395
+ 33: tiga puluh tiga
396
+ 34: tiga puluh empat
397
+ 35: tiga puluh lima
398
+ 36: tiga puluh enam
399
+ 37: tiga puluh tujuh
400
+ 38: tiga puluh lapan
401
+ 39: tiga puluh sembilan
402
+ 40: empat puluh
403
+ 41: empat puluh satu
404
+ 42: empat puluh dua
405
+ 43: empat puluh tiga
406
+ 44: empat puluh empat
407
+ 45: empat puluh lima
408
+ 46: empat puluh enam
409
+ 47: empat puluh tujuh
410
+ 48: empat puluh lapan
411
+ 49: empat puluh sembilan
412
+ 50: lima puluh
413
+ 51: lima puluh satu
414
+ 52: lima puluh dua
415
+ 53: lima puluh tiga
416
+ 54: lima puluh empat
417
+ 55: lima puluh lima
418
+ 56: lima puluh enam
419
+ 57: lima puluh tujuh
420
+ 58: lima puluh lapan
421
+ 59: lima puluh sembilan
422
+ 60: enam puluh
423
+ 61: enam puluh satu
424
+ 62: enam puluh dua
425
+ 63: enam puluh tiga
426
+ 64: enam puluh empat
427
+ 65: enam puluh lima
428
+ 66: enam puluh enam
429
+ 67: enam puluh tujuh
430
+ 68: enam puluh lapan
431
+ 69: enam puluh sembilan
432
+ 70: tujuh puluh
433
+ 71: tujuh puluh satu
434
+ 72: tujuh puluh dua
435
+ 73: tujuh puluh tiga
436
+ 74: tujuh puluh empat
437
+ 75: tujuh puluh lima
438
+ 76: tujuh puluh enam
439
+ 77: tujuh puluh tujuh
440
+ 78: tujuh puluh lapan
441
+ 79: tujuh puluh sembilan
442
+ 80: lapan puluh
443
+ 81: lapan puluh satu
444
+ 82: lapan puluh dua
445
+ 83: lapan puluh tiga
446
+ 84: lapan puluh empat
447
+ 85: lapan puluh lima
448
+ 86: lapan puluh enam
449
+ 87: lapan puluh tujuh
450
+ 88: lapan puluh lapan
451
+ 89: lapan puluh sembilan
452
+ 90: sembilan puluh
453
+ 91: sembilan puluh satu
454
+ 92: sembilan puluh dua
455
+ 93: sembilan puluh tiga
456
+ 94: sembilan puluh empat
457
+ 95: sembilan puluh lima
458
+ 96: sembilan puluh enam
459
+ 97: sembilan puluh tujuh
460
+ 98: sembilan puluh lapan
461
+ 99: sembilan puluh sembilan
462
+ 100: seratus
463
+ 321: tiga ratus dua puluh satu
464
+ 322: tiga ratus dua puluh dua
465
+ 323: tiga ratus dua puluh tiga
466
+ 1141: seribu seratus empat puluh satu
467
+ 1142: seribu seratus empat puluh dua
468
+ 1143: seribu seratus empat puluh tiga
469
+ 10311: sepuluh ribu tiga ratus sebelas
470
+ 138400: seratus tiga puluh lapan ribu empat ratus
471
+ OrdinalRules:
472
+ digits-ordinal:
473
+ -1141: ke−1,141
474
+ -1142: ke−1,142
475
+ -1143: ke−1,143
476
+ -100: ke−100
477
+ -75: ke−75
478
+ -50: ke−50
479
+ -24: ke−24
480
+ 0: ke0
481
+ 1: ke1
482
+ 2: ke2
483
+ 3: ke3
484
+ 4: ke4
485
+ 5: ke5
486
+ 6: ke6
487
+ 7: ke7
488
+ 8: ke8
489
+ 9: ke9
490
+ 10: ke10
491
+ 11: ke11
492
+ 12: ke12
493
+ 13: ke13
494
+ 14: ke14
495
+ 15: ke15
496
+ 16: ke16
497
+ 17: ke17
498
+ 18: ke18
499
+ 19: ke19
500
+ 20: ke20
501
+ 21: ke21
502
+ 22: ke22
503
+ 23: ke23
504
+ 24: ke24
505
+ 25: ke25
506
+ 26: ke26
507
+ 27: ke27
508
+ 28: ke28
509
+ 29: ke29
510
+ 30: ke30
511
+ 31: ke31
512
+ 32: ke32
513
+ 33: ke33
514
+ 34: ke34
515
+ 35: ke35
516
+ 36: ke36
517
+ 37: ke37
518
+ 38: ke38
519
+ 39: ke39
520
+ 40: ke40
521
+ 41: ke41
522
+ 42: ke42
523
+ 43: ke43
524
+ 44: ke44
525
+ 45: ke45
526
+ 46: ke46
527
+ 47: ke47
528
+ 48: ke48
529
+ 49: ke49
530
+ 50: ke50
531
+ 51: ke51
532
+ 52: ke52
533
+ 53: ke53
534
+ 54: ke54
535
+ 55: ke55
536
+ 56: ke56
537
+ 57: ke57
538
+ 58: ke58
539
+ 59: ke59
540
+ 60: ke60
541
+ 61: ke61
542
+ 62: ke62
543
+ 63: ke63
544
+ 64: ke64
545
+ 65: ke65
546
+ 66: ke66
547
+ 67: ke67
548
+ 68: ke68
549
+ 69: ke69
550
+ 70: ke70
551
+ 71: ke71
552
+ 72: ke72
553
+ 73: ke73
554
+ 74: ke74
555
+ 75: ke75
556
+ 76: ke76
557
+ 77: ke77
558
+ 78: ke78
559
+ 79: ke79
560
+ 80: ke80
561
+ 81: ke81
562
+ 82: ke82
563
+ 83: ke83
564
+ 84: ke84
565
+ 85: ke85
566
+ 86: ke86
567
+ 87: ke87
568
+ 88: ke88
569
+ 89: ke89
570
+ 90: ke90
571
+ 91: ke91
572
+ 92: ke92
573
+ 93: ke93
574
+ 94: ke94
575
+ 95: ke95
576
+ 96: ke96
577
+ 97: ke97
578
+ 98: ke98
579
+ 99: ke99
580
+ 100: ke100
581
+ 321: ke321
582
+ 322: ke322
583
+ 323: ke323
584
+ 1141: ke1,141
585
+ 1142: ke1,142
586
+ 1143: ke1,143
587
+ 10311: ke10,311
588
+ 138400: ke138,400
589
+ DurationRules:
590
+ duration:
591
+ -1141: '-1,141'
592
+ -1142: '-1,142'
593
+ -1143: '-1,143'
594
+ -100: '-100'
595
+ -75: '-75'
596
+ -50: '-50'
597
+ -24: '-24'
598
+ 0: '0'
599
+ 1: '1'
600
+ 2: '2'
601
+ 3: '3'
602
+ 4: '4'
603
+ 5: '5'
604
+ 6: '6'
605
+ 7: '7'
606
+ 8: '8'
607
+ 9: '9'
608
+ 10: '10'
609
+ 11: '11'
610
+ 12: '12'
611
+ 13: '13'
612
+ 14: '14'
613
+ 15: '15'
614
+ 16: '16'
615
+ 17: '17'
616
+ 18: '18'
617
+ 19: '19'
618
+ 20: '20'
619
+ 21: '21'
620
+ 22: '22'
621
+ 23: '23'
622
+ 24: '24'
623
+ 25: '25'
624
+ 26: '26'
625
+ 27: '27'
626
+ 28: '28'
627
+ 29: '29'
628
+ 30: '30'
629
+ 31: '31'
630
+ 32: '32'
631
+ 33: '33'
632
+ 34: '34'
633
+ 35: '35'
634
+ 36: '36'
635
+ 37: '37'
636
+ 38: '38'
637
+ 39: '39'
638
+ 40: '40'
639
+ 41: '41'
640
+ 42: '42'
641
+ 43: '43'
642
+ 44: '44'
643
+ 45: '45'
644
+ 46: '46'
645
+ 47: '47'
646
+ 48: '48'
647
+ 49: '49'
648
+ 50: '50'
649
+ 51: '51'
650
+ 52: '52'
651
+ 53: '53'
652
+ 54: '54'
653
+ 55: '55'
654
+ 56: '56'
655
+ 57: '57'
656
+ 58: '58'
657
+ 59: '59'
658
+ 60: '60'
659
+ 61: '61'
660
+ 62: '62'
661
+ 63: '63'
662
+ 64: '64'
663
+ 65: '65'
664
+ 66: '66'
665
+ 67: '67'
666
+ 68: '68'
667
+ 69: '69'
668
+ 70: '70'
669
+ 71: '71'
670
+ 72: '72'
671
+ 73: '73'
672
+ 74: '74'
673
+ 75: '75'
674
+ 76: '76'
675
+ 77: '77'
676
+ 78: '78'
677
+ 79: '79'
678
+ 80: '80'
679
+ 81: '81'
680
+ 82: '82'
681
+ 83: '83'
682
+ 84: '84'
683
+ 85: '85'
684
+ 86: '86'
685
+ 87: '87'
686
+ 88: '88'
687
+ 89: '89'
688
+ 90: '90'
689
+ 91: '91'
690
+ 92: '92'
691
+ 93: '93'
692
+ 94: '94'
693
+ 95: '95'
694
+ 96: '96'
695
+ 97: '97'
696
+ 98: '98'
697
+ 99: '99'
698
+ 100: '100'
699
+ 321: '321'
700
+ 322: '322'
701
+ 323: '323'
702
+ 1141: '1,141'
703
+ 1142: '1,142'
704
+ 1143: '1,143'
705
+ 10311: '10,311'
706
+ 138400: '138,400'