2013-10-10 3 views
1

영어로 작성된 모든 언어의 배열을 찾으려고합니다. 나는이 주제에 대한 몇 가지 질문을 읽었습니다, 나는이 코드 줄주의 :영어로 된 모든 언어 배열 - iOS

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

"언어"배열 객체가 모두되는 언어의 문자열을 가지고,하지만 문제는이에 정의되어 언어로 작성한다는 것입니다 내 아이폰. 모든 기기에 영어로 제공되기를 바랍니다.

이를 수행하는 방법이 있습니까?

답변

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]; 
+0

이것은 좋은 아이디어를 사용할 수 있지만, 내가 사용 후 : [[NSUserDefaults standardUserDefaults] setObject : [NSArray arrayWithObjects : @ "en", nil] forKey : @ "AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; NSArray * englishArray = [[NSUserDefaults standardUserDefaults] objectForKey : @ "AppleLanguages"]; "englishArray"에는 단 하나의 객체가 있지만 영어가 아닙니다. 왜 그런지 알고 있습니까? 감사. –

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]]); 

    } 
+0

첫 번째 방법은 문자열이 아닌 데이터 부치를 인쇄합니다 (제 생각에). 두 번째 방법은 아무 것도하지 않고 여전히 장치의 기본 언어로 언어를 인쇄합니다. –

관련 문제