4

iOS 如何在翻译的字符串或语言的语言环境中显示语言列表。

  • 是否有与之关联的 LCID?
  • 如果是这样,我在哪里可以找到它的映射?
  • 它是如何工作的?
  • 是否有 API 或任何文档可以指向我?

我附上我的实际意思的截图: 在此处输入图像描述

我能找到的只有这个链接

更新:我想实现这样的目标:

  • 我可以在哪里用它的语言映射国家,这实际上是在它的语言环境中。那么有没有一种 LCID 类型的东西,我可以使用 iOS API 使用 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
...

我希望这能回答您问题的第一部分,也许对第二部分有所帮助。


斯威夫特 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 回答