refactor(i18n): move ForCategory to interface.go
Keep Message method with its type definition. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e4b2675d99
commit
c78f1d9df1
2 changed files with 35 additions and 35 deletions
|
|
@ -34,41 +34,6 @@ import (
|
||||||
//go:embed locales/*.json
|
//go:embed locales/*.json
|
||||||
var localeFS embed.FS
|
var localeFS embed.FS
|
||||||
|
|
||||||
// ForCategory returns the appropriate text for a plural category.
|
|
||||||
// Falls back through the category hierarchy to find a non-empty string.
|
|
||||||
func (m Message) ForCategory(cat PluralCategory) string {
|
|
||||||
switch cat {
|
|
||||||
case PluralZero:
|
|
||||||
if m.Zero != "" {
|
|
||||||
return m.Zero
|
|
||||||
}
|
|
||||||
case PluralOne:
|
|
||||||
if m.One != "" {
|
|
||||||
return m.One
|
|
||||||
}
|
|
||||||
case PluralTwo:
|
|
||||||
if m.Two != "" {
|
|
||||||
return m.Two
|
|
||||||
}
|
|
||||||
case PluralFew:
|
|
||||||
if m.Few != "" {
|
|
||||||
return m.Few
|
|
||||||
}
|
|
||||||
case PluralMany:
|
|
||||||
if m.Many != "" {
|
|
||||||
return m.Many
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Fallback to Other, then One, then Text
|
|
||||||
if m.Other != "" {
|
|
||||||
return m.Other
|
|
||||||
}
|
|
||||||
if m.One != "" {
|
|
||||||
return m.One
|
|
||||||
}
|
|
||||||
return m.Text
|
|
||||||
}
|
|
||||||
|
|
||||||
// --- Global convenience functions ---
|
// --- Global convenience functions ---
|
||||||
|
|
||||||
// T translates a message using the default service.
|
// T translates a message using the default service.
|
||||||
|
|
|
||||||
|
|
@ -114,3 +114,38 @@ type Message struct {
|
||||||
Many string // Larger numbers (Slavic: 5+, Arabic: 11-99)
|
Many string // Larger numbers (Slavic: 5+, Arabic: 11-99)
|
||||||
Other string // Default/fallback form
|
Other string // Default/fallback form
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ForCategory returns the appropriate text for a plural category.
|
||||||
|
// Falls back through the category hierarchy to find a non-empty string.
|
||||||
|
func (m Message) ForCategory(cat PluralCategory) string {
|
||||||
|
switch cat {
|
||||||
|
case PluralZero:
|
||||||
|
if m.Zero != "" {
|
||||||
|
return m.Zero
|
||||||
|
}
|
||||||
|
case PluralOne:
|
||||||
|
if m.One != "" {
|
||||||
|
return m.One
|
||||||
|
}
|
||||||
|
case PluralTwo:
|
||||||
|
if m.Two != "" {
|
||||||
|
return m.Two
|
||||||
|
}
|
||||||
|
case PluralFew:
|
||||||
|
if m.Few != "" {
|
||||||
|
return m.Few
|
||||||
|
}
|
||||||
|
case PluralMany:
|
||||||
|
if m.Many != "" {
|
||||||
|
return m.Many
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Fallback to Other, then One, then Text
|
||||||
|
if m.Other != "" {
|
||||||
|
return m.Other
|
||||||
|
}
|
||||||
|
if m.One != "" {
|
||||||
|
return m.One
|
||||||
|
}
|
||||||
|
return m.Text
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue