Как изменить locale linux
Перейти к содержимому

Как изменить locale linux

  • автор:

Настройка переменных локализации в Linux

Команда locale запущенная без ключей выведет настройки текущей локали.

# locale -a | grep ru ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8

Подробный вывод с ключом -v

d# 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 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA email | bug-glibc-locales@gnu.org language | English territory | USA 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

Если в ответ получаем отличное от ru_RU.UTF — перенастраиваем.

# locale-gen ru_RU ru_RU.UTF-8 ru_RU ru_RU.UTF-8 # localedef -c -i ru_RU -f UTF-8 ru_RU.UTF-8 # dpkg-reconfigure locales # update-locale LANG=ru_RU.UTF-8

Red Hat / CentOS

Включение системных средств локализации в Red Hat Linux (а, следовательно, и в других дистрибутивах, основанных на Red Hat) осуществляется из файла /etc/profile.d/lang.sh. Как известно, при старте любого shell-а сначала выполняется /etc/profile. В Red Hat в /etc/profile прописаны команды, благодаря которым на исполнение вызываются также все файлы /etc/profile.d/*.sh

Значения переменных локализации в файлах lang.sh задаются путем вызова на выполнение файла /etc/sysconfig/i18n.

# nano /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16"

Правда, это верно только для случая, когда вы имеете права суперпользователя root. Но даже если вы простой пользователь Linux-системы и не можете редактировать файл /etc/sysconfig/i18n, то вы все же можете включить локализацию для себя, но несколько иным способом. А именно, поместите в свой файл $HOME/.profile (или в любой файл, который исполняется в процессе логирования пользователя: $HOME/.Xclients, $HOME/.xinitrc или другой) следующие строки: /etc/profile или $HOME/.bash_profile

#export LANG=ru_UA.utf8 #export LINGUAS=ru_RU:en #export LC_ALL="ru_UA.utf8" export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8"

Чтобы изменения принялись нужно перезайти в консоль или выполнить команду source для файла в котором вы прописали export

$ source ~/.profile

Debian

Чтобы использовать UTF-8 в локали нужно установить LC_CTYPE (или, опционально, переменную LANG, если вы хотите заодно изменить и системный язык).

Проверяем текущие значения переменных и установленные локали

# echo $LC_CTYPE # echo $LANG # locale -a C POSIX

Доусстановливаем нужные локали

# dpkg-reconfigure locales en_US.UTF-8 ru_UA.UTF-8

В файлы Основы BASH скрипты, циклы, горячие клавиши.bashrc и profile добавляем экспорт переменной LANG

# nano /etc/bash.bashrc # nano /etc/profile export LANG=en_US.UTF-8

Ubuntu 12.04 — удаление локалей и локализаций

Удаление лишних локалей в Ubuntu. Делал такие телодвижения:):

В файле locale-gen посмотрел пути в которых хранятся файлы локалей.

nano /usr/sbin/locale-gen . SUPPORTED=/var/lib/locales/supported.d LOCALES=/usr/share/i18n/locales STATEDIR=/var/lib/belocs .

В директории supported.d отредактировал файлы, оставил только нужные локали

# ls -l /var/lib/locales/supported.d итого 12 -rw-r--r-- 1 root root 18 Май 30 22:09 en -rw-r--r-- 1 root root 36 Май 1 21:53 local -rw-r--r-- 1 root root 36 Апр 18 11:31 ru

Поставил и настроил утилиту localepurge, она служит для удаления файлов локализаций, а не локалей

# aptitude install localepurge # nano /etc/locale.nopurge MANDELETE DONTBOTHERNEWLOCALE SHOWFREEDSPACE #QUICKNDIRTYCALC VERBOSE en_US.UTF-8 ru_RU.UTF-8 ru_UA.UTF-8

Запустил localepurge -v. Файлов много удалило, но вывод locale -a не изменился.
Перегенируем локали с ключом purge

~# locale-gen --purge Generating locales. en_US.UTF-8. done ru_RU.UTF-8. done ru_UA.UTF-8. done Generation complete.

Проверяем. Теперь все правильно остались только нужные мне локали

~# locale -a C C.UTF-8 en_US.utf8 POSIX ru_RU.utf8 ru_UA.utf8

Ubuntu добавление локали

Какие локали поддерживает Ubuntu? Находим нужную нам, например en_US.UTF-8 UTF-8

less /usr/share/i18n/SUPPORTED

Добавим нужную нам локаль в список для создания локалей

echo 'en_US.UTF-8 UTF-8' >> /var/lib/locales/supported.d/local; echo 'uk_UA.UTF-8 UTF-8' >> /var/lib/locales/supported.d/local;

Пересоздадим локали

dpkg-reconfigure locales

Настройка русской локали в Linux

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

Подготовка к настройке

  • Подключаемся к VPS по SSH с правами root.
  • Проверяем, доступна ли русская локаль в системе и её корректное название:
locale -a | grep ru
  • В результате, при наличии локали, будет получен примерно следующий вывод:
[root@vps ~]# locale -a | grep ru ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 ru_UA ru_UA.koi8u ru_UA.utf8 russian
  • В нашем случае, интересует вариант ru_RU.utf8. Его мы и будем использовать далее. Поэтому скопируйте это значение в блокнот для дальнейшей вставки.

Настройка локали в CentOS, Fedora

  • Создадим файл i18n, в котором затем сохраним параметры новой локали:
nano /etc/sysconfig/i18n
  • В открывшемся редакторе вносим следующую информацию:
LANG="ru_RU.utf8" SUPPORTED="ru_RU.utf8:ru_RU:ru"
  • Сохраняем изменения сочетанием клавиш CTRL+O и затем Enter.
  • На этом всё, локаль изменена и теперь необходимо переподключиться в консоль, чтобы увидеть изменения. Если вы использовали VNC или другое удаленное подключение к рабочему столу, то рекомендуется и в нём произвести переподключение для применения изменений.

Настройка локали в Debian, Ubuntu

Если в шаге подготовки команда locale -a | grep ru дала пустой результат, значит русская локаль отсутствует в системе и её можно установить следующими способами:

Способ 1:

  • Перенастраиваем пакет locales командой:
dpkg-reconfigure locales
  • В появившейся форме ищем локаль ru_RU.UTF-8 и отмечаем её нажатием пробела. Затем нажимаем Enter и переходим к следующему шагу.
  • Следующий шаг – выбор локали по умолчанию. Выбераем русскую локаль из списка и нажмаем Enter.
  • В результате будет завершена перенастройка локали и теперь необходимо только выполнить повторное подключение к консоли и к удаленному рабочему столу (если таковое используется).

Способ 2:

  • Устанавливаем языковой пакет:
apt-get install language-pack-ru
  • Открываем текстовым редактором файл /etc/default/locale:
nano /etc/default/locale
  • Заменяем его содержимое на:
LANGUAGE=ru_RU:ru LANG=ru_RU.UTF-8
  • Сохраняем изменения сочетанием клавиш CTRL+O и затем Enter.
  • Выходим из консоли, а также закрываем соединение с удаленным рабочим столом (если такое соединение было) и подключаемся к этим сервисам повторно.
  • На этом настройка завершена.

Изменить, добавить locale в Linux

Locale – это локализация Linux которая определяет в какой кодировке пользователь видит всё в терминале.

1. Посмотреть текущую locale

В текущем примере текущая locale = en_US.UTF-8 где

en — Код языка по стандарту ISO 639
US — Код страны по стандарту ISO 3166
UTF-8 – Кодировка текста

# locale
LANG=en_US.UTF-8
LANGUAGE=
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=

Чтобы посмотреть все установленные в системе locale

# locale -a
C
C.UTF-8
en_US.utf8
POSIX
ru_RU
ru_RU.cp1251

2. Добавить \ установить новую locale

Список всех доступных для установки locale (в других версиях Linux, файл может быть другим, не locale.gen).

# cat /etc/locale.gen

Если в списке нет подходящей locale то возможно она просто не установлена и ее нужно установить

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

Locale можно устанавливать через

# locale-gen ru_RU.cp1251
# update-locale

Но удобнее делать с это с помощью псевдографической утилиты (в других версиях Linux могут быть свои средства). В этой утилите можно так же изменить locale которая используется по умолчанию в системе.

# dpkg-reconfigure locales

Как поменять язык Linux без переустановки системы

При установке Linux можно выбрать язык системы (локаль) — и в дальнейшем этот язык будет использоваться в программах и окнах Linux (за исключением тех приложений, для которых не сделан перевод).

Если вы решили поменять язык Linux, то вам не нужно переустанавливать её — достаточно выполнить простые действия.

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

locale

Чтобы посмотреть доступные языковые настройки (локали), воспользуйтесь командой

locale -a

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

Чтобы добавить новую локаль, откройте файл /etc/locale.gen:

sudo gedit /etc/locale.gen

И раскомментируйте там строки с желаемыми новыми локалями. Затем выполните команду:

sudo locale-gen

Теперь новые языковые настройки (новую локаль) вы можете видеть в списке доступных локалей.

locale -a


Смена локали для текущий сессии

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

# Установить английскую локаль export LANG=en_US.UTF-8 # Установить русскую локаль export LANG=ru_RU.UTF-8 # Установить французскую локаль export LANG=fr_FR.UTF-8

Если в вашей системе это не сработало, то замените переменную LANG на переменную LANGUAGE, например:

export LANGUAGE=en_US.UTF-8

Изменение языковых настроек насовсем для одного пользователя

Добавьте строку с экспортом желаемой локали (например, 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, откройте его:

sudo gedit /etc/locale.conf

и добавьте туда строку с нужной локалью:

LANG=en_US.utf-8

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

Чтобы это окно не появлялось при каждой загрузке системы, поставьте галочку «Не задавать больше этот вопрос».

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

echo 'en_US' > ~/.config/user-dirs.locale xdg-user-dirs-gtk-update

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

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