在代码中查找iOS应用程序的当前本地化

在代码中查找iOS应用程序的当前本地化,ios,localization,Ios,Localization,相关问题: 我想知道如何在代码中检查我的应用程序的当前本地化。 例如: 我想检查应用程序是否运行德语本地化(.strings,storyboard) 这行代码: [[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"de"] 没有提供正确的答案。因为如果用户在设备设置中的语言列表看起来像这样(例如法语、德语、英语),并且我们只有英语和德语的本地化版本,则应用程序将以德语启动,但不满足上述条件 NSString *

相关问题:

我想知道如何在代码中检查我的应用程序的当前本地化。 例如: 我想检查应用程序是否运行德语本地化(.strings,storyboard) 这行代码:

[[[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
}