Смена языка linux через терминал

Локализация Ubuntu Server 18.04 LTS

Локаль (locale или локализация) в Linux определяет, какой язык и какой набор символов (кодировку), пользователь видит в терминале. Посмотрим, как проверить текущие настройки языка и кодировки, как получить список всех доступных локалей, как сменить язык и кодировку для текущей сессии или установить их постоянно.

Для тех, кому лень читать всю статью до конца — чаще всего для локализации консоли достаточно повторно сконфигурировать пакет locales :

$ sudo dpkg-reconfigure locales

Сначала будут созданы нужные локали (их выбрать на первом экране), потом установлена локаль по умолчанию (ее выбрать на втором экране).

Текущие настройки языка

Посмотрим информацию о текущем языковом окружении:

$ locale LANG=C.UTF-8 LANGUAGE= LC_CTYPE="C.UTF-8" LC_NUMERIC="C.UTF-8" LC_TIME="C.UTF-8" LC_COLLATE="C.UTF-8" LC_MONETARY="C.UTF-8" LC_MESSAGES="C.UTF-8" LC_PAPER="C.UTF-8" LC_NAME="C.UTF-8" LC_ADDRESS="C.UTF-8" LC_TELEPHONE="C.UTF-8" LC_MEASUREMENT="C.UTF-8" LC_IDENTIFICATION="C.UTF-8" LC_ALL=

Список доступных локалей

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

Есть только системная локаль C.UTF-8 , которая присутствует всегда. А нам надо добавить еще две локали — en_US.UTF-8 и ru_RU.UTF-8 .

Добавить новую локаль

Смотрим список всех поддерживаемых (доступных для установки) локалей:

# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. # aa_DJ ISO-8859-1 # aa_DJ.UTF-8 UTF-8 # . # en_US.ISO-8859-15 ISO-8859-15 # en_US.UTF-8 UTF-8 # en_ZA ISO-8859-1 # . # ru_RU.KOI8-R KOI8-R # ru_RU.UTF-8 UTF-8 # ru_UA KOI8-U # . # zu_ZA ISO-8859-1 # zu_ZA.UTF-8 UTF-8

Устанавливаем нужные локали — en_US.UTF-8 и ru_RU.UTF-8 :

$ sudo locale-gen en_US.UTF-8 ru_RU.UTF-8 Generating locales (this might take a while). en_US.UTF-8. done ru_RU.UTF-8. done Generation complete.

Второй способ установить локали — расскомментровать нужные строки в файле /etc/locale.gen

# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. # aa_DJ ISO-8859-1 # aa_DJ.UTF-8 UTF-8 # . # en_US.ISO-8859-15 ISO-8859-15 en_US.UTF-8 UTF-8 # en_ZA ISO-8859-1 # . # ru_RU.KOI8-R KOI8-R ru_RU.UTF-8 UTF-8 # ru_UA KOI8-U # . # zu_ZA ISO-8859-1 # zu_ZA.UTF-8 UTF-8

И просто выполнить команду locale-gen без указания локалей:

Подробная информация о локалях

Более подробную информацию об установленных в системе локалях можно посмотреть так:

$ locale -a -v locale: en_US.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | English locale for the USA source | Free Software Foundation, Inc. address | http://www.gnu.org/software/libc/ email | bug-glibc-locales@gnu.org language | American English territory | United States revision | 1.0 date | 2000-06-24 codeset | UTF-8 locale: ru_RU.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | Russian locale for Russia source | RAP address | Sankt Jorgens Alle 8, DK-1615 Kobenhavn V, Danmark email | bug-glibc-locales@gnu.org language | Russian territory | Russia revision | 1.0 date | 2000-06-29 codeset | UTF-8 locale: ru_UA.utf8 archive: /usr/lib/locale/locale-archive ------------------------------------------------------------------------------- title | Russian locale for Ukraine source | RFC 2319 email | bug-glibc-locales@gnu.org language | Russian territory | Ukraine revision | 1.0 date | 2000-06-29 codeset | UTF-8 locale: C.UTF-8 directory: /usr/lib/locale/C.UTF-8 ------------------------------------------------------------------------------- title | C locale email | aurel32@debian.org language | C revision | 1.6 date | 2016-08-08 codeset | UTF-8

