--- liblangtag/lt-tag.c +++ liblangtag/lt-tag.c @@ -2009,11 +2009,23 @@ if (ctag->region) lt_string_append_printf(string, "_%s", lt_region_get_tag(ctag->region)); - if (ctag->script) { + if (ctag->script) mod = lt_script_convert_to_modifier(ctag->script); - if (mod) - lt_string_append_printf(string, "@%s", mod); + if (!mod && ctag->variants) + { + lt_list_t* l; + for (l = ctag->variants; l != NULL; l = lt_list_next(l)) { + lt_variant_t *variant = lt_list_value(l); + const char *s = lt_variant_get_tag(variant); + if (lt_strcmp0(s, "valencia") == 0) { + mod = "valencia"; + break; + } + } } + if (mod) + lt_string_append_printf(string, "@%s", mod); + lt_tag_unref(ctag); bail: