我有一个 C++ 应用程序,需要检索当前用户的区域设置。我如何使用 OSX Yosemite 及更新版本来做到这一点?
我尝试过类似的方法setlocale(LC_CTYPE, NULL);,但它只是返回UTF-8我的系统明显是西班牙语的位置(es_AR)
经过一番尝试和错误以及互联网和其他问题的大量帮助后,我做到了。
如果我只想获得语言。
CFLocaleRef cflocale = CFLocaleCopyCurrent();
auto value = (CFStringRef)CFLocaleGetValue(cflocale, kCFLocaleLanguageCode);
std::string str(CFStringGetCStringPtr(value, kCFStringEncodingUTF8));
CFRelease(cflocale);
Run Code Online (Sandbox Code Playgroud)
这样,在 str 我将获得带有该语言的 std::string 。如果我需要其他东西,我可以kCFLocaleLanguageCode用任何其他常量替换CFLocale
我还需要标题#include <CoreFoundation/CoreFoundation.h>
| 归档时间: |
|
| 查看次数: |
1583 次 |
| 最近记录: |