所有语言的英语数组 - iOS

时间:2013-10-10 08:28:58

标签: ios localization nsuserdefaults

我正在寻找一系列用英语写的所有语言。 我已经阅读了几个关于这个主题的问题,我注意到这行代码:

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

“languages”array-object包含所有langauges字符串,但问题是它是用我在iPhone中定义的语言编写的。我希望所有设备都是英文版。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分: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];

答案 1 :(得分: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]]);

    }