xxx027
2024-06-20 03:16:48 +08:00
我在你的这个帖子下回复吧。
首先你设置了 font_face 却没有影响到标签字体,说明这个不受软件自身控制。
然后你在另一帖提到在删除了那些键值之后,可以正常显示了,那就说明是遵循了日、繁中、简中这个回落顺序,再次强调不用删除韩文的键值。
我在另一帖已经对字体回落有了比较详细的说明,请你再看看。因为我没有用这个软件所以没办法进一步提供更多的有效信息,你先确认下在系统语言文字设置为简中和非简中时,该软件的标签字体显示是否有变化(系统是原始键值,没有删除或修改)。
下面分 2 种情况:
1 是有变化,简中语言下标签页的字体就是雅黑,说明软件在标签页字体这一部分遵循的是系统的 CJK 字体回落,因为简中语言下的 win 系统的回落是简中优先。这种情况下你是可以手动修改 SegoeUI 的字体回落顺序来手动修改以达到这种效果的,你对比一下两种语言环境下 SegoeUI 的回落顺序就清楚了。我这里说到的简中语言是前述的系统语言文字设置为简中,不是该软件界面设置为简中,怕你混淆,特此说明,后不再赘述。
2 是没有变化,系统语言文字环境无论是否是简中,标签页的字体回落仍然是日文优先。这就说明软件遵循的是其内部的字体回落逻辑,无视其他设置,这是把回落顺序写死在软件里了,无法调用 win 注册表来修改回落逻辑,因此你只能把键值删除(或者不删除键值,设置键值的值为空,只要让软件误以为不存在这些字体即可,这样是一样的效果)。
目前微软对 CJK 的回落顺序就是日文优先,只有简中语言的系统环境才是简中优先。有些软件是遵循 win 系统对此的回落逻辑,那这样就可以修改注册表自定义回落顺序。
但是有些软件(或内部组件)是直接把微软的回落顺序写死在了程序里,这样子就没办法通过修改注册表自定义回落顺序了,只有一个办法,那就是让这个软件找不到这个字体,而 win 系统是通过注册表来定义字体的位置的,所以才需要把那几个字体的键值删掉,才能欺骗软件你系统里没有这些字体。
考虑周到的软件应该是专门提供 CJK 字体回落顺序的设置,虽然就我的认知没有任何软件有这么做,绝大部分是由系统设置。
删除键值的影响就是,日文是用雅黑来显示了(不讨论繁中了,繁中的那些字体我个人是觉得没雅黑好看),我猜你可能是有显示日文字体的需求才会问可否不删除键值。
很遗憾,对于写死了回落顺序的软件而言,只能删除。
如果有显示日文的需求,有这几种解决思路:
1. 不使用写死回落顺序的软件;
2. 隔离出删除了键值的环境,比如用 sandboxie 这种沙盒来运行程序,在沙盒里删除键值,不影响外部的系统;
3. 修改微软雅黑这个字体的日文部分,用日文字型替换掉,然后把修改后的雅黑字体替换掉系统原始的雅黑字体。但只能修改五十音的部分,日文里的汉字和中文的有重叠部分,修改的话显示效果就更加不伦不类。
不删除键值的其他方法,把那几个日文和繁中字体全用雅黑的字体修改过来再替换掉系统的这几个默认字体。无论键值怎么改,无论软件有没写死,统统是雅黑。麻烦,不应采用。