mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 22:17:42 +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-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.
|
||||
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 (auto alias = resolve_territory_alias(*language_id.region); alias.has_value()) {
|
||||
auto aliases = alias->split_view(' ');
|
||||
|
||||
// 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();
|
||||
}
|
||||
if (auto alias = resolve_territory_alias(*language_id.region); alias.has_value())
|
||||
language_id.region = resolve_most_likely_territory(language_id, *alias);
|
||||
}
|
||||
|
||||
quick_sort(language_id.variants);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue