Налаштування місцеположення - це налаштування користувача, які стосуються вашої культури.
Локальні назви
У всіх поточних варіантах Unix, про які я знаю (але не в кількох антикваріатах), імена локалів відповідають тій же схемі:
- ISO 639-1 малими двобуквених код мови, або ISO 639-2 код мови три букви , якщо мова не має два-буквений код. Наприклад,
en
для англійської, de
для німецької, ja
для японської, uk
для української, ber
для берберської…
- Для багатьох, але не для всіх мов, підкреслення,
_
за яким іде двозначний код країни з великим регістром ISO 3166 . Таким чином: en_US
для англійської США, en_UK
для англійської англійської, для fr_CA
канадської (квебекської) французької, de_DE
для німецької Німеччини, de_AT
для німецької з Австрії, ja_JP
для японської (Японії) тощо.
- Необов'язково, точка з
.
подальшим ім'ям персонажа , що кодує такими як UTF-8
, ISO-8859-1
, KOI8-U
, GB2312
, Big5
і т.д. З GNU LIBC по крайней мере (не знаю , наскільки широко це), випадок і пунктуація ігноруються при кодуванні імен. Наприклад, zh_CN.UTF-8
мандарин (спрощений) китайський код закодований у UTF-8, тоді zh_CN
як мандарин китайський закодований у GB2312, і zh_TW
тайванський (традиційний) китайський закодований у Big5.
- За бажанням, знак at, який
@
супроводжується назвою варіанта. Значення варіантів залежить від локалу. Наприклад, у багатьох європейських країнах є @euro
місцевий варіант, де знак валюти є євро, а кодування - це такий, що включає цей символ (ISO 8859-15 або ISO 8859-16), на відміну від варіанту, який не використовується без старого знака валюти. Наприклад, en_IE
(англійська, Ірландія) використовує кодування latin1 (ISO 8859-1) і £ як символ валюти, в той час як en_IE@euro
використовується кодування latin9 (ISO 8859-15) і € як символ валюти.
Крім того, є два імені локалів, які існують у всій системі, схожій на unix: C
і POSIX
. Ці імена синонімічні і означають обчислювальні, тобто налаштування за замовчуванням, які підходять для даних, які аналізуються комп'ютерною програмою.
Налаштування мови
Наступні категорії локалів визначені POSIX :
LC_CTYPE
: набір символів, використовуваний термінальними додатками: класифікаційні дані (символи яких букви, пунктуація, пробіли, недійсні тощо) та перетворення регістру. Текстові утиліти зазвичай прислуховуються LC_CTYPE
до визначення меж символів.
LC_COLLATE
: порядок порівняння (тобто сортування). Цей параметр дуже обмежено використовується з кількох причин:
- Більшість мов мають складні правила, які залежать від сортування (наприклад, слова словника та власні імена можуть використовувати не той самий порядок) і не можуть бути виражені символом
LC_COLLATE
.
- Існує небагато програм, де належний порядок сортування має значення, яке виконується програмним забезпеченням, яке використовує параметри місцевості. Наприклад, текстові процесори зберігають мову та кодування файлу у самому файлі (інакше файл не оброблятиметься належним чином у системі з різними налаштуваннями мови) та не хвилює налаштування локалі, визначені середовищем.
LC_COLLATE
може мати негативні побічні ефекти, зокрема, тому що це призводить до порядку сортування A <a <B <..., завдяки якому "між A і Z" включає малі літери від a до y. Зокрема, дуже поширені регулярні вирази, такі як [A-Z]
зламати деякі програми .
LC_MESSAGES
: мова інформаційних повідомлень та повідомлень про помилки.
LC_NUMERIC
: форматування чисел: роздільник десятків і тисяч.
Багато програм жорсткого коду .
у вигляді десяткового роздільника. Це робить LC_NUMERIC
не дуже корисними та потенційно небезпечними:
- Навіть якщо ви встановите його, ви все одно будете бачити формат за замовчуванням досить часто.
- Ви, швидше за все, потрапите в ситуацію, коли одна програма виробляє залежний від локалі вихід, а інша програма розраховує
.
на десяткову точку або ,
роздільник поля.
LC_MONETARY
: як LC_NUMERIC
, але для сум місцевої валюти.
Дуже мало додатків використовують це.
LC_TIME
: форматування дати та часу: назви будня та місяця, годинник 12 або 24 години, порядок частин дати, пунктуація тощо.
GNU libc, який ви знайдете в невбудованому Linux, визначає додаткові категорії мов:
LC_PAPER
: розмір паперу за замовчуванням (визначається висотою та шириною).
LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
Я не знаю ні одного додатка , яке використовує їх.
Змінні середовища
Програми, що використовують параметри локалі, визначають їх із змінних оточення.
- Тоді використовується значення
LANG
змінної середовища, якщо це не перекрито іншим параметром. Якщо LANG
не встановлено, локальний код за замовчуванням C
.
- Ці
LC_xxx
імена можуть бути використані в якості змінних оточення.
- Якщо
LC_ALL
встановлено, усі інші значення ігноруються; це в першу чергу корисно для встановлення LC_ALL=C
запущених програм, яким потрібно виробляти однаковий вихід незалежно від того, де вони запущені.
- Крім того, GNU libc використовує
LANGUAGE
для визначення резервних копій для LC_MESSAGES
(наприклад, LANGUAGE=fr_BE:fr_FR:en
віддати перевагу бельгійській французькій мові, або за відсутності французької французької мови, або за відсутності англійської).
Встановлення локалів
Дані про локальний вміст можуть бути великими, тому деякі дистрибутиви не доставляють їх у зручній формі, а натомість потребують додаткового кроку встановлення.
- У Debian, щоб встановити локалі, запустіть
dpkg-reconfigure locales
та виберіть зі списку в діалоговому вікні або відредагуйте /etc/locale.gen
та запустіть locale-gen
.
- Для встановлення локалів на Ubuntu запустіть
locale-gen
з іменами локалів як аргументами.
Ви можете визначити свою власну локаль .
Рекомендація
Корисні налаштування:
- Встановіть
LC_CTYPE
мову та кодування, якими ви кодуєте текстові файли. Переконайтесь, що термінали використовують це кодування.
Для більшості мов значення має лише кодування. Є кілька винятків; наприклад, в верхньому регістрі i
є I
в більшості мов , але İ
на турецькому мовою ( tr_TR
).
- Встановіть
LC_MESSAGES
мову, в якій ви хочете бачити повідомлення.
- Набір
LC_PAPER
для en_US
якщо ви хочете US Letter бути розмір паперу по замовчуванням і просто про що - небудь ще (наприклад en_GB
) , якщо ви хочете A4.
- За бажанням встановіть
LC_TIME
улюблений формат часу.
Як пояснено вище, уникайте встановлення LC_COLLATE
та LC_NUMERIC
. Якщо ви користуєтесь LANG
, явно перекрийте ці дві категорії, встановивши їх на C
.
LC_PAPER
. І чи можу я оновити це в системі без перезавантаження?