首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何只为英文版本注册字体?

如何只为英文版本注册字体?
EN

Stack Overflow用户
提问于 2009-11-29 15:47:25
回答 1查看 413关注 0票数 0

我的客户已经给了我一个定制的TTF字体只适用于英语。因此,我的意图是加载该TTF仅为英语和其他语言,它应该回落到可用的系统字体。

我正在执行以下步骤:

  1. 在我的应用程序中注册字体。复制到参考资料文件夹并添加到我的项目中。
  2. 加载带有名称的字体。 NSMutableDictionary * aTitleAttributes = [[NSMutableDictionary alloc initWithObjectsAndKeys:[NSFont fontWithName:CP_FONT_NAME size:NSFont systemFontSize],NSFontAttributeName,aParagraphStyle,NSParagraphStyleAttributeName,0]自动释放];

但是这会导致另一个问题,因为我用这种方式加载所有语言的字体,我的本地化文本看起来是英语的。所以我想我应该有一些条件

代码语言:javascript
复制
NSFont *font = nil;
If (currentLocaleIsEnglish()) {
/// font to load my custom TTF
}
Then use [NSFont fontwithName:font ...]

因此,谁能帮助我认识到,我所做的是正确的注册字体与应用程序。如果是这样的话,我如何才能注册我的字体只为英文版。因为对于其他语言环境,这个字体是不可用的,那么NSFont::fontWithName将返回零并自动返回到SystemFont,因此我的语言环境将被正确地显示。

否则,我必须有一个条件,就像我上面提到的,这是一种粗糙的做法。如果是这样,我如何编写这样一个API来查找currentLocale是英语?

EN

回答 1

Stack Overflow用户

发布于 2009-11-29 17:09:12

NSLocale获取当前区域设置,然后向其发送objectForKey:消息并请求NSLocaleLanguageCode。如果当前语言代码是enen_USen_GBen_AUen_CA,那么当前语言就是某种形式的英语。

为了简化测试,可以将语言代码放入数组或设置并测试该集合中当前语言代码的成员资格。或者,更好的是,将它们作为键放入字典中,它们的值都是CP_FONT_NAME;然后,如果客户机稍后为其他语言提供其他字体,则可以轻松地添加这些新的字体语言对。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1815854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档