GHashTable * cc_common_language_get_initial_regions (const gchar *lang) { GHashTable *ht; char *language; gchar **langs; gint i; ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); /* Add some common regions */ g_hash_table_insert (ht, g_strdup ("en_US.utf8"), g_strdup (_("United States"))); g_hash_table_insert (ht, g_strdup ("de_DE.utf8"), g_strdup (_("Germany"))); g_hash_table_insert (ht, g_strdup ("fr_FR.utf8"), g_strdup (_("France"))); g_hash_table_insert (ht, g_strdup ("es_ES.utf8"), g_strdup (_("Spain"))); g_hash_table_insert (ht, g_strdup ("zh_CN.utf8"), g_strdup (_("China"))); gdm_parse_language_name (lang, &language, NULL, NULL, NULL); langs = gdm_get_all_language_names (); for (i = 0; langs[i]; i++) { gchar *l, *s; gdm_parse_language_name (langs[i], &l, NULL, NULL, NULL); if (g_strcmp0 (language, l) == 0) { if (!g_hash_table_lookup (ht, langs[i])) { s = gdm_get_region_from_name (langs[i], NULL); g_hash_table_insert (ht, g_strdup (langs[i]), s); } } g_free (l); } g_strfreev (langs); g_free (language); return ht; }
static void add_available_languages (GtkListStore *store) { char **languages; int i; char *name; char *language; GtkTreeIter iter; gtk_list_store_clear (store); languages = gdm_get_all_language_names (); for (i = 0; languages[i] != NULL; i++) { if (!language_has_font (languages[i])) continue; name = gdm_normalize_language_name (languages[i]); language = gdm_get_language_from_name (name, NULL); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, LOCALE_COL, name, DISPLAY_LOCALE_COL, language, -1); g_free (name); g_free (language); } g_strfreev (languages); }
int main (int argc, char **argv) { char **langs; guint i; g_type_init (); if (argc > 1) { guint i; for (i = 1; i < argc; i++) { char *lang; lang = gdm_get_language_from_name (argv[i], NULL); g_print ("%s == %s\n", argv[i], lang); g_free (lang); } return 0; } langs = gdm_get_all_language_names (); if (langs == NULL) { g_warning ("No languages found"); return 1; } for (i = 0; langs[i] != NULL; i++) g_print ("%s == %s\n", langs[i], gdm_get_language_from_name (langs[i], NULL)); g_strfreev (langs); return 0; }
static void print_languages (void) { char **language_names; int i; language_names = gdm_get_all_language_names (); for (i = 0; language_names[i] != NULL; i++) { char *language; char *normalized_name; char *readable_language; normalized_name = gdm_normalize_language_name (language_names[i]); language = gdm_get_language_from_name (normalized_name, normalized_name); readable_language = gdm_get_language_from_name (normalized_name, NULL); g_print ("%s\t%s\t%s\t%s\n", language_names[i], normalized_name, language, readable_language); g_free (language); g_free (readable_language); g_free (normalized_name); } g_strfreev (language_names); }
guint cc_common_language_add_available_languages (GtkListStore *store, gboolean regions, GHashTable *user_langs) { AsyncLangData *data; data = g_new0 (AsyncLangData, 1); data->store = g_object_ref (store); data->user_langs = g_hash_table_ref (user_langs); data->languages = gdm_get_all_language_names (); data->regions = regions; data->position = 0; return gdk_threads_add_idle (add_one_language, data); }
static void add_available_languages (GdmLanguageChooserWidget *widget) { char **language_names; int i; language_names = gdm_get_all_language_names (); for (i = 0; language_names[i] != NULL; i++) { if (!language_has_font (language_names[i])) { g_debug ("There is insufficient font coverage to display messages in the '%s' locale", language_names[i]); continue; } gdm_language_chooser_widget_add_language (widget, language_names[i]); } g_strfreev (language_names); }
int main (int argc, char **argv) { char **langs; guint i; setlocale (LC_ALL, NULL); textdomain (GETTEXT_PACKAGE); bindtextdomain (GETTEXT_PACKAGE, "/usr/share/locale"); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); g_type_init (); if (argc > 1) { guint i; for (i = 1; i < argc; i++) { char *lang, *norm; norm = gdm_normalize_language_name (argv[i]); lang = gdm_get_language_from_name (norm, NULL); g_print ("%s (norm: %s) == %s\n", argv[i], norm, lang); g_free (norm); g_free (lang); } return 0; } langs = gdm_get_all_language_names (); if (langs == NULL) { g_warning ("No languages found"); return 1; } for (i = 0; langs[i] != NULL; i++) g_print ("%s == %s\n", langs[i], gdm_get_language_from_name (langs[i], NULL)); g_strfreev (langs); return 0; }