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")