go__i18n_demo/xtext/02plural/02plural.go
2023-04-04 15:37:13 +02:00

47 lines
981 B
Go

package main
import (
"fmt"
"log"
"golang.org/x/text/feature/plural"
"golang.org/x/text/language"
"golang.org/x/text/message"
)
const (
Problem = "You have %d problem.\n"
)
func init() {
message.Set(language.French, Problem,
plural.Selectf(1, "%d",
"=0", "Vous n'avez aucun problème\n",
plural.One, "Vous avez un problème\n",
"other", "Vous avez %d problèmes\n",
),
)
message.Set(language.AmericanEnglish, Problem,
plural.Selectf(1, "%d",
"=0", "You do not have a problem\n",
plural.One, "You have a problem\n",
"=2", "You have a couple of problems\n",
plural.Other, "You have %d problems\n",
),
)
}
func main() {
french, err := language.Parse("fr_FR")
if err != nil {
log.Fatalf("parsing fr_FR= %v", err)
}
for _, lang := range []language.Tag{french, language.AmericanEnglish} {
fmt.Printf("Language: %v\n", lang)
p := message.NewPrinter(lang)
for i := 0; i < 4; i++ {
fmt.Print("\t")
p.Printf(Problem, i)
}
}
}