Bug 8428 - Проблемы с русификацией
Summary: Проблемы с русификацией
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: python-module-pygtk-libglade (show other bugs)
Version: unstable
Hardware: all Linux
: P1 critical
Assignee: Vitaly Lipatov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-07 01:19 MSK by Alexey Rusakov
Modified: 2010-08-10 06:51 MSD (History)
22 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Rusakov 2005-11-07 01:19:23 MSK
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=...... >
Comment 1 Alexey Rusakov 2005-11-07 01:20:32 MSK
Ни фига себе.Ну что я могу сказать - откатитесь на версию 1.0.0 (кстати, а
она-то работает? а после пересборки в свежем Сизифе? хотя не должно влиять).
Пока источник граблей не найден. Если кто-либо, у кого проблема воспроизводится,
сможет его найти или поможет в поисках - буду очень благодарен.

Comment 2 Vitaly Lipatov 2005-11-07 11:50:12 MSK
А у тебя в rpm -qi meld не написано, что у тебя стоит твоя сборка? :) 
 
Comment 3 Alexey Rusakov 2005-11-07 12:04:15 MSK
Я его уже специально переставил из Сизифа. Всё равно не воспроизводится :(
Comment 4 Vitaly Lipatov 2005-11-07 14:09:04 MSK
shell дать? 
На самом деле надо сверять версии обвязок к python, 
может у тебя python-gtk другой или ещё что. 
Comment 5 Alexey Rusakov 2005-11-10 00:24:03 MSK
Python-gtk у меня из Сизифа. У меня всё на эту тему из Сизифа :)
В общем, в данный момент в /i/S заливается meld-1.1.2-alt1.src.rpm, можно
попробовать его, вдруг повезет. Но я ничего на тему русификации не трогал,
вообще ничего.
Comment 6 Alexey Rusakov 2006-01-10 00:58:24 MSK
Проблемы по-прежнему есть?
Comment 7 Vitaly Lipatov 2006-01-26 01:11:06 MSK
Проблему поймал ещё в одной программе. 
Увидеть можно только в 8-мибитной локали, 
а у тебя наверное UTF8? 
Попробуй 
LANG=ru_RU.koi8-r meld 
Comment 8 Vitaly Lipatov 2006-06-11 20:40:45 MSD
Будете собирать meld , обязательно проверьте, запустив с 
LANG=ru_RU.KOI8-R
В предыдущих версиях было пропущено что-то типа
bind_textdomain_codeset(GETTEXT_PACKAGE,"UTF-8");
в коде, из-за чего и была проблема с сообщениями.
P.S.
Там уже 1.1.4 вышла...
Comment 9 Denis Yurashkou 2006-06-14 13:56:05 MSD
Подтверждаю.
В 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: Р&#1115;С&#8364;РёР&#177;Р&#1108;Р° Р&#1030; С&#1027;С&#8218;С&#1026;Р&#1109;Р&#1108;Р&#181; 1 Р&#1029;Р° С&#1027;РёР&#1112;Р&#1030;Р&#1109;Р&#187;Р&#181; 9:
Р&#1118;Р&#181;Р&#1108;С&#1027;С&#8218; Р·Р°Р&#1108;Р&#1109;Р&#1169;РёС&#1026;Р&#1109;Р&#1030;Р°Р&#1029; Р&#1108;Р°Р&#1108; UTF-8 Р&#1029;Р&#181;Р&#1169;Р&#1109;Р&#1111;С&#1107;С&#1027;С&#8218;РёР&#1112;С&#8249;Р&#1112;
Р&#1109;Р&#177;С&#1026;азР&#1109;Р&#1112;
  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()

Ну, и, соответственно, "вопросики" в Настройках.
Comment 10 Vitaly Lipatov 2006-07-29 20:33:08 MSD
Проблема в libglade - при использовании 
 gtk.glade.XML(fname, root="", domain="" 
он переводит сообщения в кодировку локали, а сообщения выводятся потом как 
UTFные. 
проверка 
При  
$ LANG=ru_RU.UTF8 meld  
всё замечательно. 
 
Comment 11 Vitaly Lipatov 2006-07-29 20:39:41 MSD
Это проблема с  pyglade, перевесил багу. meld ни при чём. 
Comment 12 Alexey Rusakov 2007-09-10 13:25:09 MSD
Ну тогда уж и Assigned To тоже :)
Comment 13 Vitaly Lipatov 2008-05-22 20:19:01 MSD
Сочетания кодировкой локали/программы приведены здесь:
http://freesource.info/wiki/Lokalizacija/LokalizacijaProgramm?v=90n&search=glade#h323-11
Comment 14 Yury Aliaev 2008-05-27 13:11:23 MSD
До исправления:

[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
Comment 15 Yury Aliaev 2008-05-27 13:26:09 MSD
Точнее, нужно сначала запускать метод gettext., потом -- одноимённый из gtk.glade.

Указанный кусок кода должен выглядеть так:

    gettext.bindtextdomain("meld", paths.locale_dir() )
    gtk.glade.bindtextdomain("meld", paths.locale_dir() )
    gettext.textdomain("meld")
    gtk.glade.textdomain("meld")
Comment 16 Alexey Rusakov 2008-05-27 13:45:45 MSD
Насколько я понимаю, это workaround вокруг проблемы pyglade?
Comment 17 Yury Aliaev 2008-05-27 14:53:53 MSD
Я не уверен, что это проблема самого pyglade. В других программах, которые его
используют, я ничего подобного не наблюдал. Вообще-то обычно достаточно всего
двух строк типа:

gtk.glade.bindtextdomain(...)
gtk.glade.textdomain(...)

В данном случае это приводит к тому, что локализованные сообщения вообще
пропадают (заменяются на английские). Почему -- я не знаю...
Comment 18 Alexey Rusakov 2009-08-09 15:03:31 MSD
Этот баг ещё актуален? У меня всё работает...
Comment 19 swi 2009-08-10 12:10:40 MSD
(В ответ на комментарий №18)
> Этот баг ещё актуален? У меня всё работает...

o_O не уж-то?

ps: вообще там ru.po тихий ужос - треть где-то непереведено - я все не перевел так как слабо в математических треминах :)
Comment 20 real@altlinux.org 2010-08-05 06:10:19 MSD
Сейчас ошибка воспроизводится? У меня - нет. Если проблема исчезла, багу пора закрывать.

А насчёт перевода - это другой уже вопрос, я с переводами вовсе не дружу, тут, наверно, надо FR вешать.
Comment 21 Vitaly Lipatov 2010-08-10 00:20:08 MSD
Я думаю, что проблема всегда была актуальна только на не-UTF-8 локалях. Можно закрывать, видимо.
Comment 22 real@altlinux.org 2010-08-10 06:51:23 MSD
ok