summaryrefslogtreecommitdiff
path: root/src
diff options
authorGunnar Hjalmarsson <ubuntu@gunnar.cc>2011-11-29 15:42:03 +1100
committerRobert Ancell <robert.ancell@canonical.com>2011-11-29 15:42:03 +1100
commiteb8535ed41ae4ef07bbfd123708314677dce6dc2 (patch)
treee06e596030461a3a2fc3473c898b4c0bdef1f769 /src
parent52400c5d1bae8138949e2f0bff1b63c9a7f1e4b8 (diff)
Language chooser modifications:
* Save item that is selected from the language chooser also when AccountsService is in use. * Use nl_langinfo() to get language and country names for the language chooser labels. * Translate language and country names. * Handle @variants properly.
Diffstat (limited to 'src')
-rw-r--r--src/accounts.c9
-rw-r--r--src/accounts.h2
-rw-r--r--src/greeter.c2
3 files changed, 8 insertions, 5 deletions
diff --git a/src/accounts.c b/src/accounts.c
index 2504a48b..cef5136e 100644
--- a/src/accounts.c
+++ b/src/accounts.c
@@ -354,11 +354,14 @@ user_get_locale (User *user)
}
void
-user_set_locale (User *user, const gchar *locale)
+user_set_language (User *user, const gchar *language)
{
g_return_if_fail (user != NULL);
- if (!user->priv->proxy)
- save_string_to_dmrc (user->priv->name, "Desktop", "Language", locale);
+
+ if (user->priv->proxy)
+ call_method (user->priv->proxy, "SetLanguage", g_variant_new ("(s)", language), "()", NULL);
+ else
+ save_string_to_dmrc (user->priv->name, "Desktop", "Language", language);
}
void
diff --git a/src/accounts.h b/src/accounts.h
index 03165b71..8bd52479 100644
--- a/src/accounts.h
+++ b/src/accounts.h
@@ -60,7 +60,7 @@ void user_set_xsession (User *user, const gchar *session);
const gchar *user_get_locale (User *user);
-void user_set_locale (User *user, const gchar *language);
+void user_set_language (User *user, const gchar *language);
G_END_DECLS
diff --git a/src/greeter.c b/src/greeter.c
index 0fb18ab8..68e3c567 100644
--- a/src/greeter.c
+++ b/src/greeter.c
@@ -442,7 +442,7 @@ handle_set_language (Greeter *greeter, const gchar *language)
g_debug ("Greeter sets language %s", language);
user = pam_session_get_user (greeter->priv->authentication);
- user_set_locale (user, language);
+ user_set_language (user, language);
}
static guint32