translation.go 772 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package translation
  2. import (
  3. "fmt"
  4. "github.com/0xJacky/Nginx-UI/app"
  5. "github.com/0xJacky/pofile/pofile"
  6. "io"
  7. "log"
  8. )
  9. var Dict map[string]pofile.Dict
  10. func init() {
  11. Dict = make(map[string]pofile.Dict)
  12. langCode := []string{"zh_CN", "zh_TW", "ru_RU", "fr_FR", "es", "vi_VN"}
  13. for _, v := range langCode {
  14. handlePo(v)
  15. }
  16. }
  17. func handlePo(langCode string) {
  18. file, err := app.DistFS.Open(fmt.Sprintf("src/language/%s/app.po", langCode))
  19. if err != nil {
  20. log.Fatalln(err)
  21. }
  22. defer file.Close()
  23. bytes, err := io.ReadAll(file)
  24. if err != nil {
  25. log.Fatalln(err)
  26. }
  27. p, err := pofile.ParseText(string(bytes))
  28. if err != nil {
  29. log.Fatalln(err)
  30. }
  31. Dict[langCode] = p.ToDict()
  32. }
  33. func GetTranslation(langCode string) pofile.Dict {
  34. return Dict[langCode]
  35. }