Установка локали в linux

Настройка локализации в Ubuntu 20.04

Набор действий для настройки локализации в системе Ubuntu 20.04 на русскую.

Проверка доступной локали

Если в системе установлены локали для русского языка, то можно увидеть примерно следующее.

ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 ru_UA ru_UA.koi8u ru_UA.utf8 russian 

Пустой вывод будет означать, что нужные локали не установлены.

Установка локали

Перенастройка локалей выполняется командой.

Далее нужно выбрать необходимые локали, например в нашем случае это ru_RU.UTF-8. Там же в меню выберем локаль по умолчанию, в нашем примере тоже русскую.

Теперь локаль установлена и настроена. Необходимо переподключиться к консоли для использования новых настроек в сессии.

Альтернативный путь установки локали

Устанавливаем соответствующий пакет.

sudo apt-get install language-pack-ru 
sudo update-locale LANG=ru_RU.UTF-8 

Далее перезаходим в систему и проверяем через коману.

Результат должен быть таким.

LANG=ru_RU.utf8 LC_CTYPE="ru_RU.utf8" LC_NUMERIC="ru_RU.utf8" LC_TIME="ru_RU.utf8" LC_COLLATE="ru_RU.utf8" LC_MONETARY="ru_RU.utf8" LC_MESSAGES="ru_RU.utf8" LC_PAPER="ru_RU.utf8" LC_NAME="ru_RU.utf8" LC_ADDRESS="ru_RU.utf8" LC_TELEPHONE="ru_RU.utf8" LC_MEASUREMENT="ru_RU.utf8" LC_IDENTIFICATION="ru_RU.utf8" LC_ALL= 

Источник

Locale (Русский)

Состояние перевода: На этой странице представлен перевод статьи Locale. Дата последней синхронизации: 2022-04-03. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Локали определяют язык, который использует система, а также региональные особенности, такие как денежные знаки, формат чисел, даты и времени и наборы символов. Они используются glibc и некоторыми другими программами или библиотеками для рендеринга текста.

Генерирование локалей

Имена локалей обычно имеют вид [язык][_ТЕРРИТОРИЯ][.НАБОР_СИМВОЛОВ][@модификатор] , где язык это код языка ISO 639, ТЕРРИТОРИЯ это код страны ISO 3166 и НАБОР_СИМВОЛОВ это кодировка вроде ISO-8859-1 или UTF-8. Смотрите setlocale(3) .

Чтобы вывести список всех доступных и сгенерированных локалей, выполните:

Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована. Локали, которые вы можете сгенерировать перечислены в файле /etc/locale.gen . Чтобы сгенерировать локаль, первым делом раскомментируйте соответствующую строку в файле (а для удаления наоборот, закомментируйте); вы можете раскомментировать несколько локалей, в зависимости от ваших потребностей.

Читайте также:  Возможно диск скоро станет неработоспособным linux

Например, для русской локали раскомментируйте ru_RU.UTF-8 UTF-8 :

. #ro_RO ISO-8859-2 #ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 #ru_RU ISO-8859-5 #ru_UA.UTF-8 UTF-8 .

После сохранения файла сгенерируйте выбранные локали командой:

  • locale-gen также запускается каждый раз при обновлении glibc . [1]
  • UTF-8 предпочтительнее других кодировок. [2]

Установка локали

Чтобы отобразить текущую локаль и связанные с ней переменные окружения, наберите:

Используемая локаль, выбранная среди сгенерированных в системе, устанавливается в файлах locale.conf , каждый из которых должен содержать список переменных окружения в том же формате, в каком их выводит команда locale.

Чтобы посмотреть список доступных ранее сгенерированных локалей, выполните:

Установка системной локали

  • Системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf . Значением должен быть первый столбец из раскомментированной записи в /etc/locale.gen :

Вы можете установить ее также при помощи localectl:

# localectl set-locale LANG=ru_RU.UTF-8 

Совет: Во время установки системы, если вас устраивает вывод команды locale, вы можете просто сохранить его в файл командой locale > /etc/locale.conf (в сеансе arch-chroot).

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

  • Системная локаль может переопределяться в каждом пользовательском сеансе с помощью файла ~/.config/locale.conf (обычно ~/$XDG_CONFIG_HOME/locale.conf ).
  • Это позволяет вести системные логи в /var/log/ на английском, при использовании местного языке в рабочей среде пользователя.
  • Вы можете создать файл /etc/skel/.config/locale.conf , тогда для всех новых пользователей, добавленных командой useradd с опцией -m сразу будет автоматически сгенерирован файл ~/.config/locale.conf .

Немедленное применение изменений локали

После внесения изменений в файлы locale.conf , они вступят в силу после перезагрузки системы, и для отдельных сеансов пользователей — при входе. Чтобы принудительно обновить локаль в текущем окружении без перезагрузки, выполните:

$ unset LANG $ source /etc/profile.d/locale.sh

Примечание: Переменную LANG нужно обязательно сбросить, иначе locale.sh не обновит значения из locale.conf . Будут обновлены только новые и изменённые переменные; те же, что были удалены из файла locale.conf , по-прежнему останутся в текущем сеансе.

Дополнительно

Переменные окружения настроек локали могут также быть установлены обычным способом, как указано на странице переменные окружения.

Читайте также:  Параметры ядра linux kernel

Например, чтобы проверить, как работает конкретное приложение с какой-нибудь локалью, вы можете запустить его следующим образом:

Аналогично, для установки локали всем процессам, запускаемом из текущей командной оболочки (например, в процессе установки системы):

Переменные окружения

