gdm r6113 - in trunk: . gui/simple-greeter



Author: halfline
Date: Sun Apr  6 03:20:12 2008
New Revision: 6113
URL: http://svn.gnome.org/viewvc/gdm?rev=6113&view=rev

Log:
2008-04-05 Ray Strode <rstrode redhat com>

	* gui/simple-greeter/gdm-languages.c
	(is_fallback_language), (get_language),
	(get_translated_language):
	Fudge in language name "Unspecified" for
	"C" and "POSIX" locales.


Modified:
   trunk/ChangeLog
   trunk/gui/simple-greeter/gdm-languages.c

Modified: trunk/gui/simple-greeter/gdm-languages.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-languages.c	(original)
+++ trunk/gui/simple-greeter/gdm-languages.c	Sun Apr  6 03:20:12 2008
@@ -465,6 +465,21 @@
         collect_locales_from_directory ();
 }
 
+static gboolean
+is_fallback_language (const char *code)
+{
+        const char *fallback_language_names[] = { "C", "POSIX", NULL };
+        int i;
+
+        for (i = 0; fallback_language_names[i] != NULL; i++) {
+                if (strcmp (code, fallback_language_names[i]) == 0) {
+                        return TRUE;
+                }
+        }
+
+        return FALSE;
+}
+
 static const char *
 get_language (const char *code)
 {
@@ -473,6 +488,10 @@
 
         g_assert (code != NULL);
 
+        if (is_fallback_language (code)) {
+                return "Unspecified";
+        }
+
         len = strlen (code);
         if (len != 2 && len != 3) {
                 return NULL;
@@ -520,8 +539,12 @@
                         setlocale (LC_MESSAGES, locale);
                 }
 
-                translated_name = dgettext ("iso_639", language);
-                name = get_first_item_in_semicolon_list (translated_name);
+                if (is_fallback_language (code)) {
+                        name = _("Unspecified");
+                } else {
+                        translated_name = dgettext ("iso_639", language);
+                        name = get_first_item_in_semicolon_list (translated_name);
+                }
 
                 if (locale != NULL) {
                         setlocale (LC_MESSAGES, old_locale);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]