Переменная среды LANG и LANGUAGE в системах на основе Debian


22

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

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

Ответы:


23

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

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

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


Где я могу найти документацию о ЯЗЫКЕ? Является ли он взаимоисключающим для LC_MESSAGES?
AEF

1
@ Реми, можешь ли ты уточнить, почему LC_ALLне следует использовать?
Эдуард Лопес

1
Не так много, чтобы сказать. У вас больше гибкости, если вы установите LANG, чем если вы установите LC_ALL: вы можете установить LANG на что-то, а LC_COLLATE - на что-то другое. Если вы установите LC_ALL, все остальные настройки будут скрыты.
Реми

2
Я не думаю, что LC_ALLпереопределения LANGUAGE: 1. они имеют разные значения (порядок [например: fr: de: en] и характеристики [например: fr_FR])
Мурмель

6
Глава 2. GNU GetText ДОКУМЕНТАЦИЯ в Указание списка приоритетов Языков гласит: gettext gives preference to LANGUAGE over LC_ALL and LANG. Кроме того, глава Locale Environment Variables гласит:1. LANGUAGE 2. LC_ALL [...]
Murmel

10

Взгляните на справочную страницу locale(7): она описывает, что LANGэто запасной вариант, но LC_ALLпереопределяет все отдельные LC_*настройки.


3
команда man 7 locale
Smile4ever

2

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.