2010-10-28 121 views

回答

2
+0

我开始,我已经有一些与苹果文档的trickly问题非常感谢 – 2010-10-28 16:07:56

+0

此答案已成为链接腐! – 2017-03-17 14:31:14

0
NSString *isoCode = [[NSLocale preferredLanguages] objectAtIndex:0]; 

这将返回一个2个字母的ISO代码在设备上选择的语言。 “en”代表英文,“de”代表德文,等等。 我希望有帮助!

+0

btw,尝试打印该数组。它包含长度大于2的字符串“zh-Hans”。做出这样的假设可能会受到伤害。 – Mazyod 2014-03-12 08:35:11

+0

你说得对。输出是我:“恩, FR, 德, “ZH-汉斯”, “ZH-汉特”, JA, NL, 它, ES, “ES-MX”, KO , PT, “PT-PT”, DA, 网络, NB, SV, RU, PL, TR, 英国, AR, 小时, CS, EL, 他, RO, SK, 日 ID, 毫秒, “EN-GB”, “EN-AU”, CA, 胡 六” – Raphael 2014-03-13 10:33:16

+2

我建议更新你的答案:[[[ NSLocale preferredLanguages] objectAtIndex:0] substringToIndex:2] 这将始终返回一个双字母语言代码。 – giorgos29cm 2016-07-29 14:35:36

3

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

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

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