i18n(scanner): translate the scoped-scan strings

The scoped-scan feature left exactly 6 [TODO: Translate] keys behind, so this
is the whole pending set for all 9 locales. Renderings reuse the established
nouns (folder: zh-CN 文件夹 / ja フォルダ / ru папка / he תיקייה; "model" counts
from sidebar.deleteFolderModal) and introduce one new term, "Offline" for a
configured root that cannot be read right now:

  scopeSection        zh-CN 只扫描一个文件夹 · ja フォルダを 1 つだけスキャン
                      fr Analyser un seul dossier · ru Сканировать только одну папку
  rootOffline         zh-CN 离线 · ja オフライン · fr Hors ligne · ru Недоступен
  rootModels          zh-CN {count} 个模型 · ko 모델 {count}개 · he {count} מודלים
  refreshCompleteScoped / refreshKeptUnreachable / scanRootUnreachable
                      (counts and {scope}/{paths} stay verbatim)

Every placeholder set matches en.json, fr keeps the typographic apostrophe, and
the three CJK locales keep full-width punctuation while ko uses ASCII like the
rest of that file. docs/i18n-translation-guidelines.md gains the
"Scoped scan and root availability" terminology table plus the updated status
note, so the "no remaining placeholders" claim holds again.

Verified: python scripts/sync_translation_keys.py --dry-run reports no pending
changes, pytest tests/i18n 20 passed, and grep -c "TODO: Translate"
locales/*.json is 0 everywhere.
This commit is contained in:
Will Miao
2026-10-07 15:04:16 +08:00
parent 470d85cca6
commit bd184559bf
10 changed files with 77 additions and 56 deletions
+6 -6
View File
@@ -919,9 +919,9 @@
"title": "Обновить список моделей",
"full": "Перестроить кэш",
"fullTooltip": "Перечитывает все данные моделей из файлов метаданных — используйте, если библиотека выглядит устаревшей или после ручных правок.",
"scopeSection": "[TODO: Translate] Scan one folder",
"rootOffline": "[TODO: Translate] Offline",
"rootModels": "[TODO: Translate] {count} models"
"scopeSection": "Сканировать только одну папку",
"rootOffline": "Недоступен",
"rootModels": "{count} модел(ей)"
},
"fetch": {
"title": "Получить метаданные с CivitAI",
@@ -2808,9 +2808,9 @@
"moveFailed": "Не удалось переместить элемент: {message}",
"copiedToClipboard": "Скопировано в буфер обмена",
"downloadStarted": "Загрузка начата",
"refreshCompleteScoped": "[TODO: Translate] Scanned {scope}: {added} new, {removed} removed",
"refreshKeptUnreachable": "[TODO: Translate] {count} models kept: {paths} not reachable",
"scanRootUnreachable": "[TODO: Translate] {scope} is not reachable right now. Nothing was changed."
"refreshCompleteScoped": "{scope}: просканировано — новых {added}, удалено {removed}",
"refreshKeptUnreachable": "Сохранено моделей: {count} — {paths} недоступны",
"scanRootUnreachable": "{scope} сейчас недоступен. Изменений не внесено."
},
"agent": {
"llmNotConfigured": "Поставщик ИИ не настроен. Включите его в Настройки → Поставщик ИИ.",