02plural.go 981 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package main
  2. import (
  3. "fmt"
  4. "log"
  5. "golang.org/x/text/feature/plural"
  6. "golang.org/x/text/language"
  7. "golang.org/x/text/message"
  8. )
  9. const (
  10. Problem = "You have %d problem.\n"
  11. )
  12. func init() {
  13. message.Set(language.French, Problem,
  14. plural.Selectf(1, "%d",
  15. "=0", "Vous n'avez aucun problème\n",
  16. plural.One, "Vous avez un problème\n",
  17. "other", "Vous avez %d problèmes\n",
  18. ),
  19. )
  20. message.Set(language.AmericanEnglish, Problem,
  21. plural.Selectf(1, "%d",
  22. "=0", "You do not have a problem\n",
  23. plural.One, "You have a problem\n",
  24. "=2", "You have a couple of problems\n",
  25. plural.Other, "You have %d problems\n",
  26. ),
  27. )
  28. }
  29. func main() {
  30. french, err := language.Parse("fr_FR")
  31. if err != nil {
  32. log.Fatalf("parsing fr_FR= %v", err)
  33. }
  34. for _, lang := range []language.Tag{french, language.AmericanEnglish} {
  35. fmt.Printf("Language: %v\n", lang)
  36. p := message.NewPrinter(lang)
  37. for i := 0; i < 4; i++ {
  38. fmt.Print("\t")
  39. p.Printf(Problem, i)
  40. }
  41. }
  42. }