MOCT · 2000
Ministry of Culture and Tourism Korean Romanization System (2000)
moct-kor-Hang-Latn-2000 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 갉 ᄀ ᅡ ᆰ
Live preview
Try this system.
Type any text in Hang to see the Latn output.
Backed by interscript-ts running in your browser.
Reference vector
What the map should produce.
This vector is checked into git and verified by the Ruby test suite.
Source (Hang)
불국사
Expected (Latn)
Bulguksa
Source
Read the map definition.
Every Interscript map is a human-readable Ruby DSL file checked into the interscript/maps repo.