我正在尝试寻找专门用英语编写的所有语言的数组。我已经阅读了关于这个主题的几个问题,我注意到这行代码:
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
“语言”数组对象包含所有语言字符串,但问题是它是用我的 iPhone 中定义的语言编写的。我希望它在所有设备上都是英文的。
有没有办法做到这一点?
我正在尝试寻找专门用英语编写的所有语言的数组。我已经阅读了关于这个主题的几个问题,我注意到这行代码:
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
“语言”数组对象包含所有语言字符串,但问题是它是用我的 iPhone 中定义的语言编写的。我希望它在所有设备上都是英文的。
有没有办法做到这一点?
强制默认语言为“en”,然后查询语言列表并将其设置回上一个。像这样的东西(未经测试的想法)
NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
//your query here
//restore the previous
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSArray *localIdentifiers = [NSLocale availableLocaleIdentifiers];
NSMutableArray *lanuages = [[NSMutableArray alloc]init];
for (int i = 0; i < [localIdentifiers count]; i++) {
[lanuages addObject:[[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[localIdentifiers objectAtIndex:i]]];
}
NSLog(@"%@", lanuages);
试试这个,或者你可以使用其他方法
NSArray* languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];
for (int i = 0; i < [languages count]; i++) {
NSLog(@"%@", [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[languages objectAtIndex:i]]);
}