From a71487d30b6dc44c4820b193faaa10c88042ee4b Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Sun, 13 Sep 2026 04:23:41 +0500 Subject: [PATCH] docs: update dict for i18n --- docs/plan-preview-i18n.md | 11 ++++++++--- web/src/lib/components/SchemaFields.svelte | 11 ++--------- web/src/lib/i18n/dict.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/docs/plan-preview-i18n.md b/docs/plan-preview-i18n.md index 93cbd2b..852fd36 100644 --- a/docs/plan-preview-i18n.md +++ b/docs/plan-preview-i18n.md @@ -156,8 +156,12 @@ - `verdictTone(key)` — `success`|`danger`|`info` по имени ключа (`*Yes`/`*No`/`*Portrait`/`*Landscape`) — не по строке. - **0.9** Расширить тип `Dict` (только новая ветка `lib/i18n`): - - новая секция `preview` для UI-строк нового дизайна (только те, что остаются - после чистки mono-лейблов, см. решение B); + - секция `preview` **не заводится**: оставшиеся после чистки mono-лейблов + (см. решение B) строки нового UI живут в собственных категориях — расширяем + существующие (`catalog`, `header`, `dropZone`, `sourceCard`, `resultCard`, + `paramsCard`, `textResult`, `ui`) и заводим две маленькие новые: `actions` + (Generate / Open image / Download result…) и `textSource` (placeholder, Try + sample…); - новая глобальная секция `fields: Record` — переводы подписей полей по ключу из схемы (решение C); - новая глобальная секция `groups: Record` — переводы @@ -165,7 +169,8 @@ ### Фаза 1: Словари — наполнение (только новая ветка `lib/i18n`, v1 не трогаем) -- **1.1** Заполнить `en.ts` и `ru.ts` секциями `preview`, `fields`, `groups`. +- **1.1** Заполнить `en.ts` и `ru.ts` секциями `actions`, `textSource`, `fields`, + `groups` и ключами недостающих строк в существующих секциях. - **1.2** Проинвентаризировать разницу между 122 инструментами нового registry и ключами `ru.tools`: для инструментов без перевода (нет в v1) добавить title/description в ru.ts новой ветки (по категориям — несколько коммитов). diff --git a/web/src/lib/components/SchemaFields.svelte b/web/src/lib/components/SchemaFields.svelte index f2d1363..d9aae45 100644 --- a/web/src/lib/components/SchemaFields.svelte +++ b/web/src/lib/components/SchemaFields.svelte @@ -4,7 +4,7 @@ FieldSpecKind, ToolSchema, } from "$lib/registry-schema"; - import { fieldLabel as labelOf } from "$lib/i18n/schema-tool-strings"; + import { fieldLabel } from "$lib/i18n/schema-tool-strings"; import { RotateCcw } from "@lucide/svelte"; import type { Component } from "svelte"; import DimensionField from "./fields/DimensionField.svelte"; @@ -53,13 +53,6 @@ } let { schema, values, onchange, onreset }: Props = $props(); - function labelOf(id: string): string { - return id - .replace(/([a-z])([A-Z])/g, "$1 $2") - .replace(/[_-]+/g, " ") - .replace(/\b\w/g, (c) => c.toUpperCase()); - } - interface LayoutGroup { key: string; title?: string; @@ -107,7 +100,7 @@ {#each group.fields as id (id)} {@const Control = FIELDS[schema.fields[id].spec.kind]} onchange(id, v)} diff --git a/web/src/lib/i18n/dict.ts b/web/src/lib/i18n/dict.ts index 382ddc3..18555b3 100644 --- a/web/src/lib/i18n/dict.ts +++ b/web/src/lib/i18n/dict.ts @@ -53,4 +53,12 @@ export type Dict = { ui: Record; errors: Record; tools: Record; + /** Действия панели результата/генерации (Generate, Open image…). */ + actions?: Record; + /** Поля ввода текста нового UI (placeholder, Try sample…). */ + textSource?: Record; + /** Подписи полей по ключу (решение C: label-ключ на поле). */ + fields?: Record; + /** Заголовки групп полей по ключу (решение A). */ + groups?: Record; };