Я привык к переменным окружения, таким как LANG
и LC_*
, но недавно я заметил переменную LANGUAGE
на своем рабочем столе Ubuntu. Это значение было pt_BR:pt:en
, и мне интересно, что именно означает. LANG
, с одной стороны, было pt_BR.UTF-8
, поэтому, если предполагается, что это первое поле должно быть языковым стандартом / кодировкой по умолчанию, оно противоречило LANG
.
Итак, каков точный смысл и формат LANGUAGE
?
LANGUAGE
служит аналогично LANG
и LC_MESSAGES
тем, что управляет тем, на каком языке отображается пользовательский интерфейс.
Основное различие между ними заключается в том, что хотя LANG
и LC_MESSAGES
могут принимать только один спецификатор языкового стандарта, LANGUAGE
может принимать список разделенных двоеточиями списка спецификаторов языкового стандарта.
В качестве примера, это позволило бы пользователю отображать программы на каталанском языке, если они доступны, и возвращаться к испанскому языку, если не раньше, в конце концов возвращаться к непереведенному английскому, что невозможно с другими переменными. В этом случае будет LANGUAGE="ca:es:en"
(коды ISO 639-1).
Другие переменные среды устанавливаются для приложений, не использующих gettext для перевода, которые поддерживают только более старые переменные среды.
LANGUAGE определяет порядок предпочтения для локализации сообщений интерфейса пользователя с помощью gettext. http://www.gnu.org/software/gettext/manual/gettext.html#The-LANGUAGE-variable