diff --git a/app/appearance/langs/ar_SA.json b/app/appearance/langs/ar_SA.json index 91d605545..3bdf91a1f 100644 --- a/app/appearance/langs/ar_SA.json +++ b/app/appearance/langs/ar_SA.json @@ -1470,7 +1470,7 @@ "129": "البيانات السحابية تالفة، يرجى إعادة تعيين مستودع البيانات المحلية ومزامنة السحابة لحل المشكلة", "130": "بدأ تثبيت الإصدار الجديد. نظرًا لأن نظام التشغيل سيقوم بإجراء مسح أمني، قد يستغرق بعض الوقت للبدء. الرجاء الانتظار...", "131": "هذه العملية غير مدعومة، يرجى الذهاب إلى وحدة إدارة موفر التخزين السحابي للعمل", - "132": "طريقة البحث الحالية لا تدعم عملية الاستبدال، الرجاء استخدام طريقة البحث [الكلمة المفتاحية] أو [التعبير النمطي]", + "132": "وضع البحث SQL لا يدعم عملية الاستبدال، يرجى استخدام طريقة بحث أخرى", "133": "‫تنزيل حزمة تثبيت التحديث [%s]‬", "134": "للحيلولة دون تجاوز البيانات المستعادة حديثا عن طريق المزامنة، تم تعليق وظيفة مزامنة البيانات تلقائيًا", "135": "‫مفتاح مستودع البيانات غير صحيح ولا يمكن فك تشفير البيانات. الرجاء الرجوع إلى الخطوات في FAQ-Lost Key من دليل المستخدم لحل المشكلة‬", diff --git a/app/appearance/langs/de_DE.json b/app/appearance/langs/de_DE.json index 81df8a277..7b2a230f1 100644 --- a/app/appearance/langs/de_DE.json +++ b/app/appearance/langs/de_DE.json @@ -1470,7 +1470,7 @@ "129": "Cloud-Daten wurden beschädigt, bitte setzen Sie das lokale Daten-Repository und das Cloud-Sync-Verzeichnis zurück, um das Problem zu beheben", "130": "Der Installer der neuen Version wird gestartet. Da das Betriebssystem eine Sicherheitsprüfung durchführen wird, kann es einige Zeit dauern, bis es startet. Bitte warten Sie...", "131": "Dieser Vorgang wird nicht unterstützt, bitte gehen Sie zur Verwaltungsoberfläche des Cloud-Speicherdienstanbieters, um zu operieren", - "132": "Die aktuelle Suchmethode unterstützt nicht die Ersetzungsoperation. Bitte verwenden Sie die Suchmethoden [Keyword] oder [Regex]", + "132": "Der SQL-Suchmodus unterstützt die Ersetzungsoperation nicht, bitte verwenden Sie eine andere Suchmethode", "133": "Herunterladen des Update-Installationspakets [%s]", "134": "Um zu verhindern, dass die neu wiederhergestellten Daten durch die Synchronisierung überschrieben werden, wurde die Funktion der Datensynchronisierung automatisch ausgesetzt.", "135": "Der Schlüssel des Daten-Repositorys ist falsch und die Daten können nicht entschlüsselt werden. Bitte beziehen Sie sich auf das Benutzerhandbuch - FAQ - Schritte bei verlorenem Schlüssel, um das Problem zu lösen.", diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json index e072f8da6..c8f54561c 100644 --- a/app/appearance/langs/en_US.json +++ b/app/appearance/langs/en_US.json @@ -1470,7 +1470,7 @@ "129": "Cloud data has been corrupted, please reset the local data repo and cloud sync dir to resolve the issue", "130": "The new version installer is starting. Since the operating system will perform a security scan, it may take some time to start. Please wait...", "131": "This operation is not supported, please go to the cloud storage provider management console to operate", - "132": "The current search method does not support the replace operation, please use the [Keyword] or [Regex] search method", + "132": "SQL search mode does not support the replace operation, please use another search method", "133": "Downloading update installation package [%s]", "134": "In order to prevent the newly restored data from being overwritten by synchronization, the data synchronization function has been automatically suspended", "135": "The data repo key is incorrect and the data cannot be decrypted. Please refer to the User Guide-FAQ-Lost Key steps to resolve the issue", diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json index d30550b39..12601b241 100644 --- a/app/appearance/langs/es_ES.json +++ b/app/appearance/langs/es_ES.json @@ -1470,7 +1470,7 @@ "129": "Los datos de la nube se han dañado, reinicie el repositorio de datos local y el directorio de sincronización en la nube para resolver el problema", "130": "El instalador de la nueva versión se está iniciando. Dado que el sistema operativo realizará un análisis de seguridad, es posible que tarde algún tiempo en iniciarse. Espere...", "131": "Esta solicitud no es compatible, vaya a la consola de administración del proveedor de almacenamiento en la nube para operar", - "132": "El método de búsqueda actual no admite la operación de reemplazo, utilice el método de búsqueda [Palabra clave] o [Regex]", + "132": "El modo de búsqueda SQL no admite la operación de reemplazo, utilice otro método de búsqueda", "133": "Descargando paquete de instalación de actualización [%s]", "134": "Para evitar que los datos recién restaurados sean sobrescritos por la sincronización, se ha suspendido automáticamente la función de sincronización de datos", "135": "La clave del repositorio de datos es incorrecta y los datos no se pueden descifrar. Consulte los pasos User Guide-FAQ-Lost Key para resolver el problema", diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json index 63c1979bb..9f0ff4f90 100644 --- a/app/appearance/langs/fr_FR.json +++ b/app/appearance/langs/fr_FR.json @@ -1470,7 +1470,7 @@ "129": "Les données cloud ont été corrompues, veuillez réinitialiser le dépôt de données local et le répertoire de synchronisation cloud pour résoudre le problème", "130": "Le programme d'installation de la nouvelle version démarre. Étant donné que le système d'exploitation va effectuer une analyse de sécurité, le démarrage peut prendre un certain temps. Veuillez patienter...", "131": "Cette opération n'est pas prise en charge, veuillez vous rendre sur la console de gestion du fournisseur de stockage cloud pour opérer", - "132": "La méthode de recherche actuelle ne prend pas en charge l'opération de remplacement, veuillez utiliser la méthode de recherche [Mot-clé] ou [Regex]", + "132": "Le mode de recherche SQL ne prend pas en charge l'opération de remplacement, veuillez utiliser une autre méthode de recherche", "133": "Téléchargement du package d'installation de la mise à jour [%s]", "134": "Afin d'éviter que les données nouvellement restaurées ne soient écrasées par la synchronisation, la fonction de synchronisation des données a été automatiquement suspendue", "135": "La clé du dépôt de données est incorrecte et les données ne peuvent pas être déchiffrées. Veuillez vous référer aux étapes du User Guide-FAQ-Lost Key pour résoudre le problème", diff --git a/app/appearance/langs/he_IL.json b/app/appearance/langs/he_IL.json index 4c9405c07..f122ec9ae 100644 --- a/app/appearance/langs/he_IL.json +++ b/app/appearance/langs/he_IL.json @@ -1470,7 +1470,7 @@ "129": "נתוני הענן פגומים, אנא אפס את מאגר הנתונים המקומי ואת תיקיית הסנכרון בענן כדי לפתור את הבעיה", "130": "המתקין של הגרסה החדשה מתחיל. מאחר שהמערכת תבצע סריקת אבטחה, ידרוש זה להמתין קצת לעבודה. אנא המתן...", "131": "פעולה זו אינה נתמכת, אנא פנה ללוח הניהול של ספק שירותי אחסון הענן כדי פעולה", - "132": "שיטת החיפוש הנוכחית אינה תומכת בפעולת החלפה, אנא השתמש בשיטת החיפוש [מילת מפתח] או [regex]", + "132": "מצב חיפוש SQL אינו תומך בפעולת החלפה, השתמש בשיטת חיפוש אחרת", "133": "מוריד חבילת ההתקנה של העדכון [%s]", "134": "כדי למנוע מהנתונים המוגדרים לכתיבה מחדש על ידי סנכרון, פונקציית הסנכרון בוטלה אוטומטית", "135": "מפתח מאגר הנתונים שגוי והנתונים אינם יכולים להיות מוצפנים. אנא עיין במדריך המשתמש - שאלות ותשובות - צעדים לאיבוד מפתח כדי לפתור את הבעיה", diff --git a/app/appearance/langs/it_IT.json b/app/appearance/langs/it_IT.json index ab502dcac..87c65681c 100644 --- a/app/appearance/langs/it_IT.json +++ b/app/appearance/langs/it_IT.json @@ -1470,7 +1470,7 @@ "129": "I dati cloud sono stati corrotti, si prega di ripristinare il repository dati locale e la directory di sincronizzazione cloud per risolvere il problema", "130": "L'installatore della nuova versione sta per avviarsi. Poiché il sistema operativo eseguirà una scansione di sicurezza, potrebbe richiedere del tempo per avviarsi. Si prega di attendere...", "131": "Questa operazione non è supportata, si prega di andare al pannello di gestione del fornitore di archiviazione cloud per operare", - "132": "L'attuale metodo di ricerca non supporta l'operazione di sostituzione, si prega di utilizzare il metodo di ricerca [Parola Chiave] o [Regex]", + "132": "La modalità di ricerca SQL non supporta l'operazione di sostituzione, utilizzare un altro metodo di ricerca", "133": "Scaricamento pacchetto di installazione dell'aggiornamento [%s]", "134": "Per prevenire la sovrascrittura dei dati appena ripristinati tramite sincronizzazione, la funzione di sincronizzazione dei dati è stata automaticamente sospesa", "135": "La chiave del repository dati è errata e i dati non possono essere decrittografati. Si prega di consultare la Guida dell'utente-FAQ-Passi per chiave persa per risolvere il problema", diff --git a/app/appearance/langs/ja_JP.json b/app/appearance/langs/ja_JP.json index ae10c084b..69ba36c01 100644 --- a/app/appearance/langs/ja_JP.json +++ b/app/appearance/langs/ja_JP.json @@ -1470,7 +1470,7 @@ "129": "クラウドデータが破損しています。問題を解決するためにローカルデータリポジトリとクラウド同期ディレクトリをリセットしてください", "130": "新しいバージョンのインストーラーを起動しています。オペレーティングシステムがセキュリティスキャンを実行するため起動に時間がかかる場合があります。しばらくお待ちください...", "131": "この操作はサポートされていません。クラウドストレージプロバイダーの管理コンソールから操作してください", - "132": "現在の検索方法は置換操作をサポートしていません。[キーワード] または [正規表現] を使用してください", + "132": "SQL 検索モードでは置換操作はサポートされていません。他の検索方法を使用してください", "133": "更新インストールパッケージをダウンロード中 [%s]", "134": "新しく復元されたデータが同期によって上書きされるのを防ぐため、データ同期機能が自動的に一時停止されました", "135": "データリポジトリキーが間違っているためデータを復号できません。問題を解決するために [ユーザーガイド] - [FAQ] - [キーの紛失] の手順を参照してください", diff --git a/app/appearance/langs/pl_PL.json b/app/appearance/langs/pl_PL.json index 18c8c0965..6e33163b6 100644 --- a/app/appearance/langs/pl_PL.json +++ b/app/appearance/langs/pl_PL.json @@ -1470,7 +1470,7 @@ "129": "Dane w chmurze zostały uszkodzone, proszę zresetować lokalne repozytorium danych i katalog synchronizacji w chmurze, aby rozwiązać problem", "130": "Instalator nowej wersji się uruchamia. Ponieważ system operacyjny wykona skanowanie zabezpieczeń, rozpoczęcie może zająć trochę czasu. Proszę czekać...", "131": "Ta operacja nie jest obsługiwana, proszę przejść do konsoli zarządzania dostawcy przechowywania w chmurze, aby wykonać operację", - "132": "Bieżąca metoda wyszukiwania nie obsługuje operacji zamiany, proszę użyć metody wyszukiwania [Słowo kluczowe] lub [Wyrażenie regex]", + "132": "Tryb wyszukiwania SQL nie obsługuje operacji zamiany, użyj innej metody wyszukiwania", "133": "Pobieranie pakietu instalacyjnego aktualizacji [%s]", "134": "Aby zapobiec nadpisaniu nowo przywróconych danych przez synchronizację, funkcja synchronizacji danych została automatycznie wstrzymana", "135": "Klucz repozytorium danych jest nieprawidłowy i dane nie mogą być odszyfrowane. Proszę zapoznać się z przewodnikiem użytkownika - FAQ - Kroki w przypadku zagubienia klucza w celu rozwiązania problemu", diff --git a/app/appearance/langs/ru_RU.json b/app/appearance/langs/ru_RU.json index e3a3056e3..350ad570f 100644 --- a/app/appearance/langs/ru_RU.json +++ b/app/appearance/langs/ru_RU.json @@ -1470,7 +1470,7 @@ "129": "Облачные данные были повреждены, пожалуйста, сбросьте локальный репозиторий данных и директорию облачной синхронизации, чтобы решить проблему", "130": "Установщик новой версии запускается. Поскольку операционная система выполнит проверку безопасности, может потребоваться некоторое время для запуска. Пожалуйста, подождите...", "131": "Эта операция не поддерживается, пожалуйста, перейдите в консоль управления поставщика облачного хранилища для выполнения операций", - "132": "Текущие метод поиска не поддерживает операцию замещения, пожалуйста, используйте метод поиска [Ключевое слово] или [Регулярное выражение]", + "132": "В режиме поиска SQL замена не поддерживается, используйте другой способ поиска", "133": "Загрузка установочного пакета обновления [%s]", "134": "Чтобы предотвратить перезапись новых восстановленных данных при синхронизации, функция синхронизации данных была автоматически приостановлена", "135": "Ключ репозитория данных неверен, и данные не могут быть расшифрованы. Пожалуйста, обратитесь к руководству пользователя - ЧАВО - Утерянные ключи, чтобы решить проблему", diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json index 3475fe3cf..ebcc19125 100644 --- a/app/appearance/langs/zh_CHT.json +++ b/app/appearance/langs/zh_CHT.json @@ -1470,7 +1470,7 @@ "129": "雲端資料已經損壞,請參考這裡解決該問題", "130": "正在啟動新版本安裝程式,由於作業系統會進行安全掃描,因此啟動可能需要一些時間,請稍等...", "131": "不支持該操作,請到雲端存儲提供商管理控制台進行操作", - "132": "當前搜索方式下不支持替換操作,請使用 [關鍵字] 或 [正則表達式] 搜索方式", + "132": "SQL 搜索方式下不支援替換操作,請使用其他搜索方式", "133": "正在下載更新安裝檔 [%s]", "134": "為避免剛恢復的資料被同步覆蓋,資料據同步功能已被自動暫停", "135": "資料倉儲金鑰不正確,無法解密資料。請參考 用戶指南-常見問題-遺失密鑰 步驟處理", diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json index 70bb5eb6d..21d3c80c7 100644 --- a/app/appearance/langs/zh_CN.json +++ b/app/appearance/langs/zh_CN.json @@ -1470,7 +1470,7 @@ "129": "云端数据已经损坏,请参考这里解决该问题", "130": "正在启动新版本安装程序,由于操作系统会进行安全扫描,所以启动可能需要一些时间,请稍等...", "131": "不支持该操作,请到云端存储提供商管理控制台进行操作", - "132": "当前搜索方式下不支持替换操作,请使用 [关键字] 或 [正则表达式] 搜索方式", + "132": "SQL 搜索方式下不支持替换操作,请使用其他搜索方式", "133": "正在下载更新安装包 [%s]", "134": "为避免刚恢复的数据被同步覆盖,数据同步功能已被自动暂停", "135": "数据仓库密钥不正确,无法解密数据。请参考 用户指南-常见问题-遗失密钥 步骤处理", diff --git a/app/src/mobile/menu/search.ts b/app/src/mobile/menu/search.ts index 00743fa6d..95444b151 100644 --- a/app/src/mobile/menu/search.ts +++ b/app/src/mobile/menu/search.ts @@ -35,7 +35,7 @@ import { } from "../../search/toggleHistory"; const replace = (element: Element, config: Config.IUILayoutTabSearchConfig, isAll: boolean) => { - if (config.method === 1 || config.method === 2) { + if (config.method === 2) { showMessage(window.siyuan.languages._kernel[132]); return; } @@ -55,7 +55,7 @@ const replace = (element: Element, config: Config.IUILayoutTabSearchConfig, isAl loadElement.nextElementSibling.classList.add("fn__none"); const currentId = currentLiElement.getAttribute("data-node-id"); fetchPost("/api/search/findReplace", { - k: config.method === 0 ? getKeyByLiElement(currentLiElement) : (document.querySelector("#toolbarSearch") as HTMLInputElement).value, + k: config.method === 0 || config.method === 1 ? getKeyByLiElement(currentLiElement) : (document.querySelector("#toolbarSearch") as HTMLInputElement).value, r: replaceInputElement.value, ids: isAll ? [] : [currentId], types: config.types, diff --git a/app/src/search/util.ts b/app/src/search/util.ts index 10eb5dc92..ed68ef685 100644 --- a/app/src/search/util.ts +++ b/app/src/search/util.ts @@ -9,14 +9,7 @@ import {openFile, openFileById} from "../editor/util"; import {showMessage} from "../dialog/message"; import {reloadProtyle} from "../protyle/util/reload"; import {MenuItem} from "../menus/Menu"; -import { - getDisplayName, - getNotebookIcon, - getNotebookName, - movePathTo, - pathPosix, - useShell -} from "../util/pathName"; +import {getDisplayName, getNotebookIcon, getNotebookName, movePathTo, pathPosix, useShell} from "../util/pathName"; import {Protyle} from "../protyle"; import {onGet} from "../protyle/util/onGet"; import {addLoading} from "../protyle/ui/initUI"; @@ -1161,7 +1154,7 @@ export const getArticle = (options: { }; export const replace = (element: Element, config: Config.IUILayoutTabSearchConfig, edit: Protyle, isAll: boolean) => { - if (config.method === 1 || config.method === 2) { + if (config.method === 2) { showMessage(window.siyuan.languages._kernel[132]); return; } @@ -1181,7 +1174,7 @@ export const replace = (element: Element, config: Config.IUILayoutTabSearchConfi loadElement.classList.remove("fn__none"); const currentId = currentList.getAttribute("data-node-id"); fetchPost("/api/search/findReplace", { - k: config.method === 0 ? getKeyByLiElement(currentList) : searchInputElement.value, + k: config.method === 0 || config.method === 1 ? getKeyByLiElement(currentList) : searchInputElement.value, r: replaceInputElement.value, method: config.method, types: config.types, diff --git a/kernel/model/search.go b/kernel/model/search.go index 9c6df2222..c676279b1 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -457,11 +457,17 @@ func prependNotebookNameInHPath(blocks []*Block) { func FindReplace(keyword, replacement string, replaceTypes map[string]bool, ids []string, paths, boxes []string, types map[string]bool, method, orderBy, groupBy int) (err error) { // method:0:文本,1:查询语法,2:SQL,3:正则表达式 - if 1 == method || 2 == method { + if 2 == method { err = errors.New(Conf.Language(132)) return } + if 1 == method { + // 将查询语法等价于关键字,因为 keyword 参数已经是结果关键字了 + // Find and replace supports query syntax https://github.com/siyuan-note/siyuan/issues/14937 + method = 0 + } + if 0 != groupBy { // 按文档分组后不支持替换 Need to be reminded that replacement operations are not supported after grouping by doc https://github.com/siyuan-note/siyuan/issues/10161 // 因为分组条件传入以后搜索只能命中文档块,会导致 全部替换 失效