47 lines
981 B
Go
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)
|
|
}
|
|
}
|
|
}
|