create LocalizerMiddleware func

This commit is contained in:
Hamidreza Ghavami 2023-05-20 19:46:34 +04:30
parent 4865754b3d
commit 95e0d9a468
No known key found for this signature in database
GPG key ID: 402C6797325182D9

View file

@ -6,6 +6,7 @@ import (
"strings"
"x-ui/logger"
"github.com/gin-gonic/gin"
"github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/pelletier/go-toml/v2"
"golang.org/x/text/language"
@ -82,6 +83,24 @@ func I18n(i18nType I18nType, key string, params ...string) string {
return msg
}
func LocalizerMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
var lang string
if cookie, err := c.Request.Cookie("lang"); err == nil {
lang = cookie.Value
} else {
lang = c.GetHeader("Accept-Language")
}
LocalizerWeb = i18n.NewLocalizer(i18nBundle, lang)
c.Set("localizer", LocalizerWeb)
c.Set("I18n", I18n)
c.Next()
}
}
func parseTranslationFiles(i18nFS embed.FS, i18nBundle *i18n.Bundle) error {
err := fs.WalkDir(i18nFS, "translation",
func(path string, d fs.DirEntry, err error) error {