lav@: Там что-то при запуске: /usr/lib/meld/gnomeglade.py:46: GtkWarning: Invalid input string self.xml = gtk.glade.XML(file, root, gettext.textdomain(), override ) И всё квадратиками в диалогах. ktirf@: Кто-нибудь может подтвердить проблему? У меня не воспроизводится. thresh@: Да, это так. Только у меня вместо квадратиков пустые места и кое-где тэги типа <b> и <span weight=...... >
Ни фига себе.Ну что я могу сказать - откатитесь на версию 1.0.0 (кстати, а она-то работает? а после пересборки в свежем Сизифе? хотя не должно влиять). Пока источник граблей не найден. Если кто-либо, у кого проблема воспроизводится, сможет его найти или поможет в поисках - буду очень благодарен.
А у тебя в rpm -qi meld не написано, что у тебя стоит твоя сборка? :)
Я его уже специально переставил из Сизифа. Всё равно не воспроизводится :(
shell дать? На самом деле надо сверять версии обвязок к python, может у тебя python-gtk другой или ещё что.
Python-gtk у меня из Сизифа. У меня всё на эту тему из Сизифа :) В общем, в данный момент в /i/S заливается meld-1.1.2-alt1.src.rpm, можно попробовать его, вдруг повезет. Но я ничего на тему русификации не трогал, вообще ничего.
Проблемы по-прежнему есть?
Проблему поймал ещё в одной программе. Увидеть можно только в 8-мибитной локали, а у тебя наверное UTF8? Попробуй LANG=ru_RU.koi8-r meld
Будете собирать meld , обязательно проверьте, запустив с LANG=ru_RU.KOI8-R В предыдущих версиях было пропущено что-то типа bind_textdomain_codeset(GETTEXT_PACKAGE,"UTF-8"); в коде, из-за чего и была проблема с сообщениями. P.S. Там уже 1.1.4 вышла...
Подтверждаю. В 1.1.4 осталось: $ env | grep LANG LANG=ru_RU.CP1251 $ meld /usr/lib/meld/gnomeglade.py:46: GtkWarning: Invalid input string self.xml = gtk.glade.XML(file, root, gettext.textdomain(), override ) При заходе Параметров на вывод добавляется: /usr/lib/meld/gnomeglade.py:46: GtkWarning: Failed to set label from markup due to error parsing markup: Ошибка РІ строке 1 РЅР° символе 9: Текст закодирован как UTF-8 недопустимым образом self.xml = gtk.glade.XML(file, root, gettext.textdomain(), override ) /usr/lib/meld/gnomeglade.py:46: PangoWarning: Invalid UTF-8 string passed to pango_layout_set_text() self.xml = gtk.glade.XML(file, root, gettext.textdomain(), override ) /usr/lib/meld/meldapp.py:234: PangoWarning: Invalid UTF-8 string passed to pango_layout_set_text() self.option_wrap_lines.set_history( self.prefs.edit_wrap_lines ) /usr/lib/meld/gnomeglade.py:108: PangoWarning: Invalid UTF-8 string passed to pango_layout_set_text() gtk.main() Ну, и, соответственно, "вопросики" в Настройках.
Проблема в libglade - при использовании gtk.glade.XML(fname, root="", domain="" он переводит сообщения в кодировку локали, а сообщения выводятся потом как UTFные. проверка При $ LANG=ru_RU.UTF8 meld всё замечательно.
Это проблема с pyglade, перевесил багу. meld ни при чём.
Ну тогда уж и Assigned To тоже :)
Сочетания кодировкой локали/программы приведены здесь: http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?v=90n&search=glade#h323-11
До исправления: [testing@testing ~]$ meld /usr/lib/meld/gnomeglade.py:46: GtkWarning: Invalid input string self.xml = gtk.glade.XML(file, root, gettext.textdomain(), override ) После: [testing@testing ~]$ meld (ошибка пропала) Само исправление следующее: [testing@testing ~]$ diff -ur /usr/bin/meld~ /usr/bin/meld --- /usr/bin/meld~ 2008-05-27 12:35:46 +0400 +++ /usr/bin/meld 2008-05-27 13:04:54 +0400 @@ -34,11 +34,12 @@ import paths import gettext import locale +import gtk.glade try: locale.setlocale(locale.LC_ALL, '') - gettext.bindtextdomain("meld", paths.locale_dir() ) - gettext.textdomain("meld") + gtk.glade.bindtextdomain("meld", paths.locale_dir() ) + gtk.glade.textdomain("meld") gettext.install("meld", paths.locale_dir(), unicode=1) except (IOError,locale.Error), e: # fake gettext until translations in place Правда, я не совсем уверен, насчёт корректности включения import gtk.glade в сам meld, а не какой-нибудь из его модулей. Кроме того, у меня и до исправления ошибки сообщения интерфейса отображались нормально, несмотря на: [testing@testing ~]$ set | grep LANG LANG=ru_RU.KOI8-R LANGUAGE=ru_RU.KOI8-R:ru_RU.CP1251
Точнее, нужно сначала запускать метод gettext., потом -- одноимённый из gtk.glade. Указанный кусок кода должен выглядеть так: gettext.bindtextdomain("meld", paths.locale_dir() ) gtk.glade.bindtextdomain("meld", paths.locale_dir() ) gettext.textdomain("meld") gtk.glade.textdomain("meld")
Насколько я понимаю, это workaround вокруг проблемы pyglade?
Я не уверен, что это проблема самого pyglade. В других программах, которые его используют, я ничего подобного не наблюдал. Вообще-то обычно достаточно всего двух строк типа: gtk.glade.bindtextdomain(...) gtk.glade.textdomain(...) В данном случае это приводит к тому, что локализованные сообщения вообще пропадают (заменяются на английские). Почему -- я не знаю...
Этот баг ещё актуален? У меня всё работает...
(В ответ на комментарий №18) > Этот баг ещё актуален? У меня всё работает... o_O не уж-то? ps: вообще там ru.po тихий ужос - треть где-то непереведено - я все не перевел так как слабо в математических треминах :)
Сейчас ошибка воспроизводится? У меня - нет. Если проблема исчезла, багу пора закрывать. А насчёт перевода - это другой уже вопрос, я с переводами вовсе не дружу, тут, наверно, надо FR вешать.
Я думаю, что проблема всегда была актуальна только на не-UTF-8 локалях. Можно закрывать, видимо.
ok