i18n 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of i18n might be problematic. Click here for more details.

Files changed (885) hide show
  1. data/README.textile +24 -1
  2. data/Rakefile +6 -2
  3. data/lib/i18n.rb +13 -13
  4. data/lib/i18n/backend.rb +2 -0
  5. data/lib/i18n/backend/active_record.rb +9 -13
  6. data/lib/i18n/backend/active_record/missing.rb +1 -1
  7. data/lib/i18n/backend/active_record/store_procs.rb +5 -5
  8. data/lib/i18n/backend/active_record/translation.rb +6 -4
  9. data/lib/i18n/backend/base.rb +21 -14
  10. data/lib/i18n/backend/cache.rb +1 -0
  11. data/lib/i18n/backend/cascade.rb +22 -8
  12. data/lib/i18n/backend/chain.rb +2 -1
  13. data/lib/i18n/backend/cldr.rb +100 -0
  14. data/lib/i18n/backend/fallbacks.rb +15 -3
  15. data/lib/i18n/backend/fast.rb +14 -13
  16. data/lib/i18n/backend/gettext.rb +2 -1
  17. data/lib/i18n/backend/helpers.rb +4 -16
  18. data/lib/i18n/backend/interpolation_compiler.rb +2 -2
  19. data/lib/i18n/backend/links.rb +34 -0
  20. data/lib/i18n/backend/pluralization.rb +1 -1
  21. data/lib/i18n/core_ext/hash/except.rb +8 -0
  22. data/lib/i18n/core_ext/hash/slice.rb +8 -0
  23. data/lib/i18n/core_ext/string/interpolate.rb +6 -2
  24. data/lib/i18n/exceptions.rb +1 -1
  25. data/lib/i18n/helpers/gettext.rb +3 -2
  26. data/lib/i18n/version.rb +1 -1
  27. data/test/api.rb +18 -0
  28. data/test/{cases/api → api}/active_record_test.rb +6 -5
  29. data/test/{cases/api → api}/all_features_test.rb +22 -3
  30. data/test/{cases/api → api}/cascade_test.rb +4 -3
  31. data/test/{cases/api → api}/chain_test.rb +4 -3
  32. data/test/{cases/api → api}/fallbacks_test.rb +4 -3
  33. data/test/{cases/api → api}/fast_test.rb +4 -3
  34. data/test/{cases/api → api}/pluralization_test.rb +4 -3
  35. data/test/{cases/api → api}/simple_test.rb +5 -3
  36. data/test/api/{basics.rb → tests/basics.rb} +0 -0
  37. data/test/api/{defaults.rb → tests/defaults.rb} +1 -1
  38. data/test/api/{interpolation.rb → tests/interpolation.rb} +6 -6
  39. data/test/api/{link.rb → tests/link.rb} +4 -3
  40. data/test/api/{localization → tests/localization}/date.rb +6 -2
  41. data/test/api/{localization → tests/localization}/date_time.rb +7 -5
  42. data/test/api/{localization → tests/localization}/procs.rb +0 -0
  43. data/test/api/{localization → tests/localization}/time.rb +16 -12
  44. data/test/api/{lookup.rb → tests/lookup.rb} +20 -3
  45. data/test/api/{pluralization.rb → tests/pluralization.rb} +1 -1
  46. data/test/api/{procs.rb → tests/procs.rb} +10 -1
  47. data/test/{cases/backend → backend}/active_record/missing_test.rb +12 -21
  48. data/test/{cases/backend → backend}/active_record_test.rb +11 -6
  49. data/test/{cases/backend → backend}/cache_test.rb +9 -10
  50. data/test/backend/cascade_test.rb +73 -0
  51. data/test/{cases/backend → backend}/chain_test.rb +10 -11
  52. data/test/backend/cldr_test.rb +151 -0
  53. data/test/backend/exceptions_test.rb +25 -0
  54. data/test/backend/fallbacks_test.rb +107 -0
  55. data/test/{cases/backend → backend}/fast_test.rb +7 -7
  56. data/test/{cases/backend → backend}/helpers_test.rb +7 -6
  57. data/test/{cases/backend → backend}/interpolation_compiler_test.rb +3 -2
  58. data/test/{cases/backend → backend}/metadata_test.rb +11 -12
  59. data/test/{cases/backend → backend}/pluralization_test.rb +20 -16
  60. data/test/{cases/backend → backend}/simple_test.rb +15 -15
  61. data/test/{cases/core_ext → core_ext}/string/interpolate_test.rb +26 -21
  62. data/test/{cases/gettext → gettext}/api_test.rb +11 -5
  63. data/test/{cases/gettext → gettext}/backend_test.rb +4 -4
  64. data/test/{cases/i18n_exceptions_test.rb → i18n_exceptions_test.rb} +3 -3
  65. data/test/{cases/i18n_load_path_test.rb → i18n_load_path_test.rb} +2 -2
  66. data/test/{cases/i18n_test.rb → i18n_test.rb} +15 -15
  67. data/test/{cases/locale → locale}/fallbacks_test.rb +2 -2
  68. data/test/{cases/locale → locale}/tag/rfc4646_test.rb +3 -3
  69. data/test/{cases/locale → locale}/tag/simple_test.rb +2 -2
  70. data/test/test_data/locales/cldr/de/calendars.yml +152 -0
  71. data/test/test_data/locales/cldr/de/currencies.yml +8 -0
  72. data/test/test_data/locales/cldr/de/numbers.yml +31 -0
  73. data/test/{fixtures → test_data}/locales/de.po +0 -0
  74. data/test/{fixtures → test_data}/locales/en.rb +0 -0
  75. data/test/{fixtures → test_data}/locales/en.yml +0 -0
  76. data/test/{fixtures → test_data}/locales/plurals.rb +0 -0
  77. data/test/test_helper.rb +49 -36
  78. data/vendor/cldr/common/bcp47/calendar.xml +26 -0
  79. data/vendor/cldr/common/bcp47/collation.xml +72 -0
  80. data/vendor/cldr/common/bcp47/currency.xml +177 -0
  81. data/vendor/cldr/common/bcp47/number.xml +47 -0
  82. data/vendor/cldr/common/bcp47/timezone.xml +443 -0
  83. data/vendor/cldr/common/bcp47/variant.xml +14 -0
  84. data/vendor/cldr/common/collation/af.xml +17 -0
  85. data/vendor/cldr/common/collation/ar.xml +17 -0
  86. data/vendor/cldr/common/collation/as.xml +42 -0
  87. data/vendor/cldr/common/collation/az.xml +44 -0
  88. data/vendor/cldr/common/collation/be.xml +12 -0
  89. data/vendor/cldr/common/collation/bg.xml +12 -0
  90. data/vendor/cldr/common/collation/bn.xml +99 -0
  91. data/vendor/cldr/common/collation/bn_IN.xml +733 -0
  92. data/vendor/cldr/common/collation/ca.xml +49 -0
  93. data/vendor/cldr/common/collation/cs.xml +55 -0
  94. data/vendor/cldr/common/collation/cy.xml +55 -0
  95. data/vendor/cldr/common/collation/da.xml +90 -0
  96. data/vendor/cldr/common/collation/de.xml +42 -0
  97. data/vendor/cldr/common/collation/dz.xml +525 -0
  98. data/vendor/cldr/common/collation/el.xml +14 -0
  99. data/vendor/cldr/common/collation/en.xml +24 -0
  100. data/vendor/cldr/common/collation/en_BE.xml +15 -0
  101. data/vendor/cldr/common/collation/eo.xml +33 -0
  102. data/vendor/cldr/common/collation/es.xml +59 -0
  103. data/vendor/cldr/common/collation/et.xml +34 -0
  104. data/vendor/cldr/common/collation/fa.xml +34 -0
  105. data/vendor/cldr/common/collation/fa_AF.xml +13 -0
  106. data/vendor/cldr/common/collation/fi.xml +134 -0
  107. data/vendor/cldr/common/collation/fil.xml +21 -0
  108. data/vendor/cldr/common/collation/fo.xml +88 -0
  109. data/vendor/cldr/common/collation/fr.xml +25 -0
  110. data/vendor/cldr/common/collation/gu.xml +47 -0
  111. data/vendor/cldr/common/collation/haw.xml +41 -0
  112. data/vendor/cldr/common/collation/he.xml +14 -0
  113. data/vendor/cldr/common/collation/hi.xml +62 -0
  114. data/vendor/cldr/common/collation/hr.xml +70 -0
  115. data/vendor/cldr/common/collation/hu.xml +295 -0
  116. data/vendor/cldr/common/collation/is.xml +51 -0
  117. data/vendor/cldr/common/collation/it.xml +24 -0
  118. data/vendor/cldr/common/collation/ja.xml +2419 -0
  119. data/vendor/cldr/common/collation/kk.xml +35 -0
  120. data/vendor/cldr/common/collation/kl.xml +49 -0
  121. data/vendor/cldr/common/collation/km.xml +155 -0
  122. data/vendor/cldr/common/collation/kn.xml +765 -0
  123. data/vendor/cldr/common/collation/ko.xml +976 -0
  124. data/vendor/cldr/common/collation/kok.xml +45 -0
  125. data/vendor/cldr/common/collation/ln.xml +107 -0
  126. data/vendor/cldr/common/collation/lt.xml +47 -0
  127. data/vendor/cldr/common/collation/lv.xml +75 -0
  128. data/vendor/cldr/common/collation/mk.xml +12 -0
  129. data/vendor/cldr/common/collation/ml.xml +166 -0
  130. data/vendor/cldr/common/collation/mr.xml +52 -0
  131. data/vendor/cldr/common/collation/mt.xml +33 -0
  132. data/vendor/cldr/common/collation/my.xml +980 -0
  133. data/vendor/cldr/common/collation/nb.xml +46 -0
  134. data/vendor/cldr/common/collation/nn.xml +46 -0
  135. data/vendor/cldr/common/collation/om.xml +33 -0
  136. data/vendor/cldr/common/collation/or.xml +64 -0
  137. data/vendor/cldr/common/collation/pa.xml +28 -0
  138. data/vendor/cldr/common/collation/pl.xml +41 -0
  139. data/vendor/cldr/common/collation/ps.xml +58 -0
  140. data/vendor/cldr/common/collation/ro.xml +61 -0
  141. data/vendor/cldr/common/collation/root.xml +15 -0
  142. data/vendor/cldr/common/collation/ru.xml +14 -0
  143. data/vendor/cldr/common/collation/sa.xml +898 -0
  144. data/vendor/cldr/common/collation/si.xml +47 -0
  145. data/vendor/cldr/common/collation/sk.xml +70 -0
  146. data/vendor/cldr/common/collation/sl.xml +39 -0
  147. data/vendor/cldr/common/collation/sq.xml +112 -0
  148. data/vendor/cldr/common/collation/sr.xml +12 -0
  149. data/vendor/cldr/common/collation/sr_Latn.xml +13 -0
  150. data/vendor/cldr/common/collation/sv.xml +90 -0
  151. data/vendor/cldr/common/collation/ta.xml +82 -0
  152. data/vendor/cldr/common/collation/te.xml +46 -0
  153. data/vendor/cldr/common/collation/th.xml +58 -0
  154. data/vendor/cldr/common/collation/to.xml +52 -0
  155. data/vendor/cldr/common/collation/tr.xml +35 -0
  156. data/vendor/cldr/common/collation/uk.xml +18 -0
  157. data/vendor/cldr/common/collation/ur.xml +77 -0
  158. data/vendor/cldr/common/collation/vi.xml +37 -0
  159. data/vendor/cldr/common/collation/zh.xml +544 -0
  160. data/vendor/cldr/common/collation/zh_Hant.xml +13 -0
  161. data/vendor/cldr/common/dtd/cldrTest.dtd +46 -0
  162. data/vendor/cldr/common/dtd/ldml.dtd +1198 -0
  163. data/vendor/cldr/common/dtd/ldmlBCP47.dtd +36 -0
  164. data/vendor/cldr/common/dtd/ldmlICIR.dtd +142 -0
  165. data/vendor/cldr/common/dtd/ldmlICU.dtd +111 -0
  166. data/vendor/cldr/common/dtd/ldmlOpenOffice.dtd +192 -0
  167. data/vendor/cldr/common/dtd/ldmlSupplemental.dtd +423 -0
  168. data/vendor/cldr/common/main/aa.xml +221 -0
  169. data/vendor/cldr/common/main/aa_DJ.xml +26 -0
  170. data/vendor/cldr/common/main/aa_ER.xml +11 -0
  171. data/vendor/cldr/common/main/aa_ER_SAAHO.xml +39 -0
  172. data/vendor/cldr/common/main/aa_ET.xml +10 -0
  173. data/vendor/cldr/common/main/af.xml +827 -0
  174. data/vendor/cldr/common/main/af_NA.xml +75 -0
  175. data/vendor/cldr/common/main/af_ZA.xml +10 -0
  176. data/vendor/cldr/common/main/ak.xml +194 -0
  177. data/vendor/cldr/common/main/ak_GH.xml +10 -0
  178. data/vendor/cldr/common/main/am.xml +1413 -0
  179. data/vendor/cldr/common/main/am_ET.xml +10 -0
  180. data/vendor/cldr/common/main/ar.xml +3232 -0
  181. data/vendor/cldr/common/main/ar_AE.xml +15 -0
  182. data/vendor/cldr/common/main/ar_BH.xml +15 -0
  183. data/vendor/cldr/common/main/ar_DZ.xml +44 -0
  184. data/vendor/cldr/common/main/ar_EG.xml +10 -0
  185. data/vendor/cldr/common/main/ar_IQ.xml +15 -0
  186. data/vendor/cldr/common/main/ar_JO.xml +66 -0
  187. data/vendor/cldr/common/main/ar_KW.xml +15 -0
  188. data/vendor/cldr/common/main/ar_LB.xml +67 -0
  189. data/vendor/cldr/common/main/ar_LY.xml +15 -0
  190. data/vendor/cldr/common/main/ar_MA.xml +47 -0
  191. data/vendor/cldr/common/main/ar_OM.xml +15 -0
  192. data/vendor/cldr/common/main/ar_QA.xml +50 -0
  193. data/vendor/cldr/common/main/ar_SA.xml +50 -0
  194. data/vendor/cldr/common/main/ar_SD.xml +15 -0
  195. data/vendor/cldr/common/main/ar_SY.xml +82 -0
  196. data/vendor/cldr/common/main/ar_TN.xml +75 -0
  197. data/vendor/cldr/common/main/ar_YE.xml +50 -0
  198. data/vendor/cldr/common/main/as.xml +278 -0
  199. data/vendor/cldr/common/main/as_IN.xml +10 -0
  200. data/vendor/cldr/common/main/az.xml +2718 -0
  201. data/vendor/cldr/common/main/az_AZ.xml +11 -0
  202. data/vendor/cldr/common/main/az_Cyrl.xml +85 -0
  203. data/vendor/cldr/common/main/az_Cyrl_AZ.xml +11 -0
  204. data/vendor/cldr/common/main/az_Latn.xml +10 -0
  205. data/vendor/cldr/common/main/az_Latn_AZ.xml +11 -0
  206. data/vendor/cldr/common/main/be.xml +1096 -0
  207. data/vendor/cldr/common/main/be_BY.xml +10 -0
  208. data/vendor/cldr/common/main/bg.xml +3985 -0
  209. data/vendor/cldr/common/main/bg_BG.xml +10 -0
  210. data/vendor/cldr/common/main/bn.xml +3193 -0
  211. data/vendor/cldr/common/main/bn_BD.xml +10 -0
  212. data/vendor/cldr/common/main/bn_IN.xml +36 -0
  213. data/vendor/cldr/common/main/bo.xml +449 -0
  214. data/vendor/cldr/common/main/bo_CN.xml +10 -0
  215. data/vendor/cldr/common/main/bo_IN.xml +10 -0
  216. data/vendor/cldr/common/main/bs.xml +330 -0
  217. data/vendor/cldr/common/main/bs_BA.xml +10 -0
  218. data/vendor/cldr/common/main/byn.xml +502 -0
  219. data/vendor/cldr/common/main/byn_ER.xml +10 -0
  220. data/vendor/cldr/common/main/ca.xml +3284 -0
  221. data/vendor/cldr/common/main/ca_ES.xml +10 -0
  222. data/vendor/cldr/common/main/cch.xml +189 -0
  223. data/vendor/cldr/common/main/cch_NG.xml +10 -0
  224. data/vendor/cldr/common/main/cop.xml +201 -0
  225. data/vendor/cldr/common/main/cs.xml +2588 -0
  226. data/vendor/cldr/common/main/cs_CZ.xml +10 -0
  227. data/vendor/cldr/common/main/cy.xml +783 -0
  228. data/vendor/cldr/common/main/cy_GB.xml +10 -0
  229. data/vendor/cldr/common/main/da.xml +3379 -0
  230. data/vendor/cldr/common/main/da_DK.xml +10 -0
  231. data/vendor/cldr/common/main/de.xml +3092 -0
  232. data/vendor/cldr/common/main/de_AT.xml +70 -0
  233. data/vendor/cldr/common/main/de_BE.xml +115 -0
  234. data/vendor/cldr/common/main/de_CH.xml +65 -0
  235. data/vendor/cldr/common/main/de_DE.xml +10 -0
  236. data/vendor/cldr/common/main/de_LI.xml +23 -0
  237. data/vendor/cldr/common/main/de_LU.xml +19 -0
  238. data/vendor/cldr/common/main/dv.xml +228 -0
  239. data/vendor/cldr/common/main/dv_MV.xml +10 -0
  240. data/vendor/cldr/common/main/dz.xml +412 -0
  241. data/vendor/cldr/common/main/dz_BT.xml +10 -0
  242. data/vendor/cldr/common/main/ee.xml +197 -0
  243. data/vendor/cldr/common/main/ee_GH.xml +10 -0
  244. data/vendor/cldr/common/main/ee_TG.xml +10 -0
  245. data/vendor/cldr/common/main/el.xml +4148 -0
  246. data/vendor/cldr/common/main/el_CY.xml +20 -0
  247. data/vendor/cldr/common/main/el_GR.xml +10 -0
  248. data/vendor/cldr/common/main/el_POLYTON.xml +542 -0
  249. data/vendor/cldr/common/main/en.xml +4150 -0
  250. data/vendor/cldr/common/main/en_AS.xml +10 -0
  251. data/vendor/cldr/common/main/en_AU.xml +161 -0
  252. data/vendor/cldr/common/main/en_BE.xml +159 -0
  253. data/vendor/cldr/common/main/en_BW.xml +131 -0
  254. data/vendor/cldr/common/main/en_BZ.xml +161 -0
  255. data/vendor/cldr/common/main/en_CA.xml +127 -0
  256. data/vendor/cldr/common/main/en_Dsrt.xml +1029 -0
  257. data/vendor/cldr/common/main/en_Dsrt_US.xml +11 -0
  258. data/vendor/cldr/common/main/en_GB.xml +170 -0
  259. data/vendor/cldr/common/main/en_GU.xml +10 -0
  260. data/vendor/cldr/common/main/en_HK.xml +57 -0
  261. data/vendor/cldr/common/main/en_IE.xml +150 -0
  262. data/vendor/cldr/common/main/en_IN.xml +146 -0
  263. data/vendor/cldr/common/main/en_JM.xml +27 -0
  264. data/vendor/cldr/common/main/en_MH.xml +10 -0
  265. data/vendor/cldr/common/main/en_MP.xml +10 -0
  266. data/vendor/cldr/common/main/en_MT.xml +155 -0
  267. data/vendor/cldr/common/main/en_NA.xml +27 -0
  268. data/vendor/cldr/common/main/en_NZ.xml +158 -0
  269. data/vendor/cldr/common/main/en_PH.xml +17 -0
  270. data/vendor/cldr/common/main/en_PK.xml +154 -0
  271. data/vendor/cldr/common/main/en_SG.xml +48 -0
  272. data/vendor/cldr/common/main/en_Shaw.xml +188 -0
  273. data/vendor/cldr/common/main/en_TT.xml +27 -0
  274. data/vendor/cldr/common/main/en_UM.xml +10 -0
  275. data/vendor/cldr/common/main/en_US.xml +10 -0
  276. data/vendor/cldr/common/main/en_US_POSIX.xml +54 -0
  277. data/vendor/cldr/common/main/en_VI.xml +10 -0
  278. data/vendor/cldr/common/main/en_ZA.xml +153 -0
  279. data/vendor/cldr/common/main/en_ZW.xml +145 -0
  280. data/vendor/cldr/common/main/eo.xml +636 -0
  281. data/vendor/cldr/common/main/es.xml +3746 -0
  282. data/vendor/cldr/common/main/es_AR.xml +130 -0
  283. data/vendor/cldr/common/main/es_BO.xml +10 -0
  284. data/vendor/cldr/common/main/es_CL.xml +160 -0
  285. data/vendor/cldr/common/main/es_CO.xml +128 -0
  286. data/vendor/cldr/common/main/es_CR.xml +10 -0
  287. data/vendor/cldr/common/main/es_DO.xml +16 -0
  288. data/vendor/cldr/common/main/es_EC.xml +123 -0
  289. data/vendor/cldr/common/main/es_ES.xml +10 -0
  290. data/vendor/cldr/common/main/es_GT.xml +115 -0
  291. data/vendor/cldr/common/main/es_HN.xml +115 -0
  292. data/vendor/cldr/common/main/es_MX.xml +21 -0
  293. data/vendor/cldr/common/main/es_NI.xml +16 -0
  294. data/vendor/cldr/common/main/es_PA.xml +110 -0
  295. data/vendor/cldr/common/main/es_PE.xml +112 -0
  296. data/vendor/cldr/common/main/es_PR.xml +115 -0
  297. data/vendor/cldr/common/main/es_PY.xml +19 -0
  298. data/vendor/cldr/common/main/es_SV.xml +16 -0
  299. data/vendor/cldr/common/main/es_US.xml +148 -0
  300. data/vendor/cldr/common/main/es_UY.xml +24 -0
  301. data/vendor/cldr/common/main/es_VE.xml +19 -0
  302. data/vendor/cldr/common/main/et.xml +2045 -0
  303. data/vendor/cldr/common/main/et_EE.xml +10 -0
  304. data/vendor/cldr/common/main/eu.xml +1004 -0
  305. data/vendor/cldr/common/main/eu_ES.xml +10 -0
  306. data/vendor/cldr/common/main/fa.xml +3334 -0
  307. data/vendor/cldr/common/main/fa_AF.xml +309 -0
  308. data/vendor/cldr/common/main/fa_IR.xml +10 -0
  309. data/vendor/cldr/common/main/fi.xml +3870 -0
  310. data/vendor/cldr/common/main/fi_FI.xml +10 -0
  311. data/vendor/cldr/common/main/fil.xml +1031 -0
  312. data/vendor/cldr/common/main/fil_PH.xml +10 -0
  313. data/vendor/cldr/common/main/fo.xml +799 -0
  314. data/vendor/cldr/common/main/fo_FO.xml +10 -0
  315. data/vendor/cldr/common/main/fr.xml +5705 -0
  316. data/vendor/cldr/common/main/fr_BE.xml +104 -0
  317. data/vendor/cldr/common/main/fr_CA.xml +152 -0
  318. data/vendor/cldr/common/main/fr_CH.xml +125 -0
  319. data/vendor/cldr/common/main/fr_FR.xml +10 -0
  320. data/vendor/cldr/common/main/fr_LU.xml +23 -0
  321. data/vendor/cldr/common/main/fr_MC.xml +10 -0
  322. data/vendor/cldr/common/main/fr_SN.xml +10 -0
  323. data/vendor/cldr/common/main/fur.xml +1226 -0
  324. data/vendor/cldr/common/main/fur_IT.xml +10 -0
  325. data/vendor/cldr/common/main/ga.xml +1504 -0
  326. data/vendor/cldr/common/main/ga_IE.xml +10 -0
  327. data/vendor/cldr/common/main/gaa.xml +194 -0
  328. data/vendor/cldr/common/main/gaa_GH.xml +10 -0
  329. data/vendor/cldr/common/main/gez.xml +504 -0
  330. data/vendor/cldr/common/main/gez_ER.xml +10 -0
  331. data/vendor/cldr/common/main/gez_ET.xml +10 -0
  332. data/vendor/cldr/common/main/gl.xml +1364 -0
  333. data/vendor/cldr/common/main/gl_ES.xml +10 -0
  334. data/vendor/cldr/common/main/gsw.xml +2921 -0
  335. data/vendor/cldr/common/main/gsw_CH.xml +10 -0
  336. data/vendor/cldr/common/main/gu.xml +1165 -0
  337. data/vendor/cldr/common/main/gu_IN.xml +10 -0
  338. data/vendor/cldr/common/main/gv.xml +201 -0
  339. data/vendor/cldr/common/main/gv_GB.xml +10 -0
  340. data/vendor/cldr/common/main/ha.xml +380 -0
  341. data/vendor/cldr/common/main/ha_Arab.xml +95 -0
  342. data/vendor/cldr/common/main/ha_Arab_NG.xml +11 -0
  343. data/vendor/cldr/common/main/ha_Arab_SD.xml +11 -0
  344. data/vendor/cldr/common/main/ha_GH.xml +11 -0
  345. data/vendor/cldr/common/main/ha_Latn.xml +10 -0
  346. data/vendor/cldr/common/main/ha_Latn_GH.xml +11 -0
  347. data/vendor/cldr/common/main/ha_Latn_NE.xml +11 -0
  348. data/vendor/cldr/common/main/ha_Latn_NG.xml +11 -0
  349. data/vendor/cldr/common/main/ha_NE.xml +11 -0
  350. data/vendor/cldr/common/main/ha_NG.xml +11 -0
  351. data/vendor/cldr/common/main/ha_SD.xml +11 -0
  352. data/vendor/cldr/common/main/haw.xml +219 -0
  353. data/vendor/cldr/common/main/haw_US.xml +10 -0
  354. data/vendor/cldr/common/main/he.xml +2809 -0
  355. data/vendor/cldr/common/main/he_IL.xml +10 -0
  356. data/vendor/cldr/common/main/hi.xml +3376 -0
  357. data/vendor/cldr/common/main/hi_IN.xml +10 -0
  358. data/vendor/cldr/common/main/hr.xml +3765 -0
  359. data/vendor/cldr/common/main/hr_HR.xml +10 -0
  360. data/vendor/cldr/common/main/hu.xml +3767 -0
  361. data/vendor/cldr/common/main/hu_HU.xml +10 -0
  362. data/vendor/cldr/common/main/hy.xml +594 -0
  363. data/vendor/cldr/common/main/hy_AM.xml +10 -0
  364. data/vendor/cldr/common/main/hy_AM_REVISED.xml +40 -0
  365. data/vendor/cldr/common/main/ia.xml +553 -0
  366. data/vendor/cldr/common/main/id.xml +1342 -0
  367. data/vendor/cldr/common/main/id_ID.xml +10 -0
  368. data/vendor/cldr/common/main/ig.xml +198 -0
  369. data/vendor/cldr/common/main/ig_NG.xml +10 -0
  370. data/vendor/cldr/common/main/ii.xml +255 -0
  371. data/vendor/cldr/common/main/ii_CN.xml +10 -0
  372. data/vendor/cldr/common/main/in.xml +10 -0
  373. data/vendor/cldr/common/main/is.xml +2394 -0
  374. data/vendor/cldr/common/main/is_IS.xml +10 -0
  375. data/vendor/cldr/common/main/it.xml +3028 -0
  376. data/vendor/cldr/common/main/it_CH.xml +117 -0
  377. data/vendor/cldr/common/main/it_IT.xml +10 -0
  378. data/vendor/cldr/common/main/iu.xml +182 -0
  379. data/vendor/cldr/common/main/iw.xml +10 -0
  380. data/vendor/cldr/common/main/ja.xml +3816 -0
  381. data/vendor/cldr/common/main/ja_JP.xml +10 -0
  382. data/vendor/cldr/common/main/ka.xml +2160 -0
  383. data/vendor/cldr/common/main/ka_GE.xml +10 -0
  384. data/vendor/cldr/common/main/kaj.xml +189 -0
  385. data/vendor/cldr/common/main/kaj_NG.xml +10 -0
  386. data/vendor/cldr/common/main/kam.xml +188 -0
  387. data/vendor/cldr/common/main/kam_KE.xml +10 -0
  388. data/vendor/cldr/common/main/kcg.xml +189 -0
  389. data/vendor/cldr/common/main/kcg_NG.xml +10 -0
  390. data/vendor/cldr/common/main/kfo.xml +189 -0
  391. data/vendor/cldr/common/main/kfo_CI.xml +10 -0
  392. data/vendor/cldr/common/main/kk.xml +389 -0
  393. data/vendor/cldr/common/main/kk_Cyrl.xml +10 -0
  394. data/vendor/cldr/common/main/kk_Cyrl_KZ.xml +11 -0
  395. data/vendor/cldr/common/main/kk_KZ.xml +11 -0
  396. data/vendor/cldr/common/main/kl.xml +208 -0
  397. data/vendor/cldr/common/main/kl_GL.xml +10 -0
  398. data/vendor/cldr/common/main/km.xml +668 -0
  399. data/vendor/cldr/common/main/km_KH.xml +10 -0
  400. data/vendor/cldr/common/main/kn.xml +1166 -0
  401. data/vendor/cldr/common/main/kn_IN.xml +10 -0
  402. data/vendor/cldr/common/main/ko.xml +3961 -0
  403. data/vendor/cldr/common/main/ko_KR.xml +10 -0
  404. data/vendor/cldr/common/main/kok.xml +364 -0
  405. data/vendor/cldr/common/main/kok_IN.xml +10 -0
  406. data/vendor/cldr/common/main/kpe.xml +188 -0
  407. data/vendor/cldr/common/main/kpe_GN.xml +17 -0
  408. data/vendor/cldr/common/main/kpe_LR.xml +10 -0
  409. data/vendor/cldr/common/main/ku.xml +159 -0
  410. data/vendor/cldr/common/main/ku_Arab.xml +10 -0
  411. data/vendor/cldr/common/main/ku_Arab_IQ.xml +11 -0
  412. data/vendor/cldr/common/main/ku_Arab_IR.xml +11 -0
  413. data/vendor/cldr/common/main/ku_Arab_SY.xml +11 -0
  414. data/vendor/cldr/common/main/ku_IQ.xml +11 -0
  415. data/vendor/cldr/common/main/ku_IR.xml +11 -0
  416. data/vendor/cldr/common/main/ku_Latn.xml +190 -0
  417. data/vendor/cldr/common/main/ku_Latn_TR.xml +11 -0
  418. data/vendor/cldr/common/main/ku_SY.xml +11 -0
  419. data/vendor/cldr/common/main/ku_TR.xml +11 -0
  420. data/vendor/cldr/common/main/kw.xml +201 -0
  421. data/vendor/cldr/common/main/kw_GB.xml +10 -0
  422. data/vendor/cldr/common/main/ky.xml +276 -0
  423. data/vendor/cldr/common/main/ky_KG.xml +10 -0
  424. data/vendor/cldr/common/main/ln.xml +492 -0
  425. data/vendor/cldr/common/main/ln_CD.xml +10 -0
  426. data/vendor/cldr/common/main/ln_CG.xml +10 -0
  427. data/vendor/cldr/common/main/lo.xml +624 -0
  428. data/vendor/cldr/common/main/lo_LA.xml +10 -0
  429. data/vendor/cldr/common/main/lt.xml +3394 -0
  430. data/vendor/cldr/common/main/lt_LT.xml +10 -0
  431. data/vendor/cldr/common/main/lv.xml +3086 -0
  432. data/vendor/cldr/common/main/lv_LV.xml +10 -0
  433. data/vendor/cldr/common/main/mk.xml +2323 -0
  434. data/vendor/cldr/common/main/mk_MK.xml +10 -0
  435. data/vendor/cldr/common/main/ml.xml +4443 -0
  436. data/vendor/cldr/common/main/ml_IN.xml +10 -0
  437. data/vendor/cldr/common/main/mn.xml +320 -0
  438. data/vendor/cldr/common/main/mn_CN.xml +11 -0
  439. data/vendor/cldr/common/main/mn_Cyrl.xml +10 -0
  440. data/vendor/cldr/common/main/mn_Cyrl_MN.xml +11 -0
  441. data/vendor/cldr/common/main/mn_MN.xml +11 -0
  442. data/vendor/cldr/common/main/mn_Mong.xml +17 -0
  443. data/vendor/cldr/common/main/mn_Mong_CN.xml +11 -0
  444. data/vendor/cldr/common/main/mo.xml +10 -0
  445. data/vendor/cldr/common/main/mr.xml +1199 -0
  446. data/vendor/cldr/common/main/mr_IN.xml +10 -0
  447. data/vendor/cldr/common/main/ms.xml +558 -0
  448. data/vendor/cldr/common/main/ms_BN.xml +135 -0
  449. data/vendor/cldr/common/main/ms_MY.xml +10 -0
  450. data/vendor/cldr/common/main/mt.xml +1146 -0
  451. data/vendor/cldr/common/main/mt_MT.xml +10 -0
  452. data/vendor/cldr/common/main/my.xml +1590 -0
  453. data/vendor/cldr/common/main/my_MM.xml +10 -0
  454. data/vendor/cldr/common/main/nb.xml +3300 -0
  455. data/vendor/cldr/common/main/nb_NO.xml +10 -0
  456. data/vendor/cldr/common/main/nds.xml +1151 -0
  457. data/vendor/cldr/common/main/nds_DE.xml +10 -0
  458. data/vendor/cldr/common/main/ne.xml +1387 -0
  459. data/vendor/cldr/common/main/ne_IN.xml +10 -0
  460. data/vendor/cldr/common/main/ne_NP.xml +10 -0
  461. data/vendor/cldr/common/main/nl.xml +3888 -0
  462. data/vendor/cldr/common/main/nl_BE.xml +81 -0
  463. data/vendor/cldr/common/main/nl_NL.xml +10 -0
  464. data/vendor/cldr/common/main/nn.xml +2999 -0
  465. data/vendor/cldr/common/main/nn_NO.xml +10 -0
  466. data/vendor/cldr/common/main/no.xml +10 -0
  467. data/vendor/cldr/common/main/nr.xml +227 -0
  468. data/vendor/cldr/common/main/nr_ZA.xml +10 -0
  469. data/vendor/cldr/common/main/nso.xml +229 -0
  470. data/vendor/cldr/common/main/nso_ZA.xml +10 -0
  471. data/vendor/cldr/common/main/ny.xml +193 -0
  472. data/vendor/cldr/common/main/ny_MW.xml +10 -0
  473. data/vendor/cldr/common/main/oc.xml +280 -0
  474. data/vendor/cldr/common/main/oc_FR.xml +10 -0
  475. data/vendor/cldr/common/main/om.xml +328 -0
  476. data/vendor/cldr/common/main/om_ET.xml +10 -0
  477. data/vendor/cldr/common/main/om_KE.xml +10 -0
  478. data/vendor/cldr/common/main/or.xml +1146 -0
  479. data/vendor/cldr/common/main/or_IN.xml +10 -0
  480. data/vendor/cldr/common/main/pa.xml +314 -0
  481. data/vendor/cldr/common/main/pa_Arab.xml +135 -0
  482. data/vendor/cldr/common/main/pa_Arab_PK.xml +11 -0
  483. data/vendor/cldr/common/main/pa_Guru.xml +10 -0
  484. data/vendor/cldr/common/main/pa_Guru_IN.xml +11 -0
  485. data/vendor/cldr/common/main/pa_IN.xml +11 -0
  486. data/vendor/cldr/common/main/pa_PK.xml +11 -0
  487. data/vendor/cldr/common/main/pl.xml +3124 -0
  488. data/vendor/cldr/common/main/pl_PL.xml +10 -0
  489. data/vendor/cldr/common/main/ps.xml +425 -0
  490. data/vendor/cldr/common/main/ps_AF.xml +10 -0
  491. data/vendor/cldr/common/main/pt.xml +4373 -0
  492. data/vendor/cldr/common/main/pt_BR.xml +10 -0
  493. data/vendor/cldr/common/main/pt_PT.xml +1866 -0
  494. data/vendor/cldr/common/main/ro.xml +2515 -0
  495. data/vendor/cldr/common/main/ro_MD.xml +10 -0
  496. data/vendor/cldr/common/main/ro_RO.xml +10 -0
  497. data/vendor/cldr/common/main/root.xml +3193 -0
  498. data/vendor/cldr/common/main/ru.xml +3992 -0
  499. data/vendor/cldr/common/main/ru_RU.xml +10 -0
  500. data/vendor/cldr/common/main/ru_UA.xml +117 -0
  501. data/vendor/cldr/common/main/rw.xml +306 -0
  502. data/vendor/cldr/common/main/rw_RW.xml +10 -0
  503. data/vendor/cldr/common/main/sa.xml +152 -0
  504. data/vendor/cldr/common/main/sa_IN.xml +10 -0
  505. data/vendor/cldr/common/main/se.xml +745 -0
  506. data/vendor/cldr/common/main/se_FI.xml +250 -0
  507. data/vendor/cldr/common/main/se_NO.xml +10 -0
  508. data/vendor/cldr/common/main/sh.xml +10 -0
  509. data/vendor/cldr/common/main/sh_BA.xml +11 -0
  510. data/vendor/cldr/common/main/sh_CS.xml +11 -0
  511. data/vendor/cldr/common/main/sh_YU.xml +11 -0
  512. data/vendor/cldr/common/main/si.xml +242 -0
  513. data/vendor/cldr/common/main/si_LK.xml +10 -0
  514. data/vendor/cldr/common/main/sid.xml +249 -0
  515. data/vendor/cldr/common/main/sid_ET.xml +10 -0
  516. data/vendor/cldr/common/main/sk.xml +1923 -0
  517. data/vendor/cldr/common/main/sk_SK.xml +10 -0
  518. data/vendor/cldr/common/main/sl.xml +2573 -0
  519. data/vendor/cldr/common/main/sl_SI.xml +10 -0
  520. data/vendor/cldr/common/main/so.xml +560 -0
  521. data/vendor/cldr/common/main/so_DJ.xml +10 -0
  522. data/vendor/cldr/common/main/so_ET.xml +10 -0
  523. data/vendor/cldr/common/main/so_KE.xml +10 -0
  524. data/vendor/cldr/common/main/so_SO.xml +10 -0
  525. data/vendor/cldr/common/main/sq.xml +657 -0
  526. data/vendor/cldr/common/main/sq_AL.xml +10 -0
  527. data/vendor/cldr/common/main/sr.xml +5983 -0
  528. data/vendor/cldr/common/main/sr_BA.xml +11 -0
  529. data/vendor/cldr/common/main/sr_CS.xml +11 -0
  530. data/vendor/cldr/common/main/sr_Cyrl.xml +10 -0
  531. data/vendor/cldr/common/main/sr_Cyrl_BA.xml +104 -0
  532. data/vendor/cldr/common/main/sr_Cyrl_CS.xml +12 -0
  533. data/vendor/cldr/common/main/sr_Cyrl_ME.xml +11 -0
  534. data/vendor/cldr/common/main/sr_Cyrl_RS.xml +11 -0
  535. data/vendor/cldr/common/main/sr_Cyrl_YU.xml +12 -0
  536. data/vendor/cldr/common/main/sr_Latn.xml +5382 -0
  537. data/vendor/cldr/common/main/sr_Latn_BA.xml +11 -0
  538. data/vendor/cldr/common/main/sr_Latn_CS.xml +12 -0
  539. data/vendor/cldr/common/main/sr_Latn_ME.xml +55 -0
  540. data/vendor/cldr/common/main/sr_Latn_RS.xml +11 -0
  541. data/vendor/cldr/common/main/sr_Latn_YU.xml +12 -0
  542. data/vendor/cldr/common/main/sr_ME.xml +11 -0
  543. data/vendor/cldr/common/main/sr_RS.xml +11 -0
  544. data/vendor/cldr/common/main/sr_YU.xml +11 -0
  545. data/vendor/cldr/common/main/ss.xml +231 -0
  546. data/vendor/cldr/common/main/ss_SZ.xml +11 -0
  547. data/vendor/cldr/common/main/ss_ZA.xml +10 -0
  548. data/vendor/cldr/common/main/st.xml +321 -0
  549. data/vendor/cldr/common/main/st_LS.xml +17 -0
  550. data/vendor/cldr/common/main/st_ZA.xml +10 -0
  551. data/vendor/cldr/common/main/sv.xml +5088 -0
  552. data/vendor/cldr/common/main/sv_FI.xml +48 -0
  553. data/vendor/cldr/common/main/sv_SE.xml +10 -0
  554. data/vendor/cldr/common/main/sw.xml +400 -0
  555. data/vendor/cldr/common/main/sw_KE.xml +19 -0
  556. data/vendor/cldr/common/main/sw_TZ.xml +10 -0
  557. data/vendor/cldr/common/main/syr.xml +129 -0
  558. data/vendor/cldr/common/main/syr_SY.xml +10 -0
  559. data/vendor/cldr/common/main/ta.xml +1195 -0
  560. data/vendor/cldr/common/main/ta_IN.xml +10 -0
  561. data/vendor/cldr/common/main/te.xml +1159 -0
  562. data/vendor/cldr/common/main/te_IN.xml +10 -0
  563. data/vendor/cldr/common/main/tg.xml +224 -0
  564. data/vendor/cldr/common/main/tg_Cyrl.xml +10 -0
  565. data/vendor/cldr/common/main/tg_Cyrl_TJ.xml +11 -0
  566. data/vendor/cldr/common/main/tg_TJ.xml +11 -0
  567. data/vendor/cldr/common/main/th.xml +4466 -0
  568. data/vendor/cldr/common/main/th_TH.xml +10 -0
  569. data/vendor/cldr/common/main/ti.xml +326 -0
  570. data/vendor/cldr/common/main/ti_ER.xml +124 -0
  571. data/vendor/cldr/common/main/ti_ET.xml +10 -0
  572. data/vendor/cldr/common/main/tig.xml +501 -0
  573. data/vendor/cldr/common/main/tig_ER.xml +10 -0
  574. data/vendor/cldr/common/main/tl.xml +10 -0
  575. data/vendor/cldr/common/main/tn.xml +313 -0
  576. data/vendor/cldr/common/main/tn_ZA.xml +10 -0
  577. data/vendor/cldr/common/main/to.xml +613 -0
  578. data/vendor/cldr/common/main/to_TO.xml +10 -0
  579. data/vendor/cldr/common/main/tr.xml +3782 -0
  580. data/vendor/cldr/common/main/tr_TR.xml +10 -0
  581. data/vendor/cldr/common/main/trv.xml +562 -0
  582. data/vendor/cldr/common/main/trv_TW.xml +10 -0
  583. data/vendor/cldr/common/main/ts.xml +173 -0
  584. data/vendor/cldr/common/main/ts_ZA.xml +10 -0
  585. data/vendor/cldr/common/main/tt.xml +105 -0
  586. data/vendor/cldr/common/main/tt_RU.xml +10 -0
  587. data/vendor/cldr/common/main/ug.xml +40 -0
  588. data/vendor/cldr/common/main/ug_Arab.xml +10 -0
  589. data/vendor/cldr/common/main/ug_Arab_CN.xml +11 -0
  590. data/vendor/cldr/common/main/ug_CN.xml +11 -0
  591. data/vendor/cldr/common/main/uk.xml +3855 -0
  592. data/vendor/cldr/common/main/uk_UA.xml +10 -0
  593. data/vendor/cldr/common/main/ur.xml +1027 -0
  594. data/vendor/cldr/common/main/ur_IN.xml +33 -0
  595. data/vendor/cldr/common/main/ur_PK.xml +10 -0
  596. data/vendor/cldr/common/main/uz.xml +235 -0
  597. data/vendor/cldr/common/main/uz_AF.xml +11 -0
  598. data/vendor/cldr/common/main/uz_Arab.xml +172 -0
  599. data/vendor/cldr/common/main/uz_Arab_AF.xml +12 -0
  600. data/vendor/cldr/common/main/uz_Cyrl.xml +11 -0
  601. data/vendor/cldr/common/main/uz_Cyrl_UZ.xml +11 -0
  602. data/vendor/cldr/common/main/uz_Latn.xml +170 -0
  603. data/vendor/cldr/common/main/uz_Latn_UZ.xml +11 -0
  604. data/vendor/cldr/common/main/uz_UZ.xml +11 -0
  605. data/vendor/cldr/common/main/ve.xml +194 -0
  606. data/vendor/cldr/common/main/ve_ZA.xml +10 -0
  607. data/vendor/cldr/common/main/vi.xml +1065 -0
  608. data/vendor/cldr/common/main/vi_VN.xml +10 -0
  609. data/vendor/cldr/common/main/wal.xml +350 -0
  610. data/vendor/cldr/common/main/wal_ET.xml +10 -0
  611. data/vendor/cldr/common/main/wo.xml +42 -0
  612. data/vendor/cldr/common/main/wo_Latn.xml +10 -0
  613. data/vendor/cldr/common/main/wo_Latn_SN.xml +11 -0
  614. data/vendor/cldr/common/main/wo_SN.xml +10 -0
  615. data/vendor/cldr/common/main/xh.xml +261 -0
  616. data/vendor/cldr/common/main/xh_ZA.xml +10 -0
  617. data/vendor/cldr/common/main/yo.xml +240 -0
  618. data/vendor/cldr/common/main/yo_NG.xml +10 -0
  619. data/vendor/cldr/common/main/zh.xml +4612 -0
  620. data/vendor/cldr/common/main/zh_CN.xml +11 -0
  621. data/vendor/cldr/common/main/zh_HK.xml +11 -0
  622. data/vendor/cldr/common/main/zh_Hans.xml +10 -0
  623. data/vendor/cldr/common/main/zh_Hans_CN.xml +11 -0
  624. data/vendor/cldr/common/main/zh_Hans_HK.xml +18 -0
  625. data/vendor/cldr/common/main/zh_Hans_MO.xml +11 -0
  626. data/vendor/cldr/common/main/zh_Hans_SG.xml +88 -0
  627. data/vendor/cldr/common/main/zh_Hant.xml +3791 -0
  628. data/vendor/cldr/common/main/zh_Hant_HK.xml +191 -0
  629. data/vendor/cldr/common/main/zh_Hant_MO.xml +117 -0
  630. data/vendor/cldr/common/main/zh_Hant_TW.xml +11 -0
  631. data/vendor/cldr/common/main/zh_MO.xml +11 -0
  632. data/vendor/cldr/common/main/zh_SG.xml +11 -0
  633. data/vendor/cldr/common/main/zh_TW.xml +11 -0
  634. data/vendor/cldr/common/main/zu.xml +334 -0
  635. data/vendor/cldr/common/main/zu_ZA.xml +10 -0
  636. data/vendor/cldr/common/rbnf/af.xml +105 -0
  637. data/vendor/cldr/common/rbnf/am.xml +68 -0
  638. data/vendor/cldr/common/rbnf/ar.xml +247 -0
  639. data/vendor/cldr/common/rbnf/az.xml +109 -0
  640. data/vendor/cldr/common/rbnf/be.xml +159 -0
  641. data/vendor/cldr/common/rbnf/bg.xml +105 -0
  642. data/vendor/cldr/common/rbnf/bs.xml +129 -0
  643. data/vendor/cldr/common/rbnf/ca.xml +278 -0
  644. data/vendor/cldr/common/rbnf/cs.xml +138 -0
  645. data/vendor/cldr/common/rbnf/cy.xml +116 -0
  646. data/vendor/cldr/common/rbnf/da.xml +81 -0
  647. data/vendor/cldr/common/rbnf/de.xml +130 -0
  648. data/vendor/cldr/common/rbnf/el.xml +310 -0
  649. data/vendor/cldr/common/rbnf/en.xml +174 -0
  650. data/vendor/cldr/common/rbnf/eo.xml +52 -0
  651. data/vendor/cldr/common/rbnf/es.xml +266 -0
  652. data/vendor/cldr/common/rbnf/et.xml +51 -0
  653. data/vendor/cldr/common/rbnf/fa.xml +64 -0
  654. data/vendor/cldr/common/rbnf/fa_AF.xml +63 -0
  655. data/vendor/cldr/common/rbnf/fi.xml +53 -0
  656. data/vendor/cldr/common/rbnf/fil.xml +70 -0
  657. data/vendor/cldr/common/rbnf/fo.xml +124 -0
  658. data/vendor/cldr/common/rbnf/fr.xml +147 -0
  659. data/vendor/cldr/common/rbnf/fr_BE.xml +152 -0
  660. data/vendor/cldr/common/rbnf/fr_CH.xml +152 -0
  661. data/vendor/cldr/common/rbnf/ga.xml +240 -0
  662. data/vendor/cldr/common/rbnf/he.xml +401 -0
  663. data/vendor/cldr/common/rbnf/hi.xml +137 -0
  664. data/vendor/cldr/common/rbnf/hr.xml +159 -0
  665. data/vendor/cldr/common/rbnf/hu.xml +55 -0
  666. data/vendor/cldr/common/rbnf/hy.xml +50 -0
  667. data/vendor/cldr/common/rbnf/id.xml +57 -0
  668. data/vendor/cldr/common/rbnf/is.xml +124 -0
  669. data/vendor/cldr/common/rbnf/it.xml +237 -0
  670. data/vendor/cldr/common/rbnf/ja.xml +78 -0
  671. data/vendor/cldr/common/rbnf/ka.xml +76 -0
  672. data/vendor/cldr/common/rbnf/kl.xml +82 -0
  673. data/vendor/cldr/common/rbnf/ko.xml +82 -0
  674. data/vendor/cldr/common/rbnf/lo.xml +57 -0
  675. data/vendor/cldr/common/rbnf/lt.xml +89 -0
  676. data/vendor/cldr/common/rbnf/lv.xml +94 -0
  677. data/vendor/cldr/common/rbnf/mk.xml +105 -0
  678. data/vendor/cldr/common/rbnf/ms.xml +60 -0
  679. data/vendor/cldr/common/rbnf/mt.xml +418 -0
  680. data/vendor/cldr/common/rbnf/nb.xml +80 -0
  681. data/vendor/cldr/common/rbnf/nci.xml +109 -0
  682. data/vendor/cldr/common/rbnf/nl.xml +112 -0
  683. data/vendor/cldr/common/rbnf/nn.xml +79 -0
  684. data/vendor/cldr/common/rbnf/pl.xml +131 -0
  685. data/vendor/cldr/common/rbnf/pt.xml +221 -0
  686. data/vendor/cldr/common/rbnf/pt_PT.xml +206 -0
  687. data/vendor/cldr/common/rbnf/ro.xml +101 -0
  688. data/vendor/cldr/common/rbnf/root.xml +527 -0
  689. data/vendor/cldr/common/rbnf/ru.xml +144 -0
  690. data/vendor/cldr/common/rbnf/se.xml +47 -0
  691. data/vendor/cldr/common/rbnf/sk.xml +117 -0
  692. data/vendor/cldr/common/rbnf/sl.xml +141 -0
  693. data/vendor/cldr/common/rbnf/sq.xml +75 -0
  694. data/vendor/cldr/common/rbnf/sr.xml +161 -0
  695. data/vendor/cldr/common/rbnf/sr_Latn.xml +160 -0
  696. data/vendor/cldr/common/rbnf/sv.xml +241 -0
  697. data/vendor/cldr/common/rbnf/ta.xml +71 -0
  698. data/vendor/cldr/common/rbnf/th.xml +57 -0
  699. data/vendor/cldr/common/rbnf/tr.xml +121 -0
  700. data/vendor/cldr/common/rbnf/uk.xml +159 -0
  701. data/vendor/cldr/common/rbnf/vi.xml +51 -0
  702. data/vendor/cldr/common/rbnf/zh.xml +146 -0
  703. data/vendor/cldr/common/rbnf/zh_Hant.xml +147 -0
  704. data/vendor/cldr/common/segments/el.xml +18 -0
  705. data/vendor/cldr/common/segments/en_US_POSIX.xml +22 -0
  706. data/vendor/cldr/common/segments/ja.xml +23 -0
  707. data/vendor/cldr/common/segments/root.xml +629 -0
  708. data/vendor/cldr/common/segments/th.xml +25 -0
  709. data/vendor/cldr/common/supplemental/characters.xml +491 -0
  710. data/vendor/cldr/common/supplemental/likelySubtags.xml +463 -0
  711. data/vendor/cldr/common/supplemental/metazoneInfo.xml +1409 -0
  712. data/vendor/cldr/common/supplemental/numberingSystems.xml +42 -0
  713. data/vendor/cldr/common/supplemental/plurals.xml +76 -0
  714. data/vendor/cldr/common/supplemental/postalCodeData.xml +166 -0
  715. data/vendor/cldr/common/supplemental/supplementalData.xml +5611 -0
  716. data/vendor/cldr/common/supplemental/supplementalMetadata.xml +744 -0
  717. data/vendor/cldr/common/supplemental/telephoneCodeData.xml +846 -0
  718. data/vendor/cldr/common/transforms/Amharic-Latin-BGN.xml +580 -0
  719. data/vendor/cldr/common/transforms/Any-Accents.xml +277 -0
  720. data/vendor/cldr/common/transforms/Any-Publishing.xml +29 -0
  721. data/vendor/cldr/common/transforms/Arabic-Latin-BGN.xml +234 -0
  722. data/vendor/cldr/common/transforms/Arabic-Latin.xml +138 -0
  723. data/vendor/cldr/common/transforms/Armenian-Latin-BGN.xml +285 -0
  724. data/vendor/cldr/common/transforms/Azerbaijani-Latin-BGN.xml +212 -0
  725. data/vendor/cldr/common/transforms/Belarusian-Latin-BGN.xml +285 -0
  726. data/vendor/cldr/common/transforms/Bengali-Devanagari.xml +14 -0
  727. data/vendor/cldr/common/transforms/Bengali-Gujarati.xml +14 -0
  728. data/vendor/cldr/common/transforms/Bengali-Gurmukhi.xml +14 -0
  729. data/vendor/cldr/common/transforms/Bengali-InterIndic.xml +106 -0
  730. data/vendor/cldr/common/transforms/Bengali-Kannada.xml +14 -0
  731. data/vendor/cldr/common/transforms/Bengali-Latin.xml +14 -0
  732. data/vendor/cldr/common/transforms/Bengali-Malayalam.xml +14 -0
  733. data/vendor/cldr/common/transforms/Bengali-Oriya.xml +14 -0
  734. data/vendor/cldr/common/transforms/Bengali-Tamil.xml +14 -0
  735. data/vendor/cldr/common/transforms/Bengali-Telugu.xml +14 -0
  736. data/vendor/cldr/common/transforms/Bulgarian-Latin-BGN.xml +271 -0
  737. data/vendor/cldr/common/transforms/CanadianAboriginal-Latin.xml +191 -0
  738. data/vendor/cldr/common/transforms/Cyrillic-Latin.xml +277 -0
  739. data/vendor/cldr/common/transforms/Devanagari-Bengali.xml +14 -0
  740. data/vendor/cldr/common/transforms/Devanagari-Gujarati.xml +14 -0
  741. data/vendor/cldr/common/transforms/Devanagari-Gurmukhi.xml +14 -0
  742. data/vendor/cldr/common/transforms/Devanagari-InterIndic.xml +119 -0
  743. data/vendor/cldr/common/transforms/Devanagari-Kannada.xml +14 -0
  744. data/vendor/cldr/common/transforms/Devanagari-Latin.xml +14 -0
  745. data/vendor/cldr/common/transforms/Devanagari-Malayalam.xml +14 -0
  746. data/vendor/cldr/common/transforms/Devanagari-Oriya.xml +14 -0
  747. data/vendor/cldr/common/transforms/Devanagari-Tamil.xml +14 -0
  748. data/vendor/cldr/common/transforms/Devanagari-Telugu.xml +14 -0
  749. data/vendor/cldr/common/transforms/Fullwidth-Halfwidth.xml +268 -0
  750. data/vendor/cldr/common/transforms/Georgian-Latin-BGN.xml +96 -0
  751. data/vendor/cldr/common/transforms/Georgian-Latin.xml +60 -0
  752. data/vendor/cldr/common/transforms/Greek-Latin-BGN.xml +481 -0
  753. data/vendor/cldr/common/transforms/Greek-Latin.xml +257 -0
  754. data/vendor/cldr/common/transforms/Greek_Latin_UNGEGN.xml +186 -0
  755. data/vendor/cldr/common/transforms/Gujarati-Bengali.xml +14 -0
  756. data/vendor/cldr/common/transforms/Gujarati-Devanagari.xml +14 -0
  757. data/vendor/cldr/common/transforms/Gujarati-Gurmukhi.xml +14 -0
  758. data/vendor/cldr/common/transforms/Gujarati-InterIndic.xml +95 -0
  759. data/vendor/cldr/common/transforms/Gujarati-Kannada.xml +14 -0
  760. data/vendor/cldr/common/transforms/Gujarati-Latin.xml +14 -0
  761. data/vendor/cldr/common/transforms/Gujarati-Malayalam.xml +14 -0
  762. data/vendor/cldr/common/transforms/Gujarati-Oriya.xml +14 -0
  763. data/vendor/cldr/common/transforms/Gujarati-Tamil.xml +14 -0
  764. data/vendor/cldr/common/transforms/Gujarati-Telugu.xml +14 -0
  765. data/vendor/cldr/common/transforms/Gurmukhi-Bengali.xml +14 -0
  766. data/vendor/cldr/common/transforms/Gurmukhi-Devanagari.xml +14 -0
  767. data/vendor/cldr/common/transforms/Gurmukhi-Gujarati.xml +14 -0
  768. data/vendor/cldr/common/transforms/Gurmukhi-InterIndic.xml +95 -0
  769. data/vendor/cldr/common/transforms/Gurmukhi-Kannada.xml +14 -0
  770. data/vendor/cldr/common/transforms/Gurmukhi-Latin.xml +14 -0
  771. data/vendor/cldr/common/transforms/Gurmukhi-Malayalam.xml +14 -0
  772. data/vendor/cldr/common/transforms/Gurmukhi-Oriya.xml +14 -0
  773. data/vendor/cldr/common/transforms/Gurmukhi-Tamil.xml +14 -0
  774. data/vendor/cldr/common/transforms/Gurmukhi-Telugu.xml +14 -0
  775. data/vendor/cldr/common/transforms/Han-Latin.xml +1439 -0
  776. data/vendor/cldr/common/transforms/Han-Spacedhan.xml +21 -0
  777. data/vendor/cldr/common/transforms/Hangul-Latin.xml +13 -0
  778. data/vendor/cldr/common/transforms/Hebrew-Latin-BGN.xml +132 -0
  779. data/vendor/cldr/common/transforms/Hebrew-Latin.xml +95 -0
  780. data/vendor/cldr/common/transforms/Hiragana-Katakana.xml +186 -0
  781. data/vendor/cldr/common/transforms/Hiragana-Latin.xml +16 -0
  782. data/vendor/cldr/common/transforms/InterIndic-Bengali.xml +142 -0
  783. data/vendor/cldr/common/transforms/InterIndic-Devanagari.xml +159 -0
  784. data/vendor/cldr/common/transforms/InterIndic-Gujarati.xml +143 -0
  785. data/vendor/cldr/common/transforms/InterIndic-Gurmukhi.xml +149 -0
  786. data/vendor/cldr/common/transforms/InterIndic-Kannada.xml +144 -0
  787. data/vendor/cldr/common/transforms/InterIndic-Latin.xml +497 -0
  788. data/vendor/cldr/common/transforms/InterIndic-Malayalam.xml +144 -0
  789. data/vendor/cldr/common/transforms/InterIndic-Oriya.xml +142 -0
  790. data/vendor/cldr/common/transforms/InterIndic-Tamil.xml +153 -0
  791. data/vendor/cldr/common/transforms/InterIndic-Telugu.xml +143 -0
  792. data/vendor/cldr/common/transforms/Jamo-Latin.xml +13 -0
  793. data/vendor/cldr/common/transforms/Kannada-Bengali.xml +14 -0
  794. data/vendor/cldr/common/transforms/Kannada-Devanagari.xml +14 -0
  795. data/vendor/cldr/common/transforms/Kannada-Gujarati.xml +14 -0
  796. data/vendor/cldr/common/transforms/Kannada-Gurmukhi.xml +14 -0
  797. data/vendor/cldr/common/transforms/Kannada-InterIndic.xml +94 -0
  798. data/vendor/cldr/common/transforms/Kannada-Latin.xml +14 -0
  799. data/vendor/cldr/common/transforms/Kannada-Malayalam.xml +14 -0
  800. data/vendor/cldr/common/transforms/Kannada-Oriya.xml +14 -0
  801. data/vendor/cldr/common/transforms/Kannada-Tamil.xml +14 -0
  802. data/vendor/cldr/common/transforms/Kannada-Telugu.xml +14 -0
  803. data/vendor/cldr/common/transforms/Katakana-Latin-BGN.xml +443 -0
  804. data/vendor/cldr/common/transforms/Kazakh-Latin-BGN.xml +366 -0
  805. data/vendor/cldr/common/transforms/Kirghiz-Latin-BGN.xml +235 -0
  806. data/vendor/cldr/common/transforms/Korean-Latin-BGN.xml +382 -0
  807. data/vendor/cldr/common/transforms/Latin-Armenian.xml +91 -0
  808. data/vendor/cldr/common/transforms/Latin-Bengali.xml +15 -0
  809. data/vendor/cldr/common/transforms/Latin-ConjoiningJamo.xml +522 -0
  810. data/vendor/cldr/common/transforms/Latin-Devanagari.xml +15 -0
  811. data/vendor/cldr/common/transforms/Latin-Ethiopic.xml +358 -0
  812. data/vendor/cldr/common/transforms/Latin-Gujarati.xml +15 -0
  813. data/vendor/cldr/common/transforms/Latin-Gurmukhi.xml +15 -0
  814. data/vendor/cldr/common/transforms/Latin-Hangul.xml +14 -0
  815. data/vendor/cldr/common/transforms/Latin-InterIndic.xml +384 -0
  816. data/vendor/cldr/common/transforms/Latin-Jamo.xml +13 -0
  817. data/vendor/cldr/common/transforms/Latin-Kannada.xml +15 -0
  818. data/vendor/cldr/common/transforms/Latin-Katakana.xml +389 -0
  819. data/vendor/cldr/common/transforms/Latin-Malayalam.xml +15 -0
  820. data/vendor/cldr/common/transforms/Latin-NumericPinyin.xml +36 -0
  821. data/vendor/cldr/common/transforms/Latin-Oriya.xml +15 -0
  822. data/vendor/cldr/common/transforms/Latin-Tamil.xml +15 -0
  823. data/vendor/cldr/common/transforms/Latin-Telugu.xml +15 -0
  824. data/vendor/cldr/common/transforms/Latin-Thai.xml +14 -0
  825. data/vendor/cldr/common/transforms/Macedonian-Latin-BGN.xml +198 -0
  826. data/vendor/cldr/common/transforms/Malayalam-Bengali.xml +14 -0
  827. data/vendor/cldr/common/transforms/Malayalam-Devanagari.xml +14 -0
  828. data/vendor/cldr/common/transforms/Malayalam-Gujarati.xml +14 -0
  829. data/vendor/cldr/common/transforms/Malayalam-Gurmukhi.xml +14 -0
  830. data/vendor/cldr/common/transforms/Malayalam-InterIndic.xml +88 -0
  831. data/vendor/cldr/common/transforms/Malayalam-Kannada.xml +14 -0
  832. data/vendor/cldr/common/transforms/Malayalam-Latin.xml +14 -0
  833. data/vendor/cldr/common/transforms/Malayalam-Oriya.xml +14 -0
  834. data/vendor/cldr/common/transforms/Malayalam-Tamil.xml +14 -0
  835. data/vendor/cldr/common/transforms/Malayalam-Telugu.xml +14 -0
  836. data/vendor/cldr/common/transforms/Maldivian-Latin-BGN.xml +141 -0
  837. data/vendor/cldr/common/transforms/Mongolian-Latin-BGN.xml +209 -0
  838. data/vendor/cldr/common/transforms/Oriya-Bengali.xml +14 -0
  839. data/vendor/cldr/common/transforms/Oriya-Devanagari.xml +14 -0
  840. data/vendor/cldr/common/transforms/Oriya-Gujarati.xml +14 -0
  841. data/vendor/cldr/common/transforms/Oriya-Gurmukhi.xml +14 -0
  842. data/vendor/cldr/common/transforms/Oriya-InterIndic.xml +98 -0
  843. data/vendor/cldr/common/transforms/Oriya-Kannada.xml +14 -0
  844. data/vendor/cldr/common/transforms/Oriya-Latin.xml +14 -0
  845. data/vendor/cldr/common/transforms/Oriya-Malayalam.xml +14 -0
  846. data/vendor/cldr/common/transforms/Oriya-Tamil.xml +14 -0
  847. data/vendor/cldr/common/transforms/Oriya-Telugu.xml +14 -0
  848. data/vendor/cldr/common/transforms/Pashto-Latin-BGN.xml +262 -0
  849. data/vendor/cldr/common/transforms/Persian-Latin-BGN.xml +233 -0
  850. data/vendor/cldr/common/transforms/Pinyin-NumericPinyin.xml +15 -0
  851. data/vendor/cldr/common/transforms/Russian-Latin-BGN.xml +347 -0
  852. data/vendor/cldr/common/transforms/Serbian-Latin-BGN.xml +136 -0
  853. data/vendor/cldr/common/transforms/Simplified-Traditional.xml +3576 -0
  854. data/vendor/cldr/common/transforms/Syriac-Latin.xml +59 -0
  855. data/vendor/cldr/common/transforms/Tamil-Bengali.xml +14 -0
  856. data/vendor/cldr/common/transforms/Tamil-Devanagari.xml +14 -0
  857. data/vendor/cldr/common/transforms/Tamil-Gujarati.xml +14 -0
  858. data/vendor/cldr/common/transforms/Tamil-Gurmukhi.xml +14 -0
  859. data/vendor/cldr/common/transforms/Tamil-InterIndic.xml +77 -0
  860. data/vendor/cldr/common/transforms/Tamil-Kannada.xml +14 -0
  861. data/vendor/cldr/common/transforms/Tamil-Latin.xml +14 -0
  862. data/vendor/cldr/common/transforms/Tamil-Malayalam.xml +14 -0
  863. data/vendor/cldr/common/transforms/Tamil-Oriya.xml +14 -0
  864. data/vendor/cldr/common/transforms/Tamil-Telugu.xml +14 -0
  865. data/vendor/cldr/common/transforms/Telugu-Bengali.xml +14 -0
  866. data/vendor/cldr/common/transforms/Telugu-Devanagari.xml +14 -0
  867. data/vendor/cldr/common/transforms/Telugu-Gujarati.xml +14 -0
  868. data/vendor/cldr/common/transforms/Telugu-Gurmukhi.xml +14 -0
  869. data/vendor/cldr/common/transforms/Telugu-InterIndic.xml +94 -0
  870. data/vendor/cldr/common/transforms/Telugu-Kannada.xml +14 -0
  871. data/vendor/cldr/common/transforms/Telugu-Latin.xml +14 -0
  872. data/vendor/cldr/common/transforms/Telugu-Malayalam.xml +14 -0
  873. data/vendor/cldr/common/transforms/Telugu-Oriya.xml +14 -0
  874. data/vendor/cldr/common/transforms/Telugu-Tamil.xml +14 -0
  875. data/vendor/cldr/common/transforms/Thaana-Latin.xml +440 -0
  876. data/vendor/cldr/common/transforms/Thai-Latin.xml +16 -0
  877. data/vendor/cldr/common/transforms/Thai-ThaiLogical.xml +23 -0
  878. data/vendor/cldr/common/transforms/Thai-ThaiSemi.xml +13 -0
  879. data/vendor/cldr/common/transforms/ThaiLogical-Latin.xml +153 -0
  880. data/vendor/cldr/common/transforms/Turkmen-Latin-BGN.xml +334 -0
  881. data/vendor/cldr/common/transforms/Ukrainian-Latin-BGN.xml +316 -0
  882. data/vendor/cldr/common/transforms/Uzbek-Latin-BGN.xml +290 -0
  883. metadata +906 -88
  884. data/test/cases/backend/cascade_test.rb +0 -66
  885. data/test/cases/backend/fallbacks_test.rb +0 -57
