metadata {
authority_id: moct id: 2000-viajamo language: iso-639-2:kor source_script: Hang destination_script: Latn name: Ministry of Culture and Tourism Korean Romanization System (2000) url: https://www.korean.go.kr/front_eng/roman/roman_01.do creation_date: 2000 adoption_date: 2002 description: | Generation of Jamo from Hangul This is how the Hangul-to-Jamo maps are generated. Please refer to this page for details about Korean text handling in Unicode. http://gernot-katzers-spice-pages.com/var/korean_hangul_unicode.html This formula copied from the page above is used: [stem] ==== tail = mod (Hangul codepoint − 44032, 28) vowel = 1 + mod (Hangul codepoint − 44032 − tail, 588) / 28 lead = 1 + int [ (Hangul codepoint − 44032)/588 ] ==== [source,python] ---- import pandas as pd import re import math leadjamo = [chr(0x1100+i) for i in range(0,19)] # ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒ voweljamo = [chr(0x1161+i) for i in range(0,21)] # ᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ tailjamo = ['']+[chr(0x11A8+i) for i in range(0,27)] # ᆨᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂ hanguls = [chr(i) for i in range(44032,55204)] tails = [tailjamo[(i-44032) % 28] for i in range(44032,55204)] vowels = [voweljamo[((i-44032-((i-44032) % 28)) % 588) // 28] for i in range(44032,55204)] leads = [leadjamo[math.floor((i-44032)// 588)] for i in range(44032,55204)] kr_df = pd.DataFrame({'Hangul':hanguls, 'Lead':leads,'Vowel':vowels, 'Tail':tails}) ---- Hangul Lead Vowel Tail 0 가 ᄀ ᅡ 1 각 ᄀ ᅡ ᆨ 2 갂 ᄀ ᅡ ᆩ 3 갃 ᄀ ᅡ ᆪ 4 간 ᄀ ᅡ ᆫ 5 갅 ᄀ ᅡ ᆬ 6 갆 ᄀ ᅡ ᆭ 7 갇 ᄀ ᅡ ᆮ 8 갈 ᄀ ᅡ ᆯ 9 갉 ᄀ ᅡ ᆰ notes: []
}
tests {
test "불국사", "Bulguksa" test "묵호", "Mukho" test "울산", "Ulsan" test "독립문", "Dongnimmun" test "강남역", "Gangnamyeok" test "남산리", "Namsan-ri" #Note: no assimilation for -ri even after nasals test "내월리", "Naewol-ri" test "울릉군", "Ulleung-gun" test "설악산", "Seoraksan" test "삼죽면", "Samjuk-myeon" test "평리1동", "Pyeongni Il-dong" test "평리2동", "Pyeongni I-dong" test "탑안이", "Tabani"
}
dependency “var-kor”, import: true dependency “var-kor-Hang-Hang-jamo”, as: hangjamo
# Those may be parts of this supposed korean library aliases {
def_alias double_cons_jamo, any("ᄁᄄᄈᄍᄊ") def_alias aspirated_cons_jamo, any("ᄏᄐᄑᄎ")
}
stage {
# convert numbers to space + Hangul sub none, space, not_before: any([digit, space]), after: digit sub "1", "일" sub "2", "이" sub "3", "삼" sub "4", "사" sub "5", "오" sub "6", "육" sub "7", "칠" sub "8", "팔" sub "9", "구" # add hyphen in front of generics sub none, "-", not_before: line_start, after: any("도시군구읍면리동가") + line_end run map.hangjamo.stage.main # Add space to the two ends of the string for easier word boundary handling sub line_start, space sub line_end, space # HANGUL JONGSEONG SSANGKIYEOK sub "ᆩᄋ", "ᆨᄁ" sub "ᆩ", "ᆨ" # HANGUL JONGSEONG SSANGKIYEOK sub "ᆪᄋ", "ᆨᄉ" sub "ᆪ", "ᆨ" # HANGUL JONGSEONG NIEUN-CIEUC sub "ᆬᄋ", "ᆫᄌ" sub "ᆬ", "ᆫ" # HANGUL JONGSEONG NIEUN-CIEUC sub "ᆭᄀ", "ᆫᄏ" sub "ᆭᄃ", "ᆫᄐ" sub "ᆭᄇ", "ᆫᄑ" sub "ᆭᄌ", "ᆫᄎ" sub "ᆭ", "ᆫ" # HANGUL JONGSEONG TIEUT sub "ᆮ", "ᆺ", after: any("ᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄌᄍᄎᄏᄐᄑᄒ") # HANGUL JONGSEONG RIEUL-SIOS sub "ᆳᄋ", "ᆯᄉ" sub "ᆳ", "ᆯ" # HANGUL JONGSEONG RIEUL-THIEUTH sub "ᆴᄋ", "ᆯᄐ" sub "ᆴ", "ᆯ" # HANGUL JONGSEONG RIEUL-PHIEUPH sub "ᆵᄋ", "ᆯᄑ" sub "ᆵ", "ᆯ", after: any("ᄃᄄᄐ") sub "ᆵ", "ᄇ" parallel { # HANGUL JONGSEONG RIEUL-HIEUH sub "ᆶᄀ", "ᆯᄏ" sub "ᆶᄃ", "ᆯᄐ" sub "ᆶᄇ", "ᆯᄑ" sub "ᆶᄌ", "ᆯᄎ" sub "ᆶ", "ᆯ" # HANGUL JONGSEONG PIEUP-SIOS sub "ᆹᄋ", "ᄇᄉ" sub "ᆹ", "ᄇ" # HANGUL JONGSEONG SSANG-SIOS sub "ᆻᄋ", "ᆺᄊ" sub "ᆻ", "ᆺ" # HANGUL JONGSEONG CIEUC sub "ᆽᄋ", "ᆺᄌ" sub "ᆽ", "ᆺ" # HANGUL JONGSEONG CHIEUCH sub "ᆾᄋ", "ᆺᄎ" sub "ᆾ", "ᆺ" # HANGUL JONGSEONG KHIEUKH sub "ᆿᄋ", "ᆨᄏ" sub "ᆿ", "ᆨ" # HANGUL JONGSEONG THIEUTH sub "ᇀᄋ", "ᆺᄐ" sub "ᇀ", "ᆺ" # HANGUL JONGSEONG PHIEUPH sub "ᇁᄋ", "ᆸᄑ" sub "ᇁ", "ᆸ" # HANGUL JONGSEONG HIEUH sub "ᇂᄀ", "ᄏ" sub "ᇂᄃ", "ᄐ" sub "ᇂᄇ", "ᄑ" sub "ᇂᄌ", "ᄎ" sub "ᇂ", "" } parallel { # From Unicode Chart # https://github.com/unicode-org/cldr/blob/master/common/transforms/Korean-Latin-BGN.xml sub "ᆮᄋ", "d" # HANGUL JONGSEONG TIEUT + CHOSEONG IEUNG sub "ᆨᄀ", "kg" # HANGUL JONGSEONG KIYEOK + CHOSEONG KIYEOK sub "ᆨᄂ", "ngn" # HANGUL JONGSEONG KIYEOK + CHOSEONG NIEUN sub "ᆨᄃ", "kd" # HANGUL JONGSEONG KIYEOK + CHOSEONG TIEUT sub "ᆨᄅ", "ngn" # HANGUL JONGSEONG KIYEOK + CHOSEONG RIEUL sub "ᆨᄆ", "ngm" # HANGUL JONGSEONG KIYEOK + CHOSEONG MIEUM sub "ᆨᄇ", "kb" # HANGUL JONGSEONG KIYEOK + CHOSEONG PIEUP sub "ᆨᄉ", "ks" # HANGUL JONGSEONG KIYEOK + CHOSEONG SIOS sub "ᆨᄋ", "g" # HANGUL JONGSEONG KIYEOK + CHOSEONG IEUNG sub "ᆨᄌ", "kj" # HANGUL JONGSEONG KIYEOK + CHOSEONG CIEUC sub "ᆨᄎ", "kch" # HANGUL JONGSEONG KIYEOK + CHOSEONG CHIEUCH sub "ᆨᄏ", "kk" # HANGUL JONGSEONG KIYEOK + CHOSEONG KHIEUKH # NOTE: the dash is always skipped sub "ᆨᄐ", "kt" # HANGUL JONGSEONG KIYEOK + CHOSEONG THIEUTH sub "ᆨᄑ", "kp" # HANGUL JONGSEONG KIYEOK + CHOSEONG PHIEUPH sub "ᆨᄒ", "kh" # HANGUL JONGSEONG KIYEOK + CHOSEONG HIEUH sub "ᆨᄁ", "kkk" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGKIYEOK sub "ᆨᄄ", "ktt" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGTIEUT sub "ᆨᄈ", "kpp" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGPIEUP sub "ᆨᄊ", "kss" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGSIOS sub "ᆨᄍ", "kjj" # HANGUL JONGSEONG KIYEOK + CHOSEONG SSANGCIEUC sub "ᆫᄀ", "ng" # HANGUL JONGSEONG NIEUN + CHOSEONG KIEUK sub "ᆫᄂ", "nn" # HANGUL JONGSEONG NIEUN + CHOSEONG NIEUN sub "ᆫᄃ", "nd" # HANGUL JONGSEONG NIEUN + CHOSEONG TIEUT sub "ᆫᄅ", "ll" # HANGUL JONGSEONG NIEUN + CHOSEONG RIEUL sub "ᆫᄆ", "nm" # HANGUL JONGSEONG NIEUN + CHOSEONG MIEUM sub "ᆫᄇ", "nb" # HANGUL JONGSEONG NIEUN + CHOSEONG PIEUP sub "ᆫᄉ", "ns" # HANGUL JONGSEONG NIEUN + CHOSEONG SIOS sub "ᆫᄋ", "n" # HANGUL JONGSEONG NIEUN + CHOSEONG IEUNG sub "ᆫᄌ", "nj" # HANGUL JONGSEONG NIEUN + CHOSEONG CIEUC sub "ᆫᄎ", "nch" # HANGUL JONGSEONG NIEUN + CHOSEONG CHIEUCH sub "ᆫᄏ", "nk" # HANGUL JONGSEONG NIEUN + CHOSEONG KHIEUKH sub "ᆫᄐ", "nt" # HANGUL JONGSEONG NIEUN + CHOSEONG THIEUTH sub "ᆫᄑ", "np" # HANGUL JONGSEONG NIEUN + CHOSEONG PHIEUPH sub "ᆫᄒ", "nh" # HANGUL JONGSEONG NIEUN + CHOSEONG HIEUH sub "ᆫᄁ", "nkk" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGKIYEOK sub "ᆫᄄ", "ntt" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGTIEUT sub "ᆫᄈ", "npp" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGPIEUP sub "ᆫᄊ", "nss" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGSIOS sub "ᆫᄍ", "njj" # HANGUL JONGSEONG NIEUN + CHOSEONG SSANGCIEUC sub "ᆯᄀ", "lg" # HANGUL JONGSEONG RIEUL + CHOSEONG KIYEOK sub "ᆯᄂ", "ll" # HANGUL JONGSEONG RIEUL + CHOSEONG NIEUN sub "ᆯᄃ", "ld" # HANGUL JONGSEONG RIEUL + CHOSEONG TIEUT sub "ᆯᄅ", "ll" # HANGUL JONGSEONG RIEUL + CHOSEONG RIEUL sub "ᆯᄆ", "lm" # HANGUL JONGSEONG RIEUL + CHOSEONG MIEUM sub "ᆯᄇ", "lb" # HANGUL JONGSEONG RIEUL + CHOSEONG PIEUP sub "ᆯᄉ", "ls" # HANGUL JONGSEONG RIEUL + CHOSEONG SIOS sub "ᆯᄋ", "r" # HANGUL JONGSEONG RIEUL + CHOSEONG IEUNG sub "ᆯᄌ", "lj" # HANGUL JONGSEONG RIEUL + CHOSEONG CIEUC sub "ᆯᄎ", "lch" # HANGUL JONGSEONG RIEUL + CHOSEONG CHIEUCH sub "ᆯᄏ", "lk" # HANGUL JONGSEONG RIEUL + CHOSEONG KHIEUKH sub "ᆯᄐ", "lt" # HANGUL JONGSEONG RIEUL + CHOSEONG THIEUTH sub "ᆯᄑ", "lp" # HANGUL JONGSEONG RIEUL + CHOSEONG PHIEUPH sub "ᆯᄒ", "rh" # HANGUL JONGSEONG RIEUL + CHOSEONG HIEUH sub "ᆯᄁ", "lkk" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGKIYEOK sub "ᆯᄄ", "ltt" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGTIEUT sub "ᆯᄈ", "lpp" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGPIEUP sub "ᆯᄊ", "lss" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGSIOS sub "ᆯᄍ", "ljj" # HANGUL JONGSEONG RIEUL + CHOSEONG SSANGCIEUC sub "ᆷᄀ", "mg" # HANGUL JONGSEONG MIEUM + CHOSEONG KIYEOK sub "ᆷᄂ", "mn" # HANGUL JONGSEONG MIEUM + CHOSEONG NIEUN sub "ᆷᄃ", "md" # HANGUL JONGSEONG MIEUM + CHOSEONG TIEUT sub "ᆷᄅ", "mn" # HANGUL JONGSEONG MIEUM + CHOSEONG RIEUL sub "ᆷᄆ", "mm" # HANGUL JONGSEONG MIEUM + CHOSEONG MIEUM sub "ᆷᄇ", "mb" # HANGUL JONGSEONG MIEUM + CHOSEONG PIEUP sub "ᆷᄉ", "ms" # HANGUL JONGSEONG MIEUM + CHOSEONG SIOS sub "ᆷᄋ", "m" # HANGUL JONGSEONG MIEUM + CHOSEONG IEUNG sub "ᆷᄌ", "mj" # HANGUL JONGSEONG MIEUM + CHOSEONG CIEUC sub "ᆷᄎ", "mch" # HANGUL JONGSEONG MIEUM + CHOSEONG CHIEUCH sub "ᆷᄏ", "mk" # HANGUL JONGSEONG MIEUM + CHOSEONG KHIEUKH sub "ᆷᄐ", "mt" # HANGUL JONGSEONG MIEUM + CHOSEONG THIEUTH sub "ᆷᄑ", "mp" # HANGUL JONGSEONG MIEUM + CHOSEONG PHIEUPH sub "ᆷᄒ", "mh" # HANGUL JONGSEONG MIEUM + CHOSEONG HIEUH sub "ᆷᄁ", "mkk" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGKIYEOK sub "ᆷᄄ", "mtt" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGTIEUT sub "ᆷᄈ", "mpp" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGPIEUP sub "ᆷᄊ", "mss" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGSIOS sub "ᆷᄍ", "mjj" # HANGUL JONGSEONG MIEUM + CHOSEONG SSANGCIEUC sub "ᆸᄀ", "pg" # HANGUL JONGSEONG PIEUP + CHOSEONG KIYEOK sub "ᆸᄂ", "mn" # HANGUL JONGSEONG PIEUP + CHOSEONG NIEUN sub "ᆸᄃ", "pd" # HANGUL JONGSEONG PIEUP + CHOSEONG TIEUT sub "ᆸᄅ", "mn" # HANGUL JONGSEONG PIEUP + CHOSEONG RIEUL sub "ᆸᄆ", "mm" # HANGUL JONGSEONG PIEUP + CHOSEONG MIEUM sub "ᆸᄇ", "pb" # HANGUL JONGSEONG PIEUP + CHOSEONG PIEUP sub "ᆸᄉ", "ps" # HANGUL JONGSEONG PIEUP + CHOSEONG SIOS sub "ᆸᄋ", "b" # HANGUL JONGSEONG PIEUP + CHOSEONG IEUNG sub "ᆸᄌ", "pj" # HANGUL JONGSEONG PIEUP + CHOSEONG CIEUC sub "ᆸᄎ", "pch" # HANGUL JONGSEONG PIEUP + CHOSEONG CHIEUCH sub "ᆸᄏ", "pk" # HANGUL JONGSEONG PIEUP + CHOSEONG KHIEUKH sub "ᆸᄐ", "pt" # HANGUL JONGSEONG PIEUP + CHOSEONG THIEUTH sub "ᆸᄑ", "pp" # HANGUL JONGSEONG PIEUP + CHOSEONG PHIEUPH sub "ᆸᄒ", "ph" # HANGUL JONGSEONG PIEUP + CHOSEONG HIEUH sub "ᆸᄁ", "pkk" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGKIYEOK sub "ᆸᄄ", "ptt" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGTIEUT sub "ᆸᄈ", "ppp" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGPIEUP sub "ᆸᄊ", "pss" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGSIOS sub "ᆸᄍ", "pjj" # HANGUL JONGSEONG PIEUP + CHOSEONG SSANGCIEUC sub "ᆺᄀ", "tg" # HANGUL JONGSEONG SIOS + CHOSEONG KIYEOK sub "ᆺᄂ", "nn" # HANGUL JONGSEONG SIOS + CHOSEONG NIEUN sub "ᆺᄃ", "td" # HANGUL JONGSEONG SIOS + CHOSEONG TIEUT sub "ᆺᄅ", "nn" # HANGUL JONGSEONG SIOS + CHOSEONG RIEUL sub "ᆺᄆ", "nm" # HANGUL JONGSEONG SIOS + CHOSEONG MIEUM sub "ᆺᄇ", "tb" # HANGUL JONGSEONG SIOS + CHOSEONG PIEUP sub "ᆺᄉ", "ts" # HANGUL JONGSEONG SIOS + CHOSEONG SIOS sub "ᆺᄋ", "s" # HANGUL JONGSEONG SIOS + CHOSEONG IEUNG sub "ᆺᄌ", "tj" # HANGUL JONGSEONG SIOS + CHOSEONG CIEUC sub "ᆺᄎ", "tch" # HANGUL JONGSEONG SIOS + CHOSEONG CHIEUCH sub "ᆺᄏ", "tk" # HANGUL JONGSEONG SIOS + CHOSEONG KHIEUKH sub "ᆺᄐ", "tt" # HANGUL JONGSEONG SIOS + CHOSEONG THIEUTH sub "ᆺᄑ", "tp" # HANGUL JONGSEONG SIOS + CHOSEONG PHIEUPH sub "ᆺᄒ", "th" # HANGUL JONGSEONG SIOS + CHOSEONG HIEUH sub "ᆺᄁ", "tkk" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGKIYEOK sub "ᆺᄄ", "ttt" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGTIEUT sub "ᆺᄈ", "tpp" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGPIEUP sub "ᆺᄊ", "tss" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGSIOS sub "ᆺᄍ", "tjj" # HANGUL JONGSEONG SIOS + CHOSEONG SSANGCIEUC sub "ᆼᄀ", "ngg" # HANGUL JONGSEONG IEUNG + CHOSEONG KIYEOK sub "ᆼᄂ", "ngn" # HANGUL JONGSEONG IEUNG + CHOSEONG NIEUN sub "ᆼᄃ", "ngd" # HANGUL JONGSEONG IEUNG + CHOSEONG TIEUT sub "ᆼᄅ", "ngn" # HANGUL JONGSEONG IEUNG + CHOSEONG RIEUL sub "ᆼᄆ", "ngm" # HANGUL JONGSEONG IEUNG + CHOSEONG MIEUM sub "ᆼᄇ", "ngb" # HANGUL JONGSEONG IEUNG + CHOSEONG PIEUP sub "ᆼᄉ", "ngs" # HANGUL JONGSEONG IEUNG + CHOSEONG SIOS sub "ᆼᄋ", "ng" # HANGUL JONGSEONG IEUNG + CHOSEONG IEUNG sub "ᆼᄌ", "ngj" # HANGUL JONGSEONG IEUNG + CHOSEONG CIEUC sub "ᆼᄎ", "ngch" # HANGUL JONGSEONG IEUNG + CHOSEONG CHIEUCH sub "ᆼᄏ", "ngk" # HANGUL JONGSEONG IEUNG + CHOSEONG KHIEUKH sub "ᆼᄐ", "ngt" # HANGUL JONGSEONG IEUNG + CHOSEONG THIEUTH sub "ᆼᄑ", "ngp" # HANGUL JONGSEONG IEUNG + CHOSEONG PHIEUPH sub "ᆼᄒ", "ngh" # HANGUL JONGSEONG IEUNG + CHOSEONG HIEUH sub "ᆼᄁ", "ngkk" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGKIYEOK sub "ᆼᄄ", "ngtt" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGTIEUT sub "ᆼᄈ", "ngpp" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGPIEUP sub "ᆼᄊ", "ngss" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGSIOS sub "ᆼᄍ", "ngjj" # HANGUL JONGSEONG IEUNG + CHOSEONG SSANGCIEUC } sub "ᄀ", "g", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG KIYEOK sub "ᄂ", "n", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG NIEUN sub "ᄃ", "d", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG TIEUT sub "ᄅ", "r", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG RIEUL sub "ᄆ", "m", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG MIEUM sub "ᄇ", "b", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG PIEUP sub "ᄉ", "s", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG SIOS sub "ᄋ", "", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG IEUNG sub "ᄌ", "j", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG CIEUC sub "ᄎ", "ch", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG CHIEUCH sub "ᄏ", "k", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG KHIEUKH sub "ᄐ", "t", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG THIEUTH sub "ᄑ", "p", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG PHIEUPH sub "ᄒ", "h", before: any([alpha, digit, jamo_vowel, "-"]) # VOWEL + CHOSEONG HIEUH sub "ᄁ", "kk", before: any([alpha, digit, jamo_vowel]) # VOWEL + CHOSEONG SSANGKIYEOK sub "ᄄ", "tt", before: any([alpha, digit, jamo_vowel]) # VOWEL + CHOSEONG SSANGTIEUT sub "ᄈ", "pp", before: any([alpha, digit, jamo_vowel]) # VOWEL + CHOSEONG SSANGPIEUP sub "ᄊ", "ss", before: any([alpha, digit, jamo_vowel]) # VOWEL + CHOSEONG SSANGSIOS sub "ᄍ", "jj", before: any([alpha, digit, jamo_vowel]) # VOWEL + CHOSEONG SSANGCIEUC parallel { sub "ᆰᄀ", "lg" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG KIYEOK sub "ᆰᄂ", "ngn" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG NIEUN sub "ᆰᄃ", "kd" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG TIEUT sub "ᆰᄅ", "ngn" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG RIEUL sub "ᆰᄆ", "ngm" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG MIEUM sub "ᆰᄇ", "kb" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG PIEUP sub "ᆰᄉ", "ks" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SIOS sub "ᆰᄋ", "lg" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG IEUNG sub "ᆰᄌ", "kj" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG CIEUC sub "ᆰᄎ", "kch" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG CHIEUCH sub "ᆰᄏ", "lk" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG KHIEUKH sub "ᆰᄐ", "kt" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG THIEUTH sub "ᆰᄑ", "kp" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG PHIEUPH sub "ᆰᄒ", "lk" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG HIEUH sub "ᆰᄁ", "lkk" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGKIYEOK sub "ᆰᄄ", "ktt" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGTIEUT sub "ᆰᄈ", "kpp" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGPIEUP sub "ᆰᄊ", "kss" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGSIOS sub "ᆰᄍ", "kjj" # HANGUL JONGSEONG RIEUL-KIYEOK + CHOSEONG SSANGCIEUC sub "ᆱᄀ", "mg" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG KIYEOK sub "ᆱᄂ", "mn" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG NIEUN sub "ᆱᄃ", "md" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG TIEUT sub "ᆱᄅ", "mn" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG RIEUL sub "ᆱᄆ", "lm" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG MIEUM sub "ᆱᄇ", "mb" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG PIEUP sub "ᆱᄉ", "ms" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SIOS sub "ᆱᄋ", "lm" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG IEUNG sub "ᆱᄌ", "mj" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG CIEUC sub "ᆱᄎ", "mch" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG CHIEUCH sub "ᆱᄏ", "mk" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG KHIEUKH sub "ᆱᄐ", "mt" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG THIEUTH sub "ᆱᄑ", "mp" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG PHIEUPH sub "ᆱᄒ", "mh" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG HIEUH sub "ᆱᄁ", "mkk" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGKIYEOK sub "ᆱᄄ", "mtt" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGTIEUT sub "ᆱᄈ", "mpp" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGPIEUP sub "ᆱᄊ", "mss" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGSIOS sub "ᆱᄍ", "mjj" # HANGUL JONGSEONG RIEUL-MIEUM + CHOSEONG SSANGCIEUC sub "ᆲᄀ", "pg" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG KIYEOK sub "ᆲᄂ", "mn" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG NIEUN sub "ᆲᄃ", "pd" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG TIEUT sub "ᆲᄅ", "mn" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG RIEUL sub "ᆲᄆ", "mm" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG MIEUM sub "ᆲᄇ", "lb" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG PIEUP sub "ᆲᄉ", "ps" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SIOS sub "ᆲᄋ", "lb" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG IEUNG sub "ᆲᄌ", "pj" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG CIEUC sub "ᆲᄎ", "pch" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG CHIEUCH sub "ᆲᄏ", "pk" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG KHIEUKH sub "ᆲᄐ", "pt" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG THIEUTH sub "ᆲᄑ", "lp" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG PHIEUPH sub "ᆲᄒ", "lp" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG HIEUH sub "ᆲᄁ", "pkk" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGKIYEOK sub "ᆲᄄ", "ptt" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGTIEUT sub "ᆲᄈ", "lpp" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGPIEUP sub "ᆲᄊ", "pss" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGSIOS sub "ᆲᄍ", "pjj" # HANGUL JONGSEONG RIEUL-PIEUP + CHOSEONG SSANGCIEUC } sub "ᄀ", "g", before: space # HANGUL CHOSEONG KIYEOK sub "ᄂ", "n", before: space # HANGUL CHOSEONG NIEUN sub "ᄃ", "d", before: space # HANGUL CHOSEONG TIEUT sub "ᄅ", "", before: space, after: any("ᅣᅤᅧᅨᅭᅲ") # HANGUL CHOSEONG RIEUL # R-onset rule sub "ᄅ", "n", before: space # HANGUL CHOSEONG RIEUL sub "ᄆ", "m", before: space # HANGUL CHOSEONG MIEUM sub "ᄇ", "b", before: space # HANGUL CHOSEONG PIEUP sub "ᄉ", "s", before: space # HANGUL CHOSEONG SIOS sub "ᄋ", "", before: space # HANGUL CHOSEONG IEUNG sub "ᄌ", "j", before: space # HANGUL CHOSEONG CIEUC sub "ᄎ", "ch", before: space # HANGUL CHOSEONG CHIEUCH sub "ᄏ", "k", before: space # HANGUL CHOSEONG KHIEUKH sub "ᄐ", "t", before: space # HANGUL CHOSEONG THIEUTH sub "ᄑ", "p", before: space # HANGUL CHOSEONG PHIEUPH sub "ᄒ", "h", before: space # HANGUL CHOSEONG HIEUH sub "ᄁ", "kk", before: space # HANGUL CHOSEONG SSANGKIYEOK sub "ᄭ", "kk", before: space # HANGUL CHOSEONG SIOS-KIYEOK sub "ᄄ", "tt", before: space # HANGUL CHOSEONG SSANGTIEUT sub "ᄯ", "tt", before: space # HANGUL CHOSEONG SIOS-TIEUT sub "ᄈ", "pp", before: space # HANGUL CHOSEONG SSANGPIEUP sub "ᄲ", "pp", before: space # HANGUL CHOSEONG SIOS-PIEUP sub "ᄊ", "ss", before: space # HANGUL CHOSEONG SSANGSIOS sub "ᄍ", "jj", before: space # HANGUL CHOSEONG SSANGCIEUC sub "ᄶ", "jj", before: space # HANGUL CHOSEONG SIOS-CIEUC parallel { sub "ᅡ", "a" # HANGUL JUNGSEONG A sub "ᅣ", "ya" # HANGUL JUNGSEONG YA sub "ᅥ", "eo" # HANGUL JUNGSEONG EO sub "ᅧ", "yeo" # HANGUL JUNGSEONG YEO sub "ᅩ", "o" # HANGUL JUNGSEONG O sub "ᅭ", "yo" # HANGUL JUNGSEONG YO sub "ᅮ", "u" # HANGUL JUNGSEONG U sub "ᅲ", "yu" # HANGUL JUNGSEONG YU sub "ᅳ", "eu" # HANGUL JUNGSEONG EU sub "ᅵ", "i" # HANGUL JUNGSEONG I sub "ᅢ", "ae" # HANGUL JUNGSEONG AE sub "ᅤ", "yae" # HANGUL JUNGSEONG YAE sub "ᅦ", "e" # HANGUL JUNGSEONG E sub "ᅨ", "ye" # HANGUL JUNGSEONG YE sub "ᅬ", "oe" # HANGUL JUNGSEONG OE sub "ᅱ", "wi" # HANGUL JUNGSEONG WI sub "ᅴ", "ui" # HANGUL JUNGSEONG YI sub "ᅪ", "wa" # HANGUL JUNGSEONG WA sub "ᅯ", "wo" # HANGUL JUNGSEONG WEO sub "ᅫ", "wae" # HANGUL JUNGSEONG WAE sub "ᅰ", "we" # HANGUL JUNGSEONG WE } sub "ᆨ", "k", after: any([space,"-"]) # HANGUL JONGSEONG KIYEOK sub "ᆫ", "n", after: any([space,"-"]) # HANGUL JONGSEONG NIEUN sub "ᆮ", "t", after: any([space,"-"]) # HANGUL JONGSEONG TIEUT sub "ᆯ", "l", after: any([space,"-"]) # HANGUL JONGSEONG RIEUL sub "ᆷ", "m", after: any([space,"-"]) # HANGUL JONGSEONG MIEUM sub "ᆸ", "p", after: any([space,"-"]) # HANGUL JONGSEONG PIEUP sub "ᆺ", "t", after: any([space,"-"]) # HANGUL JONGSEONG SIOS sub "ᆼ", "ng", after: any([space,"-"]) # HANGUL JONGSEONG IEUNG sub "ᆽ", "t", after: any([space,"-"]) # HANGUL JONGSEONG CIEUC sub "ᆾ", "t", after: any([space,"-"]) # HANGUL JONGSEONG CHIEUCH sub "ᆿ", "k", after: any([space,"-"]) # HANGUL JONGSEONG KHIEUKH sub "ᇀ", "t", after: any([space,"-"]) # HANGUL JONGSEONG THIEUTH sub "ᇁ", "p", after: any([space,"-"]) # HANGUL JONGSEONG PHIEUPH sub "ᆰ", "k", after: any([space,"-"]) # HANGUL JONGSEONG RIEUL-KIYEOK sub "ᆲ", "p", after: any([space,"-"]) # HANGUL JONGSEONG RIEUL-PIEUP # Remove space added sub line_start + space, none sub space + line_end, none title_case
}