From 6c88a23e4882bebd20e9bd7cc45c70f15818d5cb Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Sun, 13 Sep 2026 06:21:28 +0500 Subject: [PATCH] fix: update i18n - schema components --- docs/archive/plan-split-into-parts.md | 5 +- docs/plan-preview-i18n.md | 49 +++++++------------ web/src/lib/components/CodeBlock.svelte | 7 ++- web/src/lib/components/SchemaActions.svelte | 6 ++- web/src/lib/components/SchemaPreview.svelte | 16 +++--- .../lib/components/SchemaResultTile.svelte | 12 +++-- .../lib/components/SchemaSourceTile.svelte | 9 ++-- .../lib/components/SchemaTextResult.svelte | 10 ++-- .../lib/components/SchemaTextSource.svelte | 9 ++-- web/src/lib/components/SchemaToolView.svelte | 12 +++-- web/src/lib/components/StepCard.svelte | 3 +- .../lib/components/layout/PreviewTile.svelte | 4 +- web/src/lib/i18n/en.ts | 4 ++ web/src/lib/i18n/ru.ts | 4 ++ 14 files changed, 86 insertions(+), 64 deletions(-) diff --git a/docs/archive/plan-split-into-parts.md b/docs/archive/plan-split-into-parts.md index 9cbbcec..363c7de 100644 --- a/docs/archive/plan-split-into-parts.md +++ b/docs/archive/plan-split-into-parts.md @@ -1,8 +1,9 @@ # План: инструмент «Разрезать PNG на части» (split-into-parts-png) > Статус: **выполнено и в архиве** (2026-09). Инструмент и механизм «результат = -> набор файлов» (1 → many) реализованы; первый потребитель — `split-into-parts-png`. -> Общий процесс таких инструментов — задача 18 в `docs/backlog.md`. +> набор файлов» (1 → many) реализованы; первый потребитель — +> `split-into-parts-png`. Общий процесс таких инструментов — задача 18 в +> `docs/backlog.md`. ## Цель diff --git a/docs/plan-preview-i18n.md b/docs/plan-preview-i18n.md index 27136c4..807025e 100644 --- a/docs/plan-preview-i18n.md +++ b/docs/plan-preview-i18n.md @@ -156,12 +156,11 @@ - `verdictTone(key)` — `success`|`danger`|`info` по имени ключа (`*Yes`/`*No`/`*Portrait`/`*Landscape`) — не по строке. - **0.9** Расширить тип `Dict` (только новая ветка `lib/i18n`): - - секция `preview` **не заводится**: оставшиеся после чистки mono-лейблов (см. - решение B) строки нового UI живут в собственных категориях — расширяем - существующие (`catalog`, `header`, `dropZone`, `sourceCard`, `resultCard`, - `paramsCard`, `textResult`, `ui`) и заводим две маленькие новые: `actions` - (Generate / Open image / Download result…) и `textSource` (placeholder, Try - sample…); + - секция `preview` **не заводится**: строки нового UI живут в собственных + категориях — расширяем существующие (`catalog`, `header`, `dropZone`, + `sourceCard`, `resultCard`, `paramsCard`, `textResult`, `ui`) и заводим две + маленькие новые: `actions` (Generate / Open image / Download result…) и + `textSource` (placeholder, Try sample…); - новая глобальная секция `fields: Record` — переводы подписей полей по ключу из схемы (решение C); - новая глобальная секция `groups: Record` — переводы @@ -197,36 +196,29 @@ `t("header.footerNote")`. - **3.3** `tools/[id]/+page.svelte`: «Tool not found», fallback title → `t()`. -### Фаза 4: Компоненты — основной блок (по одному коммиту на компонент) +### Фаза 4: Компоненты — основной блок (коммиты кучками по смыслу) -Каждый коммит: удаление декоративных mono-лейблов (решение B) + замена -оставшихся строк на `t`/хелперы + lint/check. Список mono-лейблов, которые -**удаляем**: eyebrow'ы (`PNG PROCESSING / SINGLE TOOL`, `KIT SHOWCASE`, -`EASY-PNG-TOOLS / CATALOG`), статусы (`LIVE PREVIEW`, `rendering ok`), панельные -подписи (`TOOL SETTINGS`), дублирующие капшены (`SOURCE / RESULT`, -`GENERATOR / RESULT`). Оставляем и локализуем только информативные: категории -каталога, счётчики инструментов, подписи данных (`FORMAT`, `parts`, `px`, «ZIP -(PNG)»), alt-тексты, а также содержательные заголовки («Configure output»). +Все текстовые подписи в компонентах — информативные, сохраняем и переводим на +`t`/хелперы. Каждый коммит: замена строк + lint/check. -- `SchemaToolView.svelte`: убрать eyebrow/`LIVE PREVIEW`/`TOOL SETTINGS`, - перевести «Configure output» и «This tool has no schema yet.». -- `SchemaSourceTile.svelte`: убрать figcaption `SOURCE`, перевести «choose an +- `SchemaToolView.svelte`: title/description → + `toolTitle()`/`toolDescription()`, перевести `TOOL SETTINGS`, «Configure + output» и «This tool has no schema yet.». +- `SchemaSourceTile.svelte`: перевести figcaption `SOURCE`, «choose an image»/«no source…» и alt. -- `SchemaResultTile.svelte`: убрать figcaption `RESULT`, перевести «no result - yet»/«parts» и alt. -- `SchemaPreview.svelte`: убрать панельные - `SOURCE / RESULT`/`GENERATOR / RESULT`, перевести meta-капшены (`FORMAT` и - т.п.). +- `SchemaResultTile.svelte`: перевести figcaption `RESULT`, «no result yet» и + alt; суффикс «parts» — в `PreviewTile`. +- `SchemaPreview.svelte`: перевести панельный лейбл `PREVIEW PANEL` и + meta-капшены `SOURCE / RESULT / FORMAT`; значения «parts»/«text» → `t()`. - `SchemaActions.svelte`: Generating…, Generate, Open image, Download result. - `SchemaFields.svelte`: Reset, «updates automatically», `labelOf(field.id)` → `fieldLabel(field)`. - `SchemaTextSource.svelte`: placeholder, Try sample, Render text. -- `SchemaTextResult.svelte`: убрать лейбл `RESULT` у вердикта, перевести Copy / +- `SchemaTextResult.svelte`: перевести лейбл `RESULT` у вердикта, Copy / Download .txt; tone detection → `verdictTone()`. - `CatalogToolbar.svelte`: фильтры → `t("categories.all")` + `t("categories.X")`, поисковый placeholder. -- `CatalogHeader.svelte`: убрать eyebrow, перевести heading/lead и счётчик - «TOOLS AVAILABLE». +- `CatalogHeader.svelte`: перевести heading/lead и счётчик «TOOLS AVAILABLE». - `CatalogGroup.svelte`: перевести суффикс счётчика «TOOLS». - `Dropzone.svelte`: текст зоны → `t("dropZone.pickDefault")`. - Schema field controls (по одному или группой): Width/Height, From/To, Backing @@ -320,11 +312,6 @@ (`title: "groups.canvas"`), перевод — в глобальной секции `groups` словаря (`Dict.groups: Record`). В UI — `groupLabel(title)` = `t(title)` с фолбэком на сырой ключ. -- **B. Mono-лейблы**: декоративные лейблы без полезной информации **удаляем** - (eyebrow'ы, статусы, панельные капшены, дублирующие подписи секций) — они - занимают место. Оставляем только там, где реально нужно, и локализуем: - счётчики инструментов, категории каталога, подписи данных (FORMAT, parts, px, - «ZIP (PNG)»), alt-тексты, содержательные headings. - **C. Лейблы полей**: в схеме задаём i18n-ключ (`field.number({ label: "fields.thickness", … })`), в UI выводится перевод — `fieldLabel(field)` = `t(label)`. Ключи — глобальная секция `fields` словаря, diff --git a/web/src/lib/components/CodeBlock.svelte b/web/src/lib/components/CodeBlock.svelte index 2180bba..5ef69cf 100644 --- a/web/src/lib/components/CodeBlock.svelte +++ b/web/src/lib/components/CodeBlock.svelte @@ -1,5 +1,6 @@
- PREVIEW PANEL + {t("resultCard.previewPanel")}
@@ -132,6 +133,7 @@ .label { font: var(--font-size-s) var(--font-mono); letter-spacing: var(--space-text-l); + text-transform: uppercase; color: var(--color-main); } .error { diff --git a/web/src/lib/components/SchemaResultTile.svelte b/web/src/lib/components/SchemaResultTile.svelte index b8bb70a..592ef19 100644 --- a/web/src/lib/components/SchemaResultTile.svelte +++ b/web/src/lib/components/SchemaResultTile.svelte @@ -1,6 +1,7 @@ - +
{#if resultKind === "text" && textResult}
@@ -70,11 +76,11 @@ {/each}
{:else if resultKind === "image" && resultUrl} - result + {t("resultCard.alt")} {:else if running} {:else} - no result yet + {t("resultCard.noResult")} {/if}
diff --git a/web/src/lib/components/SchemaSourceTile.svelte b/web/src/lib/components/SchemaSourceTile.svelte index 42fafd8..fdbf9cc 100644 --- a/web/src/lib/components/SchemaSourceTile.svelte +++ b/web/src/lib/components/SchemaSourceTile.svelte @@ -1,6 +1,7 @@ - + {#if mode === "text"}
{:else if mode === "image" && sourceUrl} - source + {t("sourceCard.alt")} {:else if mode === "image"} - choose an image + {t("sourceCard.chooseImage")} {:else} - no source — configure the parameters + {t("sourceCard.noSource")} {/if}
diff --git a/web/src/lib/components/SchemaTextResult.svelte b/web/src/lib/components/SchemaTextResult.svelte index 4aa3e64..3f05ef4 100644 --- a/web/src/lib/components/SchemaTextResult.svelte +++ b/web/src/lib/components/SchemaTextResult.svelte @@ -1,5 +1,6 @@