Use i18n.Reset to reload locales (#15073)
parent
17731e05ff
commit
24f7bd5899
2
go.mod
2
go.mod
|
@ -120,7 +120,7 @@ require (
|
||||||
github.com/tstranex/u2f v1.0.0
|
github.com/tstranex/u2f v1.0.0
|
||||||
github.com/ulikunitz/xz v0.5.10 // indirect
|
github.com/ulikunitz/xz v0.5.10 // indirect
|
||||||
github.com/unknwon/com v1.0.1
|
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/unknwon/paginater v0.0.0-20200328080006-042474bd0eae
|
||||||
github.com/unrolled/render v1.0.3
|
github.com/unrolled/render v1.0.3
|
||||||
github.com/urfave/cli v1.22.5
|
github.com/urfave/cli v1.22.5
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -1111,8 +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 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 h1:3d1LTxD+Lnf3soQiD4Cp/0BRB+Rsa/+RTvz8GMMzIXs=
|
||||||
github.com/unknwon/com v1.0.1/go.mod h1:tOOxU81rwgoCLoOVVPHb6T/wt8HZygqH5id+GNnlCXM=
|
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-20210321134014-0ebbf2df1c44 h1:7bSo/vjZKVYUoZfxpYh9Y9JV+9hi1gYJp4WIykhrZag=
|
||||||
github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c/go.mod h1:+5rDk6sDGpl3azws3O+f+GpFSyN9GVr0K8cvQLQM2ZQ=
|
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 h1:ihaXiJkaca54IaCSnEXtE/uSZOmPxKZhDfVLrzZLFDs=
|
||||||
github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae/go.mod h1:1fdkY6xxl6ExVs2QFv7R0F5IRZHKA8RahhB9fMC9RvM=
|
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=
|
github.com/unrolled/render v1.0.3 h1:baO+NG1bZSF2WR4zwh+0bMWauWky7DVrTOfvE2w+aFo=
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
package translation
|
package translation
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/options"
|
"code.gitea.io/gitea/modules/options"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
@ -38,6 +36,7 @@ func AllLangs() []LangType {
|
||||||
|
|
||||||
// InitLocales loads the locales
|
// InitLocales loads the locales
|
||||||
func InitLocales() {
|
func InitLocales() {
|
||||||
|
i18n.Reset()
|
||||||
localeNames, err := options.Dir("locale")
|
localeNames, err := options.Dir("locale")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Failed to list locale files: %v", err)
|
log.Fatal("Failed to list locale files: %v", err)
|
||||||
|
@ -60,14 +59,9 @@ func InitLocales() {
|
||||||
for i := range setting.Names {
|
for i := range setting.Names {
|
||||||
key := "locale_" + setting.Langs[i] + ".ini"
|
key := "locale_" + setting.Langs[i] + ".ini"
|
||||||
if err = i18n.SetMessageWithDesc(setting.Langs[i], setting.Names[i], localFiles[key]); err != nil {
|
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")
|
i18n.SetDefaultLang("en-US")
|
||||||
|
|
||||||
allLangs = make([]LangType, 0, i18n.Count()-1)
|
allLangs = make([]LangType, 0, i18n.Count()-1)
|
||||||
|
|
|
@ -174,6 +174,11 @@ func SetMessageWithDesc(lang, langDesc string, localeFile interface{}, otherLoca
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Reset resets locale store.
|
||||||
|
func Reset() {
|
||||||
|
locales = &localeStore{store: make(map[string]*locale)}
|
||||||
|
}
|
||||||
|
|
||||||
// SetMessage sets the message file for localization.
|
// SetMessage sets the message file for localization.
|
||||||
func SetMessage(lang string, localeFile interface{}, otherLocaleFiles ...interface{}) error {
|
func SetMessage(lang string, localeFile interface{}, otherLocaleFiles ...interface{}) error {
|
||||||
return SetMessageWithDesc(lang, lang, localeFile, otherLocaleFiles...)
|
return SetMessageWithDesc(lang, lang, localeFile, otherLocaleFiles...)
|
||||||
|
|
|
@ -772,7 +772,7 @@ github.com/ulikunitz/xz/lzma
|
||||||
# github.com/unknwon/com v1.0.1
|
# github.com/unknwon/com v1.0.1
|
||||||
## explicit
|
## explicit
|
||||||
github.com/unknwon/com
|
github.com/unknwon/com
|
||||||
# github.com/unknwon/i18n v0.0.0-20200823051745-09abd91c7f2c
|
# github.com/unknwon/i18n v0.0.0-20210321134014-0ebbf2df1c44
|
||||||
## explicit
|
## explicit
|
||||||
github.com/unknwon/i18n
|
github.com/unknwon/i18n
|
||||||
# github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae
|
# github.com/unknwon/paginater v0.0.0-20200328080006-042474bd0eae
|
||||||
|
|
Loading…
Reference in New Issue