已连接问题:Non-English default language for iOS App?
我想知道如何在代码中检查我的应用的当前本地化。 例如: 我想检查应用程序是否运行德语本地化(.strings,storyboard) 这行代码:
[[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"de"]
未提供正确答案。因为如果设备设置中的用户语言列表例如(法语,德语,英语),并且我们只有英语和德语的本地化,则应用程序以德语启动,但上述条件未得到满足。
答案 0 :(得分:3)
我天真的解决方案是创建一个本地化的字符串" LanguageCode"设置为" de"在德语字符串文件中和" en"在英文字符串文件
e.g:
if ([NSLocalizedString(@"LanguageCode", @"en, de etc.") isEqualToString:@"de"]) {
// german
}
答案 1 :(得分:1)
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
这将返回当前所选语言的双字母代码。 "恩"对于英语," es"对于西班牙语," de"对于更多示例,请参阅此维基百科条目(特别是639-1专栏):
答案 2 :(得分:0)
检查Bundle
的{{3}}属性的第一项,即:
NSString对象数组,其中包含用于本地化的语言ID 在捆绑中。字符串根据用户的顺序排序 语言首选项和可用的本地化。
例如,如果您要检查是否正在使用德语本地化:
if Bundle.main.preferredLocalizations.first == "de" {
// Is using German
}