[gnome-cyr] Re: [gnome-cyr] Re: [gnome-cyr] Наутилус - обобщение



On Sat, 31 Mar 2001, Timur I. Bakeyev wrote:

	Привет всем!
 
> Привет всем!
> 
> Я согласен с Дмитрием - нет ничего хуже, чем заводить отдельный Наутилус...
> 
> Давайте, я попробую обобщить, и если ничего ранее не решится - пообщаться с
> разработчиками на GUADEC.

 Наверно все это дело разрешится само собой..

> Кстати - присутствует ли эта ошибка в bugzillz.eazel.com и если да - какой у
> нее номер? Ибо наличие ошибки в bugzilla - у Eazel единственный критерий ее
> серьезности....
> 
> Скажу сразу - у меня Nautilus все еще не собирается, мешает наличие некоторых
> нестандартных функций в gnome-vfs. Надо думать, еще куча чего не соберется без 
> проблем на BSD/OS. Надо попробовать notebook с Slackware...
> 
> Итак(компиляция Влада и Димы):
> 
> При включенном АнтиАлисинге и русской локали (ru_RU.KOI8-R) имеет место следующая
> проблема со шрифтами:
> 
> * Все локализованные строки появляются как ?????? вместо нормального текста.

 Естественно, все GUI основанное на стандратных gtk-виждетах (меню и диалоги и
кнопки в диалогах) всегда ОК (так как их рисует gtk).
  
> * Если отключить АА, то русский появляется, кроме как в Sidebar, где, повидимому,
> AA постоянно включен.

 У меня насколько я помню (чтобы юзать Nau, мне надо грузить RH62 с другого
раздела и все такое) так:
 Если жив каталог urw с его оригинальными latin1 шрифтами:
	В sidebar ???? всегда вне зависимости от включенности АА
	Под иконками - когда АА врублен, вместо русского latin1 глифы, когда
		вырублен - русские глифы
 Если убит urw и в /usr/share/fonts/default/Type1 есть русские шрифты с теми
же названиями файлов, что и у URW, то везде всегда русский вне зависимости от 
включенности АА.

 
> * Предположительно, проблема лежит в способе подбора шрифтов в Наутилусе. По 
> умолчанию поиск шрифтов идет в жестко заданных каталогах и выбирается первый 
> существующий файл(!), вне зависимости от существующих в нем глифов.

 Nau использует первые найденные шрифты, но проблема в том что он НАЧИНАЕТ
искать в шрифтах которые идут в поставки с ним в /usr/share/nautilus/fonts/urw
(которые только latin1) - и естественно их находит..
 
> * Стандартная поставка шрифтов содержит только latin глифы.

 Да.
 
> Я тут получил еще вот такой совет:
> 
> [20:49] <Carbamide> BaT:  Ok.  Do you know how to add fonts to X?  If you do,
>         do the same thing with those fonts in the ~/.nautilus/fonts folder and
>         see if that works.  If it does, then file a bug about it not picking
>         up the correct fonts, if it doesn't work, file a bug about Nautilus
> 	not working the ru_RU locale
> 
> Попробуйте, кто может - перепишет ли это default fonts. 

 Нет конечно.
 
