Содержание

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

Конфигурационный файл находится /etc/default/locale.

Команда 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, если вы хотите заодно изменить и системный язык).

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

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

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

  1. Какие локали поддерживает Ubuntu? Находим нужную нам, например en_US.UTF-8 UTF-8
    less /usr/share/i18n/SUPPORTED
  2. Добавим нужную нам локаль в список для создания локалей
    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;
  3. Пересоздадим локали
    dpkg-reconfigure locales

Ссылки