Керівництво по локалізації - gentoo wiki

Часовий пояс

Для того щоб зберегти час відповідно до вашого розташування потрібно налаштувати часовий пояс. Інструкції як зробити це в OpenRC і systemd можна знайти в статті системний час.

системна локаль

Що таке локальне?

Локаль - це набір інформації, за допомогою якого більшість програм встановлює параметри, що залежать від країни і мови. Локалі і їх дані є частиною системної бібліотеки. На більшості систем вони знаходяться в каталозі / usr / share / i18n / locales /. Загальний шаблон імені локалі - ab_CD. де ab - дво- або трилітерний код мови (як зазначено в ISO-639), а CD - двобуквений код країни (як зазначено в ISO-3166). До іменам локалей часто додаються варіанти на кшталт @euro або @latin. наприклад de_DE @ euro або nan_TW @ latin. Для отримання більш детальної інформації, пов'язаної з Локаль, зверніться до Wikipedia.

Змінна оточення локалі

Змінні, які контролюють різні аспекти налаштувань локалі наведені в таблиці нижче. Всі вони приймають одне з імен локалі в форматі ab_CD про який розповідалося раніше.

Визначає всі налаштування локалі відразу, при цьому подальшу індивідуальну настройку можна налаштувати через LC_ * налаштування нижче.

Визначає порядок проходження алфавіту. Ця установка вплине, наприклад, як буде відображатися відсортований список каталогу.

Визначає властивості оброблюваних символів для системи. Це визначає, які символи розглядаються як частина алфавіту, цифри і так далі. Це також визначає використовуваний набір символів, якщо це може бути застосовано.

Programs 'localizations stored in / usr / share / locale / for applications that use message based localization scheme (majority of Gnu programs, see next chapters for closer information which do, and how to get the programs, that do not, to work) .

Defines currency units and formatting of currency type numeric values.

Defines formatting of numeric values ​​which are not monetary. Affects things such as thousand separator and decimal separator.

Визначає формат дати і часу.

Визначає розмір аркуша, який буде використовуватися за замовчуванням.

Спеціальна змінна, яка перекриває всі інші змінні.

замітка
Деякі програми написані таким чином, що очікують традиційний англійський порядок алфавіту, в той час як деякі інші локалі, одна з них Естонська, використовує інший порядок. Тому рекомендується явно встановити LC_COLLATE в C при роботі з загальносистемними настройками.

попередження
Не рекомендується використовувати змінну LC_ALL. так як вона автоматично перекриває всі інші змінні LC_ * (не впливає на LANG). Це означає, що зміни, зроблені іншим способом, не вступлять в силу, поки LC_ALL не буде доведено в значення порожнього рядка. Краще за все не встановлювати її в файлі запуску.

Найбільш типово, коли користувачі задають тільки LANG глобально.

Генерація потрібних локалей

Більшості користувачів скоріше за все буде потрібно одна або дві локалі для їх системи. Додавання додаткових локалей вказується у файлі /etc/locale.gen.

Код Додавання локалей в /etc/locale.gen

замітка
При використанні символу валюти Євро (€) на локалях, які не грунтуються на UTF-8, використовуйте значення @euro з / usr / share / i18n / SUPPORTED /.

Далі запустіть locale-gen. Це згенерує всі локалі перераховані у файлі /etc/locale.gen і запише їх до архіву локалей (/ usr / lib / locale / locale-archive).

Переконайтеся в тому, що обрані локалі дійсно доступні, запустивши locale -a.

user $ localedef --list-archive

Його вміст без змін можна відобразити за допомогою команди strings.

user $ strings / usr / lib / locale / locale-archive | less

Налаштування локалі

Коли використовується OpenRC настройки локалі зберігаються в змінному оточенні. Вони, як правило, має бути відрегульоване /etc/env.d/02locale (для всієї системи) і

/.bashrc (для конкретного користувача) файлах. Більше інформації можна знайти в статті UTF-8. Системні налаштування локалі (/etc/env.d/02locale) можна змінювати за допомогою eselect locale. Наприклад, так можна встановити LANG в значення C.

root # eselect locale list

root # eselect locale set 1

Звичайно, можна відредагувати файл вручну для більш точного налаштування змінних локалі.

Файл /etc/env.d/02localeНастройка системної локалі в файлі /etc/env.d/02locale

Також можливо, і досить поширене, особливо в більш традиційному середовищі UNIX, залишати глобальні установки незміненими, тобто, в локалі C. Користувачі як і раніше можуть встановити потрібну локаль в своєму RC-файлі оболонки:

/.bashrcНастройка локалі для користувача

Інший спосіб настройки системи - залишити її в локалі C. але при цьому включити відображення символів UTF-8. Цей варіант досягається за допомогою наступних установок в файлі /etc/env.d/02locale.

Код Використання традиційної локалі C, встановлюючи UTF-8

Вищенаведений фрагмент коду дозволяє відображати правильно локалізовані імена файлів без необхідності повністю використовувати вибрана мова.

Після того, як налаштуєте потрібну локаль, не забудьте оновити змінну оточення, щоб система була в курсі змін.

Для загальносистемної локалі:

root # env-update source / etc / profile

Для користувальницької локалі:

Після цього вбийте процес X-сервера натиснувши Ctrl + Alt + Backspace. вийдіть із системи, а потім зайдіть під обліковим записом користувача.

