From 779bd18e7531aedce160c37e1bd050f067fd4cd6 Mon Sep 17 00:00:00 2001 From: Will Miao Date: Wed, 16 Sep 2026 08:23:06 +0800 Subject: [PATCH] i18n: translate the chip reordering strings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The three `common.reorder.*` keys (grip tooltip and hint, the per-grip aria label, and the aria-live announcement) are rendered in all 9 locales. They sit under `common` rather than in a feature namespace because both the tag editor and the trigger-word editor render them, and only `dragHandle` is visible copy — the other two are screen-reader text. `Alt` and the `↑/↓` glyphs stay verbatim everywhere, the same precedent as `Shift+Enter` in `modals.model.metadata.notesHint`, because they name the keys rather than an action. "position X of Y" reuses each locale's existing counting phrasing (ja `{total} 件中 … 番目`, ko `총 {total}개 중 …번째`, fr `sur {total}`, ru `из {total}`), and parentheses follow each file's own convention: full-width in zh-CN / zh-TW / ja, ASCII in ko and the Latin/Cyrillic locales. No `[TODO: Translate]` placeholder is left in any locale. docs/i18n-translation-guidelines.md gains the matching §2 subsection and status note so a later terminology sweep preserves these renderings; the leaf-key count in its header is corrected to 2025 at the same time. --- docs/i18n-translation-guidelines.md | 32 ++++++++++++++++++++++++++++- locales/de.json | 6 +++--- locales/es.json | 6 +++--- locales/fr.json | 6 +++--- locales/he.json | 6 +++--- locales/ja.json | 6 +++--- locales/ko.json | 6 +++--- locales/ru.json | 6 +++--- locales/zh-CN.json | 6 +++--- locales/zh-TW.json | 6 +++--- 10 files changed, 58 insertions(+), 28 deletions(-) diff --git a/docs/i18n-translation-guidelines.md b/docs/i18n-translation-guidelines.md index 850dc86b..4db2c158 100644 --- a/docs/i18n-translation-guidelines.md +++ b/docs/i18n-translation-guidelines.md @@ -4,7 +4,7 @@ This document is the canonical set of conventions for translating LoRA Manager U It applies to **human translators and AI agents** alike. Read it before editing anything in `locales/`. -Source of truth: `locales/en.json` (10 locales, 2022 leaf keys; all locales share the exact +Source of truth: `locales/en.json` (10 locales, 2025 leaf keys; all locales share the exact same key structure). Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL). @@ -49,6 +49,14 @@ Locales: `en`, `zh-CN`, `zh-TW`, `ja`, `ko`, `fr`, `de`, `es`, `ru`, `he` (RTL). > placeholders left behind by the feature series, and all 35 are now translated in all 9 > locales, so the "no remaining placeholders" claim above holds again. Terminology in §2, > "Folder sidebar feature". +> +> **Status (2026-09, chip reordering):** model tags and trigger words now share one drag/`⠿` +> grip reorder affordance with `Alt + ↑/↓` keyboard support, which added the 3 +> `common.reorder.*` keys. They live under `common` (not a feature namespace) because both +> editors render them; all 9 locales are translated (renderings in §2, "Chip reordering"). +> `Alt` and the `↑/↓` glyphs stay Latin/verbatim in every locale, the same precedent as +> `Shift+Enter` in `modals.model.metadata.notesHint`; zh-CN / zh-TW / ja use full-width +> parentheses and ko keeps this file's ASCII style. --- @@ -355,6 +363,28 @@ clause (and its `—`) when the copy is edited. The `{name}` / `{count}` / `{mes `sidebar.createFolderResult.*`, `sidebar.deleteFolderResult.*` and `sidebar.renameFolderResult.*` are verbatim §1-R2 placeholders; `successWithFiles` is the only key carrying `{count}`. +### Chip reordering (model tags / trigger words) + +Model tags and trigger-word chips share a single reorder affordance (drag the chip or its +`⠿` grip, or move it with `Alt + ↑/↓`), so the copy sits in `common.reorder.*` instead of a +feature namespace. `dragHandle` is both the grip tooltip and the hint shown in the edit +controls row; `ariaLabel` is the per-grip screen-reader label (`{item}` is the tag/word text); +`announcement` is the aria-live message after a keyboard move and deliberately has no +`{item}`. Keep `{item}` / `{position}` / `{total}` verbatim (§1-R2) — the caller supplies +exactly those. + +`Alt` and the `↑/↓` glyphs stay Latin/verbatim in every locale (same precedent as +`Shift+Enter`), and `position X of Y` reuses each locale's established ordering phrasing +(ja `{total} 件中 … 番目`, ko `총 {total}개 중 …번째`, fr `sur {total}`, ru `из {total}`, …). + +| Term | Rendering | +|---|---| +| drag to reorder | zh-CN 拖拽以调整顺序 · zh-TW 拖曳以調整順序 · ja ドラッグして並べ替え · ko 드래그하여 순서 변경 · fr Glisser pour réordonner · de Zum Neuordnen ziehen · es Arrastra para reordenar · ru Перетащите, чтобы изменить порядок · he גרור כדי לשנות סדר | +| position {position} of {total} | zh-CN 第 {position} 个,共 {total} 个 · zh-TW 第 {position} 個,共 {total} 個 · ja {total} 件中 {position} 番目 · ko 총 {total}개 중 {position}번째 · fr position {position} sur {total} · de Position {position} von {total} · es posición {position} de {total} · ru позиция {position} из {total} · he מיקום {position} מתוך {total} | + +The grip/handle noun itself is never translated (it is an icon); the hint carries the whole +instruction, so no locale needs a separate "grip" term. + --- ## 3. Cross-cutting confusion hot-spots (must-fix list) diff --git a/locales/de.json b/locales/de.json index 3a0b60f9..928ddda3 100644 --- a/locales/de.json +++ b/locales/de.json @@ -3,9 +3,9 @@ "cancel": "Abbrechen", "confirm": "Bestätigen", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "Zum Neuordnen ziehen (Alt + ↑/↓)", + "ariaLabel": "{item} neu anordnen, Position {position} von {total}", + "announcement": "An Position {position} von {total} verschoben" }, "actions": { "save": "Speichern", diff --git a/locales/es.json b/locales/es.json index f53b282c..b5622b77 100644 --- a/locales/es.json +++ b/locales/es.json @@ -3,9 +3,9 @@ "cancel": "Cancelar", "confirm": "Confirmar", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "Arrastra para reordenar (Alt + ↑/↓)", + "ariaLabel": "Reordenar {item}, posición {position} de {total}", + "announcement": "Movido a la posición {position} de {total}" }, "actions": { "save": "Guardar", diff --git a/locales/fr.json b/locales/fr.json index 94166bfe..e8b017c5 100644 --- a/locales/fr.json +++ b/locales/fr.json @@ -3,9 +3,9 @@ "cancel": "Annuler", "confirm": "Confirmer", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "Glisser pour réordonner (Alt + ↑/↓)", + "ariaLabel": "Réordonner {item}, position {position} sur {total}", + "announcement": "Déplacé en position {position} sur {total}" }, "actions": { "save": "Enregistrer", diff --git a/locales/he.json b/locales/he.json index c7a59c2d..c94c3dda 100644 --- a/locales/he.json +++ b/locales/he.json @@ -3,9 +3,9 @@ "cancel": "ביטול", "confirm": "אישור", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "גרור כדי לשנות סדר (Alt + ↑/↓)", + "ariaLabel": "סדר מחדש את {item}, מיקום {position} מתוך {total}", + "announcement": "הועבר למיקום {position} מתוך {total}" }, "actions": { "save": "שמירה", diff --git a/locales/ja.json b/locales/ja.json index 13b1ea6c..ac25dee1 100644 --- a/locales/ja.json +++ b/locales/ja.json @@ -3,9 +3,9 @@ "cancel": "キャンセル", "confirm": "確認", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "ドラッグして並べ替え(Alt + ↑/↓)", + "ariaLabel": "{item} を並べ替え、{total} 件中 {position} 番目", + "announcement": "{total} 件中 {position} 番目に移動しました" }, "actions": { "save": "保存", diff --git a/locales/ko.json b/locales/ko.json index 74830c2f..6f239b76 100644 --- a/locales/ko.json +++ b/locales/ko.json @@ -3,9 +3,9 @@ "cancel": "취소", "confirm": "확인", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "드래그하여 순서 변경 (Alt + ↑/↓)", + "ariaLabel": "{item} 순서 변경, 총 {total}개 중 {position}번째", + "announcement": "총 {total}개 중 {position}번째로 이동했습니다" }, "actions": { "save": "저장", diff --git a/locales/ru.json b/locales/ru.json index d7f6060d..d6f131da 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -3,9 +3,9 @@ "cancel": "Отмена", "confirm": "Подтвердить", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "Перетащите, чтобы изменить порядок (Alt + ↑/↓)", + "ariaLabel": "Изменить порядок {item}, позиция {position} из {total}", + "announcement": "Перемещено на позицию {position} из {total}" }, "actions": { "save": "Сохранить", diff --git a/locales/zh-CN.json b/locales/zh-CN.json index 4f2145be..c0f817ed 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -3,9 +3,9 @@ "cancel": "取消", "confirm": "确认", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "拖拽以调整顺序(Alt + ↑/↓)", + "ariaLabel": "调整 {item} 的顺序,第 {position} 个,共 {total} 个", + "announcement": "已移动到第 {position} 个,共 {total} 个" }, "actions": { "save": "保存", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 079e9212..2f32e361 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -3,9 +3,9 @@ "cancel": "取消", "confirm": "確認", "reorder": { - "dragHandle": "[TODO: Translate] Drag to reorder (Alt + ↑/↓)", - "ariaLabel": "[TODO: Translate] Reorder {item}, position {position} of {total}", - "announcement": "[TODO: Translate] Moved to position {position} of {total}" + "dragHandle": "拖曳以調整順序(Alt + ↑/↓)", + "ariaLabel": "調整 {item} 的順序,第 {position} 個,共 {total} 個", + "announcement": "已移動到第 {position} 個,共 {total} 個" }, "actions": { "save": "儲存",