Skip to content

fix(names): transliterate kana speaker labels in captions - #807

Merged
sokcuri merged 2 commits into
developfrom
fix/kana-speaker-labels
Nov 8, 2026
Merged

sokcuri merged 2 commits into
developfrom
fix/kana-speaker-labels

Conversation

@sokcuri

@sokcuri sokcuri commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Hiragana speaker labels at the start of a caption or script line were translated as the word they spell: a given name that is also a verb form became a verb (ひかる → 빛난다), and a run no dictionary has became fragments. A hiragana run of two to six kana in a speaker label is now read as a name by its sound, the way katakana names already are (spec LEX-5800).

  • Positions: round brackets and square brackets, full- and half-width ((…), (…), […], […]), after caption marks and asides (⚟(…), (会場 笑い)(…)), a label before :, and a label before a 「 that closes the line. An honorific after the name stays (かけるくん → 카케루 군). Document and --each mode behave the same; the check runs per line in ReadLine, after DropReadings.
  • Reading: a person row's reading when the dictionaries or the name layer have one, else the kana with one long-vowel pair dropped, as the registry writes hiragana names (ゆう → 유).
  • Not names: runs the dictionaries have whole. That covers common words and kana spellings of kanji words (ざわめき, おとこ, ははおや, てんいん, うた), person nouns and pronouns (おばあさん), sounds and interjections of the sound lexicon (てか), する stems (てき), verb forms other than the dictionary form (まって, やめて, わらい, こごえ), adjectives (いい) and a word plus a sentence-final particle (いいよ, あるぞ). Also not names: two-kana runs with any non-person row (おと), words ending in an honorific (おかあさん, みなさん), お/ご + honorific (おきゃくさん), sound repeats, runs ending in っ, label roles, runs over six kana or a word plus a particle (でもいつのまにか「), a : followed by another field or a kana-less value (けもみみ:兎), a square group after another group, brackets with nothing after them ((笑い)), brackets a particle or a copula takes ((ないしょ)だよ), and brackets in mid-line.
  • A person row of the base dictionary is always the name. A name-layer person wins over a common word before 「, : or ≫, where only a speaker stands (さくら「…」 → 사쿠라). Inside brackets the common word wins, because brackets also tag sounds and voices ((うた) → 노래).
  • Credits: a kana artist name right before feat./ft. at the line start, or the first name in a bracket group after a line-opening name that is joined by / to a Latin name.

Variants checked: each bracket shape in full and half width, colon, quote, honorific suffix, two-part labels (・), asides before the label, document and --each mode. Contexts checked: stage directions in kanji and in kana, sound words, interjections in brackets, roles in kana, mid-line glosses, field lists.

Gate (head 209ad4f, rebased on develop):

  • build, ctest 76/76 (HDTRANS_SKIP_TIMING=1), examples golden, rule cases 52,882/0 failed, documents, constructions, spec ids and --verify-dicts pass. One wrapped case pinned a broken name (るな → 루인); it now reads 루나 and is marked fix.
  • Diff against develop: 0 changed lines in the cap, news, novel and vn fresh sets (--each and document). Caption pool: 48 changed lines (--each) and 11 (document) of 16,453; a second caption set: 17 and 3 of 6,253; a label-shaped sample from the game, novel and caption pools: 57 changed.
  • Blind A/B on the 76 unique changed lines: Opus 74 better, 2 same; Sonnet 74 better, 2 worse. 0 worse by both.

@sokcuri sokcuri added this to the 0.9.5 milestone Nov 8, 2026
A hiragana run of two to six kana in a speaker label at the line start, in round or square brackets, before a colon or before a closing quote, is read as a name by its sound instead of as the word it spells; stage directions, roles, whole common words and verb continuatives keep their reading (spec LEX-5800).
An artist's kana name before feat. or joined by / to a Latin name in a credit reads as a name too.
…r labels

A label run is a word, not a name, when the dictionaries have it whole: a kana spelling of a kanji word, a common noun, a sound or interjection, a する stem, a verb form other than the dictionary form, an adjective, or a word with a sentence-final particle; two kana need a person row or no row at all. Before 「, a colon or ≫ a name-layer person still wins; in brackets the word does. A copula after the brackets keeps them a word of the sentence.
@sokcuri
sokcuri force-pushed the fix/kana-speaker-labels branch from 54c9c3b to 209ad4f Compare November 8, 2026 23:21
@sokcuri
sokcuri merged commit 3de0a72 into develop Nov 8, 2026
13 checks passed
@sokcuri
sokcuri deleted the fix/kana-speaker-labels branch November 8, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant