我的客户已经给了我一个定制的TTF字体只适用于英语。因此,我的意图是加载该TTF仅为英语和其他语言,它应该回落到可用的系统字体。
我正在执行以下步骤:
但是这会导致另一个问题,因为我用这种方式加载所有语言的字体,我的本地化文本看起来是英语的。所以我想我应该有一些条件
NSFont *font = nil;
If (currentLocaleIsEnglish()) {
/// font to load my custom TTF
}
Then use [NSFont fontwithName:font ...]因此,谁能帮助我认识到,我所做的是正确的注册字体与应用程序。如果是这样的话,我如何才能注册我的字体只为英文版。因为对于其他语言环境,这个字体是不可用的,那么NSFont::fontWithName将返回零并自动返回到SystemFont,因此我的语言环境将被正确地显示。
否则,我必须有一个条件,就像我上面提到的,这是一种粗糙的做法。如果是这样,我如何编写这样一个API来查找currentLocale是英语?
发布于 2009-11-29 17:09:12
从NSLocale获取当前区域设置,然后向其发送objectForKey:消息并请求NSLocaleLanguageCode。如果当前语言代码是en、en_US、en_GB、en_AU或en_CA,那么当前语言就是某种形式的英语。
为了简化测试,可以将语言代码放入数组或设置并测试该集合中当前语言代码的成员资格。或者,更好的是,将它们作为键放入字典中,它们的值都是CP_FONT_NAME;然后,如果客户机稍后为其他语言提供其他字体,则可以轻松地添加这些新的字体语言对。
https://stackoverflow.com/questions/1815854
复制相似问题