package nativeapiimport ("encoding/json""io""io/fs""os""path/filepath""github.com/navidrome/navidrome/consts""github.com/navidrome/navidrome/resources""github.com/navidrome/navidrome/tests". "github.com/onsi/ginkgo/v2". "github.com/onsi/gomega")var _ = Describe("Translations", func() {Describe("I18n files", func() {It("contains only valid json language files", func() {tests.SkipOnWindows("path separator bug (#TBD-path-sep-nativeapi)")fsys := resources.FS()dir, _ := fsys.Open(consts.I18nFolder)files, _ := dir.(fs.ReadDirFile).ReadDir(-1)for _, f := range files {name := filepath.Base(f.Name())filePath := filepath.Join(consts.I18nFolder, name)file, _ := fsys.Open(filePath)data, _ := io.ReadAll(file)var out map[string]anyExpect(filepath.Ext(filePath)).To(Equal(".json"), filePath)Expect(json.Unmarshal(data, &out)).To(BeNil(), filePath)Expect(out["languageName"]).ToNot(BeEmpty(), filePath)}})})Describe("loadTranslation", func() {It("loads a translation file correctly", func() {fs := os.DirFS("ui/src")tr, err := loadTranslation(fs, "en.json")Expect(err).To(BeNil())Expect(tr.ID).To(Equal("en"))Expect(tr.Name).To(Equal("English"))var out map[string]anyExpect(json.Unmarshal([]byte(tr.Data), &out)).To(BeNil())})})})