Bug 503071 – Application direction changes to right to left even if

2008-06-11  Behdad Esfahbod  <behdad@gnome.org>

        Bug 503071 – Application direction changes to right to left even if
        theres no translation

        * configure.in: Bump glib requirement.

        * gtk/gtkaccellabel.c
        (_gtk_accel_label_class_get_accelerator_label):
        * gtk/gtkactiongroup.c (dgettext_swapped):
        * gtk/gtkbuilder.c (gtk_builder_class_init):
        * gtk/gtkbuilderparser.c (_dpgettext),
        (_gtk_builder_parser_translate):
        * gtk/gtkfilechooserdefault.c (list_size_data_func):
        * gtk/gtkimmulticontext.c (gtk_im_multicontext_append_menuitems):
        * gtk/gtkintl.h:
        * gtk/gtkmain.c (setlocale_initialization),
        (do_pre_parse_initialization), (gettext_initialization):
        * gtk/gtkstock.c (gtk_stock_lookup), (sgettext_swapped):
        Use g_dgettext() and g_dngettext().


svn path=/trunk/; revision=20358
This commit is contained in:
Behdad Esfahbod 2008-06-11 23:40:35 +00:00 committed by Behdad Esfahbod
parent 98fbada587
commit d76e3d552e
11 changed files with 66 additions and 33 deletions

View File

@ -1,3 +1,24 @@
2008-06-11 Behdad Esfahbod <behdad@gnome.org>
Bug 503071 Application direction changes to right to left even if
theres no translation
* configure.in: Bump glib requirement.
* gtk/gtkaccellabel.c
(_gtk_accel_label_class_get_accelerator_label):
* gtk/gtkactiongroup.c (dgettext_swapped):
* gtk/gtkbuilder.c (gtk_builder_class_init):
* gtk/gtkbuilderparser.c (_dpgettext),
(_gtk_builder_parser_translate):
* gtk/gtkfilechooserdefault.c (list_size_data_func):
* gtk/gtkimmulticontext.c (gtk_im_multicontext_append_menuitems):
* gtk/gtkintl.h:
* gtk/gtkmain.c (setlocale_initialization),
(do_pre_parse_initialization), (gettext_initialization):
* gtk/gtkstock.c (gtk_stock_lookup), (sgettext_swapped):
Use g_dgettext() and g_dngettext().
2008-06-11 Matthias Clasen <mclasen@redhat.com> 2008-06-11 Matthias Clasen <mclasen@redhat.com>
* docs/RELEASE-HOWTO: Updates * docs/RELEASE-HOWTO: Updates

View File

@ -31,7 +31,7 @@ m4_define([gtk_api_version], [2.0])
m4_define([gtk_binary_version], [2.10.0]) m4_define([gtk_binary_version], [2.10.0])
# required versions of other packages # required versions of other packages
m4_define([glib_required_version], [2.15.0]) m4_define([glib_required_version], [2.17.1])
m4_define([pango_required_version], [1.20]) m4_define([pango_required_version], [1.20])
m4_define([atk_required_version], [1.13.0]) m4_define([atk_required_version], [1.13.0])
m4_define([cairo_required_version], [1.6]) m4_define([cairo_required_version], [1.6])

View File

