如何在Objective-C中获取用户的语言区域设置?

时间:2009-07-06 05:05:25

标签: objective-c macos localization

我正在为Mac OS X开发一个应用程序。我想通过应用程序用户的语言区域设置(英语,西班牙语等)更改指示内容,如何获取使用哪种语言的信息?

6 个答案:

答案 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];
}