This website serves as the official demo of the open-source Korean romanization library KOROMAN.
The koroman library is available for JavaScript, Python, and Java environments.

Pronunciation Rules
Case Options
Syllable Hyphen
User Dictionary (1.0.16+)

Starts empty — add only the entries you need. Dictionary values override all rules and are emitted verbatim (no casing or phonology). Longer keys are matched first.

On Korean (key) Romanization (value)
About Romanization

An online Korean romanization converter based on the Revised Romanization system (Ministry of Culture Notice 2000-8).
Follows most Korean pronunciation rules including consonant assimilation, palatalization, and initial sound law.

How it works

koroman is a tool that converts Korean sentences into Latin alphabet by decomposing each syllable into individual Jamo components and transforming them according to romanization rules.
The conversion process follows these steps:

1
Decomposition (function splitHangulToJamos())
Korean syllables are decomposed into Choseong (initial), Jungseong (medial), and Jongseong (final) Jamo characters using Unicode.
2
Pronunciation (function applyPronunciationRules())
Korean phonological changes such as assimilation, palatalization, liaison are applied to the Jamo string.
3
Romanization (function applyRomanMapping())
The modified Jamo characters are converted into Latin letters following the Ministry of Culture's Revised Romanization system (2000 standard).
4
Case formatting (function formatRoman())
The resulting string is formatted according to the user-specified case option (lowercase, word initial capitalization, etc.).

For romanization that more closely resembles actual pronunciation rather than just standard spelling, you can enable the "Apply Pronunciation Rules" option for more natural results.

Romanization Examples
  • 해돋이 → haedoji (O), haedodi (X)
  • 선릉역 → seolleungyeok (O), seonreungyeok (X)
  • 역량 → yeongnyang (O), yeokryang (X)
  • 굳이 → guji (O), gudi (X)
  • 묵호 → muko, 집현전 → jipyeonjeon (1.0.15 aspiration policy)
  • 흙 → heuk, 닭 → dak, 값 → gap (1.0.15 consonant cluster fix)
  • 잃어 → ireo (1.0.15 ᆶ+ㅇ liaison fix)
  • 꽃잎 → kkonnip, 밟다 → bapda, 굳히다 → guchida (1.0.16 built-in rules)
Syllable Hyphen Examples (1.0.15+)

Inserts "-" at syllable boundaries that are ambiguous in Latin script to improve readability.

  • 중앙 → jung-ang (vs. jungang)
  • 반구대 → ban-gudae (vs. bangudae)
  • 해운대 → hae-undae (vs. haeundae)
  • 세운 → se-un
When to use the user dictionary

Compound words and sait-siot often need morphological knowledge. Register rows above only when you need a fixed spelling.

  • Sait-siot / double ㄴ: 나뭇잎→namunnip, 바닷가→badakka, 예삿일→yesanil (나무잎 has no sait-siot)
  • Compound ㄴ-insertion: 솜이불→somnibul, 홑이불→honnibul, 한여름→hannyeoreum, 막일→mangnil
  • Ambiguous: 금융·검열, station names with 역 — dictionary or context
Name/Proper Noun Discrepancies

Certain names and proper nouns may have commonly used English spellings that differ from the standard romanization rules. In such cases, use the user dictionary feature above to enforce your preferred spelling.

  • 박지성 (Park Jisung) → Bak Jiseong
  • 김치 (Kimchi) → Gimchi