MZero #7 [сентябрь 2004]
Меню
  Главная
  Авторам
  Разделы
  Команда MZero
  Клуб ICQ
HiTech
  В Канаде хотят запретить дышать алкоголем .
  Пять машин и технологий готовы изменить наш мир.
  Плавающие ботинки превращают людей в водомерок.
Моддинг
  СветоНожки для компа своими руками.
  Светильник из шариковой ручки.
  Светильник из шариковой ручки 2.
Mobile
  Проба КПК Fujitsu-Siemens Pocket-LOOX 420.
  "Мобильное телевидение".
  Электробабло-2. Теперь в телефонной трубке.
Windows
  Как создать загрузочную дискету в Windows NT/2000?
  Microsoft разработала защищенную Windows XP .
Пингвин'zzz
  Пингвинодизайн: Стань крутым *nix-дизайнером!
  Bluetooth и Linux на примере Nokia 7650.
  Проблемы русификации в Linux.
Delphi
  Создание графического интерфейса пользователя средствами Win32 API.
  Создание плагинов к Winamp.
Интернет - программинг
  Анатомия межсайтового скриптинга.
  Flash-навигатор.
  PHP Inside #0 [Журнал для начинающи и проффесионалов].
Web - desigN
  Книги по web-дизайну.
  Четыре правила профессионального дизайна. Часть I .
  Четыре правила профессионального дизайна. Часть II .
  Четыре правила профессионального дизайна. Часть III .
  Четыре правила профессионального дизайна. Часть IV .
Жизнь в сети
  И на Google есть пятна.
  МАСЯНЯ IS BACK!!!
Софт
  WebSubmitter— на пути к известности.
  Управляем цифровой фотографией.
  Оживление цвета.
Чтиво
  Пауло Коэльо - Алхимик.
  С любовью Алиса.
Games
  Sacred (Князь тьмы).
  The Matrix Online.
  Far Cry.
  Cheats.
Интервью
  Что нового у ReGet?
  С разработчиками файлового менеджера Фрегат.
  С хакером, взломавшим Lenta.ru
Музыка
  Моя музыка существует отдельно от меня.
  Осёл-меломан.
  Outkast.
Стиль
  Гламурная девушка.
  Женская мода. Осень: твид, плащи, метал и космический шик.
  Стильная одежда для маленьких модников.
Здоровье
  Как правильно загорать.
Это мы смотрим...
  Тупичок Гоблина - Ночной дозор.
  Россия наносит ответный удар, сняв свой первый блокбастер.
Наука
  Спутник сфотографировал эльфов и фей.
  Переведи меня!
Pick up
  Как познакомиться с девушкой.
  "15 никогда" для использования в общении со слабым полом. (смешно)
www.mzero.by.ru
Пингвин'zzz

Проблемы русификации в Linux.
Начну с того, что ни одна статья про русификацию не помогла мне с первого раза. Пришлось прочитать их несколько, почитать FAQ, HOWTO, MAN. Так, что если вы наткнулись на статью, в частности на мою, то это не значит, что ваши проблемы кончились на этом. На мой взгляд здесь все понятно, и большинству этого за глаза хватит. Все о чем здесь говорится отлично работает в RedHat 9.0. Думаю, в других дистрибутивах работает не хуже. Начнем с локализации вашего пингвина. Многие программы, такие как, gnome, kde, OpenOffice.org и большинство других, с которыми вам придется столкнуться, поддерживают локализацию. Интерфейс таких программ будет меняться, в зависимости от выбора системной локали (например измениться язык интерфейса). Теперь посмотрим, какая у вас стоит локаль. Наберите:

# locale

Появится список переменных локали. Похожий на этот:

LANG=ru_RU.cp1251
LC_CTYPE="ru_RU.cp1251"
LC_NUMERIC="ru_RU.cp1251"
LC_TIME="ru_RU.cp1251"
LC_COLLATE="ru_RU.cp1251"
LC_MONETARY="ru_RU.cp1251" LC_MESSAGES="ru_RU.cp1251"
LC_PAPER="ru_RU.cp1251"
LC_NAME="ru_RU.cp1251"
LC_ADDRESS="ru_RU.cp1251"
LC_TELEPHONE="ru_RU.cp1251"
LC_MEASUREMENT="ru_RU.cp1251"
LC_IDENTIFICATION="ru_RU.cp1251"
LC_ALL=
Как известно, в каждом государстве есть свои национальные стандарты. Кроме языка это формат бумаги, форма записи даты, времени, адреса и т.д. За все это и отвечает локаль. В приведенном выше списке, ru_RU.cp1251, и есть системная локаль. Здесь она "русская" "для России" и с кодировкой "cp1251" (интерфейс по возможности на русском языке, все символы в кодировке cp1251). Поменять локаль можно так:

