diff options
author | Yair Hershkovitz <yairhr@gmail.com> | 2008-05-11 09:49:30 +0000 |
---|---|---|
committer | Yair Hershkovitz <yairhr@src.gnome.org> | 2008-05-11 09:49:30 +0000 |
commit | 670775d8d8301b4593726a81c8ed3dc7a7bf7cc3 (patch) | |
tree | ef2094bfb2028aa3eb10d584d90d87d45b49ec12 /gtk | |
parent | 1103d790b17380acb2ebb09049f75ff0aa0e2424 (diff) | |
download | gtk+-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.c | 2 | ||||
-rw-r--r-- | gtk/gtkactiongroup.c | 2 | ||||
-rw-r--r-- | gtk/gtkbuilderparser.c | 29 | ||||
-rw-r--r-- | gtk/gtkimmulticontext.c | 2 | ||||
-rw-r--r-- | gtk/gtkintl.h | 2 | ||||
-rw-r--r-- | gtk/gtkmain.c | 6 | ||||
-rw-r--r-- | gtk/gtkstock.c | 4 |
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)); } |