Debian

Понимание локалей в Debian GNU / Linux

Понимание локалей в Debian GNU / Linux
Каждая компьютерная система имеет свои специфические настройки, касающиеся системного языка и используемой кодировки символов. На основе этой конфигурации сообщения об ошибках, справочная система, а также отзывы программы отображаются на экране.

В системах 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-битного юникода (UTF-8) в качестве набора символов [11].

Листинг 1. Локаль по умолчанию в немецком Debian GNU / Linux

$ cat / etc / default / locale # Файл, созданный с помощью update-locale LANG = «de_DE.UTF-8 ”$ --

Обратите внимание, что в отличие от Debian GNU / Linux, в некоторых более ранних версиях Ubuntu общесистемные настройки локали хранятся в / etc / locale.conf.

Пользовательские настройки хранятся в виде скрытого файла в вашем домашнем каталоге, а фактические файлы, которые оцениваются, зависят от используемой вами оболочки входа в систему [6]. Традиционная оболочка Борна (/ bin / sh) [4] читает два файла / etc / profile и ~ /.profile, тогда как оболочка Bourne-Again (Bash) (/ bin / bash) [5] читает / etc / profile и ~ /.bash_profile. Если ваша оболочка входа - Z shell (/ bin / zsh) [9], два файла ~ /.zprofile и ~ /.zlogin читаются, но не ~ /.profile, если не вызывается в режиме эмуляции оболочки Bourne [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 - см. Пример ниже.

Показать используемый языковой стандарт

Шаг первый - определить текущую локаль в вашей системе с помощью следующей команды locale:

Листинг 2: Показать текущий языковой стандарт

$ locale LANG = de_DE.UTF-8 LANGUAGE = 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, могут использовать дополнительные переменные среды, не указанные выше. Одиночные переменные имеют следующее значение:

Список доступных языков

Затем вы можете перечислить доступные локали в вашей системе, используя команду locale с опцией -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.

Чтобы увидеть, какие локали уже существуют, а какие нуждаются в дополнительной помощи для завершения, вы также можете взглянуть на карту проекта Locale Helper Project [20]. Красные маркеры ясно показывают, какие локации еще не достроены. На рисунке 2 показаны регионы Южной Африки, которые выглядят вполне законченными.

Показать доступные карты персонажей

Команда locale поставляется с параметром -m, который является сокращением от -charmaps. Вывод показывает доступные карты символов или файлы описания наборов символов [16]. Такой файл предназначен для «определения характеристик для набора кодированных символов и кодировки для символов, указанных в Portable Character Set, и может определять кодировку для дополнительных символов, поддерживаемых реализацией» [16]. Листинг 4 иллюстрирует это с выдержкой всего списка.

Листинг 4: Файлы описания наборов символов

$ locale -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --

Показать определения переменных локали

Каждая переменная, используемая для локали, имеет собственное определение. Используя параметр -k (сокращение от -keyword-name), команда locale подробно отображает этот параметр. Листинг 5 иллюстрирует это для переменной LC_TELEPHONE, как она определена в немецкой среде - формат номера телефона, формат внутреннего телефона, международный код выбора, а также код страны (международный префикс) и набор кодов. См. Проект Locale Helper [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» phone-codeset = «UTF-8» $ --

Изменение текущего языкового стандарта

Знание языкового стандарта становится необходимым, как только вы запускаете систему, которая поставляется с другой локалью, чем вы привыкли - например, в живой системе Linux. Изменить языковой стандарт можно двумя способами - перенастроить пакет локалей Debian [19] и добавить требуемый языковой стандарт с помощью команды locale-gen. Для первого варианта: выполнение следующей команды открывает текстовое диалоговое окно конфигурации, показанное на рисунке 3:

# dpkg-reconfigure locales

Нажмите пробел, чтобы выбрать нужный языковой стандарт из списка, показанного в диалоговом окне, и нажмите «ОК», чтобы подтвердить свой выбор. Следующее диалоговое окно предлагает вам список локалей, доступных для локали по умолчанию. Выберите нужный и нажмите «ОК». Теперь соответствующие файлы локали созданы, и ранее выбранный языковой стандарт установлен для вашей системы.

Для второго варианта создание желаемой локали выполняется с помощью команды 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 к вашим потребностям должна стать для вас намного проще.

Ссылки и ссылки
Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...