2016-08-31 2 views
1

У меня есть приложение на C++, где мне нужно получить локаль текущего пользователя. Как я могу сделать это с помощью OSX Yosemite и новее?Как получить локаль текущего пользователя в OSX с помощью C++

Я пытался что-то вроде setlocale(LC_CTYPE, NULL);, но он просто возвращает UTF-8 где моя система явно на испанском языке (es_AR)

+1

Пытались ли вы [это] (http://stackoverflow.com/questions/12170488/how- в-получить текущую локаль-правовой мою окружающей среды)? – NathanOliver

+0

Я просто попытался, но он не работает с OSX. Мой код: setlocale (LC_ALL, ""); setlocale (LC_CTYPE, NULL); и результатом является UTF-8 – Fernando

ответ

1

После некоторых проб и ошибок и много помощи Интернета и других вопросов, которые я сделал это.

Если я хочу получить только язык.

Таким образом, на str я получаю std :: string с языком. Если мне нужно что-то другое, я могу заменить kCFLocaleLanguageCode с любой другой константой из CFLocale

Также мне нужен заголовок #import <CoreFoundation/CoreFoundation.h>