@@ -0,0 +1,15 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
3
+ <supplementalData>
4
+ <transforms>
5
+ <transform source="Latin" target="Bengali" direction="forward">
6
+ <tRule>::['.0-9A-Za-z~À-ÅÇ-ÏÑ-ÖÙ-Ýà-åç-ïñ-öù-ýÿ-ďĒ-ĥĨ-İĴ-ķĹ-ľŃ-ňŌ-őŔ-ťŨ-žƠ-ơƯ-ưǍ-ǜǞ-ǣǦ-ǭǰǴ-ǵǸ-țȞ-ȟȦ-ȳʔ́̃-̄̆-̇̐̔-̣̥̱́̈́̕΅-ΆΈ-ΊΌΎ-ΐά-ΰό-ώϓЃЌЎЙйѓќўӁ-ӂӐ-ӑӖ-ӗӢ-ӣӮ-ӯḀ-ẙẠ-ỹἁἃ-ἅἇἉἋ-ἍἏἑἓ-ἕἙἛ-Ἕἡἣ-ἥἧἩἫ-ἭἯἱἳ-ἵἷἹἻ-ἽἿὁὃ-ὅὉὋ-Ὅὑὓ-ὕὗὙὛὝὟὡὣ-ὥὧὩὫ-ὭὯάέήίόύώᾁᾃ-ᾅᾇᾉᾋ-ᾍᾏᾑᾓ-ᾕᾗᾙᾛ-ᾝᾟᾡᾣ-ᾥᾧᾩᾫ-ᾭᾯ-ᾱᾴᾸ-ᾹΆῄΈΉ῎ῐ-ῑΐῘ-ῙΊ῞ῠ-ῡΰῥῨ-ῩΎ-Ῥ΅ῴΌΏK-Å\uE04D\uE064];</tRule>
7
+ <tRule>::NFD;</tRule>
8
+ <tRule>::Lower;</tRule>
9
+ <tRule>::Latin-InterIndic;</tRule>
10
+ <tRule>::InterIndic-Bengali;</tRule>
11
+ <tRule>::NFC;</tRule>
12
+ </transform>
13
+ </transforms>
14
+ </supplementalData>
15
+
@@ -0,0 +1,522 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <!DOCTYPE supplementalData SYSTEM "../../common/dtd/ldmlSupplemental.dtd">
3
+ <supplementalData>
4
+ <transforms>
5
+ <transform source="Latin" target="ConjoiningJamo" direction="both" visibility="internal">
6
+ <comment># Follows the Ministry of Culture and Tourism romanization: see http://www.korea.net/korea/kor_loca.asp?code=A020303</comment>
7
+ <comment># http://www.unicode.org/cldr/transliteration_guidelines.html#Korean</comment>
8
+ <comment>#- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in</comment>
9
+ <comment>#- the INDEX file. This transliterator is, by itself, not</comment>
10
+ <comment>#- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or</comment>
11
+ <comment>#- inverses thereof.</comment>
12
+ <comment># Transliteration from Latin characters to Korean script is done in</comment>
13
+ <comment># two steps: Latin to Jamo, then Jamo to Hangul. The Jamo-Hangul</comment>
14
+ <comment># transliteration is done algorithmically following Unicode 3.0</comment>
15
+ <comment># section 3.11. This file implements the Latin to Jamo</comment>
16
+ <comment># transliteration using rules.</comment>
17
+ <comment># Jamo occupy the block 1100-11FF. Within this block there are three</comment>
18
+ <comment># groups of characters: initial consonants or choseong (I), medial</comment>
19
+ <comment># vowels or jungseong (M), and trailing consonants or jongseong (F).</comment>
20
+ <comment># Standard Korean syllables are of the form I+M+F*.</comment>
21
+ <comment># Section 3.11 describes the use of 'filler' jamo to convert</comment>
22
+ <comment># nonstandard syllables to standard form: the choseong filler 115F and</comment>
23
+ <comment># the junseong filler 1160. In this transliterator, we will not use</comment>
24
+ <comment># 115F or 1160.</comment>
25
+ <comment># We will, however, insert two 'null' jamo to make foreign words</comment>
26
+ <comment># conform to Korean syllable structure. These are the null initial</comment>
27
+ <comment># consonant 110B (IEUNG) and the null vowel 1173 (EU). In Latin text,</comment>
28
+ <comment># we will use the separator in order to disambiguate strings,</comment>
29
+ <comment># e.g. &quot;kan-ggan&quot; (initial GG) vs. &quot;kanggan&quot; (final NG + initial G).</comment>
30
+ <comment># We will not use all of the characters in the jamo block. We will</comment>
31
+ <comment># only use the 19 initials, 21 medials, and 27 finals possessing a</comment>
32
+ <comment># jamo short name as defined in section 4.4 of the Unicode book.</comment>
33
+ <comment># Rules of thumb. These guidelines provide the basic framework</comment>
34
+ <comment># for the rules. They are phrased in terms of Latin-Jamo transliteration.</comment>
35
+ <comment># The Jamo-Latin rules derive from these, since the Jamo-Latin rules are</comment>
36
+ <comment># just context-free transliteration of jamo to corresponding short names,</comment>
37
+ <comment># with the addition of separators to maintain round-trip integrity</comment>
38
+ <comment># in the context of the Latin-Jamo rules.</comment>
39
+ <comment># A sequence of vowels:</comment>
40
+ <comment># - Take the longest sequence you can. If there are too many, or you don't</comment>
41
+ <comment># have a starting consonant, introduce a 110B necessary.</comment>
42
+ <comment># A sequence of consonants.</comment>
43
+ <comment># - First join the double consonants: G + G -→ GG</comment>
44
+ <comment># - In the remaining list,</comment>
45
+ <comment># -- If there is no preceding vowel, take the first consonant, and insert EU</comment>
46
+ <comment># after it. Continue with the rest of the consonants.</comment>
47
+ <comment># -- If there is one consonant, attach to the following vowel</comment>
48
+ <comment># -- If there are two consonants and a following vowel, attach one to the</comment>
49
+ <comment># preceeding vowel, and one to the following vowel.</comment>
50
+ <comment># -- If there are more than two consonants, join the first two together if you</comment>
51
+ <comment># can: L + G =→ LG</comment>
52
+ <comment># -- If you still end up with more than 2 consonants, insert EU after the</comment>
53
+ <comment># first one, and continue with the rest of the consonants.</comment>
54
+ <comment>#----------------------------------------------------------------------</comment>
55
+ <comment># Variables</comment>
56
+ <comment># Some latin consonants or consonant pairs only occur as initials, and</comment>
57
+ <comment># some only as finals, but some occur as both. This makes some jamo</comment>
58
+ <comment># consonants ambiguous when transliterated into latin.</comment>
59
+
60
+ <comment># Initial only: IEUNG BB DD JJ R</comment>
61
+ <comment># Final only: BS GS L LB LG LH LM LP LS LT NG NH NJ</comment>
62
+ <comment># Initial and Final: B C D G GG H J K M N P S SS T</comment>
63
+ <tRule>$Gi = ᄀ;</tRule>
64
+ <tRule>$KKi = ᄁ;</tRule>
65
+ <tRule>$Ni = ᄂ;</tRule>
66
+ <tRule>$Di = ᄃ;</tRule>
67
+ <tRule>$TTi = ᄄ;</tRule>
68
+ <tRule>$Li = ᄅ;</tRule>
69
+ <tRule>$Mi = ᄆ;</tRule>
70
+ <tRule>$Bi = ᄇ;</tRule>
71
+ <tRule>$PPi = ᄈ;</tRule>
72
+ <tRule>$Si = ᄉ;</tRule>
73
+ <tRule>$SSi = ᄊ;</tRule>
74
+ <tRule>$IEUNG = ᄋ; # null initial, inserted during Latin-Jamo</tRule>
75
+ <tRule>$Ji = ᄌ;</tRule>
76
+ <tRule>$JJi = ᄍ;</tRule>
77
+ <tRule>$CHi = ᄎ;</tRule>
78
+ <tRule>$Ki = ᄏ;</tRule>
79
+ <tRule>$Ti = ᄐ;</tRule>
80
+ <tRule>$Pi = ᄑ;</tRule>
81
+ <tRule>$Hi = ᄒ;</tRule>
82
+
83
+ <tRule>$A = ᅡ;</tRule>
84
+ <tRule>$AE = ᅢ;</tRule>
85
+ <tRule>$YA = ᅣ;</tRule>
86
+ <tRule>$YAE = ᅤ;</tRule>
87
+ <tRule>$EO = ᅥ;</tRule>
88
+ <tRule>$E = ᅦ;</tRule>
89
+ <tRule>$YEO = ᅧ;</tRule>
90
+ <tRule>$YE = ᅨ;</tRule>
91
+ <tRule>$O = ᅩ;</tRule>
92
+ <tRule>$WA = ᅪ;</tRule>
93
+ <tRule>$WAE = ᅫ;</tRule>
94
+ <tRule>$OE = ᅬ;</tRule>
95
+ <tRule>$YO = ᅭ;</tRule>
96
+ <tRule>$U = ᅮ;</tRule>
97
+ <tRule>$WO = ᅯ;</tRule>
98
+ <tRule>$WE = ᅰ;</tRule>
99
+ <tRule>$WI = ᅱ;</tRule>
100
+ <tRule>$YU = ᅲ;</tRule>
101
+ <tRule>$EU = ᅳ; # null medial, inserted during Latin-Jamo</tRule>
102
+ <tRule>$UI = ᅴ;</tRule>
103
+ <tRule>$I = ᅵ;</tRule>
104
+
105
+ <tRule>$Gf = ᆨ;</tRule>
106
+ <tRule>$GGf = ᆩ;</tRule>
107
+ <tRule>$GS = ᆪ;</tRule>
108
+ <tRule>$Nf = ᆫ;</tRule>
109
+ <tRule>$NJ = ᆬ;</tRule>
110
+ <tRule>$NH = ᆭ;</tRule>
111
+ <tRule>$Df = ᆮ;</tRule>
112
+ <tRule>$L = ᆯ;</tRule>
113
+ <tRule>$LG = ᆰ;</tRule>
114
+ <tRule>$LM = ᆱ;</tRule>
115
+ <tRule>$LB = ᆲ;</tRule>
116
+ <tRule>$LS = ᆳ;</tRule>
117
+ <tRule>$LT = ᆴ;</tRule>
118
+ <tRule>$LP = ᆵ;</tRule>
119
+ <tRule>$LH = ᆶ;</tRule>
120
+ <tRule>$Mf = ᆷ;</tRule>
121
+ <tRule>$Bf = ᆸ;</tRule>
122
+ <tRule>$BS = ᆹ;</tRule>
123
+ <tRule>$Sf = ᆺ;</tRule>
124
+ <tRule>$SSf = ᆻ;</tRule>
125
+ <tRule>$NG = ᆼ;</tRule>
126
+ <tRule>$Jf = ᆽ;</tRule>
127
+ <tRule>$Cf = ᆾ;</tRule>
128
+ <tRule>$Kf = ᆿ;</tRule>
129
+ <tRule>$Tf = ᇀ;</tRule>
130
+ <tRule>$Pf = ᇁ;</tRule>
131
+ <tRule>$Hf = ᇂ;</tRule>
132
+
133
+ <tRule>$jamoInitial = [ᄀ-ᄒ];</tRule>
134
+ <tRule>$jamoMedial = [ᅡ-ᅵ];</tRule>
135
+ <tRule>$latinInitial = [bcdghjklmnprst];</tRule>
136
+
137
+ <comment># Any character in the latin transliteration of a medial</comment>
138
+ <tRule>$latinMedial = [aeiouwy];</tRule>
139
+
140
+ <comment># The last character of the latin transliteration of a medial</comment>
141
+ <tRule>$latinMedialEnd = [aeiou];</tRule>
142
+
143
+ <comment># Disambiguation separator</comment>
144
+ <tRule>$sep = \-;</tRule>
145
+
146
+ <comment>#----------------------------------------------------------------------</comment>
147
+ <comment># Jamo-Latin</comment>
148
+ <comment># Jamo to latin is relatively simple, since it is the latin that is</comment>
149
+ <comment># ambiguous. Most rules are straightforward, and we encode them below</comment>
150
+ <comment># as simple add-on back rule, e.g.:</comment>
151
+ <comment># $jamoMedial {bs} → $BS;</comment>
152
+ <comment># becomes</comment>
153
+ <comment># $jamoMedial {bs} ↔ $BS;</comment>
154
+ <comment># Furthermore, we don't care about the ordering for Jamo-Latin because</comment>
155
+ <comment># we are going from single characters, so we can very easily piggyback</comment>
156
+ <comment># on the Latin-Jamo.</comment>
157
+ <comment># The main issue with Jamo-Latin is when to insert separators.</comment>
158
+ <comment># Separators are inserted to obtain correct round trip behavior. For</comment>
159
+ <comment># example, the sequence Ki A Gf Gi E, if transliterated to &quot;kagge&quot;,</comment>
160
+ <comment># would then round trip to Ki A GGi E. To prevent this, we insert a</comment>
161
+ <comment># separator: &quot;kag-ge&quot;. IMPORTANT: The need for separators depends</comment>
162
+ <comment># very specifically on the behavior of the Latin-Jamo rules. A change</comment>
163
+ <comment># in the Latin-Jamo behavior can completely change the way the</comment>
164
+ <comment># separator insertion must be done.</comment>
165
+
166
+ <comment># First try to preserve actual separators in the jamo text by doubling</comment>
167
+ <comment># them. This fixes problems like:</comment>
168
+ <comment># (Di)(A)(Ji)(U)(NG)-(IEUNG)(YEO)(Nf)(Gi)(YEO)(L) =→ dajung-yeongyeol</comment>
169
+ <comment># =→ (Di)(A)(Ji)(U)(NG)(IEUNG)(YEO)(Nf)(Gi)(YEO)(L). This is optional</comment>
170
+ <comment># -- if we don't care about losing separators in the jamo, we can delete</comment>
171
+ <comment># this rule.</comment>
172
+ <tRule>$sep $sep ↔ $sep;</tRule>
173
+
174
+ <comment># Triple consonants. For three consonants &quot;axxx&quot; we insert a</comment>
175
+ <comment># separator between the first and second &quot;x&quot; if XXf, Xf, and Xi all</comment>
176
+ <comment># exist, and we have A Xf XXi. This prevents the reverse</comment>
177
+ <comment># transliteration to A XXf Xi.</comment>
178
+
179
+ <tRule>$sep ← $latinMedialEnd s {} $SSi;</tRule>
180
+
181
+ <comment># For vowels the rule is similar. If there is a vowel &quot;ae&quot; such that</comment>
182
+ <comment># &quot;a&quot; by itself and &quot;e&quot; by itself are vowels, then we want to map A E</comment>
183
+ <comment># to &quot;a-e&quot; so as not to round trip to AE. However, in the text Ki EO</comment>
184
+ <comment># IEUNG E we don't need to map to &quot;keo-e&quot;. &quot;keoe&quot; suffices. For</comment>
185
+ <comment># vowels of the form &quot;aei&quot;, both &quot;ae&quot; + &quot;i&quot; and &quot;a&quot; + &quot;ei&quot; must be</comment>
186
+ <comment># tested. NOTE: These rules used to have a left context of</comment>
187
+ <comment># $latinInitial instead of [^$latinMedial]. The problem with this is</comment>
188
+ <comment>sequences where an initial IEUNG is transliterated away:</comment>
189
+ <comment># (IEUNG)(A)(IEUNG)(EO) =→ aeo =→ (IEUNG)(AE)(IEUNG)(O)</comment>
190
+ <comment>Also problems in cases like gayeo, which needs to be gaye-o
191
+ The hard case is a chain, like aeoeu. Normally interpreted as ae oe u. So for a-eoeu, we have to insert $sep
192
+ # But, we don't insert between the o and the e.
193
+ # a ae
194
+ # e eo eu
195
+ # i
196
+ # o oe
197
+ # u
198
+ # ui
199
+ # wa wae we wi
200
+ # yae ya yeo ye yo yu
201
+ </comment>
202
+ <comment>#These are simple, since they can't chain. Note that we don't handle extreme cases like [ga][eo][e][o]</comment>
203
+
204
+ <tRule>$sep ← a {} [$E $EO $EU];</tRule>
205
+ <tRule>$sep ← [^aow] e {} [$O $OE];</tRule>
206
+ <tRule>$sep ← [^aowy] e {} [$U $UI];</tRule>
207
+ <tRule>$sep ← [^ey] o {} [$E $EO $EU];</tRule>
208
+ <tRule>$sep ← [^y] u {} [$I];</tRule>
209
+
210
+ <comment># Similar to the above, but with an intervening $IEUNG.</comment>
211
+
212
+ <tRule>$sep ← [^$latinMedial] [y] e {} $IEUNG [$O $OE];</tRule>
213
+ <tRule>$sep ← [^$latinMedial] e {} $IEUNG [$O $OE $U];</tRule>
214
+
215
+ <tRule>$sep ← [^$latinMedial] [o a] {} $IEUNG [$E $EO $EU];</tRule>
216
+ <tRule>$sep ← [^$latinMedial] [w y] a {} $IEUNG [$E $EO $EU];</tRule>
217
+
218
+ <comment># Single finals followed by IEUNG. The jamo sequence A Xf IEUNG E,</comment>
219
+ <comment># where Xi also exists, must be transliterated as &quot;ax-e&quot; to prevent</comment>
220
+ <comment># the round trip conversion to A Xi E.</comment>
221
+ <tRule>$sep ← $latinMedialEnd b {} $IEUNG $jamoMedial;</tRule>
222
+ <tRule>$sep ← $latinMedialEnd d {} $IEUNG $jamoMedial;</tRule>
223
+ <tRule>$sep ← $latinMedialEnd g {} $IEUNG $jamoMedial;</tRule>
224
+ <tRule>$sep ← $latinMedialEnd h {} $IEUNG $jamoMedial;</tRule>
225
+ <tRule>$sep ← $latinMedialEnd j {} $IEUNG $jamoMedial;</tRule>
226
+ <tRule>$sep ← $latinMedialEnd k {} $IEUNG $jamoMedial;</tRule>
227
+ <tRule>$sep ← $latinMedialEnd m {} $IEUNG $jamoMedial;</tRule>
228
+ <tRule>$sep ← $latinMedialEnd n {} $IEUNG $jamoMedial;</tRule>
229
+ <tRule>$sep ← $latinMedialEnd p {} $IEUNG $jamoMedial;</tRule>
230
+ <tRule>$sep ← $latinMedialEnd s {} $IEUNG $jamoMedial;</tRule>
231
+ <tRule>$sep ← $latinMedialEnd t {} $IEUNG $jamoMedial;</tRule>
232
+ <tRule>$sep ← $latinMedialEnd l {} $IEUNG $jamoMedial;</tRule>
233
+
234
+ <comment># Double finals followed by IEUNG. Similar to the single finals</comment>
235
+ <comment># followed by IEUNG. Any latin consonant pair X Y, between medials,</comment>
236
+ <comment># that we would split by Latin-Jamo, we must handle when it occurs as</comment>
237
+ <comment># part of A XYf IEUNG E, to prevent round trip conversion to A Xf Yi E</comment>
238
+ <tRule>$sep ← $latinMedialEnd b s {} $IEUNG $jamoMedial;</tRule>
239
+ <tRule>$sep ← $latinMedialEnd k k {} $IEUNG $jamoMedial;</tRule>
240
+ <tRule>$sep ← $latinMedialEnd g s {} $IEUNG $jamoMedial;</tRule>
241
+ <tRule>$sep ← $latinMedialEnd l b {} $IEUNG $jamoMedial;</tRule>
242
+ <tRule>$sep ← $latinMedialEnd l g {} $IEUNG $jamoMedial;</tRule>
243
+ <tRule>$sep ← $latinMedialEnd l h {} $IEUNG $jamoMedial;</tRule>
244
+ <tRule>$sep ← $latinMedialEnd l m {} $IEUNG $jamoMedial;</tRule>
245
+ <tRule>$sep ← $latinMedialEnd l p {} $IEUNG $jamoMedial;</tRule>
246
+ <tRule>$sep ← $latinMedialEnd l s {} $IEUNG $jamoMedial;</tRule>
247
+ <tRule>$sep ← $latinMedialEnd l t {} $IEUNG $jamoMedial;</tRule>
248
+ <tRule>$sep ← $latinMedialEnd n g {} $IEUNG $jamoMedial;</tRule>
249
+ <tRule>$sep ← $latinMedialEnd n h {} $IEUNG $jamoMedial;</tRule>
250
+ <tRule>$sep ← $latinMedialEnd n j {} $IEUNG $jamoMedial;</tRule>
251
+ <tRule>$sep ← $latinMedialEnd s s {} $IEUNG $jamoMedial;</tRule>
252
+ <tRule>$sep ← $latinMedialEnd ch {} $IEUNG $jamoMedial;</tRule>
253
+
254
+ <comment># Split doubles. Text of the form A Xi Xf E, where XXi also occurs,</comment>
255
+ <comment># we transliterate as &quot;ax-xe&quot; to prevent round trip transliteration as</comment>
256
+ <comment># A XXi E.</comment>
257
+
258
+ <tRule>$sep ← $latinMedialEnd j {} $Ji $jamoMedial;</tRule>
259
+ <tRule>$sep ← $latinMedialEnd k {} $Ki $jamoMedial;</tRule>
260
+ <tRule>$sep ← $latinMedialEnd s {} $Si $jamoMedial;</tRule>
261
+
262
+ <comment># XYY. This corresponds to the XYY rule in Latin-Jamo. By default</comment>
263
+ <comment># Latin-Jamo maps &quot;xyy&quot; to Xf YYi, to keep YY together. As a result,</comment>
264
+ <comment># &quot;xyy&quot; forms that correspond to XYf Yi must be transliterated as</comment>
265
+ <comment># &quot;xy-y&quot;.</comment>
266
+ <tRule>$sep ← $latinMedialEnd b s {} [$Si $SSi];</tRule>
267
+ <tRule>$sep ← $latinMedialEnd g s {} [$Si $SSi];</tRule>
268
+ <tRule>$sep ← $latinMedialEnd l b {} [$Bi];</tRule>
269
+ <tRule>$sep ← $latinMedialEnd l g {} [$Gi];</tRule>
270
+ <tRule>$sep ← $latinMedialEnd l s {} [$Si $SSi];</tRule>
271
+ <tRule>$sep ← $latinMedialEnd n g {} [$Gi];</tRule>
272
+ <tRule>$sep ← $latinMedialEnd n j {} [$Ji $JJi];</tRule>
273
+ <!-- <tRule>$sep ← $latinMedialEnd l {} [$PPi];</tRule> -->
274
+ <!-- <tRule>$sep ← $latinMedialEnd l {} [$TTi];</tRule> -->
275
+ <tRule>$sep ← $latinMedialEnd l p {} [$Pi];</tRule>
276
+ <tRule>$sep ← $latinMedialEnd l t {} [$Ti];</tRule>
277
+ <tRule>$sep ← $latinMedialEnd k {} [$KKi $Ki];</tRule>
278
+ <tRule>$sep ← $latinMedialEnd p {} $Pi;</tRule>
279
+ <tRule>$sep ← $latinMedialEnd t {} $Ti;</tRule>
280
+ <tRule>$sep ← $latinMedialEnd c {} [$Hi];</tRule>
281
+
282
+ <comment># Deletion of IEUNG is handled below.</comment>
283
+ <comment>#----------------------------------------------------------------------</comment>
284
+ <comment># Latin-Jamo</comment>
285
+ <comment># [Basic, context-free Jamo-Latin rules are embedded here too. See</comment>
286
+ <comment># above.]</comment>
287
+ <comment># Split digraphs: Text of the form 'axye', where 'xy' is a final</comment>
288
+ <comment># digraph, 'x' is a final (by itself), 'y' is an initial, and 'a' and</comment>
289
+ <comment># 'e' are medials, we want to transliterate this as A Xf Yi E rather</comment>
290
+ <comment># than A XYf IEUNG E. We do NOT include text of the form &quot;axxe&quot;,</comment>
291
+ <comment># since that is handled differently below. These rules are generated</comment>
292
+ <comment># programmatically from the jamo data.</comment>
293
+ <tRule>$jamoMedial {b s} $latinMedial → $Bf $Si;</tRule>
294
+ <tRule>$jamoMedial {g s} $latinMedial → $Gf $Si;</tRule>
295
+ <tRule>$jamoMedial {l b} $latinMedial → $L $Bi;</tRule>
296
+ <tRule>$jamoMedial {l g} $latinMedial → $L $Gi;</tRule>
297
+ <tRule>$jamoMedial {l h} $latinMedial → $L $Hi;</tRule>
298
+ <tRule>$jamoMedial {l m} $latinMedial → $L $Mi;</tRule>
299
+ <tRule>$jamoMedial {l p} $latinMedial → $L $Pi;</tRule>
300
+ <tRule>$jamoMedial {l s} $latinMedial → $L $Si;</tRule>
301
+ <tRule>$jamoMedial {l t} $latinMedial → $L $Ti;</tRule>
302
+ <tRule>$jamoMedial {n g} $latinMedial → $Nf $Gi;</tRule>
303
+ <tRule>$jamoMedial {n h} $latinMedial → $Nf $Hi;</tRule>
304
+ <tRule>$jamoMedial {n j} $latinMedial → $Nf $Ji;</tRule>
305
+
306
+ <comment># Single consonants are initials: Text of the form 'axe', where 'x'</comment>
307
+ <comment># can be an initial or a final, and 'a' and 'e' are medials, we want</comment>
308
+ <comment># to transliterate as A Xi E rather than A Xf IEUNG E.</comment>
309
+ <tRule>$jamoMedial {b} $latinMedial → $Bi;</tRule>
310
+ <tRule>$jamoMedial {ch} $latinMedial → $CHi;</tRule>
311
+ <tRule>$jamoMedial {d} $latinMedial → $Di;</tRule>
312
+ <tRule>$jamoMedial {g} $latinMedial → $Gi;</tRule>
313
+ <tRule>$jamoMedial {h} $latinMedial → $Hi;</tRule>
314
+ <tRule>$jamoMedial {j} $latinMedial → $Ji;</tRule>
315
+ <tRule>$jamoMedial {k} $latinMedial → $Ki;</tRule>
316
+ <tRule>$jamoMedial {m} $latinMedial → $Mi;</tRule>
317
+ <tRule>$jamoMedial {n} $latinMedial → $Ni;</tRule>
318
+ <tRule>$jamoMedial {p} $latinMedial → $Pi;</tRule>
319
+ <tRule>$jamoMedial {s} $latinMedial → $Si;</tRule>
320
+ <tRule>$jamoMedial {t} $latinMedial → $Ti;</tRule>
321
+ <tRule>$jamoMedial {l} $latinMedial → $Li;</tRule>
322
+
323
+ <comment># Doubled initials. The sequence &quot;axxe&quot;, where XX exists as an initial</comment>
324
+ <comment># (XXi), and also Xi and Xf exist (true of all digraphs XX), we want</comment>
325
+ <comment># to transliterate as A XXi E, rather than split to A Xf Xi E.</comment>
326
+ <tRule>$jamoMedial {p p} $latinMedial → $PPi;</tRule>
327
+ <tRule>$jamoMedial {t t} $latinMedial → $TTi;</tRule>
328
+ <tRule>$jamoMedial {j j} $latinMedial → $JJi;</tRule>
329
+ <tRule>$jamoMedial {k k} $latinMedial → $KKi;</tRule>
330
+ <tRule>$jamoMedial {s s} $latinMedial → $SSi;</tRule>
331
+
332
+ <comment># XYY. Because doubled consonants bind more strongly than XY</comment>
333
+ <comment># consonants, we must handle the sequence &quot;axyy&quot; specially. Here XYf</comment>
334
+ <comment># and YYi must exist. In these cases, we map to Xf YYi rather than</comment>
335
+ <comment># XYf.</comment>
336
+ <comment># However, there are two special cases.</comment>
337
+ <tRule>$jamoMedial {lp} p p → $LP;</tRule>
338
+ <tRule>$jamoMedial {lt} t t → $LT;</tRule>
339
+ <comment># End special cases</comment>
340
+
341
+ <tRule>$jamoMedial {b} s s → $Bf;</tRule>
342
+ <tRule>$jamoMedial {g} s s → $Gf;</tRule>
343
+ <tRule>$jamoMedial {l} b b → $L;</tRule>
344
+ <tRule>$jamoMedial {l} g g → $L;</tRule>
345
+ <tRule>$jamoMedial {l} s s → $L;</tRule>
346
+ <tRule>$jamoMedial {l} t t → $L;</tRule>
347
+ <tRule>$jamoMedial {l} p p → $L;</tRule>
348
+ <tRule>$jamoMedial {n} g g → $Nf;</tRule>
349
+ <tRule>$jamoMedial {n} j j → $Nf;</tRule>
350
+
351
+ <comment># Finals: Attach consonant with preceding medial to preceding medial.</comment>
352
+ <comment># Do this BEFORE mapping consonants to initials. Longer keys must</comment>
353
+ <comment># precede shorter keys that they start with, e.g., the rule for 'bs'</comment>
354
+ <comment># must precede 'b'.</comment>
355
+ <comment># [BASIC Jamo-Latin FINALS handled here. Order irrelevant within this</comment>
356
+ <comment># block for Jamo-Latin.]</comment>
357
+ <tRule>$jamoMedial {bs} ↔ $BS;</tRule>
358
+ <tRule>$jamoMedial {b} ↔ $Bf;</tRule>
359
+ <tRule>$jamoMedial {ch} ↔ $Cf;</tRule>
360
+ <tRule>$jamoMedial {c} → $Cf;</tRule>
361
+ <tRule>$jamoMedial {d} ↔ $Df;</tRule>
362
+ <tRule>$jamoMedial {kk} ↔ $GGf;</tRule>
363
+ <tRule>$jamoMedial {gs} ↔ $GS;</tRule>
364
+ <tRule>$jamoMedial {g} ↔ $Gf;</tRule>
365
+ <tRule>$jamoMedial {h} ↔ $Hf;</tRule>
366
+ <tRule>$jamoMedial {j} ↔ $Jf;</tRule>
367
+ <tRule>$jamoMedial {k} ↔ $Kf;</tRule>
368
+ <tRule>$jamoMedial {lb} ↔ $LB; $jamoMedial {lg} ↔ $LG;</tRule>
369
+ <tRule>$jamoMedial {lh} ↔ $LH;</tRule>
370
+ <tRule>$jamoMedial {lm} ↔ $LM;</tRule>
371
+ <tRule>$jamoMedial {lp} ↔ $LP;</tRule>
372
+ <tRule>$jamoMedial {ls} ↔ $LS;</tRule>
373
+ <tRule>$jamoMedial {lt} ↔ $LT;</tRule>
374
+ <tRule>$jamoMedial {l} ↔ $L;</tRule>
375
+ <tRule>$jamoMedial {m} ↔ $Mf;</tRule>
376
+ <tRule>$jamoMedial {ng} ↔ $NG;</tRule>
377
+ <tRule>$jamoMedial {nh} ↔ $NH;</tRule>
378
+ <tRule>$jamoMedial {nj} ↔ $NJ;</tRule>
379
+ <tRule>$jamoMedial {n} ↔ $Nf;</tRule>
380
+ <tRule>$jamoMedial {p} ↔ $Pf;</tRule>
381
+ <tRule>$jamoMedial {ss} ↔ $SSf;</tRule>
382
+ <tRule>$jamoMedial {s} ↔ $Sf;</tRule>
383
+ <tRule>$jamoMedial {t} ↔ $Tf;</tRule>
384
+
385
+ <comment># Initials: Attach single consonant to following medial. Do this</comment>
386
+ <comment># AFTER mapping finals. Longer keys must precede shorter keys that</comment>
387
+ <comment># they start with, e.g., the rule for 'gg' must precede 'g'.</comment>
388
+ <comment># [BASIC Jamo-Latin INITIALS handled here. Order irrelevant within</comment>
389
+ <comment># this block for Jamo-Latin.]</comment>
390
+ <tRule>{kk} $latinMedial ↔ $KKi;</tRule>
391
+ <tRule>{g} $latinMedial ↔ $Gi;</tRule>
392
+ <tRule>{n} $latinMedial ↔ $Ni;</tRule>
393
+ <tRule>{tt} $latinMedial ↔ $TTi;</tRule>
394
+ <tRule>{d} $latinMedial ↔ $Di;</tRule>
395
+ <tRule>{l} $latinMedial ↔ $Li;</tRule>
396
+ <tRule>{m} $latinMedial ↔ $Mi;</tRule>
397
+ <tRule>{pp} $latinMedial ↔ $PPi;</tRule>
398
+ <tRule>{b} $latinMedial ↔ $Bi;</tRule>
399
+ <tRule>{ss} $latinMedial ↔ $SSi;</tRule>
400
+ <tRule>{s} $latinMedial ↔ $Si;</tRule>
401
+ <tRule>{jj} $latinMedial ↔ $JJi;</tRule>
402
+ <tRule>{j} $latinMedial ↔ $Ji;</tRule>
403
+ <tRule>{ch} $latinMedial ↔ $CHi;</tRule>
404
+ <tRule>{c} $latinMedial → $CHi;</tRule>
405
+ <tRule>{k} $latinMedial ↔ $Ki;</tRule>
406
+ <tRule>{t} $latinMedial ↔ $Ti;</tRule>
407
+ <tRule>{p} $latinMedial ↔ $Pi;</tRule>
408
+ <tRule>{h} $latinMedial ↔ $Hi;</tRule>
409
+ <comment># 'r' in final position. Because of the equivalency of the 'l' and</comment>
410
+ <comment># 'r' jamo (the glyphs are the same), we try to provide the same</comment>
411
+ <comment># equivalency in Latin-Jamo. The 'l' to 'r' conversion is handled</comment>
412
+ <comment># below. If we see an 'r' in an apparent final position, treat it</comment>
413
+ <comment># like 'l'. For example, &quot;karka&quot; =→ Ki A R EU Ki A without this rule.</comment>
414
+ <comment># Instead, we want Ki A L Ki A.</comment>
415
+
416
+ <comment># Initial + Final: If we match the next rule, we have initial then</comment>
417
+ <comment># final consonant with no intervening medial. We insert the null</comment>
418
+ <comment># vowel BEFORE it to create a well-formed syllable. (In the next rule</comment>
419
+ <comment># we insert a null vowel AFTER an anomalous initial.)</comment>
420
+
421
+
422
+ <comment># Initial + X: This block matches an initial consonant not followed by</comment>
423
+ <comment># a medial. We insert the null vowel after it. We handle double</comment>
424
+ <comment># initials explicitly here; for single initial consonants we insert EU</comment>
425
+ <comment># (as Latin) after them and let standard rules do the rest.</comment>
426
+ <comment># BREAKS ROUND TRIP INTEGRITY</comment>
427
+
428
+ <tRule>kk → $KKi $EU;</tRule>
429
+ <tRule>tt → $TTi $EU;</tRule>
430
+ <tRule>pp → $PPi $EU;</tRule>
431
+ <tRule>ss → $SSi $EU;</tRule>
432
+ <tRule>jj → $JJi $EU;</tRule>
433
+ <tRule>ch → $CHi $EU;</tRule>
434
+ <tRule>([lbdghjkmnpst]) → | $1 eu;</tRule>
435
+
436
+ <comment># X + Final: Finally we have to deal with a consonant that can only be</comment>
437
+ <comment># interpreted as a final (not an initial) and which is preceded</comment>
438
+ <comment># neither by an initial nor a medial. It is the start of the</comment>
439
+ <comment># syllable, but cannot be. Most of these will already be handled by</comment>
440
+ <comment># the above rules. 'bs' splits into Bi EU Sf. Similar for 'gs' 'ng'</comment>
441
+ <comment># 'nh' 'nj'. The only problem is 'l' and digraphs starting with 'l'.</comment>
442
+ <comment># For this isolated case, we could add a null initial and medial,</comment>
443
+ <comment># which would give &quot;la&quot; =→ IEUNG EU L IEUNG A, for example. A more</comment>
444
+ <comment># economical solution is to transliterate isolated &quot;l&quot; (that is,</comment>
445
+ <comment># initial &quot;l&quot;) to &quot;r&quot;. (Other similar conversions of consonants that</comment>
446
+ <comment># occur neither as initials nor as finals are handled below.)</comment>
447
+ <tRule>l → | r;</tRule>
448
+
449
+ <comment># Medials. If a medial is preceded by an initial, then we proceed</comment>
450
+ <comment># normally. As usual, longer keys must precede shorter ones.</comment>
451
+ <comment># [BASIC Jamo-Latin MEDIALS handled here. Order irrelevant within</comment>
452
+ <comment># this block for Jamo-Latin.]</comment>
453
+ <comment>
454
+ a e i o u
455
+ ae
456
+ eo eu
457
+ oe
458
+ ui
459
+ wa we wi
460
+ wae
461
+ yae ya yeo ye yo yu
462
+ </comment>
463
+ <tRule>$jamoInitial {ae} ↔ $AE;</tRule>
464
+ <tRule>$jamoInitial {a} ↔ $A;</tRule>
465
+ <tRule>$jamoInitial {eo} ↔ $EO;</tRule>
466
+ <tRule>$jamoInitial {eu} ↔ $EU;</tRule>
467
+ <tRule>$jamoInitial {e} ↔ $E;</tRule>
468
+ <tRule>$jamoInitial {i} ↔ $I;</tRule>
469
+ <tRule>$jamoInitial {oe} ↔ $OE;</tRule>
470
+ <tRule>$jamoInitial {o} ↔ $O;</tRule>
471
+ <tRule>$jamoInitial {ui} ↔ $UI;</tRule>
472
+ <tRule>$jamoInitial {u} ↔ $U;</tRule>
473
+ <tRule>$jamoInitial {wae} ↔ $WAE;</tRule>
474
+ <tRule>$jamoInitial {wa} ↔ $WA;</tRule>
475
+ <tRule>$jamoInitial {wo} ↔ $WO;</tRule>
476
+ <tRule>$jamoInitial {we} ↔ $WE;</tRule>
477
+ <tRule>$jamoInitial {wi} ↔ $WI;</tRule>
478
+ <tRule>$jamoInitial {yae} ↔ $YAE;</tRule>
479
+ <tRule>$jamoInitial {ya} ↔ $YA;</tRule>
480
+ <tRule>$jamoInitial {yeo} ↔ $YEO;</tRule>
481
+ <tRule>$jamoInitial {ye} ↔ $YE;</tRule>
482
+ <tRule>$jamoInitial {yo} ↔ $YO;</tRule>
483
+ <tRule>$jamoInitial {yu} ↔ $YU;</tRule>
484
+
485
+ <comment># We may see an anomalous isolated 'w' or 'y'. In that case, we</comment>
486
+ <comment># interpret it as 'wi' and 'yu', respectively.</comment>
487
+ <comment># BREAKS ROUND TRIP INTEGRITY</comment>
488
+ <tRule>$jamoInitial {w} → | wi;</tRule>
489
+ <tRule>$jamoInitial {y} → | yu;</tRule>
490
+
491
+ <comment># Otherwise, insert a null consonant IEUNG before the medial (which is</comment>
492
+ <comment># still an untransliterated latin vowel).</comment>
493
+ <tRule>($latinMedial) → $IEUNG | $1;</tRule>
494
+
495
+ <comment># Convert non-jamo latin consonants to equivalents. These occur as</comment>
496
+ <comment># neither initials nor finals in jamo. 'l' occurs as a final, but not</comment>
497
+ <comment># an initial; it is handled above. The following letters (left hand</comment>
498
+ <comment># side) will never be output by Jamo-Latin.</comment>
499
+ <tRule>f → | p;</tRule>
500
+ <tRule>q → | k;</tRule>
501
+ <tRule>v → | b;</tRule>
502
+ <tRule>x → | ks;</tRule>
503
+ <tRule>z → | s;</tRule>
504
+ <tRule>r → | l;</tRule>
505
+ <tRule>c → | k;</tRule>
506
+
507
+ <comment># Delete separators (Latin-Jamo).</comment>
508
+ <tRule>$sep → ;</tRule>
509
+
510
+ <comment># Delete null consonants (Jamo-Latin). Do NOT delete null EU vowels,</comment>
511
+ <comment># since these may also occur in text.</comment>
512
+
513
+ <tRule>← $IEUNG;</tRule>
514
+ <comment>#- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in</comment>
515
+ <comment>#- the INDEX file. This transliterator is, by itself, not</comment>
516
+ <comment>#- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or</comment>
517
+ <comment>#- inverses thereof.</comment>
518
+ <comment># eof</comment>
519
+ </transform>
520
+ </transforms>
521
+ </supplementalData>
522
+