iOS獲取系統(tǒng)語(yǔ)言有三種方法、話不多說(shuō)、直接貼代碼、如有錯(cuò)誤 請(qǐng)留言指正瞬内。
方法一:
讀取本機(jī)設(shè)置的語(yǔ)言列表,獲取第一個(gè)語(yǔ)言限书,該方法讀取的語(yǔ)言為:國(guó)際通用語(yǔ)言Code+國(guó)際通用國(guó)家地區(qū)代碼虫蝶,
所以實(shí)際上想獲取語(yǔ)言還需將國(guó)家地區(qū)代碼剔除
代碼:
NSString *languageList = [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] ;// 本機(jī)設(shè)置的語(yǔ)言列表
NSLog(@"languageList : %@", languageList);
NSStrting *languageCode = [languageList firstObject];// 當(dāng)前設(shè)置的首選語(yǔ)言
NSString *countryCode = [NSString stringWithFormat:@"-%@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]];
if (languageCode) {
languageCode = [languageCode stringByReplacingOccurrencesOfString:countryCode withString:@""];
}
NSLog(@"languageCode : %@", languageCode);
日志:
2018-02-09 10:45:01.959412+0800 Demo[9528:2408422] languageList : (
"zh-Hans-GB",
"zh-Hant-GB",
"en-GB",
"zh-Hant-HK",
"ja-GB",
"de-GB",
"es-GB",
"fr-GB",
"ru-GB",
"ko-GB"
)
2018-02-09 10:45:01.959781+0800 Demo[9528:2408422] languageCode : zh-Hans
方法二:和方法一大同小異
代碼:
NSString *languageCode = [NSLocale preferredLanguages][0];// 返回的也是國(guó)際通用語(yǔ)言Code+國(guó)際通用國(guó)家地區(qū)代碼
NSString *countryCode = [NSString stringWithFormat:@"-%@", [[NSLocale currentLocale] objectForKey:NSLocaleCountryCode]];
if (languageCode) {
languageCode = [languageCode stringByReplacingOccurrencesOfString:countryCode withString:@""];
}
NSLog(@"languageCode : %@", languageCode);
日志:
2018-02-09 10:45:01.959781+0800 Demo[9528:2408422] languageCode : zh-Hans
方法三:
直接也最簡(jiǎn)單,但是在iOS11上有個(gè)Bug倦西,即在iPhone->通用->語(yǔ)言與地區(qū) 添加了簡(jiǎn)體中文能真、English,并將中文設(shè)置默認(rèn)語(yǔ)言的情況下扰柠,該函數(shù)返回的必定是英文粉铐。
NSString *languageCode = [NSLocale currentLocale].languageCode;// 當(dāng)前設(shè)置的首選語(yǔ)言