У системах UNIX / Linux ця установка називається POSIX [7], і стандартизована як IEEE Std 1003.1-2017 [3]. Такий регіон може відрізнятися для системи в цілому, а облікові записи одного користувача, оскільки кожен користувач може індивідуалізувати своє робоче середовище. У цій статті ми пояснимо вам, як зрозуміти поточну настройку мови у Debian GNU / Linux, зрозуміти її єдині регулювальні гвинти та як адаптувати систему до ваших потреб.
Зверніть увагу, що ця стаття розроблена відповідно до Debian GNU / Linux Release 10 “Buster”. Якщо не зазначено інше, методи, описані тут, також працюють з такими похідними, як Ubuntu або Linux Mint [8].
Що таке локаль?
Взагалі кажучи, локаль - це сукупність цінностей, що відображають природу та конвенції країни чи культури. Серед інших ці значення зберігаються як змінні середовища, що представляють мову, кодування символів, форматування дати та часу, розмір паперу за замовчуванням, валюту країни, а також перший день тижня.
Як вже зазначалося раніше, існує загальний параметр, відомий як "локаль за замовчуванням", і налаштування, визначені користувачем. Мова за замовчуванням працює загальносистемно і зберігається у файлі / etc / default / locale. У Лістингу 1 відображається локальна версія за замовчуванням на Debian GNU / Linux з використанням німецької мови як основної мови та 8-бітового unicode (UTF-8) як набору символів [11].
Лістинг 1: Мова за замовчуванням у німецькому Debian GNU / Linux
$ cat / etc / default / locale # Файл, згенерований update-locale LANG = “de_DE.UTF-8 ”$ --Зверніть увагу, що на відміну від Debian GNU / Linux, у деяких попередніх версіях Ubuntu загальносистемне налаштування мови зберігається в / etc / locale.конф.
Визначені користувачем параметри зберігаються як прихований файл у вашому домашньому каталозі, а фактичні файли, які перевіряються, залежать від оболонки входу, яку ви використовуєте [6]. Традиційна оболонка Борна (/ bin / sh) [4] зчитує два файли / etc / profile та ~ /.profile, тоді як оболонка Bourne-Again (Bash) (/ bin / bash) [5] читає / etc / profile та ~ /.bash_profile. Якщо вашою оболонкою для входу є оболонка Z (/ bin / zsh) [9], два файли ~ /.zprofile та ~ /.злогин читається, але не ~ /.профілю, якщо його не викликати в режимі емуляції оболонки Борна [10].
Запуск оболонки в терміналі в існуючому сеансі призводить до інтерактивної оболонки, що не входить в систему. Це може призвести до читання наступних файлів - ~ /.bashrc для Bash та / etc / zshrc, а також ~ /.zshrc для оболонки Z [6].
Присвоєння локалі
Як пояснено тут [12], назва локалі відповідає певній схемі. Шаблон складається з мовних кодів, кодування символів та опису вибраного варіанту.
Назва починається з двобуквеного мовного коду ISO 639-1 з малої літери [13] або трибуквеного коду мови ISO 639-2 [14], якщо мова не має двобуквеного коду. Наприклад, це de для німецької, fr для французької та cel для кельтської. Код для багатьох, але не для всіх мов, підкреслюється символом підкреслення _ та двобуквеним кодом країни відповідно до ISO 3166 [15]. Наприклад, це призводить до de_CH для швейцарської німецької та fr_CA для франкомовної системи для канадського користувача, який, ймовірно, буде розташований у Квебеку.
За бажанням крапка . слідує за ім'ям кодування символів, таким як UTF-8, або ISO-8859-1, і знаком @ слідує ім'я варіанту. Наприклад, ім’я [захищено електронною поштою] описує налаштування англійської системи для Ірландії з кодуванням символів UTF-8 та символом валюти євро.
Команди та інструменти
Кількість команд, пов'язаних з локалями, порівняно низька. Список містить локаль, яка суто відображає поточні налаштування мови. Другий - це localectl, який можна використовувати для запиту та зміни системних мовних параметрів та налаштувань розкладки клавіатури. Для того, щоб активувати локаль, в дію входять інструменти dpkg-reconfigure та locale-gen - див. Приклад нижче.
Показати локаль, що використовується
Крок перший - з’ясувати поточну локаль у вашій системі за допомогою команди локалі наступним чином:
Лістинг 2: Показати поточний регіон
$ locale LANG = de_DE.UTF-8 МОВА = LC_CTYPE = “de_DE.UTF-8 "LC_NUMERIC =" de_DE.UTF-8 "LC_TIME = “de_DE.UTF-8 "LC_COLLATE =" de_DE.UTF-8 "LC_MONETARY =" de_DE.UTF-8 "
LC_MESSAGES = "de_DE.UTF-8 "LC_PAPER =" de_DE.UTF-8 "LC_NAME =" de_DE.UTF-8 "
LC_ADDRESS = “de_DE.UTF-8 "LC_TELEPHONE =" de_DE.UTF-8 "LC_MEASUREMENT =" de_DE.UTF-8 "
LC_IDENTIFICATION = "de_DE.UTF-8 ”LC_ALL = $ --
Зверніть увагу, що інші дистрибутиви Linux, крім Debian GNU / Linux, можуть використовувати додаткові змінні середовища, не перелічені вище. Окремі змінні мають таке значення:
- LANG: Визначає стандартну локаль за відсутності інших змінних середовища, пов’язаних з локаллю
- МОВА: Список запасних мов перекладу повідомлень
- LC_CTYPE: Класифікація символів та перетворення регістрів
- LC_NUMERIC: Числове форматування
- LC_TIME: Формати дати та часу
- LC_COLLATE: Порядок сортування (сортування)
- LC_MONETARY: Грошове форматування
- LC_MESSAGES: Формат інтерактивних слів та відповідей
- LC_PAPER: Розмір паперу за замовчуванням для регіону
- LC_NAME: Формати імен
- LC_ADDRESS: Конвенція, що використовується для форматування вуличних або поштових адрес
- LC_TELEPHONE: Конвенції, що використовуються для представлення телефонних номерів
- LC_MEASUREMENT: Система вимірювання за замовчуванням, що використовується в регіоні
- LC_IDENTIFICATION: Метадані про локальну інформацію
- LC_RESPONSE: Визначає, як відповіді (такі як Так і Ні) відображаються на локальній мові (не використовується Debian GNU / Linux, але Ubuntu)
- LC_ALL: Замінює всі інші змінні мови (крім МОВИ)
Перелічіть доступні регіони
Далі ви можете перерахувати доступні локалі у вашій системі, використовуючи команду локалі, що супроводжується її опцією -a. -a - це скорочення від -all-locales:
Лістинг 3: Показати доступні регіони
$ locale -a C C.UTF-8 de_DE @ євро de_DE.utf8 en_US.utf8 POSIX $ --Лістинг 3 містить два налаштування мови як для німецької (Німеччина), так і для англійської (США). Три записи C, C.UTF-8 та POSIX є синонімами та представляють налаштування за замовчуванням, які відповідають даним, які аналізуються комп’ютерною програмою. Вихідні дані в лістингу 3 базуються на списку підтримуваних локалів, що зберігаються в / usr / share / i18n / SUPPORTED.
Крім того, додавання опції -v (скорочення від -verbose) до виклику призводить до набагато більш широкого виводу, який включає метадані LC_IDENTIFICATION про кожну локаль. На рисунку 1 показано це для дзвінка з лістингу 3.
Для того, щоб побачити, які локалі вже існують, а які потребують додаткової допомоги для завершення, ви також можете поглянути на карту проекту локального помічника [20]. Червоні маркери чітко показують, які локалі недобудовані. На малюнку 2 представлені регіони Південної Африки, які виглядають цілком завершеними.
Показати доступні карти символів
Команда локалі поставляється з параметром -m, що скорочується до -charmaps. На виході відображаються доступні карти символів або файли опису набору символів [16]. Такий файл призначений для "визначення характеристик кодованого набору символів та кодування символів, зазначених у Портативному наборі символів, і може визначати кодування додаткових символів, що підтримуються реалізацією" [16]. Лістинг 4 ілюструє це витягом із цілого списку.
Лістинг 4: Файли опису набору символів
$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --Показати визначення змінних мови
Кожна змінна, яка використовується для мовної мови, має своє власне визначення. Використовуючи опцію -k (скорочення від -keyword-name), команда локалі детально відображає це налаштування. Лістинг 5 ілюструє це для змінної LC_TELEPHONE, як вона визначена в німецькому середовищі - формат телефонного номера, формат внутрішнього телефону, міжнародний код вибору, а також код країни (міжнародний префікс) та набір кодів. Детальний опис значень див. У проекті «Допоміжна програма з місцевими мовами» [20].
Лістинг 5: Деталі LC_TELEPHONE
$ locale -k LC_TELEPHONE tel_int_fmt = “+% c% a% l” tel_dom_fmt = “% A% l”int_select = “00” int_prefix = “49” телефонний набір кодів = “UTF-8” $ --
Зміна поточного мовного стандарту
Знання щодо мовної мови стає необхідним, як тільки ви запускаєте систему, яка постачається з іншою мовною мовою, ніж ви звикли - наприклад, в системі Linux live. Змінити локаль можна двома способами - переналаштувати пакет локалів Debian [19] та додати необхідну локаль за допомогою команди locale-gen. Для першого варіанту запуск наступної команди відкриває діалогове діалогове вікно конфігурації, яке показано на малюнку 3:
# dpkg-переналаштуйте локалі
Натисніть клавішу пробілу, щоб вибрати потрібні мовні параметри зі списку, що відображається у діалоговому вікні, і натисніть “OK”, щоб підтвердити свій вибір. У наступному діалоговому вікні пропонується список мовних стандартів, доступних для мовної мови за замовчуванням. Виберіть потрібний і виберіть “OK”. Тепер генеруються відповідні локальні файли, а попередньо вибрана локаль встановлюється для вашої системи.
Для варіанту два генерування бажаної локалі здійснюється за допомогою команди locale-gen. Перелік 6 ілюструє це для французької установки:
Лістинг 6: Створення французької мови
locale-gen fr_FR.UTF-8Генерування локалів… fr_FR.UTF-8 ... готово Покоління завершено. # --
Для того, щоб використовувати раніше створену локаль як типову, запустіть команду в лістингу 7, щоб правильно її налаштувати:
Лістинг 7: Встановлення локалі вручну
# update-locale LANG = fr_FR.UTF-8Як тільки ви відкриєте новий сеанс терміналу або повторно ввійдете у свою систему, зміни активуються.
Скомпілюйте файл визначення локалі
Команда localectl допомагає вам вручну скомпілювати файл визначення локалі. Для того, щоб створити французький параметр, виконайте команду наступним чином:
Лістинг 8: Складіть визначення локалі
# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8Висновок
Розуміння локалей може зайняти деякий час, оскільки на це налаштування впливає кілька факторів. Ми пояснили, як з’ясувати ваш поточний регіон і як правильно його змінити. Відтепер адаптування системи Linux до ваших потреб має бути набагато простішим для вас.
Посилання та посилання
- [1] Локаль, Debian Wiki
- [2] ChangeLanguage, Як змінити мову вашої системи Debian
- [3] POSIX Locale, Технічні характеристики бази відкритих груп, випуск 7, 2018 рік
- [4] Оболонка Борна, Вікіпедія
- [5] Оболонка Борна-знову, Вікіпедія
- [6] Різниця між оболонкою для входу та оболонкою, що не входить в систему?, StackExchange
- [7] Портативний інтерфейс операційної системи (POSIX), Вікіпедія
- [8] Linux Mint
- [9] Z оболонка, Вікіпедія
- [10] Вбудовані команди Zsh Shell
- [11] UTF-8, Вікіпедія
- [12] На що слід налаштувати мову мову та які наслідки це робить?
- [13] ISO 639-1, Вікіпедія
- [14] ISO 639-2, Вікіпедія
- [15] ISO 3166, Вікіпедія
- [16] Файли з описом набору символів
- [17] Locale, Ubuntu Wiki
- [19] локалі пакету Debian
- [20] Проект локального помічника