Xcode - 仅适用于英语的Localizable.strings

时间:2012-09-19 05:58:32

标签: ios xcode localization nslocalizedstring localizable.strings

我正在尝试让我的localizable.strings正常工作,但我无法弄清楚如何。我的故事板也是可本地化的,并且可以工作:所有按钮和视图控制器都以两种语言正确显示。

但我的NSLocalizedStrings以编程方式加载只是以英文显示。我检查了我的Localizable.strings,它有2种语言:英语和巴西葡萄牙语(pt-BR),我没有发现任何问题。

我该如何解决?

提前致谢!

2 个答案:

答案 0 :(得分:8)

尝试此操作以检查您是否使用了正确的语言和区域:

NSLog(@"Language: %@", [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]);
NSLog(@"Region: %@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]);

如果您只是更改设备设置中的区域,则必须关闭并重新启动应用程序!

编辑:我认为您的实际问题是,您使用“巴西葡萄牙语”作为本地化,您必须使用“葡萄牙语”。

更新:在Xcode中,您可以在多个本地化版本之间进行选择,但在NSLocalizedString()等中生效的唯一选项是您可以在设置中在iPhone上选择的语言 - >常规 - > International->语言

此处的完整列表:

  

•阿拉伯语•加泰罗尼亚语•中文(简体)•中文(繁体)•   克罗地亚语•捷克语•丹麦语•荷兰语•英语(美国)•英语(英国)•   芬兰语•法语•德语•希腊语•希伯来语•匈牙利语•印度尼西亚语•   意大利语•日语•韩语•马来语•挪威语•波兰语•葡萄牙语   •葡萄牙语(葡萄牙)•罗马尼亚语•俄语•斯洛伐克•西班牙语•   瑞典语•泰语•土耳其语•乌克兰语•越南语

答案 1 :(得分:0)

只需更新@xapslock对Swift的回答。

    NSLog("Language: " + NSBundle.mainBundle().preferredLocalizations[0]);
    NSLog("Region: " + (NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as! String));