[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [PATCH to gdk] поддержка корректного отображения русскоязычных элементов GUI при отсутствии /etc/gtk/gtkrc.ru



On Tue, 22 Aug 2000, Alexander Kotelnikov wrote:

> On Tue, Aug 22, 2000 at 07:54:38PM +0400, Aleksey Novodvorsky wrote:
> > Vlad Harchev wrote:
> > 
> > > /etc/gtkrc/gtkrc.ru - а остальные параметры (семейство шрифта - т.е. будет
> > > ли это Courier или Helvetica) зависят от положения шрифта во внутреннем списке
> 
> почему? в fontset можно  прописать и семейство. Кстати, вот 
> /etc/gtk/gtkrc.ru версии 1.2.8:
> 
> style "gtk-default-ru" {
>        fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-iso8859-*,\
>                   -*-arial-medium-r-normal--12-*-*-*-*-*-iso8859-1,\
>                   -cronyx-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\
>                   -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,*-r-*"
> }
> class "GtkWidget" style "gtk-default-ru"

 Да, в фонтсет можно прописать и семейство.  
> 
> > > шрифтов xlib! Мораль - /etc/gtkrc/gtkrc.ru должен быть удален (и я буду
> > > добиваться этого от разработчиков gtk).
> 
> вот все было лень спросить, но уж коль разговор зашел: как в отсутствии
> /etc/gtk/*, ~/.gtkrc выберается шрифт для gtk-программы?

  
> > 
> > В более свежих версиях gtk файлы gtkrc.$LANG содержат маску *-r-*, что снимает эту
> > проблему.
> 
> В этой связи интересно, почему это в нашем случае gtkrc.ru, а не gtkrc.$LANG?

 Да, сначала смотрится gtkrc.$LANG, а потом (может если его нет?)
gtkrc.<lang_code>.

 Короче, привожу смысл ответа разработчиков gtk.
1) fontsets - основной способ интернационализации в xlib (от себя - хотя
вряд ли уместен этот способ для кирилицы - я имею ввиду что все шрифты в
charset'е koi8-r определяют глифы для всего диапазона символов данного
charset'а и поэтому из любого фонтсета будет использоваться только один шрифт
с кодировкой koi8-r, выбранный xlib случайным образом из всех шрифтов фонтсета
с кодировкой кои8 -  и IMO это справедливо для любой однобайтовой локали). То,
что написано в скобках - я им тоже сказал. Ответа на это нет (для них это
типично - вернее для одного из них который отвечает на письма - Owen Taylor
otaylor@redhat.com).

2) gnome сontrol center должен по-хорошему прописывать в ~/.gtkrc не font по
умолчанию (который был выбран пользователем), а fontset. Текущие версии
gnomecc прописывают только font, а фонт имеет меньший приоритет чем fontset.
Поэтому наличие fontset в /etc/gtk/gtkrc.* заставляет gtk игнорировать шрифт
выбранный пользователем с помощью gnomecc в ~/.gtkrc

Исходя из выше указанного, мне кажется что удаление /etc/gtk/gtkrc.ru и
наложение моего патча - наиболее практичный способ руссификации gnome
(по-крайне мере для авторов дистрибьютивов) по критерию минимизации количества
пакетов, которые нужно обновить. Если идти правильным путем - исправить
gnomecc - то 3 варианта - править последний gnomecc - который потащит за собой
половину библиотек helix gnome, либо вытаскивать из cvs ту версию gnomecc
которая стоит в данный момент и патчить ее и перекомпилять, либо учить
пользователя каждый раз при смене шрифта в gnomecc ручками редактировать свой
~/.gtkrc на предмет добавления определения fontset'а по умолчанию.
  Хочу добавить, что при использовании fontset ошибка, исправляемая моим
патчем, не проявляется (использется другой case от switch) для виджетов. Она
может проявляться в софте который позволяет выбрать пользователю
произвольный шрифт, при рисовании этим шрифтом русских строк.
  
> -- 
> Alexander Kotelnikov
> Saint-Petersburg, Russia
> 
> 
> --  
> To UNSUBSCRIBE, email to debian-russian-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> 

 Best regards,
  -Vlad

Reply to: