How to translate text strings of GtkUIManager file.
- From: Osmo Maatta <osmoma gmail com>
- To: gtk-list gnome org
- Subject: How to translate text strings of GtkUIManager file.
- Date: Mon, 30 Mar 2009 16:04:05 +0200
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).
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/
----------------------------
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]