Локализация и i18n
Установка и настройка файлов локализации.
Установка
В этой главе описывается установка файлов локализации в создаваемую систему SliTaz из аналогичной рабочей системы. Установка локализации для Х-сервера описана в главе Оконная система Х. Файлы, упомянутые в этой статье, взяты из пакета для компиляции glibc-2.3.6 из состава toolchain.
Создаем папки для файлов
Начнем с создания папок, куда поместим файлы и библиотеки различных локалей. Папка LC_MESSAGES содержит файлы переводов интерфейса программ (расширение .mo), если они есть:
# mkdir -p rootfs/usr/share/{i18n,locale} # mkdir -p rootfs/usr/lib/{locale,gconv} # mkdir -p rootfs/usr/share/i18n/{charmaps,locales} # mkdir -p rootfs/usr/share/locale/ru/LC_MESSAGES
Скопируем файлы локализации для русского языка в /usr/share/i18n/locales:
# cp -a /usr/share/i18n/locales/{ru_RU,ru_UA} \ rootfs/usr/share/i18n/locales
Скопируем файлы транслита по маске translit_* в /usr/share/i18n/locales:
# cp -a /usr/share/i18n/locales/{translit_circle,translit_cjk_compat} \ rootfs/usr/share/i18n/locales # cp -a /usr/share/i18n/locales/{translit_combining,translit_compat} \ rootfs/usr/share/i18n/locales # cp -a /usr/share/i18n/locales/{translit_font,translit_fraction} \ rootfs/usr/share/i18n/locales # cp -a /usr/share/i18n/locales/{translit_narrow,translit_neutral} \ rootfs/usr/share/i18n/locales # cp -a /usr/share/i18n/locales/{translit_small,translit_wide} \ rootfs/usr/share/i18n/locales
Файлы кодировок скопируем в /usr/share/i18n/charmaps:
# cp -a /usr/share/i18n/charmaps/ANSI_X3.* rootfs/usr/share/i18n/charmaps # cp -a /usr/share/i18n/charmaps/{ISO-8859-1.gz,ISO-8859-2.gz,ISO-8859-15.gz} \ rootfs/usr/share/i18n/charmaps
Скопируем библиотеки gconv в папку /usr/lib/gconv корневого каталога SliTaz:
# cp /usr/lib/gconv/{ANSI_X3.110.so,gconv-modules,UNICODE.so} \ rootfs/usr/lib/gconv # cp /usr/lib/gconv/{ISO8859-1.so,ISO8859-2.so,ISO8859-15.so} \ rootfs/usr/lib/gconv # strip -v rootfs/usr/lib/gconv/*.so
Скопируем утилиту locale:
# cp /usr/bin/locale rootfs/usr/bin
Также необходимо создать файл /usr/lib/locale/locale-archive, для чего используем утилиту localedef, находясь в chroot-окружении SliTaz:
# cp /usr/bin/localedef rootfs/usr/bin # chroot rootfs /bin/ash
Использование localedef для русского языка: (ЗДЕСЬ ПРИМЕРЫ ДЛЯ ФРАНЦ. ЯЗ., КОДИРОВКА, ВОЗМОЖНО, ДРУГАЯ!)
/# localedef -i fr_CH -f ISO-8859-1 fr_CH /# localedef -i fr_FR -f ISO-8859-1 fr_FR /# exit
Чтобы освободить больше места, можно удалить localedef:
# rm rootfs/usr/bin/localedef
Настройка и использование
Чтобы использовать локализацию в работе, создайте скрипт, который будет запускаться при загрузке системы, или добавьте следующие две строки в файл ~/.profile для каждого пользователя:
export LANG=ru_RU export LC_ALL=ru_RU
Вот и всё — теперь система будет на русском. Если у вас установлены retawq или nano, вы можете и их локализовать, скопировав нужные файлы .mo из исходников этих программ в /usr/share/locale/ru/LC_MESSAGES.
Следующая глава
SliTaz использует скрипт /etc/init.d/i18n.sh и файл конфигурации /etc/locale.conf для управления локализациями системы. О них мы подробно поговорим в следующей главе, которая называется Загрузочные скрипты.
В уже установленной системе вы можете внести изменения в файл /etc/locale.conf или запустить tazlocale, чтобы сменить текущую локализацию. Также язык системы можно указать в виде загрузочной опции lang=xx
.
Статью перевел Cyril