Часть локалей размещена в архиве /usr/lib/locale/locale-archive , а часть — в директориях внутри /usr/lib/locale/ .

Читайте также:  Punto switcher linux fedora

Локаль по-умолчанию

Хорошо, нужные локали у нас теперь есть, осталось только задать локаль по умолчанию:

$ sudo update-locale LANG=ru_RU.UTF-8

Эта команда запишет в файл /etc/default/locale строку:

После этого надо будет перезайти в систему. И проверяем информацию о языковом окружении:

$ locale LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=

Теперь все правильно, так что запишем эту информацию в файл /etc/default/locale :

$ locale | sudo tee /etc/default/locale
LANG=ru_RU.UTF-8 LANGUAGE= LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=

Переменная окружения LANG — это локаль по умолчанию. Локаль, установленная в этой переменной, используется в качестве значения для всех остальных переменных LC_XXXXX , которые не установлены явно. Переменная окружения LC_ALL переопределяет своим значением все переменные LC_XXXXX , включая LANG — независимо от того, установлены они или нет.

Быстрая локализация

До сих пор мы все делали ручками, но если лень — можно просто повторно сконфигурировать пакет locales . Сначала будут созданы нужные локали (их нужно выбрать на первом экране), потом установлена локаль по умолчанию (ее нужно выбрать на втором экране).

$ sudo dpkg-reconfigure locales

Удалить лишние локали

После установки (генерации) локали, она помещается в архив /usr/lib/locale/locale-archive . Файл архива — это файл, отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами. Посмотреть список локалей в архиве можно с помощью команды:

$ localedef --list-archive en_US.utf8 ru_RU.utf8 ru_UA.utf8

Удалить заданную локаль из файла архива:

$ sudo localedef --delete-from-archive ru_UA.utf8

Обратите внимание на название локали — ru_UA.utf8 , а не ru_UA.UTF-8 . Если неправильно указать локаль — она не будет удалена из архива:

$ sudo localedef --delete-from-archive ru_UA.UTF-8 locale "ru_UA.UTF-8" not in archive

В случае, если утилита locale-gen была вызвана с опцией —no-archive , надо удалить соответствующую директорию в /usr/lib/locale :

$ cd /usr/lib/locale $ ls C.UTF-8 en_US.utf8 ru_RU.utf8 ru_UA.utf8 $ sudo rm -r ru_UA.utf8

Есть еще один способ удалить лишние локали — закомментровать в файле /etc/locale.gen строки локалей, которые больше не нужны — и запустить locale-gen без параметров.

Читайте также:  Установка suricata astra linux

Переводы для системных программ

Локализация для основных системных программ, чтобы получать сообщения на русском языке:

$ sudo apt install language-pack-ru

Локализация для текущей сессии

Достаточно временно установить переменную окружения LANG в текущей сессии терминала:

$ export LANG=en_US.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Permission denied
$ export LANG=ru_RU.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Отказано в доступе

Или даже так — передать переменную LANG конкретной программе:

$ export LANG=en_US.UTF-8 $ cat /etc/shadow cat: /etc/shadow: Permission denied $ LANG=ru_RU.UTF-8 cat /etc/shadow cat: /etc/shadow: Отказано в доступе

Файлы конфигурации шрифта и клавиатуры

Настройки можно найти в файлах конфигурации /etc/default/console-setup и /etc/default/keyboard :

$ cat /etc/default/console-setup
# Consult the console-setup(5) manual page. ACTIVE_CONSOLES="/dev/tty3" CHARMAP="UTF-8" CODESET="CyrSlav" FONTFACE="Fixed" FONTSIZE="8x16" VIDEOMODE=
# Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us,ru" XKBVARIANT="," XKBOPTIONS="grp:alt_shift_toggle,grp_led:scroll" BACKSPACE="guess"

Это системные настройки, пользователь может создать свои в файлах ~/.console-setup и ~/.keyboard .

Настройка шрифта и клавиатуры

Чтобы сформировать файлы конфигурации /etc/default/console-setup и /etc/default/keyboard можно использовать команды:

$ sudo dpkg-reconfigure console-setup

