The screenshots in #486 show exactly the characters BIZ UDPGothic (the
Japanese interface face) lacks: 选项规语简户另为导 … in Simplified and
啟內另 … in Traditional, with "?" in the Inter-based medium/semibold
families (no U+25FB replacement glyph) and boxes in the proportional one.
That is the font chain of v0.4.0 and earlier, which embedded no Chinese
face and had no installed-font fallback; v0.5.0 (#248) embeds Noto Sans
CJK SC. This hardens the chain so it can't silently regress:
- The installed CJK font is chosen by coverage: it is added after the
embedded faces whenever they leave a CJK character of the CJK catalogs
or the language names without a glyph (not only when no "Hans" face
exists), and the face picked is the one mapping the most of those
characters.
- macOS: look inside com_apple_MobileAsset_Font<N>/<hash>.asset/AssetData
(bounded, one level) where macOS 10.15+ keeps PingFang.ttc, also under
/System/Library/Assets; PingFangUI.ttc as a last resort.
- Test: every CJK character of the zh-hans, zh-hant and ja catalogs and
the language names has a glyph in the embedded chain in all three
interface weights (skips without craft-fonts; fails with a Japanese-only
craft-fonts, listing exactly the characters from the screenshots).
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>