CJK honorifics and degrees follow the name, and when written as their own token nothing recognizes them, so the 2.1 script defaults confidently read them as name parts:
>>> parse("王小明 先生").given # Mr. Wang
'先生'
>>> parse("김민준 씨").middle # Mr./Ms. Kim — Korean orthography standardly SPACES 씨
'씨'
>>> parse("田中 太郎 様").middle
'様'
The fix is vocabulary, not mechanism: a curated postnominal set matched by the existing whole-token suffix machinery, following the #269 precedent (Cyrillic titles, Arabic بن). The entries are self-selecting — a Han or hangul entry can only ever match CJK text — so the language-agnostic doctrine holds without any script conditioning:
- Korean (the strongest case — these are standardly spaced): 씨, 박사, 선생님, 교수님, 군, 양
- Chinese (spaced in formal/bilingual contexts): 先生, 女士, 小姐, 博士, 教授
- Japanese (spaced forms in forms/databases): 様, 氏, 先生, 博士
- Shared-Han entries (博士, 先生, 教授) serve zh and ja at once.
Implementation notes: decide the home list (SUFFIX_NOT_ACRONYMS vs a dedicated postnominal set — these are honorifics, not degrees, so the existing split may want a look); verify non-Latin entries flow through _normalize (no case in CJK, so likely trivial); case rows + differential classification for each script; the suffix must win before the family-first order hands the honorific a role.
Out of scope: the glued forms (王先生, 山田太郎様) — the more common shape, tracked separately, since whole-token matching cannot reach them.
CJK honorifics and degrees follow the name, and when written as their own token nothing recognizes them, so the 2.1 script defaults confidently read them as name parts:
The fix is vocabulary, not mechanism: a curated postnominal set matched by the existing whole-token suffix machinery, following the #269 precedent (Cyrillic titles, Arabic بن). The entries are self-selecting — a Han or hangul entry can only ever match CJK text — so the language-agnostic doctrine holds without any script conditioning:
Implementation notes: decide the home list (
SUFFIX_NOT_ACRONYMSvs a dedicated postnominal set — these are honorifics, not degrees, so the existing split may want a look); verify non-Latin entries flow through_normalize(no case in CJK, so likely trivial); case rows + differential classification for each script; the suffix must win before the family-first order hands the honorific a role.Out of scope: the glued forms (王先生, 山田太郎様) — the more common shape, tracked separately, since whole-token matching cannot reach them.