HOWTO ru RU.utf8 Gentoo way
Материал из Gentoo Linux Wiki
- Вернуться в раздел руководства
Содержание |
[править] Введение
Статья описывает настройку системы и различных приложений для работы с русским языком.
PS: если вы хотите сохранить локаль отличную от русской и при этом включить поддержку русского языка то вам на страницу HOWTO easy way russian support.
[править] Шрифты
emerge terminus-font intlfonts freefonts cronyx-fonts corefonts artwiz-aleczapka-en kbd
| Примечание: В принципе достаточно terminus-font, а остальное если только для полного счастья |
[править] Создание локали
Последние полгода glibc собирается с ru_RU.UTF-8 уже "из коробки". Так что сначала проверьте, может у вас уже всё есть(необходимо наличие ru_RU.utf8):
| Code: locale -a | grep ru |
ru_RU ru_RU.cp1251 ru_RU.koi8r ru_RU.utf8 |
В случае, если у вас не собрана локаль, то можно ее создать вручную или пересобрать glibc.
1. Для создания локaли командой localedef вам потребуются права root'а.
localedef --no-archive -c -i ru_RU -f UTF-8 ru_RU.utf8
Обратите внимание на опцию --no-archive она указывает на то, что локаль не надо упаковывать в архив. Если вы забудете указать эту опцию, то после обновления библиотеки glibc вам придется повторить этот шаг снова.
По обсуждениям в форуме этой статьи можно заметить, что есть некоторые проблемы. Если команда locale выдаёт ошибки следующего вида:
| Code: locale |
locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory |
Тогда лучше определить локаль следующей командой localedef --no-archive -c -i ru_RU -f UTF-8 ru
2. В последних версиях glibc (glibc-2.4) у вас есть возможность определить список локалей, которые вы хотите использовать. Подробные инструкции здесь, а вкратце:
| Файл: /etc/locale.gen |
en_US ISO-8859-1 en_US.UTF-8 UTF-8 ru_RU.KOI8-R KOI8-R # То к чему стремимся ru_RU.UTF-8 UTF-8 # Не помешает также ru_RU.CP1251 CP1251 # добавьте необходимые кодировки для остальных локалей |
Пересобираем glibc (необходимо установить USE="userlocales" - см. ссылку выше): emerge -av glibc После собираем предопределенные локали командой locale-gen
[править] Настройка
[править] Переменные окружения
В файле /etc/env.d/02locale надо прописать две строки:
| Файл: /etc/env.d/02locale |
LC_ALL="" LANG="ru_RU.UTF-8" |
Однако предпочтительнее это делать в файлах пользователя, например ~/.bash_profile.
| Предупреждение: Не устанавливайте переменную LANG равной ru_RU.utf8! Хотя это допустимо и будет работать почти везде, кроме Java приложений, которые будут трактовать ввод как арабский. |
| Предупреждение: Не устанавливайте переменную LESSCHARSET равной UTF-8! Это приведет к неработоспособности как самой программы less(1), так и связанных с ней - таких как man(1). |
Примечание: Разделитель целой и дробной части чисел с плавающей точкой в русских локалях - запятая: 3,1415. Что приводит к 'неожиданному' эффекту при импортировании текстовых файлов с числами, содержащими в качестве разделителя точку, в некоторые приложения, например, gnumeric.
Добавьте после LANG="ru_RU.UTF-8" LC_NUMERIC="C" для использования в качестве раздельтеля точки: 3.1415 |
Чтобы это изменение вступило в силу немедленно, выполните: env-update && source /etc/profile
[править] Файлы настройки системы
Нужно также изменить несколько файлов запуска системы. Все эти файлы входят в пакет baselayout, последние версии которого содержат ряд изменений упрощающих настройку и наиболее удобны для использования. Лучше всего обновить пакет до версии 1.11.9 или выше, но если у вас нет возможности этого сделать, то ниже приведены варианты и для старых версий.
В процессе настройки файлов вам будет неоходимо выбрать вариант раскладки клавиатуры, список доступных вариантов здесь. Для каждой раскладки клавиатуры определена кодировка и ее необходимо указать с помощью опции DUMPKEYS_CHARSET, тогда система будет автоматически конвертировать кодировку раскладки в кодировку вашей локали(в данном случае UTF-8).
При использовании раскладки ru-utf (пока нет в стандартной поставке) строку DUMPKEYS_CHARSET закомментировать.
Консольные шрифты посмотрите в каталоге /usr/share/consolefonts/
[править] openrc
| Файл: /etc/conf.d/consolefont |
consolefont="ter-k14n" |
| Файл: /etc/conf.d/keymaps |
keymap="-u ru-ms" dumpkeys_charset="koi8-r" |
[править] baselayout
| Примечание: Версия baselayout-1.11.9. Если у вас старее (времен 2005.1 :)), настоятельно рекомендуется обновиться до актуального состояния. |
| Файл: /etc/rc.conf |
UNICODE="yes" |
| Файл: /etc/conf.d/consolefont |
CONSOLEFONT="ter-k14n" |
| Примечание: Если понравился тот шрифт, что был раньше, то "ter-k14n" меняем на "cyr-sun16" (из sys-apps/kbd) |
| Примечание: Если используете стандартную консоль с шрифтом 8 на 16 или 8 на 8 точек, то лучше "ter-k16n" вместо "ter-k14n" |
| Файл: /etc/conf.d/keymaps |
KEYMAP="-u ru4" SET_WINDOWKEYS="yes" # Опционально DUMPKEYS_CHARSET="koi8-r" |
[править] Проверка локали
Заключительным аккордом дожен стать перезапуск сервисов keymaps и consolefont. /etc/init.d/keymaps restart /etc/init.d/consolefont restart (в случае ругани насчет неизвестного шрифта emerge terminus-font)
Теперь у вас должна быть локаль ru_RU.UTF-8
| Code: locale |
LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL= |
[править] USE флаги
[править] опция --newuse
В новых версиях portage (>=2.0.51) появился параметр --newuse. Он служит для пересборки пакетов с обновленными значениями USE-флагов. То есть после изменения флагов, вместо обновления каждого пакета, можно выполнить следующее: emerge --newuse -u world
[править] unicode
Добавляет (включает) поддержку Unicode в приложениях.
[править] userlocales
Подробные инструкции в статье Создание только нужных вариантов locale.
[править] Библиотеки
[править] glibc
Подробные инструкции в главе "Создание локали" в этой статье.
[править] ncurses и slang
Нужно пересобрать до c флагом unicode:
следующим образом
USE="unicode" emerge --oneshot --verbose sys-libs/ncurses sys-libs/slang
[править] gtk+ первой версии
ПРИМЕЧАНИЕ: Вместо ручной правки файлов, можно воспользоваться готовым ебилдом, взятым отсюда: http://gentoo.zugaina.org/fantoo/app-i18n.html.en .
Еще остается проблема с gtk+. Дело в том, что по умолчанию в настройках gtk+ не включена поддержка многобайтных шрифтов, поэтому надо в своем файле ~/.gtkrc кое-что изменить, а именно прописать нужный шрифт:
| Файл: ~/.gtkrc |
style "user-font"
{
fontset="-monotype-arial-medium-r-normal-*-*-130-*-*-p-*-iso10646-1"
}
widget_class "*" style "user-font"
|
Если у вас уже прописан ваш шрифт, то вам требуется заменить font на fontset
font -> fontset
Для XOrg 6.8.2 надо сделать следующее:
Привести файл /usr/lib/X11/locale/en_US.UTF-8/XLC_LOCALE к следующему виду
| Файл: /usr/lib/X11/locale/en_US.UTF-8/XLC_LOCALE |
# XLocale Database Sample for en_US.UTF-8
#
#
# XLC_FONTSET category
#
XLC_FONTSET
on_demand_loading True
object_name generic
# fs0 class (7 bit ASCII)
fs0 {
charset {
name ISO8859-1:GL
}
font {
primary ISO8859-1:GL
vertical_rotate all
}
}
#fs1 class (ISO8859 families)
fs1 {
charset {
name ISO8859-1:GR
}
font {
primary ISO8859-1:GR
}
}
#fs2 class (ISO8859 families)
fs2 {
charset {
name ISO8859-2:GR
}
font {
primary ISO8859-2:GR
}
}
#fs3 class (ISO8859 families)
fs3 {
charset {
name ISO8859-3:GR
}
font {
primary ISO8859-3:GR
}
}
#fs4 class (ISO8859 families)
fs4 {
charset {
name ISO8859-4:GR
}
font {
primary ISO8859-4:GR
}
}
#fs5 class (ISO8859 families)
fs5 {
charset {
name ISO8859-5:GR
}
font {
primary ISO8859-5:GR
}
}
#fs6 class (koi8-r)
fs6 {
charset {
name KOI8-R:GR
}
font {
primary KOI8-R:GR
}
}
#fs7 class (ISO8859 families)
fs7 {
charset {
name ISO8859-7:GR
}
font {
primary ISO8859-7:GR
}
}
#fs9 class (ISO8859 families)
fs8 {
charset {
name ISO8859-9:GR
}
font {
primary ISO8859-9:GR
}
}
#fs13 class (ISO8859 families)
fs9 {
charset {
name ISO8859-13:GR
}
font{
primary ISO8859-13:GR
}
}
#fs14 class (ISO8859 families)
fs10 {
charset {
name ISO8859-14:GR
}
font {
primary ISO8859-14:GR
}
}
#fs15 class (ISO8859 families)
fs11 {
charset {
name ISO8859-15:GR
}
font {
primary ISO8859-15:GR
}
}
# fs16 class (Kanji)
fs12 {
charset {
name JISX0208.1983-0:GL
}
font {
primary JISX0208.1983-0:GL
}
}
# fs17 class (Korean Character)
fs13 {
charset {
name KSC5601.1987-0:GL
}
font {
primary KSC5601.1987-0:GL
}
}
# fs18 class (Chinese Han Character)
fs14 {
charset {
name GB2312.1980-0:GL
}# XLocale Database Sample for en_US.UTF-8
#
#
# XLC_FONTSET category
#
XLC_FONTSET
on_demand_loading True
object_name generic
# fs0 class (7 bit ASCII)
fs0 {
charset {
name ISO8859-1:GL
}
font {
primary ISO8859-1:GL
vertical_rotate all
}
}
#fs1 class (ISO8859 families)
fs1 {
charset {
name ISO8859-1:GR
}
font {
primary ISO8859-1:GR
}
}
#fs2 class (ISO8859 families)
fs2 {
charset {
name ISO8859-2:GR
}
font {
primary ISO8859-2:GR
}
}
#fs3 class (ISO8859 families)
fs3 {
charset {
name ISO8859-3:GR
}
font {
primary ISO8859-3:GR
}
}
#fs4 class (ISO8859 families)
fs4 {
charset {
name ISO8859-4:GR
}
font {
primary ISO8859-4:GR
}
}
#fs5 class (ISO8859 families)
fs5 {
charset {
name ISO8859-5:GR
}
font {
primary ISO8859-5:GR
}
}
#fs6 class (koi8-r)
fs6 {
charset {
name KOI8-R:GR
}
font {
primary KOI8-R:GR
}
}
#fs7 class (ISO8859 families)
fs7 {
charset {
name ISO8859-7:GR
}
font {
primary ISO8859-7:GR
}
}
#fs9 class (ISO8859 families)
fs8 {
charset {
name ISO8859-9:GR
}
font {
primary ISO8859-9:GR
}
}
#fs13 class (ISO8859 families)
fs9 {
charset {
name ISO8859-13:GR
}
font{
primary ISO8859-13:GR
}
}
#fs14 class (ISO8859 families)
fs10 {
charset {
name ISO8859-14:GR
}
font {
primary ISO8859-14:GR
}
}
#fs15 class (ISO8859 families)
fs11 {
charset {
name ISO8859-15:GR
}
font {
primary ISO8859-15:GR
}
}
# fs16 class (Kanji)
fs12 {
charset {
name JISX0208.1983-0:GL
}
font {
primary JISX0208.1983-0:GL
}
}
# fs17 class (Korean Character)
fs13 {
charset {
name KSC5601.1987-0:GL
}
font {
primary KSC5601.1987-0:GL
}
}
# fs18 class (Chinese Han Character)
fs14 {
charset {
name GB2312.1980-0:GL
}
font {
primary GB2312.1980-0:GL
}
}
#fs20 class (Half Kana)
fs15 {
charset {
name JISX0201.1976-0:GR
}
font {
primary JISX0201.1976-0:GR
vertical_rotate all
}
}
#ISO10646 should come last so the fonts above will actually be used
#fs24 class
fs16 {
charset {
name ISO10646-1
}
font {
primary ISO10646-1
}
}
END XLC_FONTSET
#
# XLC_XLOCALE category
#
XLC_XLOCALE
encoding_name UTF-8
mb_cur_max 6
state_depend_encoding False
#cs0 class
cs0 {
side GL:Default
length 1
ct_encoding ISO8859-1:GL
}
#cs1 class
cs1 {
side GR:Default
length 1
ct_encoding ISO8859-1:GR
}
#cs2 class
cs2 {
side GR
length 1
ct_encoding ISO8859-2:GR
}
#cs3 class
cs3 {
side GR
length 1
ct_encoding ISO8859-3:GR
}
#cs4 class
cs4 {
side GR
length 1
ct_encoding ISO8859-4:GR
}
#cs5 class
cs5 {
side GR
length 1
ct_encoding ISO8859-5:GR
}
#cs6 class
cs6 {
side GR
length 1
ct_encoding KOI8-R:GR
}
#cs7 class
cs7 {
side GR
length 1
ct_encoding ISO8859-7:GR
}
#cs9 class
cs8 {
side GR
length 1
ct_encoding ISO8859-9:GR
}
#cs13 class
cs9 {
side GR
length 1
ct_encoding ISO8859-13:GR
}
#cs14 class
cs10 {
side GR
length 1
ct_encoding ISO8859-14:GR
}
#cs15 class
cs11 {
side GR
length 1
ct_encoding ISO8859-15:GR
}
#cs16 class
cs12{
side GR
length 2
ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR;JISX0208.1983-1:GL; JISX0208.1983-1:GR
}
#cs17 class
cs13 {
side GL
length 2
ct_encoding KSC5601.1987-0:GL; KSC5601.1987-0:GR; KSC5601.1987-1:GL; KSC5601.1987-1:GR
}
#cs18 class
cs14 {
side GR
length 2
ct_encoding GB2312.1980-0:GL; GB2312.1980-0:GR
}
#cs20 class
cs15 {
side GR
length 1
ct_encoding JISX0201.1976-0:GR
}
#cs24 class
cs16 {
font {
primary GB2312.1980-0:GL
}
}
#fs20 class (Half Kana)
fs15 {
charset {
name JISX0201.1976-0:GR
}
font {
primary JISX0201.1976-0:GR
vertical_rotate all
}
}
#ISO10646 should come last so the fonts above will actually be used
#fs24 class
fs16 {
charset {
name ISO10646-1
}
font {
primary ISO10646-1
}
}
END XLC_FONTSET
#
# XLC_XLOCALE category
#
XLC_XLOCALE
encoding_name UTF-8
mb_cur_max 6
state_depend_encoding False
#cs0 class
cs0 {
side GL:Default
length 1
ct_encoding ISO8859-1:GL
}
#cs1 class
cs1 {
side GR:Default
length 1
ct_encoding ISO8859-1:GR
}
#cs2 class
cs2 {
side GR
length 1
ct_encoding ISO8859-2:GR
}
#cs3 class
cs3 {
side GR
length 1
ct_encoding ISO8859-3:GR
}
#cs4 class
cs4 {
side GR
length 1
ct_encoding ISO8859-4:GR
}
#cs5 class
cs5 {
side GR
length 1
ct_encoding ISO8859-5:GR
}
#cs6 class
cs6 {
side GR
length 1
ct_encoding KOI8-R:GR
}
#cs7 class
cs7 {
side GR
length 1
ct_encoding ISO8859-7:GR
}
#cs9 class
cs8 {
side GR
length 1
ct_encoding ISO8859-9:GR
}
#cs13 class
cs9 {
side GR
length 1
ct_encoding ISO8859-13:GR
}
#cs14 class
cs10 {
side GR
length 1
ct_encoding ISO8859-14:GR
}
#cs15 class
cs11 {
side GR
length 1
ct_encoding ISO8859-15:GR
}
#cs16 class
cs12{
side GR
length 2
ct_encoding JISX0208.1983-0:GL; JISX0208.1983-0:GR;JISX0208.1983-1:GL; JISX0208.1983-1:GR
}
#cs17 class
cs13 {
side GL
length 2
ct_encoding KSC5601.1987-0:GL; KSC5601.1987-0:GR; KSC5601.1987-1:GL; KSC5601.1987-1:GR
}
#cs18 class
cs14 {
side GR
length 2
ct_encoding GB2312.1980-0:GL; GB2312.1980-0:GR
}
#cs20 class
cs15 {
side GR
length 1
ct_encoding JISX0201.1976-0:GR
}
#cs24 class
cs16 {
side none
ct_encoding ISO10646-1
}
END XLC_XLOCALE
|
это исправит проблему с gtk+1 и utf-8 :)
[править] Приложения
[править] Fluxbox
Для удаления тормознутости fluxbox: export USE="disablexmb" emerge fluxbox
Чтобы меню показавалось по-русски (читабельно), после всех действий нужно сделать следующее:
- ebuild /usr/portage/x11-wm/fluxbox/fluxbox-0.9.15.1.ebuild unpack
- iconv -f KOI8-R -t UTF-8 /var/tmp/portage/x11-wm/fluxbox-0.9.15.1-r1/work/fluxbox-0.9.15.1-r1/nls/ru_RU/Translation.m > /tmp/Translation.m
- mv /tmp/Translation.m /var/tmp/portage/x11-wm/fluxbox-0.9.15.1-r1/work/fluxbox-0.9.15.1-r1/nls/ru_RU/Translation.m
- ebuild /usr/portage/x11-wm/fluxbox/fluxbox-0.9.15.1.ebuild merge
[править] FVWM
FVWM неправильно выставляет Default Charset. Для исправления см. Использование UTF8 в FVWM
[править] SSH
Когда в системе локаль UTF, но нужно по ssh "ходить" на удаленные компьютеры с KOI8-R, то необходим перекодировщик luit.
emerge x11-apps/luit
Пользоваться так:
luit -encoding "KOI8-R" ssh legacy_remote_host
В иксах же удобнее пользоваться konsole (терминал от KDE). Ибо выбор кодировки для сессии находится у него в меню настройки.
[править] gFTP
Хоть и интерфейс программы нормально работает с UTF-8 локалью, но если, при подключении к серверам с именами файлов в других кодировках, у вас возникают проблемы, то проблему можно решить с помощью патча, последняя версия всегда доступна со страницы автора.
Для возможности последующих обновлений используем Portage_Overlay. Копируем ebuild'ы gFTP в оверлей и патч в директорию files, правим ebuild gFTP:
| Code: необходимые изменения в ebuild'е |
diff -ru /usr/portage/net-ftp/gftp/gftp-2.0.18-r3.ebuild /usr/local/portage/net-ftp/gftp/gftp-2.0.18-r3.ebuild
--- /usr/portage/net-ftp/gftp/gftp-2.0.18-r3.ebuild 2005-11-06 08:57:10.000000000 +0300
+++ /usr/local/portage/net-ftp/gftp/gftp-2.0.18-r3.ebuild 2005-11-09 14:19:39.000000000 +0300
@@ -29,6 +29,7 @@
# patch to allow fetching of ssh2 files
# that are read-only, see bug #91269 and upstream link.
epatch ${FILESDIR}/${P}-ssh2-read.patch
+ epatch ${FILESDIR}/${P}-convert-names-r1.patch
}
|
Обновляем digest файлы: ebuild /usr/local/portage/net-ftp/gftp/gftp-2.0.18-r3.ebuild digest Собираем gFTP: emerge gftp Запускаем и настраиваем, пример настройки смотрим здесь.
Наслаждаемся!
[править] man
Для того, чтобы man правильно отображал русские страницы (man-pages-ru), необходимо в файле /etc/man.conf найти строку, начнающуюся со слова NROFF, и поправить её следующим образом:
| Файл: /etc/man.conf |
... # NROFF /usr/bin/nroff -Tascii -c -mandoc NROFF /usr/bin/nroff -mandoc -Tlatin1 -c | iconv -f koi8-r -t utf-8 ... |
Эти действия приводят к тому, что файлы читаемые из /usr/share/man/ru/ (которые находятся там в кодировке koi8-r) форматируются командой nroff и выводятся как 8-битная кодировка latin1 на выход (хотя на самом деле там стоят русские символы закодированные в koi8-r). nroff, по-видимому, трактует входные данные как закодированные в кодировке latin1, и, поэтому, при просьбе вывести их в latin1 не производит никаких преобразований, губительных для русских символов. Дальше вывод nroff пропускается через iconv и превращается из koi8-r в utf8. У меня это привело к работоспособности русскоязычных и англоязычных страниц man (Azure 10:58, 16 февраля 2008 (UTC))
Если такой метод вызывает проблемы (английские страницы man ломаются), то можно использовать иной способ. В файле /etc/man.conf найти строку, начнающуюся со слова NROFF, и поправить её следующим образом:
| Файл: /etc/man.conf |
... # NROFF /usr/bin/nroff -Tascii -c -mandoc NROFF /usr/bin/nroff -Tlatin1 -c -mandoc ... |
А в файл /etc/env.d/02locale добавьте следующую строку:
| Файл: /etc/env.d/02locale |
... MANPAGER="iconv -c -f KOI8-R -t UTF-8 | /usr/bin/less -isr" ... |
И выполните комманду:
env-update && source /etc/profile
| Примечание: Данный пример настройки отображает русские страницы руководства, хранящиеся в кодировке KOI8-R. Отображение страниц, хранящихся в UTF-8 не работает (в том числе и без настройки). |
| Примечание: Есть способ радикально решить вопрос с отображением man страниц в любых русских кодировках (в том числе и в UTF8), с помощью конвертера enca. Этот конвертер способен "угадывать" кодировку поданного на вход текста и преобразовывать в желаемую. |
Установите конвертер
emerge app-i18n/enca
Поправьте файл /etc/man.conf следующим образом:
| Файл: /etc/man.conf |
... # NROFF /usr/bin/nroff -Tascii -c -mandoc NROFF /usr/bin/enconv -L ru -x KOI8-R | /usr/bin/nroff -mandoc -Tlatin1 -c | /usr/bin/enconv -L ru -x UTF8 ... |
Работает этот конвейер следующим образом:
1. Так как nroff в текущей реализации не способен обрабатывать man страницы в русской UTF8 кодировке, мы с помощью enconv (вызов enca в качестве pipeline фильтра) преобразуем русские man из любой исходной русской кодировки (за это отвечает ключ -L ru) в KOI8-R (ключ -x KOI8-R) и передаём nroff.
2. Nroff форматирует страницу, после чего мы опять пропускаем её через enca, перекодируя результат в UTF8. Затем less нам её показывает.
Таким образом все русские man страницы в системе отображаются корректно независимо от их исходных кодировок.
Для того, чтобы настроить вывод различных сообщений (например, об отсутствии статьи в данном разделе документации) в правильной кодировке, необходимо проделать следующие действия:
Скачиваем и распаковываем исходные коды man:
ebuild /usr/portage/sys-apps/man/man-1.6f.ebuild unpack
Перекодируем русские сообщения из koi8-r в utf-8:
iconv -f koi8-r -t utf-8 /var/tmp/portage/sys-apps/man-1.6f/work/man-1.6f/msgs/mess.ru > /tmp/mess.ru
mv /tmp/mess.ru /var/tmp/portage/sys-apps/man-1.6f/work/man-1.6f/msgs/mess.ru
Редактируем файл /var/tmp/portage/sys-apps/man-1.6f/work/man-1.6f/msgs/mess.ru.codeset следующим образом:
| Файл: /var/tmp/portage/sys-apps/man-1.6f/work/man-1.6f/msgs/mess.ru.codeset |
$ codeset=UTF-8 |
Устанавливаем man из измененных нами исходных файлов:
ebuild /usr/portage/sys-apps/man/man-1.6f.ebuild merge
Очищаем временный каталог:
ebuild /usr/portage/sys-apps/man/man-1.6f.ebuild clean
| Примечание: В редких случаях перед описанными действиями по пересборке man еще необходимо сделать #revdep-rebuild --soname libncurses.so.5 (ну а уже потом пересборка) |
[править] Midnight Commander
Библиотека slang должна быть собрана с флагом unicode (смотрите главу "Библиотеки".)
USE="unicode" emerge slang
USE="unicode slang -ncurses" emerge mc
Для того чтобы при нажатии F1 корректно отображалась помощь на русском языке нужно конвертировать файлы справки mc из koi8 в юникод
cd /usr/share/mc
iconv -f koi8-r -t utf8 ./mc.hint.ru -o mc.hint.ru~
iconv -f koi8-r -t utf8 mc.hlp.ru -o mc.hlp.ru~
mv mc.hlp.ru~ mc.hlp.ru
mv mc.hint.ru~ mc.hint.ru
[править] MPlayer
Начиная с версии 1.0_pre8 MPlayer полностью совместим с Юникодом. Просто выполните
USE="unicode" emerge mplayer
Подробнее в статье HOWTO Mplayer
[править] Проигрыватель Kaffeine
Большинство русских тегов записаны в кодировке CP-1251. Чтобы Kaffeine их нормально обрабатывал - запускаем Kaffeine, идем в Настройки, на закладке "Разное" ставим галочку "Использовать другю кодировку" и выбираем CP 1251.
[править] XMMS
Заставляем XMMS говорить по-русски
Я работаю в юникоде. Чтобы xmms мне корректно отображал русские имена файлов я его запускаю вот так:
env LC_MESSAGES=ru_RU.UTF-8 LANG=ru_RU.CP1251 xmms
Русские теги xmms отображает криво потому, что они в кодировке cp1251. Чтобы решить этот вопрос я ставлю шрифты для плейлиста и главного окна с кодировкой cp1251. У меня такой шрифт:
-adobe_windows_1251-helvetica-medium-r-normal-*-*-100-*-*-p-*-microsoft-cp1251
А взял я эти шрифты адресу http://www.inp.nsk.su/~bolkhov/files/fonts/cyr-rfx/
В принципе, можно взять любые, в которых есть поддержка кодировки cp
Существует интересный проект RusXMMS
[править] Trafshow
Совет по настройке UTF8 в Trafshow.
[править] X-терминалы
Список терминалов, которые уже поддерживают юникод:
- xterm
- uxterm (это тот же xterm с авто-параметром "-u8")
- rxvt-unicode
- mlterm
- gnome-terminal
- konsole
[править] Разное
[править] Перекодировка имен файлов
Для перекодировки имён файлов используем convmv: emerge convmv Инструкция к применению: man convmv либо MAN-convmv
Большинство программ без поддержки юникода сегфолтится например - не могут открыть терминал ion, ion3
собранная с юникодом centericq выглядит сильно убого.
Проблема с некорректным отображением в nano(отсутствут буквы и прочее) полностью решается пересборкой _после локализации_ пакетов ncurses и nano с включенным флагом unicode.
Где бы на русском примеры экзэмплов по convmv
Прошу:
convmv -f cp1251 -t utf8 -r --notest ./
переводит в текущем каталоге рекурсивно(и все вложенные папки и файлы) имена файлов из кодировки cp1251 в utf8. Когда давал ссылку на MAN думал там всё просто....
Как выставить больший приоритет для русских страниц man? Переменная LANG(как заявленно в man man) не помогает.
echo alias man=\'man -m ru\' >> ~/.bashrc
[править] Монтирование разделов
HOWTO Разделы MS Windows по-русски
[править] Проблемы и решения
- П: Сделал все, как здесь написано, и после этого стала медленно работать консоль: скроллинг, скорость работы клавиатуры, задержки нажатия клавиш - все резко замедлилось. Куда надо покопать?
- Р: Допишите в USE флагах флаги "unicode utf8", потом сделайте
emerge --deep --newuse world
- Р: Допишите в USE флагах флаги "unicode utf8", потом сделайте
- П: После просмотра двоичного файла слетела ru_RU.UTF-8 консоль.
- Р: Из работающей консоли выполнить
#echo -ne "\033c" >/dev/ttyXИли в слепую на сломанной консоли
#echo -ne "\033c"
- Р: Из работающей консоли выполнить
- П: Сделал все, как написано. Все отлично работает. Но возникла проблема с sudo. Если зайти под своим пользователем, а потом выполнить sudo -s, то locale выдает снова POSIX, вместо utf8. Через su все нормально. В какую сторону рыть?
- Р: В /etc/sudoers разрешить экспрт переменных.
[править] Дополнительная Информация!
- Начало дискусии
- Baldin Cyrillic HOWTO
- [1] статья на ibm сайте
- [2] kilofile have a clue
|
Посоветовать или спросить, |
