2016-08-31 14 views
1

現在のユーザーのロケールを取得する必要があるC++アプリケーションがあります。 OSX Yosemite以降ではどうすればいいですか?C++を使用してOSXで現在のユーザーのロケールを取得する方法

私はsetlocale(LC_CTYPE, NULL);のようなものを試してみたが、それはちょうど私のシステムは、インターネットと、私はそれをしなかった他の質問からいくつかの試行錯誤や多くの援​​助の後、スペイン語(es_AR)

+1

あなたは試したことがあり、ヘッダ[この](http://stackoverflow.com/questions/12170488/how-を必要CFLocale

から、他の定数とkCFLocaleLanguageCodeを置き換えることができます私の現在の現地ロケールを取得する)? – NathanOliver

+0

私は試しましたが、OSXでは動作しません。私のコード:setlocale(LC_ALL、 ""); setlocale(LC_CTYPE、NULL);結果はUTF-8です – Fernando

答えて

1

に明確であるUTF-8返します。

言語のみを取得したい場合。

CFLocaleRef cflocale = CFLocaleCopyCurrent(); 
CFStringRef value = (CFStringRef)CFLocaleGetValue(cflocale, kCFLocaleLanguageCode); 
std::string str(CFStringGetCStringPtr(value, kCFStringEncodingUTF8)); 
CFRelease(cflocale); 

このように、strではstd :: stringを取得します。私は何か他のものが必要な場合は、私はまた、私は#import <CoreFoundation/CoreFoundation.h>

関連する問題