@ -750,7 +750,7 @@ _gtk_accel_label_class_get_accelerator_label (GtkAccelLabelClass *klass,
strcpy (msg, "keyboard label|"); strcpy (msg, "keyboard label|");
g_strlcat (msg, tmp, 128); g_strlcat (msg, tmp, 128);
str = dgettext (GETTEXT_PACKAGE, msg); str = _(msg);
if (str == msg) if (str == msg)
{ {
g_string_append (gstring, tmp); g_string_append (gstring, tmp);

View File

@ -1278,9 +1278,9 @@ static gchar *
dgettext_swapped (const gchar *msgid, dgettext_swapped (const gchar *msgid,
const gchar *domainname) const gchar *domainname)
{ {
/* Pass through dgettext if and only if msgid is nonempty. */ /* Pass through g_dgettext if and only if msgid is nonempty. */
if (msgid && *msgid) if (msgid && *msgid)
return dgettext (domainname, msgid); return (gchar*) g_dgettext (domainname, msgid);
else else
return (gchar*) msgid; return (gchar*) msgid;
} }
@ -1288,9 +1288,9 @@ dgettext_swapped (const gchar *msgid,
/** /**
* gtk_action_group_set_translation_domain: * gtk_action_group_set_translation_domain:
* @action_group: a #GtkActionGroup * @action_group: a #GtkActionGroup
* @domain: the translation domain to use for dgettext() calls * @domain: the translation domain to use for g_dgettext() calls
* *
* Sets the translation domain and uses dgettext() for translating the * Sets the translation domain and uses g_dgettext() for translating the
* @label and @tooltip of #GtkActionEntry<!-- -->s added by * @label and @tooltip of #GtkActionEntry<!-- -->s added by
* gtk_action_group_add_actions(). * gtk_action_group_add_actions().
* *

View File

@ -86,7 +86,7 @@ gtk_builder_class_init (GtkBuilderClass *klass)
* The translation domain used when translating property values that * The translation domain used when translating property values that
* have been marked as translatable in interface descriptions. * have been marked as translatable in interface descriptions.
* If the translation domain is %NULL, #GtkBuilder uses gettext(), * If the translation domain is %NULL, #GtkBuilder uses gettext(),
* otherwise dgettext(). * otherwise g_dgettext().
* *
* Since: 2.12 * Since: 2.12
*/ */

View File

@ -827,9 +827,9 @@ start_element (GMarkupParseContext *context,
* GNU gettext uses '\004' to separate context and msgid in .mo files. * GNU gettext uses '\004' to separate context and msgid in .mo files.
*/ */
static const char * static const char *
dpgettext (const char *domain, _dpgettext (const char *domain,
const char *msgctxt, const char *msgctxt,
const char *msgid) const char *msgid)
{ {
size_t msgctxt_len = strlen (msgctxt) + 1; size_t msgctxt_len = strlen (msgctxt) + 1;
size_t msgid_len = strlen (msgid) + 1; size_t msgid_len = strlen (msgid) + 1;
@ -842,13 +842,13 @@ dpgettext (const char *domain,
msg_ctxt_id[msgctxt_len - 1] = '\004'; msg_ctxt_id[msgctxt_len - 1] = '\004';
memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len); memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
translation = dgettext (domain, msg_ctxt_id); translation = g_dgettext (domain, msg_ctxt_id);
if (translation == msg_ctxt_id) if (translation == msg_ctxt_id)
{ {
/* try the old way of doing message contexts, too */ /* try the old way of doing message contexts, too */
msg_ctxt_id[msgctxt_len - 1] = '|'; msg_ctxt_id[msgctxt_len - 1] = '|';
translation = dgettext (domain, msg_ctxt_id); translation = g_dgettext (domain, msg_ctxt_id);
if (translation == msg_ctxt_id) if (translation == msg_ctxt_id)
return msgid; return msgid;
@ -865,9 +865,9 @@ _gtk_builder_parser_translate (const gchar *domain,
const char *s; const char *s;
if (context) if (context)
s = dpgettext (domain, context, text); s = _dpgettext (domain, context, text);
else else
s = dgettext (domain, text); s = g_dgettext (domain, text);
return g_strdup (s); return g_strdup (s);
} }

View File

@ -10817,7 +10817,7 @@ list_size_data_func (GtkTreeViewColumn *tree_column,
size = gtk_file_info_get_size (info); size = gtk_file_info_get_size (info);
#if 0 #if 0
if (size < (gint64)1024) if (size < (gint64)1024)
str = g_strdup_printf (ngettext ("%d byte", "%d bytes", (gint)size), (gint)size); str = g_strdup_printf (g_dngettext (GETTEXT_DOMAIN, "%d byte", "%d bytes", (gint)size), (gint)size);
else if (size < (gint64)1024*1024) else if (size < (gint64)1024*1024)
str = g_strdup_printf (_("%.1f KB"), size / (1024.)); str = g_strdup_printf (_("%.1f KB"), size / (1024.));
else if (size < (gint64)1024*1024*1024) else if (size < (gint64)1024*1024*1024)

View File

@ -590,7 +590,7 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET #ifdef HAVE_BIND_TEXTDOMAIN_CODESET
bind_textdomain_codeset (contexts[i]->domain, "UTF-8"); bind_textdomain_codeset (contexts[i]->domain, "UTF-8");
#endif #endif
translated_name = dgettext (contexts[i]->domain, contexts[i]->context_name); translated_name = g_dgettext (contexts[i]->domain, contexts[i]->context_name);
} }
else else
{ {

View File

@ -4,7 +4,7 @@
#include <glib/gi18n-lib.h> #include <glib/gi18n-lib.h>
#ifdef ENABLE_NLS #ifdef ENABLE_NLS
#define P_(String) dgettext(GETTEXT_PACKAGE "-properties",String) #define P_(String) g_dgettext(GETTEXT_PACKAGE "-properties",String)
#else #else
#define P_(String) (String) #define P_(String) (String)
#endif #endif

View File

@ -527,22 +527,13 @@ enum_locale_proc (LPTSTR locale)
#endif #endif
static void static void
do_pre_parse_initialization (int *argc, setlocale_initialization (void)
char ***argv)
{ {
const gchar *env_string; static gboolean initialized = FALSE;
#if 0
g_set_error_handler (gtk_error);
g_set_warning_handler (gtk_warning);
g_set_message_handler (gtk_message);
g_set_print_handler (gtk_print);
#endif
if (pre_initialized) if (initialized)
return; return;
initialized = TRUE;
pre_initialized = TRUE;
if (do_setlocale) if (do_setlocale)
{ {
@ -607,6 +598,25 @@ do_pre_parse_initialization (int *argc,
g_warning ("Locale not supported by C library.\n\tUsing the fallback 'C' locale."); g_warning ("Locale not supported by C library.\n\tUsing the fallback 'C' locale.");
#endif #endif
} }
}
static void
do_pre_parse_initialization (int *argc,
char ***argv)
{
const gchar *env_string;
#if 0
g_set_error_handler (gtk_error);
g_set_warning_handler (gtk_warning);
g_set_message_handler (gtk_message);
g_set_print_handler (gtk_print);
#endif
if (pre_initialized)
return;
pre_initialized = TRUE;
gdk_pre_parse_libgtk_only (); gdk_pre_parse_libgtk_only ();
gdk_event_handler_set ((GdkEventFunc)gtk_main_do_event, NULL, NULL); gdk_event_handler_set ((GdkEventFunc)gtk_main_do_event, NULL, NULL);
@ -630,6 +640,8 @@ do_pre_parse_initialization (int *argc,
static void static void
gettext_initialization (void) gettext_initialization (void)
{ {
setlocale_initialization ();
#ifdef ENABLE_NLS #ifdef ENABLE_NLS
bindtextdomain (GETTEXT_PACKAGE, GTK_LOCALEDIR); bindtextdomain (GETTEXT_PACKAGE, GTK_LOCALEDIR);
bindtextdomain (GETTEXT_PACKAGE "-properties", GTK_LOCALEDIR); bindtextdomain (GETTEXT_PACKAGE "-properties", GTK_LOCALEDIR);

View File

@ -176,7 +176,7 @@ gtk_stock_lookup (const gchar *stock_id,
if (translate != NULL && translate->func != NULL) if (translate != NULL && translate->func != NULL)
item->label = (* translate->func) (item->label, translate->data); item->label = (* translate->func) (item->label, translate->data);
else else
item->label = dgettext (item->translation_domain, item->label); item->label = g_dgettext (item->translation_domain, item->label);
} }
} }
@ -417,7 +417,7 @@ static const GtkStockItem builtin_items [] =
* a stock item. * a stock item.
* *
* If no function is registered for a translation domain, * If no function is registered for a translation domain,
* dgettext() is used. * g_dgettext() is used.
* *
* Since: 2.8 * Since: 2.8
* *
@ -457,7 +457,7 @@ sgettext_swapped (const gchar *msgid,
{ {
gchar *domainname = data; gchar *domainname = data;
return (gchar *)g_strip_context (msgid, dgettext (domainname, msgid)); return (gchar *)g_strip_context (msgid, g_dgettext (domainname, msgid));
} }