> 
> Вот еще в ChangeLog нашел:
> 
> 	* libnautilus-extensions/nautilus-global-preferences.c:
> 	(nautilus_global_preferences_initialize): Set up auto-storage
> 	variables for icon view & default smooth font preferences.
> 	(global_preferences_get_smooth_font),
> 	(global_preferences_get_smooth_bold_font): Changed to take
> 	font file name instead of preferences name.
> 
> Имхо еще отсюда могут идти зависимости от названий файлов...
> 
> Вообще nautilus-font-manager.c интересный файл.... Вот у него еще что есть к 
> примеру:
> 
> <CODE>
> /* These font families are black listed, because they 
>  * arent useful at all to display "normal" text - at 
>  * least in the context of Nautilus.
>  */
> static const char *black_listed_font_families[] = {
> 	.....
> 	"Webdings",
> 	"Wingdings",
> 	.....
> 	"MS Reference 1",
> 	"Marlett",
> 	"cursor"
> };
> 
> static const char *black_listed_font_foundries[] = {
>  	"greek",
>  	"grinet",
> 	/* Abisource fonts are black listed because they
> 	 * appear to simply be copies of the URW fonts,
> 	 * and listing them would waste valuable font picker
> 	 * space for no purpose.
> 	 */
> 	"Abisource"
> };
> 
> static const char *ignored_font_dir_suffices[] = {
> 	"unscaled",
> 	"100dpi",
> 	"75dpi",
> 	"misc",
> 	"abisource/fonts",
> 	"AbiSuite/fonts",
> 	"fonts/Speedo",
> 	"fonts/cyrillic",
> 	"ISO8859-2/Type1",
> 	"ISO8859-7/Type1"
> };
> 
> </CODE>
> 
> Т.е. cyrillic оно вообще читать не хочет?

 ИМХО правильно с "fonts/cyrillic" - в стандартной поставке XFree там только
растровые шрифты - которые ничем не помогут..

 Короче, идеальным решением IMO было бы сделать так, чтобы  Nau искал бы 
сначала где-нить еще (в основном это /usr/share/fonts/default/Type1/) а уж
потом - fallbacks в /usr/share/nautilus/fonts/urw - такой подход решает все
проблемы IMO так как все русские дистро ложат туда именно русские шрифты с
именами файлов как у URW.

 Ниже указано какие строки надо передвинуть вверх чтобы поведение стало таким,
которое удовлетворит этому принципу:

> А вот и пресловутые зашитые шрифты...
> 
> <CODE>
> libnautilus-extensions/nautilus-font-manager.c:
> 
> char *
> nautilus_font_manager_get_default_font (void)
> {
> 	guint i;
> 
> 	/* FIXME bugzilla.eazel.com 7343:
> 	 * We want this to work in the case where nautilus has
> 	 * not undergone 'make install'.  In order to do that
> 	 * we need to find out our fully qualified pwd - 
> 	 * probably using a configure.on NAUTILUS_PWD=`pwd`
> 	 * hack of some kind.  For now, commenting this out
> 	 * to make checks work in tinderbox again.
> 	 */
> 	static const char *default_fonts[] = {
> 		DEFAULT_FONT_DIRECTORY "/n019003l.pfb",
> 		/* SOURCE_DATADIR "/fonts/urw/n019003l.pfb", */
> 		"/usr/share/fonts/default/Type1/n019003l.pfb",

 Вот это ^ сделать самым первым элементом в списке

> 		"/usr/X11R6/lib/X11/fonts/Type1/lcdxsr.pfa"
> 	};
> 
> 	for (i = 0; i < NAUTILUS_N_ELEMENTS (default_fonts); i++) {
> 		if (g_file_exists (default_fonts[i])) {
> 			return g_strdup (default_fonts[i]);
> 		}
> 	}
> 
> 	return NULL;
> }
> 
> char *
> nautilus_font_manager_get_default_bold_font (void)
> {
> 	guint i;
> 
> 	static const char *default_bold_fonts[] = {
> 		DEFAULT_FONT_DIRECTORY "/n019004l.pfb",
> 		"/usr/share/fonts/default/Type1/n019003l.pfb",

 	Вот это ^ сделать самым первым элементом в списке

> 		/* SOURCE_DATADIR "/fonts/urw/n019004l.pfb", */
> 	};
> 
> 	for (i = 0; i < NAUTILUS_N_ELEMENTS (default_bold_fonts); i++) {
> 		if (g_file_exists (default_bold_fonts[i])) {
> 			return g_strdup (default_bold_fonts[i]);
> 		}
> 	}
> 
> 	return NULL;
> }
> 
> </CODE>

 Как вы считаете?
 Дима, ты единственный кто имеет права добавлять комментарии в bugzilla (как я
понимаю - ты ведь ticket открывал) - может добавишь это?

 Best regards,
  -Vlad


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