Содержание:
Все что нужно сделать - это скачать найденую в сети CP1251-locale для FreeBSD и установить в систему:
Примечание: Забудьте про указанную выше локаль CP1251 и берите родную от FreeBSD, появилась RELENG_4 и в Current, ну или готовую из RELENG_4.
# tar zxvf FreeBSD-cp1251.tar.gz # cd cp1251/ # less README # make installЗамечание: Верхние строчки не актуальны с появлением CP1251 во FreeBSD:
Использование locale CP1251 на консоли и виртуальных терминалах, вместо KOI8-R
1) установка locale ru_RU.CP1251 появилась в RELENG_4 (после 4.8-RELEASE) и в HEAD (после 5.1-RELEASE) взять можно уже выдранную оттуда(готовую): a) NewCP1251.tgz или выдрать готовую из одного из последних снапшотов(live-cd): b) ftp://current.freebsd.org/pub/FreeBSD/snapshots/i386/ или через cvsweb: c) http://www.freebsd.org/cgi/cvsweb.cgi/src/share/?only_with_tag=RELENG_4 2) настройка - /etc/login.conf: russian|Russian Users Accounts:\ :charset=CP1251:\ :lang=ru_RU.CP1251:\ :tc=default: или можно оставить оригинал для koi8-r поддержки и добавить класс win: # # Russian Users Accounts. Setup proper environment variables. # russian|Russian Users Accounts:\ :charset=KOI8-R:\ :lang=ru_RU.KOI8-R:\ :tc=default: win|Russian Windows Users Accounts:\ :charset=CP1251:\ :lang=ru_RU.CP1251:\ :tc=default: не забывать что пятое поле в master.passwd (vipw/adduser: man 5 passwd, man 5 vipw, man adduser и less /etc/adduser.conf) и есть login_class. Если мы хотим чтобы все default настройки были для CP1251, можем сделать: - /etc/profile (Bourne-Shell/Bash): ... LANG=ru_RU.CP1251; export LANG LC_ALL=ru_RU.CP1251; export LC_ALL MM_CHARSET=CP1251; export MM_CHARSET ... - /etc/csh.login (Csh/Tcsh): ... setenv LANG ru_RU.CP1251 setenv MM_CHARSET CP1251 ... либо у пользователя в $HOME, в .profile/.bash_profile (shell/bash), в .login (csh/tcsh). 3) консоль и виртуальные терминалы (фонты и клавиатура) - /etc/rc.conf: ... # клавитурная мапа, найдена в интернете # ru.cp1251.kbd # положить в /usr/share/syscons/keymaps keymap=ru.cp1251 # можно не использовать, by default клавиша "CAPS LOCK" #keychange="61 ESC[K" # послоьку фонты cp866 самые удачные, используем их и скринмапу из cp866 в 1251 # найдено в сети win2cpp866.scm # положить в /usr/share/syscons/scrnmaps scrnmap="win2cpp866" font8x16=cp866-8x16 font8x14=cp866-8x14 font8x8=cp866-8x8 ... прим: в /etc/ttys должно быть ttyv0 "/usr/libexec/getty Pc" cons25r on secure ... ttyv5 "/usr/libexec/getty Pc" cons25r on secure ... и так для всех используемых виртуальных экранов Если верхнее у вас прежде не было сделано, то чтобы изменения в /etc/ttys вступили в силу, необходимо выполнить команду: # kill -HUP 1 Прим: если у вас в каких-то приложениях использующих gettext, вместо русских ерунда, то создавайте сами эти хелпы или каких их назвать, в кодировке cp1251, уверен что все gettext сделаны в koi8r(возможно с дублем в cp1251), тут уж смотрите и делайте сами если нужно.
Для проверки локализации в html/php, смотри пункт Проверка локализации
Установка CP1251 locale в Linux:
Чтобы понять что, как и где создает утилита localedef, обязательно прочитайте man localedef, потому что в разных linux'ах locale распологается либо в /usr/share/locale/, либо /usr/lib/locale/. Вся локаль, включая 1251 уже содержится в i18n, необходимо лишь сгенерить из нее LC которая ляжет в /usr/share/locale/ru_RU.CP1251 или в /usr/lib/locale/ru_RU.CP1251 (зависит от типа Linux), достаточно выполнить команду:
localedef -c -i ru_RU -f CP1251 ru_RU.CP1251 после чего будет создана директория ru_RU.cp1251, как сказано выше: /usr/share/locale/ru_RU.cp1251 или /usr/lib/locale/ru_RU.cp1251 Все. Теперь просто переименуйте в ru_RU.CP1251 и проверьте наличие в системе: locale -a | grep ru_RU
Для проверки локализации в html/php, смотри пункт Проверка локализации
Можете воспользоваться моими заготовками для проверки html и php:
необходимо скачать указанные выше файлы .htaccess и winlavr.php3, разместить на WWW или в домашней странице и посмотреть результат.
Есть много разных CP1251 фонтов для X11, я таскаю за собой следующие:
Разворачиваете нужные или подходящие вам в /usr/X11R6/lib/X11/fonts, добавляете их в XF86Config, например:
... # FontPath "/usr/X11R6/lib/X11/fonts/local/" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc/" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi/" #--lavr Windows-CP1251 fonts FontPath "/usr/X11R6/lib/X11/fonts/win-micex/misc/" FontPath "/usr/X11R6/lib/X11/fonts/win-micex/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/win-micex/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/CID/" FontPath "/usr/X11R6/lib/X11/fonts/PEX/" FontPath "/usr/X11R6/lib/X11/fonts/TTF/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/local/share/koi8r-ps/" # ...Рестартуете X11 или прямо в сеансе добавляете их в FontPath:
xset +fp /usr/X11R6/lib/X11/fonts/win-micex/misc xset +fp /usr/X11R6/lib/X11/fonts/win-micex/75dpi xset +fp /usr/X11R6/lib/X11/fonts/win-micex/100dpiтеперь смело можно смотреть файлы в Windows-CP1251 кодировке, запуская, например xterm с понравившимся фонтом:
xterm -fn win9x15 &где win9x15 есть alias фонта: -micex-fixed-medium-r-normal--15-140-75-75-c-90-windows-1251
для переключения раскладок в X11 можно воспользоваться портами FreeBSD:
Примечание: необходимо помнить что некоторые коды ascii из CP1251 являются управляющими.
Андрей Лаврентьев: lavr@unix1.jinr.ru