i18n_language.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package constant
  2. import "strings"
  3. const (
  4. LangeZh = "zh"
  5. LangeEn = "en"
  6. LangeZhHk = "zhHK"
  7. )
  8. const (
  9. HeaderKeyLanguage = "Language" // 兼容
  10. HeaderKeyLang = "lang"
  11. )
  12. type Language struct {
  13. Name string
  14. Chinese string
  15. English string
  16. }
  17. var languageMap = map[string]Language{
  18. "zh": {"简体中文", "简体中文", "Simplified Chinese"},
  19. "en": {"English", "英文", "English"},
  20. "zhHK": {"繁体中文", "繁体", "Traditional Chinese"},
  21. "ms": {"Bahasa Melayu", "马来西亚语", "Malay"},
  22. "id": {"Bahasa Indonesia", "印尼语", "Indonesian"},
  23. "vi": {"Tiếng Việt", "越南语", "Vietnamese"},
  24. "ja": {"日本語", "日语", "Japanese"},
  25. "ko": {"한국어", "韩语", "Korean"},
  26. "th": {"ภาษาไทย", "泰语", "Thai"},
  27. "hi": {"हिन्दी", "印地语", "Hindi"},
  28. }
  29. // 语种兼容
  30. func LangCompatibility(lang string) string {
  31. lang = strings.ToLower(lang)
  32. // 多语言兼容
  33. switch lang {
  34. case "cn":
  35. lang = LangeZh
  36. case "zh":
  37. lang = LangeZh
  38. case "zh-cn":
  39. lang = LangeZh
  40. case "zhhk":
  41. lang = LangeZhHk
  42. case "zh-hk":
  43. lang = LangeZhHk
  44. case "zh-hant":
  45. lang = LangeZhHk
  46. }
  47. _, ok := languageMap[lang]
  48. if ok {
  49. return lang
  50. }
  51. return LangeEn
  52. }