feat(i18n): add plural category alias
All checks were successful
Security Scan / security (push) Successful in 13s
Test / test (push) Successful in 2m29s

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-02 11:44:56 +00:00
parent a69868f18b
commit 8f6be63def
2 changed files with 31 additions and 0 deletions

View file

@ -164,6 +164,15 @@ func CurrentRTL() bool {
//
// cat := i18n.CurrentPluralCategory(2)
func CurrentPluralCategory(n int) PluralCategory {
return PluralCategoryOf(n)
}
// PluralCategoryOf returns the plural category for the current default language.
//
// Example:
//
// cat := i18n.PluralCategoryOf(2)
func PluralCategoryOf(n int) PluralCategory {
return defaultServiceValue(PluralOther, func(svc *Service) PluralCategory { return svc.PluralCategory(n) })
}

View file

@ -284,6 +284,28 @@ func TestCurrentPluralCategory_Good(t *testing.T) {
assert.Equal(t, PluralOther, CurrentPluralCategory(2))
}
// --- Package-level PluralCategoryOf ---
func TestPluralCategoryOf_Good(t *testing.T) {
prev := Default()
t.Cleanup(func() {
SetDefault(prev)
})
svc, err := New()
require.NoError(t, err)
SetDefault(svc)
assert.Equal(t, PluralOther, PluralCategoryOf(0))
assert.Equal(t, PluralOne, PluralCategoryOf(1))
assert.Equal(t, PluralOther, PluralCategoryOf(2))
require.NoError(t, SetLanguage("fr"))
assert.Equal(t, PluralOne, PluralCategoryOf(0))
assert.Equal(t, PluralOne, PluralCategoryOf(1))
assert.Equal(t, PluralOther, PluralCategoryOf(2))
}
func TestCurrentPluralCategory_NoDefaultService(t *testing.T) {
prev := Default()
t.Cleanup(func() {