我在测试本地化功能的小型 iOS 7 项目中遇到以下问题。
- 我有一个默认项目,有一个VC,在场景中间有一个按钮
- 在我的 VC 中,我的按钮有一个 IBOutlet,名为 myButton
- 在 VC 的 viewDidLoad 方法中,我正在设置按钮的标题:
NSString *title = NSLocalizedString(@"MY_BUTTON", @"My comment for my button");
[self.myButton setTitle:title forState:UIControlStateNormal];
- 我生成了 Localizable.strings 文件并启用它以用于以下语言的本地化:基础语言、荷兰语
- 各文件内容如下:
/* 我对我的按钮的评论 */ "MY_BUTTON"= "我的 [VALUE] 按钮";其中 VALUE = Base,荷兰语;所以标签应该是 My Base Button & My Dutch Button
问题: 如果我使用模拟器的荷兰语语言启动我的应用程序,则标签(如预期的那样)是“我的荷兰语按钮”。如果我用英文启动它,标签是“My Base Button”(有点好……)
但是,如果我在手机语言设置为法语的情况下启动它,并且我之前将其设置为荷兰语,则按钮的标签不会默认为 Base,而是再次显示“我的荷兰语按钮”
对此有什么想法吗?
谢谢
最佳答案
默认语言的顺序是 OSX 上的用户设置,在 iOS 上不可编辑 (AFAIK)
但仍然坚持!
向应用程序传递指定要尝试的语言的数组 AppleLanguages(或类似...)。 NSLocalizedString 宏将尝试按照它们出现的顺序加载数组中的每种语言,直到它找到一个可用的语言然后使用它
比较:How to force NSLocalizedString to use a specific language
关于ios - NSLocalizedString 不默认为基本语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21754890/