You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: zh-CN UI renders some Han characters with Japanese/Korean glyph forms (bundled Noto Sans SC not used) #1095
When the UI language is set to "Simplified Chinese", a few Chinese characters in the UI are rendered with Japanese/Korean glyphs, for example:
Location
Character
Screenshot
Home → drop zone 将文件拖放到这里
将
General → language dropdown 跟随系统
系
General → default save location 与源文件相同的文件夹
与
General → 所有转换都保留原文件日期
所
Investigation
ThemeService.Apply sets AppFontFamily using the return value of SoftPalette.FontFamilies(language) (src/Filee.App/Services/SoftPalette.cs:122). For zh-*, the CJK font family order is Noto Sans SC, Noto Sans KR, Noto Sans JP, and all three are embedded via FileeFontCollection (fonts:Filee → avares://Filee/Assets/Fonts, src/Filee.App/Program.cs:307).
I extracted these three font families and compared them against the glyphs mentioned above. Noto Sans JP and Noto Sans KR are the closest matches, and neither is the Simplified Chinese face.
In other words, per-character fallback on the composite FontFamily never actually lands on Noto Sans SC: in the embedded font collection, a character is resolved by the first face that contains it, and the resource enumeration order is NotoSansJP-*, NotoSansKR-*, NotoSansSC-*. So "putting the CJK face for the UI language first" has no effect on Han characters in practice — all zh-* users get Japanese glyphs.
Only a few Han characters look wrong because the vast majority of Han characters are designed identically across the three regional faces; only characters with regional differences (与, 将, 所, 系, 直, …) are visibly affected.
What did you expect?
The Simplified Chinese UI should draw Han characters with Simplified Chinese glyphs, i.e. Noto Sans SC (falling back to Microsoft YaHei when the embedded font is unavailable), while Latin text should still use Noto Sans.
Steps to reproduce
Set the application UI language to "Simplified Chinese".
Open the main window's Home page, General page, and other pages.
Observe 将文件拖放到这里 on the Home page, then 跟随系统, 与源文件相同的文件夹, and 所有转换都保留原文件日期 on the General page.
Thanks for the detailed trace, it pointed at the right place. Filee's font list was in the right order, but Avalonia's embedded font collection answers with the first of its own families that has a character, before the list's next font is tried. That was Noto Sans JP in every language, up to the first character it doesn't have, which is why 跟随系 looked wrong and 统 didn't.
#1121 makes each embedded font match only itself, so the list's order decides: Simplified Chinese gets Noto Sans SC, Japanese Noto Sans JP, Korean Noto Sans KR, and Traditional Chinese the system's Traditional font. Latin text stays in Noto Sans.
感谢你的详细分析,它指出了正确的位置。Filee 的字体列表顺序是对的,但 Avalonia 的内嵌字体集合会先在自己的字体里找第一个包含该字符的字体,还没轮到列表中的下一个字体就返回了。结果所有语言都用 Noto Sans JP,直到遇到它没有的字符,所以 跟随系 字形不对,而 统 是正常的。
#1121 让每个内嵌字体只匹配它自己,由列表顺序决定:简体中文用 Noto Sans SC,日语用 Noto Sans JP,韩语用 Noto Sans KR,繁体中文用系统的繁体字体。拉丁文字仍然使用 Noto Sans。
Activity
Draw Han in the UI language's own font
KnifeLemon commentedon Nov 4, 2026
Thanks for the detailed trace, it pointed at the right place. Filee's font list was in the right order, but Avalonia's embedded font collection answers with the first of its own families that has a character, before the list's next font is tried. That was Noto Sans JP in every language, up to the first character it doesn't have, which is why
跟随系looked wrong and统didn't.#1121 makes each embedded font match only itself, so the list's order decides: Simplified Chinese gets Noto Sans SC, Japanese Noto Sans JP, Korean Noto Sans KR, and Traditional Chinese the system's Traditional font. Latin text stays in Noto Sans.
感谢你的详细分析,它指出了正确的位置。Filee 的字体列表顺序是对的,但 Avalonia 的内嵌字体集合会先在自己的字体里找第一个包含该字符的字体,还没轮到列表中的下一个字体就返回了。结果所有语言都用 Noto Sans JP,直到遇到它没有的字符,所以
跟随系字形不对,而统是正常的。#1121 让每个内嵌字体只匹配它自己,由列表顺序决定:简体中文用 Noto Sans SC,日语用 Noto Sans JP,韩语用 Noto Sans KR,繁体中文用系统的繁体字体。拉丁文字仍然使用 Noto Sans。
Reduce idle memory: read fonts on demand, trim after a tray start, tr…