Re: How to translate text strings of GtkUIManager file.
- From: Mike Massonnet <mmassonnet gmail com>
- To: gtk-list gnome org
- Subject: Re: How to translate text strings of GtkUIManager file.
- Date: Mon, 30 Mar 2009 16:46:23 +0200
Le Mon, 30 Mar 2009 16:04:05 +0200,
Osmo Maatta <osmoma gmail com> a écrit :
> Hello,
>
> I have a question about how to get text strings translated when I use
> GtkUIManager to build a GUI (menu and toolbar).
>
> This example is from my Gscreendump (screenshot taking...)
> application.
>
> I have a XML syntax for the GUI in:
> http://code.google.com/p/gscreendump/source/browse/trunk/src/sd_menu_ui.h
>
> Then in the c code:
>
> #include "sd_menu_ui.h"
>
> static GtkActionEntry open_entries[] =
> {
> { "FileNewMenuAction", GTK_STOCK_NEW,
> "_New Capture", ""}, <--- HOW TO GET THIS TRANSLATED?
>
> { "FileNewWindowAction", NULL,
> "_Window", "<control>1",
> "Take a screenshot of a selected window.", <--- HOW TO GET THIS
> TRANSLATED etc. ?
> G_CALLBACK(on_m_new_window_activate_cb)},
>
> { "FileNewSelectionAction", NULL,
> "_Selection", "<control>2",
> "Take a screenshot of a selected area of the desktop.",
> G_CALLBACK(on_m_new_select_activate_cb)},
>
> { "FileNewDesktopAction", NULL,
> "_Desktop", "<control>3",
> "Take a screenshot of the entire desktop.",
> G_CALLBACK(on_m_new_desktop_activate_cb)},
>
> ...
> };
>
>
> /* Then load the UI for menu and toolbar */
> GError *error = NULL;
> gtk_ui_manager_add_ui_from_string(g_ui_manager, ui_xml, -1, &error);
> ...
>
> ---------------------------
>
> All strings of the the c-code are automatically collected because
> strings are confined by translation macro _("some text"). But I
> cannot use _("xxxx") in the GtkActionEntry entries (e.g
> open_entries[] list).
Yes, you have to use N_() which marks the string as translatable, but
doesn't return the translated string. You will then have to use
_(open_entries->label) to print manually the translated string, or not
if this may be done automatically.
See the GLib Utilities -> Internationalization entry of the GLib
reference manual.
Mike
> So do you know how to automatically collect and output strings from
> all the GtkActionEntry lists to ./po/gscreendump.pot file.
> The .pot is the message/text file that already contains all strings
> from _("xxxxx"). It is then translated to other languages.
>
> But my problem is the text strings in all GtkActionEntry structures.
> ---------------------------
>
> I have added gtk_action_group_set_translation_domain() lines to my
> code, but I cannot see how it works.
>
> GtkActionGroup *open_action_group =
> gtk_action_group_new("AlwaysOpenActions");
> gtk_action_group_add_actions(open_action_group, open_entries,
> n_open_entries, NULL);
> gtk_ui_manager_insert_action_group(g_ui_manager, open_action_group,
> 0); gtk_action_group_set_translation_domain(open_action_group,
> GETTEXT_PACKAGE); -----------------------------
>
> Sorry for possibly bad explanation, but this is my reality now.
>
> The entire Gscreendump code is available from:
> http://code.google.com/p/gscreendump (study the amazing pictures ;-)
> And the latest source code:
> http://code.google.com/p/gscreendump/source/browse/#svn/trunk/src/
> ----------------------------
>
>
>
> _______________________________________________
> gtk-list mailing list
> gtk-list gnome org
> http://mail.gnome.org/mailman/listinfo/gtk-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]