为了呈现正确的菜单文本和UI的其他一些方面,我试图获得当前用户的国家和键盘语言.
我知道语言环境(通过env.变量),但我找不到获取这两个信息的方法.
代码在C for Mac OS X中.我可以使用Cocoa API来获取它们但是需要从C调用它们.任何想法?
谢谢!
使用CFLocaleCopyCurrent,CFLocaleGetValue和CFLocaleCopyPreferredLanguages(请注意,首选语言可能与语言环境的语言不匹配).请参阅文档.
编辑:好的,这是一些示例代码.
#include <CoreFoundation/CoreFoundation.h>
#include <stdio.h>
int main (int argc, char **argv)
{
CFLocaleRef loc = CFLocaleCopyCurrent();
CFStringRef countryCode = CFLocaleGetValue (loc, kCFLocaleCountryCode);
CFStringRef countryName = CFLocaleCopyDisplayNameForPropertyValue (loc, kCFLocaleCountryCode, countryCode);
CFShow(countryCode);
CFShow(countryName);
CFArrayRef langs = CFLocaleCopyPreferredLanguages();
CFStringRef langCode = CFArrayGetValueAtIndex (langs, 0);
CFStringRef langName = CFLocaleCopyDisplayNameForPropertyValue (loc, kCFLocaleLanguageCode, langCode);
CFShow(langCode);
CFShow(langName);
}
Run Code Online (Sandbox Code Playgroud)