Skip to content

Thai honorifics are glued to the given name (นายสมชาย → given "นายสมชาย") #317

Description

@derek73

Placeholder — filed so it isn't lost, not worked up.

Thai honorifics are conventionally written glued to the given name, and they currently end up inside it:

parse("นายสมชาย ใจดี")     # given 'นายสมชาย', family 'ใจดี'   ← นาย = Mr.
parse("นางสาวสุดา ใจดี")   # given 'นางสาวสุดา', family 'ใจดี' ← นางสาว = Miss

What already works

More than I expected, which is what makes this narrow:

parse("สมชาย ใจดี")   # given 'สมชาย', family 'ใจดี'   ← correct

Thai is given-name-first, so the positional default is already right — no script_orders entry needed. Names are spaced between given and family, so no segmentation is needed either. Thai is not in _SCRIPT_RANGES at all, and it may not need to be: #308's peel is licensed by its vocabulary rather than by the script it is written in.

So the whole gap is one mechanism: splitting a listed honorific off the front of a token.

Relationship to #308 and #312

#308 shipped the mirror of this — a listed honorific peeled off the end of a name token, routed to suffix. Thai needs the same surgery from the other side, routed to title (นาย is pre-nominal, not post-nominal), which means a separate vocabulary rather than a reuse of honorific_tails.

#312 is deciding how the existing peel is structured. Its answer matters here: if the peel becomes a sibling function inside script_segment, a head-peel joins as a third sibling; if it becomes its own stage, this belongs in that stage. Thai is the strongest evidence that a second inhabitant is coming, so it is worth weighing in #312 rather than after it.

Why the vetting may be easier here than for the Han equivalents

A leading peel is normally harder to vet than a trailing one, because the leading position is where surnames live — the argument that clears 양 in #308 is precisely that a surname LEADS, so a trailing-only gate never sees it. The Chinese familiar prefixes 老/小 (老王, 小王) fail badly on this: 小 is a common given-name character, and peeling it would cut 小明 — this repo's own worked example — in half.

Thai looks different. นาย, นาง, นางสาว are not name components in any position; they are closed-class address terms. So the "can this ever begin a name?" test may come back clean where the Han equivalents do not. That is an impression, not a vetted claim — it needs the same per-entry argument #308's vocabulary carries, from someone who reads Thai.

Open questions

  • The full entry set (นาย, นาง, นางสาว at minimum; ranks and academic titles are a separate question).
  • Whether Thai needs a _SCRIPT_RANGES entry at all, given the peel is vocabulary-licensed. Probably only if some other script-conditional behavior is wanted later.
  • Whether a head peel routes to title in every case, or whether some entries are better modelled as existing titles vocabulary once the token is split.
  • Royal and monastic titles are a much larger and more sensitive area — explicitly out of scope for this placeholder.

Raised while discussing #312; no one has asked for Thai support, so priority is unset.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions