summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorYair Hershkovitz <yairhr@gmail.com>2008-05-11 09:49:30 +0000
committerYair Hershkovitz <yairhr@src.gnome.org>2008-05-11 09:49:30 +0000
commit670775d8d8301b4593726a81c8ed3dc7a7bf7cc3 (patch)
treeef2094bfb2028aa3eb10d584d90d87d45b49ec12 /gtk
parent1103d790b17380acb2ebb09049f75ff0aa0e2424 (diff)
downloadgtk+-670775d8d8301b4593726a81c8ed3dc7a7bf7cc3.tar.gz
call g_i18n_init() in gettext_initialization(). do gettext_initialization
2008-05-11 Yair Hershkovitz <yairhr@gmail.com> * gtk/gtkmain.c: call g_i18n_init() in gettext_initialization(). do gettext_initialization only once. * gtk/gtkbuilderparser.c: use glib i18n api. removed dpgettext() as it duplicates g_dpgettext() and added _g_dpgettext() to wrap g_dpgettext with the extended functionality that was in the removed dpgettext(). * gtk/gtkaccellabelc: * gtk/gtkstock.c: * gtk/gtkimmulticontext.c: * gtk/gtkactiongroup.c: * gtk/gtkintl.h: use glib i18n api. svn path=/trunk/; revision=20091
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkaccellabel.c2
-rw-r--r--gtk/gtkactiongroup.c2
-rw-r--r--gtk/gtkbuilderparser.c29
-rw-r--r--gtk/gtkimmulticontext.c2
-rw-r--r--gtk/gtkintl.h2
-rw-r--r--gtk/gtkmain.c6
-rw-r--r--gtk/gtkstock.c4
7 files changed, 19 insertions, 28 deletions
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c
index 6a7bf1eda5..dbb657f23d 100644
--- a/gtk/gtkaccellabel.c
+++ b/gtk/gtkaccellabel.c
@@ -646,7 +646,7 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass,
strcpy (msg, "keyboard label|");
g_strlcat (msg, tmp, 128);
- str = dgettext (GETTEXT_PACKAGE, msg);
+ str = g_dgettext (GETTEXT_PACKAGE, msg);
if (str == msg)
{
g_string_append (gstring, tmp);
diff --git a/gtk/gtkactiongroup.c b/gtk/gtkactiongroup.c
index 3a86464950..6f085ee0dc 100644
--- a/gtk/gtkactiongroup.c
+++ b/gtk/gtkactiongroup.c
@@ -1280,7 +1280,7 @@ dgettext_swapped (const gchar *msgid,
{
/* Pass through dgettext if and only if msgid is nonempty. */
if (msgid && *msgid)
- return dgettext (domainname, msgid);
+ return g_dgettext (domainname, msgid);
else
return (gchar*) msgid;
}
diff --git a/gtk/gtkbuilderparser.c b/gtk/gtkbuilderparser.c
index 15fbae3a3d..62e2059636 100644
--- a/gtk/gtkbuilderparser.c
+++ b/gtk/gtkbuilderparser.c
@@ -755,13 +755,10 @@ start_element (GMarkupParseContext *context,
element_name);
}
-/* This function is taken from gettext.h
- * GNU gettext uses '\004' to separate context and msgid in .mo files.
- */
static const char *
-dpgettext (const char *domain,
- const char *msgctxt,
- const char *msgid)
+_g_dpgettext (const char *domain,
+ const char *msgctxt,
+ const char *msgid)
{
size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1;
@@ -771,22 +768,10 @@ dpgettext (const char *domain,
msg_ctxt_id = g_alloca (msgctxt_len + msgid_len);
memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
- msg_ctxt_id[msgctxt_len - 1] = '\004';
+ msg_ctxt_id[msgctxt_len - 1] = '|';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
- translation = dgettext (domain, msg_ctxt_id);
-
- if (translation == msg_ctxt_id)
- {
- /* try the old way of doing message contexts, too */
- msg_ctxt_id[msgctxt_len - 1] = '|';
- translation = dgettext (domain, msg_ctxt_id);
-
- if (translation == msg_ctxt_id)
- return msgid;
- }
-
- return translation;
+ return g_dpgettext (domain, msg_ctxt_id, 0);
}
gchar *
@@ -797,9 +782,9 @@ _gtk_builder_parser_translate (const gchar *domain,
const char *s;
if (context)
- s = dpgettext (domain, context, text);
+ s = _g_dpgettext (domain, context, text);
else
- s = dgettext (domain, text);
+ s = g_dgettext (domain, text);
return g_strdup (s);
}
diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c
index 484ae51e6d..3ee0cc565f 100644
--- a/gtk/gtkimmulticontext.c
+++ b/gtk/gtkimmulticontext.c
@@ -590,7 +590,7 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
bind_textdomain_codeset (contexts[i]->domain, "UTF-8");
#endif
- translated_name = dgettext (contexts[i]->domain, contexts[i]->context_name);
+ translated_name = g_dgettext (contexts[i]->domain, contexts[i]->context_name);
}
else
{
diff --git a/gtk/gtkintl.h b/gtk/gtkintl.h
index 4b176bd9f6..caeb68eb60 100644
--- a/gtk/gtkintl.h
+++ b/gtk/gtkintl.h
@@ -4,7 +4,7 @@
#include <glib/gi18n-lib.h>
#ifdef ENABLE_NLS
-#define P_(String) dgettext(GETTEXT_PACKAGE "-properties",String)
+#define P_(String) g_dgettext(GETTEXT_PACKAGE "-properties",String)
#else
#define P_(String) (String)
#endif
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index e8f386751b..60c584c993 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -177,6 +177,7 @@ const guint gtk_interface_age = GTK_INTERFACE_AGE;
static guint gtk_main_loop_level = 0;
static gint pre_initialized = FALSE;
static gint gtk_initialized = FALSE;
+static gint gettext_initialized = FALSE;
static GList *current_events = NULL;
static GSList *main_loops = NULL; /* stack of currently executing main loops */
@@ -630,6 +631,10 @@ do_pre_parse_initialization (int *argc,
static void
gettext_initialization (void)
{
+ if (gettext_initialized)
+ return;
+ gettext_initialized = TRUE;
+
#ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, GTK_LOCALEDIR);
bindtextdomain (GETTEXT_PACKAGE "-properties", GTK_LOCALEDIR);
@@ -637,6 +642,7 @@ gettext_initialization (void)
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
bind_textdomain_codeset (GETTEXT_PACKAGE "-properties", "UTF-8");
# endif
+ g_i18n_init();
#endif
}
diff --git a/gtk/gtkstock.c b/gtk/gtkstock.c
index c50cf9a236..c649be6277 100644
--- a/gtk/gtkstock.c
+++ b/gtk/gtkstock.c
@@ -176,7 +176,7 @@ gtk_stock_lookup (const gchar *stock_id,
if (translate != NULL && translate->func != NULL)
item->label = (* translate->func) (item->label, translate->data);
else
- item->label = dgettext (item->translation_domain, item->label);
+ item->label = g_dgettext (item->translation_domain, item->label);
}
}
@@ -457,7 +457,7 @@ sgettext_swapped (const gchar *msgid,
{
gchar *domainname = data;
- return (gchar *)g_strip_context (msgid, dgettext (domainname, msgid));
+ return (gchar *)g_strip_context (msgid, g_dgettext (domainname, msgid));
}