mirror of
https://github.com/navidrome/navidrome.git
synced 2025-06-06 10:23:21 +03:00
Cater for differences when loading embedded Assets and in dev mode
This commit is contained in:
parent
056d5e7111
commit
496b467c1d
@ -1,6 +1,7 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -81,6 +82,7 @@ func loadTranslations() (loadError error) {
|
|||||||
loadError = err
|
loadError = err
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
var languages []string
|
||||||
for _, f := range files {
|
for _, f := range files {
|
||||||
t, err := loadTranslation(f.Name())
|
t, err := loadTranslation(f.Name())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -88,26 +90,38 @@ func loadTranslations() (loadError error) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
translations[t.ID] = t
|
translations[t.ID] = t
|
||||||
|
languages = append(languages, t.ID)
|
||||||
}
|
}
|
||||||
|
log.Info("Loading translations", "languages", languages)
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func loadTranslation(fileName string) (trans translation, err error) {
|
func loadTranslation(fileName string) (translation translation, err error) {
|
||||||
id := strings.TrimSuffix(fileName, filepath.Ext(fileName))
|
// Get id and full path
|
||||||
filePath := filepath.Join(i18nFolder, fileName)
|
name := filepath.Base(fileName)
|
||||||
|
id := strings.TrimSuffix(name, filepath.Ext(name))
|
||||||
|
filePath := filepath.Join(i18nFolder, name)
|
||||||
|
|
||||||
|
// Load translation from json file
|
||||||
data, err := resources.Asset(filePath)
|
data, err := resources.Asset(filePath)
|
||||||
trans.Data = string(data)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var out map[string]interface{}
|
var out map[string]interface{}
|
||||||
err = json.Unmarshal(data, &out)
|
if err = json.Unmarshal(data, &out); err != nil {
|
||||||
if err != nil {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
trans.Name = out["languageName"].(string)
|
|
||||||
trans.ID = id
|
// Compress JSON
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
if err = json.Compact(buf, data); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
translation.Data = buf.String()
|
||||||
|
translation.Name = out["languageName"].(string)
|
||||||
|
translation.ID = id
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user