1234567891011121314151617181920212223242526272829303132 |
- package middleware
- import (
- "github.com/gin-contrib/i18n"
- "github.com/gin-gonic/gin"
- "golang.org/x/text/language"
- )
- var translate = map[string]language.Tag{
- "zh-CN": language.Chinese,
- "zh-TW": language.TraditionalChinese,
- "zh-HK": language.TraditionalChinese,
- "zh-MO": language.TraditionalChinese,
- "zh-SG": language.SimplifiedChinese,
- }
- func Language() i18n.GetLngHandler {
- return func(ctx *gin.Context, defaultLng string) string {
- localization := ctx.GetHeader("Localization")
- if localization == "" {
- localization = defaultLng
- }
- // Translate to golang.org/x/text/language
- if local, ok := translate[localization]; ok {
- localization = local.String()
- }
- ctx.Set("localization", localization)
- return localization
- }
- }
|