Конфигурационный файл находится /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 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
# echo $LC_CTYPE # echo $LANG # locale -a C POSIX
# dpkg-reconfigure locales en_US.UTF-8 ru_UA.UTF-8
# nano /etc/bash.bashrc # nano /etc/profile export LANG=en_US.UTF-8
Удаление лишних локалей в Ubuntu. Делал такие телодвижения:):
nano /usr/sbin/locale-gen ... SUPPORTED=/var/lib/locales/supported.d LOCALES=/usr/share/i18n/locales STATEDIR=/var/lib/belocs ...
# 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
# aptitude install localepurge # nano /etc/locale.nopurge MANDELETE DONTBOTHERNEWLOCALE SHOWFREEDSPACE #QUICKNDIRTYCALC VERBOSE en_US.UTF-8 ru_RU.UTF-8 ru_UA.UTF-8
~# 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
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