4

iOS は、翻訳された文字列または言語のロケールで言語のリストをどのように表示しますか。

  • それに関連付けられている LCID はありますか?
  • もしそうなら、どこでマッピングを見つけることができますか?
  • それはどのように機能しますか?
  • あなたが私に向けることができるAPIまたはドキュメントはありますか?

私が実際に意味することのスクリーンショットを添付しています: ここに画像の説明を入力

私が見つけたのはこのリンクだけです

更新:次のようなことを達成したい:

  • 国をその言語でマッピングできる場所。実際にはそのロケールにあります。それで、iOS APIを使用してLCIDを使用してマップし、そのロケール文字列を取得できるLCIDのようなものはありますか?

  • モックアップは以下
    ここに画像の説明を入力

4

2 に答える 2

11

次のコードを使用して、言語ロケールで翻訳された言語のリストを取得できます。

目的 C:

NSArray *languages = [NSLocale preferredLanguages];
for (NSString *lang in languages)
{
    NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:lang];
    NSString *translated = [locale displayNameForKey:NSLocaleIdentifier value:lang];
    NSLog(@"%@, %@", lang, translated);
}

迅速:

let languages = NSLocale.preferredLanguages()
for lang in languages {
    let locale = NSLocale(localeIdentifier: lang)
    let translated = locale.displayNameForKey(NSLocaleIdentifier, value: lang)!
    print("\(lang), \(translated)")
}

出力:

en, English
fr, français
de, Deutsch
ja, 日本語
nl, Nederlands
...

これがあなたの質問の最初の部分に答え、おそらく2番目の部分に役立つことを願っています.


スウィフト 3 アップデート:

let languages = NSLocale.preferredLanguages
for lang in languages {
    let locale = NSLocale(localeIdentifier: lang)
    let translated = locale.displayName(forKey: NSLocale.Key.identifier, value: lang)!
    print("\(lang), \(translated)")
}
于 2012-12-21T17:48:58.137 に答える
2

LCID は Windows の概念です。iOSではそのようなことはありません。言語は通常、ISO 639-1 または 639-2 言語コードによって識別されます。

あなたの質問の仕方からすると、Apple の国際化とローカリゼーションのドキュメントを読むことから始めるのが最善だと思います。NSLocaleはあなたの友達になります。

于 2012-12-21T15:36:39.930 に答える