3
0

Fix locale loading & defaulting logic

This commit is contained in:
Denis Arh
2022-04-05 18:00:58 +02:00
parent 64ace697e7
commit e75a57b0e9
+16 -9
View File
@@ -131,8 +131,6 @@ func (svc *service) SupportedLang(tag language.Tag) bool {
// all translation files
func (svc *service) ReloadStatic() (err error) {
var (
i int
lang *Language
ll, aux []*Language
logFields = make([]zap.Field, 0)
@@ -141,6 +139,10 @@ func (svc *service) ReloadStatic() (err error) {
svc.l.Lock()
defer svc.l.Unlock()
if len(svc.tags) == 0 {
return fmt.Errorf("no supported languages (LOCALE_LANGUAGES is empty)")
}
svc.log.Info("reloading static",
zap.Strings("path", svc.src),
zap.Strings("tags", tagsToStrings(svc.tags)),
@@ -178,7 +180,7 @@ func (svc *service) ReloadStatic() (err error) {
ll = append(ll, aux...)
}
for i, lang = range ll {
for _, lang := range ll {
logFields = []zap.Field{
zap.Stringer("tag", lang.Tag),
}
@@ -206,11 +208,6 @@ func (svc *service) ReloadStatic() (err error) {
return err
}
if i == 0 && svc.def == nil {
// set first one as default
svc.def = lang
}
if svc.set[lang.Tag] != nil {
svc.log.Info(
"language overloaded",
@@ -234,7 +231,7 @@ func (svc *service) ReloadStatic() (err error) {
}
// Do another pass and link all extended languages
for _, lang = range svc.set {
for _, lang := range svc.set {
if lang.Extends.IsRoot() {
continue
}
@@ -246,6 +243,16 @@ func (svc *service) ReloadStatic() (err error) {
lang.extends = svc.set[lang.Extends]
}
if svc.def == nil {
first := svc.tags[0]
if svc.set[first] == nil {
return fmt.Errorf("could not find %s in loaded languages", first)
}
svc.def = svc.set[first]
}
return nil
}