diff options
author | George Lebl <jirka@5z.com> | 2002-07-11 20:22:07 +0000 |
---|---|---|
committer | George Lebl <jirka@src.gnome.org> | 2002-07-11 20:22:07 +0000 |
commit | 7e365f6e5dc6ac714a58f177e100c643672ee2ed (patch) | |
tree | 05c525a3a1d63441dfea494d91583b61717d41a1 | |
parent | a1993da5a126b8ba5289a93bc6d46b3d3c5ae77f (diff) | |
download | gdm-7e365f6e5dc6ac714a58f177e100c643672ee2ed.tar.gz |
Added Macedonian fixes #84290, added Malay to the language alias list,
Thu Jul 11 13:33:41 2002 George Lebl <jirka@5z.com>
* gui/gdmlanguages.c, config/locale.alias: Added Macedonian
fixes #84290, added Malay to the language alias list,
added some more untranslated names, added Vietnamese
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | daemon/slave.c | 16 | ||||
-rw-r--r-- | gui/gdmlanguages.c | 10 | ||||
-rw-r--r-- | gui/gdmlogin.c | 80 | ||||
-rw-r--r-- | gui/greeter/Makefile.am | 3 | ||||
-rw-r--r-- | gui/greeter/greeter_action_language.c | 80 | ||||
-rw-r--r-- | gui/greeter/greeter_lang_list.c | 44 |
7 files changed, 99 insertions, 140 deletions
@@ -1,3 +1,9 @@ +Thu Jul 11 13:33:41 2002 George Lebl <jirka@5z.com> + + * gui/gdmlanguages.c, config/locale.alias: Added Macedonian + fixes #84290, added Malay to the language alias list, + added some more untranslated names, added Vietnamese + Thu Jul 11 13:31:01 2002 George Lebl <jirka@5z.com> * gui/greeter/greeter_action_language.c: Fix saving of languages, diff --git a/daemon/slave.c b/daemon/slave.c index 2d12a9e0..3801ae56 100644 --- a/daemon/slave.c +++ b/daemon/slave.c @@ -2141,8 +2141,11 @@ session_child_run (struct passwd *pwent, gnome_setenv ("LANG", language, TRUE); gnome_setenv ("GDM_LANG", language, TRUE); } else { - /* setusercontext sets up user languages */ - gnome_setenv ("GDM_LANG", g_getenv ("LANG"), TRUE); + if (g_getenv ("LANG") == NULL) + gnome_unsetenv ("GDM_LANG"); + else + /* setusercontext sets up user languages */ + gnome_setenv ("GDM_LANG", g_getenv ("LANG"), TRUE); } #else if (setuid (pwent->pw_uid) < 0) @@ -2171,7 +2174,11 @@ session_child_run (struct passwd *pwent, if (usrcfgok && savelang && home_dir_ok) { gchar *cfgstr = g_strconcat ("=", home_dir, "/.gnome/gdm=/session/lang", NULL); - gnome_config_set_string (cfgstr, language); + /* we chose the system default language so wipe the lang key */ + if (def_language) + gnome_config_clean_key (cfgstr); + else + gnome_config_set_string (cfgstr, language); need_config_sync = TRUE; g_free (cfgstr); } @@ -2494,8 +2501,7 @@ gdm_slave_session_start (void) g_free (language); - if (lang != NULL && - lang[0] != '\0') + if ( ! ve_string_empty (lang)) language = g_strdup (lang); else language = g_strdup (GdmDefaultLocale); diff --git a/gui/gdmlanguages.c b/gui/gdmlanguages.c index dcee151d..5055babf 100644 --- a/gui/gdmlanguages.c +++ b/gui/gdmlanguages.c @@ -45,7 +45,7 @@ static Language languages [] = { /*Note translate the A-M to the A-M you used in the group label */ { N_("A-M|Azerbaijani"), "az_AZ", NULL, 0 }, /*Note translate the A-M to the A-M you used in the group label */ - { N_("A-M|Basque"), "eu_ES", NULL, 0 }, + { N_("A-M|Basque"), "eu_ES", "Euskara", 0 }, /*Note translate the A-M to the A-M you used in the group label */ { N_("A-M|Bulgarian"), "bg_BG", NULL, 0 }, /*Note translate the A-M to the A-M you used in the group label */ @@ -84,7 +84,7 @@ static Language languages [] = { { N_("A-M|Hebrew"), "he_IL", "עברית", 0 }, { N_("A-M|Hebrew"), "iw_IL", "עברית", 0 }, /*Note translate the A-M to the A-M you used in the group label */ - { N_("A-M|Hungarian"), "hu_HU", NULL, 0 }, + { N_("A-M|Hungarian"), "hu_HU", "Magyar", 0 }, /*Note translate the A-M to the A-M you used in the group label */ { N_("A-M|Icelandic"), "is_IS", NULL, 0 }, /*Note translate the A-M to the A-M you used in the group label */ @@ -98,6 +98,8 @@ static Language languages [] = { /*Note translate the A-M to the A-M you used in the group label */ { N_("A-M|Lithuanian"), "lt_LT", "Lietuvių", 0 }, /*Note translate the A-M to the A-M you used in the group label */ + { N_("A-M|Macedonian"), "mk_MK", NULL, 0 }, + /*Note translate the A-M to the A-M you used in the group label */ { N_("A-M|Malay"), "ms_MY", "Bahasa Melayu", 0 }, /*Note translate the N-Z to the N-Z you used in the group label */ { N_("N-Z|Norwegian (bokmal)"), "no_NO", NULL, 0 }, @@ -126,7 +128,9 @@ static Language languages [] = { /*Note translate the N-Z to the N-Z you used in the group label */ { N_("N-Z|Ukrainian"), "uk_UA", NULL, 0 }, /*Note translate the N-Z to the N-Z you used in the group label */ - { N_("N-Z|Walloon"), "wa_BE", NULL, 0 }, + { N_("N-Z|Vietnamese"), "vi_VN", NULL, 0 }, + /*Note translate the N-Z to the N-Z you used in the group label */ + { N_("N-Z|Walloon"), "wa_BE", "Walon", 0 }, /* This is the POSIX/C locale for english, should really be in Other */ { N_("Other|POSIX/C English"), "C", NULL, 0 }, { NULL, NULL } diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c index 43d56d27..ad391f93 100644 --- a/gui/gdmlogin.c +++ b/gui/gdmlogin.c @@ -74,6 +74,7 @@ const char *session_titles[] = { #define LAST_SESSION "Last" #define LAST_LANGUAGE "Last" +#define DEFAULT_LANGUAGE "Default" #define SESSION_NAME "SessionName" static gboolean GdmAllowRoot; @@ -1035,55 +1036,40 @@ gdm_login_language_lookup (const gchar* savedlang) if (langmenu != NULL) gtk_widget_set_sensitive (GTK_WIDGET (langmenu), FALSE); - /* Previously saved language not found in ~user/.gnome/gdm */ - if (ve_string_empty (savedlang)) { - /* If "Last" is chosen use Default, which is the current language, - * or the GdmDefaultLocale if that's not set or is "C" - * else use current selection */ - g_free (language); - if (curlang == NULL || - strcmp (curlang, LAST_LANGUAGE) == 0) { - const char *lang = g_getenv ("LANG"); - if (lang == NULL || - lang[0] == '\0' || - g_ascii_strcasecmp (lang, "C") == 0) { - language = g_strdup (GdmDefaultLocale); - } else { - language = g_strdup (lang); - } - } else { - language = g_strdup (curlang); - } - - if (ve_string_empty (language)) { - g_free (language); - language = g_strdup ("C"); - } - - savelang = TRUE; - return; - } + if (savedlang == NULL) + savedlang = ""; /* If a different language is selected */ if (curlang != NULL && strcmp (curlang, LAST_LANGUAGE) != 0) { g_free (language); - language = g_strdup (curlang); + if (strcmp (curlang, DEFAULT_LANGUAGE) == 0) + language = g_strdup (""); + else + language = g_strdup (curlang); /* User's saved language is not the chosen one */ if (strcmp (savedlang, language) != 0) { gchar *msg; char *curname, *savedname; - curname = gdm_lang_name (curlang, - FALSE /* never_encoding */, - TRUE /* no_group */, - TRUE /* untranslated */, - TRUE /* markup */); - savedname = gdm_lang_name (savedlang, - FALSE /* never_encoding */, - TRUE /* no_group */, - TRUE /* untranslated */, - TRUE /* markup */); + if (strcmp (curlang, DEFAULT_LANGUAGE) == 0) { + curname = g_strdup (_("System default")); + } else { + curname = gdm_lang_name (curlang, + FALSE /* never_encoding */, + TRUE /* no_group */, + TRUE /* untranslated */, + TRUE /* markup */); + } + if (strcmp (savedlang, "") == 0) { + savedname = g_strdup (_("System default")); + } else { + savedname = gdm_lang_name (savedlang, + FALSE /* never_encoding */, + TRUE /* no_group */, + TRUE /* untranslated */, + TRUE /* markup */); + } msg = g_strdup_printf (_("You have chosen %s for this session, but your default setting is " "%s.\nDo you wish to make %s the default for future sessions?"), @@ -1623,7 +1609,7 @@ gdm_login_language_menu_new (void) curlang = LAST_LANGUAGE; - item = gtk_radio_menu_item_new_with_label (NULL, _(LAST_LANGUAGE)); + item = gtk_radio_menu_item_new_with_label (NULL, _("Last")); languages = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (item)); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_signal_connect (G_OBJECT (item), "activate", @@ -1638,6 +1624,20 @@ gdm_login_language_menu_new (void) "last time you logged in"), NULL); + item = gtk_radio_menu_item_new_with_label (languages, _("System default")); + languages = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (item)); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + g_signal_connect (G_OBJECT (item), "activate", + G_CALLBACK (gdm_login_language_handler), + NULL); + gtk_widget_show (GTK_WIDGET (item)); + g_object_set_data (G_OBJECT (item), + "Language", + DEFAULT_LANGUAGE); + gtk_tooltips_set_tip (tooltips, GTK_WIDGET (item), + _("Log in using the default system language"), + NULL); + item = gtk_menu_item_new(); gtk_widget_set_sensitive (item, FALSE); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); diff --git a/gui/greeter/Makefile.am b/gui/greeter/Makefile.am index a7baea99..30acfce8 100644 --- a/gui/greeter/Makefile.am +++ b/gui/greeter/Makefile.am @@ -53,6 +53,3 @@ gdmgreeter_LDADD = \ $(XINERAMA_LIBS) \ $(X_EXTRA_LIBS) \ $(GREETER_LIBS) - -EXTRA_DIST = \ - greeter_lang_list.c diff --git a/gui/greeter/greeter_action_language.c b/gui/greeter/greeter_action_language.c index cc59768f..51d2b4ef 100644 --- a/gui/greeter/greeter_action_language.c +++ b/gui/greeter/greeter_action_language.c @@ -11,6 +11,7 @@ #include "greeter_action_language.h" #define LAST_LANGUAGE "Last" +#define DEFAULT_LANGUAGE "Default" enum { LOCALE_COLUMN, @@ -29,6 +30,7 @@ static void greeter_langauge_initialize_model (void) { GList *list, *li; + GtkTreeIter iter; list = gdm_lang_read_locale_file (GdmLocaleFile); @@ -37,12 +39,25 @@ greeter_langauge_initialize_model (void) G_TYPE_STRING, G_TYPE_STRING); + gtk_list_store_append (lang_model, &iter); + gtk_list_store_set (lang_model, &iter, + TRANSLATED_NAME_COLUMN, _("Last"), + UNTRANSLATED_NAME_COLUMN, NULL, + LOCALE_COLUMN, LAST_LANGUAGE, + -1); + + gtk_list_store_append (lang_model, &iter); + gtk_list_store_set (lang_model, &iter, + TRANSLATED_NAME_COLUMN, _("System default"), + UNTRANSLATED_NAME_COLUMN, NULL, + LOCALE_COLUMN, DEFAULT_LANGUAGE, + -1); + for (li = list; li != NULL; li = li->next) { char *lang = li->data; char *name; char *untranslated; - GtkTreeIter iter; li->data = NULL; @@ -78,14 +93,13 @@ greeter_language_init (void) greeter_langauge_initialize_model (); - initted = TRUE; } gboolean greeter_language_get_save_language (void) { - return FALSE; + return savelang; } gchar * @@ -102,46 +116,16 @@ greeter_language_get_language (const char *old_language) /* Don't save language unless told otherwise */ savelang = FALSE; - /* Previously saved language not found in ~user/.gnome/gdm */ - if (old_language == NULL || old_language[0] == '\000') - { - /* If "Last" is chosen use Default, which is the current language, - * or the GdmDefaultLocale if that's not set or is "C" - * else use current selection */ - - if (current_language == NULL || - strcmp (current_language, LAST_LANGUAGE) == 0) - { - const char *lang = g_getenv ("LANG"); - if (lang == NULL || lang[0] == '\000' || - g_ascii_strcasecmp (lang, "C") == 0) - { - retval = g_strdup (GdmDefaultLocale); - } - else - { - retval = g_strdup (lang); - } - } - else - { - retval = g_strdup (current_language); - } - - if (retval == NULL) - { - retval= g_strdup ("C"); - } - - savelang = TRUE; - - return retval; - } + if (old_language == NULL) + old_language = ""; /* If a different language is selected */ if (current_language != NULL && strcmp (current_language, LAST_LANGUAGE) != 0) { - retval = g_strdup (current_language); + if (strcmp (current_language, DEFAULT_LANGUAGE) == 0) + retval = g_strdup (""); + else + retval = g_strdup (current_language); /* User's saved language is not the chosen one */ if (strcmp (old_language, retval) != 0) @@ -149,16 +133,22 @@ greeter_language_get_language (const char *old_language) gchar *msg; char *current_name, *saved_name; - current_name = gdm_lang_name (current_language, + if (strcmp (current_language, DEFAULT_LANGUAGE) == 0) + current_name = g_strdup (_("System default")); + else + current_name = gdm_lang_name (current_language, + FALSE /* never_encoding */, + TRUE /* no_group */, + TRUE /* untranslated */, + TRUE /* markup */); + if (strcmp (old_language, "") == 0) + saved_name = g_strdup (_("System default")); + else + saved_name = gdm_lang_name (old_language, FALSE /* never_encoding */, TRUE /* no_group */, TRUE /* untranslated */, TRUE /* markup */); - saved_name = gdm_lang_name (old_language, - FALSE /* never_encoding */, - TRUE /* no_group */, - TRUE /* untranslated */, - TRUE /* markup */); msg = g_strdup_printf (_("You have chosen %s for this session, but your default setting is " "%s.\nDo you wish to make %s the default for future sessions?"), diff --git a/gui/greeter/greeter_lang_list.c b/gui/greeter/greeter_lang_list.c deleted file mode 100644 index 9d48c2fb..00000000 --- a/gui/greeter/greeter_lang_list.c +++ /dev/null @@ -1,44 +0,0 @@ -struct _Language { - char *name; - char *locale; - char *untranslated_name; -}; - -static Language languages [] = { - { N_("Catalan"), "ca_ES", "Català" }, - { N_("Chinese (simplified)"), "zh_CN", "中文 (简体)" }, - { N_("Chinese (traditional)"), "zh_TW", "繁體中文" }, - { N_("Croatian"), "hr_HR", "Hrvatski" }, - { N_("Czech"), "cs_CZ", "čeština"}, - { N_("Danish"), "da_DK", "dansk"}, - { N_("Dutch"), "nl_NL", "Nederlands" }, - { N_("English"), "en", "English" }, - { N_("American English"), "en_US", "American English" }, - { N_("British English"), "en_GB", "British English" }, - { N_("Estonian"), "et_EE", "Eesti"}, - { N_("Finnish"), "fi_FI", "Suomi" }, - { N_("French"), "fr_FR", "Français" }, - { N_("Galician"), "gl_ES", "Galego" }, - { N_("German"), "de_DE", "Deutsch" }, - { N_("Greek"), "el_GR", "ελληνικά" }, - { N_("Hebrew"), "iw_IL", "תירבע" }, - { N_("Hungarian"), "hu_HU" }, - { N_("Icelandic"), "is_IS" }, - { N_("Italian"), "it_IT", "Italiano" }, - { N_("Japanese"), "ja_JP", "日本語" }, - { N_("Korean"), "ko_KR", "한국어" }, - { N_("Lithuanian"), "lt_LT", "Lietuvių" }, - { N_("Norwegian (bokmal)"), "no_NO" }, - { N_("Norwegian (nynorsk)"), "nn_NO" }, - { N_("Polish"), "pl_PL", "Polski" }, - { N_("Portuguese"), "pt_PT", "Português" }, - { N_("Brazilian Portuguese"), "pt_BR", "Português do Brasil" }, - { N_("Romanian"), "ro_RO", "Română" }, - { N_("Russian"), "ru_RU", "русский" }, - { N_("Slovak"), "sk_SK", "Slovenský"}, - { N_("Slovenian"), "sl_SI", "Slovenščina" }, - { N_("Spanish"), "es_ES", "Español" }, - { N_("Swedish"), "sv_SE", "Svenska" }, - { N_("Turkish"), "tr_TR", "Türkçe" }, - { NULL, NULL } -}; |