15

Похоже, что переменные окружения LANG и LANGUAGE используются некоторыми программами для определения языка пользовательского интерфейса.

Какова точная семантика этих переменных и где я могу прочитать об их правильном использовании? На man-странице для locale(1) упоминается только семейство переменных среды LC_ *. Кроме того, обычно имеется переменная LC_ALL, которая там тоже не описана.

3 ответа3

18

LANG содержит настройку для всех категорий, которые не установлены напрямую переменной LC_* .

LC_ALL используется для переопределения каждого LC_* и LANG и LANGUAGE . Его не следует устанавливать в обычной пользовательской среде, но он может быть полезен при написании сценария, который зависит от точного вывода интернационализированной команды.

LANGUAGE используется для установки языков сообщений (например, LC_MESSAGES) в многозначное значение, например, если для него установлено значение fr:de:en будут использоваться французские сообщения там, где они существуют; в противном случае он будет использовать немецкие сообщения и будет использовать английский, если ни немецкие, ни французские сообщения недоступны.

8

Посмотрите на локаль manpage locale(7): она описывает, что LANG является резервной настройкой, в то время как LC_ALL переопределяет все отдельные настройки LC_* .

1

Для справки: языковой стандарт GNU GetText, полная документация которого доступна в пакете gettext-doc (Debian/Ubuntu).

Кроме того, имеется онлайн-руководство с достоверной и подробной документацией по переменным среды LANG и LANGUAGE .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .