2011-02-25 13 views
3

は、私は簡単にこのように、利用可能なロケールのリストを取得することができます。objective-cで利用できるiPhone言語名のローカライズされたリストを取得するには? Objective-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 

ロケール名のリストは、設定アプリのように、ローカライズされた言語名のリストを取得したいと考えています。たとえば、携帯電話が米国のロケールにある場合は、フランス語の英語の場合は「英語」、英語の場合は「英語」、英語の場合は「英語」を取得します。ローカライズされた言語名のリストを作成する最良の方法は何ですか?

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

また、このコードを使用することができます。

関連する問題