Змінна середовища LANG та LANGUAGE в системах на базі Debian


22

Здається, що змінна середовища LANG та LANGUAGE деякі програми використовують для визначення мови інтерфейсу користувача.

Яка точна семантика цих змінних і де я можу прочитати про їх правильне використання? Роздільна сторінка для locale (1) згадує лише змінні середовища LC_ *. Крім того, існує також звичайна місце змінної LC_ALL, яка також не описана.

Відповіді:


23

LANGмістять налаштування для всіх категорій, які не встановлені безпосередньо LC_*змінною.

LC_ALLвикористовуються для заміни кожного LC_*і LANGі LANGUAGE. Він не повинен бути встановлений у звичайному середовищі користувача, але може бути корисним під час написання сценарію, який залежить від точного виходу інтернаціоналізованої команди.

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


Де я можу знайти документацію про МОВА? Це взаємовиключно для LC_MESSAGES?
афе

1
@ Rémi, чи можете ви детальніше пояснити, чому LC_ALLйого не слід використовувати?
Едуард Лопес

1
Мало що сказати. У вас є більша гнучкість, якщо ви встановите LANG, ніж якщо ви встановите LC_ALL: ви можете встановити LANG на щось, а LC_COLLATE на якусь іншу річ. Якщо встановити LC_ALL, усі інші налаштування будуть приховані.
Ремі

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

6
Глава 2. GNU GetText ДОКУМЕНТАЦІЯ в Вказівка списку пріоритетів Мов говорить: gettext gives preference to LANGUAGE over LC_ALL and LANG. Крім того, у розділі 1. LANGUAGE 2. LC_ALL [...]
Локальні

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.