$ sudo dpkg-reconfigure keyboard-configuration

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

Console-cyrillic — это пакет для руссификации консоли (поддержки кириллицы в терминале), старый и известный пакет. Но в новых версиях операционных систем с системой инициализации systemd он считается устаревшим, поскольку у systemd есть нативные средства локализации консоли и наличие console-cyrillic там не только не требуется, но и не рекомендуется.

Команда localectl предоставляет возможности для централизованного управления языковыми и региональными параметрами.

$ localectl --help localectl [OPTIONS. ] COMMAND . Query or change system locale and keyboard settings. Commands: status Show current locale settings set-locale LOCALE. Set system locale list-locales Show known locales set-keymap MAP [MAP] Set console and X11 keyboard mappings list-keymaps Show known virtual console keyboard mappings set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]] Set X11 and console keyboard mappings list-x11-keymap-models Show known X11 keyboard mapping models list-x11-keymap-layouts Show known X11 keyboard mapping layouts list-x11-keymap-variants [LAYOUT] Show known X11 keyboard mapping variants list-x11-keymap-options Show known X11 keyboard mapping options Options: -h --help Show this help --version Show package version --no-pager Do not pipe output into a pager --no-ask-password Do not prompt for password -H --host=[USER@]HOST Operate on remote host -M --machine=CONTAINER Operate on local container --no-convert Don't convert keyboard mappings See the localectl(1) man page for details.
$ localectl status System Locale: LANG=ru_RU.UTF-8 VC Keymap: n/a X11 Layout: us,ru X11 Model: pc105 X11 Variant: , X11 Options: grp:alt_shift_toggle
$ localectl list-locales C.UTF-8 en_US.UTF-8 ru_RU.UTF-8 ru_UA.UTF-8

Источник

Читайте также:  Настраиваем сетевой интерфейс linux

Меняем язык системы в Ubuntu

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

Меняем язык через графическую оболочку

  • Кликаем по информационной панели в правом верхнем углу рабочего стола (там, где отображаются индикаторы сети и аккумулятора).

Статус-бар в Ubuntu

Это, по сути, короткий путь к настройкам

  • В появившемся окошке щелкаем по иконке в виде шестеренки. Это ссылка на основные настройки оболочки GNOME.

Настройки в статус-баре Ubuntu

Переходим к параметрам Ubuntu

  • Оказавшись в настройках, ищем в боковой панели вкладку с названием Region & Language (Язык и регион) и переходим в нее.

Настройки операционной системы Ubuntu

Выбираем вкладку с настройками языка

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

Настройки языка в Ubuntu

У меня установлен английский, выбранный по умолчанию

  • В открывшемся списке выбираем нужный язык и ставим напротив него галочку.
  • Затем кликаем по кнопке Select.

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

У меня установлена «укороченная» версия Ubuntu и тут нет русского языка. У вас будет

В некоторых системах с легковесными оболочками типа XFCE или Cinnamon может не быть отдельной программы для настроек. В Linux Mint с XFCE, например, вместо этого используется отдельное приложение «Языки». Такие приложения можно найти с помощью поисковика в списке доступных программ.

Меняем язык через терминал

Изменить системный язык можно и вручную. За него отвечают два конфигурационных файла в директории /etc/. Достаточно открыть эти файлы и поочередно изменить значения языка, указанные в соответствующих строках.

  • Откроем файл /etc/default/locale любым редактором с помощью команды: sudoedit /etc/default/locale.

Команда для работы с файлом /etc/default/locale

Можно открыть с помощью конкретного редактора, указав его название перед путем до файла

  • Ищем внутри строку LANG=“en_US” и меняем ее значение на нужное нам. Например, для русского языка на “ru_RU”.

Примерное содержимое файла /etc/default/locale

Обычно здесь указывается и другая связанная с языками информация

  • Открываем файл в корневой директории /.pam_environment любым редактором с помощью команды sudoedit ~/.pam_environment
  • Ищем аналогичные строки и редактируем их так же, как в предыдущем файле.

Возможно, редактировать второй файл не придется. Его может вовсе не оказаться в системе, и достаточно будет внести изменения в /etc/default/locale

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

Источник

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