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

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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”?

以上是关于如何在 IOS 中获取 ISO 语言代码?的主要内容,如果未能解决你的问题,请参考以下文章

总是在 iOS 中获得 ISO 639-2(三字符)语言代码?

总是在iOS中获得ISO 639-2(三个字符)语言代码?

如何在 Android 应用程序中获取 ISO 国家代码?

如何在C中从一年和iso周中获取日期#

如何在不使用语言环境模块的情况下获取国际货币符号?

如何在 Postman 预查询脚本和正文中获取当前的 ISO8601 时间戳?