Explorar o código

update I18n function for controller

Hamidreza Ghavami hai 1 ano
pai
achega
2bd706aa92
Modificáronse 1 ficheiros con 12 adicións e 8 borrados
  1. 12 8
      web/controller/base.go

+ 12 - 8
web/controller/base.go

@@ -2,6 +2,8 @@ package controller
 
 import (
 	"net/http"
+	"x-ui/logger"
+	"x-ui/web/locale"
 	"x-ui/web/session"
 
 	"github.com/gin-gonic/gin"
@@ -13,7 +15,7 @@ type BaseController struct {
 func (a *BaseController) checkLogin(c *gin.Context) {
 	if !session.IsLogin(c) {
 		if isAjax(c) {
-			pureJsonMsg(c, false, I18n(c, "pages.login.loginAgain"))
+			pureJsonMsg(c, false, WebI18n(c, "pages.login.loginAgain"))
 		} else {
 			c.Redirect(http.StatusTemporaryRedirect, c.GetString("base_path"))
 		}
@@ -23,11 +25,13 @@ func (a *BaseController) checkLogin(c *gin.Context) {
 	}
 }
 
-func I18n(c *gin.Context, name string) string {
-	anyfunc, _ := c.Get("I18n")
-	i18n, _ := anyfunc.(func(key string, params ...string) (string, error))
-
-	message, _ := i18n(name)
-
-	return message
+func WebI18n(c *gin.Context, name string, params ...string) string {
+	anyfunc, funcExists := c.Get("I18n")
+	if !funcExists {
+		logger.Warning("I18n function not exists in gin context!")
+		return ""
+	}
+	i18nFunc, _ := anyfunc.(func(i18nType locale.I18nType, key string, keyParams ...string) string)
+	msg := i18nFunc(locale.Web, name, params...)
+	return msg
 }