From 842d4865b2bceacfbca034a46a6c9842bd737861 Mon Sep 17 00:00:00 2001 From: Yang Luo Date: Sat, 18 Feb 2023 16:11:23 +0800 Subject: [PATCH] Fix router error message's i18n --- conf/conf.go | 14 ++++++++++++++ controllers/util.go | 8 ++------ routers/base.go | 13 ++++++++++++- web/src/backend/FetchFilter.js | 2 +- 4 files changed, 29 insertions(+), 8 deletions(-) diff --git a/conf/conf.go b/conf/conf.go index 051436b5..38da9090 100644 --- a/conf/conf.go +++ b/conf/conf.go @@ -105,6 +105,20 @@ func GetConfigDataSourceName() string { return dataSourceName } +func GetLanguage(language string) string { + if language == "" { + return "en" + } + + language = language[0:2] + + if strings.Contains(GetConfigString("languages"), language) { + return language + } else { + return "en" + } +} + func IsDemoMode() bool { return strings.ToLower(GetConfigString("isDemoMode")) == "true" } diff --git a/controllers/util.go b/controllers/util.go index 504c464f..5c284514 100644 --- a/controllers/util.go +++ b/controllers/util.go @@ -17,7 +17,6 @@ package controllers import ( "fmt" "strconv" - "strings" "github.com/casdoor/casdoor/conf" "github.com/casdoor/casdoor/i18n" @@ -56,11 +55,8 @@ func (c *ApiController) T(error string) string { // GetAcceptLanguage ... func (c *ApiController) GetAcceptLanguage() string { - lang := c.Ctx.Request.Header.Get("Accept-Language") - if lang == "" || !strings.Contains(conf.GetConfigString("languages"), lang[0:2]) { - lang = "en" - } - return lang[0:2] + language := c.Ctx.Request.Header.Get("Accept-Language") + return conf.GetLanguage(language) } // SetTokenErrorHttpStatus ... diff --git a/routers/base.go b/routers/base.go index 7b41cb8a..2cab9792 100644 --- a/routers/base.go +++ b/routers/base.go @@ -19,6 +19,8 @@ import ( "strings" "github.com/beego/beego/context" + "github.com/casdoor/casdoor/conf" + "github.com/casdoor/casdoor/i18n" "github.com/casdoor/casdoor/object" "github.com/casdoor/casdoor/util" ) @@ -46,8 +48,17 @@ func responseError(ctx *context.Context, error string, data ...interface{}) { } } +func getAcceptLanguage(ctx *context.Context) string { + language := ctx.Request.Header.Get("Accept-Language") + return conf.GetLanguage(language) +} + +func T(ctx *context.Context, error string) string { + return i18n.Translate(getAcceptLanguage(ctx), error) +} + func denyRequest(ctx *context.Context) { - responseError(ctx, "Unauthorized operation") + responseError(ctx, T(ctx, "auth:Unauthorized operation")) } func getUsernameByClientIdSecret(ctx *context.Context) string { diff --git a/web/src/backend/FetchFilter.js b/web/src/backend/FetchFilter.js index 5fd13030..ef1e976b 100644 --- a/web/src/backend/FetchFilter.js +++ b/web/src/backend/FetchFilter.js @@ -31,7 +31,7 @@ const demoModeCallback = (res) => { okText: i18next.t("user:OK"), cancelText: i18next.t("general:Cancel"), onOk() { - Setting.openLink(`https://demo.casdoor.com${location.path}${location.search}?username=built-in/admin&password=123`); + Setting.openLink(`https://demo.casdoor.com${location.pathname}${location.search}?username=built-in/admin&password=123`); }, onCancel() {}, });