twitter_cldr 3.6.0 → 4.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1258) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/History.txt +7 -0
  4. data/README.md +133 -6
  5. data/Rakefile +23 -4
  6. data/lib/twitter_cldr.rb +3 -0
  7. data/lib/twitter_cldr/collation.rb +1 -2
  8. data/lib/twitter_cldr/collation/collator.rb +9 -1
  9. data/lib/twitter_cldr/collation/trie_builder.rb +2 -2
  10. data/lib/twitter_cldr/collation/trie_with_fallback.rb +2 -2
  11. data/lib/twitter_cldr/localized.rb +2 -2
  12. data/lib/twitter_cldr/localized/localized_date.rb +3 -15
  13. data/lib/twitter_cldr/localized/localized_string.rb +26 -5
  14. data/lib/twitter_cldr/normalization.rb +1 -1
  15. data/lib/twitter_cldr/resources.rb +2 -0
  16. data/lib/twitter_cldr/resources/hyphenation_importer.rb +115 -0
  17. data/lib/twitter_cldr/resources/loader.rb +17 -5
  18. data/lib/twitter_cldr/resources/locales_resources_importer.rb +3 -2
  19. data/lib/twitter_cldr/resources/properties/indic_positional_category_property_importer.rb +1 -1
  20. data/lib/twitter_cldr/resources/properties/properties_importer.rb +2 -2
  21. data/lib/twitter_cldr/resources/rbnf_test_importer.rb +15 -9
  22. data/lib/twitter_cldr/resources/transform_test_importer.rb +137 -0
  23. data/lib/twitter_cldr/segmentation/break_iterator.rb +1 -1
  24. data/lib/twitter_cldr/shared.rb +1 -0
  25. data/lib/twitter_cldr/shared/hyphenator.rb +188 -0
  26. data/lib/twitter_cldr/shared/likely_subtags.rb +18 -2
  27. data/lib/twitter_cldr/shared/locale.rb +20 -10
  28. data/lib/twitter_cldr/transforms.rb +24 -0
  29. data/lib/twitter_cldr/transforms/comment_rule.rb +30 -0
  30. data/lib/twitter_cldr/transforms/conversion_rule_set.rb +155 -0
  31. data/lib/twitter_cldr/transforms/conversions.rb +16 -0
  32. data/lib/twitter_cldr/transforms/conversions/conversion_rule.rb +131 -0
  33. data/lib/twitter_cldr/transforms/conversions/parser.rb +113 -0
  34. data/lib/twitter_cldr/transforms/conversions/side.rb +117 -0
  35. data/lib/twitter_cldr/transforms/cursor.rb +39 -0
  36. data/lib/twitter_cldr/transforms/filters.rb +16 -0
  37. data/lib/twitter_cldr/transforms/filters/filter_rule.rb +29 -0
  38. data/lib/twitter_cldr/transforms/filters/null_filter.rb +26 -0
  39. data/lib/twitter_cldr/transforms/filters/regex_filter.rb +74 -0
  40. data/lib/twitter_cldr/transforms/rule.rb +121 -0
  41. data/lib/twitter_cldr/transforms/rule_match.rb +37 -0
  42. data/lib/twitter_cldr/transforms/rule_set.rb +95 -0
  43. data/lib/twitter_cldr/transforms/tokenizer.rb +41 -0
  44. data/lib/twitter_cldr/transforms/transform_id.rb +164 -0
  45. data/lib/twitter_cldr/transforms/transformer.rb +220 -0
  46. data/lib/twitter_cldr/transforms/transforms.rb +21 -0
  47. data/lib/twitter_cldr/transforms/transforms/break_internal_transform.rb +20 -0
  48. data/lib/twitter_cldr/transforms/transforms/casing_transform.rb +76 -0
  49. data/lib/twitter_cldr/transforms/transforms/named_transform.rb +45 -0
  50. data/lib/twitter_cldr/transforms/transforms/normalization_transform.rb +57 -0
  51. data/lib/twitter_cldr/transforms/transforms/null_transform.rb +30 -0
  52. data/lib/twitter_cldr/transforms/transforms/parser.rb +129 -0
  53. data/lib/twitter_cldr/transforms/transforms/transform_pair.rb +47 -0
  54. data/lib/twitter_cldr/transforms/transforms/transform_rule.rb +92 -0
  55. data/lib/twitter_cldr/transforms/transliterator.rb +62 -0
  56. data/lib/twitter_cldr/transforms/variable_rule.rb +77 -0
  57. data/lib/twitter_cldr/utils.rb +1 -0
  58. data/lib/twitter_cldr/utils/regexp_ast.rb +1 -0
  59. data/lib/twitter_cldr/utils/regexp_sampler.rb +4 -0
  60. data/lib/twitter_cldr/utils/script_detector.rb +4 -0
  61. data/lib/twitter_cldr/{collation → utils}/trie.rb +7 -2
  62. data/lib/twitter_cldr/version.rb +1 -1
  63. data/lib/twitter_cldr/versions.rb +3 -3
  64. data/resources/collation/tries/af.dump +0 -0
  65. data/resources/collation/tries/ar.dump +0 -0
  66. data/resources/collation/tries/be.dump +0 -0
  67. data/resources/collation/tries/bg.dump +0 -0
  68. data/resources/collation/tries/bn.dump +0 -0
  69. data/resources/collation/tries/ca.dump +0 -0
  70. data/resources/collation/tries/cs.dump +0 -0
  71. data/resources/collation/tries/cy.dump +0 -0
  72. data/resources/collation/tries/da.dump +0 -0
  73. data/resources/collation/tries/de-CH.dump +0 -0
  74. data/resources/collation/tries/de.dump +0 -0
  75. data/resources/collation/tries/default.dump +0 -0
  76. data/resources/collation/tries/el.dump +0 -0
  77. data/resources/collation/tries/en-150.dump +0 -0
  78. data/resources/collation/tries/en-AU.dump +0 -0
  79. data/resources/collation/tries/en-CA.dump +0 -0
  80. data/resources/collation/tries/en-GB.dump +0 -0
  81. data/resources/collation/tries/en-IE.dump +0 -0
  82. data/resources/collation/tries/en-SG.dump +0 -0
  83. data/resources/collation/tries/en-ZA.dump +0 -0
  84. data/resources/collation/tries/en.dump +0 -0
  85. data/resources/collation/tries/es-419.dump +0 -0
  86. data/resources/collation/tries/es-CO.dump +0 -0
  87. data/resources/collation/tries/es-MX.dump +0 -0
  88. data/resources/collation/tries/es-US.dump +0 -0
  89. data/resources/collation/tries/es.dump +0 -0
  90. data/resources/collation/tries/eu.dump +0 -0
  91. data/resources/collation/tries/fa.dump +0 -0
  92. data/resources/collation/tries/fi.dump +0 -0
  93. data/resources/collation/tries/fil.dump +0 -0
  94. data/resources/collation/tries/fr-BE.dump +0 -0
  95. data/resources/collation/tries/fr-CA.dump +0 -0
  96. data/resources/collation/tries/fr-CH.dump +0 -0
  97. data/resources/collation/tries/fr.dump +0 -0
  98. data/resources/collation/tries/ga.dump +0 -0
  99. data/resources/collation/tries/gl.dump +0 -0
  100. data/resources/collation/tries/gu.dump +0 -0
  101. data/resources/collation/tries/he.dump +0 -0
  102. data/resources/collation/tries/hi.dump +0 -0
  103. data/resources/collation/tries/hr.dump +0 -0
  104. data/resources/collation/tries/hu.dump +0 -0
  105. data/resources/collation/tries/id.dump +0 -0
  106. data/resources/collation/tries/is.dump +0 -0
  107. data/resources/collation/tries/it-CH.dump +0 -0
  108. data/resources/collation/tries/it.dump +0 -0
  109. data/resources/collation/tries/ja.dump +0 -0
  110. data/resources/collation/tries/kn.dump +0 -0
  111. data/resources/collation/tries/ko.dump +0 -0
  112. data/resources/collation/tries/lv.dump +0 -0
  113. data/resources/collation/tries/mr.dump +0 -0
  114. data/resources/collation/tries/ms.dump +0 -0
  115. data/resources/collation/tries/nb.dump +0 -0
  116. data/resources/collation/tries/nl.dump +0 -0
  117. data/resources/collation/tries/pl.dump +0 -0
  118. data/resources/collation/tries/pt.dump +0 -0
  119. data/resources/collation/tries/ro.dump +0 -0
  120. data/resources/collation/tries/ru.dump +0 -0
  121. data/resources/collation/tries/sk.dump +0 -0
  122. data/resources/collation/tries/sq.dump +0 -0
  123. data/resources/collation/tries/sr.dump +0 -0
  124. data/resources/collation/tries/sv.dump +0 -0
  125. data/resources/collation/tries/ta.dump +0 -0
  126. data/resources/collation/tries/th.dump +0 -0
  127. data/resources/collation/tries/tr.dump +0 -0
  128. data/resources/collation/tries/uk.dump +0 -0
  129. data/resources/collation/tries/ur.dump +0 -0
  130. data/resources/collation/tries/vi.dump +0 -0
  131. data/resources/collation/tries/zh-Hant.dump +0 -0
  132. data/resources/collation/tries/zh.dump +0 -0
  133. data/resources/locales/af/calendars.yml +86 -44
  134. data/resources/locales/af/fields.yml +55 -26
  135. data/resources/locales/af/languages.yml +13 -4
  136. data/resources/locales/af/numbers.yml +49 -0
  137. data/resources/locales/af/territories.yml +12 -13
  138. data/resources/locales/af/units.yml +71 -6
  139. data/resources/locales/ar/calendars.yml +59 -4
  140. data/resources/locales/ar/fields.yml +276 -262
  141. data/resources/locales/ar/languages.yml +65 -41
  142. data/resources/locales/ar/lists.yml +8 -8
  143. data/resources/locales/ar/numbers.yml +135 -38
  144. data/resources/locales/ar/plurals.yml +3 -4
  145. data/resources/locales/ar/rbnf.yml +322 -0
  146. data/resources/locales/ar/territories.yml +15 -16
  147. data/resources/locales/ar/units.yml +380 -247
  148. data/resources/locales/be/calendars.yml +103 -29
  149. data/resources/locales/be/fields.yml +416 -1
  150. data/resources/locales/be/languages.yml +130 -10
  151. data/resources/locales/be/lists.yml +18 -3
  152. data/resources/locales/be/numbers.yml +200 -16
  153. data/resources/locales/be/plural_rules.yml +2 -1
  154. data/resources/locales/be/plurals.yml +9 -8
  155. data/resources/locales/be/territories.yml +23 -13
  156. data/resources/locales/be/units.yml +1212 -127
  157. data/resources/locales/bg/calendars.yml +65 -23
  158. data/resources/locales/bg/fields.yml +50 -2
  159. data/resources/locales/bg/languages.yml +13 -16
  160. data/resources/locales/bg/numbers.yml +51 -2
  161. data/resources/locales/bg/territories.yml +8 -9
  162. data/resources/locales/bg/units.yml +72 -7
  163. data/resources/locales/bn/calendars.yml +72 -23
  164. data/resources/locales/bn/fields.yml +37 -1
  165. data/resources/locales/bn/languages.yml +28 -22
  166. data/resources/locales/bn/numbers.yml +49 -0
  167. data/resources/locales/bn/plurals.yml +2 -2
  168. data/resources/locales/bn/territories.yml +6 -7
  169. data/resources/locales/bn/units.yml +108 -43
  170. data/resources/locales/ca/calendars.yml +87 -28
  171. data/resources/locales/ca/fields.yml +58 -10
  172. data/resources/locales/ca/languages.yml +61 -10
  173. data/resources/locales/ca/numbers.yml +49 -0
  174. data/resources/locales/ca/plurals.yml +2 -2
  175. data/resources/locales/ca/territories.yml +16 -17
  176. data/resources/locales/ca/units.yml +79 -12
  177. data/resources/locales/cs/calendars.yml +74 -19
  178. data/resources/locales/cs/fields.yml +48 -12
  179. data/resources/locales/cs/languages.yml +8 -3
  180. data/resources/locales/cs/numbers.yml +73 -0
  181. data/resources/locales/cs/plurals.yml +3 -3
  182. data/resources/locales/cs/territories.yml +1 -2
  183. data/resources/locales/cs/units.yml +129 -15
  184. data/resources/locales/cy/calendars.yml +47 -22
  185. data/resources/locales/cy/fields.yml +390 -52
  186. data/resources/locales/cy/languages.yml +83 -8
  187. data/resources/locales/cy/lists.yml +6 -1
  188. data/resources/locales/cy/numbers.yml +99 -2
  189. data/resources/locales/cy/territories.yml +4 -5
  190. data/resources/locales/cy/units.yml +1401 -71
  191. data/resources/locales/da/calendars.yml +67 -20
  192. data/resources/locales/da/fields.yml +59 -11
  193. data/resources/locales/da/languages.yml +10 -4
  194. data/resources/locales/da/numbers.yml +55 -6
  195. data/resources/locales/da/plurals.yml +2 -2
  196. data/resources/locales/da/rbnf.yml +353 -46
  197. data/resources/locales/da/territories.yml +8 -9
  198. data/resources/locales/da/units.yml +84 -16
  199. data/resources/locales/de-CH/calendars.yml +59 -15
  200. data/resources/locales/de-CH/fields.yml +36 -0
  201. data/resources/locales/de-CH/languages.yml +27 -23
  202. data/resources/locales/de-CH/numbers.yml +62 -13
  203. data/resources/locales/de-CH/plurals.yml +2 -2
  204. data/resources/locales/de-CH/rbnf.yml +532 -1
  205. data/resources/locales/de-CH/territories.yml +7 -8
  206. data/resources/locales/de-CH/units.yml +85 -16
  207. data/resources/locales/de/calendars.yml +59 -15
  208. data/resources/locales/de/fields.yml +36 -0
  209. data/resources/locales/de/languages.yml +27 -23
  210. data/resources/locales/de/numbers.yml +61 -12
  211. data/resources/locales/de/plurals.yml +2 -2
  212. data/resources/locales/de/territories.yml +8 -9
  213. data/resources/locales/de/units.yml +85 -16
  214. data/resources/locales/el/calendars.yml +54 -19
  215. data/resources/locales/el/fields.yml +69 -49
  216. data/resources/locales/el/languages.yml +12 -6
  217. data/resources/locales/el/lists.yml +6 -6
  218. data/resources/locales/el/numbers.yml +49 -0
  219. data/resources/locales/el/territories.yml +2 -3
  220. data/resources/locales/el/units.yml +81 -16
  221. data/resources/locales/en-150/calendars.yml +64 -26
  222. data/resources/locales/en-150/fields.yml +19 -12
  223. data/resources/locales/en-150/languages.yml +13 -8
  224. data/resources/locales/en-150/numbers.yml +49 -0
  225. data/resources/locales/en-150/plurals.yml +5 -5
  226. data/resources/locales/en-150/territories.yml +2 -3
  227. data/resources/locales/en-150/units.yml +125 -14
  228. data/resources/locales/en-AU/calendars.yml +117 -73
  229. data/resources/locales/en-AU/fields.yml +26 -19
  230. data/resources/locales/en-AU/languages.yml +13 -8
  231. data/resources/locales/en-AU/lists.yml +2 -2
  232. data/resources/locales/en-AU/numbers.yml +50 -1
  233. data/resources/locales/en-AU/plurals.yml +5 -5
  234. data/resources/locales/en-AU/territories.yml +6 -7
  235. data/resources/locales/en-AU/units.yml +171 -57
  236. data/resources/locales/en-CA/calendars.yml +58 -19
  237. data/resources/locales/en-CA/fields.yml +19 -12
  238. data/resources/locales/en-CA/languages.yml +13 -8
  239. data/resources/locales/en-CA/numbers.yml +49 -0
  240. data/resources/locales/en-CA/plurals.yml +5 -5
  241. data/resources/locales/en-CA/territories.yml +2 -3
  242. data/resources/locales/en-CA/units.yml +125 -14
  243. data/resources/locales/en-GB/calendars.yml +77 -40
  244. data/resources/locales/en-GB/fields.yml +77 -85
  245. data/resources/locales/en-GB/languages.yml +12 -7
  246. data/resources/locales/en-GB/lists.yml +1 -1
  247. data/resources/locales/en-GB/numbers.yml +49 -0
  248. data/resources/locales/en-GB/plurals.yml +5 -5
  249. data/resources/locales/en-GB/territories.yml +14 -15
  250. data/resources/locales/en-GB/units.yml +186 -75
  251. data/resources/locales/en-IE/calendars.yml +55 -17
  252. data/resources/locales/en-IE/fields.yml +19 -12
  253. data/resources/locales/en-IE/languages.yml +13 -8
  254. data/resources/locales/en-IE/numbers.yml +49 -0
  255. data/resources/locales/en-IE/plurals.yml +5 -5
  256. data/resources/locales/en-IE/territories.yml +2 -3
  257. data/resources/locales/en-IE/units.yml +126 -15
  258. data/resources/locales/en-SG/calendars.yml +52 -14
  259. data/resources/locales/en-SG/fields.yml +19 -12
  260. data/resources/locales/en-SG/languages.yml +13 -8
  261. data/resources/locales/en-SG/numbers.yml +49 -0
  262. data/resources/locales/en-SG/plurals.yml +5 -5
  263. data/resources/locales/en-SG/territories.yml +2 -3
  264. data/resources/locales/en-SG/units.yml +125 -14
  265. data/resources/locales/en-ZA/calendars.yml +54 -16
  266. data/resources/locales/en-ZA/fields.yml +19 -12
  267. data/resources/locales/en-ZA/languages.yml +13 -8
  268. data/resources/locales/en-ZA/numbers.yml +49 -0
  269. data/resources/locales/en-ZA/plurals.yml +5 -5
  270. data/resources/locales/en-ZA/territories.yml +2 -3
  271. data/resources/locales/en-ZA/units.yml +125 -14
  272. data/resources/locales/en/calendars.yml +51 -13
  273. data/resources/locales/en/fields.yml +19 -12
  274. data/resources/locales/en/languages.yml +13 -8
  275. data/resources/locales/en/numbers.yml +49 -0
  276. data/resources/locales/en/plurals.yml +5 -5
  277. data/resources/locales/en/rbnf.yml +37 -1
  278. data/resources/locales/en/territories.yml +2 -3
  279. data/resources/locales/en/units.yml +125 -14
  280. data/resources/locales/es-419/calendars.yml +159 -108
  281. data/resources/locales/es-419/fields.yml +122 -94
  282. data/resources/locales/es-419/languages.yml +22 -17
  283. data/resources/locales/es-419/lists.yml +4 -4
  284. data/resources/locales/es-419/numbers.yml +49 -0
  285. data/resources/locales/es-419/rbnf.yml +62 -1
  286. data/resources/locales/es-419/territories.yml +5 -6
  287. data/resources/locales/es-419/units.yml +193 -128
  288. data/resources/locales/es-CO/calendars.yml +128 -77
  289. data/resources/locales/es-CO/fields.yml +40 -12
  290. data/resources/locales/es-CO/languages.yml +22 -17
  291. data/resources/locales/es-CO/lists.yml +4 -4
  292. data/resources/locales/es-CO/numbers.yml +75 -26
  293. data/resources/locales/es-CO/territories.yml +5 -6
  294. data/resources/locales/es-CO/units.yml +167 -102
  295. data/resources/locales/es-MX/calendars.yml +119 -69
  296. data/resources/locales/es-MX/fields.yml +40 -12
  297. data/resources/locales/es-MX/languages.yml +26 -21
  298. data/resources/locales/es-MX/lists.yml +4 -4
  299. data/resources/locales/es-MX/numbers.yml +67 -18
  300. data/resources/locales/es-MX/territories.yml +8 -9
  301. data/resources/locales/es-MX/units.yml +160 -95
  302. data/resources/locales/es-US/calendars.yml +127 -77
  303. data/resources/locales/es-US/fields.yml +40 -12
  304. data/resources/locales/es-US/languages.yml +22 -17
  305. data/resources/locales/es-US/lists.yml +4 -4
  306. data/resources/locales/es-US/numbers.yml +73 -24
  307. data/resources/locales/es-US/territories.yml +5 -6
  308. data/resources/locales/es-US/units.yml +167 -102
  309. data/resources/locales/es/calendars.yml +124 -74
  310. data/resources/locales/es/fields.yml +40 -12
  311. data/resources/locales/es/languages.yml +22 -17
  312. data/resources/locales/es/lists.yml +4 -4
  313. data/resources/locales/es/numbers.yml +73 -24
  314. data/resources/locales/es/rbnf.yml +29 -14
  315. data/resources/locales/es/territories.yml +5 -6
  316. data/resources/locales/es/units.yml +171 -106
  317. data/resources/locales/eu/calendars.yml +18 -3
  318. data/resources/locales/eu/fields.yml +8 -0
  319. data/resources/locales/eu/languages.yml +1 -1
  320. data/resources/locales/eu/numbers.yml +49 -0
  321. data/resources/locales/eu/territories.yml +5 -6
  322. data/resources/locales/eu/units.yml +36 -6
  323. data/resources/locales/fa/calendars.yml +57 -14
  324. data/resources/locales/fa/fields.yml +64 -12
  325. data/resources/locales/fa/languages.yml +29 -17
  326. data/resources/locales/fa/numbers.yml +81 -32
  327. data/resources/locales/fa/plurals.yml +2 -2
  328. data/resources/locales/fa/territories.yml +11 -12
  329. data/resources/locales/fa/units.yml +144 -66
  330. data/resources/locales/fi/calendars.yml +55 -4
  331. data/resources/locales/fi/fields.yml +56 -4
  332. data/resources/locales/fi/languages.yml +8 -4
  333. data/resources/locales/fi/numbers.yml +49 -0
  334. data/resources/locales/fi/plurals.yml +2 -2
  335. data/resources/locales/fi/rbnf.yml +3649 -29
  336. data/resources/locales/fi/territories.yml +1 -2
  337. data/resources/locales/fi/units.yml +98 -12
  338. data/resources/locales/fil/calendars.yml +113 -60
  339. data/resources/locales/fil/fields.yml +78 -30
  340. data/resources/locales/fil/languages.yml +24 -12
  341. data/resources/locales/fil/lists.yml +4 -4
  342. data/resources/locales/fil/numbers.yml +61 -12
  343. data/resources/locales/fil/plurals.yml +4 -4
  344. data/resources/locales/fil/territories.yml +3 -4
  345. data/resources/locales/fil/units.yml +203 -138
  346. data/resources/locales/fr-BE/calendars.yml +103 -73
  347. data/resources/locales/fr-BE/fields.yml +32 -20
  348. data/resources/locales/fr-BE/languages.yml +12 -6
  349. data/resources/locales/fr-BE/numbers.yml +51 -2
  350. data/resources/locales/fr-BE/territories.yml +5 -6
  351. data/resources/locales/fr-BE/units.yml +100 -26
  352. data/resources/locales/fr-CA/calendars.yml +56 -26
  353. data/resources/locales/fr-CA/fields.yml +54 -42
  354. data/resources/locales/fr-CA/languages.yml +23 -17
  355. data/resources/locales/fr-CA/numbers.yml +54 -5
  356. data/resources/locales/fr-CA/territories.yml +4 -5
  357. data/resources/locales/fr-CA/units.yml +93 -19
  358. data/resources/locales/fr-CH/calendars.yml +103 -73
  359. data/resources/locales/fr-CH/fields.yml +32 -20
  360. data/resources/locales/fr-CH/languages.yml +12 -6
  361. data/resources/locales/fr-CH/numbers.yml +52 -3
  362. data/resources/locales/fr-CH/territories.yml +5 -6
  363. data/resources/locales/fr-CH/units.yml +100 -26
  364. data/resources/locales/fr/calendars.yml +103 -73
  365. data/resources/locales/fr/fields.yml +32 -20
  366. data/resources/locales/fr/languages.yml +12 -6
  367. data/resources/locales/fr/numbers.yml +51 -2
  368. data/resources/locales/fr/territories.yml +5 -6
  369. data/resources/locales/fr/units.yml +100 -26
  370. data/resources/locales/ga/calendars.yml +19 -4
  371. data/resources/locales/ga/fields.yml +82 -28
  372. data/resources/locales/ga/languages.yml +4 -3
  373. data/resources/locales/ga/numbers.yml +85 -0
  374. data/resources/locales/ga/plural_rules.yml +2 -1
  375. data/resources/locales/ga/plurals.yml +7 -5
  376. data/resources/locales/ga/territories.yml +0 -1
  377. data/resources/locales/ga/units.yml +140 -24
  378. data/resources/locales/gl/calendars.yml +60 -13
  379. data/resources/locales/gl/fields.yml +29 -0
  380. data/resources/locales/gl/languages.yml +42 -34
  381. data/resources/locales/gl/numbers.yml +50 -1
  382. data/resources/locales/gl/plurals.yml +2 -2
  383. data/resources/locales/gl/territories.yml +4 -5
  384. data/resources/locales/gl/units.yml +89 -24
  385. data/resources/locales/gu/calendars.yml +68 -25
  386. data/resources/locales/gu/fields.yml +55 -19
  387. data/resources/locales/gu/languages.yml +12 -7
  388. data/resources/locales/gu/lists.yml +8 -4
  389. data/resources/locales/gu/numbers.yml +97 -24
  390. data/resources/locales/gu/plurals.yml +2 -2
  391. data/resources/locales/gu/territories.yml +24 -25
  392. data/resources/locales/gu/units.yml +71 -6
  393. data/resources/locales/he/calendars.yml +42 -18
  394. data/resources/locales/he/languages.yml +9 -3
  395. data/resources/locales/he/numbers.yml +97 -24
  396. data/resources/locales/he/plurals.yml +3 -4
  397. data/resources/locales/he/rbnf.yml +4 -1
  398. data/resources/locales/he/territories.yml +7 -8
  399. data/resources/locales/he/units.yml +263 -164
  400. data/resources/locales/hi/calendars.yml +39 -3
  401. data/resources/locales/hi/fields.yml +12 -0
  402. data/resources/locales/hi/languages.yml +11 -5
  403. data/resources/locales/hi/numbers.yml +49 -0
  404. data/resources/locales/hi/plurals.yml +2 -2
  405. data/resources/locales/hi/territories.yml +0 -1
  406. data/resources/locales/hi/units.yml +75 -10
  407. data/resources/locales/hr/calendars.yml +46 -27
  408. data/resources/locales/hr/fields.yml +59 -11
  409. data/resources/locales/hr/languages.yml +8 -1
  410. data/resources/locales/hr/numbers.yml +61 -0
  411. data/resources/locales/hr/plurals.yml +4 -7
  412. data/resources/locales/hr/territories.yml +0 -1
  413. data/resources/locales/hr/units.yml +95 -13
  414. data/resources/locales/hu/calendars.yml +63 -2
  415. data/resources/locales/hu/fields.yml +48 -0
  416. data/resources/locales/hu/languages.yml +7 -1
  417. data/resources/locales/hu/numbers.yml +49 -0
  418. data/resources/locales/hu/territories.yml +3 -4
  419. data/resources/locales/hu/units.yml +73 -8
  420. data/resources/locales/id/calendars.yml +52 -2
  421. data/resources/locales/id/fields.yml +6 -6
  422. data/resources/locales/id/languages.yml +18 -21
  423. data/resources/locales/id/numbers.yml +37 -0
  424. data/resources/locales/id/rbnf.yml +4 -1
  425. data/resources/locales/id/territories.yml +2 -3
  426. data/resources/locales/id/units.yml +52 -4
  427. data/resources/locales/is/calendars.yml +53 -11
  428. data/resources/locales/is/fields.yml +61 -13
  429. data/resources/locales/is/languages.yml +10 -4
  430. data/resources/locales/is/numbers.yml +49 -0
  431. data/resources/locales/is/plurals.yml +2 -2
  432. data/resources/locales/is/territories.yml +4 -5
  433. data/resources/locales/is/units.yml +78 -12
  434. data/resources/locales/it-CH/calendars.yml +81 -31
  435. data/resources/locales/it-CH/fields.yml +22 -10
  436. data/resources/locales/it-CH/languages.yml +9 -5
  437. data/resources/locales/it-CH/lists.yml +4 -4
  438. data/resources/locales/it-CH/numbers.yml +61 -12
  439. data/resources/locales/it-CH/plurals.yml +2 -2
  440. data/resources/locales/it-CH/territories.yml +27 -28
  441. data/resources/locales/it-CH/units.yml +161 -96
  442. data/resources/locales/it/calendars.yml +67 -17
  443. data/resources/locales/it/fields.yml +22 -10
  444. data/resources/locales/it/languages.yml +9 -5
  445. data/resources/locales/it/lists.yml +4 -4
  446. data/resources/locales/it/numbers.yml +61 -12
  447. data/resources/locales/it/plurals.yml +2 -2
  448. data/resources/locales/it/rbnf.yml +3 -15
  449. data/resources/locales/it/territories.yml +27 -28
  450. data/resources/locales/it/units.yml +161 -96
  451. data/resources/locales/ja/calendars.yml +59 -2
  452. data/resources/locales/ja/fields.yml +36 -0
  453. data/resources/locales/ja/languages.yml +9 -6
  454. data/resources/locales/ja/numbers.yml +40 -3
  455. data/resources/locales/ja/territories.yml +1 -2
  456. data/resources/locales/ja/units.yml +57 -9
  457. data/resources/locales/kn/calendars.yml +56 -15
  458. data/resources/locales/kn/fields.yml +49 -1
  459. data/resources/locales/kn/languages.yml +6 -1
  460. data/resources/locales/kn/lists.yml +8 -4
  461. data/resources/locales/kn/numbers.yml +97 -24
  462. data/resources/locales/kn/plurals.yml +2 -2
  463. data/resources/locales/kn/territories.yml +0 -1
  464. data/resources/locales/kn/units.yml +83 -18
  465. data/resources/locales/ko/calendars.yml +61 -4
  466. data/resources/locales/ko/languages.yml +14 -21
  467. data/resources/locales/ko/numbers.yml +39 -2
  468. data/resources/locales/ko/territories.yml +29 -30
  469. data/resources/locales/ko/units.yml +58 -10
  470. data/resources/locales/lv/calendars.yml +58 -10
  471. data/resources/locales/lv/fields.yml +8 -8
  472. data/resources/locales/lv/languages.yml +8 -1
  473. data/resources/locales/lv/numbers.yml +62 -1
  474. data/resources/locales/lv/plurals.yml +4 -6
  475. data/resources/locales/lv/territories.yml +0 -1
  476. data/resources/locales/lv/units.yml +86 -8
  477. data/resources/locales/mr/calendars.yml +70 -11
  478. data/resources/locales/mr/fields.yml +97 -61
  479. data/resources/locales/mr/languages.yml +9 -3
  480. data/resources/locales/mr/lists.yml +8 -4
  481. data/resources/locales/mr/numbers.yml +97 -24
  482. data/resources/locales/mr/plurals.yml +2 -2
  483. data/resources/locales/mr/territories.yml +4 -5
  484. data/resources/locales/mr/units.yml +71 -6
  485. data/resources/locales/ms/calendars.yml +47 -6
  486. data/resources/locales/ms/fields.yml +48 -0
  487. data/resources/locales/ms/languages.yml +12 -4
  488. data/resources/locales/ms/numbers.yml +37 -0
  489. data/resources/locales/ms/rbnf.yml +2 -2
  490. data/resources/locales/ms/territories.yml +2 -3
  491. data/resources/locales/ms/units.yml +54 -6
  492. data/resources/locales/nb/calendars.yml +83 -38
  493. data/resources/locales/nb/fields.yml +89 -55
  494. data/resources/locales/nb/languages.yml +105 -8
  495. data/resources/locales/nb/numbers.yml +50 -1
  496. data/resources/locales/nb/rbnf.yml +762 -22
  497. data/resources/locales/nb/territories.yml +2 -3
  498. data/resources/locales/nb/units.yml +92 -19
  499. data/resources/locales/nl/calendars.yml +88 -52
  500. data/resources/locales/nl/fields.yml +62 -10
  501. data/resources/locales/nl/languages.yml +12 -9
  502. data/resources/locales/nl/lists.yml +1 -1
  503. data/resources/locales/nl/numbers.yml +50 -1
  504. data/resources/locales/nl/plurals.yml +2 -2
  505. data/resources/locales/nl/territories.yml +2 -3
  506. data/resources/locales/nl/units.yml +101 -30
  507. data/resources/locales/pl/calendars.yml +70 -31
  508. data/resources/locales/pl/fields.yml +12 -0
  509. data/resources/locales/pl/languages.yml +8 -5
  510. data/resources/locales/pl/numbers.yml +73 -0
  511. data/resources/locales/pl/plurals.yml +4 -8
  512. data/resources/locales/pl/rbnf.yml +965 -50
  513. data/resources/locales/pl/territories.yml +3 -4
  514. data/resources/locales/pl/units.yml +109 -10
  515. data/resources/locales/pt/calendars.yml +65 -23
  516. data/resources/locales/pt/fields.yml +76 -76
  517. data/resources/locales/pt/languages.yml +20 -13
  518. data/resources/locales/pt/numbers.yml +49 -0
  519. data/resources/locales/pt/plurals.yml +2 -2
  520. data/resources/locales/pt/rbnf.yml +1 -1
  521. data/resources/locales/pt/territories.yml +4 -5
  522. data/resources/locales/pt/units.yml +75 -10
  523. data/resources/locales/ro/calendars.yml +90 -50
  524. data/resources/locales/ro/fields.yml +15 -3
  525. data/resources/locales/ro/languages.yml +10 -4
  526. data/resources/locales/ro/numbers.yml +62 -1
  527. data/resources/locales/ro/plurals.yml +3 -4
  528. data/resources/locales/ro/territories.yml +4 -5
  529. data/resources/locales/ro/units.yml +100 -18
  530. data/resources/locales/ru/calendars.yml +88 -41
  531. data/resources/locales/ru/fields.yml +24 -12
  532. data/resources/locales/ru/languages.yml +13 -6
  533. data/resources/locales/ru/lists.yml +7 -7
  534. data/resources/locales/ru/numbers.yml +73 -0
  535. data/resources/locales/ru/plurals.yml +4 -8
  536. data/resources/locales/ru/rbnf.yml +3916 -8
  537. data/resources/locales/ru/territories.yml +6 -7
  538. data/resources/locales/ru/units.yml +127 -28
  539. data/resources/locales/sk/calendars.yml +97 -42
  540. data/resources/locales/sk/fields.yml +30 -18
  541. data/resources/locales/sk/languages.yml +20 -14
  542. data/resources/locales/sk/lists.yml +1 -1
  543. data/resources/locales/sk/numbers.yml +99 -26
  544. data/resources/locales/sk/plurals.yml +3 -3
  545. data/resources/locales/sk/territories.yml +1 -2
  546. data/resources/locales/sk/units.yml +114 -15
  547. data/resources/locales/sq/calendars.yml +66 -11
  548. data/resources/locales/sq/fields.yml +49 -49
  549. data/resources/locales/sq/languages.yml +48 -39
  550. data/resources/locales/sq/numbers.yml +49 -0
  551. data/resources/locales/sq/plurals.yml +2 -2
  552. data/resources/locales/sq/territories.yml +25 -25
  553. data/resources/locales/sq/units.yml +112 -47
  554. data/resources/locales/sr/calendars.yml +70 -21
  555. data/resources/locales/sr/fields.yml +26 -14
  556. data/resources/locales/sr/languages.yml +12 -6
  557. data/resources/locales/sr/numbers.yml +62 -1
  558. data/resources/locales/sr/plurals.yml +4 -7
  559. data/resources/locales/sr/territories.yml +2 -3
  560. data/resources/locales/sr/units.yml +99 -17
  561. data/resources/locales/sv/calendars.yml +110 -71
  562. data/resources/locales/sv/fields.yml +69 -21
  563. data/resources/locales/sv/languages.yml +35 -5
  564. data/resources/locales/sv/numbers.yml +51 -2
  565. data/resources/locales/sv/plurals.yml +4 -4
  566. data/resources/locales/sv/territories.yml +0 -1
  567. data/resources/locales/sv/units.yml +95 -9
  568. data/resources/locales/ta/calendars.yml +112 -47
  569. data/resources/locales/ta/fields.yml +145 -97
  570. data/resources/locales/ta/languages.yml +30 -26
  571. data/resources/locales/ta/numbers.yml +49 -0
  572. data/resources/locales/ta/territories.yml +31 -32
  573. data/resources/locales/ta/units.yml +90 -25
  574. data/resources/locales/th/calendars.yml +66 -6
  575. data/resources/locales/th/fields.yml +36 -0
  576. data/resources/locales/th/languages.yml +10 -3
  577. data/resources/locales/th/numbers.yml +37 -0
  578. data/resources/locales/th/rbnf.yml +2 -2
  579. data/resources/locales/th/territories.yml +0 -1
  580. data/resources/locales/th/units.yml +54 -6
  581. data/resources/locales/tr/calendars.yml +63 -2
  582. data/resources/locales/tr/fields.yml +28 -0
  583. data/resources/locales/tr/languages.yml +9 -4
  584. data/resources/locales/tr/numbers.yml +49 -0
  585. data/resources/locales/tr/rbnf.yml +9 -28
  586. data/resources/locales/tr/territories.yml +1 -2
  587. data/resources/locales/tr/units.yml +81 -16
  588. data/resources/locales/uk/calendars.yml +93 -61
  589. data/resources/locales/uk/fields.yml +44 -12
  590. data/resources/locales/uk/languages.yml +27 -6
  591. data/resources/locales/uk/numbers.yml +86 -13
  592. data/resources/locales/uk/plurals.yml +6 -10
  593. data/resources/locales/uk/territories.yml +3 -4
  594. data/resources/locales/uk/units.yml +122 -23
  595. data/resources/locales/ur/calendars.yml +58 -9
  596. data/resources/locales/ur/fields.yml +51 -19
  597. data/resources/locales/ur/languages.yml +23 -13
  598. data/resources/locales/ur/numbers.yml +49 -0
  599. data/resources/locales/ur/plurals.yml +2 -2
  600. data/resources/locales/ur/territories.yml +8 -9
  601. data/resources/locales/ur/units.yml +76 -11
  602. data/resources/locales/vi/calendars.yml +72 -23
  603. data/resources/locales/vi/fields.yml +65 -29
  604. data/resources/locales/vi/languages.yml +42 -3
  605. data/resources/locales/vi/numbers.yml +38 -1
  606. data/resources/locales/vi/territories.yml +7 -8
  607. data/resources/locales/vi/units.yml +58 -10
  608. data/resources/locales/zh-Hant/calendars.yml +64 -21
  609. data/resources/locales/zh-Hant/fields.yml +12 -0
  610. data/resources/locales/zh-Hant/languages.yml +13 -8
  611. data/resources/locales/zh-Hant/lists.yml +8 -8
  612. data/resources/locales/zh-Hant/numbers.yml +50 -13
  613. data/resources/locales/zh-Hant/territories.yml +11 -12
  614. data/resources/locales/zh-Hant/units.yml +204 -156
  615. data/resources/locales/zh/calendars.yml +69 -26
  616. data/resources/locales/zh/languages.yml +8 -1
  617. data/resources/locales/zh/numbers.yml +40 -3
  618. data/resources/locales/zh/territories.yml +2 -3
  619. data/resources/locales/zh/units.yml +71 -23
  620. data/resources/shared/aliases.yml +31 -0
  621. data/resources/shared/hyphenation/af-ZA.yml +3343 -0
  622. data/resources/shared/hyphenation/bg-BG.yml +5963 -0
  623. data/resources/shared/hyphenation/ca.yml +2310 -0
  624. data/resources/shared/hyphenation/cs-CZ.yml +3639 -0
  625. data/resources/shared/hyphenation/da-DK.yml +1148 -0
  626. data/resources/shared/hyphenation/de-AT.yml +11392 -0
  627. data/resources/shared/hyphenation/de-CH.yml +11392 -0
  628. data/resources/shared/hyphenation/de-DE.yml +11392 -0
  629. data/resources/shared/hyphenation/el-GR.yml +581 -0
  630. data/resources/shared/hyphenation/en-GB.yml +14064 -0
  631. data/resources/shared/hyphenation/en-US.yml +11132 -0
  632. data/resources/shared/hyphenation/es.yml +867 -0
  633. data/resources/shared/hyphenation/et-EE.yml +3694 -0
  634. data/resources/shared/hyphenation/fr.yml +2844 -0
  635. data/resources/shared/hyphenation/gl.yml +292 -0
  636. data/resources/shared/hyphenation/hr-HR.yml +1599 -0
  637. data/resources/shared/hyphenation/hu-HU.yml +96292 -0
  638. data/resources/shared/hyphenation/is.yml +7697 -0
  639. data/resources/shared/hyphenation/it-IT.yml +401 -0
  640. data/resources/shared/hyphenation/lt.yml +1549 -0
  641. data/resources/shared/hyphenation/lv-LV.yml +11902 -0
  642. data/resources/shared/hyphenation/nb-NO.yml +27144 -0
  643. data/resources/shared/hyphenation/nl-NL.yml +16259 -0
  644. data/resources/shared/hyphenation/nn-NO.yml +27144 -0
  645. data/resources/shared/hyphenation/pl-PL.yml +4826 -0
  646. data/resources/shared/hyphenation/pt-BR.yml +1249 -0
  647. data/resources/shared/hyphenation/pt-PT.yml +310 -0
  648. data/resources/shared/hyphenation/ro-RO.yml +5206 -0
  649. data/resources/shared/hyphenation/ru-RU.yml +3877 -0
  650. data/resources/shared/hyphenation/sk-SK.yml +2470 -0
  651. data/resources/shared/hyphenation/sl-SI.yml +1415 -0
  652. data/resources/shared/hyphenation/sr-Latn.yml +3414 -0
  653. data/resources/shared/hyphenation/sr.yml +3367 -0
  654. data/resources/shared/hyphenation/sv.yml +14956 -0
  655. data/resources/shared/hyphenation/te-IN.yml +75 -0
  656. data/resources/shared/hyphenation/uk-UA.yml +1656 -0
  657. data/resources/shared/hyphenation/zu-ZA.yml +133 -0
  658. data/resources/shared/language_codes_table.dump +0 -0
  659. data/resources/shared/likely_subtags.yml +61 -16
  660. data/resources/shared/numbering_systems.yml +45 -0
  661. data/resources/shared/postal_codes.yml +318 -309
  662. data/resources/shared/rbnf_root.yml +613 -273
  663. data/resources/shared/segments/segments_root.yml +4 -1
  664. data/resources/shared/territories_containment.yml +3 -3
  665. data/resources/shared/transforms/Amharic-Latin-BGN.yml +336 -0
  666. data/resources/shared/transforms/Amharic-Latin.yml +335 -0
  667. data/resources/shared/transforms/Any-Accents.yml +52 -0
  668. data/resources/shared/transforms/Any-Publishing.yml +22 -0
  669. data/resources/shared/transforms/Arabic-Latin-BGN.yml +122 -0
  670. data/resources/shared/transforms/Arabic-Latin.yml +109 -0
  671. data/resources/shared/transforms/Armenian-Latin-BGN.yml +133 -0
  672. data/resources/shared/transforms/Armenian-Latin.yml +132 -0
  673. data/resources/shared/transforms/Azerbaijani-Latin-BGN.yml +93 -0
  674. data/resources/shared/transforms/Azerbaijani-Latin.yml +92 -0
  675. data/resources/shared/transforms/Belarusian-Latin-BGN.yml +108 -0
  676. data/resources/shared/transforms/Belarusian-Latin.yml +107 -0
  677. data/resources/shared/transforms/Bengali-Devanagari.yml +13 -0
  678. data/resources/shared/transforms/Bengali-Gujarati.yml +13 -0
  679. data/resources/shared/transforms/Bengali-Gurmukhi.yml +13 -0
  680. data/resources/shared/transforms/Bengali-InterIndic.yml +100 -0
  681. data/resources/shared/transforms/Bengali-Kannada.yml +13 -0
  682. data/resources/shared/transforms/Bengali-Latin.yml +13 -0
  683. data/resources/shared/transforms/Bengali-Malayalam.yml +13 -0
  684. data/resources/shared/transforms/Bengali-Oriya.yml +13 -0
  685. data/resources/shared/transforms/Bengali-Tamil.yml +13 -0
  686. data/resources/shared/transforms/Bengali-Telugu.yml +13 -0
  687. data/resources/shared/transforms/Bulgarian-Latin-BGN.yml +99 -0
  688. data/resources/shared/transforms/Bulgarian-Latin.yml +98 -0
  689. data/resources/shared/transforms/Cyrillic-Latin.yml +128 -0
  690. data/resources/shared/transforms/Devanagari-Bengali.yml +13 -0
  691. data/resources/shared/transforms/Devanagari-Gujarati.yml +13 -0
  692. data/resources/shared/transforms/Devanagari-Gurmukhi.yml +13 -0
  693. data/resources/shared/transforms/Devanagari-InterIndic.yml +114 -0
  694. data/resources/shared/transforms/Devanagari-Kannada.yml +13 -0
  695. data/resources/shared/transforms/Devanagari-Latin.yml +13 -0
  696. data/resources/shared/transforms/Devanagari-Malayalam.yml +13 -0
  697. data/resources/shared/transforms/Devanagari-Oriya.yml +13 -0
  698. data/resources/shared/transforms/Devanagari-Tamil.yml +13 -0
  699. data/resources/shared/transforms/Devanagari-Telugu.yml +13 -0
  700. data/resources/shared/transforms/Fullwidth-Halfwidth.yml +260 -0
  701. data/resources/shared/transforms/Georgian-Latin-BGN.yml +44 -0
  702. data/resources/shared/transforms/Georgian-Latin.yml +43 -0
  703. data/resources/shared/transforms/Greek-Latin-BGN.yml +208 -0
  704. data/resources/shared/transforms/Greek-Latin-UNGEGN.yml +160 -0
  705. data/resources/shared/transforms/Greek-Latin.yml +206 -0
  706. data/resources/shared/transforms/Gujarati-Bengali.yml +13 -0
  707. data/resources/shared/transforms/Gujarati-Devanagari.yml +13 -0
  708. data/resources/shared/transforms/Gujarati-Gurmukhi.yml +13 -0
  709. data/resources/shared/transforms/Gujarati-InterIndic.yml +91 -0
  710. data/resources/shared/transforms/Gujarati-Kannada.yml +13 -0
  711. data/resources/shared/transforms/Gujarati-Latin.yml +13 -0
  712. data/resources/shared/transforms/Gujarati-Malayalam.yml +13 -0
  713. data/resources/shared/transforms/Gujarati-Oriya.yml +13 -0
  714. data/resources/shared/transforms/Gujarati-Tamil.yml +13 -0
  715. data/resources/shared/transforms/Gujarati-Telugu.yml +13 -0
  716. data/resources/shared/transforms/Gurmukhi-Bengali.yml +13 -0
  717. data/resources/shared/transforms/Gurmukhi-Devanagari.yml +13 -0
  718. data/resources/shared/transforms/Gurmukhi-Gujarati.yml +13 -0
  719. data/resources/shared/transforms/Gurmukhi-InterIndic.yml +84 -0
  720. data/resources/shared/transforms/Gurmukhi-Kannada.yml +13 -0
  721. data/resources/shared/transforms/Gurmukhi-Latin.yml +13 -0
  722. data/resources/shared/transforms/Gurmukhi-Malayalam.yml +13 -0
  723. data/resources/shared/transforms/Gurmukhi-Oriya.yml +13 -0
  724. data/resources/shared/transforms/Gurmukhi-Tamil.yml +13 -0
  725. data/resources/shared/transforms/Gurmukhi-Telugu.yml +13 -0
  726. data/resources/shared/transforms/Han-Latin-Names.yml +53 -0
  727. data/resources/shared/transforms/Han-Latin.yml +1606 -0
  728. data/resources/shared/transforms/Han-Spacedhan.yml +17 -0
  729. data/resources/shared/transforms/Hangul-Latin.yml +12 -0
  730. data/resources/shared/transforms/Hebrew-Latin-BGN.yml +62 -0
  731. data/resources/shared/transforms/Hebrew-Latin.yml +72 -0
  732. data/resources/shared/transforms/Hiragana-Katakana.yml +114 -0
  733. data/resources/shared/transforms/Hiragana-Latin.yml +15 -0
  734. data/resources/shared/transforms/IPA-XSampa.yml +176 -0
  735. data/resources/shared/transforms/InterIndic-Bengali.yml +137 -0
  736. data/resources/shared/transforms/InterIndic-Devanagari.yml +149 -0
  737. data/resources/shared/transforms/InterIndic-Gujarati.yml +137 -0
  738. data/resources/shared/transforms/InterIndic-Gurmukhi.yml +141 -0
  739. data/resources/shared/transforms/InterIndic-Kannada.yml +139 -0
  740. data/resources/shared/transforms/InterIndic-Latin.yml +461 -0
  741. data/resources/shared/transforms/InterIndic-Malayalam.yml +139 -0
  742. data/resources/shared/transforms/InterIndic-Oriya.yml +137 -0
  743. data/resources/shared/transforms/InterIndic-Tamil.yml +138 -0
  744. data/resources/shared/transforms/InterIndic-Telugu.yml +138 -0
  745. data/resources/shared/transforms/Jamo-Latin.yml +12 -0
  746. data/resources/shared/transforms/JapaneseKana-Latin.yml +309 -0
  747. data/resources/shared/transforms/Kannada-Bengali.yml +13 -0
  748. data/resources/shared/transforms/Kannada-Devanagari.yml +13 -0
  749. data/resources/shared/transforms/Kannada-Gujarati.yml +13 -0
  750. data/resources/shared/transforms/Kannada-Gurmukhi.yml +13 -0
  751. data/resources/shared/transforms/Kannada-InterIndic.yml +91 -0
  752. data/resources/shared/transforms/Kannada-Latin.yml +13 -0
  753. data/resources/shared/transforms/Kannada-Malayalam.yml +13 -0
  754. data/resources/shared/transforms/Kannada-Oriya.yml +13 -0
  755. data/resources/shared/transforms/Kannada-Tamil.yml +13 -0
  756. data/resources/shared/transforms/Kannada-Telugu.yml +13 -0
  757. data/resources/shared/transforms/Katakana-Latin-BGN.yml +310 -0
  758. data/resources/shared/transforms/Katakana-Latin.yml +309 -0
  759. data/resources/shared/transforms/Kazakh-Latin-BGN.yml +136 -0
  760. data/resources/shared/transforms/Kazakh-Latin.yml +135 -0
  761. data/resources/shared/transforms/Kirghiz-Latin-BGN.yml +107 -0
  762. data/resources/shared/transforms/Kirghiz-Latin.yml +106 -0
  763. data/resources/shared/transforms/Korean-Latin-BGN.yml +282 -0
  764. data/resources/shared/transforms/Korean-Latin.yml +281 -0
  765. data/resources/shared/transforms/Latin-ASCII.yml +694 -0
  766. data/resources/shared/transforms/Latin-Armenian.yml +90 -0
  767. data/resources/shared/transforms/Latin-Bengali.yml +14 -0
  768. data/resources/shared/transforms/Latin-Bopomofo.yml +1451 -0
  769. data/resources/shared/transforms/Latin-CanadianAboriginal.yml +190 -0
  770. data/resources/shared/transforms/Latin-ConjoiningJamo.yml +263 -0
  771. data/resources/shared/transforms/Latin-Devanagari.yml +14 -0
  772. data/resources/shared/transforms/Latin-Ethiopic.yml +278 -0
  773. data/resources/shared/transforms/Latin-Gujarati.yml +14 -0
  774. data/resources/shared/transforms/Latin-Gurmukhi.yml +14 -0
  775. data/resources/shared/transforms/Latin-Hangul.yml +13 -0
  776. data/resources/shared/transforms/Latin-InterIndic.yml +341 -0
  777. data/resources/shared/transforms/Latin-Jamo.yml +13 -0
  778. data/resources/shared/transforms/Latin-Kannada.yml +14 -0
  779. data/resources/shared/transforms/Latin-Katakana.yml +274 -0
  780. data/resources/shared/transforms/Latin-Malayalam.yml +14 -0
  781. data/resources/shared/transforms/Latin-NumericPinyin.yml +21 -0
  782. data/resources/shared/transforms/Latin-Oriya.yml +14 -0
  783. data/resources/shared/transforms/Latin-Tamil.yml +14 -0
  784. data/resources/shared/transforms/Latin-Telugu.yml +14 -0
  785. data/resources/shared/transforms/Latin-Thaana.yml +439 -0
  786. data/resources/shared/transforms/Latin-Thai.yml +13 -0
  787. data/resources/shared/transforms/Macedonian-Latin-BGN.yml +89 -0
  788. data/resources/shared/transforms/Macedonian-Latin.yml +88 -0
  789. data/resources/shared/transforms/Malayalam-Bengali.yml +13 -0
  790. data/resources/shared/transforms/Malayalam-Devanagari.yml +13 -0
  791. data/resources/shared/transforms/Malayalam-Gujarati.yml +13 -0
  792. data/resources/shared/transforms/Malayalam-Gurmukhi.yml +13 -0
  793. data/resources/shared/transforms/Malayalam-InterIndic.yml +83 -0
  794. data/resources/shared/transforms/Malayalam-Kannada.yml +13 -0
  795. data/resources/shared/transforms/Malayalam-Latin.yml +13 -0
  796. data/resources/shared/transforms/Malayalam-Oriya.yml +13 -0
  797. data/resources/shared/transforms/Malayalam-Tamil.yml +13 -0
  798. data/resources/shared/transforms/Malayalam-Telugu.yml +13 -0
  799. data/resources/shared/transforms/Maldivian-Latin-BGN.yml +77 -0
  800. data/resources/shared/transforms/Maldivian-Latin.yml +76 -0
  801. data/resources/shared/transforms/Mongolian-Latin-BGN.yml +101 -0
  802. data/resources/shared/transforms/Mongolian-Latin.yml +100 -0
  803. data/resources/shared/transforms/Oriya-Bengali.yml +13 -0
  804. data/resources/shared/transforms/Oriya-Devanagari.yml +13 -0
  805. data/resources/shared/transforms/Oriya-Gujarati.yml +13 -0
  806. data/resources/shared/transforms/Oriya-Gurmukhi.yml +13 -0
  807. data/resources/shared/transforms/Oriya-InterIndic.yml +89 -0
  808. data/resources/shared/transforms/Oriya-Kannada.yml +13 -0
  809. data/resources/shared/transforms/Oriya-Latin.yml +13 -0
  810. data/resources/shared/transforms/Oriya-Malayalam.yml +13 -0
  811. data/resources/shared/transforms/Oriya-Tamil.yml +13 -0
  812. data/resources/shared/transforms/Oriya-Telugu.yml +13 -0
  813. data/resources/shared/transforms/Pashto-Latin-BGN.yml +151 -0
  814. data/resources/shared/transforms/Pashto-Latin.yml +150 -0
  815. data/resources/shared/transforms/Persian-Latin-BGN.yml +123 -0
  816. data/resources/shared/transforms/Persian-Latin.yml +122 -0
  817. data/resources/shared/transforms/Pinyin-NumericPinyin.yml +13 -0
  818. data/resources/shared/transforms/Russian-Latin-BGN.yml +113 -0
  819. data/resources/shared/transforms/Russian-Latin.yml +112 -0
  820. data/resources/shared/transforms/Serbian-Latin-BGN.yml +81 -0
  821. data/resources/shared/transforms/Serbian-Latin.yml +80 -0
  822. data/resources/shared/transforms/Simplified-Traditional.yml +3988 -0
  823. data/resources/shared/transforms/Syriac-Latin.yml +55 -0
  824. data/resources/shared/transforms/Tamil-Bengali.yml +13 -0
  825. data/resources/shared/transforms/Tamil-Devanagari.yml +13 -0
  826. data/resources/shared/transforms/Tamil-Gujarati.yml +13 -0
  827. data/resources/shared/transforms/Tamil-Gurmukhi.yml +13 -0
  828. data/resources/shared/transforms/Tamil-InterIndic.yml +72 -0
  829. data/resources/shared/transforms/Tamil-Kannada.yml +13 -0
  830. data/resources/shared/transforms/Tamil-Latin.yml +13 -0
  831. data/resources/shared/transforms/Tamil-Malayalam.yml +13 -0
  832. data/resources/shared/transforms/Tamil-Oriya.yml +13 -0
  833. data/resources/shared/transforms/Tamil-Telugu.yml +13 -0
  834. data/resources/shared/transforms/Telugu-Bengali.yml +13 -0
  835. data/resources/shared/transforms/Telugu-Devanagari.yml +13 -0
  836. data/resources/shared/transforms/Telugu-Gujarati.yml +13 -0
  837. data/resources/shared/transforms/Telugu-Gurmukhi.yml +13 -0
  838. data/resources/shared/transforms/Telugu-InterIndic.yml +89 -0
  839. data/resources/shared/transforms/Telugu-Kannada.yml +13 -0
  840. data/resources/shared/transforms/Telugu-Latin.yml +13 -0
  841. data/resources/shared/transforms/Telugu-Malayalam.yml +13 -0
  842. data/resources/shared/transforms/Telugu-Oriya.yml +13 -0
  843. data/resources/shared/transforms/Telugu-Tamil.yml +13 -0
  844. data/resources/shared/transforms/Thai-Latin.yml +15 -0
  845. data/resources/shared/transforms/Thai-ThaiLogical.yml +15 -0
  846. data/resources/shared/transforms/Thai-ThaiSemi.yml +10 -0
  847. data/resources/shared/transforms/ThaiLogical-Latin.yml +119 -0
  848. data/resources/shared/transforms/Turkmen-Latin-BGN.yml +122 -0
  849. data/resources/shared/transforms/Turkmen-Latin.yml +121 -0
  850. data/resources/shared/transforms/Ukrainian-Latin-BGN.yml +115 -0
  851. data/resources/shared/transforms/Ukrainian-Latin.yml +114 -0
  852. data/resources/shared/transforms/Uzbek-Latin-BGN.yml +117 -0
  853. data/resources/shared/transforms/Uzbek-Latin.yml +116 -0
  854. data/resources/shared/transforms/az-Lower.yml +12 -0
  855. data/resources/shared/transforms/az-Title.yml +13 -0
  856. data/resources/shared/transforms/az-Upper.yml +10 -0
  857. data/resources/shared/transforms/ch-ch_FONIPA.yml +71 -0
  858. data/resources/shared/transforms/cs-cs_FONIPA.yml +62 -0
  859. data/resources/shared/transforms/cs-ja.yml +10 -0
  860. data/resources/shared/transforms/cs-ko.yml +10 -0
  861. data/resources/shared/transforms/cs_FONIPA-ja.yml +201 -0
  862. data/resources/shared/transforms/cs_FONIPA-ko.yml +88 -0
  863. data/resources/shared/transforms/dsb-dsb_FONIPA.yml +73 -0
  864. data/resources/shared/transforms/el-Lower.yml +13 -0
  865. data/resources/shared/transforms/el-Title.yml +14 -0
  866. data/resources/shared/transforms/el-Upper.yml +13 -0
  867. data/resources/shared/transforms/es-am.yml +10 -0
  868. data/resources/shared/transforms/es-es_FONIPA.yml +81 -0
  869. data/resources/shared/transforms/es-ja.yml +10 -0
  870. data/resources/shared/transforms/es-zh.yml +10 -0
  871. data/resources/shared/transforms/es_419-ja.yml +11 -0
  872. data/resources/shared/transforms/es_419-zh.yml +11 -0
  873. data/resources/shared/transforms/es_FONIPA-am.yml +167 -0
  874. data/resources/shared/transforms/es_FONIPA-es_419_FONIPA.yml +10 -0
  875. data/resources/shared/transforms/es_FONIPA-ja.yml +145 -0
  876. data/resources/shared/transforms/es_FONIPA-zh.yml +497 -0
  877. data/resources/shared/transforms/it-am.yml +198 -0
  878. data/resources/shared/transforms/it-ja.yml +185 -0
  879. data/resources/shared/transforms/ja_Latn-ko.yml +92 -0
  880. data/resources/shared/transforms/ja_Latn-ru.yml +63 -0
  881. data/resources/shared/transforms/la-la_FONIPA.yml +81 -0
  882. data/resources/shared/transforms/lt-Lower.yml +17 -0
  883. data/resources/shared/transforms/lt-Title.yml +19 -0
  884. data/resources/shared/transforms/lt-Upper.yml +12 -0
  885. data/resources/shared/transforms/nl-Title.yml +10 -0
  886. data/resources/shared/transforms/pl-ja.yml +10 -0
  887. data/resources/shared/transforms/pl-pl_FONIPA.yml +98 -0
  888. data/resources/shared/transforms/pl_FONIPA-ja.yml +218 -0
  889. data/resources/shared/transforms/ro-ja.yml +10 -0
  890. data/resources/shared/transforms/ro-ro_FONIPA.yml +88 -0
  891. data/resources/shared/transforms/ro_FONIPA-ja.yml +157 -0
  892. data/resources/shared/transforms/ru-ja.yml +441 -0
  893. data/resources/shared/transforms/ru-zh.yml +975 -0
  894. data/resources/shared/transforms/sk-ja.yml +10 -0
  895. data/resources/shared/transforms/sk-sk_FONIPA.yml +74 -0
  896. data/resources/shared/transforms/sk_FONIPA-ja.yml +190 -0
  897. data/resources/shared/transforms/tlh-tlh_FONIPA.yml +54 -0
  898. data/resources/shared/transforms/tr-Lower.yml +12 -0
  899. data/resources/shared/transforms/tr-Title.yml +13 -0
  900. data/resources/shared/transforms/tr-Upper.yml +10 -0
  901. data/resources/shared/transforms/uz_Cyrl-uz_Latn.yml +102 -0
  902. data/resources/shared/transforms/yo-yo_BJ.yml +16 -0
  903. data/resources/shared/transforms/zh_Latn_PINYIN-ru.yml +120 -0
  904. data/resources/unicode_data/blocks.yml +168 -0
  905. data/resources/unicode_data/blocks/ancient_greek_numbers.yml +32 -0
  906. data/resources/unicode_data/blocks/ancient_symbols.yml +16 -0
  907. data/resources/unicode_data/blocks/arabic.yml +16 -0
  908. data/resources/unicode_data/blocks/arabic_extended_a.yml +176 -0
  909. data/resources/unicode_data/blocks/arabic_presentation_forms_a.yml +2 -2
  910. data/resources/unicode_data/blocks/armenian.yml +32 -0
  911. data/resources/unicode_data/blocks/bengali.yml +16 -0
  912. data/resources/unicode_data/blocks/brahmi.yml +16 -0
  913. data/resources/unicode_data/blocks/cherokee.yml +281 -169
  914. data/resources/unicode_data/blocks/cjk_unified_ideographs.yml +2 -2
  915. data/resources/unicode_data/blocks/combining_diacritical_marks_supplement.yml +240 -0
  916. data/resources/unicode_data/blocks/combining_half_marks.yml +144 -0
  917. data/resources/unicode_data/blocks/cuneiform.yml +688 -0
  918. data/resources/unicode_data/blocks/cuneiform_numbers_and_punctuation.yml +208 -0
  919. data/resources/unicode_data/blocks/currency_symbols.yml +64 -0
  920. data/resources/unicode_data/blocks/cyrillic_extended_b.yml +112 -0
  921. data/resources/unicode_data/blocks/cyrillic_supplement.yml +128 -0
  922. data/resources/unicode_data/blocks/devanagari.yml +16 -0
  923. data/resources/unicode_data/blocks/devanagari_extended.yml +32 -0
  924. data/resources/unicode_data/blocks/dingbats.yml +16 -0
  925. data/resources/unicode_data/blocks/emoticons.yml +64 -0
  926. data/resources/unicode_data/blocks/enclosed_alphanumeric_supplement.yml +32 -0
  927. data/resources/unicode_data/blocks/greek_and_coptic.yml +18 -2
  928. data/resources/unicode_data/blocks/gujarati.yml +16 -0
  929. data/resources/unicode_data/blocks/ipa_extensions.yml +12 -12
  930. data/resources/unicode_data/blocks/kannada.yml +16 -0
  931. data/resources/unicode_data/blocks/latin_extended_d.yml +400 -0
  932. data/resources/unicode_data/blocks/limbu.yml +32 -0
  933. data/resources/unicode_data/blocks/malayalam.yml +32 -0
  934. data/resources/unicode_data/blocks/meroitic_cursive.yml +1024 -0
  935. data/resources/unicode_data/blocks/miscellaneous_symbols_and_arrows.yml +1904 -0
  936. data/resources/unicode_data/blocks/miscellaneous_symbols_and_pictographs.yml +4816 -1088
  937. data/resources/unicode_data/blocks/miscellaneous_technical.yml +112 -0
  938. data/resources/unicode_data/blocks/musical_symbols.yml +176 -0
  939. data/resources/unicode_data/blocks/myanmar_extended_a.yml +64 -0
  940. data/resources/unicode_data/blocks/new_tai_lue.yml +19 -19
  941. data/resources/unicode_data/blocks/number_forms.yml +32 -0
  942. data/resources/unicode_data/blocks/old_italic.yml +16 -0
  943. data/resources/unicode_data/blocks/playing_cards.yml +368 -0
  944. data/resources/unicode_data/blocks/runic.yml +128 -0
  945. data/resources/unicode_data/blocks/sharada.yml +176 -0
  946. data/resources/unicode_data/blocks/sinhala.yml +160 -0
  947. data/resources/unicode_data/blocks/sundanese.yml +4 -4
  948. data/resources/unicode_data/blocks/supplemental_punctuation.yml +112 -0
  949. data/resources/unicode_data/blocks/telugu.yml +48 -0
  950. data/resources/unicode_data/blocks/transport_and_map_symbols.yml +448 -0
  951. data/resources/unicode_data/blocks/vedic_extensions.yml +32 -0
  952. data/resources/unicode_data/casefolding.yml +760 -0
  953. data/resources/unicode_data/properties/Age/7.0/value.dump +0 -0
  954. data/resources/unicode_data/properties/Age/8.0/value.dump +0 -0
  955. data/resources/unicode_data/properties/Bidi_Paired_Bracket_Type/Close/value.dump +62 -0
  956. data/resources/unicode_data/properties/Bidi_Paired_Bracket_Type/Open/value.dump +66 -0
  957. data/resources/unicode_data/properties/Block/Ahom/value.dump +0 -0
  958. data/resources/unicode_data/properties/Block/Anatolian Hieroglyphs/value.dump +0 -0
  959. data/resources/unicode_data/properties/Block/Bassa Vah/value.dump +3 -0
  960. data/resources/unicode_data/properties/Block/CJK Unified Ideographs Extension E/value.dump +3 -0
  961. data/resources/unicode_data/properties/Block/Caucasian Albanian/value.dump +3 -0
  962. data/resources/unicode_data/properties/Block/Cherokee Supplement/value.dump +3 -0
  963. data/resources/unicode_data/properties/Block/Combining Diacritical Marks Extended/value.dump +3 -0
  964. data/resources/unicode_data/properties/Block/Coptic Epact Numbers/value.dump +3 -0
  965. data/resources/unicode_data/properties/Block/Duployan/value.dump +0 -0
  966. data/resources/unicode_data/properties/Block/Early Dynastic Cuneiform/value.dump +3 -0
  967. data/resources/unicode_data/properties/Block/Elbasan/value.dump +0 -0
  968. data/resources/unicode_data/properties/Block/Geometric Shapes Extended/value.dump +3 -0
  969. data/resources/unicode_data/properties/Block/Grantha/value.dump +0 -0
  970. data/resources/unicode_data/properties/Block/Hatran/value.dump +3 -0
  971. data/resources/unicode_data/properties/Block/Khojki/value.dump +0 -0
  972. data/resources/unicode_data/properties/Block/Khudawadi/value.dump +3 -0
  973. data/resources/unicode_data/properties/Block/Latin Extended-E/value.dump +3 -0
  974. data/resources/unicode_data/properties/Block/Linear A/value.dump +0 -0
  975. data/resources/unicode_data/properties/Block/Mahajani/value.dump +3 -0
  976. data/resources/unicode_data/properties/Block/Manichaean/value.dump +5 -0
  977. data/resources/unicode_data/properties/Block/Mende Kikakui/value.dump +0 -0
  978. data/resources/unicode_data/properties/Block/Modi/value.dump +0 -0
  979. data/resources/unicode_data/properties/Block/Mro/value.dump +3 -0
  980. data/resources/unicode_data/properties/Block/Multani/value.dump +3 -0
  981. data/resources/unicode_data/properties/Block/Myanmar Extended-B/value.dump +3 -0
  982. data/resources/unicode_data/properties/Block/Nabataean/value.dump +3 -0
  983. data/resources/unicode_data/properties/Block/Old Hungarian/value.dump +3 -0
  984. data/resources/unicode_data/properties/Block/Old North Arabian/value.dump +5 -0
  985. data/resources/unicode_data/properties/Block/Old Permic/value.dump +3 -0
  986. data/resources/unicode_data/properties/Block/Ornamental Dingbats/value.dump +3 -0
  987. data/resources/unicode_data/properties/Block/Pahawh Hmong/value.dump +0 -0
  988. data/resources/unicode_data/properties/Block/Palmyrene/value.dump +3 -0
  989. data/resources/unicode_data/properties/Block/Pau Cin Hau/value.dump +3 -0
  990. data/resources/unicode_data/properties/Block/Psalter Pahlavi/value.dump +3 -0
  991. data/resources/unicode_data/properties/Block/Shorthand Format Controls/value.dump +3 -0
  992. data/resources/unicode_data/properties/Block/Siddham/value.dump +3 -0
  993. data/resources/unicode_data/properties/Block/Sinhala Archaic Numbers/value.dump +3 -0
  994. data/resources/unicode_data/properties/Block/Supplemental Arrows-C/value.dump +0 -0
  995. Pictographs/value.dump +0 -0
  996. data/resources/unicode_data/properties/Block/Sutton SignWriting/value.dump +0 -0
  997. data/resources/unicode_data/properties/Block/Tirhuta/value.dump +3 -0
  998. data/resources/unicode_data/properties/Block/Warang Citi/value.dump +3 -0
  999. data/resources/unicode_data/properties/Indic_Syllabic_Category/Brahmi_Joining_Number/value.dump +3 -0
  1000. data/resources/unicode_data/properties/Indic_Syllabic_Category/Cantillation_Mark/value.dump +10 -0
  1001. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Killer/value.dump +4 -0
  1002. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Preceding_Repha/value.dump +3 -0
  1003. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Prefixed/value.dump +3 -0
  1004. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_Succeeding_Repha/value.dump +6 -0
  1005. data/resources/unicode_data/properties/Indic_Syllabic_Category/Consonant_With_Stacker/value.dump +4 -0
  1006. data/resources/unicode_data/properties/Indic_Syllabic_Category/Gemination_Mark/value.dump +6 -0
  1007. data/resources/unicode_data/properties/Indic_Syllabic_Category/Invisible_Stacker/value.dump +11 -0
  1008. data/resources/unicode_data/properties/Indic_Syllabic_Category/Joiner/value.dump +3 -0
  1009. data/resources/unicode_data/properties/Indic_Syllabic_Category/Non_Joiner/value.dump +3 -0
  1010. data/resources/unicode_data/properties/Indic_Syllabic_Category/Number/value.dump +0 -0
  1011. data/resources/unicode_data/properties/Indic_Syllabic_Category/Number_Joiner/value.dump +3 -0
  1012. data/resources/unicode_data/properties/Indic_Syllabic_Category/Pure_Killer/value.dump +17 -0
  1013. data/resources/unicode_data/properties/Indic_Syllabic_Category/Syllable_Modifier/value.dump +15 -0
  1014. data/resources/unicode_data/properties/Joining_Group/AIN/value.dump +8 -0
  1015. data/resources/unicode_data/properties/Joining_Group/ALAPH/value.dump +3 -0
  1016. data/resources/unicode_data/properties/Joining_Group/ALEF/value.dump +8 -0
  1017. data/resources/unicode_data/properties/Joining_Group/BEH/value.dump +8 -0
  1018. data/resources/unicode_data/properties/Joining_Group/BETH/value.dump +4 -0
  1019. data/resources/unicode_data/properties/Joining_Group/BURUSHASKI YEH BARREE/value.dump +3 -0
  1020. data/resources/unicode_data/properties/Joining_Group/DAL/value.dump +8 -0
  1021. data/resources/unicode_data/properties/Joining_Group/DALATH RISH/value.dump +5 -0
  1022. data/resources/unicode_data/properties/Joining_Group/E/value.dump +3 -0
  1023. data/resources/unicode_data/properties/Joining_Group/FARSI YEH/value.dump +6 -0
  1024. data/resources/unicode_data/properties/Joining_Group/FE/value.dump +3 -0
  1025. data/resources/unicode_data/properties/Joining_Group/FEH/value.dump +6 -0
  1026. data/resources/unicode_data/properties/Joining_Group/FINAL SEMKATH/value.dump +3 -0
  1027. data/resources/unicode_data/properties/Joining_Group/GAF/value.dump +8 -0
  1028. data/resources/unicode_data/properties/Joining_Group/GAMAL/value.dump +4 -0
  1029. data/resources/unicode_data/properties/Joining_Group/HAH/value.dump +10 -0
  1030. data/resources/unicode_data/properties/Joining_Group/HE/value.dump +3 -0
  1031. data/resources/unicode_data/properties/Joining_Group/HEH GOAL/value.dump +3 -0
  1032. data/resources/unicode_data/properties/Joining_Group/HEH/value.dump +3 -0
  1033. data/resources/unicode_data/properties/Joining_Group/HETH/value.dump +3 -0
  1034. data/resources/unicode_data/properties/Joining_Group/KAF/value.dump +6 -0
  1035. data/resources/unicode_data/properties/Joining_Group/KAPH/value.dump +3 -0
  1036. data/resources/unicode_data/properties/Joining_Group/KHAPH/value.dump +3 -0
  1037. data/resources/unicode_data/properties/Joining_Group/KNOTTED HEH/value.dump +4 -0
  1038. data/resources/unicode_data/properties/Joining_Group/LAM/value.dump +6 -0
  1039. data/resources/unicode_data/properties/Joining_Group/LAMADH/value.dump +3 -0
  1040. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN ALEPH/value.dump +5 -0
  1041. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN AYIN/value.dump +5 -0
  1042. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN BETH/value.dump +5 -0
  1043. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN DALETH/value.dump +5 -0
  1044. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN DHAMEDH/value.dump +5 -0
  1045. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN FIVE/value.dump +5 -0
  1046. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN GIMEL/value.dump +5 -0
  1047. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN HETH/value.dump +5 -0
  1048. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN HUNDRED/value.dump +5 -0
  1049. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN KAPH/value.dump +5 -0
  1050. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN LAMEDH/value.dump +5 -0
  1051. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN MEM/value.dump +5 -0
  1052. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN NUN/value.dump +5 -0
  1053. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN ONE/value.dump +5 -0
  1054. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN PE/value.dump +5 -0
  1055. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN QOPH/value.dump +5 -0
  1056. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN RESH/value.dump +5 -0
  1057. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN SADHE/value.dump +5 -0
  1058. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN SAMEKH/value.dump +5 -0
  1059. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN TAW/value.dump +5 -0
  1060. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN TEN/value.dump +5 -0
  1061. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN TETH/value.dump +5 -0
  1062. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN THAMEDH/value.dump +5 -0
  1063. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN TWENTY/value.dump +5 -0
  1064. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN WAW/value.dump +5 -0
  1065. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN YODH/value.dump +5 -0
  1066. data/resources/unicode_data/properties/Joining_Group/MANICHAEAN ZAYIN/value.dump +5 -0
  1067. data/resources/unicode_data/properties/Joining_Group/MEEM/value.dump +5 -0
  1068. data/resources/unicode_data/properties/Joining_Group/MIM/value.dump +3 -0
  1069. data/resources/unicode_data/properties/Joining_Group/NOON/value.dump +5 -0
  1070. data/resources/unicode_data/properties/Joining_Group/NUN/value.dump +3 -0
  1071. data/resources/unicode_data/properties/Joining_Group/NYA/value.dump +3 -0
  1072. data/resources/unicode_data/properties/Joining_Group/No_Joining_Group/value.dump +0 -0
  1073. data/resources/unicode_data/properties/Joining_Group/PE/value.dump +3 -0
  1074. data/resources/unicode_data/properties/Joining_Group/QAF/value.dump +6 -0
  1075. data/resources/unicode_data/properties/Joining_Group/QAPH/value.dump +3 -0
  1076. data/resources/unicode_data/properties/Joining_Group/REH/value.dump +10 -0
  1077. data/resources/unicode_data/properties/Joining_Group/REVERSED PE/value.dump +3 -0
  1078. data/resources/unicode_data/properties/Joining_Group/ROHINGYA YEH/value.dump +3 -0
  1079. data/resources/unicode_data/properties/Joining_Group/SAD/value.dump +6 -0
  1080. data/resources/unicode_data/properties/Joining_Group/SADHE/value.dump +3 -0
  1081. data/resources/unicode_data/properties/Joining_Group/SEEN/value.dump +9 -0
  1082. data/resources/unicode_data/properties/Joining_Group/SEMKATH/value.dump +3 -0
  1083. data/resources/unicode_data/properties/Joining_Group/SHIN/value.dump +3 -0
  1084. data/resources/unicode_data/properties/Joining_Group/STRAIGHT WAW/value.dump +3 -0
  1085. data/resources/unicode_data/properties/Joining_Group/SWASH KAF/value.dump +3 -0
  1086. data/resources/unicode_data/properties/Joining_Group/SYRIAC WAW/value.dump +3 -0
  1087. data/resources/unicode_data/properties/Joining_Group/TAH/value.dump +5 -0
  1088. data/resources/unicode_data/properties/Joining_Group/TAW/value.dump +3 -0
  1089. data/resources/unicode_data/properties/Joining_Group/TEH MARBUTA GOAL/value.dump +3 -0
  1090. data/resources/unicode_data/properties/Joining_Group/TEH MARBUTA/value.dump +5 -0
  1091. data/resources/unicode_data/properties/Joining_Group/TETH/value.dump +3 -0
  1092. data/resources/unicode_data/properties/Joining_Group/WAW/value.dump +9 -0
  1093. data/resources/unicode_data/properties/Joining_Group/YEH BARREE/value.dump +3 -0
  1094. data/resources/unicode_data/properties/Joining_Group/YEH WITH TAIL/value.dump +3 -0
  1095. data/resources/unicode_data/properties/Joining_Group/YEH/value.dump +9 -0
  1096. data/resources/unicode_data/properties/Joining_Group/YUDH HE/value.dump +3 -0
  1097. data/resources/unicode_data/properties/Joining_Group/YUDH/value.dump +3 -0
  1098. data/resources/unicode_data/properties/Joining_Group/ZAIN/value.dump +3 -0
  1099. data/resources/unicode_data/properties/Joining_Group/ZHAIN/value.dump +3 -0
  1100. data/resources/unicode_data/properties/Joining_Type/Dual_Joining/value.dump +65 -0
  1101. data/resources/unicode_data/properties/Joining_Type/Join_Causing/value.dump +8 -0
  1102. data/resources/unicode_data/properties/Joining_Type/Left_Joining/value.dump +9 -0
  1103. data/resources/unicode_data/properties/Joining_Type/Non_Joining/value.dump +0 -0
  1104. data/resources/unicode_data/properties/Joining_Type/Right_Joining/value.dump +68 -0
  1105. data/resources/unicode_data/properties/Script/Ahom/value.dump +0 -0
  1106. data/resources/unicode_data/properties/Script/Anatolian_Hieroglyphs/value.dump +0 -0
  1107. data/resources/unicode_data/properties/Script/Bassa_Vah/value.dump +4 -0
  1108. data/resources/unicode_data/properties/Script/Caucasian_Albanian/value.dump +4 -0
  1109. data/resources/unicode_data/properties/Script/Duployan/value.dump +0 -0
  1110. data/resources/unicode_data/properties/Script/Elbasan/value.dump +0 -0
  1111. data/resources/unicode_data/properties/Script/Grantha/value.dump +0 -0
  1112. data/resources/unicode_data/properties/Script/Hatran/value.dump +5 -0
  1113. data/resources/unicode_data/properties/Script/Khojki/value.dump +0 -0
  1114. data/resources/unicode_data/properties/Script/Khudawadi/value.dump +4 -0
  1115. data/resources/unicode_data/properties/Script/Linear_A/value.dump +0 -0
  1116. data/resources/unicode_data/properties/Script/Mahajani/value.dump +3 -0
  1117. data/resources/unicode_data/properties/Script/Manichaean/value.dump +8 -0
  1118. data/resources/unicode_data/properties/Script/Mende_Kikakui/value.dump +0 -0
  1119. data/resources/unicode_data/properties/Script/Modi/value.dump +0 -0
  1120. data/resources/unicode_data/properties/Script/Mro/value.dump +5 -0
  1121. data/resources/unicode_data/properties/Script/Multani/value.dump +8 -0
  1122. data/resources/unicode_data/properties/Script/Nabataean/value.dump +4 -0
  1123. data/resources/unicode_data/properties/Script/Old_Hungarian/value.dump +5 -0
  1124. data/resources/unicode_data/properties/Script/Old_North_Arabian/value.dump +5 -0
  1125. data/resources/unicode_data/properties/Script/Old_Permic/value.dump +3 -0
  1126. data/resources/unicode_data/properties/Script/Pahawh_Hmong/value.dump +0 -0
  1127. data/resources/unicode_data/properties/Script/Palmyrene/value.dump +3 -0
  1128. data/resources/unicode_data/properties/Script/Pau_Cin_Hau/value.dump +3 -0
  1129. data/resources/unicode_data/properties/Script/Psalter_Pahlavi/value.dump +5 -0
  1130. data/resources/unicode_data/properties/Script/Siddham/value.dump +4 -0
  1131. data/resources/unicode_data/properties/Script/SignWriting/value.dump +0 -0
  1132. data/resources/unicode_data/properties/Script/Tirhuta/value.dump +4 -0
  1133. data/resources/unicode_data/properties/Script/Warang_Citi/value.dump +4 -0
  1134. data/resources/unicode_data/properties/Script_Extensions/Copt/value.dump +3 -0
  1135. data/resources/unicode_data/properties/Script_Extensions/Dupl/value.dump +3 -0
  1136. data/resources/unicode_data/properties/Script_Extensions/Glag/value.dump +4 -0
  1137. data/resources/unicode_data/properties/Script_Extensions/Gran/value.dump +12 -0
  1138. data/resources/unicode_data/properties/Script_Extensions/Kali/value.dump +3 -0
  1139. data/resources/unicode_data/properties/Script_Extensions/Khoj/value.dump +4 -0
  1140. data/resources/unicode_data/properties/Script_Extensions/Knda/value.dump +6 -0
  1141. data/resources/unicode_data/properties/Script_Extensions/Limb/value.dump +3 -0
  1142. data/resources/unicode_data/properties/Script_Extensions/Mahj/value.dump +4 -0
  1143. data/resources/unicode_data/properties/Script_Extensions/Mani/value.dump +3 -0
  1144. data/resources/unicode_data/properties/Script_Extensions/Mlym/value.dump +5 -0
  1145. data/resources/unicode_data/properties/Script_Extensions/Modi/value.dump +3 -0
  1146. data/resources/unicode_data/properties/Script_Extensions/Mult/value.dump +4 -0
  1147. data/resources/unicode_data/properties/Script_Extensions/Perm/value.dump +3 -0
  1148. data/resources/unicode_data/properties/Script_Extensions/Phlp/value.dump +3 -0
  1149. data/resources/unicode_data/properties/Script_Extensions/Shrd/value.dump +8 -0
  1150. data/resources/unicode_data/properties/Script_Extensions/Sind/value.dump +4 -0
  1151. data/resources/unicode_data/properties/Script_Extensions/Sinh/value.dump +3 -0
  1152. data/resources/unicode_data/properties/Script_Extensions/Taml/value.dump +9 -0
  1153. data/resources/unicode_data/properties/Script_Extensions/Telu/value.dump +5 -0
  1154. data/resources/unicode_data/properties/Script_Extensions/Tirh/value.dump +4 -0
  1155. data/resources/unicode_data/property_aliases.yml +9 -3
  1156. data/resources/unicode_data/property_value_aliases.yml +34 -0
  1157. data/spec/collation/collator_spec.rb +53 -32
  1158. data/spec/collation/trie_builder_spec.rb +2 -2
  1159. data/spec/collation/trie_dumps_spec.rb +2 -2
  1160. data/spec/collation/trie_loader_spec.rb +3 -3
  1161. data/spec/collation/trie_with_fallback_spec.rb +1 -1
  1162. data/spec/data_readers/additional_date_format_selector_spec.rb +1 -1
  1163. data/spec/data_readers/timespan_data_reader_spec.rb +4 -4
  1164. data/spec/formatters/list_formatter_spec.rb +1 -1
  1165. data/spec/formatters/numbers/abbreviated/long_decimal_formatter_spec.rb +4 -4
  1166. data/spec/formatters/numbers/abbreviated/short_decimal_formatter_spec.rb +0 -2
  1167. data/spec/formatters/numbers/decimal_formatter_spec.rb +1 -1
  1168. data/spec/formatters/numbers/rbnf/locales/af/rbnf_test.yml +14 -14
  1169. data/spec/formatters/numbers/rbnf/locales/ar/rbnf_test.yml +248 -14
  1170. data/spec/formatters/numbers/rbnf/locales/be/rbnf_test.yml +14 -14
  1171. data/spec/formatters/numbers/rbnf/locales/bg/rbnf_test.yml +14 -14
  1172. data/spec/formatters/numbers/rbnf/locales/bn/rbnf_test.yml +488 -488
  1173. data/spec/formatters/numbers/rbnf/locales/ca/rbnf_test.yml +28 -28
  1174. data/spec/formatters/numbers/rbnf/locales/cs/rbnf_test.yml +14 -14
  1175. data/spec/formatters/numbers/rbnf/locales/cy/rbnf_test.yml +14 -14
  1176. data/spec/formatters/numbers/rbnf/locales/da/rbnf_test.yml +307 -307
  1177. data/spec/formatters/numbers/rbnf/locales/de-CH/rbnf_test.yml +146 -146
  1178. data/spec/formatters/numbers/rbnf/locales/de/rbnf_test.yml +14 -14
  1179. data/spec/formatters/numbers/rbnf/locales/el/rbnf_test.yml +14 -14
  1180. data/spec/formatters/numbers/rbnf/locales/en-150/rbnf_test.yml +28 -28
  1181. data/spec/formatters/numbers/rbnf/locales/en-AU/rbnf_test.yml +28 -28
  1182. data/spec/formatters/numbers/rbnf/locales/en-CA/rbnf_test.yml +28 -28
  1183. data/spec/formatters/numbers/rbnf/locales/en-GB/rbnf_test.yml +28 -28
  1184. data/spec/formatters/numbers/rbnf/locales/en-IE/rbnf_test.yml +28 -28
  1185. data/spec/formatters/numbers/rbnf/locales/en-SG/rbnf_test.yml +28 -28
  1186. data/spec/formatters/numbers/rbnf/locales/en-ZA/rbnf_test.yml +28 -28
  1187. data/spec/formatters/numbers/rbnf/locales/en/rbnf_test.yml +28 -28
  1188. data/spec/formatters/numbers/rbnf/locales/es-419/rbnf_test.yml +488 -488
  1189. data/spec/formatters/numbers/rbnf/locales/es-CO/rbnf_test.yml +488 -488
  1190. data/spec/formatters/numbers/rbnf/locales/es-MX/rbnf_test.yml +488 -488
  1191. data/spec/formatters/numbers/rbnf/locales/es-US/rbnf_test.yml +488 -488
  1192. data/spec/formatters/numbers/rbnf/locales/es/rbnf_test.yml +488 -488
  1193. data/spec/formatters/numbers/rbnf/locales/eu/rbnf_test.yml +488 -488
  1194. data/spec/formatters/numbers/rbnf/locales/fa/rbnf_test.yml +14 -14
  1195. data/spec/formatters/numbers/rbnf/locales/fi/rbnf_test.yml +5067 -387
  1196. data/spec/formatters/numbers/rbnf/locales/fil/rbnf_test.yml +14 -14
  1197. data/spec/formatters/numbers/rbnf/locales/fr-BE/rbnf_test.yml +28 -28
  1198. data/spec/formatters/numbers/rbnf/locales/fr-CA/rbnf_test.yml +28 -28
  1199. data/spec/formatters/numbers/rbnf/locales/fr-CH/rbnf_test.yml +28 -28
  1200. data/spec/formatters/numbers/rbnf/locales/fr/rbnf_test.yml +28 -28
  1201. data/spec/formatters/numbers/rbnf/locales/ga/rbnf_test.yml +95 -95
  1202. data/spec/formatters/numbers/rbnf/locales/gl/rbnf_test.yml +488 -488
  1203. data/spec/formatters/numbers/rbnf/locales/gu/rbnf_test.yml +1634 -1283
  1204. data/spec/formatters/numbers/rbnf/locales/he/rbnf_test.yml +120 -120
  1205. data/spec/formatters/numbers/rbnf/locales/hi/rbnf_test.yml +28 -28
  1206. data/spec/formatters/numbers/rbnf/locales/hr/rbnf_test.yml +14 -14
  1207. data/spec/formatters/numbers/rbnf/locales/hu/rbnf_test.yml +14 -14
  1208. data/spec/formatters/numbers/rbnf/locales/id/rbnf_test.yml +35 -35
  1209. data/spec/formatters/numbers/rbnf/locales/is/rbnf_test.yml +14 -14
  1210. data/spec/formatters/numbers/rbnf/locales/it-CH/rbnf_test.yml +28 -28
  1211. data/spec/formatters/numbers/rbnf/locales/it/rbnf_test.yml +28 -28
  1212. data/spec/formatters/numbers/rbnf/locales/ja/rbnf_test.yml +7 -7
  1213. data/spec/formatters/numbers/rbnf/locales/kn/rbnf_test.yml +1634 -1283
  1214. data/spec/formatters/numbers/rbnf/locales/ko/rbnf_test.yml +14 -14
  1215. data/spec/formatters/numbers/rbnf/locales/lv/rbnf_test.yml +14 -14
  1216. data/spec/formatters/numbers/rbnf/locales/mr/rbnf_test.yml +1634 -1283
  1217. data/spec/formatters/numbers/rbnf/locales/ms/rbnf_test.yml +35 -35
  1218. data/spec/formatters/numbers/rbnf/locales/nb/rbnf_test.yml +950 -599
  1219. data/spec/formatters/numbers/rbnf/locales/nl/rbnf_test.yml +14 -14
  1220. data/spec/formatters/numbers/rbnf/locales/pl/rbnf_test.yml +2152 -46
  1221. data/spec/formatters/numbers/rbnf/locales/pt/rbnf_test.yml +28 -28
  1222. data/spec/formatters/numbers/rbnf/locales/ro/rbnf_test.yml +14 -14
  1223. data/spec/formatters/numbers/rbnf/locales/ru/rbnf_test.yml +5265 -52
  1224. data/spec/formatters/numbers/rbnf/locales/sk/rbnf_test.yml +14 -14
  1225. data/spec/formatters/numbers/rbnf/locales/sq/rbnf_test.yml +14 -14
  1226. data/spec/formatters/numbers/rbnf/locales/sr/rbnf_test.yml +14 -14
  1227. data/spec/formatters/numbers/rbnf/locales/sv/rbnf_test.yml +42 -42
  1228. data/spec/formatters/numbers/rbnf/locales/ta/rbnf_test.yml +14 -14
  1229. data/spec/formatters/numbers/rbnf/locales/th/rbnf_test.yml +123 -123
  1230. data/spec/formatters/numbers/rbnf/locales/tr/rbnf_test.yml +134 -134
  1231. data/spec/formatters/numbers/rbnf/locales/uk/rbnf_test.yml +14 -14
  1232. data/spec/formatters/numbers/rbnf/locales/ur/rbnf_test.yml +488 -488
  1233. data/spec/formatters/numbers/rbnf/locales/vi/rbnf_test.yml +14 -14
  1234. data/spec/formatters/numbers/rbnf/locales/zh-Hant/rbnf_test.yml +7 -7
  1235. data/spec/formatters/numbers/rbnf/locales/zh/rbnf_test.yml +7 -7
  1236. data/spec/localized/localized_date_spec.rb +11 -2
  1237. data/spec/localized/localized_datetime_spec.rb +1 -1
  1238. data/spec/localized/localized_string_spec.rb +9 -1
  1239. data/spec/localized/localized_symbol_spec.rb +4 -4
  1240. data/spec/resources/loader_spec.rb +1 -1
  1241. data/spec/segmentation/break_iterator_spec.rb +9 -9
  1242. data/spec/shared/hunspell/base.hyph +4543 -0
  1243. data/spec/shared/hunspell/base.pat +5536 -0
  1244. data/spec/shared/hunspell/base.word +4543 -0
  1245. data/spec/shared/hyphenator_spec.rb +103 -0
  1246. data/spec/shared/likely_subtags_spec.rb +5 -0
  1247. data/spec/shared/locale_spec.rb +34 -2
  1248. data/spec/shared/postal_code_generator_spec.rb +8 -9
  1249. data/spec/shared/postal_codes_spec.rb +9 -8
  1250. data/spec/shared/unit_spec.rb +1 -1
  1251. data/spec/transforms/rule_set_spec.rb +35 -0
  1252. data/spec/transforms/test_data.yml +820 -0
  1253. data/spec/transforms/transform_id_spec.rb +146 -0
  1254. data/spec/transforms/transformer_spec.rb +113 -0
  1255. data/spec/transforms/transliterator_spec.rb +35 -0
  1256. data/spec/utils/script_detector_spec.rb +12 -3
  1257. data/spec/{collation → utils}/trie_spec.rb +2 -2
  1258. metadata +524 -5