Файлы locale.conf могут содержать следующие переменные окружения:

  • LANG
  • LANGUAGE
  • LC_ADDRESS
  • LC_COLLATE
  • LC_CTYPE
  • LC_IDENTIFICATION
  • LC_MEASUREMENT
  • LC_MESSAGES
  • LC_MONETARY
  • LC_NAME
  • LC_NUMERIC
  • LC_PAPER
  • LC_TELEPHONE
  • LC_TIME

Полное объяснение этих переменных можно узнать в locale(7) , детали описаны в locale(5) .

Примечание: При поиске значений, зависящих от локали, программы следуют определённому порядку приоритета.

LANG: локаль по умолчанию

Локаль, установленная в этой переменной используется в качестве значения для всех остальных LC_* -переменных, которые не установлены явно.

Совет: Например, вы англоговорящий пользователь в Испании и вы хотите, чтобы приложение обрабатывало числа и даты согласно стандартам Испании, но тексты были на английском. Тогда вы можете установить переменную LANG в значение es_ES.UTF-8 и переменную LC_MESSAGES в en_US.UTF-8 .

LANGUAGE: запасные локали

Программы, использующие gettext для перевода, учитывают также переменную LANGUAGE в дополнение к стандартным переменным. Это позволяет пользователям установить список локалей, которые будут использоваться в указанном порядке для поиска перевода. Если перевод для более предпочтительной локали (которая идет первее в списке) недоступен, будет произведена попытка получить перевод для следующей, и так далее. Например, пользователь из Австралии может предпочесть британский вариант перевода американскому:

LANG=en_AU LANGUAGE=en_AU:en_GB:en

LC_TIME: формат даты и времени

Например, если переменная LC_TIME имеет значение en_US.UTF-8 , будет использован формат даты ММ/ДД/ГГГГ . Если вы хотите использовать формат ISO 8601 ( ГГГГ-ММ-ДД ), установите:

Примечание: Программы не всегда учитывают указанный здесь формат даты. Например, date(1) использует свои собственные параметры, а Firefox не учитывал LC_TIME в версиях 57-84 (Bug 1429578).

LC_COLLATE: порядок сортировки

Эта переменная отвечает за правила определения сравнения наборов символов, которые используются для сортировки и регулярных выражений.

Установка значения LC_COLLATE=C , например, приведет к тому, что команда ls будет располагать файлы, имена которых начинаются с точки, первыми, за ними последуют имена, начинающиеся с цифры, затем с заглавной и, наконец, со строчной буквы:

Чтобы избежать возможных проблем, в Arch переменная установлена как LC_COLLATE=C в /etc/profile , однако этот метод сейчас устарел.

Читайте также:  Linux find file by names

LC_ALL: решение проблем

Переменная LC_ALL переопределяет своим значением все LC_* -переменные, включая LANG , независимо от того, установлены они или нет.

Переменная LC_ALL — единственная из всех LC_ -переменных, которую нельзя установить в /etc/locale.conf : она предназначена только в целях проверки при решении проблем.

Советы и рекомендации

Запуск приложения с другой локалью в терминале

Например, чтобы запустить программу abiword на иврите:

# env LANG=he_IL.UTF-8 abiword &

Запуск приложения с другой локалью из меню

Скопируйте файл .desktop в домашний каталог пользователя:

$ cp /usr/share/applications/abiword.desktop ~/.local/share/applications/

И отредактируйте команду в опции Exec :

~/.local/share/applications/abiword.desktop
Exec=env LANG=he_IL.UTF-8 abiword %U

Решение проблем

Эмулятор терминала не поддерживает UTF-8

Небольшой список терминалов с поддержкой UTF-8:

  • gnustep-terminal
  • konsole
  • mlterm
  • rxvt-unicode (Русский)
  • st
  • эмуляторы на основе VTE
  • xterm — необходимо запускать с опцией -u8 или с настройкой xterm*utf8: 2 . Также вы можете запускать uxterm, который предоставляется пакетом xterm .

gnome-terminal или rxvt-unicode не поддерживают UTF-8

Чтобы заработала поддержка UTF-8 в этих приложениях, необходимо запускать их с локалью, в которой установлена кодировка UTF-8, например ru_RU.UTF-8 . Включите эту локаль в системе, установите ее как системную локаль по умолчанию в соответствиями с инструкциями в предыдущих разделах и перезагрузите компьютер.

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

Возможно, некоторые переменные окружения из locale.conf . Подробнее смотрите на странице Переменные окружения#Установка переменных.

Если вы используете окружение рабочего стола, такое как GNOME, его настройки могут перекрывать locale.conf .

KDE Plasma также позволяет изменить язык интерфейса через свои настройки. Если он всё равно использует язык по умолчанию после изменения, удаление файла ~/.config/plasma-localerc (ранее ~/.config/plasma-locale-settings.sh ) должно помочь.

Если вы используете экранный менеджер вместе с accountsservice , смотрите Display manager (Русский)#Установка языка.

LightDM автоматически использует accountsservice для выбора локали, если он установлен. В противном случае LightDM читает настройки сеанса из ~/.dmrc . Возможно, что нежелательные настройки локали прочитались оттуда.

Смотрите также

  • Руководство по локализации Gentoo Linux
  • http://wikigentoo.ksiezyc.pl/Locales.htm [устаревшая ссылка 2023-05-06 ⓘ]
  • Интерактивная проверка сортировки от ICU
  • Инициатива Free Standards Group создания открытого стандарта интернационализации
  • О локалях в The Single UNIX Specification от The Open Group
  • Переменные окружения для настройки локали на Ubuntu Help.

Источник

Оцените статью
Adblock
detector