NSLocalizedString - 强制国家特定的字符串文件

Posted

技术标签:

【中文标题】NSLocalizedString - 强制国家特定的字符串文件【英文标题】:NSLocalizedString - Force country specific string file 【发布时间】:2016-12-08 13:12:56 【问题描述】:

我们在使用我们的捆绑字符串文件处理 NSLoaclizedString 时遇到了一个奇怪的行为。

我们在以下位置维护了我们的字符串文件:

de_AT(奥地利德语) de_DE(德国德语)

我们没有设置任何基本/默认字符串文件,因为我们通常不想为每个区域定义应该使用哪个字符串文件。所以

波兰地区应使用 de_DE 意大利地区应使用 de_AT

在我们的测试中,我们刚刚认识到,如果语言环境不匹配,NSLocalizedString 只会采用独立于任何语言环境的第一个包 (de_AT)。 有什么方法可以定义/控制我们想要查看翻译的语言环境吗?

我们只找到语言的参数“tableName”,但没有语言和国家/地区特定的语言环境...我们不想为每个可用的语言和国家/地区组合创建 Localizable.strings。

谢谢!

【问题讨论】:

【参考方案1】:

好的,我们研究了很多,我们目前的解决方案是创建独立的 Localizable.strings 文件并按语言环境命名:

de_AT.strings de_DE.strings

然后根据我们的映射逻辑设置正确的 bundleName...

【讨论】:

以上是关于NSLocalizedString - 强制国家特定的字符串文件的主要内容,如果未能解决你的问题,请参考以下文章

什么是强制性3C认证?

Objective C 中的 NSLocalizedString

NSLocalizedString 问题

使用 NSLocalizedString 或 .xib 进行本地化

NSLocalizedString 有时会加载字符串,但并非总是如此

cell.textLabel.text NSLocalizedString 参数