# export LANG=ru_RU.koi8r

Посмотреть список доступных в системе локалей:

# locale -a (для удобства используйте locale -a | grep RU)

Если вам нужна локаль, например, ru_RU.cp1251, но у вас ее нет в списке, то можно ее добавить:

# localedef -c -i ru_RU -f cp1251 ru_RU.cp1251

Локаль по умолчанию прописывается в файле /etc/sysconfig/i18n. В строчке LANG - локаль по умолчанию.

Следующий этап русификация консоли. Того, кто консоль не любит и использовать ее не хочет, сразу хочу обрадовать: этот этап можете пропустить, с русификацией X-ов консоль никак не связанна. Для русификации будем пользоваться пакетом kbd.
Установка нужного шрифта.
По умолчанию шрифты лежат в каталоге /lib/kbd/consolefonts. Для русских кодировок рекомендую шрифты Cyr_a. Расширение.psfu.gz у шрифта означает, что он годится для разных кодировок. Команда:

# setfont Cyr_a8x16

Установка screen map (aka mapscrn aka acmtable).

Screen map перекодирует символы из вашей кодировки в Unicode, лежат в каталоге /lib/kbd/consoletrans. Выбрать можно так:

# setfont Cyr_a8x16 -m cp1251 Раньше для этого служила отдельная программа mapscrn. Из пакета ее не удаляли, поэтому можно пользоваться и ей: # mapscrn cp1251

Но после mapscrn еще нужно ввести "магическую" ESC-последовательность:

# echo -ne "\033(K"

Setfont этого не требует.

Выбор раскладки клавиатуры.
Раскладки хранятся в /lib/kbd/keymaps/i386/qwerty. Команда:

# loadkeys ru_win

Теперь посмотрим результаты. Если вы еще не сделали то, что я показал выше, то сейчас самое время. Пример опять для cp1251:

#setfont Cyr_a8x16 -m cp1251
#loadkeys ru_win

Переключение раскладки для ru_win делается правым Ctrl. Попробуйте печатать русскими буквами. Если видите караказяблы, то либо вы что-то неправильно сделали, либо у вас нет нужного mapscrn или вы выбрали не тот шрифт. Можете у вас вообще всего этого нет, тогда поищите и скачайте. Рекомендую пакет kbd-rus. Брать тут http://baybox.narod.ru/linux/kbd-rus.tgz. Автор предлагает свои раскладки, mapscrn-ы и шрифты для кодировок alt(cp866), koi(koi8-r) и win(cp1251). Кстати раскладку для ru_win, советую все-таки поменять на раскладку из пакета kbd-rus. Иначе вместо привычной точки с запятой вы будете получать слэш и вопрос. Если вы что-то скачали и положили в нестандартный каталог, то тогда, вам, конечно, придется полностью прописать путь и имя файла. Если вы решили русифицировать консоль под utf-8, тогда вместо sysfont используйте:

# unicode_start ваш шрифт

Естественно, в этом случае не нужно никакого mapscrn.
Какие раскладки клавиатуры использовать для конкретных кодировок смотри ниже.
Если у вас до сих пор ничего не работает, тогда я думаю, что и консоль вам не нужна, либо идите читать другие статьи HOWTOхи и MANы.

Если все работает, тогда доводим до ума. Редактируем уже знакомый нам файл /etc/sysconfig/i18n. Первая строчка - локаль. Выбирайте какая нравится. Как я уже говорил локаль влияет только на интерфейс, на вводe букв и просмотре файлов это не скажется. Хотя будет неприятно видеть сообщения в cp1251, когда у вас шрифты koi8-r. Поэтому по дефолту выбираем локаль и шрифты с одной кодировкой. Если вам вообще не нужен русский интерфейс выберете en_US и никаких проблем не будет. SYSFONT - дефолтовый шрифт, ACMTABLE - дефолтовый mapscrn. Строчку SUPPORTED можно не менять, но если хотите, для порядка, добавьте туда все используемые вами локали. Теперь в этом же каталоге ищем файл keyboard. В строчке KEYTABLE ваша дефолтовая раскладка. Опять же если вы скачали другие шрифты раскладки и mapscrnы, то вводите полный путь и имя файла. Если у вас стандартное тогда используйте следующие комбинации (для sysfont и loadkeys используйте их же). Вместо Cyr_a8x16 можно использовать любой кириллический шрифт, поддерживающий множество кодировок (расширение.psfu.gz)