@@ -39,7 +39,7 @@ module TwitterCldr
39
39
  def each_boundary(rule_set, str)
40
40
  if block_given?
41
41
  rule_set.each_boundary(str).each_cons(2) do |start, stop|
42
- yield str[start...stop]
42
+ yield str[start...stop], start, stop
43
43
  end
44
44
  else
45
45
  to_enum(__method__, rule_set, str)
@@ -11,6 +11,7 @@ module TwitterCldr
11
11
  autoload :Caser, 'twitter_cldr/shared/caser'
12
12
  autoload :CodePoint, 'twitter_cldr/shared/code_point'
13
13
  autoload :Currencies, 'twitter_cldr/shared/currencies'
14
+ autoload :Hyphenator, 'twitter_cldr/shared/hyphenator'
14
15
  autoload :LanguageCodes, 'twitter_cldr/shared/language_codes'
15
16
  autoload :Languages, 'twitter_cldr/shared/languages'
16
17
  autoload :LikelySubtags, 'twitter_cldr/shared/likely_subtags'
@@ -0,0 +1,188 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ # Documentation: https://github.com/hunspell/hyphen/blob/21127cc8493a68d4fe9adbb71377b469b4f2b550/doc/tb87nemeth.pdf
7
+
8
+ module TwitterCldr
9
+ module Shared
10
+ class Hyphenator
11
+ class UnsupportedLocaleError < StandardError; end
12
+
13
+ BASE_RESOURCE_PATH = %w(shared hyphenation)
14
+ DEFAULT_LEFT_HYPHEN_MIN = 2
15
+ DEFAULT_RIGHT_HYPHEN_MIN = 2
16
+ DEFAULT_NO_HYPHEN = %w(- ' ’)
17
+
18
+ class << self
19
+ def get(locale)
20
+ locale = find_supported_locale(locale)
21
+
22
+ unless locale
23
+ raise UnsupportedLocaleError,
24
+ "'#{locale}' is not a supported hyphenation locale"
25
+ end
26
+
27
+ cache[locale] ||= begin
28
+ resource = resource_for(locale)
29
+ new(resource[:rules], locale, resource[:options])
30
+ end
31
+ end
32
+
33
+ def supported_locale?(locale)
34
+ !!find_supported_locale(locale)
35
+ end
36
+
37
+ def supported_locales
38
+ @supported_locales ||= begin
39
+ absolute_resource_path = TwitterCldr.absolute_resource_path(
40
+ File.join(BASE_RESOURCE_PATH)
41
+ )
42
+
43
+ files = Dir.glob(File.join(absolute_resource_path, '*.yml'))
44
+ files.map { |f| File.basename(f).chomp('.yml') }
45
+ end
46
+ end
47
+
48
+ private
49
+
50
+ def find_supported_locale(locale)
51
+ maximized_locale = Locale.parse(locale.to_s).maximize
52
+
53
+ maximized_locale.permutations('-').find do |locale_candidate|
54
+ TwitterCldr.resource_exists?(
55
+ *BASE_RESOURCE_PATH, locale_candidate
56
+ )
57
+ end
58
+ end
59
+
60
+ def cache
61
+ @cache ||= {}
62
+ end
63
+
64
+ def resource_for(locale)
65
+ TwitterCldr.get_resource(*BASE_RESOURCE_PATH, locale)
66
+ end
67
+ end
68
+
69
+ attr_reader :rules, :locale, :options, :trie
70
+
71
+ def initialize(rules, locale, options)
72
+ @rules = rules
73
+ @locale = locale
74
+ @options = options
75
+ @trie = build_trie_from(rules)
76
+ end
77
+
78
+ # 0x00AD is a soft hyphen
79
+ def hyphenate(text, hyphen = "\u00AD")
80
+ each_chunk(text).to_a.join(hyphen)
81
+ end
82
+
83
+ def each_chunk(text)
84
+ if block_given?
85
+ last_pos = 0
86
+
87
+ each_position(text) do |pos|
88
+ yield text[last_pos...pos].tap { last_pos = pos }
89
+ end
90
+
91
+ if last_pos < text.size
92
+ yield text[last_pos..text.size]
93
+ end
94
+ else
95
+ to_enum(__method__, text)
96
+ end
97
+ end
98
+
99
+ def each_position(text)
100
+ if block_given?
101
+ text = ".#{text}."
102
+ break_weights = break_weights_for(text)
103
+
104
+ left = left_hyphen_min
105
+ right = text.size - right_hyphen_min - 2
106
+
107
+ (left...right).each do |idx|
108
+ yield idx if break_weights[idx].odd?
109
+ end
110
+ else
111
+ to_enum(__method__, text)
112
+ end
113
+ end
114
+
115
+ private
116
+
117
+ def break_weights_for(text)
118
+ break_weights = Array.new(text.size - 1, 0)
119
+
120
+ text.each_char.with_index do |char, idx|
121
+ subtrie = trie.root
122
+ counter = idx
123
+
124
+ while subtrie
125
+ subtrie = subtrie.child(text[counter])
126
+ counter += 1
127
+
128
+ if subtrie && subtrie.has_value?
129
+ update_break_weights(subtrie.value, break_weights, idx)
130
+ end
131
+ end
132
+ end
133
+
134
+ remove_illegal_hyphens(break_weights, text)
135
+ end
136
+
137
+ def update_break_weights(pattern, break_weights, start_idx)
138
+ pattern_idx = 0
139
+
140
+ pattern.each_char do |segment|
141
+ if segment =~ /\d/
142
+ int_seg = segment.to_i
143
+ idx = (start_idx + pattern_idx) - 1
144
+ break if idx >= break_weights.size
145
+
146
+ break_weights[idx] = if break_weights[idx] > int_seg
147
+ break_weights[idx]
148
+ else
149
+ int_seg
150
+ end
151
+ else
152
+ pattern_idx += 1
153
+ end
154
+ end
155
+ end
156
+
157
+ def remove_illegal_hyphens(break_weights, text)
158
+ break_weights.map.with_index do |break_weight, idx|
159
+ next break_weight if idx.zero?
160
+ next 0 if no_hyphen.include?(text[idx - 1])
161
+ break_weight
162
+ end
163
+ end
164
+
165
+ def left_hyphen_min
166
+ @left_hyphen_min ||=
167
+ options.fetch(:lefthyphenmin, DEFAULT_LEFT_HYPHEN_MIN)
168
+ end
169
+
170
+ def right_hyphen_min
171
+ @right_hyphen_min ||=
172
+ options.fetch(:righthyphenmin, DEFAULT_RIGHT_HYPHEN_MIN)
173
+ end
174
+
175
+ def no_hyphen
176
+ @no_hyphen ||= options.fetch(:nohyphen, DEFAULT_NO_HYPHEN)
177
+ end
178
+
179
+ def build_trie_from(rules)
180
+ TwitterCldr::Utils::Trie.new.tap do |trie|
181
+ rules.each do |rule|
182
+ trie.add(rule.gsub(/\d/, '').each_char, rule)
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
@@ -17,6 +17,8 @@ module TwitterCldr
17
17
 
18
18
  private
19
19
 
20
+ # http://unicode.org/reports/tr35/#Likely_Subtags
21
+ #
20
22
  # Try each of the following in order (where the fields exist). The
21
23
  # notation field³ means field¹ if it exists, otherwise field².
22
24
  #
@@ -31,11 +33,15 @@ module TwitterCldr
31
33
  #
32
34
  # 4. Lookup language¹. If in the table, return language² _ script³ _
33
35
  # region³ + variants.
36
+ #
37
+ # 5. Lookup und_script¹ and return if exists
38
+ #
34
39
  def lookup(locale)
35
40
  first_lookup(locale) ||
36
41
  second_lookup(locale) ||
37
42
  third_lookup(locale) ||
38
43
  fourth_lookup(locale) ||
44
+ fifth_lookup(locale) ||
39
45
  raise(
40
46
  UnrecognizedSubtagsError,
41
47
  "couldn't find matching subtags for #{locale}"
@@ -44,7 +50,7 @@ module TwitterCldr
44
50
 
45
51
  def first_lookup(locale)
46
52
  if locale.language && locale.script && locale.region
47
- code = [locale.language, locale.script, locale.region].join('_')
53
+ code = [locale.language, locale.abbreviated_script, locale.region].join('_')
48
54
 
49
55
  if replacement = subtags_resource[code.to_sym]
50
56
  language2, script2, region2 = Locale.split(replacement)
@@ -55,7 +61,7 @@ module TwitterCldr
55
61
 
56
62
  def second_lookup(locale)
57
63
  if locale.language && locale.script
58
- code = [locale.language, locale.script].join('_')
64
+ code = [locale.language, locale.abbreviated_script].join('_')
59
65
 
60
66
  if replacement = subtags_resource[code.to_sym]
61
67
  language2, script2, region2 = Locale.split(replacement)
@@ -93,6 +99,16 @@ module TwitterCldr
93
99
  end
94
100
  end
95
101
 
102
+ def fifth_lookup(locale)
103
+ if locale.script
104
+ code = ['und', locale.abbreviated_script].join('_')
105
+
106
+ if replacement = subtags_resource[code.to_sym]
107
+ Locale.parse(replacement)
108
+ end
109
+ end
110
+ end
111
+
96
112
  def subtags_resource
97
113
  @subtags_resource ||=
98
114
  TwitterCldr.get_resource('shared', 'likely_subtags')[:subtags]
@@ -26,7 +26,7 @@ module TwitterCldr
26
26
  # 5. Get the components of the cleaned-up tag (language¹, script¹, and
27
27
  # region¹), plus any variants if they exist (including keywords).
28
28
  def parse(locale_text)
29
- locale_text = locale_text.strip
29
+ locale_text = locale_text.to_s.strip
30
30
  return Locale.new(locale_text) if grandfathered?(locale_text)
31
31
 
32
32
  normalize(locale_text).tap do |locale|
@@ -123,7 +123,8 @@ module TwitterCldr
123
123
 
124
124
  def script?(subtag)
125
125
  subtag = normalize_subtag(subtag, :script)
126
- scripts.include?(subtag)
126
+ scripts.include?(subtag) ||
127
+ !!PropertyValueAliases.long_alias_for('sc', subtag)
127
128
  end
128
129
 
129
130
  def region?(subtag)
@@ -168,14 +169,8 @@ module TwitterCldr
168
169
  end
169
170
 
170
171
  def remove_placeholder_tags(locale)
171
- if locale.script == 'Zzzz'
172
- locale.script = nil
173
- end
174
-
175
- if locale.region == 'ZZ'
176
- locale.region = nil
177
- end
178
-
172
+ locale.script = nil if locale.script == 'Zzzz'
173
+ locale.region = nil if locale.region == 'ZZ'
179
174
  locale.language ||= 'und'
180
175
  end
181
176
 
@@ -224,6 +219,10 @@ module TwitterCldr
224
219
  @full_script ||= PropertyValueAliases.long_alias_for('sc', script) || script
225
220
  end
226
221
 
222
+ def abbreviated_script
223
+ @short_script ||= PropertyValueAliases.abbreviated_alias_for('sc', script) || script
224
+ end
225
+
227
226
  def maximize
228
227
  if Locale.grandfathered?(to_s)
229
228
  self
@@ -247,6 +246,17 @@ module TwitterCldr
247
246
  ([language, script, region] + variants).compact
248
247
  end
249
248
 
249
+ def permutations(delimiter = '_')
250
+ perms = [
251
+ [language, script, region].compact.join(delimiter),
252
+ [language, script].compact.join(delimiter),
253
+ [language, region].compact.join(delimiter),
254
+ language,
255
+ ]
256
+
257
+ perms.uniq
258
+ end
259
+
250
260
  end
251
261
  end
252
262
  end
@@ -0,0 +1,24 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ module TwitterCldr
7
+ module Transforms
8
+ autoload :CommentRule, 'twitter_cldr/transforms/comment_rule'
9
+ autoload :Conversions, 'twitter_cldr/transforms/conversions'
10
+ autoload :ConversionRuleSet, 'twitter_cldr/transforms/conversion_rule_set'
11
+ autoload :Cursor, 'twitter_cldr/transforms/cursor'
12
+ autoload :Filters, 'twitter_cldr/transforms/filters'
13
+ autoload :Locale, 'twitter_cldr/transforms/transformer'
14
+ autoload :Rule, 'twitter_cldr/transforms/rule'
15
+ autoload :RuleMatch, 'twitter_cldr/transforms/rule_match'
16
+ autoload :RuleSet, 'twitter_cldr/transforms/rule_set'
17
+ autoload :Tokenizer, 'twitter_cldr/transforms/tokenizer'
18
+ autoload :Transformer, 'twitter_cldr/transforms/transformer'
19
+ autoload :Transforms, 'twitter_cldr/transforms/transforms'
20
+ autoload :TransformId, 'twitter_cldr/transforms/transform_id'
21
+ autoload :Transliterator, 'twitter_cldr/transforms/transliterator'
22
+ autoload :VariableRule, 'twitter_cldr/transforms/variable_rule'
23
+ end
24
+ end
@@ -0,0 +1,30 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ require 'singleton'
7
+
8
+ module TwitterCldr
9
+ module Transforms
10
+
11
+ class CommentRule < Rule
12
+ include Singleton
13
+
14
+ class << self
15
+ def parse(rule_text, symbol_table, index)
16
+ instance
17
+ end
18
+
19
+ def accepts?(rule_text)
20
+ rule_text.strip.start_with?('#')
21
+ end
22
+ end
23
+
24
+ def is_comment?
25
+ true
26
+ end
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,155 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ # http://unicode.org/reports/tr35/tr35-general.html#Transforms
7
+ # http://unicode.org/cldr/utility/transform.jsp
8
+
9
+ module TwitterCldr
10
+ module Transforms
11
+
12
+ class ConversionRuleSet
13
+ attr_reader :filter_rule, :inverse_filter_rule
14
+ attr_reader :rules, :rule_index
15
+
16
+ def initialize(filter_rule, inverse_filter_rule, rules)
17
+ @rules = rules
18
+ @filter_rule = filter_rule
19
+ @inverse_filter_rule = inverse_filter_rule
20
+ @rule_index = build_rule_index(rules)
21
+ end
22
+
23
+ def foward?
24
+ true
25
+ end
26
+
27
+ def backward?
28
+ false
29
+ end
30
+
31
+ def is_transform_rule?
32
+ false
33
+ end
34
+
35
+ def is_conversion_rule?
36
+ false
37
+ end
38
+
39
+ def invert
40
+ ConversionRuleSet.new(
41
+ inverse_filter_rule, filter_rule, inverted_rules
42
+ )
43
+ end
44
+
45
+ def apply_to(cursor)
46
+ until cursor.eos?
47
+ if filter_rule.matches?(cursor)
48
+ rule_match = find_matching_rule_at(cursor)
49
+
50
+ if rule_match
51
+ start = rule_match.start
52
+ stop = rule_match.stop
53
+ replacement = rule_match.replacement
54
+ cursor.text[start...stop] = replacement
55
+
56
+ cursor.advance(
57
+ replacement.size + rule_match.cursor_offset
58
+ )
59
+ else
60
+ cursor.advance
61
+ end
62
+ else
63
+ cursor.advance
64
+ end
65
+ end
66
+ end
67
+
68
+ private
69
+
70
+ def inverted_rules
71
+ @inverted_rules ||= begin
72
+ rules.each_with_object([]) do |rule, ret|
73
+ if rule.can_invert?
74
+ ret << rule.invert
75
+ end
76
+ end
77
+ end
78
+ end
79
+
80
+ def find_matching_rule_at(cursor)
81
+ indexed_match = find_matching_indexed_rule_at(cursor)
82
+ blank_key_match = find_matching_blank_key_rule_at(cursor)
83
+
84
+ if indexed_match
85
+ if blank_key_match
86
+ if blank_key_match < indexed_match
87
+ blank_key_match
88
+ else
89
+ indexed_match
90
+ end
91
+ else
92
+ indexed_match
93
+ end
94
+ else
95
+ blank_key_match
96
+ end
97
+ end
98
+
99
+ def find_matching_indexed_rule_at(cursor)
100
+ if rules = rule_index.get(cursor.index_values)
101
+ rules.each do |rule|
102
+ if side_match = rule.match(cursor)
103
+ return RuleMatch.new(rule, side_match)
104
+ end
105
+ end
106
+ end
107
+
108
+ nil
109
+ end
110
+
111
+ def find_matching_blank_key_rule_at(cursor)
112
+ if rules = rule_index.get([0])
113
+ rules.each do |rule|
114
+ if side_match = rule.match(cursor)
115
+ return RuleMatch.new(rule, side_match)
116
+ end
117
+ end
118
+ end
119
+
120
+ nil
121
+ end
122
+
123
+ def build_rule_index(rules)
124
+ TwitterCldr::Utils::Trie.new.tap do |trie|
125
+ rules.each_with_index do |rule, idx|
126
+ next unless rule.forward?
127
+
128
+ if rule.has_codepoints?
129
+ codepoints = rule.codepoints
130
+
131
+ if codepoints.size > 0
132
+ rule.codepoints.each do |codepoint|
133
+ bytes = codepoint.chr('UTF-8').bytes
134
+
135
+ if entry = trie.get(bytes)
136
+ entry << rule
137
+ else
138
+ trie.add(bytes, [rule])
139
+ end
140
+ end
141
+ end
142
+ else
143
+ if entry = trie.get([0])
144
+ entry << rule
145
+ else
146
+ trie.add([0], [rule])
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end
152
+ end
153
+
154
+ end
155
+ end