예제 #1
0
static void
ensure_iso_codes_initialised (void)
{
    static gboolean initialised = FALSE;

    if (initialised == TRUE)
    {
        return;
    }
    initialised = TRUE;

#if defined (ENABLE_NLS) && defined (HAVE_ISO_CODES)
    bindtextdomain (ISO_639_DOMAIN, ISOCODESLOCALEDIR);
    bind_textdomain_codeset (ISO_639_DOMAIN, "UTF-8");

    bindtextdomain(ISO_3166_DOMAIN, ISOCODESLOCALEDIR);
    bind_textdomain_codeset (ISO_3166_DOMAIN, "UTF-8");
#endif

    iso_639_table = g_hash_table_new_full (g_str_hash, g_str_equal,
                                           (GDestroyNotify) xmlFree,
                                           (GDestroyNotify) xmlFree);

    iso_3166_table = g_hash_table_new_full (g_str_hash, g_str_equal,
                                            (GDestroyNotify) g_free,
                                            (GDestroyNotify) xmlFree);

#ifdef HAVE_ISO_CODES
    load_iso_entries (639, (GFunc) read_iso_639_entry, iso_639_table);
    load_iso_entries (3166, (GFunc) read_iso_3166_entry, iso_3166_table);
#endif
}
예제 #2
0
static void
gtr_language_lazy_init (void)
{
  gchar *filename;

  if (initialized)
    return;

  plurals_file = g_key_file_new ();
  filename = gtr_dirs_get_ui_file (GTR_PLURAL_FORMS_FILENAME);
  if (!g_key_file_load_from_file (plurals_file, filename, G_KEY_FILE_NONE, NULL))
    {
      g_warning ("Bad plural form file: '%s'", filename);
      g_free (filename);
      return;
    }

  g_free (filename);

  bind_iso_domains ();
  load_iso_entries (639, (GFunc) read_iso_639_entry, &languages);
  languages = g_slist_reverse (languages);

  /* free the file, not needed anymore */
  g_key_file_free (plurals_file);

  initialized = TRUE;
}
static GHashTable *
create_iso_3166_table (void)
{
	GHashTable *table;

	bind_iso_domains ();
	table = g_hash_table_new_full (g_str_hash, g_str_equal,
				       (GDestroyNotify) g_free,
				       (GDestroyNotify) xmlFree);
	
	load_iso_entries (3166, (GFunc) read_iso_3166_entry, table);

	return table;
}