В сообщении от 11 Июнь 2005 17:38 Eugen Wissner 
написал(a):
> Здравствуйте.
> Имею проблемы с локализацией Debian woody (rev5).
> Прописал в ~/.bash_profile (туда хоть написал 
> куда надо?) следующие строчки:
> export LC_CTYPE=ru_RU
> export LANG=ru_RU.KOI8-R
> export LC_ALL=ru_RU.KOI8-R
Туда-туда.
> После этого жить стало намного легче. Но 
> остались некоторые недоразумения.
> Во-первых mutt (запускаю с консоли) так и 
> отказывается отображать 
> koi8-r. Уже рылся по всяким статьям пробовал 
> настройки на угад... без 
> толку. Наверняка, что-то не то делаю, или 
> сделал. Может кто-то 
> конкретные настройки пояснит.
У mutt свой конфиг, и set-language-env создает его 
правильно.

> Во-вторых, запускается у меня KDE, пускаю я 
> konsole, набираю locale и 
> везде вместо "ru_RU.KOI8-R" пишется стандартный 
> "POSIX". При чем возьмем 
> в пример игрушку Джезбол, она вместо 
> русского шрифта показывает 
> "????????", а если запустить ее с konsole, 
> предварительно присвоив 
> переменным LC_ALL и LANG значение ru_RU.KOI8-R, то со 
> шрифтами 
> становится все в порядке.
> Поясните, пожалуйста, в чем тут проблема с 
> иксами, kde..., а то я 
> новенький..., тяжко.

Корень проблемы лежит в том, что LANG 
прописан у тебя в пользовательском конфиге
bash. И чтобы X унаследовал это окружение, 
необходимо запустить X из bash от имени
пользователя, тогда будет все ok. Можешь 
проверить, набрав startx в консоли. Обычно
же (из коробки) X запускается процессом init, а 
еще точне его грузит kdm (или xdm,
или gdm), которые не наследуют никакого 
окружения. Следовательно и все программки
запущенные в иксах, работают в POSIX локали. В 
этом можно убедится, если запустить
какое-нибудь простенькое X приложение, 
узнать его PID и посмотреть в
/proc/$PID/environment. Вариант запуска xterm и команды 
echo $LANG не работает,
поскольку xterm запускает bash, а bash выполняет 
.bash_profile, следовательно echo
запускается уже в окружении с LANG из .bash_profile. 
Может показаться, что и все остальное
будет иметь нужный LANG, однако это не так - 
только то, что запущено из xterm.

Как же сделать, чтобы X и все другие 
приложения работали в нужной локали? 
Вариант
прописать в /etc/environment рабочий, однако, 
позволю себе заметить, что не правильный
с точки зрения multiuser системы. Переменные в 
этом файле устанавливаются при логине
любого пользователя. А если он root? Или ему 
нужна немецкая локаль? Короче правильно,
я считаю, прописать в .bash_profile и в .xsession. 
Последний выполняется перед стартом
X от имени пользователя, таким образом X 
запускаются с "правильным" окружением.

PS: Довольно долго пришлось когда-то самому 
потрахаться с этим, прежде чем понял в чем 
дело =)

Макс



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить