From 0941f99226612a3e0f1ab86023699aceb05d2df6 Mon Sep 17 00:00:00 2001 From: Will Miao Date: Wed, 7 Oct 2026 15:26:08 +0800 Subject: [PATCH] i18n(sidebar): translate the folder-scan strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sidebar's "Scan this folder" entry and its vanished-folder warning were the last 2 [TODO: Translate] keys, so grep -c "TODO: Translate" locales/*.json is 0 everywhere again. scanFolder zh-CN 扫描此文件夹 · zh-TW 掃描此資料夾 · ja このフォルダをスキャン ko 이 폴더 스캔 · fr Analyser ce dossier · de Diesen Ordner scannen es Escanear esta carpeta · ru Сканировать эту папку · he סרוק תיקייה זו scanFolderResult.missing reused verbatim from each locale's existing renameFolderResult.missing / deleteFolderResult.missing — the situation is identical ("the folder vanished before the action ran"), so a third variant of the same sentence would only be a translation drift risk. The label follows each locale's "Check for updates in this folder" phrasing (检查此文件夹的更新 → 扫描此文件夹, Vérifier les mises à jour dans ce dossier → Analyser ce dossier) so the two refresh entries in the same menu read as a pair. docs/i18n-translation-guidelines.md gains the two rows in "Scoped scan and root availability" plus the updated status note. Verified: python scripts/sync_translation_keys.py --dry-run reports no pending changes, pytest tests/i18n 20 passed, frontend 1495 passed. --- docs/i18n-translation-guidelines.md | 7 ++++++- locales/de.json | 4 ++-- locales/es.json | 4 ++-- locales/fr.json | 4 ++-- locales/he.json | 4 ++-- locales/ja.json | 4 ++-- locales/ko.json | 4 ++-- locales/ru.json | 4 ++-- locales/zh-CN.json | 4 ++-- locales/zh-TW.json | 4 ++-- 10 files changed, 24 insertions(+), 19 deletions(-) diff --git a/docs/i18n-translation-guidelines.md b/docs/i18n-translation-guidelines.md index d48ec875..0443bf1d 100644 --- a/docs/i18n-translation-guidelines.md +++ b/docs/i18n-translation-guidelines.md @@ -155,7 +155,9 @@ Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL). > (`loras.controls.refresh.scopeSection` / `.rootOffline` / `.rootModels`) and the scan result > toasts (`toast.api.refreshCompleteScoped`, `.refreshKeptUnreachable`, `.scanRootUnreachable`), > 6 keys in total, translated in all 9 locales in the same pass (renderings in §2, "Scoped scan -> and root availability"), so the "no remaining placeholders" claim holds again. +> and root availability"). The sidebar's folder-level follow-up added 2 more +> (`sidebar.scanFolder`, `sidebar.scanFolderResult.missing`), translated in a second pass, 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 @@ -744,6 +746,9 @@ be read (an unreachable drive is no longer treated as deleted). | `refreshKeptUnreachable` ("{count} models kept: {paths} not reachable") | zh-CN 已保留 {count} 个模型:{paths} 当前不可访问 · zh-TW 已保留 {count} 個模型:{paths} 目前無法存取 · ja {count} 個のモデルを保持しました:{paths} にアクセスできません · ko 모델 {count}개 유지됨: {paths}에 접근할 수 없음 · fr {count} modèles conservés : {paths} inaccessible(s) · de {count} Modelle beibehalten: {paths} nicht erreichbar · es {count} modelos conservados: {paths} no accesible(s) · ru Сохранено моделей: {count} — {paths} недоступны · he נשמרו {count} מודלים: {paths} אינם זמינים | | `scanRootUnreachable` ("{scope} is not reachable right now. Nothing was changed.") | zh-CN {scope} 当前不可访问,未做任何改动。 · zh-TW {scope} 目前無法存取,未做任何變更。 · ja {scope} に現在アクセスできません。変更は行われていません。 · ko {scope}에 현재 접근할 수 없습니다. 변경된 내용은 없습니다. · fr {scope} est actuellement inaccessible. Aucune modification n’a été apportée. · de {scope} ist derzeit nicht erreichbar. Es wurde nichts geändert. · es {scope} no es accesible ahora mismo. No se ha cambiado nada. · ru {scope} сейчас недоступен. Изменений не внесено. · he {scope} אינו זמין כעת. לא בוצעו שינויים. | +| `sidebar.scanFolder` ("Scan this folder") | zh-CN 扫描此文件夹 · zh-TW 掃描此資料夾 · ja このフォルダをスキャン · ko 이 폴더 스캔 · fr Analyser ce dossier · de Diesen Ordner scannen · es Escanear esta carpeta · ru Сканировать эту папку · he סרוק תיקייה זו | +| `sidebar.scanFolderResult.missing` | identical to `sidebar.renameFolderResult.missing` / `deleteFolderResult.missing` in every locale (the folder vanished between the menu opening and the click) — reuse that rendering rather than writing a third variant | + `{scope}` is a root label (`G: loras`) or a folder path, `{paths}` is a comma-joined list capped at three entries, and both counts arrive pre-formatted. "Offline" describes a configured root whose directory cannot be read right now (drive switched off, unmounted share) — it is a state of diff --git a/locales/de.json b/locales/de.json index c3f90a2c..b6d07519 100644 --- a/locales/de.json +++ b/locales/de.json @@ -1483,9 +1483,9 @@ "none": "Alle {type}s in diesem Ordner sind aktuell", "error": "Fehler beim Prüfen des Ordners auf {type}-Updates: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "Diesen Ordner scannen", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "Dieser Ordner existiert nicht mehr auf dem Datenträger. Aktualisieren Sie die Seitenleiste und versuchen Sie es erneut." } }, "statistics": { diff --git a/locales/es.json b/locales/es.json index 486c4ebf..741023ca 100644 --- a/locales/es.json +++ b/locales/es.json @@ -1483,9 +1483,9 @@ "none": "Todos los {type}s en esta carpeta están actualizados", "error": "Error al buscar actualizaciones de {type} en la carpeta: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "Escanear esta carpeta", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "Esta carpeta ya no existe en el disco. Actualiza la barra lateral e inténtalo de nuevo." } }, "statistics": { diff --git a/locales/fr.json b/locales/fr.json index 64426195..87ff075a 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -1483,9 +1483,9 @@ "none": "Tous les {type}s dans ce dossier sont à jour", "error": "Échec de la vérification des mises à jour {type} dans ce dossier : {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "Analyser ce dossier", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "Ce dossier n’existe plus sur le disque. Actualisez la barre latérale et réessayez." } }, "statistics": { diff --git a/locales/he.json b/locales/he.json index 29b95117..88347428 100644 --- a/locales/he.json +++ b/locales/he.json @@ -1483,9 +1483,9 @@ "none": "כל ה-{type}s בתיקייה זו מעודכנים", "error": "נכשל בבדיקת עדכוני {type} בתיקייה: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "סרוק תיקייה זו", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "תיקייה זו אינה קיימת עוד בדיסק. רענן את סרגל הצד ונסה שוב." } }, "statistics": { diff --git a/locales/ja.json b/locales/ja.json index cbd936c7..0fda37b9 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -1483,9 +1483,9 @@ "none": "このフォルダのすべての{type}sは最新です", "error": "フォルダの{type}アップデート確認に失敗しました: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "このフォルダをスキャン", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "このフォルダはディスク上に存在しません。サイドバーを再読み込みしてからもう一度お試しください。" } }, "statistics": { diff --git a/locales/ko.json b/locales/ko.json index 708363f6..be403a45 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -1483,9 +1483,9 @@ "none": "이 폴더의 모든 {type}s가 최신 상태입니다", "error": "폴더의 {type} 업데이트 확인 실패: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "이 폴더 스캔", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "이 폴더는 디스크에 더 이상 존재하지 않습니다. 사이드바를 새로 고친 후 다시 시도하세요." } }, "statistics": { diff --git a/locales/ru.json b/locales/ru.json index 8a5c9b68..68349d2c 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1483,9 +1483,9 @@ "none": "Все {type}s в этой папке актуальны", "error": "Не удалось проверить папку на наличие обновлений {type}: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "Сканировать эту папку", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "Эта папка больше не существует на диске. Обновите боковую панель и повторите попытку." } }, "statistics": { diff --git a/locales/zh-CN.json b/locales/zh-CN.json index 654ad167..f10230c2 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -1483,9 +1483,9 @@ "none": "此文件夹中的所有{type}都是最新版本", "error": "检查文件夹{type}更新失败: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "扫描此文件夹", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "该文件夹在磁盘上已不存在,请刷新侧边栏后重试。" } }, "statistics": { diff --git a/locales/zh-TW.json b/locales/zh-TW.json index e2a95592..cc7849b1 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -1483,9 +1483,9 @@ "none": "此資料夾中的所有{type}都是最新版本", "error": "檢查資料夾{type}更新失敗: {message}" }, - "scanFolder": "[TODO: Translate] Scan this folder", + "scanFolder": "掃描此資料夾", "scanFolderResult": { - "missing": "[TODO: Translate] This folder no longer exists on disk. Refresh the sidebar and try again." + "missing": "該資料夾在磁碟上已不存在,請重新整理側邊欄後再試。" } }, "statistics": {