如何在 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 语言代码?的主要内容,如果未能解决你的问题,请参考以下文章