﻿# © 2016 and later: Unicode, Inc. and others.
# License & terms of use: http://www.unicode.org/copyright.html#License
# ***************************************************************************
# *
# *  Copyright (C) 2004-2016, International Business Machines
# *  Corporation; Unicode, Inc.; and others.  All Rights Reserved.
# *
# ***************************************************************************
# File: ja_Latn_ko.txt
# Generated from CLDR 
#

# Japanese (Rōmaji) to Korean (Hangul) transliteration table for ICU.
# Can be run in sequence after e.g. Katakana-Latin.
#
# Based on 문교부 고시 제85-11호 (1986. 1. 7.) 외래어 표기법
# For background info, see http://ko.wikisource.org/wiki/문교부_고시_제85-11호
# and http://ko.wikipedia.org/wiki/외래어_표기법 (外來語表記法)
::NFD(NFC);
::[:Latin:] Lower();
$consonant = [ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒ];
$lengthMarker = [\u0302\u0304];
#
#
# Drop hyphens and apostrophes.
[\-\'] → ;
#
#
# Turn long /e:/ into diphthong /ei/.
e $lengthMarker → | e i ;
#
#
# Ignore vowel length everywhere else.
$lengthMarker → ;
#
#
# Vowels.
#
[^$consonant] { ( [aiueoyw] ) → ᄋ | $1 ;  # Supply a required null initial.
a → ᅡ ;
i\~e → | ie ;  # イェ
i → ᅵ ;
u\~a → | wa ;  # クァ, グァ
u\~i → ᅱ ;     # ウィ, クィ, etc.
u\~e → ᅰ ;     # ウェ
u\~o → ᅯ ;     # ウォ
u → ᅮ ;
e → ᅦ ;
o → ᅩ ;
#
#
# Geminates.
#
kk → ᆺ | k ;
ss → ᆺ | s ;
tt → ᆺ | t ;
tc → ᆺ | c ;
cc → ᆺ | c ;
hh → ᆺ | h ;
ff → ᆺ | f ;
rr → ᆺ | r ;
gg → ᆺ | g ;
zz → ᆺ | z ;
jj → ᆺ | j ;
dd → ᆺ | d ;
bb → ᆺ | b ;
vv → ᆺ | v ;
pp → ᆺ | p ;
#
#
# Consonants.
#
' ' { k → | g ;   # Beginning of a word (after space).
^k      → | g ;   # Beginning of the string.
k → ᄏ ;
#
#
sh → | sy ;
su → 스 ;
s → ᄉ ;
#
#
te\~     → | t ;   # テュ
to\~     → | t ;   # トゥ
tsu\~    → | ch ;  # ツァ, ツィ, etc.
tsu → 쓰 ;
ts       → | ch ;
' ' { t  → | d ;
^t       → | d ;
t → ᄐ ;
' ' { ch → | j ;
^ch      → | j ;
ch → ᄎ ;
#
#
n } [\ \'bcdfghjkmnprstwz] → ᆫ ;
n$ → ᆫ ;
n → ᄂ ;
#
#
h → ᄒ ;
fu\~ → | p ;   # フュ
fu   → | hu ;
f    → | p ;
#
#
m } [bmp] → ᆫ ;
m → ᄆ ;
#
#
ya → ᅣ ;
yi → ᅵ ;  # Added for convenience, after shi.
yu → ᅲ ;
ye → ᅨ ;
yo → ᅭ ;
#
#
r → ᄅ ;
#
#
wa → ᅪ ;
w → ;
#
#
g → ᄀ ;
#
#
zu → 즈 ;
z → | j ;
j → ᄌ ;
#
#
de\~  → | d ;   # デュ
dji\~ → | j ;   # ヂァ, ヂゥ, etc.
dji   → | ji ;  # ヂ
do\~  → | d ;   # ドゥ
dzu\~ → | j ;   # ヅァ, ヅィ, etc.
dzu   → | zu ;  # ヅ
dz    → | j ;
d → ᄃ ;
#
#
b → ᄇ ;
vu\~ → | b ;  # ヴァ, etc.
v    → | b ;
#
#
p → ᄑ ;
#
#
::NFC(NFD);

