Eugen Wissner -> debian-russian@lists.debian.org @ Sat, 11 Jun 2005 19:38:29 +0600:
EW> Здравствуйте. EW> Имею проблемы с локализацией Debian woody (rev5). EW> Прописал в ~/.bash_profile (туда хоть написал куда надо?) следующие строчки: EW> export LC_CTYPE=ru_RU EW> export LANG=ru_RU.KOI8-R EW> export LC_ALL=ru_RU.KOI8-R Для начала - LC_CTYPE надо ru_RU.KOI8-R. Для потом - вообще первая и третья строчки лишние. EW> После этого жить стало намного легче. Но остались некоторые EW> недоразумения. Во-первых mutt (запускаю с консоли) так и EW> отказывается отображать koi8-r. Уже рылся по всяким статьям EW> пробовал настройки на угад... без толку. Наверняка, что-то не то EW> делаю, или сделал. Может кто-то конкретные настройки пояснит. Для потом - а кто-нибудь другой-то у тебя в консоли (НЕ ПУТАТЬ С konsole!) русский показывает? Кириллические шрифты установлены? Настроены на koi8-r? mutt его нормально отображает, если он знает, какая кодировка у тебя на терминале (я не помню, умеет ли он ее из локали брать, но был параметр конфига) И кодировка правильно указана в письме (чтобы знать, откуда перекодировать). EW> Во-вторых, запускается у меня KDE, пускаю я konsole, ... который сам по себе не bash, и потому не читает .bash_profile EW> набираю locale ... а bash, запущенный в нем, не логинный, и тоже не читает .bash_profile EW> и везде вместо "ru_RU.KOI8-R" пишется стандартный "POSIX". При чем EW> возьмем в пример игрушку Джезбол, она вместо русского шрифта EW> показывает "????????", а если запустить ее с konsole, EW> предварительно присвоив переменным LC_ALL и LANG значение EW> ru_RU.KOI8-R, то со шрифтами становится все в порядке. Поясните, EW> пожалуйста, в чем тут проблема с иксами, kde..., а то я EW> новенький..., тяжко. У тебя проблема не с иксами, а с пониманием, как устроена локализация. Так вот. Локаль - свойство процесса, а не системы. Поэтому она может быть разная у разных процессов. В норме она отвечает за выбор программой сообщений, понятие буквы и т.п. У некоторых (гуевых, которые сами разбираются с кодировкой шрифтов) - еще и за выбор шрифтов. Они для этого обычно используют категорию LC_CTYPE. У консольных возможности выбора шрифтов нет, используют тот, какой дали (в консоли - загрузили в знакогенератор, в эмуляторе терминала в иксах - с каким запущен эмулятор терминала). Некоторые гуевые (xterm, например) тоже не проявляют интеллекта и используют какой дали. Им надо давать шрифт в нужной кодировке. В иксах локаль (тоже LC_CTYPE) отвечает еще и за интерпретацию нажатий на клавиши Xlib'ом. А именно - за перекодировку в символ соответствующей кодировки. Так что даже в правильно локализованную консольную программу, запущенную в xterm или konsole, который в свою очередь запущен в локали POSIX (в твоем случае с неправильно расположенными переменными так и произойдет), ты не сможешь ввести русские буквы. Как тебе уже заметили, локаль нужно писать в /etc/environment (умолчательную для всех пользователей системы) либо в стартапный файл своей конфигурации (для себя лично). Раньше, помнится, системный Xsession подхватывал ~/.environment. Там еще будет особенность с тем, что оный /etc/environment читался раньше (и может быть, читается сейчас) кем-то типа pam_env, кто не переваривает там слова export. В результате прочитанные оттуда переменные не экспортировались. Я помню, с этим когда-то давно были проблемы, у меня в .xsession еще следы от этого остались. -- Artem Chuprina RFC2822: <ran{}ran.pp.ru> Jabber: [EMAIL PROTECTED] Нужны две программы - одна с интерфейсом, а другая чтобы работу делала. Victor Wagner в <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]