import jaconv # Japanese: katakana/hiragana to romaji from hanja import translate as hanja_to_hangul from hangul_romanize import Transliterate from hangul_romanize.rule import RevisedRomanization transliterator = Transliterate(RevisedRomanization()) def canonical_form(text: str, source_lang: str) -> str: """Convert a name to a canonical Latin-ish form for comparison.""" if source_lang == "ja": text = jaconv.kata2hepburn(jaconv.hira2kata(text)) elif source_lang == "zh": text = hanja_to_hangul(text) source_lang = "ko" if source_lang == "ko": text = transliterator.translit(text) return text.lower().strip()