diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 918442538..fe6bd19b1 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1582,6 +1582,7 @@ "249": "تعذر الوصول إلى البيانات بسبب خطأ في الإعدادات. الرجاء التحقق من الإعدادات وأذونات التخزين السحابية", "250": "تم تحديد معدل الطلب بواسطة التخزين السحابي. الرجاء التحقق من الإعدادات وأذونات التخزين السحابية", "251": "‫مجموع الأصول غير المستخدمة [%d]، [%d] فقط منها مدرج هنا‬", - "252": "\uD83D\uDEA8 قد يقوم Microsoft Defender بحذف النواة عن طريق الخطأ، وحذف البيانات وتقليل الأداء بشكل كبير. يُوصى بإضافة مسار التثبيت ومسار مساحة العمل الخاصة بـ SiYuan إلى قائمة الاستثناءات" + "252": "\uD83D\uDEA8 قد يقوم Microsoft Defender بحذف النواة عن طريق الخطأ، وحذف البيانات وتقليل الأداء بشكل كبير. يُوصى بإضافة مسار التثبيت ومسار مساحة العمل الخاصة بـ SiYuan إلى قائمة الاستثناءات", + "253": "جارٍ ضغط الملف [%s]، يرجى الانتظار..." } } diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index 06db6117a..cec8addd2 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -1582,6 +1582,7 @@ "249": "Aufgrund eines Konfigurationsfehlers kann nicht auf die Daten zugegriffen werden. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher", "250": "Die Anfrage wurde vom Cloud-Speicher begrenzt. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher", "251": "Insgesamt ungenutzte Assets [%d], hier nur [%d] aufgeführt", - "252": "\uD83D\uDEA8 Microsoft Defender kann fälschlicherweise den Kernel löschen, Daten löschen und die Leistung erheblich verringern. Es wird empfohlen, den SiYuan-Installationspfad und den Arbeitsbereichspfad zur Ausschlussliste hinzuzufügen" + "252": "\uD83D\uDEA8 Microsoft Defender kann fälschlicherweise den Kernel löschen, Daten löschen und die Leistung erheblich verringern. Es wird empfohlen, den SiYuan-Installationspfad und den Arbeitsbereichspfad zur Ausschlussliste hinzuzufügen", + "253": "Datei [%s] wird komprimiert, bitte warten..." } } diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index 03ad38bec..48b926c85 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1582,6 +1582,7 @@ "249": "Unable to access data due to configuration error. Please check the settings and cloud storage permissions", "250": "Request has been rate-limited by cloud storage. Please check the settings and cloud storage permissions", "251": "Total unused assets [%d], only [%d] listed here", - "252": "\uD83D\uDEA8 Microsoft Defender may mistakenly delete the kernel, delete data, and significantly reduce performance. It is recommended to add the SiYuan installation path and workspace path to the exclusion list" + "252": "\uD83D\uDEA8 Microsoft Defender may mistakenly delete the kernel, delete data, and significantly reduce performance. It is recommended to add the SiYuan installation path and workspace path to the exclusion list", + "253": "Compressing file [%s], please wait..." } } diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index 6117ccba5..84dec9b3b 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1582,6 +1582,7 @@ "249": "No se puede acceder a los datos debido a un error de configuración. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube", "250": "La solicitud ha sido limitada por el almacenamiento en la nube. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube", "251": "Total de activos no utilizados [%d], solo [%d] listados aquí", - "252": "\uD83D\uDEA8 Microsoft Defender puede eliminar por error el núcleo, eliminar datos y reducir significativamente el rendimiento. Se recomienda agregar la ruta de instalación y el espacio de trabajo de SiYuan a la lista de exclusiones" + "252": "\uD83D\uDEA8 Microsoft Defender puede eliminar por error el núcleo, eliminar datos y reducir significativamente el rendimiento. Se recomienda agregar la ruta de instalación y el espacio de trabajo de SiYuan a la lista de exclusiones", + "253": "Comprimiendo el archivo [%s], por favor espere..." } } diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 337049e39..c16a4eb27 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1582,6 +1582,7 @@ "249": "Impossible d'accéder aux données en raison d'une erreur de configuration. Veuillez vérifier les paramètres et les autorisations de stockage cloud", "250": "La demande a été limitée par le stockage cloud. Veuillez vérifier les paramètres et les autorisations de stockage cloud", "251": "Total des actifs inutilisés [%d], seulement [%d] listés ici", - "252": "\uD83D\uDEA8 Microsoft Defender peut supprimer par erreur le noyau, supprimer des données et réduire considérablement les performances. Il est recommandé d'ajouter le chemin d'installation et l'espace de travail de SiYuan à la liste des exclusions" + "252": "\uD83D\uDEA8 Microsoft Defender peut supprimer par erreur le noyau, supprimer des données et réduire considérablement les performances. Il est recommandé d'ajouter le chemin d'installation et l'espace de travail de SiYuan à la liste des exclusions", + "253": "Compression du fichier [%s], veuillez patienter..." } } diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index 2207aac1b..ff42f96bd 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -1582,6 +1582,7 @@ "249": "אין אפשרות לגשת לנתונים עקב שגיאת תצורה. אנא בדוק את ההגדרות והרשאות האחסון בענן", "250": "הבקשה הוגבלה על ידי אחסון הענן. אנא בדוק את ההגדרות והרשאות האחסון בענן", "251": "סך כל הנכסים שלא נעשה בהם שימוש [%d], רק [%d] מופיעים כאן", - "252": "\uD83D\uDEA8 Microsoft Defender עלול למחוק בטעות את הליבה, למחוק נתונים ולהפחית משמעותית את הביצועים. מומלץ להוסיף את נתיב ההתקנה ונתיב סביבת העבודה של SiYuan לרשימת החריגים" + "252": "\uD83D\uDEA8 Microsoft Defender עלול למחוק בטעות את הליבה, למחוק נתונים ולהפחית משמעותית את הביצועים. מומלץ להוסיף את נתיב ההתקנה ונתיב סביבת העבודה של SiYuan לרשימת החריגים", + "253": "דוחס את הקובץ [%s], אנא המתן..." } } diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index 73d20f7a8..3ff032287 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -1582,6 +1582,7 @@ "249": "Impossibile accedere ai dati a causa di un errore di configurazione. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud", "250": "La richiesta è stata limitata dall'archiviazione cloud. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud", "251": "Totale risorse inutilizzate [%d], qui elencate solo [%d]", - "252": "\uD83D\uDEA8 Microsoft Defender potrebbe eliminare erroneamente il kernel, eliminare i dati e ridurre significativamente le prestazioni. Si consiglia di aggiungere il percorso di installazione e lo spazio di lavoro di SiYuan all'elenco delle esclusioni" + "252": "\uD83D\uDEA8 Microsoft Defender potrebbe eliminare erroneamente il kernel, eliminare i dati e ridurre significativamente le prestazioni. Si consiglia di aggiungere il percorso di installazione e lo spazio di lavoro di SiYuan all'elenco delle esclusioni", + "253": "Compressione del file [%s], attendere prego..." } } diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index 644098675..67e8ac3ea 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -1582,6 +1582,7 @@ "249": "設定エラーのためデータにアクセスできません。設定を一つずつ確認し、クラウドストレージの権限を確認してください", "250": "リクエストがクラウドストレージによって制限されました。設定を一つずつ確認し、クラウドストレージの権限を確認してください", "251": "未使用のアセットの合計 [%d]、ここにリストされているのは [%d] のみ", - "252": "\uD83D\uDEA8 Microsoft Defender は、カーネルを誤って削除したり、データを削除したり、パフォーマンスを大幅に低下させたりする可能性があります。SiYuan のインストールパスとワークスペースパスを除外リストに追加することをお勧めします" + "252": "\uD83D\uDEA8 Microsoft Defender は、カーネルを誤って削除したり、データを削除したり、パフォーマンスを大幅に低下させたりする可能性があります。SiYuan のインストールパスとワークスペースパスを除外リストに追加することをお勧めします", + "253": "ファイル [%s] を圧縮しています、お待ちください..." } } diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index 4e7d19d90..40f1c8b0b 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -1582,6 +1582,7 @@ "249": "Z powodu błędu konfiguracji nie można uzyskać dostępu do danych. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze", "250": "Żądanie zostało ograniczone przez przechowywanie w chmurze. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze", "251": "Łączna liczba nieużywanych zasobów [%d], tutaj wymieniono tylko [%d]", - "252": "\uD83D\uDEA8 Microsoft Defender może błędnie usunąć jądro, usunąć dane i znacznie obniżyć wydajność. Zaleca się dodanie ścieżki instalacji i przestrzeni roboczej SiYuan do listy wykluczeń" + "252": "\uD83D\uDEA8 Microsoft Defender może błędnie usunąć jądro, usunąć dane i znacznie obniżyć wydajność. Zaleca się dodanie ścieżki instalacji i przestrzeni roboczej SiYuan do listy wykluczeń", + "253": "Kompresja pliku [%s], proszę czekać..." } } diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index e31d14fab..ba34b829e 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -1582,6 +1582,7 @@ "249": "Из-за ошибки конфигурации невозможно получить доступ к данным. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу", "250": "Запрос был ограничен облачным хранилищем. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу", "251": "Всего неиспользованных активов [%d], здесь перечислены только [%d]", - "252": "\uD83D\uDEA8 Microsoft Defender может ошибочно удалить ядро, удалить данные и значительно снизить производительность. Рекомендуется добавить путь установки и рабочее пространство SiYuan в список исключений" + "252": "\uD83D\uDEA8 Microsoft Defender может ошибочно удалить ядро, удалить данные и значительно снизить производительность. Рекомендуется добавить путь установки и рабочее пространство SiYuan в список исключений", + "253": "Сжатие файла [%s], пожалуйста, подождите..." } } diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 5b2e0e9e2..e8d646b3e 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1582,6 +1582,7 @@ "249": "因配置錯誤導致無法存取數據,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置", "250": "請求已被雲端存儲限流,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置", "251": "未引用資源一共 ${x} 個,這裡僅列出 ${y} 個", - "252": "\uD83D\uDEA8 Microsoft Defender 可能會誤殺內核、誤刪數據和嚴重降低運行性能,建議將思源安裝路徑和工作空間路徑添加到排除列表" + "252": "\uD83D\uDEA8 Microsoft Defender 可能會誤殺內核、誤刪數據和嚴重降低運行性能,建議將思源安裝路徑和工作空間路徑添加到排除列表", + "253": "正在壓縮文件 [%s],請稍等..." } } diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 34fd2e25a..8392a4dcb 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1582,6 +1582,7 @@ "249": "因配置错误导致无法存取数据,请仔细逐个核对配置项,并检查云端存储相关权限配置", "250": "请求已被云端存储限流,请仔细逐个核对配置项,并检查云端存储相关权限配置", "251": "未引用资源一共 [%d] 个,这里仅列出 [%d] 个", - "252": "\uD83D\uDEA8 Microsoft Defender 可能会误杀内核、误删数据和严重降低运行性能,建议将思源安装路径和工作空间路径添加到排除列表" + "252": "\uD83D\uDEA8 Microsoft Defender 可能会误杀内核、误删数据和严重降低运行性能,建议将思源安装路径和工作空间路径添加到排除列表", + "253": "正在压缩文件 [%s],请稍等..." } } diff --git a/kernel/model/export.go b/kernel/model/export.go index eae69c03f..ec97a2389 100644 --- a/kernel/model/export.go +++ b/kernel/model/export.go @@ -504,7 +504,7 @@ func exportData(exportFolder string) (zipPath string, err error) { } zipCallback := func(filename string) { - util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename)) + util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(253), filename)) } if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil { @@ -1465,9 +1465,17 @@ func ExportPandocConvertZip(ids []string, pandocTo, ext string) (name, zipPath s } func ExportNotebookMarkdown(boxID string) (zipPath string) { + util.PushEndlessProgress(Conf.Language(65)) + defer util.ClearPushProgress(100) + box := Conf.Box(boxID) - docFiles := box.ListFiles("/") + if nil == box { + logging.LogErrorf("not found box [%s]", boxID) + return + } + var docPaths []string + docFiles := box.ListFiles("/") for _, docFile := range docFiles { docPaths = append(docPaths, docFile.path) } @@ -1859,7 +1867,7 @@ func exportSYZip(boxID, rootDirPath, baseFolderName string, docPaths []string) ( } zipCallback := func(filename string) { - util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), filename)) + util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(253), filename)) } if err = zip.AddDirectory(baseFolderName, exportFolder, zipCallback); err != nil { @@ -3069,15 +3077,20 @@ func exportPandocConvertZip(baseFolderName string, docPaths, defBlockIDs []strin logging.LogErrorf("read export markdown folder [%s] failed: %s", exportFolder, err) return "" } + + zipCallback := func(filename string) { + util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(253), filename)) + } for _, entry := range entries { - entryPath := filepath.Join(exportFolder, entry.Name()) + entryName := entry.Name() + entryPath := filepath.Join(exportFolder, entryName) if gulu.File.IsDir(entryPath) { - err = zip.AddDirectory(entry.Name(), entryPath) + err = zip.AddDirectory(entryName, entryPath, zipCallback) } else { - err = zip.AddEntry(entry.Name(), entryPath) + err = zip.AddEntry(entryName, entryPath, zipCallback) } if err != nil { - logging.LogErrorf("add entry [%s] to zip failed: %s", entry.Name(), err) + logging.LogErrorf("add entry [%s] to zip failed: %s", entryName, err) return "" } } @@ -3108,7 +3121,7 @@ func prepareExportTrees(docPaths []string) (defBlockIDs []string, trees *map[str trees = &map[string]*parse.Tree{} treeCache := &map[string]*parse.Tree{} defBlockIDs = []string{} - for _, p := range docPaths { + for i, p := range docPaths { id := strings.TrimSuffix(path.Base(p), ".sy") if !ast.IsNodeIDPattern(id) { continue @@ -3119,6 +3132,8 @@ func prepareExportTrees(docPaths []string) (defBlockIDs []string, trees *map[str continue } exportRefTrees(tree, &defBlockIDs, trees, treeCache) + + util.PushEndlessProgress(Conf.language(65) + " " + fmt.Sprintf(Conf.language(70), fmt.Sprintf("%d/%d %s", i+1, len(docPaths), tree.Root.IALAttr("title")))) } for _, tree := range *trees {