package constant import "strings" const ( LangeZh = "zh" LangeEn = "en" LangeZhHk = "zhHK" ) const ( HeaderKeyLanguage = "Language" // 兼容 HeaderKeyLang = "lang" ) type Language struct { Name string Chinese string English string } var languageMap = map[string]Language{ "zh": {"简体中文", "简体中文", "Simplified Chinese"}, "en": {"English", "英文", "English"}, "zhHK": {"繁体中文", "繁体", "Traditional Chinese"}, "ms": {"Bahasa Melayu", "马来西亚语", "Malay"}, "id": {"Bahasa Indonesia", "印尼语", "Indonesian"}, "vi": {"Tiếng Việt", "越南语", "Vietnamese"}, "ja": {"日本語", "日语", "Japanese"}, "ko": {"한국어", "韩语", "Korean"}, "th": {"ภาษาไทย", "泰语", "Thai"}, "hi": {"हिन्दी", "印地语", "Hindi"}, } // 语种兼容 func LangCompatibility(lang string) string { lang = strings.ToLower(lang) // 多语言兼容 switch lang { case "cn": lang = LangeZh case "zh": lang = LangeZh case "zh-cn": lang = LangeZh case "zhhk": lang = LangeZhHk case "zh-hk": lang = LangeZhHk case "zh-hant": lang = LangeZhHk } _, ok := languageMap[lang] if ok { return lang } return LangeEn }