From 5f2002ca68d9648fac0ff79914e590b362cc5d14 Mon Sep 17 00:00:00 2001
From: Jeffrey Chen <78434827+TCOTC@users.noreply.github.com>
Date: Sat, 31 Jan 2026 21:47:50 +0800
Subject: [PATCH 1/5] :memo: Improve text (#16955)
---
app/appearance/langs/ar_SA.json | 2 +-
app/appearance/langs/de_DE.json | 2 +-
app/appearance/langs/en_US.json | 2 +-
app/appearance/langs/es_ES.json | 2 +-
app/appearance/langs/fr_FR.json | 2 +-
app/appearance/langs/he_IL.json | 2 +-
app/appearance/langs/it_IT.json | 2 +-
app/appearance/langs/ja_JP.json | 2 +-
app/appearance/langs/ko_KR.json | 2 +-
app/appearance/langs/pl_PL.json | 2 +-
app/appearance/langs/pt_BR.json | 2 +-
app/appearance/langs/ru_RU.json | 2 +-
app/appearance/langs/tr_TR.json | 2 +-
app/appearance/langs/zh_CHT.json | 2 +-
app/appearance/langs/zh_CN.json | 2 +-
15 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 044436cac..3e06af406 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -111,7 +111,7 @@
"publish": "نشر",
"publishService": "خدمة النشر",
"publishServiceNotStarted": "خدمة النشر لم تبدأ",
- "publishServiceTip": "عند التمكين، سيتم بَدْء خدمة النشر. هذه الخدمة تنشر محتوى مساحة العمل الحالية في وضع القراءة فقط على الشبكة المحلية.",
+ "publishServiceTip": "عند التمكين، سيتم بَدْء خدمة النشر. هذه الخدمة تنشر محتوى مساحة العمل الحالية في وضع القراءة فقط على الشبكة المحلية. يرجى التأكد من أن مساحة العمل لا تحتوي على معلومات حساسة.",
"publishServicePort": "منفذ الخدمة",
"publishServicePortTip": "تمكين خدمة النشر باستخدام رَقْم المنفذ المحدد. إذا تم تعيينها إلى 0، سيتم استخدام منفذ عشوائي.",
"publishServiceAddresses": "عناوين الوصول إلى الخدمة",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index f08992062..ec931f887 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -111,7 +111,7 @@
"publish": "Veröffentlichen",
"publishService": "Veröffentlichungsdienst",
"publishServiceNotStarted": "Veröffentlichungsdienst nicht gestartet",
- "publishServiceTip": "Wenn aktiviert, wird der Veröffentlichungsdienst gestartet. Dieser Dienst veröffentlicht den Inhalt des aktuellen Arbeitsbereichs im Nur-Lese-Modus im lokalen Netzwerk.",
+ "publishServiceTip": "Wenn aktiviert, wird der Veröffentlichungsdienst gestartet. Dieser Dienst veröffentlicht den Inhalt des aktuellen Arbeitsbereichs im Nur-Lese-Modus im lokalen Netzwerk. Bitte stellen Sie sicher, dass der Arbeitsbereich keine sensiblen Informationen enthält.",
"publishServicePort": "Dienst-Port",
"publishServicePortTip": "Aktivieren Sie den Veröffentlichungsdienst mit der angegebenen Portnummer. Wenn auf 0 gesetzt, wird ein zufälliger Port verwendet.",
"publishServiceAddresses": "Zugriffsadressen des Dienstes",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index b50e50897..ae35e1f74 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -111,7 +111,7 @@
"publish": "Publish",
"publishService": "Publish service",
"publishServiceNotStarted": "Publish Service Not Started",
- "publishServiceTip": "When enabled, the publish service will be started. This service publishes the content of the current workspace in read-only mode on the local network.",
+ "publishServiceTip": "When enabled, the publish service will be started. This service publishes the content of the current workspace in read-only mode on the local network. Please ensure the workspace does not contain sensitive information.",
"publishServicePort": "Service port",
"publishServicePortTip": "Enable the publish service using the specified port number. If set to 0, a random port will be used.",
"publishServiceAddresses": "Service access addresses",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 1985216ed..c2ad3584d 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -111,7 +111,7 @@
"publish": "Publicar",
"publishService": "Publicar servicio",
"publishServiceNotStarted": "Servicio de publicación no iniciado",
- "publishServiceTip": "Al activar esto, se iniciará el servicio de publicación. Este servicio publicará el contenido del espacio de trabajo actual en modo de solo lectura en la LAN",
+ "publishServiceTip": "Al activar esto, se iniciará el servicio de publicación. Este servicio publicará el contenido del espacio de trabajo actual en modo de solo lectura en la LAN. Asegúrese de que el espacio de trabajo no contenga información sensible.",
"publishServicePort": "Número de puerto del servicio",
"publishServicePortTip": "Activar el servicio de publicación con el número de puerto especificado. Si se establece en 0, se utilizará un puerto aleatorio",
"publishServiceAddresses": "Direcciones de acceso al servicio",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 0dd7885c6..275cd5467 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -111,7 +111,7 @@
"publish": "Publier",
"publishService": "Publier le service",
"publishServiceNotStarted": "Service de publication non démarré",
- "publishServiceTip": "Lorsqu'activé, le service de publication démarre. Ce service publie en mode lecture seule le contenu de l'espace de travail actuel dans le réseau local.",
+ "publishServiceTip": "Lorsqu'activé, le service de publication démarre. Ce service publie en mode lecture seule le contenu de l'espace de travail actuel dans le réseau local. Veuillez vous assurer que l'espace de travail ne contient pas d'informations sensibles.",
"publishServicePort": "Numéro de port du service",
"publishServicePortTip": "Active le service de publication avec le numéro de port spécifié. Si défini sur 0, un port aléatoire sera utilisé.",
"publishServiceAddresses": "Adresses d'accès au service",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index c26b5c2a2..db9bfbbfd 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -111,7 +111,7 @@
"publish": "פרסם",
"publishService": "שירות פרסום",
"publishServiceNotStarted": "שירות פרסום לא החל",
- "publishServiceTip": "כאשר השירות מופעל, השירות יתחיל. שירות זה מפרסם את תוכן הממשק הנוכחי במצב קריאה בלבד ברשת המקומית.",
+ "publishServiceTip": "כאשר השירות מופעל, השירות יתחיל. שירות זה מפרסם את תוכן הממשק הנוכחי במצב קריאה בלבד ברשת המקומית. וודא שמרחב העבודה אינו מכיל מידע רגיש.",
"publishServicePort": "פורט שירות",
"publishServicePortTip": "הפעל את שירות הפרסום באמצעות מספר הפורט שנבחר. אם קובע ל 0, פורט אקראי ייחשב.",
"publishServiceAddresses": "כתובות גישה לשירות",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index a2a98f2d7..f2ba11488 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -111,7 +111,7 @@
"publish": "Pubblica",
"publishService": "Servizio di pubblicazione",
"publishServiceNotStarted": "Servizio di pubblicazione non avviato",
- "publishServiceTip": "Quando abilitato, il servizio di pubblicazione verrà avviato. Questo servizio pubblica il contenuto dell'attuale area di lavoro in modalità di sola lettura sulla rete locale.",
+ "publishServiceTip": "Quando abilitato, il servizio di pubblicazione verrà avviato. Questo servizio pubblica il contenuto dell'attuale area di lavoro in modalità di sola lettura sulla rete locale. Assicurarsi che l'area di lavoro non contenga informazioni sensibili.",
"publishServicePort": "Porta del servizio",
"publishServicePortTip": "Abilita il servizio di pubblicazione utilizzando il numero di porta specificato. Se impostato su 0, verrà utilizzata una porta casuale.",
"publishServiceAddresses": "Indirizzi di accesso al servizio",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index 20214581b..e59be3fe7 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -111,7 +111,7 @@
"publish": "公開する",
"publishService": "サービスを公開",
"publishServiceNotStarted": "サービスが開始されていません",
- "publishServiceTip": "有効にすると、サービスを開始します。このサービスは、現在のワークスペースの内容を読み取り専用モードでローカルネットワークに公開します",
+ "publishServiceTip": "有効にすると、サービスを開始します。このサービスは、現在のワークスペースの内容を読み取り専用モードでローカルネットワークに公開します。ワークスペースに機密情報が含まれていないことを確認してください。",
"publishServicePort": "サービスポート",
"publishServicePortTip": "指定したポート番号を使用してサービスを有効にします。0 に設定するとランダムなポートが使用されます",
"publishServiceAddresses": "サービスアドレス",
diff --git a/app/appearance/langs/ko_KR.json b/app/appearance/langs/ko_KR.json
index 0166c50a8..36b1d25e2 100644
--- a/app/appearance/langs/ko_KR.json
+++ b/app/appearance/langs/ko_KR.json
@@ -111,7 +111,7 @@
"publish": "게시",
"publishService": "게시 서비스",
"publishServiceNotStarted": "게시 서비스가 시작되지 않음",
- "publishServiceTip": "활성화하면 게시 서비스가 시작됩니다. 이 서비스는 현재 작업 공간의 내용을 로컬 네트워크에 읽기 전용 모드로 게시합니다.",
+ "publishServiceTip": "활성화하면 게시 서비스가 시작됩니다. 이 서비스는 현재 작업 공간의 내용을 로컬 네트워크에 읽기 전용 모드로 게시합니다. 작업 공간에 민감한 정보가 포함되어 있지 않은지 확인하세요.",
"publishServicePort": "서비스 포트",
"publishServicePortTip": "지정된 포트 번호를 사용하여 게시 서비스를 활성화합니다. 0으로 설정하면 무작위 포트가 사용됩니다.",
"publishServiceAddresses": "서비스 액세스 주소",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index 74528b706..342b743a4 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -111,7 +111,7 @@
"publish": "Opublikuj",
"publishService": "Opublikuj usługę",
"publishServiceNotStarted": "Usługa publikacji nie została uruchomiona",
- "publishServiceTip": "Po włączeniu usługa publikacji zostanie uruchomiona. Usługa ta publikuje zawartość bieżącego obszaru roboczego w trybie tylko do odczytu w sieci lokalnej.",
+ "publishServiceTip": "Po włączeniu usługa publikacji zostanie uruchomiona. Usługa ta publikuje zawartość bieżącego obszaru roboczego w trybie tylko do odczytu w sieci lokalnej. Upewnij się, że obszar roboczy nie zawiera poufnych informacji.",
"publishServicePort": "Port usługi",
"publishServicePortTip": "Włącz usługę publikacji, używając określonego numeru portu. Jeśli ustawione na 0, zostanie użyty losowy port.",
"publishServiceAddresses": "Adresy dostępu do usługi",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index 693139130..1db1ef0ac 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -111,7 +111,7 @@
"publish": "Publicar",
"publishService": "Serviço de publicação",
"publishServiceNotStarted": "Serviço de Publicação Não Iniciado",
- "publishServiceTip": "Quando ativado, o serviço de publicação será iniciado. Este serviço publica o conteúdo do espaço de trabalho atual em modo somente leitura na rede local.",
+ "publishServiceTip": "Quando ativado, o serviço de publicação será iniciado. Este serviço publica o conteúdo do espaço de trabalho atual em modo somente leitura na rede local. Certifique-se de que o espaço de trabalho não contenha informações sensíveis.",
"publishServicePort": "Porta do serviço",
"publishServicePortTip": "Ativar o serviço de publicação usando o número da porta especificado. Se definido como 0, uma porta aleatória será usada.",
"publishServiceAddresses": "Endereços de acesso ao serviço",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index 8af9160af..e72410505 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -111,7 +111,7 @@
"publish": "Опубликовать",
"publishService": "Сервис публикации",
"publishServiceNotStarted": "Сервис публикации не запущен",
- "publishServiceTip": "При включении сервис публикации будет запущен. Сервис публикует содержимое текущего рабочего пространства в режиме только для чтения по локальной сети.",
+ "publishServiceTip": "При включении сервис публикации будет запущен. Сервис публикует содержимое текущего рабочего пространства в режиме только для чтения по локальной сети. Убедитесь, что в рабочем пространстве нет конфиденциальной информации.",
"publishServicePort": "Порт сервиса",
"publishServicePortTip": "Включите сервис публикации с использованием указанного номера порта. Установите на 0, будет использован случайный порт.",
"publishServiceAddresses": "Адреса доступа к сервису",
diff --git a/app/appearance/langs/tr_TR.json b/app/appearance/langs/tr_TR.json
index c9ed42e7b..febfe507b 100644
--- a/app/appearance/langs/tr_TR.json
+++ b/app/appearance/langs/tr_TR.json
@@ -111,7 +111,7 @@
"publish": "Yayınla",
"publishService": "Yayın servisi",
"publishServiceNotStarted": "Yayın Servisi Başlatılmadı",
- "publishServiceTip": "Etkinleştirildiğinde, yayın servisi başlatılır. Bu servis, geçerli çalışma alanı içeriğini yerel ağda salt okunur olarak yayınlar.",
+ "publishServiceTip": "Etkinleştirildiğinde, yayın servisi başlatılır. Bu servis, geçerli çalışma alanı içeriğini yerel ağda salt okunur olarak yayınlar. Lütfen çalışma alanında hassas bilgi bulunmadığından emin olun.",
"publishServicePort": "Servis portu",
"publishServicePortTip": "Belirtilen port numarasıyla yayın servisini etkinleştir. 0 olarak ayarlanırsa rastgele bir port kullanılır.",
"publishServiceAddresses": "Servis erişim adresleri",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 1aa936310..2e7f41e30 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -111,7 +111,7 @@
"publish": "發布",
"publishService": "發布服務",
"publishServiceNotStarted": "發布服務未啟動",
- "publishServiceTip": "啟用後將啟動發布服務。該服務以只讀模式在區域網中發布當前工作空間的內容",
+ "publishServiceTip": "啟用後將啟動發布服務。該服務以只讀模式在區域網中發布當前工作空間的內容,請確保工作空間中不包含敏感資訊",
"publishServicePort": "服務端口號",
"publishServicePortTip": "使用指定的端口號啟用發布服務。若設置為 0 則使用隨機端口",
"publishServiceAddresses": "服務訪問地址",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index b5aa71faf..acb3ffe1c 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -111,7 +111,7 @@
"publish": "发布",
"publishService": "发布服务",
"publishServiceNotStarted": "发布服务未启动",
- "publishServiceTip": "启用后将启动发布服务。该服务以只读模式在局域网中发布当前工作空间的内容",
+ "publishServiceTip": "启用后将启动发布服务。该服务以只读模式在局域网中发布当前工作空间的内容,请确保工作空间中不包含敏感信息",
"publishServicePort": "服务端口号",
"publishServicePortTip": "使用指定的端口号启用发布服务。若设置为 0 则使用随机端口",
"publishServiceAddresses": "服务访问地址",
From 4ce296d7ae437a82943ab1fda4faaf27a485ce47 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Sun, 1 Feb 2026 09:49:49 +0800
Subject: [PATCH 2/5] :art:
https://github.com/siyuan-note/siyuan/issues/16909#issuecomment-3830047085
Signed-off-by: Daniel <845765@qq.com>
---
app/appearance/langs/ar_SA.json | 2 +-
app/appearance/langs/de_DE.json | 2 +-
app/appearance/langs/en_US.json | 2 +-
app/appearance/langs/es_ES.json | 2 +-
app/appearance/langs/fr_FR.json | 2 +-
app/appearance/langs/he_IL.json | 2 +-
app/appearance/langs/it_IT.json | 2 +-
app/appearance/langs/ja_JP.json | 2 +-
app/appearance/langs/ko_KR.json | 2 +-
app/appearance/langs/pl_PL.json | 2 +-
app/appearance/langs/pt_BR.json | 2 +-
app/appearance/langs/ru_RU.json | 2 +-
app/appearance/langs/tr_TR.json | 2 +-
app/appearance/langs/zh_CHT.json | 2 +-
app/appearance/langs/zh_CN.json | 2 +-
15 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json
index 3e06af406..a6b8d9b58 100644
--- a/app/appearance/langs/ar_SA.json
+++ b/app/appearance/langs/ar_SA.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "ترتيب تصاعدي حسب الصلة",
"saveCriterion": "حفظ معايير الاستعلام",
"useCriterion": "الاستعلام التالي لن يستخدم معايير الاستعلام الحالية",
- "removeCriterion": "إزالة معايير الاستعلام",
+ "removeCriterion": "إعادة تعيين شروط الاستعلام",
"group": "تصنيف",
"noGroupBy": "دون تصنيف",
"groupByDoc": "تصنيف حسب المستند",
diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json
index ec931f887..5f0a96785 100644
--- a/app/appearance/langs/de_DE.json
+++ b/app/appearance/langs/de_DE.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Relevanz ASC",
"saveCriterion": "Suchkriterien speichern",
"useCriterion": "Die nächste Abfrage wird die aktuellen Suchkriterien nicht mehr verwenden",
- "removeCriterion": "Suchkriterien entfernen",
+ "removeCriterion": "Suchkriterien zurücksetzen",
"group": "Gruppe",
"noGroupBy": "Keine Gruppierung",
"groupByDoc": "Nach Dokument gruppieren",
diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index ae35e1f74..5da146e9a 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Relevance ASC",
"saveCriterion": "Save query criteria",
"useCriterion": "The next query will no longer use the current query criteria",
- "removeCriterion": "Remove query criteria",
+ "removeCriterion": "Reset query criteria",
"group": "Group",
"noGroupBy": "No grouping",
"groupByDoc": "Group by document",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index c2ad3584d..0b51f8ecf 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Relevancia ASC",
"saveCriterion": "Guardar criterios de consulta",
"useCriterion": "Las condiciones de consulta actuales ya no se utilizarán para la siguiente consulta",
- "removeCriterion": "Eliminar criterios de consulta",
+ "removeCriterion": "Restablecer criterios de consulta",
"group": "Grupo",
"noGroupBy": "Sin agrupar",
"groupByDoc": "Agrupar por documento",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index 275cd5467..a6cc61a3b 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "ASC de pertinence",
"saveCriterion": "Enregistrer les critères de requête",
"useCriterion": "Les conditions de requête actuelles ne seront plus utilisées pour la prochaine requête",
- "removeCriterion": "Supprimer les critères de requête",
+ "removeCriterion": "Réinitialiser les critères de recherche",
"group": "Groupe",
"noGroupBy": "Aucun regroupement",
"groupByDoc": "Regrouper par document",
diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json
index db9bfbbfd..9f56b778b 100644
--- a/app/appearance/langs/he_IL.json
+++ b/app/appearance/langs/he_IL.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "רלוונטיות ASC",
"saveCriterion": "שמור קריטריוני שאילתה",
"useCriterion": "השאילתה הבאה לא תשתמש יותר בקריטריוני השאילתה הנוכחיים",
- "removeCriterion": "הסר קריטריוני שאילתה",
+ "removeCriterion": "איפוס תנאי השאילתה",
"group": "קבוצה",
"noGroupBy": "ללא קבוצות",
"groupByDoc": "קבוצה לפי מסמך",
diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json
index f2ba11488..a7119e38f 100644
--- a/app/appearance/langs/it_IT.json
+++ b/app/appearance/langs/it_IT.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Rilevanza ASC",
"saveCriterion": "Salva criteri di ricerca",
"useCriterion": "La prossima ricerca non utilizzerà più i criteri di ricerca correnti",
- "removeCriterion": "Rimuovi criteri di ricerca",
+ "removeCriterion": "Reimposta i criteri di ricerca",
"group": "Gruppo",
"noGroupBy": "Nessun raggruppamento",
"groupByDoc": "Raggruppa per documento",
diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json
index e59be3fe7..96f1a36dd 100644
--- a/app/appearance/langs/ja_JP.json
+++ b/app/appearance/langs/ja_JP.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "関連性 (昇順)",
"saveCriterion": "検索条件を保存",
"useCriterion": "次回の検索条件を現在の検索条件で使用しない",
- "removeCriterion": "検索条件を削除",
+ "removeCriterion": "検索条件をリセット",
"group": "グループ ",
"noGroupBy": "グループ化なし",
"groupByDoc": "ドキュメントごとにグループ化",
diff --git a/app/appearance/langs/ko_KR.json b/app/appearance/langs/ko_KR.json
index 36b1d25e2..c3b4e0c5d 100644
--- a/app/appearance/langs/ko_KR.json
+++ b/app/appearance/langs/ko_KR.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "관련성 오름차순",
"saveCriterion": "쿼리 기준 저장",
"useCriterion": "다음 쿼리에서는 더 이상 현재 쿼리 기준을 사용하지 않습니다",
- "removeCriterion": "쿼리 기준 제거",
+ "removeCriterion": "검색 조건 초기화",
"group": "그룹",
"noGroupBy": "그룹화 안 함",
"groupByDoc": "문서별 그룹화",
diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json
index 342b743a4..1455b5273 100644
--- a/app/appearance/langs/pl_PL.json
+++ b/app/appearance/langs/pl_PL.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Relevance ASC",
"saveCriterion": "Zapisz kryteria zapytania",
"useCriterion": "Następne zapytanie nie wilno już używać bieżących kryteriów zapytania",
- "removeCriterion": "Usuń kryteria zapytania",
+ "removeCriterion": "Resetuj kryteria zapytania",
"group": "Grupa",
"noGroupBy": "Brak grupowania",
"groupByDoc": "Grupuj według dokumentu",
diff --git a/app/appearance/langs/pt_BR.json b/app/appearance/langs/pt_BR.json
index 1db1ef0ac..bda09ba2c 100644
--- a/app/appearance/langs/pt_BR.json
+++ b/app/appearance/langs/pt_BR.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Relevância ASC",
"saveCriterion": "Salvar critérios de consulta",
"useCriterion": "A próxima consulta não usará mais os critérios de consulta atuais",
- "removeCriterion": "Remover critérios de consulta",
+ "removeCriterion": "Redefinir critérios de consulta",
"group": "Grupo",
"noGroupBy": "Sem agrupamento",
"groupByDoc": "Agrupar por documento",
diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json
index e72410505..0dedba5ac 100644
--- a/app/appearance/langs/ru_RU.json
+++ b/app/appearance/langs/ru_RU.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Релевантность по возрастанию",
"saveCriterion": "Сохранить критерии запроса",
"useCriterion": "Следующий запрос больше не будет использовать текущие критерии запроса",
- "removeCriterion": "Удалить критерии запроса",
+ "removeCriterion": "Сбросить условия запроса",
"group": "Группа",
"noGroupBy": "Без группировки",
"groupByDoc": "Группировать по документу",
diff --git a/app/appearance/langs/tr_TR.json b/app/appearance/langs/tr_TR.json
index febfe507b..6f4e671d9 100644
--- a/app/appearance/langs/tr_TR.json
+++ b/app/appearance/langs/tr_TR.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "Alaka düzeyi (artan)",
"saveCriterion": "Sorgu ölçütünü kaydet",
"useCriterion": "Sonraki sorguda geçerli ölçüt kullanılmayacak",
- "removeCriterion": "Sorgu ölçütünü kaldır",
+ "removeCriterion": "Sorgu kriterlerini sıfırla",
"group": "Grup",
"noGroupBy": "Gruplama yok",
"groupByDoc": "Belgeye göre grupla",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 2e7f41e30..7bfd2fb3f 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "按相關度升序",
"saveCriterion": "保存查詢條件",
"useCriterion": "下次查詢不再使用目前查詢條件",
- "removeCriterion": "清空查詢條件",
+ "removeCriterion": "重置查詢條件",
"group": "分組",
"noGroupBy": "不分組",
"groupByDoc": "按文檔分組",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index acb3ffe1c..839ee5397 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -562,7 +562,7 @@
"sortByRankAsc": "按相关度升序",
"saveCriterion": "保存查询条件",
"useCriterion": "下次查询不再使用当前查询条件",
- "removeCriterion": "清空查询条件",
+ "removeCriterion": "重置查询条件",
"group": "分组",
"noGroupBy": "不分组",
"groupByDoc": "按文档分组",
From 89536ceb1905d8e2ba041ff3795a6d2c65b54189 Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Sun, 1 Feb 2026 10:20:50 +0800
Subject: [PATCH 3/5] :art:
https://github.com/siyuan-note/siyuan/issues/11569#issuecomment-3828712765
Signed-off-by: Daniel <845765@qq.com>
---
kernel/api/av.go | 16 +++++++++++-----
kernel/av/av.go | 7 ++++---
kernel/model/attribute_view_render.go | 7 ++++++-
3 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/kernel/api/av.go b/kernel/api/av.go
index 779c23680..ab4cfc2c3 100644
--- a/kernel/api/av.go
+++ b/kernel/api/av.go
@@ -212,7 +212,7 @@ func setAttrViewGroup(c *gin.Context) {
return
}
- ret = renderAttrView(blockID, avID, "", "", 1, -1, nil)
+ ret = renderAttrView(blockID, avID, "", "", 1, -1, nil, false)
c.JSON(http.StatusOK, ret)
}
@@ -235,7 +235,7 @@ func changeAttrViewLayout(c *gin.Context) {
return
}
- ret = renderAttrView(blockID, avID, "", "", 1, -1, nil)
+ ret = renderAttrView(blockID, avID, "", "", 1, -1, nil, false)
c.JSON(http.StatusOK, ret)
}
@@ -864,13 +864,19 @@ func renderAttributeView(c *gin.Context) {
groupPaging = groupPagingArg.(map[string]interface{})
}
- ret = renderAttrView(blockID, id, viewID, query, page, pageSize, groupPaging)
+ createIfNotExist := true
+ createIfNotExistArg := arg["createIfNotExist"]
+ if nil != createIfNotExistArg {
+ createIfNotExist = createIfNotExistArg.(bool)
+ }
+
+ ret = renderAttrView(blockID, id, viewID, query, page, pageSize, groupPaging, createIfNotExist)
c.JSON(http.StatusOK, ret)
}
-func renderAttrView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}) (ret *gulu.Result) {
+func renderAttrView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}, createIfNotExist bool) (ret *gulu.Result) {
ret = gulu.Ret.NewResult()
- view, attrView, err := model.RenderAttributeView(blockID, avID, viewID, query, page, pageSize, groupPaging)
+ view, attrView, err := model.RenderAttributeView(blockID, avID, viewID, query, page, pageSize, groupPaging, createIfNotExist)
if err != nil {
ret.Code = -1
ret.Msg = err.Error()
diff --git a/kernel/av/av.go b/kernel/av/av.go
index c2424eb6c..95aaf5d2e 100644
--- a/kernel/av/av.go
+++ b/kernel/av/av.go
@@ -877,9 +877,10 @@ func GetAttributeViewI18n(key string) string {
}
var (
- ErrViewNotFound = errors.New("view not found")
- ErrKeyNotFound = errors.New("key not found")
- ErrWrongLayoutType = errors.New("wrong layout type")
+ ErrAttributeViewNotFound = errors.New("attribute view not found")
+ ErrViewNotFound = errors.New("view not found")
+ ErrKeyNotFound = errors.New("key not found")
+ ErrWrongLayoutType = errors.New("wrong layout type")
)
const (
diff --git a/kernel/model/attribute_view_render.go b/kernel/model/attribute_view_render.go
index cb2c44bcf..5b78d21d3 100644
--- a/kernel/model/attribute_view_render.go
+++ b/kernel/model/attribute_view_render.go
@@ -35,10 +35,15 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
-func RenderAttributeView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}) (viewable av.Viewable, attrView *av.AttributeView, err error) {
+func RenderAttributeView(blockID, avID, viewID, query string, page, pageSize int, groupPaging map[string]interface{}, createIfNotExist bool) (viewable av.Viewable, attrView *av.AttributeView, err error) {
waitForSyncingStorages()
if avJSONPath := av.GetAttributeViewDataPath(avID); !filelock.IsExist(avJSONPath) {
+ if !createIfNotExist {
+ err = av.ErrAttributeViewNotFound
+ return
+ }
+
attrView = av.NewAttributeView(avID)
if err = av.SaveAttributeView(attrView); err != nil {
logging.LogErrorf("save attribute view [%s] failed: %s", avID, err)
From 247d8e46f148c1c581bae98a23e8ca651cd3f4ed Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Sun, 1 Feb 2026 10:31:51 +0800
Subject: [PATCH 4/5] :bug: Fix npe
Signed-off-by: Daniel <845765@qq.com>
---
kernel/model/repository.go | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/kernel/model/repository.go b/kernel/model/repository.go
index 8c7960a81..6e44edbee 100644
--- a/kernel/model/repository.go
+++ b/kernel/model/repository.go
@@ -2263,13 +2263,14 @@ func GetCloudSpace() (s *Sync, b *Backup, hSize, hAssetSize, hTotalSize, hExchan
b.HSize = humanize.BytesCustomCeil(uint64(backupSize), 2)
hAssetSize = humanize.BytesCustomCeil(uint64(assetSize), 2)
hSize = humanize.BytesCustomCeil(uint64(totalSize), 2)
- u := Conf.GetUser()
- hTotalSize = humanize.BytesCustomCeil(uint64(u.UserSiYuanRepoSize), 2)
- hExchangeSize = humanize.BytesCustomCeil(uint64(u.UserSiYuanPointExchangeRepoSize), 2)
- hTrafficUploadSize = humanize.BytesCustomCeil(uint64(u.UserTrafficUpload), 2)
- hTrafficDownloadSize = humanize.BytesCustomCeil(uint64(u.UserTrafficDownload), 2)
- hTrafficAPIGet = humanize.SIWithDigits(u.UserTrafficAPIGet, 2, "")
- hTrafficAPIPut = humanize.SIWithDigits(u.UserTrafficAPIPut, 2, "")
+ if u := Conf.GetUser(); nil != u {
+ hTotalSize = humanize.BytesCustomCeil(uint64(u.UserSiYuanRepoSize), 2)
+ hExchangeSize = humanize.BytesCustomCeil(uint64(u.UserSiYuanPointExchangeRepoSize), 2)
+ hTrafficUploadSize = humanize.BytesCustomCeil(uint64(u.UserTrafficUpload), 2)
+ hTrafficDownloadSize = humanize.BytesCustomCeil(uint64(u.UserTrafficDownload), 2)
+ hTrafficAPIGet = humanize.SIWithDigits(u.UserTrafficAPIGet, 2, "")
+ hTrafficAPIPut = humanize.SIWithDigits(u.UserTrafficAPIPut, 2, "")
+ }
}
return
}
From a4059c62bc4dc803c2ce499e020f9ccd0a7dbdeb Mon Sep 17 00:00:00 2001
From: Daniel <845765@qq.com>
Date: Sun, 1 Feb 2026 10:46:21 +0800
Subject: [PATCH 5/5] :art:
https://github.com/siyuan-note/siyuan/issues/16854#issuecomment-3828689374
Signed-off-by: Daniel <845765@qq.com>
---
kernel/model/file.go | 43 +++++++++++++++++++++++++------------
kernel/model/push_reload.go | 4 ++++
kernel/model/tree.go | 4 ++++
3 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/kernel/model/file.go b/kernel/model/file.go
index 6f3d667c9..2bb3fddd1 100644
--- a/kernel/model/file.go
+++ b/kernel/model/file.go
@@ -1523,8 +1523,10 @@ func RemoveDoc(boxID, p string) {
FlushTxQueue()
luteEngine := util.NewLute()
- removeDoc(box, p, luteEngine)
+ tree := removeDoc(box, p, luteEngine)
IncSync()
+
+ refreshParentDocInfo(tree)
return
}
@@ -1536,15 +1538,29 @@ func RemoveDocs(paths []string) {
pathsBoxes := getBoxesByPaths(paths)
FlushTxQueue()
luteEngine := util.NewLute()
+
+ var trees []*parse.Tree
for p, box := range pathsBoxes {
- removeDoc(box, p, luteEngine)
+ tree := removeDoc(box, p, luteEngine)
+ trees = append(trees, tree)
+ }
+
+ parentTrees := map[string]*parse.Tree{}
+ for _, tree := range trees {
+ parentTree := loadParentTree(tree)
+ if nil != parentTree {
+ parentTrees[parentTree.ID] = parentTree
+ }
+ }
+ for _, parentTree := range parentTrees {
+ refreshDocInfo(parentTree)
}
return
}
-func removeDoc(box *Box, p string, luteEngine *lute.Lute) {
- tree, _ := filesys.LoadTree(box.ID, p, luteEngine)
- if nil == tree {
+func removeDoc(box *Box, p string, luteEngine *lute.Lute) (ret *parse.Tree) {
+ ret, _ = filesys.LoadTree(box.ID, p, luteEngine)
+ if nil == ret {
return
}
@@ -1561,16 +1577,16 @@ func removeDoc(box *Box, p string, luteEngine *lute.Lute) {
return
}
- generateAvHistoryInTree(tree, historyDir)
+ generateAvHistoryInTree(ret, historyDir)
copyDocAssetsToDataAssets(box.ID, p)
- removeIDs := treenode.RootChildIDs(tree.ID)
+ removeIDs := treenode.RootChildIDs(ret.ID)
dir := path.Dir(p)
- childrenDir := path.Join(dir, tree.ID)
+ childrenDir := path.Join(dir, ret.ID)
existChildren := box.Exist(childrenDir)
if existChildren {
- absChildrenDir := filepath.Join(util.DataDir, tree.Box, childrenDir)
- historyPath = filepath.Join(historyDir, tree.Box, childrenDir)
+ absChildrenDir := filepath.Join(util.DataDir, ret.Box, childrenDir)
+ historyPath = filepath.Join(historyDir, ret.Box, childrenDir)
if err = filelock.Copy(absChildrenDir, historyPath); err != nil {
logging.LogErrorf("backup [path=%s] to history [%s] failed: %s", absChildrenDir, historyPath, err)
return
@@ -1578,7 +1594,7 @@ func removeDoc(box *Box, p string, luteEngine *lute.Lute) {
}
indexHistoryDir(filepath.Base(historyDir), util.NewLute())
- allRemoveRootIDs := []string{tree.ID}
+ allRemoveRootIDs := []string{ret.ID}
allRemoveRootIDs = append(allRemoveRootIDs, removeIDs...)
allRemoveRootIDs = gulu.Str.RemoveDuplicatedElem(allRemoveRootIDs)
for _, rootID := range allRemoveRootIDs {
@@ -1616,9 +1632,8 @@ func removeDoc(box *Box, p string, luteEngine *lute.Lute) {
"ids": removeIDs,
}
util.PushEvent(evt)
-
- refreshParentDocInfo(tree)
- task.AppendTask(task.DatabaseIndex, removeDoc0, tree, childrenDir)
+ task.AppendTask(task.DatabaseIndex, removeDoc0, ret, childrenDir)
+ return
}
func removeDoc0(tree *parse.Tree, childrenDir string) {
diff --git a/kernel/model/push_reload.go b/kernel/model/push_reload.go
index 168d5291c..29180556a 100644
--- a/kernel/model/push_reload.go
+++ b/kernel/model/push_reload.go
@@ -145,6 +145,10 @@ func refreshDocInfoWithSize(tree *parse.Tree, size uint64) {
}
func refreshParentDocInfo(tree *parse.Tree) {
+ if nil == tree {
+ return
+ }
+
parentTree := loadParentTree(tree)
if nil == parentTree {
return
diff --git a/kernel/model/tree.go b/kernel/model/tree.go
index 9b69cfa32..96ff5989e 100644
--- a/kernel/model/tree.go
+++ b/kernel/model/tree.go
@@ -298,6 +298,10 @@ func indexTreeInFilesystem(blockID string) error {
}
func loadParentTree(tree *parse.Tree) (ret *parse.Tree) {
+ if nil == tree {
+ return
+ }
+
boxDir := filepath.Join(util.DataDir, tree.Box)
parentDir := path.Dir(tree.Path)
if parentDir == boxDir || parentDir == "/" {