我正在为Mac OS X开发一个应用程序。我想通过应用程序用户的语言区域设置(英语,西班牙语等)更改指示内容,如何获取使用哪种语言的信息?
答案 0 :(得分:24)
NSLog(@"localeIdentifier: %@", [[NSLocale currentLocale] localeIdentifier]);
答案 1 :(得分:8)
您可以使用NSLocale API获取该信息,但不必执行您想要执行的操作。 OS X内置了support for localization - 您需要做的就是提供相应的语言文件,用户可以选择他想要的语言。
答案 2 :(得分:6)
代码段
NSLocale *locale = [NSLocale currentLocale];
[locale objectForKey:NSLocaleLanguageCode]
答案 3 :(得分:3)
您希望“本地化”您的应用程序。要开始使用,请在此处查看Apple文档:Internationalization - Apple Developer Docs。如果不了解您的具体应用程序,就很难在此处提出更多建议!
答案 4 :(得分:2)
您可以使用以下两种方式:
NSString *language = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"Language: %@", language);
输出:语言:en_US
或者这个:
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"Language: %@", language);
输出:语言:en
答案 5 :(得分:0)
确切地说,iOS 9及更高版本的更改[NSLocale preferredLanguages]现在返回 - 而不仅仅是。所以最好这样做:
NSString *languageOS = [[NSLocale preferredLanguages] objectAtIndex:0];
if([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0) {
languageOS = [[languageOS componentsSeparatedByString:@"-"] objectAtIndex:0];
}