1

我正在尝试寻找专门用英语编写的所有语言的数组。我已经阅读了关于这个主题的几个问题,我注意到这行代码:

NSArray *languages = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"];

“语言”数组对象包含所有语言字符串,但问题是它是用我的 iPhone 中定义的语言编写的。我希望它在所有设备上都是英文的。

有没有办法做到这一点?

4

2 回答 2

1

强制默认语言为“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];
于 2013-10-10T08:36:23.250 回答
0
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]]);

    }
于 2013-10-10T08:37:56.757 回答