2010-09-13 2 views
4

Как я могу получить системный язык в C/C++? Как en_US или en_GB.Как я могу получить системный язык в C/C++?

+2

Какая системная платформа? Windows, Linux, другие? –

+0

Я использую Linux. Я бы хотел, чтобы он был совместимым с POSIX. – Jookia

+0

Для чего вы собираетесь использовать эту информацию? – zwol

ответ

9

В системе POSIX, это выглядит как Setlocale (LC_CTYPE, NULL); вернет текущую локаль.

+0

setlocale (LC_CTYPE, «") работал, спасибо! – Jookia

+0

@Jookia: это также изменяет локаль в пользовательскую локаль (как определено средой). –

5

Dup из Find out the language windows was installed as

В итоге - "функция Win32 вы хотите это GetSystemDefaultUILanguage()" (предполагается, что Windows, конечно)

+1

OP не говорит конкретно о Windows. – zwol

+0

Собственно, теперь он говорит Linux. К счастью, мне не хватает кармы, чтобы официально дублировать должности. –

+3

+1, даже если OP прокомментировал POSIX, было бы полезно, если бы кто-то нашел вопрос через Google –

6

Как правило, вы не хотите - скорее, вы просто согласны с тем, что он просит использовать безымянный язык (т. Е. std::locale(""); предоставит вам локаль выбора пользователя).

0

Существует не обязательно один системный язык; отдельные «грани» локали могут быть настроены отдельно. Все это сделано с переменными окружения; http://www.manpagez.com/man/1/locale/ имеет неполный список переменных и их значений.

Смежные вопросы