在代码中查找iOS应用程序的当前本地化
相关问题: 我想知道如何在代码中检查我的应用程序的当前本地化。 例如: 我想检查应用程序是否运行德语本地化(.strings,storyboard) 这行代码:在代码中查找iOS应用程序的当前本地化,ios,localization,Ios,Localization,相关问题: 我想知道如何在代码中检查我的应用程序的当前本地化。 例如: 我想检查应用程序是否运行德语本地化(.strings,storyboard) 这行代码: [[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"de"] 没有提供正确的答案。因为如果用户在设备设置中的语言列表看起来像这样(例如法语、德语、英语),并且我们只有英语和德语的本地化版本,则应用程序将以德语启动,但不满足上述条件 NSString *
[[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"de"]
没有提供正确的答案。因为如果用户在设备设置中的语言列表看起来像这样(例如法语、德语、英语),并且我们只有英语和德语的本地化版本,则应用程序将以德语启动,但不满足上述条件
NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
这将返回当前所选语言的两个字母代码。英语为“en”,西班牙语为“es”,德语为“de”,等等。有关更多示例,请参阅此Wikipedia条目(特别是639-1列):我的简单解决方案是创建本地化字符串“LanguageCode”,在德语字符串文件中设置为“de”,在英语字符串文件中设置为“en” e、 g:
检查
Bundle
属性的第一个条目,即:
包含用于本地化的语言ID的NSString对象数组
在包裹里。字符串是根据用户的名称排序的
语言首选项和可用本地化
例如,如果您正在检查是否正在使用德语本地化:
if Bundle.main.preferredLocalizations.first == "de" {
// Is using German
}
您的意思是,您的应用程序有几个本地化版本(英语和德语),您想知道当前使用的是哪一个(即,如果用户将首选语言设置为法语,您想知道是否使用英语或德语)?如果这是正确的,只需创建一个名为useLanguage的本地化字符串,并在您的英语翻译中翻译为英语,在您的德语翻译中翻译为德文。。。这能解决你的要求吗<代码>NSString*useLanguage=NSLocalizedString(@“useLanguage”,@“这是当前使用的语言:en,de,…)代码>谢谢你的回答,非常聪明和简单。
if Bundle.main.preferredLocalizations.first == "de" {
// Is using German
}