NSLocalizedString不默认为Base语言

tuf*_*fyx 9 base objective-c nslocalizedstring ios

我正在测试本地化功能的小型iOS 7项目存在以下问题.

  • 我有一个默认项目,有一个VC,我在场景中间有一个按钮
  • 在我的VC中,我有一个名为myButton的按钮的IBOutlet
  • 在VC的viewDidLoad方法中我设置了按钮的标题:


    NSString *title = NSLocalizedString(@"MY_BUTTON", @"My comment for my button");
    [self.myButton setTitle:title forState:UIControlStateNormal];

Run Code Online (Sandbox Code Playgroud)
  • 我生成了Localizable.strings文件,最后启用了它,用于以下语言的本地化:Base,Dutch
  • 每个文件的内容如下:

/*我对我的按钮的评论*/"MY_BUTTON"="我的[VALUE]按钮"; 其中VALUE = Base,Dutch; 所以标签应该是我的基本按钮和我的荷兰按钮

问题:如果我使用模拟器的语言作为荷兰语启动我的应用程序,标签是(按预期)"我的荷兰按钮".如果我用英文启动它,标签是"我的基本按钮"(好吧......)

但是,如果我将手机的语言设置为法语启动它,而我之前将其设置为荷兰语,则按钮的标签不会默认为Base,而是再次显示"My Dutch Button"

有什么想法吗?

谢谢

Dai*_*jan 5

默认语言的顺序是 OSX 上的用户设置,在 iOS 上不可编辑(AFAIK),
但仍然坚持!

该应用程序被传递给指定要尝试的语言的数组 AppleLanguages(或其他..)。NSLocalizedString 宏将尝试按照它们出现的顺序加载数组中的每种语言,直到找到可用的语言,然后使用该语言

比较:如何强制 NSLocalizedString 使用特定语言