Как я могу получить текущую локализацию (ru-RU, en-US, en-GB, e.t.c.) Linux через C?Как я могу получить текущую локализацию Linux через C?
спасибо.
Как я могу получить текущую локализацию (ru-RU, en-US, en-GB, e.t.c.) Linux через C?Как я могу получить текущую локализацию Linux через C?
спасибо.
В системе, совместимой с POSIX, setlocale(LC_CTYPE, NULL);
вернет название региона, выбранного в настоящий момент для категории LC_CTYPE
.
Посмотрите на nl_langinfo и localeconv страниц руководства.
Как искать подпрограммы и/или системные вызовы в системе Unix:
apropos locale
искать результаты, которые ссылаются на раздел человека 2 (системные вызовы) или раздел человека 3. (подпрограммы). , например. на макинтош:
querylocale(3) - Get locale name for a specified category setlocale(3) - natural language formatting for C
взглянуть на человека страницах
Я пробовал такой код: '#include #include Int основной (межд argc, char * argv []) { \t \t char * c = setloc ale (LC_CTYPE, NULL); \t \t if (NULL == c) \t \t printf («Не удается получить локализацию»); \t else \t \t printf («Текущая локализация:% s \ n», c); \t \t возвращение 0; } ' но я получил это: ** Текущая локализация: C **. Где моя ошибка? –
Обратите внимание, что '' C "' (или '" POSIX "') является приемлемой локализацией; это он по умолчанию, если ничего не установило. –