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 {