Для koi8-r

LANG=ru_RU.koi8r
SYSFONT=Cyr_a8x16
ACMTABLE=koi8-r (или koi2alt)
KEYTABLE=ru4 (переключение клавишей CapsLock)

Для cp866

LANG=ru_RU.cp866
SYSFONT=Cyr_a8x16
ACMTABLE=cp866
KETABLE=ru2

Для iso8859-5

LANG=ru_RU.iso88595
SYSFONT=Cyr_a8x16
ACMTABLE=8859-5
KETABLE=у себя не нашел, если вам позарез нужна эта кодировка в консоли, то найдете.

Для windows(cp1251).

LANG=ru_RU.cp1251
SYSFONT=Cyr_a8x16
ACMTABLE=cp1251
KETABLE=ru_win

Для utf-8

LANG=ru_RU.utf8
SYSFONT=Cyr_a8x16
ACMTABLE можно удалить
KEYTABLE=В 9 RedHat есть только украинская ua-utf, в Cyrillic Edition добивили ru-utf(.

Теперь при перезагрузке вы увидите сообщения на русском до тех пор, пока не появится ввод логина и пароля (если у вас текстовый вход разумеется). После этого возникает небольшая проблема. Дело в том, что перед появлением логина и пароля дается команда reset. От чего очищается экран и сбрасывается mapscrn. Для восстановления текущего mapscrn нужно ввести "магическую" последовательность. Это не очень-то удобно, поэтому рекомендую в файле /etc/inittab исправить строки:

1:2345:respawn:/sbin/mingetty tty1
На
1:2345:respawn:/sbin/mingetty --noclear tty1

Для удобства создайте скрипты для включения каждой кодировки. Например для koi8-r

#/bin/sh
setfont Cyr_a8x16 -m koi8-r
loadkeys ru4

Сохраняем в /sbin/koi. Теперь в любое время вводим команду koi и получаем возможность просматривать и редактировать текст в этой кодировке.

Ну и напоследок, расскажу про монтирование виндузовских разделов.

#mount -t vfat -o iocharset=cp1251,codepage=866 /dev/hda5 /mnt/hda5

Текущие кодировки локали и консоли должны совпадать с iocharset тогда русские имена файлов будут отображаться без проблем.

Теперь русификация иксов. Ну здесь, вообще говоря, особо ничего делать не нужно. Чаще всего проблемы возникают из-за отсутствия шрифтов с используемой кодировкой. Выход один - скачайте и установите русские шрифты для ваших кодировок (я использую шрифты из Cyrillic Edition ftp://www.linux-ink.ru/pub/Russian/9/RPMS/ ). Потом проставьте их в настройках программ. Еще один совет, опять про ту же клавишу точка с запятой. Чтобы она у вас работала как в винде, т.е вводила эти самые точку и запятую, нужно подредактировать файл /etc/X11/XF86Config. В секции InputDevice ищем строку

option "XkbLayout" "us,ru"

Заменяем на

option "XkbLayout" "us,ru(winkeys)"

Ну вот, теперь вы знаете и умеете достаточно, для того чтобы успешно вести войну с многочисленными русскими кодировками. Можете изучать эту проблему дальше, создайте свою кодировку, дайте ей широкое распространение. Тогда проблема русификации никогда не исчезнет и в конечном итоге мы все перейдем на латиницу:))




наверх Автор: Scamelscrud Источник: Linux.ru


Copyright by MZero
Копирование и использование данных материалов разрешается
только в случае указания на журнал "
MZero", как на источник получения информации.
При этом во всех ссылках обязательно явное указание адреса вэб-сайта
www.mzero.by.ru.
Журнал тестировался на IE 5.0/6.0; Opera; Mozilla; MYIE 2.0; Netscape