2010-10-28 64 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對象。

相關問題