Инструменты пользователя

Инструменты сайта


locale

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

locale [2018/08/06 03:24] (текущий)
Строка 1: Строка 1:
 +====== Настройка переменных локализации в Linux ======
 +
 +{{htmlmetatags>​
 +metatag-description=(Включение системных средств локализации в Red Hat Linux, Debian, Ubuntu. Использование ​
 + ​locale.)
 +}}
 +
 +
 +Команда locale запущенная без ключей выведет настройки текущей локали.
 +<​file>​
 +# locale -a | grep ru
 +ru_RU
 +ru_RU.iso88595
 +ru_RU.koi8r
 +ru_RU.utf8
 +russian
 +ru_UA
 +ru_UA.koi8u
 +ru_UA.utf8
 +</​file>​Подробный вывод с ключом -v<​file>​
 +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
 +</​file>​
 +===== 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.
 +<​file>​
 +# nano /​etc/​sysconfig/​i18n
 +LANG="​en_US.UTF-8"​
 +SYSFONT="​latarcyrheb-sun16"​
 +
 +</​file>​
 +**Правда,​ это верно только для случая,​ когда вы имеете права суперпользователя root.** Но даже если вы простой пользователь Linux-системы и не можете редактировать файл /​etc/​sysconfig/​i18n,​ то вы все же можете включить локализацию для себя, но несколько иным способом. А именно,​ поместите в свой файл $HOME/​.profile (или в любой файл, который исполняется в процессе логирования пользователя:​ $HOME/​.Xclients,​ $HOME/​.xinitrc или другой) следующие строки:​ /​etc/​profile или $HOME/​.bash_profile
 +
 +<file bash>
 +#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"​
 +</​file>​
 +Чтобы изменения принялись нужно перезайти в консоль или выполнить команду source для файла в котором вы прописали export <file bash>
 +$ source ~/.profile
 +</​file>​
 +===== Debian =====
 +<note important>​Чтобы использовать UTF-8 в локали нужно установить LC_CTYPE (или, опционально,​ переменную LANG, если вы хотите заодно изменить и системный язык).</​note>​
 +
 +  * Проверяем текущие значения переменных и установленные локали<​file>​
 +# echo $LC_CTYPE
 +# echo $LANG
 +# locale -a
 +C
 +POSIX
 +</​file>​
 +  * Доусстановливаем нужные локали<​file>​
 +# dpkg-reconfigure locales
 +en_US.UTF-8
 +ru_UA.UTF-8
 +</​file>​
 +  * В файлы [[bash]].bashrc и profile добавляем экспорт переменной LANG<​file>​
 +# nano /​etc/​bash.bashrc
 +# nano /​etc/​profile
 +export LANG=en_US.UTF-8
 +</​file>​
 +===== Ubuntu 12.04 - удаление локалей и локализаций =====
 +Удаление лишних локалей в Ubuntu. Делал такие телодвижения:​):​
 +  * В файле locale-gen посмотрел пути в которых хранятся файлы локалей.<​file>​
 +nano /​usr/​sbin/​locale-gen
 +...
 +SUPPORTED=/​var/​lib/​locales/​supported.d
 +LOCALES=/​usr/​share/​i18n/​locales
 +STATEDIR=/​var/​lib/​belocs
 +...
 +</​file>​
 +  * В директории supported.d отредактировал файлы, оставил только нужные локали<​file>​
 +# 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
 +</​file>​
 +  * Поставил ​ и настроил утилиту localepurge,​ она служит для удаления файлов **локализаций**,​ а не локалей<​file>​
 +# aptitude install localepurge
 +# nano /​etc/​locale.nopurge
 +MANDELETE
 +DONTBOTHERNEWLOCALE
 +SHOWFREEDSPACE
 +#​QUICKNDIRTYCALC
 +VERBOSE
 +
 +en_US.UTF-8
 +ru_RU.UTF-8
 +ru_UA.UTF-8
 +</​file>​
 +  * Запустил localepurge -v. Файлов много удалило,​ но вывод locale -a не изменился.
 +  * Перегенируем локали с ключом purge<​file>​
 +~# locale-gen --purge
 +Generating locales...
 +  en_US.UTF-8... done
 +  ru_RU.UTF-8... done
 +  ru_UA.UTF-8... done
 +Generation complete.
 +</​file>​
 +  * Проверяем. Теперь все правильно остались только нужные мне локали<​file>​
 +~# locale -a
 +C
 +C.UTF-8
 +en_US.utf8
 +POSIX
 +ru_RU.utf8
 +ru_UA.utf8
 +</​file>​
 +
 +===== Ubuntu добавление локали =====
 +  * Источник:​ [[http://​askubuntu.com/​questions/​76013/​how-do-i-add-locale-to-ubuntu-server|How do I add locale to ubuntu server?]]
 +
 +  - Какие локали поддерживает Ubuntu? Находим нужную нам, например en_US.UTF-8 UTF-8<​file>​
 +less /​usr/​share/​i18n/​SUPPORTED
 +</​file>​
 +  - Добавим нужную нам локаль в список для создания локалей<​file bash>
 +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;​
 +</​file>​
 +  - Пересоздадим локали<​file bash>
 +dpkg-reconfigure locales
 +</​file>​
 +====== Ссылки ======
 +  * [[http://​www.linuxcenter.ru/​lib/​books/​kostromin/​gl_11_02.phtml|Настройка системных средств локализации]]
 +  * [[wpru>​Локаль]]
 +  * [[Unicode]]
 +  * [[ISO]]
 +  * [[i18n]] - Интернационализация
 +  * [[L10n]] - Локализация
  
загрузка...
locale.txt · Последние изменения: 2018/08/06 03:24 (внешнее изменение)