在Mac中的守护进程/根进程中获取当前用户语言和区域的最佳方法是什么?

时间:2014-03-07 05:34:08

标签: objective-c macos cocoa

我想从mac中的守护进程中读取当前用户语言(首选语言)和区域。   我尝试了下面的代码。它在用户空间进程中运行这段代码时工作正常,但是当这段代码从root / daemon进程运行时,它返回“en”和“us”。

CFLocaleRef loc = CFLocaleCopyCurrent();
CFStringRef countryCode = (CFStringRef)CFLocaleGetValue (loc, kCFLocaleCountryCode);
CFShow(countryCode);

CFArrayRef langs = CFLocaleCopyPreferredLanguages();
CFStringRef langCode = (CFStringRef)CFArrayGetValueAtIndex (langs, 0);
CFStringRef langName = CFLocaleCopyDisplayNameForPropertyValue (loc, kCFLocaleLanguageCode, langCode);
CFShow(langCode);

在mac中以守护进程/根进程获取当前用户语言和区域的最佳方法是什么?

任何帮助都是适当的......提前致谢....

1 个答案:

答案 0 :(得分:0)

如果您使用NSLocale,那么您有+(id)systemLocale,如果您以root身份运行,则可以保证将currentLocale设置为key ...我希望它们是您正在寻找的密钥。