iOSで現在のデバイス言語を取得するにはどうすればよいですか? 質問する

iOSで現在のデバイス言語を取得するにはどうすればよいですか? 質問する

デバイスの UI で現在使用されている言語を表示したいと思います。どのようなコードを使用すればよいでしょうか?

これを完全なスペルの形式で入力してくださいNSString。(@"en_US" ではありません)

編集: 通りすがりの人のために、新しい iOS リリースで答えが進化しているので、ここには役立つコメントがたくさんあります。

ベストアンサー1

提供されるソリューションは、実際にはデバイスの現在の地域を返すものであり、現在選択されている言語ではありません。これらは多くの場合同じです。ただし、北米にいて言語を日本語に設定した場合、地域は英語 (米国) のままになります。現在選択されている言語を取得するには、次の操作を実行します。

NSString * language = [[NSLocale preferredLanguages] firstObject];

現在選択されている言語の 2 文字のコードが返されます。英語の場合は「en」、スペイン語の場合は「es」、ドイツ語の場合は「de」などです。その他の例については、この Wikipedia のエントリ (特に 639-1 列) を参照してください。

ISO 639-1 コードのリスト

次に、2 文字のコードを表示したい文字列に変換するだけです。つまり、「en」の場合は「English」と表示されます。

編集

NSLocale.h からヘッダー情報を引用する価値があります:

+ (NSArray *)preferredLanguages NS_AVAILABLE(10_5, 2_0); // note that this list does not indicate what language the app is actually running in; the [NSBundle mainBundle] object determines that at launch and knows that information

アプリの言語に興味のある人は、@mindvision の回答

おすすめ記事