region: Use ibus_get_language_name() to get a language from its code

ibus_engine_desc_get_language() may return an empty string or language
codes that gdm_get_language_from_name() doesn't understand. Use
ibus_get_language_name() instead to handle such cases properly.

This also allows us to use the same method in gnome-shell to get
consistent display strings.

https://bugzilla.gnome.org/show_bug.cgi?id=682851
This commit is contained in:
Daiki Ueno 2012-08-28 14:04:34 +09:00 committed by Rui Matos
parent 830c1aa5a2
commit 8af69625d3

View file

@ -241,18 +241,15 @@ engine_get_display_name (IBusEngineDesc *engine_desc)
{
const gchar *name;
const gchar *language_code;
gchar *language;
const gchar *language;
gchar *display_name;
name = ibus_engine_desc_get_longname (engine_desc);
language_code = ibus_engine_desc_get_language (engine_desc);
language = gdm_get_language_from_name (language_code, NULL);
language = ibus_get_language_name (language_code);
display_name = g_strdup_printf ("%s (%s)", language, name);
g_free (language);
return display_name;
}