Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/locales.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'fil/fil.go')
-rw-r--r--fil/fil.go26
1 files changed, 22 insertions, 4 deletions
diff --git a/fil/fil.go b/fil/fil.go
index a60ce670..c14a3fb9 100644
--- a/fil/fil.go
+++ b/fil/fil.go
@@ -48,8 +48,8 @@ func (fil *fil) PluralsOrdinal() []locales.PluralRule {
return fil.pluralsOrdinal
}
-// cardinalPluralRule returns the cardinal PluralRule given 'num' and digits/precision of 'v' for 'fil'
-func (fil *fil) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
+// CardinalPluralRule returns the cardinal PluralRule given 'num' and digits/precision of 'v' for 'fil'
+func (fil *fil) CardinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
i := int64(n)
@@ -64,8 +64,8 @@ func (fil *fil) cardinalPluralRule(num float64, v uint64) locales.PluralRule {
return locales.PluralRuleOther
}
-// ordinalPluralRule returns the ordinal PluralRule given 'num' and digits/precision of 'v' for 'fil'
-func (fil *fil) ordinalPluralRule(num float64, v uint64) locales.PluralRule {
+// OrdinalPluralRule returns the ordinal PluralRule given 'num' and digits/precision of 'v' for 'fil'
+func (fil *fil) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {
n := math.Abs(num)
@@ -75,3 +75,21 @@ func (fil *fil) ordinalPluralRule(num float64, v uint64) locales.PluralRule {
return locales.PluralRuleOther
}
+
+// RangePluralRule returns the ordinal PluralRule given 'num1', 'num2' and digits/precision of 'v1' and 'v2' for 'fil'
+func (fil *fil) RangePluralRule(num1 float64, v1 uint64, num2 float64, v2 uint64) locales.PluralRule {
+
+ start := fil.CardinalPluralRule(num1, v1)
+ end := fil.CardinalPluralRule(num2, v2)
+
+ if start == locales.PluralRuleOne && end == locales.PluralRuleOne {
+ return locales.PluralRuleOne
+ } else if start == locales.PluralRuleOne && end == locales.PluralRuleOther {
+ return locales.PluralRuleOther
+ } else if start == locales.PluralRuleOther && end == locales.PluralRuleOne {
+ return locales.PluralRuleOne
+ }
+
+ return locales.PluralRuleOther
+
+}