interscript 0.1.0 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +250 -17
  3. data/bin/interscript +36 -17
  4. data/bin/rspec +29 -0
  5. data/bin/setup +8 -0
  6. data/lib/__pycache__/g2pwrapper.cpython-38.pyc +0 -0
  7. data/lib/g2pwrapper.py +34 -0
  8. data/lib/interscript-opal.rb +2 -0
  9. data/lib/interscript.rb +138 -38
  10. data/lib/interscript/command.rb +28 -0
  11. data/lib/interscript/fs.rb +69 -0
  12. data/lib/interscript/mapping.rb +142 -0
  13. data/lib/interscript/opal.rb +23 -0
  14. data/lib/interscript/opal/maps.js.erb +7 -0
  15. data/lib/interscript/opal_map_translate.rb +12 -0
  16. data/lib/interscript/version.rb +1 -1
  17. data/lib/model-7 +0 -0
  18. data/lib/tha-pt-b-7 +0 -0
  19. data/maps/acadsin-zho-Hani-Latn-2002.yaml +38912 -0
  20. data/maps/alalc-aze-Cyrl-Latn-1997.yaml +141 -0
  21. data/maps/alalc-bel-cyrl-latn-1997.yaml +125 -0
  22. data/maps/alalc-ben-Beng-Latn-2017.yaml +130 -0
  23. data/maps/alalc-bul-Cyrl-Latn-1997.yaml +94 -0
  24. data/maps/alalc-ell-Grek-Latn-1997.yaml +625 -0
  25. data/maps/alalc-ell-Grek-Latn-2010.yaml +628 -0
  26. data/maps/alalc-kat-Geok-Latn-1997.yaml +112 -0
  27. data/maps/alalc-kat-Geor-Latn-1997.yaml +146 -0
  28. data/maps/alalc-kor-Hang-Latn-1997.yaml +94 -0
  29. data/maps/alalc-mkd-Cyrl-Latn-2013.yaml +103 -0
  30. data/maps/alalc-mkd-cyrl-latn-1997.yaml +114 -0
  31. data/maps/alalc-rus-Cyrl-Latn-1997.yaml +222 -0
  32. data/maps/alalc-rus-Cyrl-Latn-2012.yaml +162 -0
  33. data/maps/alalc-srp-Cyrl-Latn-1997.yaml +114 -0
  34. data/maps/alalc-srp-cyrl-latn-2013.yaml +135 -0
  35. data/maps/alalc-ukr-Cyrl-Latn-1997.yaml +141 -0
  36. data/maps/alalc-ukr-Cyrl-Latn-2011.yaml +16 -0
  37. data/maps/apcbg-bul-Cyrl-Latn-1995.yaml +283 -0
  38. data/maps/bas-rus-Cyrl-Latn-2017-bss.yaml +175 -0
  39. data/maps/bas-rus-Cyrl-Latn-2017-oss.yaml +169 -0
  40. data/maps/bgn-jpn-Hrkt-Latn-1962.yaml +294 -0
  41. data/maps/bgn-kor-Hang-Latn-1943.yaml +31 -0
  42. data/maps/bgn-kor-Kore-Latn-1943.yaml +31 -0
  43. data/maps/bgna-bul-Cyrl-Latn-2006.yaml +208 -0
  44. data/maps/bgna-bul-Cyrl-Latn-2009.yaml +208 -0
  45. data/maps/bgnpcgn-arm-Armn-Latn-1981.yaml +108 -0
  46. data/maps/bgnpcgn-aze-Cyrl-Latn-1993.yaml +104 -0
  47. data/maps/bgnpcgn-bak-Cyrl-Latn-2007.yaml +184 -0
  48. data/maps/bgnpcgn-bel-cyrl-latn-1979.yaml +285 -0
  49. data/maps/bgnpcgn-bul-Cyrl-Latn-1952.yaml +115 -0
  50. data/maps/bgnpcgn-bul-Cyrl-Latn-2013.yaml +38 -0
  51. data/maps/bgnpcgn-ell-Grek-Latn-1962.yaml +702 -0
  52. data/maps/bgnpcgn-ell-Grek-Latn-1996.yaml +20 -0
  53. data/maps/bgnpcgn-jpn-Hrkt-Latn-1976.yaml +257 -0
  54. data/maps/bgnpcgn-kat-Geor-Latn-1981.yaml +127 -0
  55. data/maps/bgnpcgn-kat-Geor-Latn-2009.yaml +43 -0
  56. data/maps/bgnpcgn-kor-Hang-Latn-kn-1945.yaml +253 -0
  57. data/maps/bgnpcgn-kor-Hang-Latn-rok-2011.yaml +48 -0
  58. data/maps/bgnpcgn-kor-Kore-Latn-rok-2011.yaml +48 -0
  59. data/maps/bgnpcgn-mkd-Cyrl-Latn-1981.yaml +159 -0
  60. data/maps/bgnpcgn-mkd-Cyrl-Latn-2013.yaml +190 -0
  61. data/maps/bgnpcgn-per-Arab-Latn-1956.yaml +93 -0
  62. data/maps/bgnpcgn-rus-Cyrl-Latn-1947.yaml +314 -0
  63. data/maps/bgnpcgn-srp-Cyrl-Latn-2005.yaml +166 -0
  64. data/maps/bgnpcgn-ukr-Cyrl-Latn-1965.yaml +163 -0
  65. data/maps/bgnpcgn-ukr-Cyrl-Latn-2019.yaml +208 -0
  66. data/maps/bgnpcgn-zho-Hans-Latn-1979.yaml +7456 -0
  67. data/maps/by-bel-Cyrl-Latn-1998.yaml +168 -0
  68. data/maps/by-bel-Cyrl-Latn-2007.yaml +115 -0
  69. data/maps/elot-ell-Grek-Latn-743-1982-tl.yaml +685 -0
  70. data/maps/elot-ell-Grek-Latn-743-1982-ts.yaml +681 -0
  71. data/maps/elot-ell-Grek-Latn-743-2001-tl.yaml +20 -0
  72. data/maps/elot-ell-Grek-Latn-743-2001-ts.yaml +32 -0
  73. data/maps/ggg-kat-Geor-Latn-2002.yaml +89 -0
  74. data/maps/gki-bel-cyrl-latn-1992.yaml +33 -0
  75. data/maps/gki-bel-cyrl-latn-2000.yaml +201 -0
  76. data/maps/gost-rus-cyrl-latn-16876-71-1983.yaml +186 -0
  77. data/maps/hk-yue-Hani-Latn-1888.yaml +38497 -0
  78. data/maps/icao-bel-Cyrl-Latn-9303.yaml +141 -0
  79. data/maps/icao-bul-Cyrl-Latn-9303.yaml +122 -0
  80. data/maps/icao-heb-Hebr-Latn-9303.yaml +151 -0
  81. data/maps/icao-mkd-Cyrl-Latn-9303.yaml +117 -0
  82. data/maps/icao-per-Arab-Latn-9303.yaml +104 -0
  83. data/maps/icao-rus-Cyrl-Latn-9303.yaml +118 -0
  84. data/maps/icao-srp-Cyrl-Latn-9303.yaml +117 -0
  85. data/maps/icao-ukr-Cyrl-Latn-9303.yaml +120 -0
  86. data/maps/iso-ell-Grek-Latn-843-1997-t1.yaml +610 -0
  87. data/maps/iso-ell-Grek-Latn-843-1997-t2.yaml +41 -0
  88. data/maps/iso-jpn-Hrkt-Latn-3602-1989.yaml +62 -0
  89. data/maps/iso-rus-Cyrl-Latn-9-1995.yaml +272 -0
  90. data/maps/iso-tha-Thai-Latn-11940-1998.yaml +109 -0
  91. data/maps/kp-kor-Hang-Latn-2002.yaml +901 -0
  92. data/maps/lshk-yue-Hani-Latn-jyutping-1993.yaml +44820 -0
  93. data/maps/mext-jpn-Hrkt-Latn-1954.yaml +411 -0
  94. data/maps/moct-kor-Hang-Latn-2000.yaml +803 -0
  95. data/maps/mofa-jpn-Hrkt-Latn-1989.yaml +541 -0
  96. data/maps/mvd-bel-Cyrl-Latn-2008.yaml +225 -0
  97. data/maps/mvd-bel-Cyrl-Latn-2010.yaml +63 -0
  98. data/maps/mvd-rus-Cyrl-Latn-2008.yaml +110 -0
  99. data/maps/mvd-rus-Cyrl-Latn-2010.yaml +37 -0
  100. data/maps/nil-kor-Hang-Hang-jamo.yaml +11193 -0
  101. data/maps/odni-aze-Cyrl-Latn-2015.yaml +144 -0
  102. data/maps/odni-bel-Cyrl-Latn-2015.yaml +148 -0
  103. data/maps/odni-bul-Cyrl-Latn-2015.yaml +96 -0
  104. data/maps/odni-kat-Geor-Latn-2015.yaml +88 -0
  105. data/maps/odni-kaz-Cyrl-Latn-2015.yaml +148 -0
  106. data/maps/odni-kir-Cyrl-Latn-2015.yaml +136 -0
  107. data/maps/odni-mkd-cyrl-latn-2015.yaml +122 -0
  108. data/maps/odni-rus-Cyrl-Latn-2015.yaml +77 -0
  109. data/maps/odni-srp-Cyrl-Latn-2015.yaml +129 -0
  110. data/maps/odni-tat-Cyrl-Latn-2015.yaml +142 -0
  111. data/maps/odni-tgk-Cyrl-Latn-2015.yaml +148 -0
  112. data/maps/odni-uig-Cyrl-Latn-2015.yaml +138 -0
  113. data/maps/odni-ukr-Cyrl-Latn-2015.yaml +157 -0
  114. data/maps/odni-uzb-Cyrl-Latn-2015.yaml +167 -0
  115. data/maps/royin-tha-Thai-Latn-1939-generic.yaml +90 -0
  116. data/maps/royin-tha-Thai-Latn-1968.yaml +179 -0
  117. data/maps/royin-tha-Thai-Latn-1999-chained.yaml +180 -0
  118. data/maps/royin-tha-Thai-Latn-1999.yaml +76 -0
  119. data/maps/sac-zho-Hans-Latn-1979.yaml +24759 -0
  120. data/maps/ses-ara-arab-latn-1930.yaml +275 -0
  121. data/maps/stategeocadastre-ukr-Cyrl-Latn-1993.yaml +222 -0
  122. data/maps/ua-ukr-Cyrl-Latn-1996.yaml +193 -0
  123. data/maps/un-ara-Arab-Latn-1971.yaml +127 -0
  124. data/maps/un-ara-Arab-Latn-1972.yaml +152 -0
  125. data/maps/un-ara-Arab-Latn-2017.yaml +383 -0
  126. data/maps/un-bel-Cyrl-Latn-2007.yaml +114 -0
  127. data/maps/un-ben-Beng-Latn-2016.yaml +534 -0
  128. data/maps/un-ell-Grek-Latn-1987-tl.yaml +32 -0
  129. data/maps/un-ell-Grek-Latn-1987-ts.yaml +20 -0
  130. data/maps/un-ell-Grek-Latn-phonetic-1987.yaml +780 -0
  131. data/maps/un-mon-Mong-Latn-2013.yaml +93 -0
  132. data/maps/un-rus-Cyrl-Latn-1987.yaml +166 -0
  133. data/maps/un-ukr-cyrl-latn-1998.yaml +30 -0
  134. data/maps/var-jpn-Hrkt-Latn-hepburn-1886.yaml +406 -0
  135. data/maps/var-jpn-Hrkt-Latn-hepburn-1954.yaml +386 -0
  136. data/maps/var-kor-Hang-Latn-mr-1939.yaml +1054 -0
  137. data/maps/var-kor-Kore-Hang-2013.yaml +59754 -0
  138. data/maps/var-kor-Kore-Latn-mr-1939.yaml +37 -0
  139. data/maps/var-tha-Thai-Thai-phonemic.yaml +59 -0
  140. data/maps/var-tha-Thai-Zsym-ipa.yaml +301 -0
  141. data/maps/var-zho-Hani-Latn-1979.yaml +38908 -0
  142. data/spec/interscript/mapping_spec.rb +42 -0
  143. data/spec/interscript_spec.rb +26 -0
  144. data/spec/spec_helper.rb +3 -0
  145. metadata +295 -11
