diff --git a/docs/i18n-translation-guidelines.md b/docs/i18n-translation-guidelines.md index 0443bf1d..76efce47 100644 --- a/docs/i18n-translation-guidelines.md +++ b/docs/i18n-translation-guidelines.md @@ -159,6 +159,13 @@ Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL). > (`sidebar.scanFolder`, `sidebar.scanFolderResult.missing`), translated in a second pass, so the > "no remaining placeholders" claim holds again. +> **Status (2026-10, recipes folder protection):** the recipes storage directory (the first +> lora root's `recipes/` by default) is now excluded from the folder sidebar and refused by the +> folder delete/rename endpoints, adding 3 keys (`sidebar.deleteFolderModal.protectedTitle` / +> `.protectedMessage`, `sidebar.folderRoot.protectedStatus`). All 9 locales are translated +> (terminology in §2, "Folder sidebar feature" — the `recipe library` row), so the "no +> remaining placeholders" claim holds again. + > **Status (2026-10, reconcile walk progress):** a regular Refresh now reports the reconcile > walk per model root (which roots are being checked, how many model files have been seen, and > an ETA) and splits the progress bar into walk (0-50 %) and new-file (50-99 %) phases, which @@ -539,6 +546,7 @@ and a per-row verdict reads **no models** when the copy is deletable: |---|---| | copy (one directory per root holding the same relative folder) | zh-CN 副本 · zh-TW 副本 · ja コピー · ko 복사본 · fr copie · de Kopie · es copia · ru копия · he עותק | | symbolic link | zh-CN 符号链接 · zh-TW 符號連結 · ja シンボリックリンク · ko 심볼릭 링크 · fr lien symbolique · de symbolischer Link · es enlace simbólico · ru символическая ссылка · he קישור סמלי | +| recipe library (the protected `recipes/` storage dir) | zh-CN 配方库 · zh-TW 配方庫 · ja レシピライブラリ · ko 레시피 라이브러리 · fr bibliothèque de Recipes · de Rezept-Bibliothek · es biblioteca de recetas · ru библиотека рецептов · he ספריית המתכונים — the Recipe noun follows §1-R4 per locale; `protectedStatus` is a row verdict (fragment, no capitalization/period, keeps the locale's `—`/`——` dash style of the sibling `symlinkStatus`) | | unchecked (row / note wording) | zh-CN 未勾选 · zh-TW 未勾選 · ja チェックを外した · ko 선택하지 않은 · fr non cochée · de nicht angehakt · es no marcada · ru неотмеченная · he שלא סומן | | "no models" (row verdict) | zh-CN 无模型 · zh-TW 無模型 · ja モデルなし · ko 모델 없음 · fr aucun modèle · de keine Modelle · es sin modelos · ru моделей нет · he אין מודלים | | model root — plural ("more than one model root", "from {count} model roots") | zh-CN 模型根目录(多个模型根目录)· zh-TW 模型根目錄(多個模型根目錄)· ja モデルルート(複数のモデルルート)· ko 모델 루트(여러 모델 루트)· fr racine de modèle (plusieurs racines de modèle) · de Modell-Stammverzeichnis (mehrere Modell-Stammverzeichnisse) · es raíz de modelo (más de una raíz de modelo) · ru корневая папка моделей (несколько корневых папок моделей) · he שורש מודלים (יותר משורש מודלים אחד) | diff --git a/locales/de.json b/locales/de.json index b6d07519..6bc5b3b5 100644 --- a/locales/de.json +++ b/locales/de.json @@ -1416,6 +1416,8 @@ "missingMessage": "Dieser Ordner existiert nicht mehr auf dem Datenträger. Aktualisieren Sie die Seitenleiste und versuchen Sie es erneut.", "symlinkTitle": "Ordner ist ein symbolischer Link", "symlinkMessage": "Alle Kopien dieses Ordners sind symbolische Links; entfernen Sie den Link oder sein Ziel außerhalb von LoRA Manager.", + "protectedTitle": "Ordner ist geschützt", + "protectedMessage": "Dieser Ordner enthält die Rezept-Bibliothek und kann nicht aus LoRA Manager heraus gelöscht werden.", "busyTitle": "Eine Löschung steht noch aus", "checking": "Ordnerinhalt wird geprüft...", "confirm": "Ordner löschen", @@ -1458,6 +1460,7 @@ "busyStatus": "eine Löschung steht noch aus", "missingStatus": "existiert nicht mehr auf dem Datenträger", "symlinkStatus": "symbolischer Link — hier nicht löschbar", + "protectedStatus": "enthält die Rezept-Bibliothek — hier nicht löschbar", "unknownStatus": "konnte nicht geprüft werden", "deletedStatus": "gelöscht" }, diff --git a/locales/es.json b/locales/es.json index 741023ca..58914a4a 100644 --- a/locales/es.json +++ b/locales/es.json @@ -1416,6 +1416,8 @@ "missingMessage": "Esta carpeta ya no existe en el disco. Actualiza la barra lateral e inténtalo de nuevo.", "symlinkTitle": "La carpeta es un enlace simbólico", "symlinkMessage": "Todas las copias de esta carpeta son enlaces simbólicos; elimina el enlace o su destino fuera de LoRA Manager.", + "protectedTitle": "Carpeta protegida", + "protectedMessage": "Esta carpeta contiene la biblioteca de recetas y no se puede eliminar desde LoRA Manager.", "busyTitle": "Todavía hay una eliminación pendiente", "checking": "Comprobando el contenido de la carpeta...", "confirm": "Eliminar carpeta", @@ -1458,6 +1460,7 @@ "busyStatus": "todavía hay una eliminación pendiente", "missingStatus": "ya no existe en el disco", "symlinkStatus": "enlace simbólico — no se puede eliminar aquí", + "protectedStatus": "contiene la biblioteca de recetas — no se puede eliminar aquí", "unknownStatus": "no se pudo comprobar", "deletedStatus": "eliminada" }, diff --git a/locales/fr.json b/locales/fr.json index 87ff075a..9e905ba0 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -1416,6 +1416,8 @@ "missingMessage": "Ce dossier n’existe plus sur le disque. Actualisez la barre latérale et réessayez.", "symlinkTitle": "Le dossier est un lien symbolique", "symlinkMessage": "Toutes les copies de ce dossier sont des liens symboliques ; supprimez le lien ou sa cible en dehors de LoRA Manager.", + "protectedTitle": "Dossier protégé", + "protectedMessage": "Ce dossier contient la bibliothèque de Recipes et ne peut pas être supprimé depuis LoRA Manager.", "busyTitle": "Une suppression est encore en attente", "checking": "Vérification du contenu du dossier...", "confirm": "Supprimer le dossier", @@ -1458,6 +1460,7 @@ "busyStatus": "une suppression est encore en attente", "missingStatus": "n’existe plus sur le disque", "symlinkStatus": "lien symbolique — impossible à supprimer ici", + "protectedStatus": "contient la bibliothèque de Recipes — impossible à supprimer ici", "unknownStatus": "vérification impossible", "deletedStatus": "supprimé" }, diff --git a/locales/he.json b/locales/he.json index 88347428..94a0369a 100644 --- a/locales/he.json +++ b/locales/he.json @@ -1416,6 +1416,8 @@ "missingMessage": "תיקייה זו אינה קיימת עוד בדיסק. רענן את סרגל הצד ונסה שוב.", "symlinkTitle": "התיקייה היא קישור סמלי", "symlinkMessage": "כל העותקים של תיקייה זו הם קישורים סמליים; מחק את הקישור או את היעד שלו מחוץ ל-LoRA Manager.", + "protectedTitle": "תיקייה מוגנת", + "protectedMessage": "תיקייה זו מכילה את ספריית המתכונים ולא ניתן למחוק אותה מתוך LoRA Manager.", "busyTitle": "מחיקה עדיין ממתינה", "checking": "בודק את תוכן התיקייה...", "confirm": "מחק תיקייה", @@ -1458,6 +1460,7 @@ "busyStatus": "מחיקה עדיין ממתינה", "missingStatus": "אינו קיים עוד בדיסק", "symlinkStatus": "קישור סמלי — לא ניתן למחוק כאן", + "protectedStatus": "מכילה את ספריית המתכונים — לא ניתן למחוק כאן", "unknownStatus": "לא ניתן היה לבדוק", "deletedStatus": "נמחקה" }, diff --git a/locales/ja.json b/locales/ja.json index 0fda37b9..85062b69 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -1416,6 +1416,8 @@ "missingMessage": "このフォルダはディスク上に存在しません。サイドバーを再読み込みしてからもう一度お試しください。", "symlinkTitle": "フォルダがシンボリックリンクです", "symlinkMessage": "このフォルダのすべてのコピーがシンボリックリンクです。LoRA Manager の外でリンクまたはそのリンク先を削除してください。", + "protectedTitle": "フォルダは保護されています", + "protectedMessage": "このフォルダにはレシピライブラリが保存されているため、LoRA Manager から削除できません。", "busyTitle": "保留中の削除があります", "checking": "フォルダの内容を確認しています...", "confirm": "フォルダを削除", @@ -1458,6 +1460,7 @@ "busyStatus": "保留中の削除があります", "missingStatus": "ディスク上に存在しません", "symlinkStatus": "シンボリックリンク —— ここからは削除できません", + "protectedStatus": "レシピライブラリを保存 —— ここからは削除できません", "unknownStatus": "確認できませんでした", "deletedStatus": "削除しました" }, diff --git a/locales/ko.json b/locales/ko.json index be403a45..7f0d99d1 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -1416,6 +1416,8 @@ "missingMessage": "이 폴더는 디스크에 더 이상 존재하지 않습니다. 사이드바를 새로 고친 후 다시 시도하세요.", "symlinkTitle": "폴더가 심볼릭 링크입니다", "symlinkMessage": "이 폴더의 모든 복사본이 심볼릭 링크입니다. LoRA Manager 외부에서 링크 또는 그 대상을 삭제하세요.", + "protectedTitle": "보호된 폴더", + "protectedMessage": "이 폴더에는 레시피 라이브러리가 저장되어 있으므로 LoRA Manager에서 삭제할 수 없습니다.", "busyTitle": "대기 중인 삭제 작업이 있습니다", "checking": "폴더 내용을 확인하는 중...", "confirm": "폴더 삭제", @@ -1458,6 +1460,7 @@ "busyStatus": "대기 중인 삭제 작업이 있습니다", "missingStatus": "디스크에 존재하지 않습니다", "symlinkStatus": "심볼릭 링크 —— 여기에서는 삭제할 수 없습니다", + "protectedStatus": "레시피 라이브러리 보관 중 —— 여기에서는 삭제할 수 없습니다", "unknownStatus": "확인할 수 없습니다", "deletedStatus": "삭제됨" }, diff --git a/locales/ru.json b/locales/ru.json index 68349d2c..c9738f4f 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1416,6 +1416,8 @@ "missingMessage": "Эта папка больше не существует на диске. Обновите боковую панель и повторите попытку.", "symlinkTitle": "Папка является символической ссылкой", "symlinkMessage": "Все копии этой папки являются символическими ссылками; удалите ссылку или её цель вне LoRA Manager.", + "protectedTitle": "Папка защищена", + "protectedMessage": "В этой папке хранится библиотека рецептов, её нельзя удалить из LoRA Manager.", "busyTitle": "Удаление всё ещё отложено", "checking": "Проверка содержимого папки...", "confirm": "Удалить папку", @@ -1458,6 +1460,7 @@ "busyStatus": "удаление всё ещё отложено", "missingStatus": "больше не существует на диске", "symlinkStatus": "символическая ссылка — здесь удалить нельзя", + "protectedStatus": "содержит библиотеку рецептов — здесь удалить нельзя", "unknownStatus": "не удалось проверить", "deletedStatus": "удалено" }, diff --git a/locales/zh-CN.json b/locales/zh-CN.json index f10230c2..db20f658 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -1416,6 +1416,8 @@ "missingMessage": "该文件夹在磁盘上已不存在,请刷新侧边栏后重试。", "symlinkTitle": "文件夹是符号链接", "symlinkMessage": "该文件夹的每一份副本都是符号链接;请在 LoRA Manager 之外删除该链接或其指向的目标。", + "protectedTitle": "文件夹受保护", + "protectedMessage": "此文件夹存放着配方库,无法在 LoRA Manager 中删除。", "busyTitle": "仍有删除操作待处理", "checking": "正在检查文件夹内容...", "confirm": "删除文件夹", @@ -1458,6 +1460,7 @@ "busyStatus": "仍有删除操作待处理", "missingStatus": "磁盘上已不存在", "symlinkStatus": "符号链接 —— 无法在此删除", + "protectedStatus": "存放配方库 —— 无法在此删除", "unknownStatus": "无法检查", "deletedStatus": "已删除" }, diff --git a/locales/zh-TW.json b/locales/zh-TW.json index cc7849b1..628a68ab 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -1416,6 +1416,8 @@ "missingMessage": "該資料夾在磁碟上已不存在,請重新整理側邊欄後再試。", "symlinkTitle": "資料夾是符號連結", "symlinkMessage": "該資料夾的每一份副本都是符號連結;請在 LoRA Manager 之外刪除該連結或其指向的目標。", + "protectedTitle": "資料夾受保護", + "protectedMessage": "此資料夾存放著配方庫,無法在 LoRA Manager 中刪除。", "busyTitle": "仍有刪除操作待處理", "checking": "正在檢查資料夾內容...", "confirm": "刪除資料夾", @@ -1458,6 +1460,7 @@ "busyStatus": "仍有刪除操作待處理", "missingStatus": "磁碟上已不存在", "symlinkStatus": "符號連結 —— 無法在此刪除", + "protectedStatus": "存放配方庫 —— 無法在此刪除", "unknownStatus": "無法檢查", "deletedStatus": "已刪除" },