Archived
Template
1
0

Added multilanguage support

This commit is contained in:
uberswe
2022-01-29 10:21:05 +01:00
parent 3bbc858721
commit 1987a0b0ec
49 changed files with 2402 additions and 154 deletions

View File

@ -0,0 +1,24 @@
package plural
import "golang.org/x/text/language"
// Rules is a set of plural rules by language tag.
type Rules map[language.Tag]*Rule
// Rule returns the closest matching plural rule for the language tag
// or nil if no rule could be found.
func (r Rules) Rule(tag language.Tag) *Rule {
t := tag
for {
if rule := r[t]; rule != nil {
return rule
}
t = t.Parent()
if t.IsRoot() {
break
}
}
base, _ := tag.Base()
baseTag, _ := language.Parse(base.String())
return r[baseTag]
}