From 1fcfc33d5c2702aae606e78cf1a8029819b2afc1 Mon Sep 17 00:00:00 2001 From: Virgil Date: Thu, 2 Apr 2026 09:33:21 +0000 Subject: [PATCH] fix(i18n): align plural fallback with base tags Co-Authored-By: Virgil --- language.go | 3 +-- language_test.go | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/language.go b/language.go index 2ba98b2..cf636a0 100644 --- a/language.go +++ b/language.go @@ -6,8 +6,7 @@ func GetPluralRule(lang string) PluralRule { if rule, ok := pluralRules[lang]; ok { return rule } - if len(lang) > 2 { - base := lang[:2] + if base := baseLanguageTag(lang); base != "" { if rule, ok := pluralRules[base]; ok { return rule } diff --git a/language_test.go b/language_test.go index fe4537c..bc5f955 100644 --- a/language_test.go +++ b/language_test.go @@ -85,6 +85,11 @@ func TestGetPluralRule(t *testing.T) { t.Error("English-US rule(1) should be PluralOne") } + rule = GetPluralRule("fr-Latn-CA") + if rule(0) != PluralOne { + t.Error("French multi-part tag rule(0) should be PluralOne") + } + rule = GetPluralRule("cy-GB") if rule(2) != PluralTwo { t.Error("Welsh-GB rule(2) should be PluralTwo")