From be7f26e9e5e15cd2ffd34330e62f31f17353961a Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 2 Mar 2021 02:57:19 +0100 Subject: [PATCH 1/5] Use i18n fork to get Flush() func --- go.mod | 2 ++ go.sum | 4 ++-- vendor/github.com/unknwon/i18n/i18n.go | 5 +++++ vendor/modules.txt | 3 ++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 165c8f6933f7f..d6533dcbd3519 100644 --- a/go.mod +++ b/go.mod @@ -155,3 +155,5 @@ require ( replace github.com/hashicorp/go-version => github.com/6543/go-version v1.2.4 replace github.com/microcosm-cc/bluemonday => github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 + +replace github.com/unknwon/i18n => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df diff --git a/go.sum b/go.sum index 09dc22e8f00cf..4821afff4fa4d 100644 --- a/go.sum +++ b/go.sum @@ -53,6 +53,8 @@ gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= +github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df h1:klAv41QUcjrnPED8SZG3hAcDClRXsseWoA8xiMLdHV0= +github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ= github.com/6543/go-version v1.2.4 h1:MPsSnqNrM0HwA9tnmWNnsMdQMg4/u4fflARjwomoof4= github.com/6543/go-version v1.2.4/go.mod h1:oqFAHCwtLVUTLdhQmVZWYvaHXTdsbB4SY85at64SQEo= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= @@ -1111,8 +1113,6 @@ github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs= github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= -github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c h1:679/gJXwrsHC3RATr0YYjZvDMJPYN7W9FGSGNoLmKxM= -github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ= github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae h1:ihaXiJkaca54IaCSnEXtE/uSZOmPxKZhDfVLrzZLFDs= github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae/go.mod h1:1fdkY6xxl6ExVs2QFv7R0F5IRZHKA8RahhB9fMC9RvM= github.com/unrolled/render v1.0.3 h1:baO+NG1bZSF2WR4zwh+0bMWauWky7DVrTOfvE2w+aFo= diff --git a/vendor/github.com/unknwon/i18n/i18n.go b/vendor/github.com/unknwon/i18n/i18n.go index cfe982f5f7df9..dd8d59e540224 100644 --- a/vendor/github.com/unknwon/i18n/i18n.go +++ b/vendor/github.com/unknwon/i18n/i18n.go @@ -174,6 +174,11 @@ func SetMessageWithDesc(lang, langDesc string, localeFile interface{}, otherLoca return err } +// Flush reset locale store +func Flush() { + locales = &localeStore{store: make(map[string]*locale)} +} + // SetMessage sets the message file for localization. func SetMessage(lang string, localeFile interface{}, otherLocaleFiles ...interface{}) error { return SetMessageWithDesc(lang, lang, localeFile, otherLocaleFiles...) diff --git a/vendor/modules.txt b/vendor/modules.txt index 7069aaffef27c..4a34b848fde64 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -772,7 +772,7 @@ github.com/ulikunitz/xz/lzma # github.com/unknwon/com v1.0.1 ## explicit github.com/unknwon/com -# github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c +# github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df ## explicit github.com/unknwon/i18n # github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae @@ -1066,3 +1066,4 @@ xorm.io/xorm/schemas xorm.io/xorm/tags # github.com/hashicorp/go-version => github.com/6543/go-version v1.2.4 # github.com/microcosm-cc/bluemonday => github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 +# github.com/unknwon/i18n => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df From 0ee53041e1a2248476ae1dee9d8901c367e39b2c Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 20 Mar 2021 21:20:51 +0100 Subject: [PATCH 2/5] Use i18n.Flush to reload locales --- modules/translation/translation.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/modules/translation/translation.go b/modules/translation/translation.go index b7276e53c0149..c26a70867b465 100644 --- a/modules/translation/translation.go +++ b/modules/translation/translation.go @@ -38,6 +38,7 @@ func AllLangs() []LangType { // InitLocales loads the locales func InitLocales() { + i18n.Flush() localeNames, err := options.Dir("locale") if err != nil { log.Fatal("Failed to list locale files: %v", err) @@ -60,12 +61,7 @@ func InitLocales() { for i := range setting.Names { key := "locale_" + setting.Langs[i] + ".ini" if err = i18n.SetMessageWithDesc(setting.Langs[i], setting.Names[i], localFiles[key]); err != nil { - if errors.Is(err, i18n.ErrLangAlreadyExist) { - // just log if lang is already loaded since we can not reload it - log.Warn("Can not load language '%s' since already loaded", setting.Langs[i]) - } else { - log.Error("Failed to set messages to %s: %v", setting.Langs[i], err) - } + log.Error("Failed to set messages to %s: %v", setting.Langs[i], err) } } i18n.SetDefaultLang("en-US") From 90fec559f08d8f9d3be33612e2c3cb321b816e8b Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 20 Mar 2021 21:27:32 +0100 Subject: [PATCH 3/5] make linter happy --- modules/translation/translation.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/translation/translation.go b/modules/translation/translation.go index c26a70867b465..83c321c0ff253 100644 --- a/modules/translation/translation.go +++ b/modules/translation/translation.go @@ -5,8 +5,6 @@ package translation import ( - "errors" - "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/options" "code.gitea.io/gitea/modules/setting" From 77b7892f4e37b94b97dfe0110d3cb49f4c42e765 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 21 Mar 2021 15:20:45 +0100 Subject: [PATCH 4/5] upstream got merged --- go.mod | 4 +--- go.sum | 4 ++-- vendor/github.com/unknwon/i18n/i18n.go | 4 ++-- vendor/modules.txt | 3 +-- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/go.mod b/go.mod index d6533dcbd3519..33586e67feec5 100644 --- a/go.mod +++ b/go.mod @@ -120,7 +120,7 @@ require ( github.com/tstranex/u2f v1.0.0 github.com/ulikunitz/xz v0.5.10 // indirect github.com/unknwon/com v1.0.1 - github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c + github.com/unknwon/i18n v0.0.0-20210321134014-0ebbf2df1c44 github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae github.com/unrolled/render v1.0.3 github.com/urfave/cli v1.22.5 @@ -155,5 +155,3 @@ require ( replace github.com/hashicorp/go-version => github.com/6543/go-version v1.2.4 replace github.com/microcosm-cc/bluemonday => github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 - -replace github.com/unknwon/i18n => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df diff --git a/go.sum b/go.sum index 4821afff4fa4d..cf7148fbbeadc 100644 --- a/go.sum +++ b/go.sum @@ -53,8 +53,6 @@ gitea.com/lunny/levelqueue v0.3.0 h1:MHn1GuSZkxvVEDMyAPqlc7A3cOW+q8RcGhRgH/xtm6I gitea.com/lunny/levelqueue v0.3.0/go.mod h1:HBqmLbz56JWpfEGG0prskAV97ATNRoj5LDmPicD22hU= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a/go.mod h1:EXuID2Zs0pAQhH8yz+DNjUbjppKQzKFAn28TMYPB6IU= -github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df h1:klAv41QUcjrnPED8SZG3hAcDClRXsseWoA8xiMLdHV0= -github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ= github.com/6543/go-version v1.2.4 h1:MPsSnqNrM0HwA9tnmWNnsMdQMg4/u4fflARjwomoof4= github.com/6543/go-version v1.2.4/go.mod h1:oqFAHCwtLVUTLdhQmVZWYvaHXTdsbB4SY85at64SQEo= github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c h1:/IBSNwUN8+eKzUzbJPqhK839ygXJ82sde8x3ogr6R28= @@ -1113,6 +1111,8 @@ github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0o github.com/unknwon/com v0.0.0-20190804042917-757f69c95f3e/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= github.com/unknwon/com v1.0.1 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs= github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM= +github.com/unknwon/i18n v0.0.0-20210321134014-0ebbf2df1c44 h1:7bSo/vjZKVYUoZfxpYh9Y9JV+9hi1gYJp4WIykhrZag= +github.com/unknwon/i18n v0.0.0-20210321134014-0ebbf2df1c44/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ= github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae h1:ihaXiJkaca54IaCSnEXtE/uSZOmPxKZhDfVLrzZLFDs= github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae/go.mod h1:1fdkY6xxl6ExVs2QFv7R0F5IRZHKA8RahhB9fMC9RvM= github.com/unrolled/render v1.0.3 h1:baO+NG1bZSF2WR4zwh+0bMWauWky7DVrTOfvE2w+aFo= diff --git a/vendor/github.com/unknwon/i18n/i18n.go b/vendor/github.com/unknwon/i18n/i18n.go index dd8d59e540224..bdb8ee7923ccc 100644 --- a/vendor/github.com/unknwon/i18n/i18n.go +++ b/vendor/github.com/unknwon/i18n/i18n.go @@ -174,8 +174,8 @@ func SetMessageWithDesc(lang, langDesc string, localeFile interface{}, otherLoca return err } -// Flush reset locale store -func Flush() { +// Reset resets locale store. +func Reset() { locales = &localeStore{store: make(map[string]*locale)} } diff --git a/vendor/modules.txt b/vendor/modules.txt index 4a34b848fde64..96ac0b77d9a05 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -772,7 +772,7 @@ github.com/ulikunitz/xz/lzma # github.com/unknwon/com v1.0.1 ## explicit github.com/unknwon/com -# github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df +# github.com/unknwon/i18n v0.0.0-20210321134014-0ebbf2df1c44 ## explicit github.com/unknwon/i18n # github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae @@ -1066,4 +1066,3 @@ xorm.io/xorm/schemas xorm.io/xorm/tags # github.com/hashicorp/go-version => github.com/6543/go-version v1.2.4 # github.com/microcosm-cc/bluemonday => github.com/lunny/bluemonday v1.0.5-0.20201227154428-ca34796141e8 -# github.com/unknwon/i18n => github.com/6543-forks/i18n v0.0.0-20210224142919-1e46769006df From 87ffe8b09a9970eb2c1374b9b28aaed639db37b0 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 21 Mar 2021 15:22:02 +0100 Subject: [PATCH 5/5] Update modules/translation/translation.go --- modules/translation/translation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/translation/translation.go b/modules/translation/translation.go index 83c321c0ff253..dec48c7a657b2 100644 --- a/modules/translation/translation.go +++ b/modules/translation/translation.go @@ -36,7 +36,7 @@ func AllLangs() []LangType { // InitLocales loads the locales func InitLocales() { - i18n.Flush() + i18n.Reset() localeNames, err := options.Dir("locale") if err != nil { log.Fatal("Failed to list locale files: %v", err)