【Objective-C】iPhoneの言語設定を取得する方法(ローカリゼーション(ローカライズ)もこれでカバー!)
最近は電車の中でPSP用ゲーム「街」をプレイし世界観に没頭しています。
さすがに登場人物のファッションは古いですが内容は色あせませんね!
さて今回はiPhoneの言語設定を取得する方法についてです。
次のようにします。
(最後に使用例もあります。)
//選択可能な言語設定の配列を取得
NSArray *langs = [NSLocale preferredLanguages];
//取得した配列から先頭の文字列を取得(先頭が現在の設定言語)
NSString *currentLanguage = [langs objectAtIndex:0];
【取得される配列の文字列一覧】
<ルール>
・選択した言語が先頭に移動する(これにより先頭が現在の設定言語となる)。
・ただし、 英語(en)以外が選択されたときは英語は2番目となる。
ja,
en,
fr,
de,
nl,
it,
es,
pt,
"pt-PT",
da,
fi,
nb,
sv,
ko,
"zh-Hans",
"zh-Hant",
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
ms,
"en-GB",
ca,
hu,
vi
<使用例>
if([currentLanguage compare:@"ja"] == NSOrderedSame) {
    //日本語の場合の処理
    ・・・
} else if([currentLanguage compare:@"fr"] == NSOrderedSame) {
    //フランス語の場合の処理
    ・・・
} else {
    //その他の言語の場合の処理
    ・・・
}
例えば言語によって説明文、画面の構成(各国にマッチする色使いなど)、時刻表示などで使えますね。
なお、文字列のローカリゼーション(ローカライズ)についてはNSLocalizedStringを使って表示を変える方法もありますが、場合によってはこちらを使った方が楽な場合もありますね。
使い分けていきましょう。
↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
- 関連記事
-
- Objective-CとPHPの高速列挙(foreach文)は順番(参照順序)が保証される (2012/11/18)
- 【Objective-C】iPhoneの言語設定を取得する方法(ローカリゼーション(ローカライズ)もこれでカバー!) (2012/04/23)
- 【Objective-C】文字列(NSString)の先頭、末尾の確認方法(~で始まる、~で終わる) (2011/12/17)
- 【Objective-C】文字列(NSString)の大文字と小文字を区別せずに比較する方法 (2011/12/17)
- 【Objective-C】配列(NSArray、NSMutableArray)の要素(値)をランダムに並べ替える方法 (2011/12/17)