fonts: add Japanese and Korean locale fallbacks

Keep SC as the default and select JP/KR glyphs for lang=ja/ko.

Assisted-by: DeepSeek Harness (deepseek-flash)
This commit is contained in:
Ryan Yin committed 2026-11-02 12:06:29 +08:00
1 parent f9ece8167d
commit 179b20a42c
1 file changed
+51
+51
View File
@@ -21,6 +21,9 @@
# 中文: 宋体(港台称明體)
"Noto Serif CJK SC" # 思源宋体
"Noto Serif CJK TC"
# 日文、韩文回退
"Noto Serif CJK JP"
"Noto Serif CJK KR"
];
# SansSerif 也简写做 Sans, Sans 在法语中就是「without」或者「无」的意思
sansSerif = [
@@ -30,6 +33,9 @@
"LXGW WenKai Screen" # 霞鹜文楷 屏幕阅读版
"Noto Sans CJK SC" # 思源黑体
"Noto Sans CJK TC"
# 日文、韩文回退
"Noto Sans CJK JP"
"Noto Sans CJK KR"
];
# 等宽字体
monospace = [
@@ -37,11 +43,56 @@
"Maple Mono NF CN" # 中英文宽度完美 2:1 的字体
"Noto Sans Mono CJK SC" # 思源等宽
"Noto Sans Mono CJK TC"
# 日文、韩文回退
"Noto Sans Mono CJK JP"
"Noto Sans Mono CJK KR"
# 西文
"JetBrainsMono Nerd Font"
];
emoji = [ "Noto Color Emoji" ];
};
# 日文、韩文环境优先使用对应字形;中文环境仍使用上面的 SC 默认栈。
localConf =
let
langFonts = lang: sans: serif: monospace: ''
<match target="pattern">
<test name="lang" compare="contains"><string>${lang}</string></test>
<test name="family" qual="any"><string>sans-serif</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Source Sans 3</string>
<string>${sans}</string>
<string>Noto Sans CJK SC</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>${lang}</string></test>
<test name="family" qual="any"><string>serif</string></test>
<edit name="family" mode="assign" binding="strong">
<string>Source Serif 4</string>
<string>${serif}</string>
<string>Noto Serif CJK SC</string>
</edit>
</match>
<match target="pattern">
<test name="lang" compare="contains"><string>${lang}</string></test>
<test name="family" qual="any"><string>monospace</string></test>
<edit name="family" mode="assign" binding="strong">
<string>JetBrainsMono Nerd Font</string>
<string>${monospace}</string>
<string>Noto Sans Mono CJK SC</string>
</edit>
</match>
'';
in
''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- generic family 在 51-local 阶段仍是 sans-serif。 -->
${langFonts "ja" "Noto Sans CJK JP" "Noto Serif CJK JP" "Noto Sans Mono CJK JP"}
${langFonts "ko" "Noto Sans CJK KR" "Noto Serif CJK KR" "Noto Sans Mono CJK KR"}
</fontconfig>
'';
antialias = true; # 抗锯齿
hinting.enable = false; # 禁止字体微调 - 高分辨率下没这必要
subpixel = {