diff --git a/agent/app/service/app.go b/agent/app/service/app.go index db832fffe..a639f9a78 100644 --- a/agent/app/service/app.go +++ b/agent/app/service/app.go @@ -1153,7 +1153,7 @@ func (a AppService) SyncAppListFromRemote(taskID string) (err error) { }, nil) go func() { - if err = syncTask.Execute(); err != nil { + if err := syncTask.Execute(); err != nil { _ = NewISettingService().Update("AppStoreLastModified", "0") _ = NewISettingService().Update("AppStoreSyncStatus", constant.StatusError) } diff --git a/agent/i18n/i18n.go b/agent/i18n/i18n.go index 9cac10637..d6b2a2d04 100644 --- a/agent/i18n/i18n.go +++ b/agent/i18n/i18n.go @@ -13,6 +13,19 @@ import ( "gopkg.in/yaml.v3" ) +var langFiles = map[string]string{ + "zh": "lang/zh.yaml", + "en": "lang/en.yaml", + "zh-Hant": "lang/zh-Hant.yaml", + "pt-BR": "lang/pt-BR.yaml", + "ja": "lang/ja.yaml", + "ru": "lang/ru.yaml", + "ms": "lang/ms.yaml", + "ko": "lang/ko.yaml", + "tr": "lang/tr.yaml", + "es-ES": "lang/es-ES.yaml", +} + func GetMsgWithMap(key string, maps map[string]interface{}) string { var content string if maps == nil { @@ -123,18 +136,17 @@ func UseI18n() gin.HandlerFunc { func Init() { bundle = i18n.NewBundle(language.Chinese) bundle.RegisterUnmarshalFunc("yaml", yaml.Unmarshal) - _, _ = bundle.LoadMessageFileFS(fs, "lang/zh.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/en.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/zh-Hant.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/fa.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/pt.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/pt-BR.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/ja.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/ru.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/ms.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/ko.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/tr.yaml") - _, _ = bundle.LoadMessageFileFS(fs, "lang/es-ES.yaml") + isSuccess := true + for _, file := range langFiles { + if _, err := bundle.LoadMessageFileFS(fs, file); err != nil { + global.LOG.Errorf("[i18n] load language file %s failed: %v\n", file, err) + isSuccess = false + } + } + + if !isSuccess { + panic("[i18n] failed to init language files, See log above for details") + } lang := GetLanguageFromDB() global.I18n = i18n.NewLocalizer(bundle, lang) } diff --git a/agent/i18n/lang/en.yaml b/agent/i18n/lang/en.yaml index abeb17128..48d0cffe6 100644 --- a/agent/i18n/lang/en.yaml +++ b/agent/i18n/lang/en.yaml @@ -254,7 +254,7 @@ IgnoreUploadErr: "Upload failed, error: {{ .detail }}, ignoring this error..." LoadBackupFailed: "Failed to get backup account connection, error: {{ .detail }}" InExecuting: "The current task is being executed, please do not repeat the execution!" NoSuchResource: "No backup content found in the database, skipping..." -CleanLog: "Clean Log", +CleanLog: "Clean Log" CleanLogByName: "Clean {{.name}} Log" #toolbox diff --git a/agent/i18n/lang/tr.yaml b/agent/i18n/lang/tr.yaml index 2ad96ba3c..befa42f77 100644 --- a/agent/i18n/lang/tr.yaml +++ b/agent/i18n/lang/tr.yaml @@ -112,14 +112,14 @@ ExportDate: "Zaman" #file ErrFileCanNotRead: 'Bu dosya önizlemeyi desteklemiyor' -ErrFileToLarge: 'Dosya 10M'dan büyük ve açılamıyor' +ErrFileToLarge: 'Dosya 10M dan büyük ve açılamıyor' ErrPathNotFound: 'Dizin mevcut değil' ErrMovePathFailed: 'Hedef yol orijinal yolu içeremez!' ErrLinkPathNotFound: 'Hedef yol mevcut değil!' ErrFileIsExist: 'Dosya veya klasör zaten mevcut!' ErrFileUpload: '{{ .name }} dosya yükleme başarısız {{ .detail }}' ErrFileDownloadDir: 'Klasör indirme desteklenmiyor' -ErrCmdNotFound: '{{ .name}} komutu mevcut değil, lütfen önce bu komutu host'a yükleyin' +ErrCmdNotFound: '{{ .name}} komutu mevcut değil, lütfen önce bu komutu host a yükleyin' ErrSourcePathNotFound: 'Kaynak dizin mevcut değil' ErrFavoriteExist: 'Bu yol zaten favorilere eklendi' ErrInvalidChar: 'Yasak karakterlere izin verilmiyor' @@ -408,7 +408,7 @@ SnapNewDB: 'Veritabanı {{ .name }} bağlantısını başlat' SnapDeleteOperationLog: 'İşlem günlüğünü sil' SnapDeleteLoginLog: 'Erişim günlüğünü sil' SnapDeleteMonitor: 'İzleme verilerini sil' -SnapRemoveSystemIP: 'Sistem IP'sini kaldır' +SnapRemoveSystemIP: 'Sistem IP sini kaldır' SnapBaseInfo: '1Panel temel bilgilerini yaz' SnapInstallAppImageEmpty: 'Uygulama imageı seçilmedi, atlanıyor...' SnapInstallApp: '1Panel yüklü uygulamaları yedekle'