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-cardinal-feminine:
4
+ -1141: минус хиляда сто четиридесет и едно
5
+ -1142: минус хиляда сто четиридесет и две
6
+ -1143: минус хиляда сто четиридесет и три
7
+ -100: минус сто
8
+ -75: минус седемдесет и пет
9
+ -50: минус петдесет
10
+ -24: минус двадесет и четири
11
+ 0: нула
12
+ 1: едно
13
+ 2: две
14
+ 3: три
15
+ 4: четири
16
+ 5: пет
17
+ 6: шест
18
+ 7: седем
19
+ 8: осем
20
+ 9: девет
21
+ 10: десет
22
+ 11: единадесет
23
+ 12: дванадесет
24
+ 13: тринадесет
25
+ 14: четиринадесет
26
+ 15: петнадесет
27
+ 16: шестнадесет
28
+ 17: седемнадесет
29
+ 18: осемнадесет
30
+ 19: деветнадесет
31
+ 20: двадесет
32
+ 21: двадесет и едно
33
+ 22: двадесет и две
34
+ 23: двадесет и три
35
+ 24: двадесет и четири
36
+ 25: двадесет и пет
37
+ 26: двадесет и шест
38
+ 27: двадесет и седем
39
+ 28: двадесет и осем
40
+ 29: двадесет и девет
41
+ 30: тридесет
42
+ 31: тридесет и едно
43
+ 32: тридесет и две
44
+ 33: тридесет и три
45
+ 34: тридесет и четири
46
+ 35: тридесет и пет
47
+ 36: тридесет и шест
48
+ 37: тридесет и седем
49
+ 38: тридесет и осем
50
+ 39: тридесет и девет
51
+ 40: четиридесет
52
+ 41: четиридесет и едно
53
+ 42: четиридесет и две
54
+ 43: четиридесет и три
55
+ 44: четиридесет и четири
56
+ 45: четиридесет и пет
57
+ 46: четиридесет и шест
58
+ 47: четиридесет и седем
59
+ 48: четиридесет и осем
60
+ 49: четиридесет и девет
61
+ 50: петдесет
62
+ 51: петдесет и едно
63
+ 52: петдесет и две
64
+ 53: петдесет и три
65
+ 54: петдесет и четири
66
+ 55: петдесет и пет
67
+ 56: петдесет и шест
68
+ 57: петдесет и седем
69
+ 58: петдесет и осем
70
+ 59: петдесет и девет
71
+ 60: шестдесет
72
+ 61: шестдесет и едно
73
+ 62: шестдесет и две
74
+ 63: шестдесет и три
75
+ 64: шестдесет и четири
76
+ 65: шестдесет и пет
77
+ 66: шестдесет и шест
78
+ 67: шестдесет и седем
79
+ 68: шестдесет и осем
80
+ 69: шестдесет и девет
81
+ 70: седемдесет
82
+ 71: седемдесет и едно
83
+ 72: седемдесет и две
84
+ 73: седемдесет и три
85
+ 74: седемдесет и четири
86
+ 75: седемдесет и пет
87
+ 76: седемдесет и шест
88
+ 77: седемдесет и седем
89
+ 78: седемдесет и осем
90
+ 79: седемдесет и девет
91
+ 80: осемдесет
92
+ 81: осемдесет и едно
93
+ 82: осемдесет и две
94
+ 83: осемдесет и три
95
+ 84: осемдесет и четири
96
+ 85: осемдесет и пет
97
+ 86: осемдесет и шест
98
+ 87: осемдесет и седем
99
+ 88: осемдесет и осем
100
+ 89: осемдесет и девет
101
+ 90: деветдесет
102
+ 91: деветдесет и едно
103
+ 92: деветдесет и две
104
+ 93: деветдесет и три
105
+ 94: деветдесет и четири
106
+ 95: деветдесет и пет
107
+ 96: деветдесет и шест
108
+ 97: деветдесет и седем
109
+ 98: деветдесет и осем
110
+ 99: деветдесет и девет
111
+ 100: сто
112
+ 321: триста двадесет и едно
113
+ 322: триста двадесет и две
114
+ 323: триста двадесет и три
115
+ 1141: хиляда сто четиридесет и едно
116
+ 1142: хиляда сто четиридесет и две
117
+ 1143: хиляда сто четиридесет и три
118
+ 10311: десет хиляди триста единадесет
119
+ 138400: сто тридесет и осем хиляди четиристотин
120
+ spellout-cardinal-masculine:
121
+ -1141: минус хиляда сто четиридесет и един
122
+ -1142: минус хиляда сто четиридесет и два
123
+ -1143: минус хиляда сто четиридесет и три
124
+ -100: минус сто
125
+ -75: минус седемдесет и пет
126
+ -50: минус петдесет
127
+ -24: минус двадесет и четири
128
+ 0: нула
129
+ 1: един
130
+ 2: два
131
+ 3: три
132
+ 4: четири
133
+ 5: пет
134
+ 6: шест
135
+ 7: седем
136
+ 8: осем
137
+ 9: девет
138
+ 10: десет
139
+ 11: единадесет
140
+ 12: дванадесет
141
+ 13: тринадесет
142
+ 14: четиринадесет
143
+ 15: петнадесет
144
+ 16: шестнадесет
145
+ 17: седемнадесет
146
+ 18: осемнадесет
147
+ 19: деветнадесет
148
+ 20: двадесет
149
+ 21: двадесет и един
150
+ 22: двадесет и два
151
+ 23: двадесет и три
152
+ 24: двадесет и четири
153
+ 25: двадесет и пет
154
+ 26: двадесет и шест
155
+ 27: двадесет и седем
156
+ 28: двадесет и осем
157
+ 29: двадесет и девет
158
+ 30: тридесет
159
+ 31: тридесет и един
160
+ 32: тридесет и два
161
+ 33: тридесет и три
162
+ 34: тридесет и четири
163
+ 35: тридесет и пет
164
+ 36: тридесет и шест
165
+ 37: тридесет и седем
166
+ 38: тридесет и осем
167
+ 39: тридесет и девет
168
+ 40: четиридесет
169
+ 41: четиридесет и един
170
+ 42: четиридесет и два
171
+ 43: четиридесет и три
172
+ 44: четиридесет и четири
173
+ 45: четиридесет и пет
174
+ 46: четиридесет и шест
175
+ 47: четиридесет и седем
176
+ 48: четиридесет и осем
177
+ 49: четиридесет и девет
178
+ 50: петдесет
179
+ 51: петдесет и един
180
+ 52: петдесет и два
181
+ 53: петдесет и три
182
+ 54: петдесет и четири
183
+ 55: петдесет и пет
184
+ 56: петдесет и шест
185
+ 57: петдесет и седем
186
+ 58: петдесет и осем
187
+ 59: петдесет и девет
188
+ 60: шестдесет
189
+ 61: шестдесет и един
190
+ 62: шестдесет и два
191
+ 63: шестдесет и три
192
+ 64: шестдесет и четири
193
+ 65: шестдесет и пет
194
+ 66: шестдесет и шест
195
+ 67: шестдесет и седем
196
+ 68: шестдесет и осем
197
+ 69: шестдесет и девет
198
+ 70: седемдесет
199
+ 71: седемдесет и един
200
+ 72: седемдесет и два
201
+ 73: седемдесет и три
202
+ 74: седемдесет и четири
203
+ 75: седемдесет и пет
204
+ 76: седемдесет и шест
205
+ 77: седемдесет и седем
206
+ 78: седемдесет и осем
207
+ 79: седемдесет и девет
208
+ 80: осемдесет
209
+ 81: осемдесет и един
210
+ 82: осемдесет и два
211
+ 83: осемдесет и три
212
+ 84: осемдесет и четири
213
+ 85: осемдесет и пет
214
+ 86: осемдесет и шест
215
+ 87: осемдесет и седем
216
+ 88: осемдесет и осем
217
+ 89: осемдесет и девет
218
+ 90: деветдесет
219
+ 91: деветдесет и един
220
+ 92: деветдесет и два
221
+ 93: деветдесет и три
222
+ 94: деветдесет и четири
223
+ 95: деветдесет и пет
224
+ 96: деветдесет и шест
225
+ 97: деветдесет и седем
226
+ 98: деветдесет и осем
227
+ 99: деветдесет и девет
228
+ 100: сто
229
+ 321: триста двадесет и един
230
+ 322: триста двадесет и два
231
+ 323: триста двадесет и три
232
+ 1141: хиляда сто четиридесет и един
233
+ 1142: хиляда сто четиридесет и два
234
+ 1143: хиляда сто четиридесет и три
235
+ 10311: десет хиляди триста единадесет
236
+ 138400: сто тридесет и осем хиляди четиристотин
237
+ spellout-numbering:
238
+ -1141: минус хиляда сто четиридесет и едно
239
+ -1142: минус хиляда сто четиридесет и две
240
+ -1143: минус хиляда сто четиридесет и три
241
+ -100: минус сто
242
+ -75: минус седемдесет и пет
243
+ -50: минус петдесет
244
+ -24: минус двадесет и четири
245
+ 0: нула
246
+ 1: едно
247
+ 2: две
248
+ 3: три
249
+ 4: четири
250
+ 5: пет
251
+ 6: шест
252
+ 7: седем
253
+ 8: осем
254
+ 9: девет
255
+ 10: десет
256
+ 11: единадесет
257
+ 12: дванадесет
258
+ 13: тринадесет
259
+ 14: четиринадесет
260
+ 15: петнадесет
261
+ 16: шестнадесет
262
+ 17: седемнадесет
263
+ 18: осемнадесет
264
+ 19: деветнадесет
265
+ 20: двадесет
266
+ 21: двадесет и едно
267
+ 22: двадесет и две
268
+ 23: двадесет и три
269
+ 24: двадесет и четири
270
+ 25: двадесет и пет
271
+ 26: двадесет и шест
272
+ 27: двадесет и седем
273
+ 28: двадесет и осем
274
+ 29: двадесет и девет
275
+ 30: тридесет
276
+ 31: тридесет и едно
277
+ 32: тридесет и две
278
+ 33: тридесет и три
279
+ 34: тридесет и четири
280
+ 35: тридесет и пет
281
+ 36: тридесет и шест
282
+ 37: тридесет и седем
283
+ 38: тридесет и осем
284
+ 39: тридесет и девет
285
+ 40: четиридесет
286
+ 41: четиридесет и едно
287
+ 42: четиридесет и две
288
+ 43: четиридесет и три
289
+ 44: четиридесет и четири
290
+ 45: четиридесет и пет
291
+ 46: четиридесет и шест
292
+ 47: четиридесет и седем
293
+ 48: четиридесет и осем
294
+ 49: четиридесет и девет
295
+ 50: петдесет
296
+ 51: петдесет и едно
297
+ 52: петдесет и две
298
+ 53: петдесет и три
299
+ 54: петдесет и четири
300
+ 55: петдесет и пет
301
+ 56: петдесет и шест
302
+ 57: петдесет и седем
303
+ 58: петдесет и осем
304
+ 59: петдесет и девет
305
+ 60: шестдесет
306
+ 61: шестдесет и едно
307
+ 62: шестдесет и две
308
+ 63: шестдесет и три
309
+ 64: шестдесет и четири
310
+ 65: шестдесет и пет
311
+ 66: шестдесет и шест
312
+ 67: шестдесет и седем
313
+ 68: шестдесет и осем
314
+ 69: шестдесет и девет
315
+ 70: седемдесет
316
+ 71: седемдесет и едно
317
+ 72: седемдесет и две
318
+ 73: седемдесет и три
319
+ 74: седемдесет и четири
320
+ 75: седемдесет и пет
321
+ 76: седемдесет и шест
322
+ 77: седемдесет и седем
323
+ 78: седемдесет и осем
324
+ 79: седемдесет и девет
325
+ 80: осемдесет
326
+ 81: осемдесет и едно
327
+ 82: осемдесет и две
328
+ 83: осемдесет и три
329
+ 84: осемдесет и четири
330
+ 85: осемдесет и пет
331
+ 86: осемдесет и шест
332
+ 87: осемдесет и седем
333
+ 88: осемдесет и осем
334
+ 89: осемдесет и девет
335
+ 90: деветдесет
336
+ 91: деветдесет и едно
337
+ 92: деветдесет и две
338
+ 93: деветдесет и три
339
+ 94: деветдесет и четири
340
+ 95: деветдесет и пет
341
+ 96: деветдесет и шест
342
+ 97: деветдесет и седем
343
+ 98: деветдесет и осем
344
+ 99: деветдесет и девет
345
+ 100: сто
346
+ 321: триста двадесет и едно
347
+ 322: триста двадесет и две
348
+ 323: триста двадесет и три
349
+ 1141: хиляда сто четиридесет и едно
350
+ 1142: хиляда сто четиридесет и две
351
+ 1143: хиляда сто четиридесет и три
352
+ 10311: десет хиляди триста единадесет
353
+ 138400: сто тридесет и осем хиляди четиристотин
354
+ spellout-numbering-year:
355
+ -1141: минус хиляда сто четиридесет и едно
356
+ -1142: минус хиляда сто четиридесет и две
357
+ -1143: минус хиляда сто четиридесет и три
358
+ -100: минус сто
359
+ -75: минус седемдесет и пет
360
+ -50: минус петдесет
361
+ -24: минус двадесет и четири
362
+ 0: нула
363
+ 1: едно
364
+ 2: две
365
+ 3: три
366
+ 4: четири
367
+ 5: пет
368
+ 6: шест
369
+ 7: седем
370
+ 8: осем
371
+ 9: девет
372
+ 10: десет
373
+ 11: единадесет
374
+ 12: дванадесет
375
+ 13: тринадесет
376
+ 14: четиринадесет
377
+ 15: петнадесет
378
+ 16: шестнадесет
379
+ 17: седемнадесет
380
+ 18: осемнадесет
381
+ 19: деветнадесет
382
+ 20: двадесет
383
+ 21: двадесет и едно
384
+ 22: двадесет и две
385
+ 23: двадесет и три
386
+ 24: двадесет и четири
387
+ 25: двадесет и пет
388
+ 26: двадесет и шест
389
+ 27: двадесет и седем
390
+ 28: двадесет и осем
391
+ 29: двадесет и девет
392
+ 30: тридесет
393
+ 31: тридесет и едно
394
+ 32: тридесет и две
395
+ 33: тридесет и три
396
+ 34: тридесет и четири
397
+ 35: тридесет и пет
398
+ 36: тридесет и шест
399
+ 37: тридесет и седем
400
+ 38: тридесет и осем
401
+ 39: тридесет и девет
402
+ 40: четиридесет
403
+ 41: четиридесет и едно
404
+ 42: четиридесет и две
405
+ 43: четиридесет и три
406
+ 44: четиридесет и четири
407
+ 45: четиридесет и пет
408
+ 46: четиридесет и шест
409
+ 47: четиридесет и седем
410
+ 48: четиридесет и осем
411
+ 49: четиридесет и девет
412
+ 50: петдесет
413
+ 51: петдесет и едно
414
+ 52: петдесет и две
415
+ 53: петдесет и три
416
+ 54: петдесет и четири
417
+ 55: петдесет и пет
418
+ 56: петдесет и шест
419
+ 57: петдесет и седем
420
+ 58: петдесет и осем
421
+ 59: петдесет и девет
422
+ 60: шестдесет
423
+ 61: шестдесет и едно
424
+ 62: шестдесет и две
425
+ 63: шестдесет и три
426
+ 64: шестдесет и четири
427
+ 65: шестдесет и пет
428
+ 66: шестдесет и шест
429
+ 67: шестдесет и седем
430
+ 68: шестдесет и осем
431
+ 69: шестдесет и девет
432
+ 70: седемдесет
433
+ 71: седемдесет и едно
434
+ 72: седемдесет и две
435
+ 73: седемдесет и три
436
+ 74: седемдесет и четири
437
+ 75: седемдесет и пет
438
+ 76: седемдесет и шест
439
+ 77: седемдесет и седем
440
+ 78: седемдесет и осем
441
+ 79: седемдесет и девет
442
+ 80: осемдесет
443
+ 81: осемдесет и едно
444
+ 82: осемдесет и две
445
+ 83: осемдесет и три
446
+ 84: осемдесет и четири
447
+ 85: осемдесет и пет
448
+ 86: осемдесет и шест
449
+ 87: осемдесет и седем
450
+ 88: осемдесет и осем
451
+ 89: осемдесет и девет
452
+ 90: деветдесет
453
+ 91: деветдесет и едно
454
+ 92: деветдесет и две
455
+ 93: деветдесет и три
456
+ 94: деветдесет и четири
457
+ 95: деветдесет и пет
458
+ 96: деветдесет и шест
459
+ 97: деветдесет и седем
460
+ 98: деветдесет и осем
461
+ 99: деветдесет и девет
462
+ 100: сто
463
+ 321: триста двадесет и едно
464
+ 322: триста двадесет и две
465
+ 323: триста двадесет и три
466
+ 1141: хиляда сто четиридесет и едно
467
+ 1142: хиляда сто четиридесет и две
468
+ 1143: хиляда сто четиридесет и три
469
+ 10311: десет хиляди триста единадесет
470
+ 138400: сто тридесет и осем хиляди четиристотин
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