【问题标题】:How can I get the ISO language code in IOS?如何在 IOS 中获取 ISO 语言代码?
【发布时间】:2010-10-28 14:54:49
【问题描述】:

如何在IOS中获取当前的ISO语言代码?

【问题讨论】:

    标签: iphone xcode ios


    【解决方案1】:

    [[NSLocale currentLocale] localeIdentifier] 会给你一个更接近你正在寻找的字符串。对于我在美国的设备,我得到“en_US”。

    如果你想要一个更标准的“en-US”,你可以改用[[[NSLocale currentLocale] localeIdentifier] stringByReplacingOccurrencesOfString:@"_" withString:@"-"]

    如果你只想要语言代码,你可以将[[NSLocale currentLocale] localeIdentifier] 的输出传递给[NSLocale componentsFromLocaleIdentifier:],这会给你一个NSDictionary。字典中的一个键是NSLocaleLanguageCode,它将有一个 NSString 对象,其中只有语言代码。

    【讨论】:

      【解决方案2】:

      查看 Apple 文档以获取 Internationalization Programming Topics

      【讨论】:

      • 我开始了,我在使用 Apple doc 时遇到了一些棘手的问题,非常感谢
      • 这个答案已经成为链接腐烂!
      【解决方案3】:
      NSString *isoCode = [[NSLocale preferredLanguages] objectAtIndex:0];
      

      这将返回设备上所选语言的 2 个字母 iso 代码。 “en”表示英语,“de”表示德语,等等。 希望对您有所帮助!

      【讨论】:

      • 顺便说一句,尝试打印该数组。它包含长度大于 2 "zh-Hans" 的字符串。做出这样的假设可能会造成伤害。
      • 你是对的。输出对我来说:“en, fr, de, "zh-Hans", "zh-Hant", ja, nl, it, es, "es-MX", ko, pt, "pt-PT", da , fi, nb, sv, ru, pl, tr, uk, ar, hr, cs, el, he, ro, sk, th, id, ms, "en-GB", "en-AU", ca, hu , vi"
      • 我建议更新您的答案: [[[NSLocale preferredLanguages] objectAtIndex:0] substringToIndex:2] 这将始终返回一个两个字母的语言代码。
      • @Raphael 如何获得 3 个字母的 iso 代码,即“eng”、“abk”?
      猜你喜欢
      • 1970-01-01
      • 2011-09-20
      • 2021-10-16
      • 2011-06-24
      • 1970-01-01
      • 2012-01-06
      • 2021-04-19
      • 1970-01-01
      • 2013-05-03
      相关资源
      最近更新 更多