]> git.saurik.com Git - apple/icu.git/blob - icuSources/data/translit/Latin_ConjoiningJamo.txt
ICU-57131.0.1.tar.gz
[apple/icu.git] / icuSources / data / translit / Latin_ConjoiningJamo.txt
1 # ***************************************************************************
2 # *
3 # * Copyright (C) 2004-2016, International Business Machines
4 # * Corporation; Unicode, Inc.; and others. All Rights Reserved.
5 # *
6 # ***************************************************************************
7 # File: Latin_ConjoiningJamo.txt
8 # Generated from CLDR
9 #
10
11 # Follows the Ministry of Culture and Tourism romanization: see http://www.korea.net/korea/kor_loca.asp?code=A020303
12 # http://www.unicode.org/cldr/transliteration_guidelines.html#Korean
13 #- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in
14 #- the INDEX file. This transliterator is, by itself, not
15 #- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or
16 #- inverses thereof.
17 # Transliteration from Latin characters to Korean script is done in
18 # two steps: Latin to Jamo, then Jamo to Hangul. The Jamo-Hangul
19 # transliteration is done algorithmically following Unicode 3.0
20 # section 3.11. This file implements the Latin to Jamo
21 # transliteration using rules.
22 # Jamo occupy the block 1100-11FF. Within this block there are three
23 # groups of characters: initial consonants or choseong (I), medial
24 # vowels or jungseong (M), and trailing consonants or jongseong (F).
25 # Standard Korean syllables are of the form I+M+F*.
26 # Section 3.11 describes the use of 'filler' jamo to convert
27 # nonstandard syllables to standard form: the choseong filler 115F and
28 # the junseong filler 1160. In this transliterator, we will not use
29 # 115F or 1160.
30 # We will, however, insert two 'null' jamo to make foreign words
31 # conform to Korean syllable structure. These are the null initial
32 # consonant 110B (IEUNG) and the null vowel 1173 (EU). In Latin text,
33 # we will use the separator in order to disambiguate strings,
34 # e.g. "kan-ggan" (initial GG) vs. "kanggan" (final NG + initial G).
35 # We will not use all of the characters in the jamo block. We will
36 # only use the 19 initials, 21 medials, and 27 finals possessing a
37 # jamo short name as defined in section 4.4 of the Unicode book.
38 # Rules of thumb. These guidelines provide the basic framework
39 # for the rules. They are phrased in terms of Latin-Jamo transliteration.
40 # The Jamo-Latin rules derive from these, since the Jamo-Latin rules are
41 # just context-free transliteration of jamo to corresponding short names,
42 # with the addition of separators to maintain round-trip integrity
43 # in the context of the Latin-Jamo rules.
44 # A sequence of vowels:
45 # - Take the longest sequence you can. If there are too many, or you don't
46 # have a starting consonant, introduce a 110B necessary.
47 # A sequence of consonants.
48 # - First join the double consonants: G + G -→ GG
49 # - In the remaining list,
50 # -- If there is no preceding vowel, take the first consonant, and insert EU
51 # after it. Continue with the rest of the consonants.
52 # -- If there is one consonant, attach to the following vowel
53 # -- If there are two consonants and a following vowel, attach one to the
54 # preceeding vowel, and one to the following vowel.
55 # -- If there are more than two consonants, join the first two together if you
56 # can: L + G =→ LG
57 # -- If you still end up with more than 2 consonants, insert EU after the
58 # first one, and continue with the rest of the consonants.
59 #----------------------------------------------------------------------
60 # Variables
61 # Some latin consonants or consonant pairs only occur as initials, and
62 # some only as finals, but some occur as both. This makes some jamo
63 # consonants ambiguous when transliterated into latin.
64 # Initial only: IEUNG BB DD JJ R
65 # Final only: BS GS L LB LG LH LM LP LS LT NG NH NJ
66 # Initial and Final: B C D G GG H J K M N P S SS T
67 $Gi = ᄀ;
68 $KKi = ᄁ;
69 $Ni = ᄂ;
70 $Di = ᄃ;
71 $TTi = ᄄ;
72 $Li = ᄅ;
73 $Mi = ᄆ;
74 $Bi = ᄇ;
75 $PPi = ᄈ;
76 $Si = ᄉ;
77 $SSi = ᄊ;
78 $IEUNG = ᄋ; # null initial, inserted during Latin-Jamo
79 $Ji = ᄌ;
80 $JJi = ᄍ;
81 $CHi = ᄎ;
82 $Ki = ᄏ;
83 $Ti = ᄐ;
84 $Pi = ᄑ;
85 $Hi = ᄒ;
86 $A = ᅡ;
87 $AE = ᅢ;
88 $YA = ᅣ;
89 $YAE = ᅤ;
90 $EO = ᅥ;
91 $E = ᅦ;
92 $YEO = ᅧ;
93 $YE = ᅨ;
94 $O = ᅩ;
95 $WA = ᅪ;
96 $WAE = ᅫ;
97 $OE = ᅬ;
98 $YO = ᅭ;
99 $U = ᅮ;
100 $WO = ᅯ;
101 $WE = ᅰ;
102 $WI = ᅱ;
103 $YU = ᅲ;
104 $EU = ᅳ; # null medial, inserted during Latin-Jamo
105 $UI = ᅴ;
106 $I = ᅵ;
107 $Gf = ᆨ;
108 $GGf = ᆩ;
109 $GS = ᆪ;
110 $Nf = ᆫ;
111 $NJ = ᆬ;
112 $NH = ᆭ;
113 $Df = ᆮ;
114 $L = ᆯ;
115 $LG = ᆰ;
116 $LM = ᆱ;
117 $LB = ᆲ;
118 $LS = ᆳ;
119 $LT = ᆴ;
120 $LP = ᆵ;
121 $LH = ᆶ;
122 $Mf = ᆷ;
123 $Bf = ᆸ;
124 $BS = ᆹ;
125 $Sf = ᆺ;
126 $SSf = ᆻ;
127 $NG = ᆼ;
128 $Jf = ᆽ;
129 $Cf = ᆾ;
130 $Kf = ᆿ;
131 $Tf = ᇀ;
132 $Pf = ᇁ;
133 $Hf = ᇂ;
134 $jamoInitial = [ᄀ-ᄒ];
135 $jamoMedial = [ᅡ-ᅵ];
136 $latinInitial = [bcdghjklmnprst];
137 # Any character in the latin transliteration of a medial
138 $latinMedial = [aeiouwy];
139 # The last character of the latin transliteration of a medial
140 $latinMedialEnd = [aeiou];
141 # Disambiguation separator
142 $sep = \-;
143 #----------------------------------------------------------------------
144 # Jamo-Latin
145 #
146 # Jamo to latin is relatively simple, since it is the latin that is
147 # ambiguous. Most rules are straightforward, and we encode them below
148 # as simple add-on back rule, e.g.:
149 # $jamoMedial {bs} → $BS;
150 # becomes
151 # $jamoMedial {bs} ↔ $BS;
152 #
153 # Furthermore, we don't care about the ordering for Jamo-Latin because
154 # we are going from single characters, so we can very easily piggyback
155 # on the Latin-Jamo.
156 #
157 # The main issue with Jamo-Latin is when to insert separators.
158 # Separators are inserted to obtain correct round trip behavior. For
159 # example, the sequence Ki A Gf Gi E, if transliterated to "kagge",
160 # would then round trip to Ki A GGi E. To prevent this, we insert a
161 # separator: "kag-ge". IMPORTANT: The need for separators depends
162 # very specifically on the behavior of the Latin-Jamo rules. A change
163 # in the Latin-Jamo behavior can completely change the way the
164 # separator insertion must be done.
165 # First try to preserve actual separators in the jamo text by doubling
166 # them. This fixes problems like:
167 # (Di)(A)(Ji)(U)(NG)-(IEUNG)(YEO)(Nf)(Gi)(YEO)(L) =→ dajung-yeongyeol
168 # =→ (Di)(A)(Ji)(U)(NG)(IEUNG)(YEO)(Nf)(Gi)(YEO)(L). This is optional
169 # -- if we don't care about losing separators in the jamo, we can delete
170 # this rule.
171 $sep $sep ↔ $sep;
172 # Triple consonants. For three consonants "axxx" we insert a
173 # separator between the first and second "x" if XXf, Xf, and Xi all
174 # exist, and we have A Xf XXi. This prevents the reverse
175 # transliteration to A XXf Xi.
176 $sep ← $latinMedialEnd s {} $SSi;
177 # For vowels the rule is similar. If there is a vowel "ae" such that
178 # "a" by itself and "e" by itself are vowels, then we want to map A E
179 # to "a-e" so as not to round trip to AE. However, in the text Ki EO
180 # IEUNG E we don't need to map to "keo-e". "keoe" suffices. For
181 # vowels of the form "aei", both "ae" + "i" and "a" + "ei" must be
182 # tested. NOTE: These rules used to have a left context of
183 # $latinInitial instead of [^$latinMedial]. The problem with this is
184 # sequences where an initial IEUNG is transliterated away:
185 # (IEUNG)(A)(IEUNG)(EO) =→ aeo =→ (IEUNG)(AE)(IEUNG)(O)
186 # Also problems in cases like gayeo, which needs to be gaye-o
187 # The hard case is a chain, like aeoeu. Normally interpreted as ae oe u. So for a-eoeu, we have to insert $sep
188 # But, we don't insert between the o and the e.
189 #
190 # a ae
191 # e eo eu
192 # i
193 # o oe
194 # u
195 # ui
196 # wa wae we wi
197 # yae ya yeo ye yo yu
198 # These are simple, since they can't chain. Note that we don't handle extreme cases like [ga][eo][e][o]
199 $sep ← a {} [$E $EO $EU];
200 $sep ← [^aow] e {} [$O $OE];
201 $sep ← [^aowy] e {} [$U $UI];
202 $sep ← [^ey] o {} [$E $EO $EU];
203 $sep ← [^y] u {} [$I];
204 # Similar to the above, but with an intervening $IEUNG.
205 $sep ← [^$latinMedial] [y] e {} $IEUNG [$O $OE];
206 $sep ← [^$latinMedial] e {} $IEUNG [$O $OE $U];
207 $sep ← [^$latinMedial] [o a] {} $IEUNG [$E $EO $EU];
208 $sep ← [^$latinMedial] [w y] a {} $IEUNG [$E $EO $EU];
209 # Single finals followed by IEUNG. The jamo sequence A Xf IEUNG E,
210 # where Xi also exists, must be transliterated as "ax-e" to prevent
211 # the round trip conversion to A Xi E.
212 $sep ← $latinMedialEnd b {} $IEUNG $jamoMedial;
213 $sep ← $latinMedialEnd d {} $IEUNG $jamoMedial;
214 $sep ← $latinMedialEnd g {} $IEUNG $jamoMedial;
215 $sep ← $latinMedialEnd h {} $IEUNG $jamoMedial;
216 $sep ← $latinMedialEnd j {} $IEUNG $jamoMedial;
217 $sep ← $latinMedialEnd k {} $IEUNG $jamoMedial;
218 $sep ← $latinMedialEnd m {} $IEUNG $jamoMedial;
219 $sep ← $latinMedialEnd n {} $IEUNG $jamoMedial;
220 $sep ← $latinMedialEnd p {} $IEUNG $jamoMedial;
221 $sep ← $latinMedialEnd s {} $IEUNG $jamoMedial;
222 $sep ← $latinMedialEnd t {} $IEUNG $jamoMedial;
223 $sep ← $latinMedialEnd l {} $IEUNG $jamoMedial;
224 # Double finals followed by IEUNG. Similar to the single finals
225 # followed by IEUNG. Any latin consonant pair X Y, between medials,
226 # that we would split by Latin-Jamo, we must handle when it occurs as
227 # part of A XYf IEUNG E, to prevent round trip conversion to A Xf Yi E
228 $sep ← $latinMedialEnd b s {} $IEUNG $jamoMedial;
229 $sep ← $latinMedialEnd k k {} $IEUNG $jamoMedial;
230 $sep ← $latinMedialEnd g s {} $IEUNG $jamoMedial;
231 $sep ← $latinMedialEnd l b {} $IEUNG $jamoMedial;
232 $sep ← $latinMedialEnd l g {} $IEUNG $jamoMedial;
233 $sep ← $latinMedialEnd l h {} $IEUNG $jamoMedial;
234 $sep ← $latinMedialEnd l m {} $IEUNG $jamoMedial;
235 $sep ← $latinMedialEnd l p {} $IEUNG $jamoMedial;
236 $sep ← $latinMedialEnd l s {} $IEUNG $jamoMedial;
237 $sep ← $latinMedialEnd l t {} $IEUNG $jamoMedial;
238 $sep ← $latinMedialEnd n g {} $IEUNG $jamoMedial;
239 $sep ← $latinMedialEnd n h {} $IEUNG $jamoMedial;
240 $sep ← $latinMedialEnd n j {} $IEUNG $jamoMedial;
241 $sep ← $latinMedialEnd s s {} $IEUNG $jamoMedial;
242 $sep ← $latinMedialEnd ch {} $IEUNG $jamoMedial;
243 # Split doubles. Text of the form A Xi Xf E, where XXi also occurs,
244 # we transliterate as "ax-xe" to prevent round trip transliteration as
245 # A XXi E.
246 $sep ← $latinMedialEnd j {} $Ji $jamoMedial;
247 $sep ← $latinMedialEnd k {} $Ki $jamoMedial;
248 $sep ← $latinMedialEnd s {} $Si $jamoMedial;
249 # XYY. This corresponds to the XYY rule in Latin-Jamo. By default
250 # Latin-Jamo maps "xyy" to Xf YYi, to keep YY together. As a result,
251 # "xyy" forms that correspond to XYf Yi must be transliterated as
252 # "xy-y".
253 $sep ← $latinMedialEnd b s {} [$Si $SSi];
254 $sep ← $latinMedialEnd g s {} [$Si $SSi];
255 $sep ← $latinMedialEnd l b {} [$Bi];
256 $sep ← $latinMedialEnd l g {} [$Gi];
257 $sep ← $latinMedialEnd l s {} [$Si $SSi];
258 $sep ← $latinMedialEnd n g {} [$Gi];
259 $sep ← $latinMedialEnd n j {} [$Ji $JJi];
260 # $sep ← $latinMedialEnd l {} [$PPi];
261 # $sep ← $latinMedialEnd l {} [$TTi];
262 $sep ← $latinMedialEnd l p {} [$Pi];
263 $sep ← $latinMedialEnd l t {} [$Ti];
264 $sep ← $latinMedialEnd k {} [$KKi $Ki];
265 $sep ← $latinMedialEnd p {} $Pi;
266 $sep ← $latinMedialEnd t {} $Ti;
267 $sep ← $latinMedialEnd c {} [$Hi];
268 # Deletion of IEUNG is handled below.
269 #----------------------------------------------------------------------
270 # Latin-Jamo
271 # [Basic, context-free Jamo-Latin rules are embedded here too. See
272 # above.]
273 # Split digraphs: Text of the form 'axye', where 'xy' is a final
274 # digraph, 'x' is a final (by itself), 'y' is an initial, and 'a' and
275 # 'e' are medials, we want to transliterate this as A Xf Yi E rather
276 # than A XYf IEUNG E. We do NOT include text of the form "axxe",
277 # since that is handled differently below. These rules are generated
278 # programmatically from the jamo data.
279 $jamoMedial {b s} $latinMedial → $Bf $Si;
280 $jamoMedial {g s} $latinMedial → $Gf $Si;
281 $jamoMedial {l b} $latinMedial → $L $Bi;
282 $jamoMedial {l g} $latinMedial → $L $Gi;
283 $jamoMedial {l h} $latinMedial → $L $Hi;
284 $jamoMedial {l m} $latinMedial → $L $Mi;
285 $jamoMedial {l p} $latinMedial → $L $Pi;
286 $jamoMedial {l s} $latinMedial → $L $Si;
287 $jamoMedial {l t} $latinMedial → $L $Ti;
288 $jamoMedial {n g} $latinMedial → $Nf $Gi;
289 $jamoMedial {n h} $latinMedial → $Nf $Hi;
290 $jamoMedial {n j} $latinMedial → $Nf $Ji;
291 # Single consonants are initials: Text of the form 'axe', where 'x'
292 # can be an initial or a final, and 'a' and 'e' are medials, we want
293 # to transliterate as A Xi E rather than A Xf IEUNG E.
294 $jamoMedial {b} $latinMedial → $Bi;
295 $jamoMedial {ch} $latinMedial → $CHi;
296 $jamoMedial {d} $latinMedial → $Di;
297 $jamoMedial {g} $latinMedial → $Gi;
298 $jamoMedial {h} $latinMedial → $Hi;
299 $jamoMedial {j} $latinMedial → $Ji;
300 $jamoMedial {k} $latinMedial → $Ki;
301 $jamoMedial {m} $latinMedial → $Mi;
302 $jamoMedial {n} $latinMedial → $Ni;
303 $jamoMedial {p} $latinMedial → $Pi;
304 $jamoMedial {s} $latinMedial → $Si;
305 $jamoMedial {t} $latinMedial → $Ti;
306 $jamoMedial {l} $latinMedial → $Li;
307 # Doubled initials. The sequence "axxe", where XX exists as an initial
308 # (XXi), and also Xi and Xf exist (true of all digraphs XX), we want
309 # to transliterate as A XXi E, rather than split to A Xf Xi E.
310 $jamoMedial {p p} $latinMedial → $PPi;
311 $jamoMedial {t t} $latinMedial → $TTi;
312 $jamoMedial {j j} $latinMedial → $JJi;
313 $jamoMedial {k k} $latinMedial → $KKi;
314 $jamoMedial {s s} $latinMedial → $SSi;
315 # XYY. Because doubled consonants bind more strongly than XY
316 # consonants, we must handle the sequence "axyy" specially. Here XYf
317 # and YYi must exist. In these cases, we map to Xf YYi rather than
318 # XYf.
319 # However, there are two special cases.
320 $jamoMedial {lp} p p → $LP;
321 $jamoMedial {lt} t t → $LT;
322 # End special cases
323 $jamoMedial {b} s s → $Bf;
324 $jamoMedial {g} s s → $Gf;
325 $jamoMedial {l} b b → $L;
326 $jamoMedial {l} g g → $L;
327 $jamoMedial {l} s s → $L;
328 $jamoMedial {l} t t → $L;
329 $jamoMedial {l} p p → $L;
330 $jamoMedial {n} g g → $Nf;
331 $jamoMedial {n} j j → $Nf;
332 # Finals: Attach consonant with preceding medial to preceding medial.
333 # Do this BEFORE mapping consonants to initials. Longer keys must
334 # precede shorter keys that they start with, e.g., the rule for 'bs'
335 # must precede 'b'.
336 # [BASIC Jamo-Latin FINALS handled here. Order irrelevant within this
337 # block for Jamo-Latin.]
338 $jamoMedial {bs} ↔ $BS;
339 $jamoMedial {b} ↔ $Bf;
340 $jamoMedial {ch} ↔ $Cf;
341 $jamoMedial {c} → $Cf;
342 $jamoMedial {d} ↔ $Df;
343 $jamoMedial {kk} ↔ $GGf;
344 $jamoMedial {gs} ↔ $GS;
345 $jamoMedial {g} ↔ $Gf;
346 $jamoMedial {h} ↔ $Hf;
347 $jamoMedial {j} ↔ $Jf;
348 $jamoMedial {k} ↔ $Kf;
349 $jamoMedial {lb} ↔ $LB; $jamoMedial {lg} ↔ $LG;
350 $jamoMedial {lh} ↔ $LH;
351 $jamoMedial {lm} ↔ $LM;
352 $jamoMedial {lp} ↔ $LP;
353 $jamoMedial {ls} ↔ $LS;
354 $jamoMedial {lt} ↔ $LT;
355 $jamoMedial {l} ↔ $L;
356 $jamoMedial {m} ↔ $Mf;
357 $jamoMedial {ng} ↔ $NG;
358 $jamoMedial {nh} ↔ $NH;
359 $jamoMedial {nj} ↔ $NJ;
360 $jamoMedial {n} ↔ $Nf;
361 $jamoMedial {p} ↔ $Pf;
362 $jamoMedial {ss} ↔ $SSf;
363 $jamoMedial {s} ↔ $Sf;
364 $jamoMedial {t} ↔ $Tf;
365 # Initials: Attach single consonant to following medial. Do this
366 # AFTER mapping finals. Longer keys must precede shorter keys that
367 # they start with, e.g., the rule for 'gg' must precede 'g'.
368 # [BASIC Jamo-Latin INITIALS handled here. Order irrelevant within
369 # this block for Jamo-Latin.]
370 {kk} $latinMedial ↔ $KKi;
371 {g} $latinMedial ↔ $Gi;
372 {n} $latinMedial ↔ $Ni;
373 {tt} $latinMedial ↔ $TTi;
374 {d} $latinMedial ↔ $Di;
375 {l} $latinMedial ↔ $Li;
376 {m} $latinMedial ↔ $Mi;
377 {pp} $latinMedial ↔ $PPi;
378 {b} $latinMedial ↔ $Bi;
379 {ss} $latinMedial ↔ $SSi;
380 {s} $latinMedial ↔ $Si;
381 {jj} $latinMedial ↔ $JJi;
382 {j} $latinMedial ↔ $Ji;
383 {ch} $latinMedial ↔ $CHi;
384 {c} $latinMedial → $CHi;
385 {k} $latinMedial ↔ $Ki;
386 {t} $latinMedial ↔ $Ti;
387 {p} $latinMedial ↔ $Pi;
388 {h} $latinMedial ↔ $Hi;
389 # 'r' in final position. Because of the equivalency of the 'l' and
390 # 'r' jamo (the glyphs are the same), we try to provide the same
391 # equivalency in Latin-Jamo. The 'l' to 'r' conversion is handled
392 # below. If we see an 'r' in an apparent final position, treat it
393 # like 'l'. For example, "karka" =→ Ki A R EU Ki A without this rule.
394 # Instead, we want Ki A L Ki A.
395 # Initial + Final: If we match the next rule, we have initial then
396 # final consonant with no intervening medial. We insert the null
397 # vowel BEFORE it to create a well-formed syllable. (In the next rule
398 # we insert a null vowel AFTER an anomalous initial.)
399 # Initial + X: This block matches an initial consonant not followed by
400 # a medial. We insert the null vowel after it. We handle double
401 # initials explicitly here; for single initial consonants we insert EU
402 # (as Latin) after them and let standard rules do the rest.
403 # BREAKS ROUND TRIP INTEGRITY
404 kk → $KKi $EU;
405 tt → $TTi $EU;
406 pp → $PPi $EU;
407 ss → $SSi $EU;
408 jj → $JJi $EU;
409 ch → $CHi $EU;
410 ([lbdghjkmnpst]) → | $1 eu;
411 # X + Final: Finally we have to deal with a consonant that can only be
412 # interpreted as a final (not an initial) and which is preceded
413 # neither by an initial nor a medial. It is the start of the
414 # syllable, but cannot be. Most of these will already be handled by
415 # the above rules. 'bs' splits into Bi EU Sf. Similar for 'gs' 'ng'
416 # 'nh' 'nj'. The only problem is 'l' and digraphs starting with 'l'.
417 # For this isolated case, we could add a null initial and medial,
418 # which would give "la" =→ IEUNG EU L IEUNG A, for example. A more
419 # economical solution is to transliterate isolated "l" (that is,
420 # initial "l") to "r". (Other similar conversions of consonants that
421 # occur neither as initials nor as finals are handled below.)
422 l → | r;
423 # Medials. If a medial is preceded by an initial, then we proceed
424 # normally. As usual, longer keys must precede shorter ones.
425 # [BASIC Jamo-Latin MEDIALS handled here. Order irrelevant within
426 # this block for Jamo-Latin.]
427 #
428 # a e i o u
429 # ae
430 # eo eu
431 # oe
432 # ui
433 # wa we wi
434 # wae
435 # yae ya yeo ye yo yu
436 $jamoInitial {ae} ↔ $AE;
437 $jamoInitial {a} ↔ $A;
438 $jamoInitial {eo} ↔ $EO;
439 $jamoInitial {eu} ↔ $EU;
440 $jamoInitial {e} ↔ $E;
441 $jamoInitial {i} ↔ $I;
442 $jamoInitial {oe} ↔ $OE;
443 $jamoInitial {o} ↔ $O;
444 $jamoInitial {ui} ↔ $UI;
445 $jamoInitial {u} ↔ $U;
446 $jamoInitial {wae} ↔ $WAE;
447 $jamoInitial {wa} ↔ $WA;
448 $jamoInitial {wo} ↔ $WO;
449 $jamoInitial {we} ↔ $WE;
450 $jamoInitial {wi} ↔ $WI;
451 $jamoInitial {yae} ↔ $YAE;
452 $jamoInitial {ya} ↔ $YA;
453 $jamoInitial {yeo} ↔ $YEO;
454 $jamoInitial {ye} ↔ $YE;
455 $jamoInitial {yo} ↔ $YO;
456 $jamoInitial {yu} ↔ $YU;
457 # We may see an anomalous isolated 'w' or 'y'. In that case, we
458 # interpret it as 'wi' and 'yu', respectively.
459 # BREAKS ROUND TRIP INTEGRITY
460 $jamoInitial {w} → | wi;
461 $jamoInitial {y} → | yu;
462 # Otherwise, insert a null consonant IEUNG before the medial (which is
463 # still an untransliterated latin vowel).
464 ($latinMedial) → $IEUNG | $1;
465 # Convert non-jamo latin consonants to equivalents. These occur as
466 # neither initials nor finals in jamo. 'l' occurs as a final, but not
467 # an initial; it is handled above. The following letters (left hand
468 # side) will never be output by Jamo-Latin.
469 f → | p;
470 q → | k;
471 v → | b;
472 x → | ks;
473 z → | s;
474 r → | l;
475 c → | k;
476 # Delete separators (Latin-Jamo).
477 $sep → ;
478 # Delete null consonants (Jamo-Latin). Do NOT delete null EU vowels,
479 # since these may also occur in text.
480 ← $IEUNG;
481 #- N.B. DO NOT put any filters, NFD, etc. here -- those are aliased in
482 #- the INDEX file. This transliterator is, by itself, not
483 #- instantiated. It is used as a part of Latin-Jamo, Latin-Hangul, or
484 #- inverses thereof.
485 # eof
486