zj.go 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright (c) 2000-2018, 达梦数据库有限公司.
  3. * All rights reserved.
  4. */
  5. package i18n
  6. import (
  7. "encoding/json"
  8. "golang.org/x/text/language"
  9. "golang.org/x/text/message"
  10. )
  11. type msg struct {
  12. Id string `json:"id"`
  13. Translation string `json:"translation,omitempty"`
  14. }
  15. type i18n struct {
  16. Language string `json:"language"`
  17. Messages []msg `json:"messages"`
  18. }
  19. func InitConfig(jsonStr string) {
  20. var i18n i18n
  21. json.Unmarshal([]byte(jsonStr), &i18n)
  22. msaArry := i18n.Messages
  23. tag := language.MustParse(i18n.Language)
  24. for _, e := range msaArry {
  25. message.SetString(tag, e.Id, e.Translation)
  26. }
  27. }
  28. func Get(key string, locale int) string {
  29. var p *message.Printer
  30. switch locale {
  31. case 0:
  32. p = message.NewPrinter(language.SimplifiedChinese)
  33. case 1:
  34. p = message.NewPrinter(language.AmericanEnglish)
  35. case 2:
  36. p = message.NewPrinter(language.TraditionalChinese)
  37. }
  38. return p.Sprintf(key)
  39. }