diff --git a/docs/i18n-translation-guidelines.md b/docs/i18n-translation-guidelines.md index 052186ed..dad2d513 100644 --- a/docs/i18n-translation-guidelines.md +++ b/docs/i18n-translation-guidelines.md @@ -103,6 +103,15 @@ Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL). > failure-table conventions; reuse each locale's existing renderings of those sibling keys). > All 9 locales are translated in the same pass (terminology in §2, "Sidecar storage feature"). +> **Status (2026-10, unknown base model routing):** the download-routing inversion added +> 4 keys (`settings.unknownBaseModelRouting.label`, `.help`, `.options.diffusionModel`, +> `.options.checkpoint`) — the option labels reuse each locale's existing +> `checkpoints.modelTypes.diffusion_model` / `.checkpoint` renderings. The same pass also +> translated the leftover `doctor.issues.sidecar_mirror_orphans.title` ("Centralized +> Sidecars", §2 "Sidecar storage feature" terminology). All 9 locales are translated, +> so the "no remaining placeholders" claim holds again. Terminology in §2, "Download +> routing feature". + --- ## 1. Hard rules (do not violate) @@ -543,6 +552,25 @@ short and imperative and do not append a keyboard hint in any locale. The grip itself is an icon and is never translated. +### Download routing feature (unknown base model routing) + +The `settings.unknownBaseModelRouting.*` keys (Settings → Library → Folder Settings) decide +which library a checkpoint download lands in when CivitAI reports a baseModel that is in +neither the known-checkpoint nor the known-diffusion-model list. The option labels reuse +each locale's `checkpoints.modelTypes.diffusion_model` / `.checkpoint` renderings +(model-type names, R3 — ja/ko keep the Latin loanword), pluralized only where the locale +pluralizes (de Diffusionsmodelle, es Modelos de difusión, fr Modèles de diffusion, +ru Диффузионные модели, he מודלי דיפוזיה; CJK stays singular, "Checkpoint(s)" follows +`header.navigation.checkpoints`). + +| Term | Rendering | +|---|---| +| routing (noun, of a download into a library) | zh-CN 路由 · zh-TW 路由 · ja 振り分け · ko 라우팅 · fr routage · de Routing · es enrutamiento · ru маршрутизация · he ניתוב | +| unknown base model | zh-CN 未知基础模型 · zh-TW 未知基礎模型 · ja 不明なベースモデル · ko 알 수 없는 베이스 모델 · fr modèle de base inconnu · de unbekanntes Basismodell · es modelo base desconocido · ru неизвестная базовая модель · he מודל בסיס לא מוכר | + +The baseModel family names in the help text (`SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, +NoobAI`) are CivitAI baseModel values and stay verbatim in every locale. + --- ## 3. Cross-cutting confusion hot-spots (must-fix list) diff --git a/locales/de.json b/locales/de.json index ab2ec09c..231dc3bb 100644 --- a/locales/de.json +++ b/locales/de.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "Erfahren Sie, wie Sie das aria2-Download-Backend einrichten", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "Routing unbekannter Basismodelle", + "help": "Legt fest, wohin Checkpoint-Downloads gehen, wenn CivitAI ein Basismodell meldet, das weder ein bekanntes Checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) noch ein bekanntes Diffusionsmodell ist. Neue Diffusionsarchitekturen erscheinen häufig, daher ist das Routing zu Diffusionsmodellen meist korrekt.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Diffusionsmodelle", + "checkpoint": "Checkpoints" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "Konflikte durch doppelte Dateinamen" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "Zentralisierte Sidecar-Dateien" }, "ui_version": { "title": "UI-Version" diff --git a/locales/es.json b/locales/es.json index 0606532c..a4af9c81 100644 --- a/locales/es.json +++ b/locales/es.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "Aprende a configurar el backend de descarga aria2", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "Enrutamiento de modelos base desconocidos", + "help": "Decide a dónde van las descargas de Checkpoint cuando CivitAI informa de un modelo base que no es ni un Checkpoint conocido (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) ni un modelo de difusión conocido. Las nuevas arquitecturas de difusión aparecen con frecuencia, por lo que enrutarlas a modelos de difusión suele ser correcto.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Modelos de difusión", + "checkpoint": "Checkpoints" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "Conflictos de nombres de archivo duplicados" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "Archivos sidecar centralizados" }, "ui_version": { "title": "Versión de la interfaz" diff --git a/locales/fr.json b/locales/fr.json index 054560b5..c87f7bbd 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "Apprenez à configurer le backend de téléchargement aria2", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "Routage des modèles de base inconnus", + "help": "Détermine où vont les téléchargements de Checkpoint lorsque CivitAI signale un modèle de base qui n’est ni un Checkpoint connu (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) ni un modèle de diffusion connu. De nouvelles architectures de diffusion apparaissent fréquemment, donc les router vers les modèles de diffusion est généralement correct.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Modèles de diffusion", + "checkpoint": "Checkpoints" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "Conflits de noms de fichiers en double" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "Fichiers sidecar centralisés" }, "ui_version": { "title": "Version de l'interface" diff --git a/locales/he.json b/locales/he.json index d821934c..f6c9915e 100644 --- a/locales/he.json +++ b/locales/he.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "למד כיצד להגדיר את מנוע ההורדה aria2", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "ניתוב מודל בסיס לא מוכר", + "help": "קובע לאן מועברות הורדות של Checkpoint כאשר CivitAI מדווח על מודל בסיס שהוא לא Checkpoint מוכר (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) ולא מודל דיפוזיה מוכר. ארכיטקטורות דיפוזיה חדשות מופיעות לעיתים קרובות, ולכן ניתוב שלהן למודלי דיפוזיה הוא בדרך כלל הנכון.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "מודלי דיפוזיה", + "checkpoint": "Checkpoints" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "התנגשויות שמות קבצים כפולים" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "קבצי לוואי מרוכזים" }, "ui_version": { "title": "גרסת הממשק" diff --git a/locales/ja.json b/locales/ja.json index f145ebc1..47372056 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "aria2 ダウンロードバックエンドの設定方法", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "不明なベースモデルの振り分け", + "help": "CivitAIが報告するベースモデルが既知のCheckpoint(SD 1.x/2.x/3.x、SDXL、Pony、Illustrious、NoobAI)でも既知のDiffusion Modelでもない場合に、Checkpointのダウンロードの保存先を決定します。新しい拡散アーキテクチャは頻繁に登場するため、通常はDiffusion Modelへの振り分けが正しい選択です。", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Diffusion Model", + "checkpoint": "Checkpoint" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "ファイル名重複競合" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "集中保存のサイドカーファイル" }, "ui_version": { "title": "UI バージョン" diff --git a/locales/ko.json b/locales/ko.json index ed2b7a2c..dfe20317 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "aria2 다운로드 백엔드 설정 방법 알아보기", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "알 수 없는 베이스 모델 라우팅", + "help": "CivitAI가 보고한 베이스 모델이 알려진 Checkpoint(SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI)도 알려진 Diffusion Model도 아닐 때 Checkpoint 다운로드의 저장 위치를 결정합니다. 새로운 확산 아키텍처는 자주 등장하므로 일반적으로 Diffusion Model로 라우팅하는 것이 올바릅니다.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Diffusion Model", + "checkpoint": "Checkpoint" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "파일명 중복 충돌" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "중앙 집중식 사이드카 파일" }, "ui_version": { "title": "UI 버전" diff --git a/locales/ru.json b/locales/ru.json index 90530258..1c92c656 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "Узнайте, как настроить сервер загрузки aria2", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "Маршрутизация неизвестных базовых моделей", + "help": "Определяет, куда отправляются загрузки Checkpoint, когда CivitAI сообщает базовую модель, которая не является ни известным Checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI), ни известной диффузионной моделью. Новые диффузионные архитектуры появляются часто, поэтому маршрутизация их в диффузионные модели обычно правильная.", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "Диффузионные модели", + "checkpoint": "Checkpoints" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "Конфликты дублирующихся имён файлов" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "Централизованные sidecar-файлы" }, "ui_version": { "title": "Версия интерфейса" diff --git a/locales/zh-CN.json b/locales/zh-CN.json index cf38b02f..9a5013b4 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "了解如何配置 aria2 下载后端", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "未知基础模型路由", + "help": "当 CivitAI 报告的基础模型既不是已知的 Checkpoint(SD 1.x/2.x/3.x、SDXL、Pony、Illustrious、NoobAI),也不是已知的扩散模型时,决定 Checkpoint 下载的保存位置。新的扩散架构频繁出现,因此将其路由到扩散模型通常是正确的。", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "扩散模型", + "checkpoint": "Checkpoint" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "文件名重复冲突" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "集中存储的附属文件" }, "ui_version": { "title": "UI 版本" diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 8adbc8fa..f0d5f544 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -354,11 +354,11 @@ }, "aria2HelpLink": "了解如何設定 aria2 下載後端", "unknownBaseModelRouting": { - "label": "[TODO: Translate] Unknown base model routing", - "help": "[TODO: Translate] Decides where checkpoint downloads go when CivitAI reports a base model that is neither a known checkpoint (SD 1.x/2.x/3.x, SDXL, Pony, Illustrious, NoobAI) nor a known diffusion model. New diffusion architectures appear frequently, so routing them to diffusion models is usually correct.", + "label": "未知基礎模型路由", + "help": "當 CivitAI 回報的基礎模型既不是已知的 Checkpoint(SD 1.x/2.x/3.x、SDXL、Pony、Illustrious、NoobAI),也不是已知的擴散模型時,決定 Checkpoint 下載的儲存位置。新的擴散架構頻繁出現,因此將其路由到擴散模型通常是正確的。", "options": { - "diffusionModel": "[TODO: Translate] Diffusion models (recommended)", - "checkpoint": "[TODO: Translate] Checkpoints" + "diffusionModel": "擴散模型", + "checkpoint": "Checkpoint" } }, "civitaiHostBanner": { @@ -2778,7 +2778,7 @@ "title": "檔案名稱重複衝突" }, "sidecar_mirror_orphans": { - "title": "[TODO: Translate] Centralized Sidecars" + "title": "集中儲存的附屬檔案" }, "ui_version": { "title": "UI 版本"