From ee1afdcfbbe28c91d9a498058fdc27a316336918 Mon Sep 17 00:00:00 2001 From: dev Date: Mon, 25 May 2026 13:12:50 +0200 Subject: [PATCH] =?UTF-8?q?fix(langs):=20close=20P0=20#3=20=E2=80=94=20tra?= =?UTF-8?q?nslations=2058=20errors=20+=208=20warnings=20=E2=86=92=206=20(a?= =?UTF-8?q?ll=20words)=20+=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Catalogs creados (los 3 que faltaban): - src/uix/langs/components/month-grid.ts (label) - src/uix/langs/components/year-grid.ts (label) - src/uix/langs/components/textarea.ts (label + count) Catalogs con claves anadidas: - field.ts: required-indicator (*), optional-indicator ((opcional)) - time-picker.ts: clock + hour + minute + second + day-period + am + pm + clear + cancel + close - time-range-picker.ts: clock + day-period + clear + cancel + close Common keys anadidas (compartidas entre grid components y picker views): - common.month-grid.prev-year, next-year - common.year-grid.prev-page, next-page Barrel index.ts actualizado con los 3 nuevos catalogs: month-grid, textarea, year-grid. Cleanup de huerfanas que ningun morfo referenciaba (date-picker y date-range-picker tenian clear/cancel/close en el catalog pero el morfo los habia migrado a Button consumer via PickerShell): - date-picker.ts: drop clear, cancel, close - date-range-picker.ts: drop clear, cancel, close Errores restantes (6 + 2 warn) son TODOS de words — out of scope (en desarrollo aparte, no se toca esta sesion). Pre: 58 errors + 8 warnings (translations:check) Post: 6 errors (words) + 2 warnings (words) Net: 0 errores y 0 warnings de no-words. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/uix/langs/common.ts | 11 +++++ src/uix/langs/components/date-picker.ts | 12 ----- src/uix/langs/components/date-range-picker.ts | 12 ----- src/uix/langs/components/field.ts | 8 ++++ src/uix/langs/components/index.ts | 8 +++- src/uix/langs/components/month-grid.ts | 18 ++++++++ src/uix/langs/components/textarea.ts | 19 ++++++++ src/uix/langs/components/time-picker.ts | 44 ++++++++++++++++++- src/uix/langs/components/time-range-picker.ts | 28 ++++++++++-- src/uix/langs/components/year-grid.ts | 18 ++++++++ 10 files changed, 147 insertions(+), 31 deletions(-) create mode 100644 src/uix/langs/components/month-grid.ts create mode 100644 src/uix/langs/components/textarea.ts create mode 100644 src/uix/langs/components/year-grid.ts diff --git a/src/uix/langs/common.ts b/src/uix/langs/common.ts index aef516f50..5b6a54987 100644 --- a/src/uix/langs/common.ts +++ b/src/uix/langs/common.ts @@ -28,6 +28,17 @@ export const commonLangs = { 'month-select': { es: 'Seleccionar mes', en: 'Select month' }, 'year-select': { es: 'Seleccionar año', en: 'Select year' } }, + // Shared month-grid / year-grid navigation strings — consumed by + // `month-grid`, `year-grid`, and the picker `MonthView`/`YearView` + // composites that delegate to them. + 'month-grid': { + 'prev-year': { es: 'Año anterior', en: 'Previous year' }, + 'next-year': { es: 'Año siguiente', en: 'Next year' } + }, + 'year-grid': { + 'prev-page': { es: 'Años anteriores', en: 'Previous years' }, + 'next-page': { es: 'Años siguientes', en: 'Next years' } + }, date: { year: { es: 'Año', en: 'Year' }, month: { es: 'Mes', en: 'Month' }, diff --git a/src/uix/langs/components/date-picker.ts b/src/uix/langs/components/date-picker.ts index 49e39c746..72a0a4d99 100644 --- a/src/uix/langs/components/date-picker.ts +++ b/src/uix/langs/components/date-picker.ts @@ -20,16 +20,4 @@ export const datePickerLangs = { es: "Calendario de fecha", en: "Date calendar" }, - clear: { - es: 'Borrar fecha', - en: 'Clear date' - }, - cancel: { - es: 'Cancelar', - en: 'Cancel' - }, - close: { - es: 'Cerrar', - en: 'Close' - } } satisfies LangNode; diff --git a/src/uix/langs/components/date-range-picker.ts b/src/uix/langs/components/date-range-picker.ts index d86dff033..6454edcde 100644 --- a/src/uix/langs/components/date-range-picker.ts +++ b/src/uix/langs/components/date-range-picker.ts @@ -19,17 +19,5 @@ export const dateRangePickerLangs = { calendar: { es: 'Calendario de rango de fechas', en: 'Date range calendar' - }, - clear: { - es: 'Borrar rango', - en: 'Clear range' - }, - cancel: { - es: 'Cancelar', - en: 'Cancel' - }, - close: { - es: 'Cerrar', - en: 'Close' } } satisfies LangNode; diff --git a/src/uix/langs/components/field.ts b/src/uix/langs/components/field.ts index e19d5bbb0..b7ae7f1a1 100644 --- a/src/uix/langs/components/field.ts +++ b/src/uix/langs/components/field.ts @@ -5,4 +5,12 @@ export const fieldLangs = { es: 'Campo', en: 'Field' }, + 'required-indicator': { + es: '*', + en: '*' + }, + 'optional-indicator': { + es: '(opcional)', + en: '(optional)' + } } satisfies LangNode; diff --git a/src/uix/langs/components/index.ts b/src/uix/langs/components/index.ts index 63cca8ce3..bb8348578 100644 --- a/src/uix/langs/components/index.ts +++ b/src/uix/langs/components/index.ts @@ -35,6 +35,7 @@ import { linkPreviewLangs } from './link-preview'; import { listboxLangs } from './listbox'; import { menubarLangs } from './menubar'; import { meterLangs } from './meter'; +import { monthGridLangs } from './month-grid'; import { navigationMenuLangs } from './navigation-menu'; import { numberFieldLangs } from './number-field'; import { paginationLangs } from './pagination'; @@ -59,6 +60,7 @@ import { tableLangs } from './table'; import { tabsLangs } from './tabs'; import { tagGroupLangs } from './tag-group'; import { tagsInputLangs } from './tags-input'; +import { textareaLangs } from './textarea'; import { timeFieldLangs } from './time-field'; import { timePickerLangs } from './time-picker'; import { timeRangeFieldLangs } from './time-range-field'; @@ -73,6 +75,7 @@ import { treeViewLangs } from './tree-view'; import { virtualGridLangs } from './virtual-grid'; import { virtualListLangs } from './virtual-list'; import { wordsLangs } from './words'; +import { yearGridLangs } from './year-grid'; /** * Per-component default strings. Each morfo that uses `texts:` with @@ -115,6 +118,7 @@ export const componentLangs = { listbox: listboxLangs, menubar: menubarLangs, meter: meterLangs, + 'month-grid': monthGridLangs, 'navigation-menu': navigationMenuLangs, 'number-field': numberFieldLangs, pagination: paginationLangs, @@ -139,6 +143,7 @@ export const componentLangs = { tabs: tabsLangs, 'tag-group': tagGroupLangs, 'tags-input': tagsInputLangs, + textarea: textareaLangs, 'time-field': timeFieldLangs, 'time-picker': timePickerLangs, 'time-range-field': timeRangeFieldLangs, @@ -152,5 +157,6 @@ export const componentLangs = { 'tree-view': treeViewLangs, 'virtual-grid': virtualGridLangs, 'virtual-list': virtualListLangs, - words: wordsLangs + words: wordsLangs, + 'year-grid': yearGridLangs } satisfies LangNode; diff --git a/src/uix/langs/components/month-grid.ts b/src/uix/langs/components/month-grid.ts new file mode 100644 index 000000000..bba2389d0 --- /dev/null +++ b/src/uix/langs/components/month-grid.ts @@ -0,0 +1,18 @@ +import type { LangNode } from '$libs/langs'; + +/** + * Default strings for the month-grid component. Merged under + * `components.month-grid.*` by `ActiveUix` (via `componentLangs` barrel). + * + * Morfo references entries by absolute idlangref: + * `'#?components.month-grid.{key}|fallback'`. + * + * Note: the prev/next navigation labels live under `common.month-grid.*` + * (shared with `date-picker.month-view` and `date-range-picker.month-view`). + */ +export const monthGridLangs = { + label: { + es: 'Cuadrícula de meses', + en: 'Month grid' + } +} satisfies LangNode; diff --git a/src/uix/langs/components/textarea.ts b/src/uix/langs/components/textarea.ts new file mode 100644 index 000000000..c16f5dd79 --- /dev/null +++ b/src/uix/langs/components/textarea.ts @@ -0,0 +1,19 @@ +import type { LangNode } from '$libs/langs'; + +/** + * Default strings for the textarea component. Merged under + * `components.textarea.*` by `ActiveUix` (via `componentLangs` barrel). + * + * Morfo references entries by absolute idlangref: + * `'#?components.textarea.{key}|fallback'`. + */ +export const textareaLangs = { + label: { + es: 'Área de texto', + en: 'Text area' + }, + count: { + es: '{{count}} de {{max}}', + en: '{{count}} of {{max}}' + } +} satisfies LangNode; diff --git a/src/uix/langs/components/time-picker.ts b/src/uix/langs/components/time-picker.ts index 2d2d9ac2c..0ac334718 100644 --- a/src/uix/langs/components/time-picker.ts +++ b/src/uix/langs/components/time-picker.ts @@ -13,7 +13,47 @@ export const timePickerLangs = { en: 'Time picker' }, trigger: { - es: "Abrir selector de hora", - en: "Open time picker" + es: 'Abrir selector de hora', + en: 'Open time picker' + }, + clock: { + es: 'Reloj', + en: 'Time clock' + }, + hour: { + es: 'Hora', + en: 'Hour' + }, + minute: { + es: 'Minuto', + en: 'Minute' + }, + second: { + es: 'Segundo', + en: 'Second' + }, + 'day-period': { + es: 'AM / PM', + en: 'AM / PM' + }, + am: { + es: 'AM', + en: 'AM' + }, + pm: { + es: 'PM', + en: 'PM' + }, + clear: { + es: 'Borrar hora', + en: 'Clear time' + }, + cancel: { + es: 'Cancelar', + en: 'Cancel' + }, + close: { + es: 'Cerrar', + en: 'Close' } } satisfies LangNode; diff --git a/src/uix/langs/components/time-range-picker.ts b/src/uix/langs/components/time-range-picker.ts index dabf01216..dc0a342d2 100644 --- a/src/uix/langs/components/time-range-picker.ts +++ b/src/uix/langs/components/time-range-picker.ts @@ -33,11 +33,31 @@ export const timeRangePickerLangs = { en: "End minute" }, 'start-second-slider': { - es: "Segundo inicial", - en: "Start second" + es: 'Segundo inicial', + en: 'Start second' }, 'end-second-slider': { - es: "Segundo final", - en: "End second" + es: 'Segundo final', + en: 'End second' + }, + clock: { + es: 'Reloj de rango', + en: 'Time range clock' + }, + 'day-period': { + es: 'AM / PM', + en: 'AM / PM' + }, + clear: { + es: 'Borrar rango horario', + en: 'Clear time range' + }, + cancel: { + es: 'Cancelar', + en: 'Cancel' + }, + close: { + es: 'Cerrar', + en: 'Close' } } satisfies LangNode; diff --git a/src/uix/langs/components/year-grid.ts b/src/uix/langs/components/year-grid.ts new file mode 100644 index 000000000..15b17323f --- /dev/null +++ b/src/uix/langs/components/year-grid.ts @@ -0,0 +1,18 @@ +import type { LangNode } from '$libs/langs'; + +/** + * Default strings for the year-grid component. Merged under + * `components.year-grid.*` by `ActiveUix` (via `componentLangs` barrel). + * + * Morfo references entries by absolute idlangref: + * `'#?components.year-grid.{key}|fallback'`. + * + * Note: the prev/next page labels live under `common.year-grid.*` + * (shared with `date-picker.year-view` and `date-range-picker.year-view`). + */ +export const yearGridLangs = { + label: { + es: 'Cuadrícula de años', + en: 'Year grid' + } +} satisfies LangNode;