12345678910111213141516171819202122232425262728293031323334 |
- package middleware
- import (
- "github.com/gin-contrib/i18n"
- "github.com/gin-gonic/gin"
- "golang.org/x/text/language"
- "sikey.com/backend/internal/constant"
- )
- var translate = map[string]language.Tag{
- constant.Chinese: language.Chinese,
- constant.ChinesetTaditional: language.TraditionalChinese,
- constant.ChineseHongKong: language.TraditionalChinese,
- constant.ChineseTaiwan: language.TraditionalChinese,
- constant.ChineseMacao: language.TraditionalChinese,
- constant.Singapore: language.SimplifiedChinese,
- }
- func Language() i18n.GetLngHandler {
- return func(ctx *gin.Context, defaultLng string) string {
- localization := ctx.GetHeader(constant.HeaderLocalization)
- if localization == "" {
- localization = defaultLng
- }
- // Translate to golang.org/x/text/language
- if local, ok := translate[localization]; ok {
- localization = local.String()
- }
- ctx.Set(constant.ContextValueLocalization, localization)
- return localization
- }
- }
|