mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:17:44 +00:00
LibUnicode: Resolve the most likely territory alias when there are many
This commit is contained in:
parent
1fbc5dba08
commit
fd0011989a
2 changed files with 10 additions and 7 deletions
|
@ -394,6 +394,14 @@ TEST_CASE(canonicalize_unicode_locale_id)
|
||||||
test("EN-SU"sv, "en-RU"sv);
|
test("EN-SU"sv, "en-RU"sv);
|
||||||
test("en-810"sv, "en-RU"sv);
|
test("en-810"sv, "en-RU"sv);
|
||||||
test("EN-810"sv, "en-RU"sv);
|
test("EN-810"sv, "en-RU"sv);
|
||||||
|
test("hy-su"sv, "hy-AM"sv);
|
||||||
|
test("HY-SU"sv, "hy-AM"sv);
|
||||||
|
test("hy-810"sv, "hy-AM"sv);
|
||||||
|
test("HY-810"sv, "hy-AM"sv);
|
||||||
|
test("und-Armn-su"sv, "und-Armn-AM"sv);
|
||||||
|
test("UND-ARMN-SU"sv, "und-Armn-AM"sv);
|
||||||
|
test("und-Armn-810"sv, "und-Armn-AM"sv);
|
||||||
|
test("UND-ARMN-810"sv, "und-Armn-AM"sv);
|
||||||
|
|
||||||
// Script subtag aliases.
|
// Script subtag aliases.
|
||||||
test("en-qaai"sv, "en-Zinh"sv);
|
test("en-qaai"sv, "en-Zinh"sv);
|
||||||
|
|
|
@ -591,13 +591,8 @@ static void transform_unicode_locale_id_to_canonical_syntax(LocaleID& locale_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (language_id.region.has_value()) {
|
if (language_id.region.has_value()) {
|
||||||
if (auto alias = resolve_territory_alias(*language_id.region); alias.has_value()) {
|
if (auto alias = resolve_territory_alias(*language_id.region); alias.has_value())
|
||||||
auto aliases = alias->split_view(' ');
|
language_id.region = resolve_most_likely_territory(language_id, *alias);
|
||||||
|
|
||||||
// FIXME: Territory subtag aliases should also consult the CLDR likelySubtags.json file.
|
|
||||||
// For now, implement the spec's recommendation of using just the first alias.
|
|
||||||
language_id.region = aliases[0].to_string();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
quick_sort(language_id.variants);
|
quick_sort(language_id.variants);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue