【发布时间】:2014-03-12 08:52:27
【问题描述】:
我正在测试本地化功能的一个小型 iOS 7 项目遇到以下问题。
- 我有一个默认项目,有一个 VC,其中我在场景中间有一个按钮
- 在我的 VC 中,我的按钮有一个名为 myButton 的 IBOutlet
- 在 VC 的 viewDidLoad 方法中,我正在设置按钮的标题:
NSString *title = NSLocalizedString(@"MY_BUTTON", @"My comment for my button");
[self.myButton setTitle:title forState:UIControlStateNormal];
- 我生成了 Localizable.strings 文件,结束后启用它以支持以下语言的本地化:Base、Dutch
- 每个文件的内容如下:
/* 我对按钮的评论 */ "MY_BUTTON" = "我的 [VALUE] 按钮";其中 VALUE = Base,荷兰语;所以标签应该是 My Base Button & My Dutch Button
问题: 如果我使用模拟器的语言作为荷兰语启动我的应用程序,则标签是(如预期的那样)“我的荷兰语按钮”。如果我用英文启动它,标签是“My Base Button”(还可以……)
但是,如果我在手机语言设置为法语的情况下启动它,并且我之前将其设置为荷兰语,则按钮的标签不会默认为 Base,而是再次显示“我的荷兰语按钮”
对此有什么想法吗?
谢谢
【问题讨论】:
-
你是否也为法语设置了 Localizable.strings 文件?
-
在 Mac 上可以设置语言顺序,也许该顺序在 iOS 上也起作用,并且由于语言设置的顺序是法语、荷兰语、英语?
-
法语没有 Localizable.strings。我只想支持英语和瑞典语,对于这两种语言以外的设备,我希望应用程序以 Base(即英语)显示
-
抱歉……我在之前的评论中指的是荷兰语,而不是瑞典语
-
我想支持两种语言(Base 和 Dutch)。对于其他所有情况(日语、中文、法语、意大利语),我希望我的应用程序默认为 Base(我选择为英语)。现在该应用程序在 Base 和 Dutch 中运行良好,但如果我切换到意大利语/法语/等。它不默认为 Base,但它显示最后使用的语言的值。步骤: 1. 启动应用程序(默认语言:英语)=> 显示我的基本按钮。 2. 将语言更改为荷兰语 => 显示我的荷兰语按钮 3. 将语言更改为法语 => 显示我的荷兰语按钮(我本来希望显示我的基本按钮)
标签: ios objective-c base nslocalizedstring