強火で進め

このブログではプログラム関連の記事を中心に書いてます。

ロケールから国名を日本語で取得

以下のプログラムで取得可能です。

	for (NSString *localId in [NSLocale preferredLanguages]) {
		NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"ja_JP"];
		NSString *displayNameString = [locale displayNameForKey:NSLocaleIdentifier value:localId];
		NSLog(@"%@ - %@", localId, displayNameString);
		[locale release];
	}

iPhone 4で実行した場合、結果は以下のようになりました。

ja - 日本語
en - 英語
zh-Hans - 中国語(簡体字)
de - ドイツ語
uk - ウクライナ語
fr - フランス語
zh-Hant - 中国語(繁体字)
nl - オランダ語
it - イタリア語
es - スペイン語
pt-PT - ポルトガル語(ポルトガル)
da - デンマーク語
fi - フィンランド語
nb - ノルウェー語 (ブークモール)
sv - スウェーデン語
ko - 韓国語
ru - ロシア語
pl - ポーランド語
pt - ポルトガル語
tr - トルコ語
ar - アラビア語
hr - クロアチア語
cs - チェコ語
el - ギリシャ語
he - ヘブライ語
ro - ルーマニア語
sk - スロバキア語
th - タイ語
id - インドネシア語
ms - マレー語
en-GB - 英語(イギリス)
ca - カタロニア語
hu - ハンガリー語
vi - ベトナム語

ちなみに英語で取得したい場合は ja_JP の代わりに en_US を使用します。
同じく、iPhone 4で実行したところ以下の結果になりました。
※ここでは一部文字化けしてますが実際のプログラムの結果では文字化けしていません。実機でも合わせて確認下さい。

ja - Japanese
en - English
zh-Hans - Chinese (Simplified Han)
de - German
uk - Ukrainian
fr - French
zh-Hant - Chinese (Traditional Han)
nl - Dutch
it - Italian
es - Spanish
pt-PT - Portuguese (Portugal)
da - Danish
fi - Finnish
nb - Norwegian Bokmål
sv - Swedish
ko - Korean
ru - Russian
pl - Polish
pt - Portuguese
tr - Turkish
ar - Arabic
hr - Croatian
cs - Czech
el - Greek
he - Hebrew
ro - Romanian
sk - Slovak
th - Thai
id - Indonesian
ms - Malay
en-GB - English (United Kingdom)
ca - Catalan
hu - Hungarian
vi - Vietnamese

localId を代わりに使うとそれぞれの言語で国名が表示されます。
これが一番iPhoneの設定画面で見のものに近い表示になります。
※ここではかなり文字化けしてますが実際のプログラムの結果では文字化けしていません。実機でも合わせて確認下さい。

ja - 日本語
en - English
zh-Hans - 中文(简体中文)
de - Deutsch
uk - українська
fr - français
zh-Hant - 中文 (繁體中文)
nl - Nederlands
it - italiano
es - español
pt-PT - português (Portugal)
da - dansk
fi - suomi
nb - norsk bokmål
sv - svenska
ko - 한국어
ru - русский
pl - polski
pt - português
tr - Türkçe
ar - العربية
hr - hrvatski
cs - čeština
el - Ελληνικά
he - עברית
ro - română
sk - slovenčina
th - ไทย
id - Bahasa Indonesia
ms - Bahasa Melayu
en-GB - English (United Kingdom)
ca - català
hu - magyar
vi - Tiếng Việt