summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Lebl <jirka@5z.com>2002-07-11 20:22:07 +0000
committerGeorge Lebl <jirka@src.gnome.org>2002-07-11 20:22:07 +0000
commit7e365f6e5dc6ac714a58f177e100c643672ee2ed (patch)
tree05c525a3a1d63441dfea494d91583b61717d41a1
parenta1993da5a126b8ba5289a93bc6d46b3d3c5ae77f (diff)
downloadgdm-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--ChangeLog6
-rw-r--r--daemon/slave.c16
-rw-r--r--gui/gdmlanguages.c10
-rw-r--r--gui/gdmlogin.c80
-rw-r--r--gui/greeter/Makefile.am3
-rw-r--r--gui/greeter/greeter_action_language.c80
-rw-r--r--gui/greeter/greeter_lang_list.c44
7 files changed, 99 insertions, 140 deletions
diff --git a/ChangeLog b/ChangeLog
index 7f041621..d13afdd6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 }
-};