2011-02-25 1 views
3

, 나는 쉽게 다음과 같이 사용 가능한 로케일 목록을 얻을 수 있습니다objective-c에서 사용 가능한 iPhone 언어 이름의 현지화 된 목록을 얻는 방법은 무엇입니까? 오브젝티브 C에서

NSArray *test = [NSLocale availableLocaleIdentifiers]; 
NSLog(@"%@", test); 
for (int i = 0; i < [test count]; i++) { 
    NSLog(@"%@", [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[test objectAtIndex:i]]); 
} 

이 같은이 하나 나에게 목록을 제공하십시오보다는, 그러나

Spanish (United States) 
Macedonian (Macedonia) 
Oromo (Kenya) 
Danish (Denmark) 
Korean (South Korea) 
Tachelhit (Latin) 
Fulah (Senegal) 
Indonesian 
Serbian (Cyrillic, Montenegro) 
Makonde (Tanzania) 
Welsh 

로케일 이름 목록은 설정 앱에서와 같이 언어 이름의 현지화 된 목록을 얻고 싶습니다. 예를 들어 전화가 미국 로켈에있는 경우 전화가 프랑스어 인 경우 "영어"를, 영어 인 경우 "영어"를, 독일어 인 경우 "영어 (Englisch)"를 얻고 싶습니다. 언어 이름의 현지화 된 목록을 만드는 가장 좋은 방법은 무엇입니까?

NSArray *test = [NSLocale availableLocaleIdentifiers]; 
NSLog(@"%@", test); 

for (int i = 0; i < [test count]; i++) { 
    NSLog(@"%@", [[NSLocale currentLocale] displayNameForKey:NSLocaleLanguageCode value:[test objectAtIndex:i]]); 
} 

그것은 언어의 자세한 내용을 보여줍니다

답변

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

for (int i = 0; i < [languages count]; i++) { 

    NSLog(@"%@", [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[languages objectAtIndex:i]]); 

} 
+0

매우 좋음 ... 현재 언어로 번역 된 항목을 반환하므로주의가 필요합니다. 시스템 환경 설정에 설정된 언어에 따라 "이탈리아어"또는 "이탈리아어"를 얻을 수 있습니다 ... – meronix

+0

고맙습니다! 이것은 내가 찾고 있었던 바로 그 것이다. – Jason

0

또한이 코드를 사용할 수 있습니다.