- Sysadminium
- Locale в linux
- Определение текущей locale в системе
- Список сгенерированных locales в системе
- Генерация новых locales
- Настройка различных locales разным пользователям
- Перенастройка locales с помощью одной команды
- Итог
- Как поменять язык в Linux
- Как поменять язык Linux без переустановки системы
- Смена локали для текущий сессии
- Изменение языковых настроек насовсем для одного пользователя
- Изменение системной локали по умолчанию
Sysadminium
Из статьи вы узнаете как в Linux, а именно Ubuntu и Debian, настроить locale для системы в целом и для пользователей по отдельности.
Locale в linux
Locale (локаль) — это региональные настройки операционной системы.
Каждая GNU/Linux система поставляется с конкретными региональными настройками. Эти настройки влияют на язык:
- интерфейса,
- сообщений об ошибках;
- справочной информации;
- вывода консольных утилит.
Но locale влияет не только на язык. Дополнительно это влияет на формат чисел, даты и времени, денежной валюты и другого.
Определение текущей locale в системе
Во-первых давайте определим с какими региональными настройками вы работаете в данный момент. Другими словами, какая locale сейчас используется в вашей linux системе. Для этого нужно выполнить команду locale без дополнительных параметров:
alex@s-ubu:~$ 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=
Так как, в примере, мы выполнили команду под пользователем alex, то утилита покажет региональные настройки для этого пользователя.
Имя локали состоит из нескольких частей. Вначале двумя маленькими символами обозначается язык, затем после нижнего подчеркивания идет название страны. Дальше идет кодировка, в современном мире чаще всего используется кодировка UTD-8. Примеры локалей:
- ru_RU.UTF-8 — Русский Россия;
- ru_UA.UTF-8 — Русский Украина;
- en_US.UTF-8 — Английский США;
- en_GB.UTF-8 — Английский Великобритания.
Разберём вывод предыдущей команды.
LANG — системная локаль для этого пользователя содержит значение ru_RU.UTF-8.
Дальше идут переменные, которыми могут пользоваться некоторые утилиты или подсистемы, рассмотрим некоторые из них:
- LANGUAGE — список резервных языков для перевода. Если приложение умеет это использовать и у приложения нет локализации для определённой локали, то оно может использовать запасную локаль;
- LC_NUMERIC — формат чисел, например 100 000 /100.000 / 100,000;
- LC_MONETARY — валюта и денежное форматирование.
Эти и другие переменные используются различными утилитами и подсистемами. Но обычно нет смысла использовать разные локали для этих подсистем.
Список сгенерированных locales в системе
В системе можно использовать только сгенерированные локали. Посмотреть какие сейчас сгенерированы можно так:
alex@s-ubu:~$ locale -a C C.utf8 POSIX ru_RU.utf8
Логали: C, C.utf8, POSIX — это синонимы. Они являются локалями используемыми по умолчанию, если не задана никакая другая локаль.
В системе есть ещё одна локаль — ru_RU.utf8. Эта локаль была сгенерирована при установки системы.
А если добавим опцию -v, то дополнительно увидим описание по каждой locale:
alex@s-ubu:~$ locale -a -v 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: C.utf8 directory: /usr/lib/locale/C.utf8 ------------------------------------------------------------------------------- title | C locale email | bug-glibc-locales@gnu.org revision | 2.1 date | 2022-01-30 codeset | UTF-8
Так как локали C и POSIX это псевдонимы к C.utf8, то в этом выводе они исключаются.
Генерация новых locales
Список locales находятся в файле — /etc/locale.gen. А чтобы сгенерировать новую локаль нужно разкоментировать нужные локали в этом файле, а затем выполнить от суперпользователя команду locale-gen. Давайте попробуем сгенерировать locale en_US.utf8:
alex@s-ubu:~$ sudo nano /etc/locale.gen en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8 alex@s-ubu:~$ sudo locale-gen Generating locales (this might take a while). en_US.UTF-8. done ru_RU.UTF-8. done Generation complete.
Кстати, если мы укажем использовать локаль, которую не сгенерировали. То команда locale сообщит нам об ошибке:
$ locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR.utf8 LANGUAGE= LC_CTYPE="fr_FR.utf8" LC_NUMERIC="fr_FR.utf8" LC_TIME="fr_FR.utf8" LC_COLLATE="fr_FR.utf8" LC_MONETARY="fr_FR.utf8" LC_MESSAGES="fr_FR.utf8" LC_PAPER="fr_FR.utf8" LC_NAME="fr_FR.utf8" LC_ADDRESS="fr_FR.utf8" LC_TELEPHONE="fr_FR.utf8" LC_MEASUREMENT="fr_FR.utf8" LC_IDENTIFICATION="fr_FR.utf8" LC_ALL=
В выводе видно, что мы пытаемся использовать локаль fr_FR.utf8, но забыли его сгенерировать.
Настройка различных locales разным пользователям
Для начала, если не настраивать локаль отдельным пользователям, то все они будут использовать локаль прописанную в файле /etc/default/locale:
alex@s-ubu:~$ cat /etc/default/locale LANG=ru_RU.UTF-8
Из вывода видно что все пользователи будут использовать локаль ru_RU.UTF-8.
Если пользователю нужно использовать другую локаль, то можно для него переопределить переменную LANG. Для этого можно использовать файл .bashrc в его домашнем каталоге, например:
alex@s-ubu:~$ nano .bashrc LANG=en_US.utf8 alex@s-ubu:~$ su - alex alex@s-ubu:~$ locale LANG=en_US.utf8 LANGUAGE= LC_CTYPE="en_US.utf8" LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL=
Теперь все пользователи, кроме alex будут использовать локаль ru_RU.utf8, а alex будет использовать локаль en_US.utf8.
Перенастройка locales с помощью одной команды
В самом конце я покажу команду, с помощью которой можно сгенерировать нужные локали и убрать не нужные, а также выставить локаль по умолчанию. Это команда dpkg-reconfigure locales и запускать её нужно с правами администратора:
$ sudo dpkg-reconfigure locales
После выполнения команды вы увидите псевдографический интерфейс:
После выбора locales для генерации, вам нужно будет выбрать locale по умолчанию, которая пропишется в файл /etc/default/locale:
Итог
Мы познакомились с настройками locale в linux на примерах операционных систем Debian и Ubuntu.
- locale — для просмотра используемой и сгенерированных локалей;
- locale-gen — для генерации локалей;
- dpkg-reconfigure locales — для генерации локалей и установки локали по умолчанию.
А также узнали про системные файлы:
- /etc/default/locale — в нём прописана локаль по умолчанию;
- /etc/locale.gen — здесь содержится список доступных локалей для генерации;
- .bashrc — с помощью этого файла, в домашнем каталоге пользователя, можно переопределить локаль для пользователя.
Как поменять язык в Linux
Операционная система Linux является бесплатным аналогом ОС Windows, она стала достаточно популярной среди пользователей благодаря свободному распространению и возможностью детальной настройки «Под себя». Она имеет множество модификаций, которые будут полезны как продвинутым пользователям, так и новичкам.
Выполните русификацию операционной системы Ubuntu, чтобы установить русский язык в Linux. Аналогично можно установить любой другой язык. Для этого перейдите в главное меню, выберите там опцию «Система», далее «Администрирование» – «Локализации». Данная команда выполняет запуск менеджера локализаций.
Далее выберите опцию «Основной язык», установите флажок возле необходимого языка, к примеру, «Русский (Российская федерация)». Далее выделите из списка поддерживаемых языков «Русский». Щелкните по кнопке «Подробности». Установите флажки возле пунктов меню «Основные переводы», «Дополнительные переводы», «Лингвистика», «Дополнительное ПО».
Дождитесь завершения загрузки и установки языковых пакетов Ubuntu. Чтобы получить возможность управления теми локализациями, которые уже установлены, щелкните по кнопке «Установка/удаление языков». После всех выполненных изменений перезагрузите компьютер либо завершите сессию текущего пользователя и снова зайдите в систему.
Перейдите в меню «Система», выберите пункт «Администрирование», далее «Язык системы». Данное меню позволит вам изменить язык системы Linux. В открывшемся окне перейдите во вкладку «Язык». Щелкните «Установка/Удаление языков», чтобы добавить нужный язык. Из списка выберите нужный, установите флажки возле необходимых компонентов и щелкните по кнопке «Применить изменения».
Далее в новом окне введите пароль, чтобы установить языковые пакеты Linux. После установки языка в опции «Язык для меню и окон» выберите нужный, и установите расположение языков в порядке ваших предпочтений. Далее щелкните по вкладке «Текст». Выберите из списка государство, для которого будут отображаться локальные значения дат, валюты и чисел.
Добавьте раскладку клавиатуры для установленного языка. Перейдите в главное меню «Система», выберите «Параметры», щелкните по опции «Клавиатура». В открывшемся окне «Параметры клавиатуры» выберите вкладку «Раскладки», щелкните по кнопке «Добавить», выберите нужную и щелкните «ОК». В этом же окне можно выбрать сочетание клавиш для изменения языка Linux.
- Как русифицировать компьютер
- Как настроить ubuntu
- Как на Linux установить Windows
- Windows или Ubuntu?
- Как установить китайский язык на компьютер
- Как обновить список репозиториев
- Как русифицировать Miranda
- Как поменять язык интерфейса
- Как настроить английскую раскладку клавиатуры
- Как перейти на ubuntu
- Xubuntu системные требования
Как поменять язык Linux без переустановки системы
При установке Linux можно выбрать язык системы (локаль) — и в дальнейшем этот язык будет использоваться в программах и окнах Linux (за исключением тех приложений, для которых не сделан перевод).
Если вы решили поменять язык Linux, то вам не нужно переустанавливать её — достаточно выполнить простые действия.
Чтобы узнать текущие языковые настройки, наберите команду:
Чтобы посмотреть доступные языковые настройки (локали), воспользуйтесь командой
Для изменения языка системы, нужно, чтобы локаль, на которую вы хотите поменять язык, уже присутствовала в системе. Если её нет, то нужно добавить.
Чтобы добавить новую локаль, откройте файл /etc/locale.gen:
И раскомментируйте там строки с желаемыми новыми локалями. Затем выполните команду:
Теперь новые языковые настройки (новую локаль) вы можете видеть в списке доступных локалей.
Смена локали для текущий сессии
Чтобы поменять язык и кодировку для текущей сессии, вам нужно установить переменную окружения LANG, это можно сделать командой export:
# Установить английскую локаль export LANG=en_US.UTF-8 # Установить русскую локаль export LANG=ru_RU.UTF-8 # Установить французскую локаль export LANG=fr_FR.UTF-8
Если в вашей системе это не сработало, то замените переменную LANG на переменную LANGUAGE, например:
Изменение языковых настроек насовсем для одного пользователя
Добавьте строку с экспортом желаемой локали (например, export LANG=en_US.utf-8) в файл ~/.bashrc
Изменения начнут действовать после выхода/входа и будут действовать после каждой перезагрузки.
Изменение системной локали по умолчанию
Есть два альтернативных метода смены локали.
Первый — это запустить следующую команду (укажите нужную вам локаль):
sudo localectl set-locale LANG=en_US.UTF-8
sudo localectl set-locale LANG=ru_RU.UTF-8
Второй метод — прописать язык в файле /etc/locale.conf, откройте его:
и добавьте туда строку с нужной локалью:
После перезагрузки система предложит изменить имена папок на локализованные:
Чтобы это окно не появлялось при каждой загрузке системы, поставьте галочку «Не задавать больше этот вопрос».
Чтобы вновь открыть это окно, выполните в командной строке:
echo 'en_US' > ~/.config/user-dirs.locale xdg-user-dirs-gtk-update