3

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

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

我该如何解决?

提前致谢!

4

2 回答 2

8

试试这个来检查你是否使用了正确的语言和地区:

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

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

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

更新:在 Xcode 中,您可以在许多本地化之间进行选择,但唯一能在 等中生效的选项NSLocalizedString()是您可以在 iPhone 上的 Settings->General->International->Language 中选择的语言

目前完整列表如下:

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

于 2012-09-19T07:41:12.367 回答
0

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

    NSLog("Language: " + NSBundle.mainBundle().preferredLocalizations[0]);
    NSLog("Region: " + (NSLocale.currentLocale().objectForKey(NSLocaleCountryCode) as! String));
于 2016-08-12T14:42:19.443 回答