卡纳达语(Kannada)字体未按Fontconfig配置使用指定Lohit Kannada字体的问题求助
卡纳达语(Kannada)字体未按Fontconfig配置使用指定Lohit Kannada字体的问题求助
大家好,我碰到了一个Fontconfig配置的小麻烦,想请教下各位大佬。
我写了一个10-sub.conf文件,用来给特定地区语言指定对应的字体,文件存在~/.config/fontconfig/conf.d目录下,是参考之前的一个回答做的。配置内容如下:
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <!-- file saved in ~/.config/fontconfig/conf.d --> <fontconfig> <match> <test compare="contains" name="lang"> <string>hi</string> </test> <edit mode="prepend" name="family"> <string>Lohit Devanagari</string> </edit> </match> <match> <test compare="contains" name="lang"> <string>gu</string> </test> <edit mode="prepend" name="family"> <string>Lohit Gujarati</string> </edit> </match> <match> <test compare="contains" name="lang"> <string>kn</string> </test> <edit mode="prepend" name="family"> <string>Lohit Kannada</string> </edit> </match> <alias> <family>sans-serif</family> <prefer> <family>Ubuntu</family> <familt>DejaVu Sans</family> <family>Liberation Sans</family> <family>Noto Sans</family> <family>Arial Unicode MS</family> </prefer> </alias> <alias> <family>serif</family> <prefer> <family>Noto Serif</family> <family>DejaVu Serif</family> <family>Liberation Serif</family> <family>Noto Serif Devanagari</family> <family>Arial Unicode MS</family> </prefer> </alias> <alias> <family>monospace</family> <prefer> <family>Ubuntu Mono</family> <family>Noto Sans Mono</family> <family>DejaVu Sans Mono</family> <family>Liberation Mono</family> <family>Arial Unicode MS</family> </prefer> </alias> </fontconfig>
这里Arial Unicode MS是用来兜底那些系统没装的字体的。现在的问题是,印地语和古吉拉特语都能正常用对应的Lohit字体渲染,但卡纳达语不管怎么弄,都会用Arial Unicode显示。我确认Lohit Kannada已经装在系统里了,路径是/usr/share/fonts/truetype/lohit-kannada/Lohit-Kannada.ttf。
我的系统是Ubuntu 22.04,桌面环境是GNOME 42.5。测试的时候发现,有的网站里卡纳达语始终是Arial Unicode的样式,但古吉拉特语能正常显示Lohit Gujarati(如果我把古吉拉特语的<match>标签删掉,它才会用fallback字体)。
另外我也用命令测试过,运行LC_CTYPE=kn_IN fc-match,输出是:
Lohit-Kannada.ttf: "Lohit Kannada" "Regular"
这说明系统是能识别到Lohit Kannada字体的,但就是网页里不生效,实在搞不懂哪里出问题了,有没有朋友能给点思路?
备注:内容来源于stack exchange,提问作者Javauser
相关产品推荐
相关产品推荐

