我在一个小型 iOS 7 项目中测试本地化功能时遇到以下问题。
- 我有一个默认项目,带有一个 VC,其中场景中间有一个按钮
- 在我的 VC 中,我的按钮有一个名为 myButton 的 IBOutlet
- 在 VC 的 viewDidLoad 方法中,我设置按钮的标题:
NSString *title = NSLocalizedString(@"MY_BUTTON", @"My comment for my button");
[self.myButton setTitle:title forState:UIControlStateNormal];
- 我生成了 Localized.strings 文件并使其能够本地化以下语言:基础语言、荷兰语
- 每个文件的内容如下:
/* 我对按钮的评论 */
"MY_BUTTON" = "我的 [VALUE] 按钮";其中 VALUE = 基础,荷兰语;所以标签应该是 My Base Button 和 My Dutch Button
问题:
如果我使用模拟器的语言为荷兰语启动应用程序,则标签为(如预期)“我的荷兰语按钮”。如果我用英语启动它,标签是“My Base Button”(还可以……)
但是,如果我在手机语言设置为法语的情况下启动它,并且我之前将其设置为荷兰语,则按钮的标签不会默认为 Base,而是再次显示“我的荷兰语按钮”
对此有什么想法吗?
Thanks
默认语言的顺序是 OSX 上的用户设置,在 iOS 上不可编辑(据我所知)
但还是坚持了!
该应用程序会传递一个 AppleLanguages 数组(或其他......)来指定要尝试的语言。 NSLocalizedString 宏将尝试按照语言出现的顺序加载数组中的每种语言,直到找到可用的语言,然后使用该语言
比较:如何强制 NSLocalizedString 使用特定语言 https://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)