Тепер, переконайтеся, що зміни вступили в силу:

У systemd локаль налаштовується за допомогою команди localectl. Повірте список доступних локалей:

root # localectl list-locales

Потім встановіть необхідну локаль:

root # localectl set-locale LANG = de_DE.utf8

І в кінці перевірте результат:

root # localectl | grep "System Locale"

Розкладка клавіатури для консолі

Розкладка клавіатури, яка використовується консоллю, встановлюється у файлі /etc/conf.d/keymaps за допомогою змінної keymap. Допустимі значення можна знайти в каталозі / usr / share / keymaps / YOUR_ARCH /. Каталог архітектури i386 містить підкаталоги, які відповідають різним розкладками (qwerty /. Azerty / і так далі). У деяких мов є кілька варіантів - поекспериментуйте з ними, щоб визначити найбільш підходящий.

Файл /etc/conf.d/keymapsУстановка розкладки клавіатури для консолі

У systemd розкладка для консолі може бути встановлена ​​за допомогою команди localectl. Спершу перевірте наявні розкладки:

root # localectl list-keymaps

Далі встановіть необхідну розкладку для консолі:

root # localectl set-keymap it

В кінці перевірте, що розкладка для консолі була встановлена ​​правильно:

root # localectl | grep "VC Keymap"

Розкладка клавіатури для X сервера

У systemd розкладка для сервера X11 може бути встановлена ​​за допомогою команди localectl. Спершу перевірте наявні розкладки для X11:

root # localectl list-x11-keymap-layouts

Далі встановіть необхідну розкладку для X11:

root # localectl set-x11-keymap it

В кінці перевірте, що розкладка для X11 була встановлена ​​правильно:

root # localectl | grep "X11 Layout"

Для того, щоб локалізація, орієнтована на повідомлення працювала в програмах, які її підтримують і у яких є USE-прапор nls (Native Language Support). збирайте ці програми з цим прапором. Рядки повідомлень знаходяться в файлах / usr / share / locale // LC_MESSAGES /.mo. Більшості програм, що використовують NLS, також потрібно бібліотека gettext для вилучення і використання локалізованих повідомлень. Зрозуміло, при необхідності Portage встановить її автоматично.

Після включення USE-прапора nls може знадобитися перевстановити деякі пакети:

root # emerge --ask --changed-use --deep --with-bdeps = y @world

Існує ще один USE_EXPAND -флаг, який називається LINGUAS [1]. Він визначає, які файли локалізації встановлюються в програмах на базі gettext. Змінну рекомендується встановлювати в файлі /etc/portage/make.conf.

root # nano -w /etc/portage/make.conf

Якщо змінна LINGUAS встановлена ​​в значення порожнього рядка (LINGUAS = ""), велика частина файлів ebuild встановлює тільки мову за замовчуванням пакета, але не встановлює файли LC_MESSAGES.

Список встановлених програм, що використовують USE_EXPAND -флаг LINGUAS і підтримуваних ними мов можна вивести наступним чином:

user $ eix -I -U linguas

Список значень LINGUAS. які можливо використовувати наданий в /usr/portage/profiles/desc/linguas.desc.

user $ grep -i french /usr/portage/profiles/desc/linguas.desc

Після установки USE_EXPAND -флага LINGUAS може знадобитися перевстановити деякі пакети:

root # emerge --ask --changed-use --deep --with-bdeps = y @world

замітка
LINGUAS як змінна USE_EXPAND поступово замінюється змінною L10N (дивіться нижче). Це дозволяє уникнути концептуального конфлікту зі стандартним поведінкою gettext. Після перехідного періоду, необхідного для перетворення пакетів, LINGUAS стане звичайною змінною оточення.

Ще одна змінна USE_EXPAND. яка називається L10N. визначає, яку додаткову підтримку локалізації слід встановити. Зазвичай це потрібно для завантаження пакетами додаткових пакетів мов. Подібно змінної LINGUAS. в цієї змінної вказуються коди мов, розділені пробілами. Її можна встановити в файлі /etc/portage/make.conf.

root # nano -w /etc/portage/make.conf

Для того, щоб встановити цю змінну для конкретного пакета, відредагуйте файл /etc/portage/package.use і призначте "l10n_" до потрібних пакетів мов, як показано в наступному прикладі:

Зверніть увагу, що, хоча поширені дволітерні коди мов (наприклад de або fr) ідентичні в змінних LINGUAS і L10N. складніші коди використовують інший синтаксис, оскільки змінна L10N використовує IETF language tags (також відомий як BCP 47). Наприклад, pt_BR і sr @ latin в LINGUAS стають pt-BR і sr-Latn в L10N. відповідно.

Список можливих значень L10N знаходиться в файлі /usr/portage/profiles/desc/l10n.desc.

user $ grep -i portuguese /usr/portage/profiles/desc/l10n.desc

Після установки змінної USE_EXPAND L10N може знадобитися перевстановити деякі пакети:

root # emerge --ask --changed-use --deep --with-bdeps = y @world

Дивіться також

зовнішні ресурси

This article is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Alexander Holler, Steven Lucy, Benny Chuang, Lars Weiler, Tobias Scherbaum, Flammie Pirinen, nightmorph, klondike
They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.