Menu item "Gtk-CRITICAL" messages
lapham at extracta.com.br
Sat May 31 11:20:21 CDT 2003
Okay, I still trying to track down those damn Gtk-CRITICAL messages that
spew forth because some menu items are translated differently in
gnucash/po/X.po verses various other gnome libs.
What follows is the step-by-step approach to doint this. I hope to add
this to the TRANSLATIONS-HOWTO document I'm working on for gnucash, so
comments are welcome.
Question #1: I think there must be another library besides libgnome and
libgnomeui that we have to worry about. Why? Because, when I run
"LANG=pt_BR gnucash" the "_View" menu appears as "_Visualizar".
However, it is translated in both my gnucash po file and libgnomeui as
"_Ver" (it doesn't exist in libgnome). Where is it coming from?
Question #2: Is there a simple way to simply re-install a language file
after making a modification to a po file? Or, do we have to go through
the whole "make install" process after a minor language translation
Question #3: What *version* of the libgnome and libgnomeui libraries
should we be looking into? I guess it must be the version that exists
on the system under which gnucash is being run. So, in my case, for
RedHat v9, that mean I should use v2.2 of libgnome and libgnomeui. What
if these library file translations changed somewhat in v2.3? Or v2.1?
1) Start with a clean copy of the 1.8 gnucash source (fresh CVS or make
2) Recompile/install with debug-ing activated (./autogen.sh
--enable-debug; make; make install)
3) for problems by running gnucash in English (LANG=en_US gnucash)
followed by running in your language (LANG=pt_BR gnucash). Look for
warning messages which only appear when running under your language.
4) If there is a problem, restart gnucash under gdb under your language
(LANG=pt_BR gnucash-env gdb /usr/bin/guile) followed by (run -e main -s
/usr/local/libexec/gnucash/overrides/gnucash --g-fatal-warnings) from
within gdb. After gnucash crashes, type 'backtrace' in the gdb
interface, you should see something similar to this:
#0 0xffffe002 in ?? ()
#1 0x42028a73 in abort () from /lib/tls/libc.so.6
#2 0x4019d3d8 in g_logv () from /usr/lib/libglib-1.2.so.0
#3 0x4019d414 in g_log () from /usr/lib/libglib-1.2.so.0
#4 0x40500fdd in gtk_type_check_object_cast () from
#5 0x407292e5 in gnc_mdi_tweak_menus (mc=0x825adb0) at gnc-mdi-utils.c:574
#6 0x40729d13 in gnc_mdi_child_changed_cb (mdi=0x8266fd8, prev_child=0x0,
data=0x8265fd8) at gnc-mdi-utils.c:861
Notice position #5 which has "gnc_mdi_tweak_menus at
gnc-mdi-utils.c:574"? Open that source file and find line 574:
573: widget = gnc_mdi_child_find_menu_item(mc, "_View/_Toolbar");
574: gtk_signal_handler_block_by_data(GTK_OBJECT(widget), info);
So, the problem is with the translation of "_View/_Toolbar".
5) Download your language translations for the libgnome and libgnomeui
packages installed on your system. These can be found in the
appropriate tarballs on ftp://ftp.gnome.org/ in the /pub/gnome/sources/
directory. Also, you can access the files through LXR like this:
(then enter libgnome/po/ or libgnomeui/po/)
6) Find how libgnome or libgnomeui translated that menu item, and change
your translation in gnucash to be identical.
7) Return to step #1. Wash, rinse, repeat.
Jon Lapham <lapham at extracta.com.br> Rio de Janeiro, Brasil
Work: Extracta Moléculas Naturais SA http://www.extracta.com.br/
More information about the gnucash-devel