import type { LangNode } from '$libs/langs'; /** * Default shared UI strings used by `v.commonRef(...)` and imperative * idlangrefs such as `#?common.buttons.close|Close`. */ export const commonLangs = { buttons: { cancel: { es: 'Cancelar', en: 'Cancel' }, clear: { es: 'Limpiar todo', en: 'Clear all' }, close: { es: 'Cerrar', en: 'Close' }, decrement: { es: 'Disminuir', en: 'Decrement' }, edit: { es: 'Editar', en: 'Edit' }, increment: { es: 'Aumentar', en: 'Increment' }, next: { es: 'Siguiente', en: 'Next' }, prev: { es: 'Anterior', en: 'Previous' }, remove: { es: 'Eliminar', en: 'Remove' }, reset: { es: 'Restablecer', en: 'Reset' }, save: { es: 'Guardar', en: 'Save' }, submit: { es: 'Enviar', en: 'Submit' } } } satisfies LangNode; /** * Legacy Soma component translations. New component-owned translations should * live in `morfo.translations` and be registered via `registerMorfo()` / * `createSomaRuntime()`. * * During the migration this catalog is still merged into the `components` * namespace by `ActiveUix` (or by a manual consumer): * * const langs = createLangs({ * ...commonLangs, * components: { ...somaComponentLangs, ...eidosComponentLangs }, * app: { ... } * }, 'es'); * * Providers and morfos reference via idlangref: * * langs.ts('#?components.drawer.trigger|Open drawer') * langs.ts('#?common.buttons.close|Close') */ export const componentLangs = { dialog: { trigger: { es: 'Abrir diálogo', en: 'Open dialog' }, content: { roledescription: { es: 'ventana de diálogo', en: 'dialog window' }, }, }, 'alert-dialog': { action: { es: 'Confirmar', en: 'Confirm' }, cancel: { es: 'Cancelar', en: 'Cancel' }, }, announce: { label: { es: 'Anuncios', en: 'Announcements' }, }, breadcrumb: { label: { es: 'Migas de pan', en: 'Breadcrumb' }, ellipsis: { es: 'Más', en: 'More' }, }, clipboard: { copy: { es: 'Copiar al portapapeles', en: 'Copy to clipboard' }, copied: { es: 'Copiado', en: 'Copied' }, }, carousel: { label: { es: 'Carrusel', en: 'Carousel' }, prev: { es: 'Diapositiva anterior', en: 'Previous slide' }, next: { es: 'Diapositiva siguiente', en: 'Next slide' }, indicator: { es: 'Ir a la diapositiva {{index}}', en: 'Go to slide {{index}}' }, slide: { es: 'Diapositiva {{index}} de {{total}}', en: 'Slide {{index}} of {{total}}' }, }, calendar: { label: { es: 'Calendario', en: 'Calendar' }, 'prev-month': { es: 'Mes anterior', en: 'Previous month' }, 'next-month': { es: 'Mes siguiente', en: 'Next month' }, 'prev-year': { es: 'Año anterior', en: 'Previous year' }, 'next-year': { es: 'Año siguiente', en: 'Next year' }, 'month-select': { es: 'Seleccionar mes', en: 'Select month' }, 'year-select': { es: 'Seleccionar año', en: 'Select year' }, 'week-label': { es: 'Semana', en: 'Week' }, 'week-number-abbr': { es: 'Sem.', en: 'Wk' }, holiday: { es: 'festivo', en: 'holiday' }, today: { es: 'hoy', en: 'today' }, selected: { es: 'seleccionado', en: 'selected' }, 'selected-date': { es: 'Fecha seleccionada: {{value}}', en: 'Selected date: {{value}}' }, 'navigated-to': { es: 'Mostrando {{value}}', en: 'Showing {{value}}' }, }, 'range-calendar': { label: { es: 'Calendario de rango', en: 'Range calendar' }, 'range-start': { es: 'inicio del rango', en: 'range start' }, 'range-end': { es: 'fin del rango', en: 'range end' }, 'in-range': { es: 'dentro del rango', en: 'in range' }, 'selected-range': { es: 'Rango seleccionado: {{start}} a {{end}}', en: 'Selected range: {{start}} to {{end}}' }, }, 'date-field': { input: { es: 'Campo de fecha', en: 'Date field' }, year: { es: 'Año', en: 'Year' }, month: { es: 'Mes', en: 'Month' }, day: { es: 'Día', en: 'Day' }, hour: { es: 'Hora', en: 'Hour' }, minute: { es: 'Minuto', en: 'Minute' }, second: { es: 'Segundo', en: 'Second' }, 'day-period': { es: 'AM/PM', en: 'AM/PM' }, 'time-zone': { es: 'Zona horaria', en: 'Time zone' }, empty: { es: 'Vacío', en: 'Empty' }, }, 'date-picker': { trigger: { es: 'Abrir calendario', en: 'Open calendar' }, calendar: { es: 'Calendario de fecha', en: 'Date calendar' }, }, 'date-range-field': { start: { es: 'Fecha inicial', en: 'Start date' }, end: { es: 'Fecha final', en: 'End date' }, separator: { es: 'hasta', en: 'to' }, }, 'date-range-picker': { trigger: { es: 'Abrir calendario de rango', en: 'Open range calendar' }, calendar: { es: 'Calendario de rango de fechas', en: 'Date range calendar' }, }, 'time-field': { input: { es: 'Campo de hora', en: 'Time field' }, hour: { es: 'Hora', en: 'Hour' }, minute: { es: 'Minuto', en: 'Minute' }, second: { es: 'Segundo', en: 'Second' }, 'day-period': { es: 'AM/PM', en: 'AM/PM' }, 'time-zone': { es: 'Zona horaria', en: 'Time zone' }, empty: { es: 'Vacío', en: 'Empty' }, }, 'time-picker': { trigger: { es: 'Abrir selector de hora', en: 'Open time picker' }, 'hour-slider': { es: 'Hora', en: 'Hour' }, 'minute-slider': { es: 'Minuto', en: 'Minute' }, 'second-slider': { es: 'Segundo', en: 'Second' }, am: { es: 'AM', en: 'AM' }, pm: { es: 'PM', en: 'PM' }, }, 'time-range-field': { 'start-label': { es: 'Hora inicial', en: 'Start time' }, 'end-label': { es: 'Hora final', en: 'End time' }, }, 'time-range-picker': { trigger: { es: 'Abrir selector de rango horario', en: 'Open time range picker' }, 'start-hour-slider': { es: 'Hora inicial', en: 'Start hour' }, 'end-hour-slider': { es: 'Hora final', en: 'End hour' }, 'start-minute-slider': { es: 'Minuto inicial', en: 'Start minute' }, 'end-minute-slider': { es: 'Minuto final', en: 'End minute' }, 'start-second-slider': { es: 'Segundo inicial', en: 'Start second' }, 'end-second-slider': { es: 'Segundo final', en: 'End second' }, am: { es: 'AM', en: 'AM' }, pm: { es: 'PM', en: 'PM' }, }, 'color-field': { input: { es: 'Valor del color', en: 'Color value' }, empty: { es: 'Vacío', en: 'Empty' }, invalid: { es: 'Color no válido', en: 'Invalid color' }, 'format-select': { es: 'Formato de color', en: 'Color format' }, 'format-hex': { es: 'HEX', en: 'HEX' }, 'format-rgb': { es: 'RGB', en: 'RGB' }, 'format-hsl': { es: 'HSL', en: 'HSL' }, 'channel-hex': { es: 'Valor hexadecimal', en: 'Hex value' }, 'channel-r': { es: 'Rojo', en: 'Red' }, 'channel-g': { es: 'Verde', en: 'Green' }, 'channel-b': { es: 'Azul', en: 'Blue' }, 'channel-h': { es: 'Matiz', en: 'Hue' }, 'channel-s': { es: 'Saturación', en: 'Saturation' }, 'channel-l': { es: 'Luminosidad', en: 'Lightness' }, 'channel-alpha': { es: 'Alfa', en: 'Alpha' }, }, 'color-picker': { trigger: { es: 'Abrir selector de color', en: 'Open color picker' }, 'value-text': { es: 'Color actual', en: 'Current color' }, area: { es: 'Área de saturación y brillo', en: 'Saturation and brightness area' }, 'area-description': { es: 'Usa las flechas para ajustar saturación (horizontal) y brillo (vertical)', en: 'Use arrow keys to adjust saturation (horizontal) and brightness (vertical)' }, 'hue-slider': { es: 'Matiz', en: 'Hue' }, 'alpha-slider': { es: 'Alfa', en: 'Alpha' }, 'saturation-slider': { es: 'Saturación', en: 'Saturation' }, 'brightness-slider': { es: 'Brillo', en: 'Brightness' }, 'red-slider': { es: 'Rojo', en: 'Red' }, 'green-slider': { es: 'Verde', en: 'Green' }, 'blue-slider': { es: 'Azul', en: 'Blue' }, 'swatch-group': { es: 'Colores predefinidos', en: 'Preset colors' }, swatch: { es: 'Muestra de color', en: 'Color swatch' }, 'eye-dropper': { es: 'Capturar color de pantalla', en: 'Pick color from screen' }, 'format-select': { es: 'Formato de color', en: 'Color format' }, }, 'drag-drop': { 'drag-started': { es: 'Arrastrando {{item}}', en: 'Started dragging {{item}}', }, 'drag-over': { es: 'Sobre zona de destino {{target}}', en: 'Over drop zone {{target}}', }, dropped: { es: 'Soltado {{item}} sobre {{target}}', en: 'Dropped {{item}} on {{target}}', }, cancelled: { es: 'Arrastre cancelado', en: 'Drag cancelled' }, 'no-targets': { es: 'Sin zonas de destino disponibles', en: 'No drop targets available', }, 'draggable-role': { es: 'arrastrable', en: 'draggable' }, 'droppable-role': { es: 'zona de destino', en: 'drop zone' }, 'droppable-active': { es: 'zona de destino activa', en: 'active drop zone', }, }, form: { submit: { es: 'Enviar', en: 'Submit' }, reset: { es: 'Restablecer', en: 'Reset' }, 'error-summary-title': { es: '{{count}} errores del formulario necesitan tu atención', en: '{{count}} form errors need your attention' }, 'error-summary-single': { es: '1 error del formulario necesita tu atención', en: '1 form error needs your attention' }, }, pagination: { label: { es: 'Paginación', en: 'Pagination' }, prev: { es: 'Página anterior', en: 'Previous page' }, next: { es: 'Página siguiente', en: 'Next page' }, page: { es: 'Página {{value}}', en: 'Page {{value}}' }, }, table: { label: { es: 'Tabla de datos', en: 'Data table' }, 'sort-asc': { es: 'Ordenado ascendente', en: 'Sorted ascending' }, 'sort-desc': { es: 'Ordenado descendente', en: 'Sorted descending' }, 'per-page': { es: 'por página', en: 'per page' }, 'no-results': { es: 'Sin resultados', en: 'No results' }, 'global-filter': { es: 'Buscar en todas las columnas...', en: 'Search all columns...' }, 'all-roles': { es: 'Todos los roles', en: 'All roles' }, columns: { es: 'Columnas', en: 'Columns' }, 'row-detail-expand': { es: 'Mostrar detalles', en: 'Show details' }, 'row-detail-collapse': { es: 'Ocultar detalles', en: 'Hide details' }, }, 'tree-grid': { label: { es: 'Cuadrícula de árbol', en: 'Tree grid' }, expand: { es: 'Expandir fila', en: 'Expand row' }, collapse: { es: 'Colapsar fila', en: 'Collapse row' }, }, } satisfies LangNode;