comments: src/languages/j* complete — japanese, javanese, jin, all 11 files - #702
Merged
Conversation
… files 439 → 424 on the files that changed. Comments only; all verified code-identical to main. No defects, and no self-inflicted ones either — the corrected header-replace held. Issue references cleared from japanese/, which had the fleet's densest cluster: #552 ×6 across kana.ts and kanji.ts, plus #562/#586 in japanese.ts. That directory is now free of them. Kept, and japanese is the best statement so far of WHY a fleet default can be wrong for one language: japanese/normalize.ts embedded Latin routing to the English phonemizer is a good default for a Cyrillic or Devanagari engine that would otherwise DROP the run — and in a Japanese stream it is WORSE than a drop, because it injects phonemes the language does not have: `WHO` → [dˈʌbəɫjuː ˈeᶦt͡ʃ ˈoᶷ], i.e. ʌ ɫ t͡ʃ oᶷ inside an utterance whose whole inventory is the gojūon. So the polarity of core/initialisms.ts is FLIPPED here: letter-spelling is the default because it is always an available Japanese reading, and the word-read acronyms (NATO ナトー) are the lexical exception. japanese/normalize.ts the 分の trap — `3分の1` reads "three MINUTES of" because the counter fusion sees `3`+分 and applies the ふん reading. The fix is narrow ON PURPOSE: only between two digits, because most 分の in running text is 自分の ("one's own") and 7時30分の is a genuine ふん. japanese.ts `unspacedScript` exists because the tier's letter-boundary guards reject an unspaced script's ORDINARY case — `20℃は暑い` drops the ℃ while its punctuation-adjacent twin works. Notation: 1 inventory-boilerplate copy (that class is now clean a–j), jin's 🔷 spelled out. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
japanese, javanese, jin — in directory order, nothing skipped. 439 → 424 on the files that changed. Comments only; all verified code-identical to
main.No defects, and no self-inflicted ones either — the corrected header-replace held.
Issue references
Cleared from
japanese/, which had the fleet's densest cluster:#552×6 acrosskana.tsandkanji.ts, plus#562/#586injapanese.ts. That directory is now free of them.Kept
japanese/normalize.tsis the best statement so far of why a fleet default can be wrong for one language:So the polarity of
core/initialisms.tsis flipped here: letter-spelling is the default, because it's always an available Japanese reading, and the word-read acronyms (NATO ナトー) are the lexical exception. Elsewhere the default is to leave the token alone — which here is not an option.The 分の trap —
3分の1reads "three MINUTES of", because the counter fusion sees3+分 and applies the ふん reading. The fix is narrow on purpose: only between two digits, because most 分の in running text is 自分の ("one's own") and7時30分のis a genuine ふん. A blanket rewrite corrupts every one of them.japanese.ts—unspacedScriptexists because the tier's letter-boundary guards reject an unspaced script's ordinary case:20℃は暑いdrops the ℃ while its punctuation-adjacent twin works.Notation
1 inventory-boilerplate copy — that class is now clean across a–j — and jin's
🔷spelled out.Checks
npm run typecheckclean🤖 Generated with Claude Code
https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr