Home » Bash » Скрипт локализации серверной Ubuntu

Скрипт локализации серверной Ubuntu

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

Текущие языковые настройки консоли (так называемую «локаль») в любой момент можно определить с помощью команды locale:

# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Наиболее важной из этих переменных языкового окружения является  LANG, которая сейчас установлена в английский язык (en_US.UTF-8). Переменная LANG отвечает за текущую локализацию консоли и считывается системой при входе в shell из файла /etc/default/locale.

Итак, приступим.

В нашем случае список репозитариев, перечисленных в файле /etc/apt/sources.list, включает лишь англоязычные (с кодом «us»), которые не рассчитаны на работу на русском языке. Поэтому первое, что нам понадобится, это перенастройка репозитариев на работу с русскоязычными пакетами. Для этого в указанном выше файле достаточно будет заменить название доменов третьего уровня с us на ru:

# sed -i 's/\/us./\/ru./' /etc/apt/sources.list

После смены репозитариев кэш менеджера пакетов apt нужно обновить:

# apt-get update

Теперь установим собственно поддержку русского языка:

# apt-get -y install language-pack-ru

Чтобы переключить консоль на русский язык, сменим локаль с помощью команды update-locale:

# update-locale LANG=ru_RU.UTF-8

В системе по умолчанию могут быть предустановлены и другие языковые локали, которые никогда не понадобятся и будут только занимать место. Поэтому лучше удалить все установленные локали, а затем заново перегенерировать только русскую и английскую:

# locale-gen --purge en_US.UTF-8 ru_RU.UTF-8

Можно воспользоваться и командой dpkg-reconfigure locales, но тогда дополнительно будет установлена украинская локаль, которая лично мне не нужна.

На этом локализацию консоли в Ubuntu можно считать завершённой (необходимо только перезайти в систему).

Все операции по локализации можно оформить в виде bash-скрипта, который запускается с правами root:

 

Дополнительные настройки

Дополнительные настройки клавиатуры, вида и размера шрифтов выполняются следующим образом.

# dpkg-reconfigure console-setup

Оптимальными, на мой взгляд, являются следующие:

 

Давно известна также утилита console-cyrillic, которая имеет множество настроек, однако в настоящее время она не даёт каких-либо существенных преимуществ перед штатными средствами русификации.

 

Если на сервере установлен X-windows

Если, всё-таки, на вашей серверной ОС установлен X-windows или изначально это был десктопный вариант системы, но вам регулярно приходится работать в консоли, то для русификации выполняются все те же шаги, что были описаны выше с некоторыми поправками.

Файл ~/.pam_environment

В десктопных версиях Ubuntu, начиная с 12 версии, в языковых настройках системных пользователей основную роль начинает играть файл .pam_environment, находящийся в домашней папке каждого пользователя. Его настройки переопределяют локаль, заданную по умолчанию в файле /etc/default/locale. Поэтому, если после русификации системы и перезахода в неё локаль снова становится англоязычной, необходимо подправить те же самые переменные именно в этом файле.

Переменная LANGUAGE

Языковая переменная LANGUAGE выставляется графическим пакетом выбора языковых настроек и задаёт приоритет языка при отображении информационных сообщений в графических приложениях. Дело в том, что поскольку Ubuntu открытая система, то далеко не все приложения могут быть переведены на родной для пользователя язык, либо переведены не до конца. Тогда, если какой-то кусок приложения недопереведён, система подставляет переведённые фрагменты из другого языка в порядке, указанном в списке приоритетов. Этот список задаётся без указания кодировки, например:

LANGUAGE=ru_RU:en

Пользователю нет необходимости модифицировать эту переменную – она устанавливается автоматически.

Переменная LC_ALL

Будучи явно заданной, эта переменная переопределяет все переменные из серии LC_, которые существуют в системе. Если её прописать в глобальном файле /etc/default/locale или файле персональных настроек ~/.pam_environment, то выбор языка локализации приложений из графического пакета (например, GNOME) может оказаться невозможным.

Практика показывает, что значение этой переменной лучше оставить нулевым, и править значения каких-то частных переменных, например LC_TIME.

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Do NOT follow this link or you will be banned from the site!