@@ -0,0 +1,386 @@
1
+ ---
2
+ authority_id: var
3
+ id: hepburn-1954
4
+ language: jpn
5
+ source_script: Hrkt
6
+ destination_script: Latn
7
+ name: Modified Hepburn
8
+ url:
9
+ creation_date: 1954
10
+ adoption_date:
11
+ description:
12
+ This is a modified version of Hepburn romanization, which was
13
+ adopted by Kenkyusha's New Japanese-English Dictionary (3rd edition)
14
+ One crucial difference between Modified and Tranditional Hepburn is
15
+ that the ん/ン sound is always transliterated as n, even before the
16
+ letters b,m,p.
17
+
18
+ notes:
19
+
20
+ tests:
21
+ # - source: かんおう
22
+ # expected: kan'ō
23
+ # - source: かのう
24
+ # expected: kanō
25
+ # - source: きんゆう
26
+ # expected: kin'yū
27
+ # - source: とうきょう
28
+ # expected: tōkyō
29
+ # - source: がっこう
30
+ # expected: gakkō
31
+ - source: かごっま
32
+ expected: kagomma
33
+ # - source: ぽっぽっや
34
+ # expected: poppoyya
35
+ # - source: てっら
36
+ # expected: terra
37
+ # - source: にゃっほー
38
+ # expected: nyahhō
39
+
40
+ map:
41
+
42
+ rules:
43
+ - pattern: "([んン])(?=[あいうえおやゆよアイウエオヤユヨ])"
44
+ result: "\\1’"
45
+
46
+ postrules:
47
+ # Handling of っ/ッ
48
+ #
49
+ # The kana っ/ッ is a geminate marker.
50
+ # When followed by a consonant, repeat the first letter of
51
+ # the following syllable. Exception: the combination -cch-
52
+ # should be transliterated as -tch-
53
+ #
54
+ # If っ/ッ is not followed by a consonant, then it is usually
55
+ # phonetically realised as an abrupt stop or shorterning of
56
+ # the previous syllable. There is no documented or commonly
57
+ # accepted way to transliterate this sound.
58
+
59
+ - pattern: "[っッ]([BbDdFfGgHhJjKkLlMmNnPpQqRrSsTtVvWwXxYyZz])" # っ or ッ folloved by consonant
60
+ result: "\\1\\1"
61
+ - pattern: "[っッ]([Cc])" # ッ followed by ch-
62
+ result: "t\\1"
63
+ - pattern: "[っッ]" # drop all other っッ.
64
+ result: ""
65
+
66
+ # In Modified Hepburn, long vowels within the same morpheme are
67
+ # transliterated using a macron, i.e. ā, ī, ū, ē, ō.
68
+ #
69
+ # If two repeating letters are split across a morpheme boundary
70
+ # then they should not be changed into macron.
71
+ #
72
+ # Long vowels in loanwords are indicated with a macron instead
73
+ # of letter doubling.
74
+
75
+ - pattern: "a[ーa]"
76
+ result: "ā"
77
+ - pattern: "i[ーi]"
78
+ result: "ī"
79
+ - pattern: "u[ーu]"
80
+ result: "ū"
81
+ - pattern: "e[ーe]"
82
+ result: "ē"
83
+ - pattern: "o[ーo]"
84
+ result: "ō"
85
+
86
+ characters:
87
+
88
+ # Hiragana
89
+
90
+ "あ": "a"
91
+ "い": "i"
92
+ "う": "u"
93
+ "え": "e"
94
+ "お": "o"
95
+ "おう": "ō"
96
+
97
+ "か": "ka"
98
+ "き": "ki"
99
+ "く": "ku"
100
+ "け": "ke"
101
+ "こ": "ko"
102
+ "きゃ": "kya"
103
+ "きゅ": "kyu"
104
+ "きょ": "kyo"
105
+ "きょう": "kyō"
106
+ "こう": "kō"
107
+
108
+ "さ": "sa"
109
+ "し": "shi"
110
+ "す": "su"
111
+ "せ": "se"
112
+ "そ": "so"
113
+ "しゃ": "sha"
114
+ "しゅ": "shu"
115
+ "しょ": "sho"
116
+ "しょう": "shō"
117
+ "そう": "sō"
118
+
119
+ "た": "ta"
120
+ "ち": "chi"
121
+ "つ": "tsu"
122
+ "て": "te"
123
+ "と": "to"
124
+ "ちゃ": "cha"
125
+ "ちゅ": "chu"
126
+ "ちょ": "cho"
127
+ "とう": "tō"
128
+ "ちょう": "chō"
129
+
130
+ "な": "na"
131
+ "に": "ni"
132
+ "ぬ": "nu"
133
+ "ね": "ne"
134
+ "の": "no"
135
+ "にゃ": "nya"
136
+ "にゅ": "nyu"
137
+ "にょ": "nyo"
138
+ "にょう": "nyō"
139
+ "のう": "nō"
140
+
141
+ "は": "ha"
142
+ "ひ": "hi"
143
+ "ふ": "fu"
144
+ "へ": "he"
145
+ "ほ": "ho"
146
+ "ひゃ": "hya"
147
+ "ひゅ": "hyu"
148
+ "ひょ": "hyo"
149
+ "ひょう": "hyō"
150
+ "ほう": "hō"
151
+
152
+ "ま": "ma"
153
+ "み": "mi"
154
+ "む": "mu"
155
+ "め": "me"
156
+ "も": "mo"
157
+ "みゃ": "mya"
158
+ "みゅ": "myu"
159
+ "みょ": "myo"
160
+ "みょう": "myō"
161
+ "もう": "mō"
162
+
163
+ "や": "ya"
164
+ "ゆ": "yu"
165
+ "よ": "yo"
166
+ "よう": "yō"
167
+
168
+ "ら": "ra"
169
+ "り": "ri"
170
+ "る": "ru"
171
+ "れ": "re"
172
+ "ろ": "ro"
173
+ "りゃ": "rya"
174
+ "りゅ": "ryu"
175
+ "りょ": "ryo"
176
+ "りょう": "ryō"
177
+ "ろう": "rō"
178
+
179
+ "わ": "wa"
180
+ "を": "o"
181
+
182
+ "が": "ga"
183
+ "ぎ": "gi"
184
+ "ぐ": "gu"
185
+ "げ": "ge"
186
+ "ご": "go"
187
+ "ぎゃ": "gya"
188
+ "ぎゅ": "gyu"
189
+ "ぎょ": "gyo"
190
+ "ぎょう": "gyō"
191
+ "ごう": "gō"
192
+
193
+ "ざ": "za"
194
+ "じ": "ji"
195
+ "ず": "zu"
196
+ "ぜ": "ze"
197
+ "ぞ": "zo"
198
+ "じゃ": "ja"
199
+ "じゅ": "ju"
200
+ "じょ": "jo"
201
+ "じょう": "jō"
202
+ "ぞう": "zō"
203
+
204
+ "だ": "da"
205
+ "ぢ": "ji"
206
+ "づ": "zu"
207
+ "で": "de"
208
+ "ど": "do"
209
+ "ぢゃ": "ja"
210
+ "ぢゅ": "ju"
211
+ "ぢょ": "jo"
212
+ "どう": "dō"
213
+
214
+ "ば": "ba"
215
+ "び": "bi"
216
+ "ぶ": "bu"
217
+ "べ": "be"
218
+ "ぼ": "bo"
219
+ "びゃ": "bya"
220
+ "びゅ": "byu"
221
+ "びょ": "byo"
222
+ "びょう": "byō"
223
+ "ぼう": "bō"
224
+
225
+ "ぱ": "pa"
226
+ "ぴ": "pi"
227
+ "ぷ": "pu"
228
+ "ぺ": "pe"
229
+ "ぽ": "po"
230
+ "ぴゃ": "pya"
231
+ "ぴゅ": "pyu"
232
+ "ぴょ": "pyo"
233
+ "ぴょう": "pyō"
234
+ "ぽう": "pō"
235
+
236
+ "ん": "n"
237
+
238
+ # Katakana
239
+
240
+ "ア": "a"
241
+ "イ": "i"
242
+ "ウ": "u"
243
+ "エ": "e"
244
+ "オ": "o"
245
+ "オウ": "ō"
246
+
247
+ "カ": "ka"
248
+ "キ": "ki"
249
+ "ク": "ku"
250
+ "ケ": "ke"
251
+ "コ": "ko"
252
+ "キャ": "kya"
253
+ "キュ": "kyu"
254
+ "キョ": "kyo"
255
+ "キョウ": "kyō"
256
+ "コウ": "kō"
257
+
258
+ "サ": "sa"
259
+ "シ": "shi"
260
+ "ス": "su"
261
+ "セ": "se"
262
+ "ソ": "so"
263
+ "シャ": "sha"
264
+ "シュ": "shu"
265
+ "ショ": "sho"
266
+ "ショウ": "shō"
267
+ "ソウ": "sō"
268
+
269
+ "タ": "ta"
270
+ "チ": "chi"
271
+ "ツ": "tsu"
272
+ "テ": "te"
273
+ "ト": "to"
274
+ "チャ": "cha"
275
+ "チュ": "chu"
276
+ "チョ": "cho"
277
+ "チョウ": "chō"
278
+ "トウ": "tō"
279
+
280
+ "ナ": "na"
281
+ "ニ": "ni"
282
+ "ヌ": "nu"
283
+ "ネ": "ne"
284
+ "ノ": "no"
285
+ "ニャ": "nya"
286
+ "ニュ": "nyu"
287
+ "ニョ": "nyo"
288
+ "ニョウ": "nyō"
289
+ "ノウ": "nō"
290
+
291
+ "ハ": "ha"
292
+ "ヒ": "hi"
293
+ "フ": "fu"
294
+ "ヘ": "he"
295
+ "ホ": "ho"
296
+ "ヒャ": "hya"
297
+ "ヒュ": "hyu"
298
+ "ヒョ": "hyo"
299
+ "ヒョウ": "hyō"
300
+ "ホウ": "hō"
301
+
302
+ "マ": "ma"
303
+ "ミ": "mi"
304
+ "ム": "mu"
305
+ "メ": "me"
306
+ "モ": "mo"
307
+ "ミャ": "mya"
308
+ "ミュ": "myu"
309
+ "ミョ": "myo"
310
+ "ミョウ": "myō"
311
+ "モウ": "mō"
312
+
313
+ "ヤ": "ya"
314
+ "ユ": "yu"
315
+ "ヨ": "yo"
316
+ "ヨウ": "yō"
317
+
318
+ "ラ": "ra"
319
+ "リ": "ri"
320
+ "ル": "ru"
321
+ "レ": "re"
322
+ "ロ": "ro"
323
+ "リャ": "rya"
324
+ "リュ": "ryu"
325
+ "リョ": "ryo"
326
+ "リョウ": "ryō"
327
+ "ロウ": "rō"
328
+
329
+ "ワ": "wa"
330
+ "ヲ": "o"
331
+
332
+ "ガ": "ga"
333
+ "ギ": "gi"
334
+ "グ": "gu"
335
+ "ゲ": "ge"
336
+ "ゴ": "go"
337
+ "ギャ": "gya"
338
+ "ギュ": "gyu"
339
+ "ギョ": "gyo"
340
+ "ギョウ": "gyō"
341
+ "ゴウ": "gō"
342
+
343
+ "ザ": "za"
344
+ "ジ": "ji"
345
+ "ズ": "zu"
346
+ "ゼ": "ze"
347
+ "ゾ": "zo"
348
+ "ジャ": "ja"
349
+ "ジュ": "ju"
350
+ "ジョ": "jo"
351
+ "ジョウ": "jō"
352
+ "ゾウ": "zō"
353
+
354
+ "ダ": "da"
355
+ "ヂ": "ji"
356
+ "ヅ": "zu"
357
+ "デ": "de"
358
+ "ド": "do"
359
+ "ヂャ": "ja"
360
+ "ヂュ": "ju"
361
+ "ヂョ": "jo"
362
+ "ドウ": "dō"
363
+
364
+ "バ": "ba"
365
+ "ビ": "bi"
366
+ "ブ": "bu"
367
+ "ベ": "be"
368
+ "ボ": "bo"
369
+ "ビャ": "bya"
370
+ "ビュ": "byu"
371
+ "ビョ": "byo"
372
+ "ビョウ": "byō"
373
+ "ボウ": "bō"
374
+
375
+ "パ": "pa"
376
+ "ピ": "pi"
377
+ "プ": "pu"
378
+ "ペ": "pe"
379
+ "ポ": "po"
380
+ "ピャ": "pya"
381
+ "ピュ": "pyu"
382
+ "ピョ": "pyo"
383
+ "ピョウ": "pyō"
384
+ "ポウ": "pō"
385
+
386
+ "ン": "n"
@@ -0,0 +1,1054 @@
1
+ ---
2
+ authority_id: bgn
3
+ id: mr-1939
4
+ language: kor
5
+ source_script: Hang
6
+ destination_script: Latn
7
+ name: McCune-Reischauer System
8
+ url:
9
+ creation_date: 1939
10
+ adoption_date:
11
+ description:
12
+ E. O. Reischauer and G. M. McCune
13
+ The Romanization of the Korean Language Based on Its Phonetic Structure. XXIX:1-55.
14
+ Korea Branch of the Royal Asiatic Society. Volume XXIX (PDF)
15
+ notes:
16
+ This file only handles Hangul to Latin.
17
+
18
+ tests:
19
+ - source: "구경"
20
+ expected: "kugyŏng"
21
+ - source: "금광"
22
+ expected: "kŭmgwang"
23
+ - source: "뎐기"
24
+ expected: "chŏn’gi"
25
+ - source: "양국"
26
+ expected: "yangguk"
27
+ - source: "물건"
28
+ expected: "mulgŏn"
29
+ - source: "국민"
30
+ expected: "kungmin"
31
+ - source: "막내"
32
+ expected: "mangnae"
33
+ - source: "작란"
34
+ expected: "changnan"
35
+ - source: "락심"
36
+ expected: "naksim"
37
+ - source: "합계"
38
+ expected: "hapkye"
39
+ - source: "각각"
40
+ expected: "kakkak"
41
+ - source: "속히"
42
+ expected: "sokhi"
43
+ - source: "독"
44
+ expected: "tok"
45
+ - source: "니"
46
+ expected: "i"
47
+ - source: "녀인"
48
+ expected: "yŏin"
49
+ - source: "녯적"
50
+ expected: "yetchŏk"
51
+ - source: "날"
52
+ expected: "nal"
53
+ - source: "농민"
54
+ expected: "nongmin"
55
+ - source: "얼는"
56
+ expected: "ŏllŭn"
57
+ - source: "련락"
58
+ expected: "yŏllak"
59
+ - source: "하나님"
60
+ expected: "hananim"
61
+ - source: "한문"
62
+ expected: "hanmun"
63
+ - source: "산"
64
+ expected: "san"
65
+ - source: "디방"
66
+ expected: "chibang"
67
+ - source: "다섯"
68
+ expected: "tasŏt"
69
+ - source: "뎐디"
70
+ expected: "chŏnji"
71
+ - source: "슈뎐"
72
+ expected: "sujŏn"
73
+ - source: "감뎡"
74
+ expected: "kamjŏng"
75
+ - source: "당됴"
76
+ expected: "tangjo"
77
+ - source: "무당"
78
+ expected: "mudang"
79
+ - source: "어드메"
80
+ expected: "ŏdŭme"
81
+ - source: "삼등"
82
+ expected: "samdŭng"
83
+ - source: "만두"
84
+ expected: "mandu"
85
+ - source: "앵도"
86
+ expected: "aengdo"
87
+ - source: "약됴"
88
+ expected: "yakcho"
89
+ - source: "박디"
90
+ expected: "pakchi"
91
+ - source: "협뎡"
92
+ expected: "hyŏpchŏng"
93
+ - source: "일뎡"
94
+ expected: "ilchŏng"
95
+ - source: "놋뎜"
96
+ expected: "notchŏm"
97
+ - source: "벽돌"
98
+ expected: "pyŏktol"
99
+ - source: "합동"
100
+ expected: "haptong"
101
+ - source: "열도"
102
+ expected: "yŏlto"
103
+ - source: "잇다가"
104
+ expected: "ittaga"
105
+ - source: "린근"
106
+ expected: "in’gŭn"
107
+ - source: "력사"
108
+ expected: "yŏksa"
109
+ - source: "령반"
110
+ expected: "yŏngban"
111
+ - source: "락뎨"
112
+ expected: "nakche"
113
+ - source: "마루"
114
+ expected: "maru"
115
+ - source: "일홈"
116
+ expected: "irhom"
117
+ - source: "할머니"
118
+ expected: "halmŏni"
119
+ - source: "신라"
120
+ expected: "silla"
121
+ - source: "물리학"
122
+ expected: "mullihak"
123
+ - source: "죵로"
124
+ expected: "chongno"
125
+ - source: "독립"
126
+ expected: "tongnip"
127
+ - source: "십리"
128
+ expected: "simni"
129
+ - source: "발"
130
+ expected: "pal"
131
+ - source: "말"
132
+ expected: "mal"
133
+ - source: "나무"
134
+ expected: "namu"
135
+ - source: "음식"
136
+ expected: "ŭmsik"
137
+ - source: "밤"
138
+ expected: "pam"
139
+ - source: "사발"
140
+ expected: "sabal"
141
+ - source: "담배"
142
+ expected: "tambae"
143
+ - source: "준비"
144
+ expected: "chunbi"
145
+ - source: "갈비"
146
+ expected: "kalbi"
147
+ - source: "십명"
148
+ expected: "simmyŏng"
149
+ - source: "입내"
150
+ expected: "imnae"
151
+ - source: "셥리"
152
+ expected: "sŏmni"
153
+ - source: "답장"
154
+ expected: "tapchang"
155
+ - source: "약방"
156
+ expected: "yakpang"
157
+ - source: "뎝시"
158
+ expected: "chŏpsi"
159
+ - source: "밥"
160
+ expected: "pap"
161
+ - source: "쉽다"
162
+ expected: "shwipta"
163
+ - source: "손쉽다"
164
+ expected: "sonshwipta"
165
+ - source: "목사"
166
+ expected: "moksa"
167
+ - source: "랭슈"
168
+ expected: "naengsu"
169
+ - source: "무식"
170
+ expected: "musik"
171
+ - source: "겻슌"
172
+ expected: "kyŏssun"
173
+ - source: "갓사기"
174
+ expected: "kassagi"
175
+ - source: "갓모"
176
+ expected: "kanmo"
177
+ - source: "잣나비"
178
+ expected: "channabi"
179
+ - source: "닷량"
180
+ expected: "tannyang"
181
+ - source: "잇해"
182
+ expected: "ithae"
183
+ - source: "졋통"
184
+ expected: "chŏtt’ong"
185
+ - source: "낫잠"
186
+ expected: "natcham"
187
+ - source: "붓채"
188
+ expected: "putch’ae"
189
+ - source: "갓방"
190
+ expected: "katpang"
191
+ - source: "엿가락"
192
+ expected: "yŏtkarak"
193
+ # - source: "밋음" # Obsolete
194
+ # expected: "midŭm"
195
+ # - source: "깃브다" # Obsolete
196
+ # expected: "kippŭda"
197
+ # - source: "엇개" # Obsolete
198
+ # expected: "ŏkkae"
199
+ - source: "갓"
200
+ expected: "kat"
201
+ - source: "알"
202
+ expected: "al"
203
+ - source: "독일"
204
+ expected: "togil"
205
+ - source: "농민"
206
+ expected: "nongmin"
207
+ - source: "방"
208
+ expected: "pang"
209
+ - source: "장"
210
+ expected: "chang"
211
+ - source: "도쟝"
212
+ expected: "tojang"
213
+ - source: "감자"
214
+ expected: "kamja"
215
+ - source: "민족"
216
+ expected: "minjok"
217
+ - source: "명지"
218
+ expected: "myŏngji"
219
+ - source: "목쟝"
220
+ expected: "mokchang"
221
+ - source: "압집"
222
+ expected: "apchip"
223
+ - source: "물질"
224
+ expected: "mulchil"
225
+ - source: "차"
226
+ expected: "ch’a"
227
+ - source: "김치"
228
+ expected: "kimch’i"
229
+ - source: "코"
230
+ expected: "k’o"
231
+ - source: "왜콩"
232
+ expected: "waek’ong"
233
+ - source: "텬당"
234
+ expected: "ch’ŏndang"
235
+ - source: "타산"
236
+ expected: "t’asan"
237
+ - source: "토끼"
238
+ expected: "t’okki"
239
+ - source: "동텰"
240
+ expected: "tongch’ŏl"
241
+ - source: "조타"
242
+ expected: "chot’a"
243
+ - source: "팔"
244
+ expected: "p’al"
245
+ - source: "셔판"
246
+ expected: "sŏp’an"
247
+ - source: "하나"
248
+ expected: "hana"
249
+ - source: "만히"
250
+ expected: "manhi"
251
+ - source: "학회"
252
+ expected: "hakhoe"
253
+ - source: "깍지"
254
+ expected: "kkakchi"
255
+ - source: "박꼿"
256
+ expected: "pakkot"
257
+ - source: "땅"
258
+ expected: "ttang"
259
+ - source: "허리띠"
260
+ expected: "hŏritti"
261
+ - source: "엿때"
262
+ expected: "yŏttae"
263
+ - source: "뿌리"
264
+ expected: "ppuri"
265
+ - source: "쇠뿔"
266
+ expected: "soeppul"
267
+ - source: "쓰다"
268
+ expected: "ssŭda"
269
+ - source: "콩씨"
270
+ expected: "k’ongssi"
271
+ - source: "좁쌀"
272
+ expected: "chopssal"
273
+ - source: "갓싸기"
274
+ expected: "kassagi"
275
+ - source: "짜르다"
276
+ expected: "tcharŭda"
277
+ - source: "꼼짝"
278
+ expected: "kkomtchak"
279
+ - source: "밋짝"
280
+ expected: "mitchak"
281
+ - source: "갉이"
282
+ expected: "kalgi"
283
+ - source: "멁금하다"
284
+ expected: "mŏlgŭmhada" # Example gives mŏlk-, but spec requires mŏlg-
285
+ - source: "얽매다"
286
+ expected: "ŏngmaeda"
287
+ - source: "붉히다"
288
+ expected: "pulkhida"
289
+ - source: "긁적대다"
290
+ expected: "kŭkchŏktaeda"
291
+ - source: "닭"
292
+ expected: "tak"
293
+ - source: "넓이"
294
+ expected: "nŏlbi"
295
+ - source: "얇판하다"
296
+ expected: "yalp’anhada"
297
+ - source: "넓나물"
298
+ expected: "nŏmnamul"
299
+ - source: "슯흠"
300
+ expected: "sŭlphŭm"
301
+ - source: "넓치"
302
+ expected: "nŏpch’i"
303
+ - source: "얾마가다"
304
+ expected: "ŏlmagada"
305
+ - source: "긂기다"
306
+ expected: "kŭmgida"
307
+
308
+
309
+ map:
310
+ character_separator: ""
311
+ word_separator: " "
312
+ title_case: False
313
+ inherit: nil-kor-Hang-Hang-jamo
314
+
315
+ rules:
316
+
317
+ postrules:
318
+
319
+ # Add space to the two ends of the string for easier word boundary handling
320
+ - pattern: "^"
321
+ result: " "
322
+ - pattern: "$"
323
+ result: " "
324
+
325
+ # HANGUL JONGSEONG SSANGKIYEOK
326
+ - pattern: "ᆩ(-?)ᄋ"
327
+ result: "ᆨ\\1ᄁ"
328
+ - pattern: "ᆩ(-?)"
329
+ result: "ᆨ\\1"
330
+
331
+ # HANGUL JONGSEONG SSANGKIYEOK
332
+ - pattern: "ᆪ(-?)ᄋ"
333
+ result: "ᆨ\\1ᄉ"
334
+ - pattern: "ᆪ(-?)"
335
+ result: "ᆨ\\1"
336
+
337
+ # HANGUL JONGSEONG NIEUN-CIEUC
338
+ - pattern: "ᆬ(-?)ᄋ"
339
+ result: "ᆫ\\1ᄌ"
340
+ - pattern: "ᆬ(-?)"
341
+ result: "ᆫ\\1"
342
+
343
+ # HANGUL JONGSEONG NIEUN-CIEUC
344
+ - pattern: "ᆭ(-?)ᄀ"
345
+ result: "ᆫ\\1ᄏ"
346
+ - pattern: "ᆭ(-?)ᄃ"
347
+ result: "ᆫ\\1ᄐ"
348
+ - pattern: "ᆭ(-?)ᄇ"
349
+ result: "ᆫ\\1ᄑ"
350
+ - pattern: "ᆭ(-?)ᄌ"
351
+ result: "ᆫ\\1ᄎ"
352
+ - pattern: "ᆭ(-?)"
353
+ result: "ᆫ\\1"
354
+
355
+ # HANGUL JONGSEONG TIEUT
356
+ - pattern: "ᆮ(-?)(?=[ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄌᄍᄎᄏᄐᄑᄒ])"
357
+ result: "ᆺ\\1"
358
+
359
+ # HANGUL JONGSEONG RIEUL-SIOS
360
+ - pattern: "ᆳ(-?)ᄋ"
361
+ result: "ᆯ\\1ᄉ"
362
+ - pattern: "ᆳ(-?)"
363
+ result: "ᆯ\\1"
364
+
365
+ # HANGUL JONGSEONG RIEUL-THIEUTH
366
+ - pattern: "ᆴ(-?)ᄋ"
367
+ result: "ᆯ\\1ᄐ"
368
+ - pattern: "ᆴ(-?)"
369
+ result: "ᆯ\\1"
370
+
371
+ # HANGUL JONGSEONG RIEUL-PHIEUPH
372
+ - pattern: "ᆵ(-?)ᄋ"
373
+ result: "ᆯ\\1ᄑ"
374
+ - pattern: "ᆵ(-?)(?=[ᄃᄄᄐ])"
375
+ result: "ᆯ\\1"
376
+ - pattern: "ᆵ(-?)"
377
+ result: "ᄇ\\1"
378
+
379
+ # HANGUL JONGSEONG RIEUL-HIEUH
380
+ - pattern: "ᆶ(-?)ᄀ"
381
+ result: "ᆯ\\1ᄏ"
382
+ - pattern: "ᆶ(-?)ᄃ"
383
+ result: "ᆯ\\1ᄐ"
384
+ - pattern: "ᆶ(-?)ᄇ"
385
+ result: "ᆯ\\1ᄑ"
386
+ - pattern: "ᆶ(-?)ᄌ"
387
+ result: "ᆯ\\1ᄎ"
388
+ - pattern: "ᆶ(-?)"
389
+ result: "ᆯ\\1"
390
+
391
+ # HANGUL JONGSEONG PIEUP-SIOS
392
+ - pattern: "ᆹ(-?)ᄋ"
393
+ result: "ᄇ\\1ᄉ"
394
+ - pattern: "ᆹ(-?)"
395
+ result: "ᄇ\\1"
396
+
397
+ # HANGUL JONGSEONG SSANG-SIOS
398
+ - pattern: "ᆻ(-?)ᄋ"
399
+ result: "ᆺ\\1ᄊ"
400
+ - pattern: "ᆻ(-?)"
401
+ result: "ᆺ\\1"
402
+
403
+ # HANGUL JONGSEONG CIEUC
404
+ - pattern: "ᆽ(-?)ᄋ"
405
+ result: "ᆺ\\1ᄌ"
406
+ - pattern: "ᆽ(-?)"
407
+ result: "ᆺ\\1"
408
+
409
+ # HANGUL JONGSEONG CHIEUCH
410
+ - pattern: "ᆾ(-?)ᄋ"
411
+ result: "ᆺ\\1ᄎ"
412
+ - pattern: "ᆾ(-?)"
413
+ result: "ᆺ\\1"
414
+
415
+ # HANGUL JONGSEONG KHIEUKH
416
+ - pattern: "ᆿ(-?)ᄋ"
417
+ result: "ᆨ\\1ᄏ"
418
+ - pattern: "ᆿ(-?)"
419
+ result: "ᆨ\\1"
420
+
421
+ # HANGUL JONGSEONG THIEUTH
422
+ - pattern: "ᇀ(-?)ᄋ"
423
+ result: "ᆺ\\1ᄐ"
424
+ - pattern: "ᇀ(-?)"
425
+ result: "ᆺ\\1"
426
+
427
+ # HANGUL JONGSEONG PHIEUPH
428
+ - pattern: "ᇁ(-?)ᄋ"
429
+ result: "ᆸ\\1ᄑ"
430
+ - pattern: "ᇁ(-?)"
431
+ result: "ᆸ\\1"
432
+
433
+ # HANGUL JONGSEONG HIEUH
434
+ - pattern: "ᇂ(-?)ᄀ"
435
+ result: "\\1ᄏ"
436
+ - pattern: "ᇂ(-?)ᄃ"
437
+ result: "\\1ᄐ"
438
+ - pattern: "ᇂ(-?)ᄇ"
439
+ result: "\\1ᄑ"
440
+ - pattern: "ᇂ(-?)ᄌ"
441
+ result: "\\1ᄎ"
442
+ - pattern: "ᇂ(-?)"
443
+ result: "\\1"
444
+
445
+ # From Unicode Chart
446
+ # https://github.com/unicode-org/cldr/blob/master/common/transforms/Korean-Latin-BGN.xml
447
+
448
+ - pattern: "ᆮ(-?)ᄋ" # HANGUL JONGSEONG TIEUT + CHOSEONG IEUNG
449
+ result: "\\1d"
450
+
451
+ - pattern: "ᆨ(-?)ᄀ"
452
+ result: "k\\1k" # HANGUL JONGSEONG KIYEOK + CHOSEONG KIYEOK
453
+ - pattern: "ᆨ(-?)ᄂ"
454
+ result: "ng\\1n" # HANGUL JONGSEONG KIYEOK + CHOSEONG NIEUN
455
+ - pattern: "ᆨ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
456
+ result: "k\\1ch" # HANGUL JONGSEONG KIYEOK + CHOSEONG TIEUT + YOTIZED VOWELS
457
+ - pattern: "ᆨ(-?)ᄃ"
458
+ result: "k\\1t" # HANGUL JONGSEONG KIYEOK + CHOSEONG TIEUT
459
+ - pattern: "ᆨ(-?)ᄅ"
460
+ result: "ng\\1n" # HANGUL JONGSEONG KIYEOK + CHOSEONG RIEUL
461
+ - pattern: "ᆨ(-?)ᄆ"
462
+ result: "ng\\1m" # HANGUL JONGSEONG KIYEOK + CHOSEONG MIEUM
463
+ - pattern: "ᆨ(-?)ᄇ"
464
+ result: "k\\1p" # HANGUL JONGSEONG KIYEOK + CHOSEONG PIEUP
465
+ - pattern: "ᆨ(-?)ᄉ"
466
+ result: "k\\1s" # HANGUL JONGSEONG KIYEOK + CHOSEONG SIOS
467
+ - pattern: "ᆨ(-?)ᄋ"
468
+ result: "\\1g" # HANGUL JONGSEONG KIYEOK + CHOSEONG IEUNG
469
+ - pattern: "ᆨ(-?)ᄌ"
470
+ result: "k\\1ch" # HANGUL JONGSEONG KIYEOK + CHOSEONG CIEUC
471
+ - pattern: "ᆨ(-?)ᄎ"
472
+ result: "k\\1ch’" # HANGUL JONGSEONG KIYEOK + CHOSEONG CHIEUCH
473
+ - pattern: "ᆨ(-?)ᄏ"
474
+ result: "k\\1k’" # HANGUL JONGSEONG KIYEOK + CHOSEONG KHIEUKH
475
+ - pattern: "ᆨ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
476
+ result: "k\\1ch’" # HANGUL JONGSEONG KIYEOK + CHOSEONG THIEUTH + YOTIZED VOWELS
477
+ - pattern: "ᆨ(-?)ᄐ"
478
+ result: "k\\1t’" # HANGUL JONGSEONG KIYEOK + CHOSEONG THIEUTH
479
+ - pattern: "ᆨ(-?)ᄑ"
480
+ result: "k\\1p’" # HANGUL JONGSEONG KIYEOK + CHOSEONG PHIEUPH
481
+ - pattern: "ᆨ(-?)ᄒ"
482
+ result: "k\\1h" # HANGUL JONGSEONG KIYEOK + CHOSEONG HIEUH
483
+ - pattern: "ᆨ(-?)ᄁ"
484
+ result: "k\\1k" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGKIYEOK
485
+ - pattern: "ᆨ(-?)ᄄ"
486
+ result: "k\\1tt" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGTIEUT
487
+ - pattern: "ᆨ(-?)ᄈ"
488
+ result: "k\\1pp" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGPIEUP
489
+ - pattern: "ᆨ(-?)ᄊ"
490
+ result: "k\\1ss" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGSIOS
491
+ - pattern: "ᆨ(-?)ᄍ"
492
+ result: "k\\1tch" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGCIEUC
493
+ - pattern: "ᆫᄀ"
494
+ result: "n’g" # HANGUL JONGSEONG NIEUN + CHOSEONG KIYEOK
495
+ - pattern: "ᆫ(-)ᄀ"
496
+ result: "n\\1g" # HANGUL JONGSEONG NIEUN + CHOSEONG KIYEOK
497
+ - pattern: "ᆫ(-?)ᄂ"
498
+ result: "n\\1n" # HANGUL JONGSEONG NIEUN + CHOSEONG NIEUN
499
+ - pattern: "ᆫ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
500
+ result: "n\\1j" # HANGUL JONGSEONG NIEUN + CHOSEONG TIEUT + YOTIZED VOWELS
501
+ - pattern: "ᆫ(-?)ᄃ"
502
+ result: "n\\1d" # HANGUL JONGSEONG NIEUN + CHOSEONG TIEUT
503
+ - pattern: "ᆫ(-?)ᄅ"
504
+ result: "l\\1l" # HANGUL JONGSEONG NIEUN + CHOSEONG RIEUL
505
+ - pattern: "ᆫ(-?)ᄆ"
506
+ result: "n\\1m" # HANGUL JONGSEONG NIEUN + CHOSEONG MIEUM
507
+ - pattern: "ᆫ(-?)ᄇ"
508
+ result: "n\\1b" # HANGUL JONGSEONG NIEUN + CHOSEONG PIEUP
509
+ - pattern: "ᆫ(-?)ᄉ"
510
+ result: "n\\1s" # HANGUL JONGSEONG NIEUN + CHOSEONG SIOS
511
+ - pattern: "ᆫ(-?)ᄋ"
512
+ result: "n\\1" # HANGUL JONGSEONG NIEUN + CHOSEONG IEUNG
513
+ - pattern: "ᆫ(-?)ᄌ"
514
+ result: "n\\1j" # HANGUL JONGSEONG NIEUN + CHOSEONG CIEUC
515
+ - pattern: "ᆫ(-?)ᄎ"
516
+ result: "n\\1ch’" # HANGUL JONGSEONG NIEUN + CHOSEONG CHIEUCH
517
+ - pattern: "ᆫ(-?)ᄏ"
518
+ result: "n\\1k’" # HANGUL JONGSEONG NIEUN + CHOSEONG KHIEUKH
519
+ - pattern: "ᆫ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
520
+ result: "n\\1ch’" # HANGUL JONGSEONG NIEUN + CHOSEONG THIEUTH + YOTIZED VOWELS
521
+ - pattern: "ᆫ(-?)ᄐ"
522
+ result: "n\\1t’" # HANGUL JONGSEONG NIEUN + CHOSEONG THIEUTH
523
+ - pattern: "ᆫ(-?)ᄑ"
524
+ result: "n\\1p’" # HANGUL JONGSEONG NIEUN + CHOSEONG PHIEUPH
525
+ - pattern: "ᆫ(-?)ᄒ"
526
+ result: "n\\1h" # HANGUL JONGSEONG NIEUN + CHOSEONG HIEUH
527
+ - pattern: "ᆫ(-?)ᄁ"
528
+ result: "n\\1kk" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGKIYEOK
529
+ - pattern: "ᆫ(-?)ᄄ"
530
+ result: "n\\1tt" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGTIEUT
531
+ - pattern: "ᆫ(-?)ᄈ"
532
+ result: "n\\1pp" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGPIEUP
533
+ - pattern: "ᆫ(-?)ᄊ"
534
+ result: "n\\1ss" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGSIOS
535
+ - pattern: "ᆫ(-?)ᄍ"
536
+ result: "n\\1tch" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGCIEUC
537
+ - pattern: "ᆯ(-?)ᄀ"
538
+ result: "l\\1g" # HANGUL JONGSEONG RIEUL + CHOSEONG KIYEOK
539
+ - pattern: "ᆯ(-?)ᄂ"
540
+ result: "l\\1l" # HANGUL JONGSEONG RIEUL + CHOSEONG NIEUN
541
+ - pattern: "ᆯ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
542
+ result: "l\\1ch" # HANGUL JONGSEONG RIEUL + CHOSEONG TIEUT + YOTIZED VOWELS
543
+ - pattern: "ᆯ(-?)ᄃ"
544
+ result: "l\\1t" # HANGUL JONGSEONG RIEUL + CHOSEONG TIEUT
545
+ - pattern: "ᆯ(-?)ᄅ"
546
+ result: "l\\1l" # HANGUL JONGSEONG RIEUL + CHOSEONG RIEUL
547
+ - pattern: "ᆯ(-?)ᄆ"
548
+ result: "l\\1m" # HANGUL JONGSEONG RIEUL + CHOSEONG MIEUM
549
+ - pattern: "ᆯ(-?)ᄇ"
550
+ result: "l\\1b" # HANGUL JONGSEONG RIEUL + CHOSEONG PIEUP
551
+ - pattern: "ᆯ(-?)ᄉ"
552
+ result: "l\\1s" # HANGUL JONGSEONG RIEUL + CHOSEONG SIOS
553
+ - pattern: "ᆯ(-?)ᄋ"
554
+ result: "\\1r" # HANGUL JONGSEONG RIEUL + CHOSEONG IEUNG
555
+ - pattern: "ᆯ(-?)ᄌ"
556
+ result: "l\\1ch" # HANGUL JONGSEONG RIEUL + CHOSEONG CIEUC
557
+ - pattern: "ᆯ(-?)ᄎ"
558
+ result: "l\\1ch’" # HANGUL JONGSEONG RIEUL + CHOSEONG CHIEUCH
559
+ - pattern: "ᆯ(-?)ᄏ"
560
+ result: "l\\1k’" # HANGUL JONGSEONG RIEUL + CHOSEONG KHIEUKH
561
+ - pattern: "ᆯ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
562
+ result: "l\\1ch’" # HANGUL JONGSEONG RIEUL + CHOSEONG THIEUTH + YOTIZED VOWELS
563
+ - pattern: "ᆯ(-?)ᄐ"
564
+ result: "l\\1t’" # HANGUL JONGSEONG RIEUL + CHOSEONG THIEUTH
565
+ - pattern: "ᆯ(-?)ᄑ"
566
+ result: "l\\1p’" # HANGUL JONGSEONG RIEUL + CHOSEONG PHIEUPH
567
+ - pattern: "ᆯ(-?)ᄒ"
568
+ result: "r\\1h" # HANGUL JONGSEONG RIEUL + CHOSEONG HIEUH
569
+ - pattern: "ᆯ(-?)ᄁ"
570
+ result: "l\\1kk" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGKIYEOK
571
+ - pattern: "ᆯ(-?)ᄄ"
572
+ result: "l\\1tt" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGTIEUT
573
+ - pattern: "ᆯ(-?)ᄈ"
574
+ result: "l\\1pp" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGPIEUP
575
+ - pattern: "ᆯ(-?)ᄊ"
576
+ result: "l\\1ss" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGSIOS
577
+ - pattern: "ᆯ(-?)ᄍ"
578
+ result: "l\\1tch" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGCIEUC
579
+ - pattern: "ᆷ(-?)ᄀ"
580
+ result: "m\\1g" # HANGUL JONGSEONG MIEUM + CHOSEONG KIYEOK
581
+ - pattern: "ᆷ(-?)ᄂ"
582
+ result: "m\\1n" # HANGUL JONGSEONG MIEUM + CHOSEONG NIEUN
583
+ - pattern: "ᆷ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
584
+ result: "m\\1j" # HANGUL JONGSEONG MIEUM + CHOSEONG TIEUT + YOTIZED VOWELS
585
+ - pattern: "ᆷ(-?)ᄃ"
586
+ result: "m\\1d" # HANGUL JONGSEONG MIEUM + CHOSEONG TIEUT
587
+ - pattern: "ᆷ(-?)ᄅ"
588
+ result: "m\\1n" # HANGUL JONGSEONG MIEUM + CHOSEONG RIEUL
589
+ - pattern: "ᆷ(-?)ᄆ"
590
+ result: "m\\1m" # HANGUL JONGSEONG MIEUM + CHOSEONG MIEUM
591
+ - pattern: "ᆷ(-?)ᄇ"
592
+ result: "m\\1b" # HANGUL JONGSEONG MIEUM + CHOSEONG PIEUP
593
+ - pattern: "ᆷ(-?)ᄉ"
594
+ result: "m\\1s" # HANGUL JONGSEONG MIEUM + CHOSEONG SIOS
595
+ - pattern: "ᆷ(-?)ᄋ"
596
+ result: "m\\1" # HANGUL JONGSEONG MIEUM + CHOSEONG IEUNG
597
+ - pattern: "ᆷ(-?)ᄌ"
598
+ result: "m\\1j" # HANGUL JONGSEONG MIEUM + CHOSEONG CIEUC
599
+ - pattern: "ᆷ(-?)ᄎ"
600
+ result: "m\\1ch’" # HANGUL JONGSEONG MIEUM + CHOSEONG CHIEUCH
601
+ - pattern: "ᆷ(-?)ᄏ"
602
+ result: "m\\1k’" # HANGUL JONGSEONG MIEUM + CHOSEONG KHIEUKH
603
+ - pattern: "ᆷ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
604
+ result: "m\\1ch’" # HANGUL JONGSEONG MIEUM + CHOSEONG THIEUTH + YOTIZED VOWELS
605
+ - pattern: "ᆷ(-?)ᄐ"
606
+ result: "m\\1t’" # HANGUL JONGSEONG MIEUM + CHOSEONG THIEUTH
607
+ - pattern: "ᆷ(-?)ᄑ"
608
+ result: "m\\1p’" # HANGUL JONGSEONG MIEUM + CHOSEONG PHIEUPH
609
+ - pattern: "ᆷ(-?)ᄒ"
610
+ result: "m\\1h" # HANGUL JONGSEONG MIEUM + CHOSEONG HIEUH
611
+ - pattern: "ᆷ(-?)ᄁ"
612
+ result: "m\\1kk" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGKIYEOK
613
+ - pattern: "ᆷ(-?)ᄄ"
614
+ result: "m\\1tt" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGTIEUT
615
+ - pattern: "ᆷ(-?)ᄈ"
616
+ result: "m\\1pp" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGPIEUP
617
+ - pattern: "ᆷ(-?)ᄊ"
618
+ result: "m\\1ss" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGSIOS
619
+ - pattern: "ᆷ(-?)ᄍ"
620
+ result: "m\\1tch" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGCIEUC
621
+ - pattern: "ᆸ(-?)ᄀ"
622
+ result: "p\\1k" # HANGUL JONGSEONG PIEUP + CHOSEONG KIYEOK
623
+ - pattern: "ᆸ(-?)ᄂ"
624
+ result: "m\\1n" # HANGUL JONGSEONG PIEUP + CHOSEONG NIEUN
625
+ - pattern: "ᆸ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
626
+ result: "p\\1ch" # HANGUL JONGSEONG PIEUP + CHOSEONG TIEUT + YOTIZED VOWELS
627
+ - pattern: "ᆸ(-?)ᄃ"
628
+ result: "p\\1t" # HANGUL JONGSEONG PIEUP + CHOSEONG TIEUT
629
+ - pattern: "ᆸ(-?)ᄅ"
630
+ result: "m\\1n" # HANGUL JONGSEONG PIEUP + CHOSEONG RIEUL
631
+ - pattern: "ᆸ(-?)ᄆ"
632
+ result: "m\\1m" # HANGUL JONGSEONG PIEUP + CHOSEONG MIEUM
633
+ - pattern: "ᆸ(-?)ᄇ"
634
+ result: "p\\1p" # HANGUL JONGSEONG PIEUP + CHOSEONG PIEUP
635
+ - pattern: "ᆸ(-?)ᄉ"
636
+ result: "p\\1s" # HANGUL JONGSEONG PIEUP + CHOSEONG SIOS
637
+ - pattern: "ᆸ(-?)ᄋ"
638
+ result: "p\\1" # HANGUL JONGSEONG PIEUP + CHOSEONG IEUNG
639
+ - pattern: "ᆸ(-?)ᄌ"
640
+ result: "p\\1ch" # HANGUL JONGSEONG PIEUP + CHOSEONG CIEUC
641
+ - pattern: "ᆸ(-?)ᄎ"
642
+ result: "p\\1ch’" # HANGUL JONGSEONG PIEUP + CHOSEONG CHIEUCH
643
+ - pattern: "ᆸ(-?)ᄏ"
644
+ result: "p\\1k’" # HANGUL JONGSEONG PIEUP + CHOSEONG KHIEUKH
645
+ - pattern: "ᆸ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
646
+ result: "p\\1ch’" # HANGUL JONGSEONG PIEUP + CHOSEONG THIEUTH + YOTIZED VOWELS
647
+ - pattern: "ᆸ(-?)ᄐ"
648
+ result: "p\\1t’" # HANGUL JONGSEONG PIEUP + CHOSEONG THIEUTH
649
+ - pattern: "ᆸ(-?)ᄑ"
650
+ result: "p\\1p’" # HANGUL JONGSEONG PIEUP + CHOSEONG PHIEUPH
651
+ - pattern: "ᆸ(-?)ᄒ"
652
+ result: "p\\1h" # HANGUL JONGSEONG PIEUP + CHOSEONG HIEUH
653
+ - pattern: "ᆸ(-?)ᄁ"
654
+ result: "p\\1kk" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGKIYEOK
655
+ - pattern: "ᆸ(-?)ᄄ"
656
+ result: "p\\1tt" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGTIEUT
657
+ - pattern: "ᆸ(-?)ᄈ"
658
+ result: "p\\1p" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGPIEUP
659
+ - pattern: "ᆸ(-?)ᄊ"
660
+ result: "p\\1ss" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGSIOS
661
+ - pattern: "ᆸ(-?)ᄍ"
662
+ result: "p\\1tch" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGCIEUC
663
+ - pattern: "ᆺ(-?)ᄀ"
664
+ result: "t\\1k" # HANGUL JONGSEONG SIOS + CHOSEONG KIYEOK
665
+ - pattern: "ᆺ(-?)ᄂ"
666
+ result: "n\\1n" # HANGUL JONGSEONG SIOS + CHOSEONG NIEUN
667
+ - pattern: "ᆺ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
668
+ result: "t\\1ch" # HANGUL JONGSEONG SIOS + CHOSEONG TIEUT + YOTIZED VOWELS
669
+ - pattern: "ᆺ(-?)ᄃ"
670
+ result: "t\\1t" # HANGUL JONGSEONG SIOS + CHOSEONG TIEUT
671
+ - pattern: "ᆺ(-?)ᄅ"
672
+ result: "n\\1n" # HANGUL JONGSEONG SIOS + CHOSEONG RIEUL
673
+ - pattern: "ᆺ(-?)ᄆ"
674
+ result: "n\\1m" # HANGUL JONGSEONG SIOS + CHOSEONG MIEUM
675
+ - pattern: "ᆺ(-?)ᄇ"
676
+ result: "t\\1p" # HANGUL JONGSEONG SIOS + CHOSEONG PIEUP
677
+ - pattern: "ᆺ(-?)ᄉ"
678
+ result: "s\\1s" # HANGUL JONGSEONG SIOS + CHOSEONG SIOS
679
+ - pattern: "ᆺ(-?)ᄋ"
680
+ result: "s\\1" # HANGUL JONGSEONG SIOS + CHOSEONG IEUNG
681
+ - pattern: "ᆺ(-?)ᄌ"
682
+ result: "t\\1ch" # HANGUL JONGSEONG SIOS + CHOSEONG CIEUC
683
+ - pattern: "ᆺ(-?)ᄎ"
684
+ result: "t\\1ch’" # HANGUL JONGSEONG SIOS + CHOSEONG CHIEUCH
685
+ - pattern: "ᆺ(-?)ᄏ"
686
+ result: "t\\1k’" # HANGUL JONGSEONG SIOS + CHOSEONG KHIEUKH
687
+ - pattern: "ᆺ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
688
+ result: "t\\1ch’" # HANGUL JONGSEONG SIOS + CHOSEONG THIEUTH + YOTIZED VOWELS
689
+ - pattern: "ᆺ(-?)ᄐ"
690
+ result: "t\\1t’" # HANGUL JONGSEONG SIOS + CHOSEONG THIEUTH
691
+ - pattern: "ᆺ(-?)ᄑ"
692
+ result: "t\\1p’" # HANGUL JONGSEONG SIOS + CHOSEONG PHIEUPH
693
+ - pattern: "ᆺ(-?)ᄒ"
694
+ result: "t\\1h" # HANGUL JONGSEONG SIOS + CHOSEONG HIEUH
695
+ - pattern: "ᆺ(-?)ᄁ"
696
+ result: "t\\1kk" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGKIYEOK
697
+ - pattern: "ᆺ(-?)ᄄ"
698
+ result: "t\\1t" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGTIEUT
699
+ - pattern: "ᆺ(-?)ᄈ"
700
+ result: "t\\1pp" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGPIEUP
701
+ - pattern: "ᆺ(-?)ᄊ"
702
+ result: "s\\1s" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGSIOS
703
+ - pattern: "ᆺ(-?)ᄍ"
704
+ result: "t\\1ch" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGCIEUC
705
+ - pattern: "ᆼ(-?)ᄀ"
706
+ result: "ng\\1g" # HANGUL JONGSEONG IEUNG + CHOSEONG KIYEOK
707
+ - pattern: "ᆼ(-?)ᄂ"
708
+ result: "ng\\1n" # HANGUL JONGSEONG IEUNG + CHOSEONG NIEUN
709
+ - pattern: "ᆼ(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
710
+ result: "ng\\1j" # HANGUL JONGSEONG IEUNG + CHOSEONG TIEUT + YOTIZED VOWELS
711
+ - pattern: "ᆼ(-?)ᄃ"
712
+ result: "ng\\1d" # HANGUL JONGSEONG IEUNG + CHOSEONG TIEUT
713
+ - pattern: "ᆼ(-?)ᄅ"
714
+ result: "ng\\1n" # HANGUL JONGSEONG IEUNG + CHOSEONG RIEUL
715
+ - pattern: "ᆼ(-?)ᄆ"
716
+ result: "ng\\1m" # HANGUL JONGSEONG IEUNG + CHOSEONG MIEUM
717
+ - pattern: "ᆼ(-?)ᄇ"
718
+ result: "ng\\1b" # HANGUL JONGSEONG IEUNG + CHOSEONG PIEUP
719
+ - pattern: "ᆼ(-?)ᄉ"
720
+ result: "ng\\1s" # HANGUL JONGSEONG IEUNG + CHOSEONG SIOS
721
+ - pattern: "ᆼ(-?)ᄋ"
722
+ result: "ng\\1" # HANGUL JONGSEONG IEUNG + CHOSEONG IEUNG
723
+ - pattern: "ᆼ(-?)ᄌ"
724
+ result: "ng\\1j" # HANGUL JONGSEONG IEUNG + CHOSEONG CIEUC
725
+ - pattern: "ᆼ(-?)ᄎ"
726
+ result: "ng\\1ch’" # HANGUL JONGSEONG IEUNG + CHOSEONG CHIEUCH
727
+ - pattern: "ᆼ(-?)ᄏ"
728
+ result: "ng\\1k’" # HANGUL JONGSEONG IEUNG + CHOSEONG KHIEUKH
729
+ - pattern: "ᆼ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
730
+ result: "ng\\1ch’" # HANGUL JONGSEONG IEUNG + CHOSEONG THIEUTH + YOTIZED VOWELS
731
+ - pattern: "ᆼ(-?)ᄐ"
732
+ result: "ng\\1t’" # HANGUL JONGSEONG IEUNG + CHOSEONG THIEUTH
733
+ - pattern: "ᆼ(-?)ᄑ"
734
+ result: "ng\\1p’" # HANGUL JONGSEONG IEUNG + CHOSEONG PHIEUPH
735
+ - pattern: "ᆼ(-?)ᄒ"
736
+ result: "ng\\1h" # HANGUL JONGSEONG IEUNG + CHOSEONG HIEUH
737
+ - pattern: "ᆼ(-?)ᄁ"
738
+ result: "ng\\1kk" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGKIYEOK
739
+ - pattern: "ᆼ(-?)ᄄ"
740
+ result: "ng\\1tt" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGTIEUT
741
+ - pattern: "ᆼ(-?)ᄈ"
742
+ result: "ng\\1pp" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGPIEUP
743
+ - pattern: "ᆼ(-?)ᄊ"
744
+ result: "ng\\1ss" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGSIOS
745
+ - pattern: "ᆼ(-?)ᄍ"
746
+ result: "ng\\1tch" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGCIEUC
747
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄀ"
748
+ result: "\\1g" # VOWEL + CHOSEONG KIYEOK
749
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄂ"
750
+ result: "\\1n" # VOWEL + CHOSEONG NIEUN
751
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
752
+ result: "\\1j" # VOWEL + CHOSEONG TIEUT + YOTIZED VOWELS
753
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄃ"
754
+ result: "\\1d" # VOWEL + CHOSEONG TIEUT
755
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄅ"
756
+ result: "\\1r" # VOWEL + CHOSEONG RIEUL
757
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄆ"
758
+ result: "\\1m" # VOWEL + CHOSEONG MIEUM
759
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄇ"
760
+ result: "\\1b" # VOWEL + CHOSEONG PIEUP
761
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄉ"
762
+ result: "\\1s" # VOWEL + CHOSEONG SIOS
763
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄋ"
764
+ result: "\\1" # VOWEL + CHOSEONG IEUNG
765
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄌ"
766
+ result: "\\1j" # VOWEL + CHOSEONG CIEUC
767
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄎ"
768
+ result: "\\1ch’" # VOWEL + CHOSEONG CHIEUCH
769
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄏ"
770
+ result: "\\1k’" # VOWEL + CHOSEONG KHIEUKH
771
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
772
+ result: "\\1ch’" # VOWEL + CHOSEONG THIEUTH + YOTIZED VOWELS
773
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄐ"
774
+ result: "\\1t’" # VOWEL + CHOSEONG THIEUTH
775
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄑ"
776
+ result: "\\1p’" # VOWEL + CHOSEONG PHIEUPH
777
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄒ"
778
+ result: "\\1h" # VOWEL + CHOSEONG HIEUH
779
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄁ"
780
+ result: "\\1kk" # VOWEL + CHOSEONG SSANGKIYEOK
781
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄄ"
782
+ result: "\\1tt" # VOWEL + CHOSEONG SSANGTIEUT
783
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄈ"
784
+ result: "\\1pp" # VOWEL + CHOSEONG SSANGPIEUP
785
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄊ"
786
+ result: "\\1ss" # VOWEL + CHOSEONG SSANGSIOS
787
+ - pattern: "(?<=[A-Za-z0-9ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ])(-?)ᄍ"
788
+ result: "\\1tch" # VOWEL + CHOSEONG SSANGCIEUC
789
+ - pattern: "ᆰ(-?)ᄀ"
790
+ result: "l\\1g" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG KIYEOK
791
+ - pattern: "ᆰ(-?)ᄂ"
792
+ result: "ng\\1n" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG NIEUN
793
+ - pattern: "ᆰ(-?)ᄃ"
794
+ result: "k\\1t" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG TIEUT
795
+ - pattern: "ᆰ(-?)ᄅ"
796
+ result: "ng\\1n" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG RIEUL
797
+ - pattern: "ᆰ(-?)ᄆ"
798
+ result: "ng\\1m" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG MIEUM
799
+ - pattern: "ᆰ(-?)ᄇ"
800
+ result: "k\\1p" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG PIEUP
801
+ - pattern: "ᆰ(-?)ᄉ"
802
+ result: "k\\1s" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SIOS
803
+ - pattern: "ᆰ(-?)ᄋ"
804
+ result: "l\\1g" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG IEUNG
805
+ - pattern: "ᆰ(-?)ᄌ"
806
+ result: "k\\1ch" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG CIEUC
807
+ - pattern: "ᆰ(-?)ᄎ"
808
+ result: "k\\1ch’" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG CHIEUCH
809
+ - pattern: "ᆰ(-?)ᄏ"
810
+ result: "l\\1k’" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG KHIEUKH
811
+ - pattern: "ᆰ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
812
+ result: "k\\1ch’" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG THIEUTH + YOTIZED VOWELS
813
+ - pattern: "ᆰ(-?)ᄐ"
814
+ result: "k\\1t’" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG THIEUTH
815
+ - pattern: "ᆰ(-?)ᄑ"
816
+ result: "k\\1p’" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG PHIEUPH
817
+ - pattern: "ᆰ(-?)ᄒ"
818
+ result: "lk\\1h" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG HIEUH
819
+ - pattern: "ᆰ(-?)ᄁ"
820
+ result: "l\\1kk" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGKIYEOK
821
+ - pattern: "ᆰ(-?)ᄄ"
822
+ result: "k\\1tt" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGTIEUT
823
+ - pattern: "ᆰ(-?)ᄈ"
824
+ result: "k\\1pp" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGPIEUP
825
+ - pattern: "ᆰ(-?)ᄊ"
826
+ result: "k\\1ss" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGSIOS
827
+ - pattern: "ᆰ(-?)ᄍ"
828
+ result: "k\\1tch" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGCIEUC
829
+ - pattern: "ᆱ(-?)ᄀ"
830
+ result: "m\\1g" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG KIYEOK
831
+ - pattern: "ᆱ(-?)ᄂ"
832
+ result: "m\\1n" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG NIEUN
833
+ - pattern: "ᆱ(-?)ᄃ"
834
+ result: "m\\1d" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG TIEUT
835
+ - pattern: "ᆱ(-?)ᄅ"
836
+ result: "m\\1n" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG RIEUL
837
+ - pattern: "ᆱ(-?)ᄆ"
838
+ result: "l\\1m" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG MIEUM
839
+ - pattern: "ᆱ(-?)ᄇ"
840
+ result: "m\\1b" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG PIEUP
841
+ - pattern: "ᆱ(-?)ᄉ"
842
+ result: "m\\1s" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SIOS
843
+ - pattern: "ᆱ(-?)ᄋ"
844
+ result: "l\\1m" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG IEUNG
845
+ - pattern: "ᆱ(-?)ᄌ"
846
+ result: "m\\1j" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG CIEUC
847
+ - pattern: "ᆱ(-?)ᄎ"
848
+ result: "m\\1ch’" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG CHIEUCH
849
+ - pattern: "ᆱ(-?)ᄏ"
850
+ result: "m\\1k’" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG KHIEUKH
851
+ - pattern: "ᆱ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
852
+ result: "m\\1ch’" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG THIEUTH + YOTIZED VOWELS
853
+ - pattern: "ᆱ(-?)ᄐ"
854
+ result: "m\\1t’" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG THIEUTH
855
+ - pattern: "ᆱ(-?)ᄑ"
856
+ result: "m\\1p’" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG PHIEUPH
857
+ - pattern: "ᆱ(-?)ᄒ"
858
+ result: "m\\1h" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG HIEUH
859
+ - pattern: "ᆱ(-?)ᄁ"
860
+ result: "m\\1kk" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGKIYEOK
861
+ - pattern: "ᆱ(-?)ᄄ"
862
+ result: "m\\1tt" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGTIEUT
863
+ - pattern: "ᆱ(-?)ᄈ"
864
+ result: "m\\1pp" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGPIEUP
865
+ - pattern: "ᆱ(-?)ᄊ"
866
+ result: "m\\1ss" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGSIOS
867
+ - pattern: "ᆱ(-?)ᄍ"
868
+ result: "m\\1tch" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGCIEUC
869
+ - pattern: "ᆲ(-?)ᄀ"
870
+ result: "pk" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG KIYEOK
871
+ - pattern: "ᆲ(-?)ᄂ"
872
+ result: "mn" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG NIEUN
873
+ - pattern: "ᆲ(-?)ᄃ"
874
+ result: "p\\1t" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG TIEUT
875
+ - pattern: "ᆲ(-?)ᄅ"
876
+ result: "m\\1n" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG RIEUL
877
+ - pattern: "ᆲ(-?)ᄆ"
878
+ result: "m\\1m" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG MIEUM
879
+ - pattern: "ᆲ(-?)ᄇ"
880
+ result: "l\\1b" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG PIEUP
881
+ - pattern: "ᆲ(-?)ᄉ"
882
+ result: "p\\1s" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SIOS
883
+ - pattern: "ᆲ(-?)ᄋ"
884
+ result: "l\\1b" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG IEUNG
885
+ - pattern: "ᆲ(-?)ᄌ"
886
+ result: "p\\1ch" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG CIEUC
887
+ - pattern: "ᆲ(-?)ᄎ"
888
+ result: "p\\1ch’" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG CHIEUCH
889
+ - pattern: "ᆲ(-?)ᄏ"
890
+ result: "p\\1k’" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG KHIEUKH
891
+ - pattern: "ᆲ(-?)ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
892
+ result: "p\\1ch’" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG THIEUTH + YOTIZED VOWELS
893
+ - pattern: "ᆲ(-?)ᄐ"
894
+ result: "p\\1t’" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG THIEUTH
895
+ - pattern: "ᆲ(-?)ᄑ"
896
+ result: "l\\1p’" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG PHIEUPH
897
+ - pattern: "ᆲ(-?)ᄒ"
898
+ result: "lp\\1h" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG HIEUH
899
+ - pattern: "ᆲ(-?)ᄁ"
900
+ result: "p\\1kk" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGKIYEOK
901
+ - pattern: "ᆲ(-?)ᄄ"
902
+ result: "p\\1tt" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGTIEUT
903
+ - pattern: "ᆲ(-?)ᄈ"
904
+ result: "l\\1pp" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGPIEUP
905
+ - pattern: "ᆲ(-?)ᄊ"
906
+ result: "p\\1ss" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGSIOS
907
+ - pattern: "ᆲ(-?)ᄍ"
908
+ result: "p\\1tch" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGCIEUC
909
+ - pattern: "(?<= )ᄀ"
910
+ result: "k" # HANGUL CHOSEONG KIYEOK
911
+ - pattern: "(?<= )ᄂ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
912
+ result: "" # HANGUL CHOSEONG NIEUN # N-onset rule
913
+ - pattern: "(?<= )ᄂ"
914
+ result: "n" # HANGUL CHOSEONG NIEUN
915
+ - pattern: "(?<= )ᄃ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
916
+ result: "ch" # HANGUL CHOSEONG TIEUT # T -> Ch before yotized vowels
917
+ - pattern: "(?<= )ᄃ"
918
+ result: "t" # HANGUL CHOSEONG TIEUT
919
+ - pattern: "(?<= )ᄅ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
920
+ result: "" # HANGUL CHOSEONG RIEUL # R-onset rule
921
+ - pattern: "(?<= )ᄅ"
922
+ result: "n" # HANGUL CHOSEONG RIEUL # R-onset rule
923
+ - pattern: "(?<= )ᄆ"
924
+ result: "m" # HANGUL CHOSEONG MIEUM
925
+ - pattern: "(?<= )ᄇ"
926
+ result: "p" # HANGUL CHOSEONG PIEUP
927
+ - pattern: "(?<= )ᄉ(?=ᅱ)"
928
+ result: "sh" # HANGUL CHOSEONG SIOS
929
+ - pattern: "(?<= )ᄉ"
930
+ result: "s" # HANGUL CHOSEONG SIOS
931
+ - pattern: "(?<= )ᄋ"
932
+ result: "" # HANGUL CHOSEONG IEUNG
933
+ - pattern: "(?<= )ᄌ"
934
+ result: "ch" # HANGUL CHOSEONG CIEUC
935
+ - pattern: "(?<= )ᄎ"
936
+ result: "ch’" # HANGUL CHOSEONG CHIEUCH
937
+ - pattern: "(?<= )ᄏ"
938
+ result: "k’" # HANGUL CHOSEONG KHIEUKH
939
+ - pattern: "(?<= )ᄐ(?=[ᅵᅣᅤᅧᅨᅭᅲ])"
940
+ result: "ch’" # HANGUL CHOSEONG THIEUTH + YOTIZED VOWELS
941
+ - pattern: "(?<= )ᄐ"
942
+ result: "t’" # HANGUL CHOSEONG THIEUTH
943
+ - pattern: "(?<= )ᄑ"
944
+ result: "p’" # HANGUL CHOSEONG PHIEUPH
945
+ - pattern: "(?<= )ᄒ"
946
+ result: "h" # HANGUL CHOSEONG HIEUH
947
+ - pattern: "(?<= )ᄁ"
948
+ result: "kk" # HANGUL CHOSEONG SSANGKIYEOK
949
+ - pattern: "(?<= )ᄭ"
950
+ result: "kk" # HANGUL CHOSEONG SIOS-KIYEOK
951
+ - pattern: "(?<= )ᄄ"
952
+ result: "tt" # HANGUL CHOSEONG SSANGTIEUT
953
+ - pattern: "(?<= )ᄯ"
954
+ result: "tt" # HANGUL CHOSEONG SIOS-TIEUT
955
+ - pattern: "(?<= )ᄈ"
956
+ result: "pp" # HANGUL CHOSEONG SSANGPIEUP
957
+ - pattern: "(?<= )ᄲ"
958
+ result: "pp" # HANGUL CHOSEONG SIOS-PIEUP
959
+ - pattern: "(?<= )ᄊ"
960
+ result: "ss" # HANGUL CHOSEONG SSANGSIOS
961
+ - pattern: "(?<= )ᄍ"
962
+ result: "tch" # HANGUL CHOSEONG SSANGCIEUC
963
+ - pattern: "(?<= )ᄶ"
964
+ result: "tch" # HANGUL CHOSEONG SIOS-CIEUC
965
+ - pattern: "ᅡ"
966
+ result: "a" # HANGUL JUNGSEONG A
967
+ - pattern: "ᅣ"
968
+ result: "ya" # HANGUL JUNGSEONG YA
969
+ - pattern: "ᅥ"
970
+ result: "ŏ" # HANGUL JUNGSEONG EO
971
+ - pattern: "ᅧ"
972
+ result: "yŏ" # HANGUL JUNGSEONG YEO
973
+ - pattern: "ᅩ"
974
+ result: "o" # HANGUL JUNGSEONG O
975
+ - pattern: "ᅭ"
976
+ result: "yo" # HANGUL JUNGSEONG YO
977
+ - pattern: "ᅮ"
978
+ result: "u" # HANGUL JUNGSEONG U
979
+ - pattern: "ᅲ"
980
+ result: "yu" # HANGUL JUNGSEONG YU
981
+ - pattern: "ᅳ"
982
+ result: "ŭ" # HANGUL JUNGSEONG EU
983
+ - pattern: "ᅵ"
984
+ result: "i" # HANGUL JUNGSEONG I
985
+ - pattern: "ᅢ"
986
+ result: "ae" # HANGUL JUNGSEONG AE
987
+ - pattern: "ᅤ"
988
+ result: "yae" # HANGUL JUNGSEONG YAE
989
+ - pattern: "ᅦ"
990
+ result: "e" # HANGUL JUNGSEONG E
991
+ - pattern: "ᅨ"
992
+ result: "ye" # HANGUL JUNGSEONG YE
993
+ - pattern: "ᅬ"
994
+ result: "oe" # HANGUL JUNGSEONG OE
995
+ - pattern: "ᅱ"
996
+ result: "wi" # HANGUL JUNGSEONG WI
997
+ - pattern: "ᅴ"
998
+ result: "ŭi" # HANGUL JUNGSEONG YI
999
+ - pattern: "ᅪ"
1000
+ result: "wa" # HANGUL JUNGSEONG WA
1001
+ - pattern: "ᅯ"
1002
+ result: "wŏ" # HANGUL JUNGSEONG WEO
1003
+ - pattern: "ᅫ"
1004
+ result: "wae" # HANGUL JUNGSEONG WAE
1005
+ - pattern: "ᅰ"
1006
+ result: "we" # HANGUL JUNGSEONG WE
1007
+ - pattern: "ᆨ(?=[ -])"
1008
+ result: "k" # HANGUL JONGSEONG KIYEOK
1009
+ - pattern: "ᆫ(?=[ -])"
1010
+ result: "n" # HANGUL JONGSEONG NIEUN
1011
+ - pattern: "ᆮ(?=[ -])"
1012
+ result: "t" # HANGUL JONGSEONG TIEUT
1013
+ - pattern: "ᆯ(?=[ -])"
1014
+ result: "l" # HANGUL JONGSEONG RIEUL
1015
+ - pattern: "ᆷ(?=[ -])"
1016
+ result: "m" # HANGUL JONGSEONG MIEUM
1017
+ - pattern: "ᆸ(?=[ -])"
1018
+ result: "p" # HANGUL JONGSEONG PIEUP
1019
+ - pattern: "ᆺ(?=[ -])"
1020
+ result: "t" # HANGUL JONGSEONG SIOS
1021
+ - pattern: "ᆼ(?=[ -])"
1022
+ result: "ng" # HANGUL JONGSEONG IEUNG
1023
+ - pattern: "ᆽ(?=[ -])"
1024
+ result: "t" # HANGUL JONGSEONG CIEUC
1025
+ - pattern: "ᆾ(?=[ -])"
1026
+ result: "t" # HANGUL JONGSEONG CHIEUCH
1027
+ - pattern: "ᆿ(?=[ -])"
1028
+ result: "k" # HANGUL JONGSEONG KHIEUKH
1029
+ - pattern: "ᇀ(?=[ -])"
1030
+ result: "t" # HANGUL JONGSEONG THIEUTH
1031
+ - pattern: "ᇁ(?=[ -])"
1032
+ result: "p" # HANGUL JONGSEONG PHIEUPH
1033
+ - pattern: "ᆰ(?=[ -])"
1034
+ result: "k" # HANGUL JONGSEONG RIEUL-KIYEOK
1035
+ - pattern: "ᆲ(?=[ -])"
1036
+ result: "p" # HANGUL JONGSEONG RIEUL-PIEUP
1037
+
1038
+ - pattern: "(ch|ch’|j|s|ss)y"
1039
+ result: "\\1"
1040
+
1041
+ - pattern: "swi"
1042
+ result: "shwi"
1043
+
1044
+ # Remove space added
1045
+ - pattern: "^ "
1046
+ result: ""
1047
+ - pattern: " $"
1048
+ result: ""
1049
+
1050
+ characters:
1051
+ # This is based on Jamo
1052
+
1053
+ dictionary:
1054
+ #