summaryrefslogtreecommitdiff
diff options
-rw-r--r--i18n/i18n.go17
1 files changed, 15 insertions, 2 deletions
diff --git a/i18n/i18n.go b/i18n/i18n.go
index b03278b0b1..fb50901a8a 100644
--- a/i18n/i18n.go
+++ b/i18n/i18n.go
@@ -100,7 +100,20 @@ func G(msgid string) string {
return locale.Gettext(msgid)
}
+// https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html
+// (search for 1000)
+func ngn(d int) uint32 {
+ const max = 1000000
+ if d < 0 {
+ d = -d
+ }
+ if d > max {
+ return uint32((d % max) + max)
+ }
+ return uint32(d)
+}
+
// NG is the shorthand for NGettext
-func NG(msgid string, msgidPlural string, n uint32) string {
- return locale.NGettext(msgid, msgidPlural, n)
+func NG(msgid string, msgidPlural string, n int) string {
+ return locale.NGettext(msgid, msgidPlural, ngn(n))
}