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

Co-Authored-By: Virgil <virgil@lethean.io>
This commit is contained in:
Virgil 2026-04-02 11:52:32 +00:00
parent 8551af74be
commit 849428ab10
5 changed files with 16 additions and 2 deletions

View file

@ -347,3 +347,8 @@ func (s *CoreService) PluralCategory(n int) PluralCategory {
func (s *CoreService) CurrentPluralCategory(n int) PluralCategory {
return s.PluralCategory(n)
}
// PluralCategoryOf is a short alias for CurrentPluralCategory.
func (s *CoreService) PluralCategoryOf(n int) PluralCategory {
return s.CurrentPluralCategory(n)
}

View file

@ -359,6 +359,7 @@ func TestCoreService_DelegatesToWrappedService(t *testing.T) {
assert.Equal(t, svc.IsRTL(), coreSvc.CurrentRTL())
assert.Equal(t, svc.PluralCategory(2), coreSvc.PluralCategory(2))
assert.Equal(t, svc.PluralCategory(2), coreSvc.CurrentPluralCategory(2))
assert.Equal(t, svc.PluralCategory(2), coreSvc.PluralCategoryOf(2))
assert.Equal(t, svc.Mode(), coreSvc.CurrentMode())
assert.Equal(t, svc.Language(), coreSvc.CurrentLanguage())
assert.Equal(t, svc.Language(), coreSvc.CurrentLang())

View file

@ -164,7 +164,7 @@ func CurrentRTL() bool {
//
// cat := i18n.CurrentPluralCategory(2)
func CurrentPluralCategory(n int) PluralCategory {
return PluralCategoryOf(n)
return defaultServiceValue(PluralOther, func(svc *Service) PluralCategory { return svc.PluralCategory(n) })
}
// PluralCategoryOf returns the plural category for the current default language.
@ -173,7 +173,7 @@ func CurrentPluralCategory(n int) PluralCategory {
//
// cat := i18n.PluralCategoryOf(2)
func PluralCategoryOf(n int) PluralCategory {
return defaultServiceValue(PluralOther, func(svc *Service) PluralCategory { return svc.PluralCategory(n) })
return CurrentPluralCategory(n)
}
func detectLanguage(supported []language.Tag) string {

View file

@ -455,6 +455,11 @@ func (s *Service) CurrentPluralCategory(n int) PluralCategory {
return s.PluralCategory(n)
}
// PluralCategoryOf is a short alias for CurrentPluralCategory.
func (s *Service) PluralCategoryOf(n int) PluralCategory {
return s.CurrentPluralCategory(n)
}
func joinAvailableLanguagesLocked(tags []language.Tag) string {
if len(tags) == 0 {
return ""

View file

@ -172,6 +172,9 @@ func TestServiceCurrentStateAliases(t *testing.T) {
if got, want := svc.CurrentPluralCategory(2), svc.PluralCategory(2); got != want {
t.Fatalf("CurrentPluralCategory() = %v, want %v", got, want)
}
if got, want := svc.PluralCategoryOf(2), svc.PluralCategory(2); got != want {
t.Fatalf("PluralCategoryOf() = %v, want %v", got, want)
}
if got, want := svc.CurrentDebug(), svc.Debug(); got != want {
t.Fatalf("CurrentDebug() = %v, want %v", got, want)
}