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: miinus tuhannessadasneljäskymmenesensimmäinen
5
+ -1142: miinus tuhannessadasneljäskymmenestoinen
6
+ -1143: miinus tuhannessadasneljäskymmeneskolmas
7
+ -100: miinus sadas
8
+ -75: miinus seitsemäskymmenesviides
9
+ -50: miinus viideskymmenes
10
+ -24: miinus kahdeskymmenesneljäs
11
+ 0: nolla
12
+ 1: ensimmäinen
13
+ 2: toinen
14
+ 3: kolmas
15
+ 4: neljäs
16
+ 5: viides
17
+ 6: kuudes
18
+ 7: seitsemäs
19
+ 8: kahdeksas
20
+ 9: yhdeksäs
21
+ 10: kymmenes
22
+ 11: yhdestoista
23
+ 12: kahdestoista
24
+ 13: kolmastoista
25
+ 14: neljästoista
26
+ 15: viidestoista
27
+ 16: kuudestoista
28
+ 17: seitsemästoista
29
+ 18: kahdeksastoista
30
+ 19: yhdeksästoista
31
+ 20: kahdeskymmenes
32
+ 21: kahdeskymmenesensimmäinen
33
+ 22: kahdeskymmenestoinen
34
+ 23: kahdeskymmeneskolmas
35
+ 24: kahdeskymmenesneljäs
36
+ 25: kahdeskymmenesviides
37
+ 26: kahdeskymmeneskuudes
38
+ 27: kahdeskymmenesseitsemäs
39
+ 28: kahdeskymmeneskahdeksas
40
+ 29: kahdeskymmenesyhdeksäs
41
+ 30: kolmaskymmenes
42
+ 31: kolmaskymmenesensimmäinen
43
+ 32: kolmaskymmenestoinen
44
+ 33: kolmaskymmeneskolmas
45
+ 34: kolmaskymmenesneljäs
46
+ 35: kolmaskymmenesviides
47
+ 36: kolmaskymmeneskuudes
48
+ 37: kolmaskymmenesseitsemäs
49
+ 38: kolmaskymmeneskahdeksas
50
+ 39: kolmaskymmenesyhdeksäs
51
+ 40: neljäskymmenes
52
+ 41: neljäskymmenesensimmäinen
53
+ 42: neljäskymmenestoinen
54
+ 43: neljäskymmeneskolmas
55
+ 44: neljäskymmenesneljäs
56
+ 45: neljäskymmenesviides
57
+ 46: neljäskymmeneskuudes
58
+ 47: neljäskymmenesseitsemäs
59
+ 48: neljäskymmeneskahdeksas
60
+ 49: neljäskymmenesyhdeksäs
61
+ 50: viideskymmenes
62
+ 51: viideskymmenesensimmäinen
63
+ 52: viideskymmenestoinen
64
+ 53: viideskymmeneskolmas
65
+ 54: viideskymmenesneljäs
66
+ 55: viideskymmenesviides
67
+ 56: viideskymmeneskuudes
68
+ 57: viideskymmenesseitsemäs
69
+ 58: viideskymmeneskahdeksas
70
+ 59: viideskymmenesyhdeksäs
71
+ 60: kuudeskymmenes
72
+ 61: kuudeskymmenesensimmäinen
73
+ 62: kuudeskymmenestoinen
74
+ 63: kuudeskymmeneskolmas
75
+ 64: kuudeskymmenesneljäs
76
+ 65: kuudeskymmenesviides
77
+ 66: kuudeskymmeneskuudes
78
+ 67: kuudeskymmenesseitsemäs
79
+ 68: kuudeskymmeneskahdeksas
80
+ 69: kuudeskymmenesyhdeksäs
81
+ 70: seitsemäskymmenes
82
+ 71: seitsemäskymmenesensimmäinen
83
+ 72: seitsemäskymmenestoinen
84
+ 73: seitsemäskymmeneskolmas
85
+ 74: seitsemäskymmenesneljäs
86
+ 75: seitsemäskymmenesviides
87
+ 76: seitsemäskymmeneskuudes
88
+ 77: seitsemäskymmenesseitsemäs
89
+ 78: seitsemäskymmeneskahdeksas
90
+ 79: seitsemäskymmenesyhdeksäs
91
+ 80: kahdeksaskymmenes
92
+ 81: kahdeksaskymmenesensimmäinen
93
+ 82: kahdeksaskymmenestoinen
94
+ 83: kahdeksaskymmeneskolmas
95
+ 84: kahdeksaskymmenesneljäs
96
+ 85: kahdeksaskymmenesviides
97
+ 86: kahdeksaskymmeneskuudes
98
+ 87: kahdeksaskymmenesseitsemäs
99
+ 88: kahdeksaskymmeneskahdeksas
100
+ 89: kahdeksaskymmenesyhdeksäs
101
+ 90: yhdeksäskymmenes
102
+ 91: yhdeksäskymmenesensimmäinen
103
+ 92: yhdeksäskymmenestoinen
104
+ 93: yhdeksäskymmeneskolmas
105
+ 94: yhdeksäskymmenesneljäs
106
+ 95: yhdeksäskymmenesviides
107
+ 96: yhdeksäskymmeneskuudes
108
+ 97: yhdeksäskymmenesseitsemäs
109
+ 98: yhdeksäskymmeneskahdeksas
110
+ 99: yhdeksäskymmenesyhdeksäs
111
+ 100: sadas
112
+ 321: kolmassadaskahdeskymmenesensimmäinen
113
+ 322: kolmassadaskahdeskymmenestoinen
114
+ 323: kolmassadaskahdeskymmeneskolmas
115
+ 1141: tuhannessadasneljäskymmenesensimmäinen
116
+ 1142: tuhannessadasneljäskymmenestoinen
117
+ 1143: tuhannessadasneljäskymmeneskolmas
118
+ 10311: kymmenestuhanneskolmassadasyhdestoista
119
+ 138400: sadaskolmaskymmeneskahdeksastuhannesneljässadas
120
+ spellout-cardinal:
121
+ -1141: miinus tuhat­sata­neljäkymmentä­yksi
122
+ -1142: miinus tuhat­sata­neljäkymmentä­kaksi
123
+ -1143: miinus tuhat­sata­neljäkymmentä­kolme
124
+ -100: miinus sata
125
+ -75: miinus seitsemänkymmentä­viisi
126
+ -50: miinus viisikymmentä
127
+ -24: miinus kaksikymmentä­neljä
128
+ 0: nolla
129
+ 1: yksi
130
+ 2: kaksi
131
+ 3: kolme
132
+ 4: neljä
133
+ 5: viisi
134
+ 6: kuusi
135
+ 7: seitsemän
136
+ 8: kahdeksan
137
+ 9: yhdeksän
138
+ 10: kymmenen
139
+ 11: yksitoista
140
+ 12: kaksitoista
141
+ 13: kolmetoista
142
+ 14: neljätoista
143
+ 15: viisitoista
144
+ 16: kuusitoista
145
+ 17: seitsemäntoista
146
+ 18: kahdeksantoista
147
+ 19: yhdeksäntoista
148
+ 20: kaksikymmentä
149
+ 21: kaksikymmentä­yksi
150
+ 22: kaksikymmentä­kaksi
151
+ 23: kaksikymmentä­kolme
152
+ 24: kaksikymmentä­neljä
153
+ 25: kaksikymmentä­viisi
154
+ 26: kaksikymmentä­kuusi
155
+ 27: kaksikymmentä­seitsemän
156
+ 28: kaksikymmentä­kahdeksan
157
+ 29: kaksikymmentä­yhdeksän
158
+ 30: kolmekymmentä
159
+ 31: kolmekymmentä­yksi
160
+ 32: kolmekymmentä­kaksi
161
+ 33: kolmekymmentä­kolme
162
+ 34: kolmekymmentä­neljä
163
+ 35: kolmekymmentä­viisi
164
+ 36: kolmekymmentä­kuusi
165
+ 37: kolmekymmentä­seitsemän
166
+ 38: kolmekymmentä­kahdeksan
167
+ 39: kolmekymmentä­yhdeksän
168
+ 40: neljäkymmentä
169
+ 41: neljäkymmentä­yksi
170
+ 42: neljäkymmentä­kaksi
171
+ 43: neljäkymmentä­kolme
172
+ 44: neljäkymmentä­neljä
173
+ 45: neljäkymmentä­viisi
174
+ 46: neljäkymmentä­kuusi
175
+ 47: neljäkymmentä­seitsemän
176
+ 48: neljäkymmentä­kahdeksan
177
+ 49: neljäkymmentä­yhdeksän
178
+ 50: viisikymmentä
179
+ 51: viisikymmentä­yksi
180
+ 52: viisikymmentä­kaksi
181
+ 53: viisikymmentä­kolme
182
+ 54: viisikymmentä­neljä
183
+ 55: viisikymmentä­viisi
184
+ 56: viisikymmentä­kuusi
185
+ 57: viisikymmentä­seitsemän
186
+ 58: viisikymmentä­kahdeksan
187
+ 59: viisikymmentä­yhdeksän
188
+ 60: kuusikymmentä
189
+ 61: kuusikymmentä­yksi
190
+ 62: kuusikymmentä­kaksi
191
+ 63: kuusikymmentä­kolme
192
+ 64: kuusikymmentä­neljä
193
+ 65: kuusikymmentä­viisi
194
+ 66: kuusikymmentä­kuusi
195
+ 67: kuusikymmentä­seitsemän
196
+ 68: kuusikymmentä­kahdeksan
197
+ 69: kuusikymmentä­yhdeksän
198
+ 70: seitsemänkymmentä
199
+ 71: seitsemänkymmentä­yksi
200
+ 72: seitsemänkymmentä­kaksi
201
+ 73: seitsemänkymmentä­kolme
202
+ 74: seitsemänkymmentä­neljä
203
+ 75: seitsemänkymmentä­viisi
204
+ 76: seitsemänkymmentä­kuusi
205
+ 77: seitsemänkymmentä­seitsemän
206
+ 78: seitsemänkymmentä­kahdeksan
207
+ 79: seitsemänkymmentä­yhdeksän
208
+ 80: kahdeksankymmentä
209
+ 81: kahdeksankymmentä­yksi
210
+ 82: kahdeksankymmentä­kaksi
211
+ 83: kahdeksankymmentä­kolme
212
+ 84: kahdeksankymmentä­neljä
213
+ 85: kahdeksankymmentä­viisi
214
+ 86: kahdeksankymmentä­kuusi
215
+ 87: kahdeksankymmentä­seitsemän
216
+ 88: kahdeksankymmentä­kahdeksan
217
+ 89: kahdeksankymmentä­yhdeksän
218
+ 90: yhdeksänkymmentä
219
+ 91: yhdeksänkymmentä­yksi
220
+ 92: yhdeksänkymmentä­kaksi
221
+ 93: yhdeksänkymmentä­kolme
222
+ 94: yhdeksänkymmentä­neljä
223
+ 95: yhdeksänkymmentä­viisi
224
+ 96: yhdeksänkymmentä­kuusi
225
+ 97: yhdeksänkymmentä­seitsemän
226
+ 98: yhdeksänkymmentä­kahdeksan
227
+ 99: yhdeksänkymmentä­yhdeksän
228
+ 100: sata
229
+ 321: kolme­sataa­kaksikymmentä­yksi
230
+ 322: kolme­sataa­kaksikymmentä­kaksi
231
+ 323: kolme­sataa­kaksikymmentä­kolme
232
+ 1141: tuhat­sata­neljäkymmentä­yksi
233
+ 1142: tuhat­sata­neljäkymmentä­kaksi
234
+ 1143: tuhat­sata­neljäkymmentä­kolme
235
+ 10311: kymmenen­tuhatta­kolme­sataa­yksitoista
236
+ 138400: sata­kolmekymmentä­kahdeksan­tuhatta­neljä­sataa
237
+ spellout-numbering:
238
+ -1141: miinus tuhat­sata­neljäkymmentä­yksi
239
+ -1142: miinus tuhat­sata­neljäkymmentä­kaksi
240
+ -1143: miinus tuhat­sata­neljäkymmentä­kolme
241
+ -100: miinus sata
242
+ -75: miinus seitsemänkymmentä­viisi
243
+ -50: miinus viisikymmentä
244
+ -24: miinus kaksikymmentä­neljä
245
+ 0: nolla
246
+ 1: yksi
247
+ 2: kaksi
248
+ 3: kolme
249
+ 4: neljä
250
+ 5: viisi
251
+ 6: kuusi
252
+ 7: seitsemän
253
+ 8: kahdeksan
254
+ 9: yhdeksän
255
+ 10: kymmenen
256
+ 11: yksitoista
257
+ 12: kaksitoista
258
+ 13: kolmetoista
259
+ 14: neljätoista
260
+ 15: viisitoista
261
+ 16: kuusitoista
262
+ 17: seitsemäntoista
263
+ 18: kahdeksantoista
264
+ 19: yhdeksäntoista
265
+ 20: kaksikymmentä
266
+ 21: kaksikymmentä­yksi
267
+ 22: kaksikymmentä­kaksi
268
+ 23: kaksikymmentä­kolme
269
+ 24: kaksikymmentä­neljä
270
+ 25: kaksikymmentä­viisi
271
+ 26: kaksikymmentä­kuusi
272
+ 27: kaksikymmentä­seitsemän
273
+ 28: kaksikymmentä­kahdeksan
274
+ 29: kaksikymmentä­yhdeksän
275
+ 30: kolmekymmentä
276
+ 31: kolmekymmentä­yksi
277
+ 32: kolmekymmentä­kaksi
278
+ 33: kolmekymmentä­kolme
279
+ 34: kolmekymmentä­neljä
280
+ 35: kolmekymmentä­viisi
281
+ 36: kolmekymmentä­kuusi
282
+ 37: kolmekymmentä­seitsemän
283
+ 38: kolmekymmentä­kahdeksan
284
+ 39: kolmekymmentä­yhdeksän
285
+ 40: neljäkymmentä
286
+ 41: neljäkymmentä­yksi
287
+ 42: neljäkymmentä­kaksi
288
+ 43: neljäkymmentä­kolme
289
+ 44: neljäkymmentä­neljä
290
+ 45: neljäkymmentä­viisi
291
+ 46: neljäkymmentä­kuusi
292
+ 47: neljäkymmentä­seitsemän
293
+ 48: neljäkymmentä­kahdeksan
294
+ 49: neljäkymmentä­yhdeksän
295
+ 50: viisikymmentä
296
+ 51: viisikymmentä­yksi
297
+ 52: viisikymmentä­kaksi
298
+ 53: viisikymmentä­kolme
299
+ 54: viisikymmentä­neljä
300
+ 55: viisikymmentä­viisi
301
+ 56: viisikymmentä­kuusi
302
+ 57: viisikymmentä­seitsemän
303
+ 58: viisikymmentä­kahdeksan
304
+ 59: viisikymmentä­yhdeksän
305
+ 60: kuusikymmentä
306
+ 61: kuusikymmentä­yksi
307
+ 62: kuusikymmentä­kaksi
308
+ 63: kuusikymmentä­kolme
309
+ 64: kuusikymmentä­neljä
310
+ 65: kuusikymmentä­viisi
311
+ 66: kuusikymmentä­kuusi
312
+ 67: kuusikymmentä­seitsemän
313
+ 68: kuusikymmentä­kahdeksan
314
+ 69: kuusikymmentä­yhdeksän
315
+ 70: seitsemänkymmentä
316
+ 71: seitsemänkymmentä­yksi
317
+ 72: seitsemänkymmentä­kaksi
318
+ 73: seitsemänkymmentä­kolme
319
+ 74: seitsemänkymmentä­neljä
320
+ 75: seitsemänkymmentä­viisi
321
+ 76: seitsemänkymmentä­kuusi
322
+ 77: seitsemänkymmentä­seitsemän
323
+ 78: seitsemänkymmentä­kahdeksan
324
+ 79: seitsemänkymmentä­yhdeksän
325
+ 80: kahdeksankymmentä
326
+ 81: kahdeksankymmentä­yksi
327
+ 82: kahdeksankymmentä­kaksi
328
+ 83: kahdeksankymmentä­kolme
329
+ 84: kahdeksankymmentä­neljä
330
+ 85: kahdeksankymmentä­viisi
331
+ 86: kahdeksankymmentä­kuusi
332
+ 87: kahdeksankymmentä­seitsemän
333
+ 88: kahdeksankymmentä­kahdeksan
334
+ 89: kahdeksankymmentä­yhdeksän
335
+ 90: yhdeksänkymmentä
336
+ 91: yhdeksänkymmentä­yksi
337
+ 92: yhdeksänkymmentä­kaksi
338
+ 93: yhdeksänkymmentä­kolme
339
+ 94: yhdeksänkymmentä­neljä
340
+ 95: yhdeksänkymmentä­viisi
341
+ 96: yhdeksänkymmentä­kuusi
342
+ 97: yhdeksänkymmentä­seitsemän
343
+ 98: yhdeksänkymmentä­kahdeksan
344
+ 99: yhdeksänkymmentä­yhdeksän
345
+ 100: sata
346
+ 321: kolme­sataa­kaksikymmentä­yksi
347
+ 322: kolme­sataa­kaksikymmentä­kaksi
348
+ 323: kolme­sataa­kaksikymmentä­kolme
349
+ 1141: tuhat­sata­neljäkymmentä­yksi
350
+ 1142: tuhat­sata­neljäkymmentä­kaksi
351
+ 1143: tuhat­sata­neljäkymmentä­kolme
352
+ 10311: kymmenen­tuhatta­kolme­sataa­yksitoista
353
+ 138400: sata­kolmekymmentä­kahdeksan­tuhatta­neljä­sataa
354
+ spellout-numbering-year:
355
+ -1141: miinus tuhat­sata­neljäkymmentä­yksi
356
+ -1142: miinus tuhat­sata­neljäkymmentä­kaksi
357
+ -1143: miinus tuhat­sata­neljäkymmentä­kolme
358
+ -100: miinus sata
359
+ -75: miinus seitsemänkymmentä­viisi
360
+ -50: miinus viisikymmentä
361
+ -24: miinus kaksikymmentä­neljä
362
+ 0: nolla
363
+ 1: yksi
364
+ 2: kaksi
365
+ 3: kolme
366
+ 4: neljä
367
+ 5: viisi
368
+ 6: kuusi
369
+ 7: seitsemän
370
+ 8: kahdeksan
371
+ 9: yhdeksän
372
+ 10: kymmenen
373
+ 11: yksitoista
374
+ 12: kaksitoista
375
+ 13: kolmetoista
376
+ 14: neljätoista
377
+ 15: viisitoista
378
+ 16: kuusitoista
379
+ 17: seitsemäntoista
380
+ 18: kahdeksantoista
381
+ 19: yhdeksäntoista
382
+ 20: kaksikymmentä
383
+ 21: kaksikymmentä­yksi
384
+ 22: kaksikymmentä­kaksi
385
+ 23: kaksikymmentä­kolme
386
+ 24: kaksikymmentä­neljä
387
+ 25: kaksikymmentä­viisi
388
+ 26: kaksikymmentä­kuusi
389
+ 27: kaksikymmentä­seitsemän
390
+ 28: kaksikymmentä­kahdeksan
391
+ 29: kaksikymmentä­yhdeksän
392
+ 30: kolmekymmentä
393
+ 31: kolmekymmentä­yksi
394
+ 32: kolmekymmentä­kaksi
395
+ 33: kolmekymmentä­kolme
396
+ 34: kolmekymmentä­neljä
397
+ 35: kolmekymmentä­viisi
398
+ 36: kolmekymmentä­kuusi
399
+ 37: kolmekymmentä­seitsemän
400
+ 38: kolmekymmentä­kahdeksan
401
+ 39: kolmekymmentä­yhdeksän
402
+ 40: neljäkymmentä
403
+ 41: neljäkymmentä­yksi
404
+ 42: neljäkymmentä­kaksi
405
+ 43: neljäkymmentä­kolme
406
+ 44: neljäkymmentä­neljä
407
+ 45: neljäkymmentä­viisi
408
+ 46: neljäkymmentä­kuusi
409
+ 47: neljäkymmentä­seitsemän
410
+ 48: neljäkymmentä­kahdeksan
411
+ 49: neljäkymmentä­yhdeksän
412
+ 50: viisikymmentä
413
+ 51: viisikymmentä­yksi
414
+ 52: viisikymmentä­kaksi
415
+ 53: viisikymmentä­kolme
416
+ 54: viisikymmentä­neljä
417
+ 55: viisikymmentä­viisi
418
+ 56: viisikymmentä­kuusi
419
+ 57: viisikymmentä­seitsemän
420
+ 58: viisikymmentä­kahdeksan
421
+ 59: viisikymmentä­yhdeksän
422
+ 60: kuusikymmentä
423
+ 61: kuusikymmentä­yksi
424
+ 62: kuusikymmentä­kaksi
425
+ 63: kuusikymmentä­kolme
426
+ 64: kuusikymmentä­neljä
427
+ 65: kuusikymmentä­viisi
428
+ 66: kuusikymmentä­kuusi
429
+ 67: kuusikymmentä­seitsemän
430
+ 68: kuusikymmentä­kahdeksan
431
+ 69: kuusikymmentä­yhdeksän
432
+ 70: seitsemänkymmentä
433
+ 71: seitsemänkymmentä­yksi
434
+ 72: seitsemänkymmentä­kaksi
435
+ 73: seitsemänkymmentä­kolme
436
+ 74: seitsemänkymmentä­neljä
437
+ 75: seitsemänkymmentä­viisi
438
+ 76: seitsemänkymmentä­kuusi
439
+ 77: seitsemänkymmentä­seitsemän
440
+ 78: seitsemänkymmentä­kahdeksan
441
+ 79: seitsemänkymmentä­yhdeksän
442
+ 80: kahdeksankymmentä
443
+ 81: kahdeksankymmentä­yksi
444
+ 82: kahdeksankymmentä­kaksi
445
+ 83: kahdeksankymmentä­kolme
446
+ 84: kahdeksankymmentä­neljä
447
+ 85: kahdeksankymmentä­viisi
448
+ 86: kahdeksankymmentä­kuusi
449
+ 87: kahdeksankymmentä­seitsemän
450
+ 88: kahdeksankymmentä­kahdeksan
451
+ 89: kahdeksankymmentä­yhdeksän
452
+ 90: yhdeksänkymmentä
453
+ 91: yhdeksänkymmentä­yksi
454
+ 92: yhdeksänkymmentä­kaksi
455
+ 93: yhdeksänkymmentä­kolme
456
+ 94: yhdeksänkymmentä­neljä
457
+ 95: yhdeksänkymmentä­viisi
458
+ 96: yhdeksänkymmentä­kuusi
459
+ 97: yhdeksänkymmentä­seitsemän
460
+ 98: yhdeksänkymmentä­kahdeksan
461
+ 99: yhdeksänkymmentä­yhdeksän
462
+ 100: sata
463
+ 321: kolme­sataa­kaksikymmentä­yksi
464
+ 322: kolme­sataa­kaksikymmentä­kaksi
465
+ 323: kolme­sataa­kaksikymmentä­kolme
466
+ 1141: tuhat­sata­neljäkymmentä­yksi
467
+ 1142: tuhat­sata­neljäkymmentä­kaksi
468
+ 1143: tuhat­sata­neljäkymmentä­kolme
469
+ 10311: kymmenen­tuhatta­kolme­sataa­yksitoista
470
+ 138400: sata­kolmekymmentä­kahdeksan­tuhatta­neljä­sataa
471
+ OrdinalRules:
472
+ digits-ordinal:
473
+ -1141: −1 141.
474
+ -1142: −1 142.
475
+ -1143: −1 143.
476
+ -100: −100.
477
+ -75: −75.
478
+ -50: −50.
479
+ -24: −24.
480
+ 0: '0.'
481
+ 1: '1.'
482
+ 2: '2.'
483
+ 3: '3.'
484
+ 4: '4.'
485
+ 5: '5.'
486
+ 6: '6.'
487
+ 7: '7.'
488
+ 8: '8.'
489
+ 9: '9.'
490
+ 10: '10.'
491
+ 11: '11.'
492
+ 12: '12.'
493
+ 13: '13.'
494
+ 14: '14.'
495
+ 15: '15.'
496
+ 16: '16.'
497
+ 17: '17.'
498
+ 18: '18.'
499
+ 19: '19.'
500
+ 20: '20.'
501
+ 21: '21.'
502
+ 22: '22.'
503
+ 23: '23.'
504
+ 24: '24.'
505
+ 25: '25.'
506
+ 26: '26.'
507
+ 27: '27.'
508
+ 28: '28.'
509
+ 29: '29.'
510
+ 30: '30.'
511
+ 31: '31.'
512
+ 32: '32.'
513
+ 33: '33.'
514
+ 34: '34.'
515
+ 35: '35.'
516
+ 36: '36.'
517
+ 37: '37.'
518
+ 38: '38.'
519
+ 39: '39.'
520
+ 40: '40.'
521
+ 41: '41.'
522
+ 42: '42.'
523
+ 43: '43.'
524
+ 44: '44.'
525
+ 45: '45.'
526
+ 46: '46.'
527
+ 47: '47.'
528
+ 48: '48.'
529
+ 49: '49.'
530
+ 50: '50.'
531
+ 51: '51.'
532
+ 52: '52.'
533
+ 53: '53.'
534
+ 54: '54.'
535
+ 55: '55.'
536
+ 56: '56.'
537
+ 57: '57.'
538
+ 58: '58.'
539
+ 59: '59.'
540
+ 60: '60.'
541
+ 61: '61.'
542
+ 62: '62.'
543
+ 63: '63.'
544
+ 64: '64.'
545
+ 65: '65.'
546
+ 66: '66.'
547
+ 67: '67.'
548
+ 68: '68.'
549
+ 69: '69.'
550
+ 70: '70.'
551
+ 71: '71.'
552
+ 72: '72.'
553
+ 73: '73.'
554
+ 74: '74.'
555
+ 75: '75.'
556
+ 76: '76.'
557
+ 77: '77.'
558
+ 78: '78.'
559
+ 79: '79.'
560
+ 80: '80.'
561
+ 81: '81.'
562
+ 82: '82.'
563
+ 83: '83.'
564
+ 84: '84.'
565
+ 85: '85.'
566
+ 86: '86.'
567
+ 87: '87.'
568
+ 88: '88.'
569
+ 89: '89.'
570
+ 90: '90.'
571
+ 91: '91.'
572
+ 92: '92.'
573
+ 93: '93.'
574
+ 94: '94.'
575
+ 95: '95.'
576
+ 96: '96.'
577
+ 97: '97.'
578
+ 98: '98.'
579
+ 99: '99.'
580
+ 100: '100.'
581
+ 321: '321.'
582
+ 322: '322.'
583
+ 323: '323.'
584
+ 1141: 1 141.
585
+ 1142: 1 142.
586
+ 1143: 1 143.
587
+ 10311: 10 311.
588
+ 138400: 138 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