LINUX.ORG.RU

GTK-2 и KOI8-R


0

0

Прежде чем задавать вопрос, позвольте описать проблему. Есть 2 машины, назовем их А и Б. На них стоит одинаковый софт, локаль на обеих KOI8-R. Когда-то на них стояла Слака-9.х, и при переходе на Слаку-10.1 я впервые столкнулся с кошмаром GTK-2. Покурив ФАКов, прописал на обеих машинах одни и те же заклинания (экспортировал GDK_USE_XFT=1, G_BROKEN_FILENAMES=1, G_FILENAME_ENCODING=KOI8-R, LANG=r_RU.KOI8-R, LC_ALL=ru_RU.KOI8-R). На машине Б GTK-2 заговорила по-русски, а на машине А по-прежнему рисовала квадратики с цифрами. Много чего я перепробовал, многих людей донимал распросами -- ничего не помогало. Дойдя до полного опупения, я просто поступил по методу "to move it, move it" -- скопировал содержимое /etc/profile.d/ с Б на А. И, о чудо, GTK-2 заговорила по-русски на машине А. Я так и не понял, что же было не так. Возможно, хотя я в это не верю, что в каком-то из заклинаний была очепятка. Почему не верю? А вот читайте дальше. Пришло время проапгрейдить систему на обеих машинах до Слаки-10.2. И что же? На этот раз я получил ту же хрень, только теперь на машине А все нормально, а на машине Б -- квадратики. И теперь не помогает копирование не только /etc/profile.d/*, но и /usr/X11R6/lib/X11/fonts/*, вкупе с выпалыванием всех найденных файлов fonts.cache-1. Посему спрашиваю у людей, сталкивавшихся с подобным эффектом: куда лупить кувалдой? В смысле, ясно, что GTK-2 или ее приложения (или либы-подружки) где-то что-то сохраняют, и это "что-то" надо снести, но что это за файл? Или, в крайнем случае, что поправить в исходниках GTK-2, чтобы она принудительно использовала текущую локаль, а не сраный юникод? (я в курсе, что "у нея внутре" все строки в юникоде). Прошу не беспокоиться с ответом, если Вы собираетесь отослать меня к какому-нибудь из болтающихся в Рунете ФАКов -- все приведенные там заклинания я уже выучил. За конструктивные же предложения и/или гениальные догадки заранее премного благодарен.

Я указывал только G_BROKEN_FILENAMES=@locale (именно так), указывал это в /etc/profile Кстати, а какой используется *dm?

h8 ★★★
()
Ответ на: комментарий от h8

*dm -- это в смысле Display Manager? Никакой, запускаю иксы из консоли. WM -- fvwm2, но это по фигу, т.к. под fluxbox картина та же. На службе все нормально пашет в таком раскладе: gdm, fluxbox, все это на Федорином Горе 3 с ядром 2.6.13, в файле /etc/profile.d/glib2.sh прописано только "export G_BROKEN_FILENAMES=1". Я еще раз подчеркиваю: все классические заклинания произнесены, на идентичной системе все пашет. Надо догадаться, где какая-то сволочь что-то закэшировала, и стереть к чертовой матери. В противном случае придется попа с кадилом вызывать :\


ЗЫ. А Вашем случае, похоже, "@locale" интерпретируется просто как "не ноль".

Rexy-Craxy
() автор топика

Возможно у вас здесь(именно в постинге) опечатка:
LANG=r_RU.KOI8-R
_ru_
а может и на той машине то же?
LC_ALL=ru_RU.KOI8-R
можно вообще оставить пустым
LC_ALL=

Que_Mostraves
()
Ответ на: комментарий от Rexy-Craxy

>ЗЫ. А Вашем случае, похоже, "@locale" интерпретируется просто как "не ноль".

Я не знаю, как там оно интерпретируется, но оно работает, и работает правильно.

h8 ★★★
()
Ответ на: комментарий от Que_Mostraves

Очепятка, конечно. Но в реальном файле все нормально (там сейчас тупая копия с рабочей системы).

Rexy-Craxy
() автор топика
Ответ на: комментарий от Rexy-Craxy

Оставь в /etc/fonts/fonts.conf и /etc/fonts/local.conf только путь к ttf-шрифтам, прибей в каталоге со шрифтами все файлы, кроме них самих, и сделай заново mkfontscale, mkfontdir, fc-cache.

dn2010 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.