while (*attr_names && *attr_values)
{ if (g_str_equal (*attr_names, "iso_639_1_code"))
{ if (**attr_values)
{ if (strlen (*attr_values) != 2) return;
ccode = *attr_values;
}
} elseif (g_str_equal (*attr_names, "iso_639_2B_code"))
{ if (**attr_values)
{ if (strlen (*attr_values) != 3) return;
ccode_longB = *attr_values;
}
} elseif (g_str_equal (*attr_names, "iso_639_2T_code"))
{ if (**attr_values)
{ if (strlen (*attr_values) != 3) return;
ccode_longT = *attr_values;
}
} elseif (g_str_equal (*attr_names, "id"))
{ if (**attr_values)
{ if (strlen (*attr_values) != 2 &&
strlen (*attr_values) != 3) return;
ccode_id = *attr_values;
}
} elseif (g_str_equal (*attr_names, "name"))
{
lang_name = *attr_values;
}
++attr_names;
++attr_values;
}
if (lang_name == NULL) return;
display_name = get_display_name (lang_name);
/* Fix up some egregious names */ for (i = 0; i < G_N_ELEMENTS (long_names); i++)
{ if (g_str_has_prefix (display_name, long_names[i]))
display_name[strlen (long_names[i])] = '\0';
}
if (ccode != NULL)
g_hash_table_insert (language_map,
pango_language_from_string (ccode),
g_strdup (display_name));
if (ccode_longB != NULL)
g_hash_table_insert (language_map,
pango_language_from_string (ccode_longB),
g_strdup (display_name));
if (ccode_longT != NULL)
g_hash_table_insert (language_map,
pango_language_from_string (ccode_longT),
g_strdup (display_name));
if (ccode_id != NULL)
g_hash_table_insert (language_map,
pango_language_from_string (ccode_id),
g_strdup (display_name));
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.