@eifi1/ui-kit 0.41.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -6
- package/dist/admin/admin-area-labels.d.ts +55 -0
- package/dist/admin/admin-area-labels.js +33 -0
- package/dist/admin/admin-area-labels.js.map +1 -0
- package/dist/admin/admin-forbidden.d.ts +35 -0
- package/dist/admin/admin-forbidden.js +36 -0
- package/dist/admin/admin-forbidden.js.map +1 -0
- package/dist/admin/admin-overview.d.ts +93 -0
- package/dist/admin/admin-overview.js +69 -0
- package/dist/admin/admin-overview.js.map +1 -0
- package/dist/admin/admin-sections.d.ts +63 -0
- package/dist/admin/admin-sections.js +64 -0
- package/dist/admin/admin-sections.js.map +1 -0
- package/dist/admin/admin-tool-links.d.ts +48 -0
- package/dist/admin/admin-tool-links.js +31 -0
- package/dist/admin/admin-tool-links.js.map +1 -0
- package/dist/billing/billing-banner.d.ts +25 -2
- package/dist/billing/billing-banner.js +5 -2
- package/dist/billing/billing-banner.js.map +1 -1
- package/dist/billing/billing-labels.d.ts +32 -0
- package/dist/billing/billing-labels.js +9 -0
- package/dist/billing/billing-labels.js.map +1 -1
- package/dist/billing/billing-overview.d.ts +33 -0
- package/dist/billing/billing-overview.js +6 -0
- package/dist/billing/billing-overview.js.map +1 -1
- package/dist/billing/billing-standing.d.ts +8 -0
- package/dist/billing/billing-standing.js.map +1 -1
- package/dist/billing/cancel-subscription.d.ts +46 -0
- package/dist/billing/cancel-subscription.js +57 -0
- package/dist/billing/cancel-subscription.js.map +1 -0
- package/dist/billing/plan-card.d.ts +45 -1
- package/dist/billing/plan-card.js +53 -2
- package/dist/billing/plan-card.js.map +1 -1
- package/dist/billing/plan-switch.d.ts +10 -1
- package/dist/billing/plan-switch.js +22 -13
- package/dist/billing/plan-switch.js.map +1 -1
- package/dist/billing/subscription-actions.d.ts +37 -4
- package/dist/billing/subscription-actions.js +10 -3
- package/dist/billing/subscription-actions.js.map +1 -1
- package/dist/components/account-chips.d.ts +42 -1
- package/dist/components/account-chips.js +33 -0
- package/dist/components/account-chips.js.map +1 -1
- package/dist/components/empty-state.d.ts +2 -1
- package/dist/components/empty-state.js.map +1 -1
- package/dist/eslint/index.js +1 -1
- package/dist/i18n/defaults.js +5 -1
- package/dist/i18n/defaults.js.map +1 -1
- package/dist/i18n/german.js +79 -0
- package/dist/i18n/german.js.map +1 -1
- package/dist/i18n/kit-labels.d.ts +9 -0
- package/dist/i18n/kit-labels.js.map +1 -1
- package/dist/i18n/locales/en.js +93 -1
- package/dist/i18n/locales/en.js.map +3 -3
- package/dist/i18n/locales/es.js +76 -0
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fr.js +75 -0
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/hu.js +76 -0
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/it.js +76 -0
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/zh.js +75 -0
- package/dist/i18n/locales/zh.js.map +1 -1
- package/dist/i18n/review.js +20 -1
- package/dist/i18n/review.js.map +1 -1
- package/dist/index.d.ts +18 -2
- package/dist/index.js +23 -1
- package/dist/index.js.map +1 -1
- package/dist/settings/settings-layout.d.ts +7 -1
- package/dist/settings/settings-layout.js +35 -27
- package/dist/settings/settings-layout.js.map +1 -1
- package/dist/shell/account-menu-language.d.ts +46 -0
- package/dist/shell/account-menu-language.js +64 -0
- package/dist/shell/account-menu-language.js.map +1 -0
- package/dist/shell/admin-menu.d.ts +46 -0
- package/dist/shell/admin-menu.js +60 -0
- package/dist/shell/admin-menu.js.map +1 -0
- package/dist/shell/app-shell.d.ts +10 -0
- package/dist/shell/app-shell.js +22 -4
- package/dist/shell/app-shell.js.map +1 -1
- package/dist/shell/dev-switchers.d.ts +53 -0
- package/dist/shell/dev-switchers.js +102 -0
- package/dist/shell/dev-switchers.js.map +1 -0
- package/dist/shell/sync-status-indicator.d.ts +86 -0
- package/dist/shell/sync-status-indicator.js +170 -0
- package/dist/shell/sync-status-indicator.js.map +1 -0
- package/dist/shell/top-bar-actions.d.ts +49 -0
- package/dist/shell/top-bar-actions.js +31 -0
- package/dist/shell/top-bar-actions.js.map +1 -0
- package/dist/shell/top-bar-parts-labels.d.ts +84 -0
- package/dist/shell/top-bar-parts-labels.js +48 -0
- package/dist/shell/top-bar-parts-labels.js.map +1 -0
- package/dist/shell/topbar-action-menu.d.ts +13 -1
- package/dist/shell/topbar-action-menu.js +5 -2
- package/dist/shell/topbar-action-menu.js.map +1 -1
- package/dist/shell/topbar-controls.d.ts +16 -3
- package/dist/shell/topbar-controls.js +5 -1
- package/dist/shell/topbar-controls.js.map +1 -1
- package/dist/shell/tour-menu.d.ts +58 -0
- package/dist/shell/tour-menu.js +73 -0
- package/dist/shell/tour-menu.js.map +1 -0
- package/dist/shell.d.ts +14 -0
- package/dist/shell.js +19 -0
- package/dist/shell.js.map +1 -1
- package/package.json +1 -1
- package/src/admin/admin-area-labels.ts +85 -0
- package/src/admin/admin-forbidden.tsx +75 -0
- package/src/admin/admin-overview.tsx +166 -0
- package/src/admin/admin-sections.tsx +137 -0
- package/src/admin/admin-tool-links.tsx +84 -0
- package/src/billing/billing-banner.tsx +32 -4
- package/src/billing/billing-labels.ts +53 -0
- package/src/billing/billing-overview.ts +37 -0
- package/src/billing/billing-standing.ts +8 -0
- package/src/billing/cancel-subscription.tsx +102 -0
- package/src/billing/plan-card.tsx +97 -1
- package/src/billing/plan-switch.tsx +16 -0
- package/src/billing/subscription-actions.tsx +64 -15
- package/src/components/account-chips.tsx +81 -1
- package/src/components/empty-state.tsx +2 -1
- package/src/i18n/defaults.ts +4 -0
- package/src/i18n/german.ts +92 -0
- package/src/i18n/kit-labels.tsx +9 -0
- package/src/i18n/locales/en.ts +19 -0
- package/src/i18n/locales/es.ts +86 -0
- package/src/i18n/locales/fr.ts +86 -0
- package/src/i18n/locales/hu.ts +84 -0
- package/src/i18n/locales/it.ts +87 -0
- package/src/i18n/locales/zh.ts +79 -0
- package/src/i18n/review.ts +19 -0
- package/src/index.ts +30 -2
- package/src/settings/settings-layout.tsx +58 -34
- package/src/shell/account-menu-language.tsx +116 -0
- package/src/shell/admin-menu.tsx +117 -0
- package/src/shell/app-shell.tsx +44 -3
- package/src/shell/dev-switchers.tsx +171 -0
- package/src/shell/sync-status-indicator.tsx +301 -0
- package/src/shell/top-bar-actions.tsx +79 -0
- package/src/shell/top-bar-parts-labels.ts +133 -0
- package/src/shell/topbar-action-menu.tsx +15 -2
- package/src/shell/topbar-controls.tsx +20 -3
- package/src/shell/tour-menu.tsx +144 -0
- package/src/shell.ts +24 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/i18n/locales/es.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Spanish: every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ES}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `es-ES` digits; {@link uiKitLabelsEs} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsEs(numberLocale = \"es-ES\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);\n // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in\n // src/auth/auth-errors.ts: no wait → \"un momento\", under a minute → seconds, else\n // minutes rounded up.\n const wait = (seconds: number) =>\n seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;\n const rateLimited = (seconds?: number) =>\n !seconds || seconds <= 0\n ? \"Demasiados intentos. Espere un momento e inténtelo de nuevo.\"\n : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;\n // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:\n // 0 (or less) is today, 1 tomorrow.\n const inDays = (days: number) =>\n days <= 0 ? \"hoy\" : days === 1 ? \"mañana\" : `dentro de ${n(days)} ${plural(days, \"día\", \"días\")}`;\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"Añadir adjunto\",\n attachmentCapture: \"Capturar pantalla\",\n attachmentPaste:\n \"…o pegue una captura de pantalla directamente desde el portapapeles, para mostrar solo un detalle en lugar de toda la página.\",\n attachmentRemove: \"Quitar adjunto\",\n attachmentList: \"Adjuntos\",\n attachmentScreenshot: \"Captura de pantalla\",\n attachmentRemoveFile: (name) => `Quitar ${name}`,\n attachmentLimit: (max) =>\n max === 1\n ? `Máximo ${n(max)} adjunto: quítelo para añadir otro.`\n : `Máximo ${n(max)} adjuntos: quite uno para añadir otro.`,\n attachmentUploading: \"Subiendo…\",\n attachmentUploadFailed: (name) => `No se ha podido subir «${name}»`,\n },\n feedbackDialog: {\n title: \"Enviar comentarios\",\n category: \"Categoría\",\n subject: \"Asunto\",\n body: \"¿Qué ha pasado?\",\n bodyOptional: \"¿Qué ha pasado? (opcional)\",\n attachment: \"Adjunto\",\n submitHint: (apple) => (apple ? \"⌘ Intro para enviar\" : \"Ctrl+Intro para enviar\"),\n cancel: \"Cancelar\",\n save: \"Enviar\",\n publicNotice: \"Otras personas verán el título y el texto (nunca sus capturas ni sus archivos).\",\n },\n feedbackThread: {\n thread: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n loading: \"Cargando comentarios…\",\n you: \"Usted\",\n staff: \"Equipo\",\n attachments: \"Adjuntos\",\n },\n feedbackComposer: {\n field: \"Escriba un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Enviar\",\n sendHint: (modifier) => `${modifier} + Intro para enviar`,\n sendHintEnter: \"Intro para enviar, Mayús + Intro para una nueva línea\",\n },\n // 0.27.0. \"Comentarios\" for feedback, as `feedbackDialog`; \"corrección\" for rework.\n feedbackStatus: {\n OPEN: \"Abierto\",\n READY: \"Listo para implementar\",\n REWORK: \"Corrección solicitada\",\n IN_PROGRESS: \"En curso\",\n IN_EVALUATION: \"En evaluación\",\n NEEDS_LIVE_TEST: \"Probar en producción\",\n POSTPONED: \"Pospuesto\",\n DONE: \"Hecho\",\n WONT_DO: \"No se hará\",\n },\n feedbackCategory: {\n CRASH: \"Bloqueo\",\n BUG: \"Error\",\n IDEA: \"Idea\",\n QUESTION: \"Pregunta\",\n OTHER: \"Otro\",\n },\n feedbackToast: {\n submitted: \"¡Gracias por sus comentarios!\",\n submitFailed: \"No se han podido enviar los comentarios\",\n attachmentUnsupported: \"Solo se admiten imágenes, PDF o archivos de texto\",\n attachmentTooLarge: \"El archivo supera los 10 MB\",\n attachmentTooMany: (count) =>\n count === 1\n ? \"Solo cabe 1 adjunto: el resto se ha omitido.\"\n : `Solo caben ${n(count)} adjuntos: el resto se ha omitido.`,\n captureFailed: \"No se ha podido capturar la pantalla\",\n updateFailed: \"No se ha podido guardar el cambio.\",\n statusChanged: (status, title) => `Cambiado a «${status}»: ${title}`,\n statusUndo: \"Deshacer\",\n statusRestored: (status, title) => `De vuelta a «${status}»: ${title}`,\n commentFailed: \"No se ha podido publicar el comentario.\",\n voteFailed: \"No se ha podido guardar su voto.\",\n replyFailed: \"No se ha podido enviar la respuesta.\",\n },\n feedbackMenu: {\n trigger: \"Enviar comentarios\",\n myFeedback: \"Mis comentarios\",\n discussion: \"Debate de comentarios\",\n inbox: \"Comentarios recibidos\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9: the public pages and the two feedback\n // notification types. \"Informe\" for one report, so it never reads as \"comentario\".\n feedbackPublic: {\n title: \"Debate de comentarios\",\n sort: \"Ordenar\",\n sortNewest: \"Más recientes\",\n sortVotes: \"Más deseados\",\n sortUpdated: \"Actualizados recientemente\",\n search: \"Buscar en los títulos\",\n columnVotes: \"Votos\",\n total: (count) => `${n(count)} ${plural(count, \"informe\", \"informes\")}`,\n comments: (count) => `${n(count)} ${plural(count, \"comentario\", \"comentarios\")}`,\n votes: (count) => `${n(count)} ${plural(count, \"voto\", \"votos\")}`,\n anonymous: \"Una persona\",\n filedBy: (name) => `De ${name}`,\n body: \"Descripción\",\n conversation: \"Respuestas y comentarios\",\n loading: \"Cargando…\",\n empty: \"Todavía no hay informes\",\n visibleToOthers: \"Visible para otras personas\",\n visibleHint: \"Otras personas ven el título y el texto, nunca sus capturas ni sus archivos.\",\n visibleLocked: \"Solo mientras el informe siga abierto.\",\n page: (page) => `Página ${n(page)}`,\n },\n feedbackNotificationTypes: {\n answered: \"Respuestas a sus informes\",\n answeredDescription: \"Cuando un informe que usted escribió o comentó recibe una respuesta.\",\n comment: \"Comentarios en informes que sigue\",\n commentDescription: \"Cuando alguien comenta un informe que usted escribió o comentó.\",\n },\n feedbackContext: {\n user: \"Usuario\",\n attachUrl: \"Adjuntar la URL de la página actual\",\n },\n feedbackPage: {\n title: \"Comentarios recibidos\",\n myTitle: \"Mis comentarios\",\n columnId: \"#\",\n columnDate: \"Fecha\",\n columnCategory: \"Categoría\",\n columnSubject: \"Asunto\",\n columnUser: \"Usuario\",\n columnEmail: \"Correo electrónico\",\n columnUrl: \"URL\",\n columnStatus: \"Estado\",\n columnResolved: \"Resuelto el\",\n openPage: \"Abrir página\",\n empty: \"Ninguno\",\n deletedUser: \"<usuario eliminado>\",\n // An id, not a count: printed as it is, like the \"#\" column.\n userFallback: (id) => `usuario #${id}`,\n environment: (environment) => String(environment ?? \"\").toUpperCase(),\n reworkChip: (count) => (count === 1 ? \"Corrección\" : `Corrección ×${n(count)}`),\n awaitingFilter: \"Solo lo que está pendiente de usted\",\n phoneActions: \"Acciones de comentarios\",\n },\n feedbackDetail: {\n subject: \"Asunto\",\n body: \"Descripción\",\n edit: \"Editar\",\n editDescription: \"Editar descripción\",\n save: \"Guardar\",\n cancel: \"Cancelar\",\n url: \"URL\",\n copyUrl: \"Copiar URL\",\n attachment: \"Adjunto\",\n download: (name) => `Descargar ${name}`,\n downloadFailed: \"No se ha podido descargar el adjunto.\",\n outcome: \"Resultado\",\n replies: \"Respuestas\",\n resolvedAt: (date) => `Resuelto el ${date}`,\n outcomeAdd: \"Añadir resultado\",\n outcomeUpdate: \"Actualizar\",\n outcomePlaceholder: \"Qué se ha hecho o decidido, o por qué no se abordará.\",\n rework: \"Corrección\",\n openPage: \"Abrir página\",\n reworkTitle: \"Devolver para corrección\",\n reworkSend: \"Solicitar corrección\",\n reworkPlaceholder: \"¿Qué falta por pulir? Nuevos requisitos o cambios de rumbo.\",\n reworkUploadFailed: \"No se ha podido subir el archivo. La solicitud de corrección no se ha enviado.\",\n status: \"Estado\",\n note: \"Nota\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9.15: the vote, the comment thread, the replies.\n feedbackVote: {\n vote: \"Yo también lo quiero\",\n own: \"Su informe\",\n },\n feedbackComments: {\n comments: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n hidden: \"Ocultado por un administrador\",\n hide: \"Ocultar\",\n unhide: \"Mostrar\",\n delete: \"Eliminar\",\n deleteTitle: \"¿Eliminar este comentario?\",\n deleteBody: \"Se eliminará para todos. No se puede deshacer.\",\n field: \"Escribir un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Comentar\",\n },\n feedbackReplies: {\n replies: \"Respuestas\",\n empty: \"Aún no hay respuesta\",\n admin: \"Admin\",\n statusChanged: \"Estado cambiado a\",\n field: \"Escribir una respuesta\",\n placeholder: \"Escriba una respuesta…\",\n reply: \"Responder\",\n status: \"Estado con la respuesta\",\n noChange: \"Sin cambios\",\n nudge: \"No se ha avisado a quien lo informó. Añada una respuesta.\",\n },\n accountSettings: {\n profile: {\n title: \"Perfil\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n memberSince: \"Miembro desde\",\n displayName: \"Nombre visible\",\n save: \"Guardar\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n nameRequired: \"Introduzca el nombre y los apellidos.\",\n },\n password: {\n title: \"Cambiar contraseña\",\n current: \"Contraseña actual\",\n next: \"Nueva contraseña\",\n confirm: \"Confirmar nueva contraseña\",\n submit: \"Cambiar contraseña\",\n tooShort: \"La nueva contraseña es demasiado corta.\",\n mismatch: \"Las contraseñas no coinciden.\",\n wrongPassword: \"La contraseña no es correcta.\",\n },\n twoFactor: {\n status: \"Verificación en dos pasos\",\n enabledText: \"Activada\",\n disabledText: \"Desactivada\",\n enable: \"Configurar la verificación en dos pasos\",\n scanHint: \"Escanee este código con su app de autenticación e introduzca el código que muestra.\",\n codeLabel: \"Código de verificación\",\n verify: \"Verificar y activar\",\n disableSection: \"Desactivar la verificación en dos pasos\",\n password: \"Contraseña actual\",\n disable: \"Desactivar\",\n qrAlt: \"Código QR para su app de autenticación\",\n secretHint: \"¿No puede escanearlo? Introduzca esta clave en la app:\",\n copySecret: \"Copiar clave\",\n // 0.31.0: the card's title; the state (\"Activada\") stands beside it.\n title: \"Verificación en dos pasos\",\n },\n passkeys: {\n title: \"Llaves de acceso\",\n description: \"Inicie sesión con su huella, su cara o el PIN del dispositivo en lugar de una contraseña.\",\n descriptionAlongside: \"Inicie sesión con su huella, su cara o el PIN del dispositivo. Su contraseña sigue funcionando.\",\n empty: \"Aún no hay llaves de acceso\",\n loading: \"Cargando llaves de acceso…\",\n list: \"Sus llaves de acceso\",\n nameLabel: \"Nombre (opcional)\",\n namePlaceholder: \"p. ej. Portátil, Móvil\",\n add: \"Añadir llave de acceso\",\n adding: \"Esperando al dispositivo…\",\n rename: \"Cambiar nombre\",\n renameItem: (name) => `Cambiar nombre de ${name}`,\n renameField: (name) => `Nuevo nombre para ${name}`,\n save: \"Guardar\",\n cancel: \"Cancelar\",\n delete: \"Eliminar\",\n deleteItem: (name) => `Eliminar ${name}`,\n deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrá iniciar sesión con ella.`,\n confirmDelete: \"Eliminar llave de acceso\",\n created: (date) => `Añadida el ${date}`,\n lastUsed: (date) => `Último uso: ${date}`,\n neverUsed: \"Nunca usada\",\n },\n },\n measuredGrid: {\n view: \"Vista de tabla\",\n cellsView: \"Celdas\",\n textView: \"Texto\",\n addRow: \"Añadir fila\",\n removeRow: (row) => `Quitar la fila ${row}`,\n clear: \"Vaciar tabla\",\n pasteHint: \"Pegue un bloque de una hoja de cálculo en cualquier celda\",\n cell: (column, row) => `${column}, fila ${row}`,\n rowNumber: \"Fila\",\n rowActions: \"Acciones de fila\",\n keyboardHint:\n \"Las flechas mueven entre celdas. Escriba para reemplazar una celda, F2 para editarla, Escape para deshacer la edición. Intro baja y añade una fila al final.\",\n lineError: (line) => `No se pudo leer la línea ${line}`,\n points: (count) => (count === 1 ? \"1 punto\" : `${n(count)} puntos`),\n problems: (count) =>\n count === 1 ? \"1 celda no es un número\" : `${n(count)} celdas no son números`,\n },\n pageContents: { title: \"En esta página\" },\n common: {\n dismiss: \"Cerrar\",\n close: \"Cerrar\",\n clear: \"Borrar\",\n search: \"Buscar\",\n done: \"Listo\",\n cancel: \"Cancelar\",\n save: \"Guardar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n remove: \"Quitar\",\n loading: \"Cargando…\",\n noResults: \"Sin resultados\",\n fieldValue: (field, value) => `${field}: ${value}`,\n opensInNewTab: \"se abre en una pestaña nueva\",\n aboutField: (field) => `Acerca de «${field}»`,\n help: \"Ayuda\",\n },\n dataTable: {\n columns: \"Columnas\",\n selectAllRows: \"Seleccionar todas las filas\",\n sortHint: \"Haga clic para ordenar · Mayús+clic para añadir un criterio\",\n filter: \"Filtrar\",\n close: \"Cerrar\",\n selectRow: \"Seleccionar fila\",\n selectRows: \"Seleccionar filas\",\n cancelSelection: \"Cancelar\",\n rowDetails: \"Detalles\",\n autoSize: \"Ajustar ancho de columnas\",\n loading: \"Cargando…\",\n filters: \"Filtros\",\n clearAll: \"Borrar todo\",\n done: \"Listo\",\n pageSize: \"Filas por página\",\n pageSizeAll: \"Todas\",\n prevPage: \"Página anterior\",\n nextPage: \"Página siguiente\",\n clearFilter: \"Borrar filtro\",\n filterPlaceholder: \"Filtrar…\",\n selectFilter: \"Seleccionar\",\n selectAll: \"Todos\",\n selectNone: \"Ninguno\",\n dateFrom: \"Desde\",\n dateTo: \"Hasta\",\n numberMin: \"Mín.\",\n numberMax: \"Máx.\",\n numberAbs: \"Valor absoluto\",\n presets: {\n today: \"Hoy\",\n yesterday: \"Ayer\",\n this_week: \"Esta semana\",\n last_week: \"Semana pasada\",\n last_7_days: \"Últimos 7 días\",\n last_30_days: \"Últimos 30 días\",\n this_month: \"Este mes\",\n last_month: \"Mes pasado\",\n last_3_months: \"Últimos 3 meses\",\n ytd: \"En lo que va de año\",\n last_year: \"Año pasado\",\n },\n table: \"Tabla de datos\",\n filterResults: (shown, total) =>\n `${n(shown)} de ${n(total)} ${plural(total, \"fila\", \"filas\")}`,\n sortedAscending: (column) => `Ordenado por ${column}, ascendente`,\n sortedDescending: (column) => `Ordenado por ${column}, descendente`,\n sortCleared: (column) => `Orden por ${column} eliminado`,\n pageChanged: (page, totalPages) => `Página ${n(page)} de ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columnas (${n(visible)}/${n(total)})`,\n filterColumn: (column, active) => (active ? `Filtrar ${column} (activo)` : `Filtrar ${column}`),\n empty: \"No hay entradas\",\n actions: \"Acciones\",\n edit: \"Editar\",\n delete: \"Eliminar\",\n booleanTrue: \"Sí\",\n booleanFalse: \"No\",\n booleanUnset: \"Sin definir\",\n sortBy: \"Ordenar por\",\n sortDefault: \"Orden predeterminado\",\n sortAscending: \"Ascendente\",\n sortDescending: \"Descendente\",\n },\n miniCalendar: {\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n // Already formatted in the provider's locale (\"lunes, 14 de septiembre de 2026\").\n day: (date) => date,\n chooseStart: \"Elija una fecha de inicio\",\n chooseEnd: \"Elija una fecha de fin\",\n // \"Fecha\" is feminine; the date follows a label rather than being the subject of\n // a participle it cannot agree with.\n startSelected: (date) => `Fecha de inicio: ${date}. Elija una fecha de fin.`,\n rangeSelected: (from, to) =>\n `Periodo seleccionado: del ${from} al ${to}. Elija una fecha de inicio para empezar de nuevo.`,\n },\n monthPicker: {\n previousYear: \"Año anterior\",\n nextYear: \"Año siguiente\",\n panel: \"Elegir un mes\",\n month: (monthYear) => monthYear,\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n today: \"Hoy\",\n yearPanel: \"Elegir un año\",\n earlierYears: \"Años anteriores\",\n laterYears: \"Años posteriores\",\n thisYear: \"Este año\",\n },\n calendarHeatmap: {\n grid: \"Valores diarios\",\n day: (date, value) => `${date}: ${value}`,\n less: \"Menos\",\n more: \"Más\",\n truncated: (count) =>\n `Se muestran los días más recientes; ${count === 1 ? \"no se muestra 1 día anterior\" : `no se muestran ${n(count)} días anteriores`}.`,\n },\n datePicker: {\n apply: \"Aplicar\",\n cancel: \"Cancelar\",\n presets: \"Rangos rápidos\",\n panel: \"Elegir una fecha\",\n rangePanel: \"Elegir un intervalo de fechas\",\n clear: \"Borrar\",\n previousDay: \"Día anterior\",\n nextDay: \"Día siguiente\",\n today: \"Hoy\",\n },\n popover: {\n panel: \"Ventana emergente\",\n },\n combobox: {\n search: \"Buscar\",\n noResults: \"Sin resultados\",\n clear: \"Borrar\",\n loading: \"Cargando…\",\n create: (query) => `Crear «${query}»`,\n selectedCount: (count) => `${n(count)} ${plural(count, \"seleccionado\", \"seleccionados\")}`,\n loadError: \"No se han podido cargar los resultados\",\n resultCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n minChars: (count) =>\n `Escriba al menos ${n(count)} ${plural(count, \"carácter\", \"caracteres\")}`,\n },\n multiSelect: {\n search: \"Buscar\",\n selectAll: \"Seleccionar todo\",\n clear: \"Borrar\",\n all: \"Todos\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"Abrir calculadora\",\n panel: \"Calculadora\",\n calculation: \"Cálculo\",\n backspace: \"Retroceso\",\n clear: \"Borrar\",\n equals: \"Igual\",\n done: \"Listo\",\n plus: \"Más\",\n minus: \"Menos\",\n times: \"Por\",\n divide: \"Entre\",\n decimal: \"Separador decimal\",\n },\n currency: {\n currency: \"Moneda\",\n search: \"Buscar moneda\",\n },\n chipInput: {\n added: (value) => `«${value}» añadido`,\n removed: (value) => `«${value}» quitado`,\n remove: \"Quitar\",\n atLimit: (max) => `Límite de ${n(max)} ${plural(max, \"elemento\", \"elementos\")} alcanzado`,\n duplicate: (value) => `«${value}» ya está en la lista`,\n },\n swatchPicker: {\n none: \"Sin color\",\n mixed: \"Mixto: los elementos seleccionados tienen colores distintos\",\n },\n iconPicker: {\n none: \"Sin icono\",\n mixed: \"Mixto: los elementos seleccionados tienen iconos distintos\",\n search: \"Buscar iconos\",\n noResults: \"Ningún icono coincide\",\n resultCount: (count) => `${n(count)} ${plural(count, \"icono\", \"iconos\")}`,\n },\n fieldSync: {\n synced: \"Guardado\",\n edited: \"Cambios sin guardar\",\n pending: \"Guardando…\",\n error: \"No se pudo guardar\",\n retry: \"Reintentar\",\n },\n passwordReveal: {\n show: \"Mostrar contraseña\",\n hide: \"Ocultar contraseña\",\n },\n dangerConfirm: {\n arm: \"Eliminar…\",\n confirm: \"Eliminar\",\n cancel: \"Cancelar\",\n prompt: \"Esta acción no se puede deshacer.\",\n password: \"Contraseña\",\n phrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n acknowledge: \"He leído lo que hace esta acción y deseo continuar.\",\n needsPhrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n needsAcknowledge: \"Marque la casilla para confirmar\",\n needsPassword: \"Introduzca su contraseña para confirmar\",\n },\n tabs: {\n add: \"Añadir pestaña\",\n remove: (tab) => `Quitar ${tab}`,\n more: \"Más pestañas\",\n backToFirst: \"Volver a la primera pestaña\",\n },\n appShell: {\n collapse: \"Contraer barra lateral\",\n expand: \"Expandir barra lateral\",\n toggleGroup: (groupLabel) => `${groupLabel}: páginas`,\n },\n topBar: {\n theme: \"Cambiar de tema\",\n palette: \"Ajuste de apariencia\",\n language: \"Idioma\",\n switchRole: \"Cambiar de rol\",\n role: (value) => `Rol: ${value}`,\n },\n pickerSheet: {\n close: \"Cerrar\",\n done: \"Listo\",\n },\n dialogFrame: {\n close: \"Cerrar\",\n },\n bulkActionBar: {\n selected: (count) => `${n(count)} ${count === 1 ? \"seleccionado\" : \"seleccionados\"}`,\n clear: \"Borrar selección\",\n cleared: \"Selección borrada\",\n },\n swipeableRow: {\n actions: \"Acciones de la fila\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3,4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"Carga de archivos\",\n browse: \"Examinar\",\n empty: \"Suelte un archivo aquí\",\n emptyMultiple: \"Suelte archivos aquí\",\n hint: (accept) => (accept ? `Aceptados: ${accept}` : \"Cualquier tipo de archivo\"),\n busy: \"Subiendo…\",\n rejectedPick: (count) =>\n count === 1 ? \"El archivo no se añadió\" : `No se añadió ninguno de los ${n(count)} archivos`,\n rejectedType: (name) => `El tipo de archivo de «${name}» no es compatible`,\n rejectedTypeOnly: (accept) => `Solo archivos ${accept}`,\n rejectedSize: (name, maxSize) => `«${name}» supera ${maxSize}`,\n rejectedCount: (name, maxFiles) =>\n `«${name}» no se ha añadido: como máximo ${n(maxFiles)} ${plural(maxFiles, \"archivo\", \"archivos\")}`,\n rejectedInvalid: (name) => `«${name}» no se puede usar aquí`,\n rejectedMany: (count) =>\n count === 1 ? \"1 archivo no se ha añadido\" : `${n(count)} archivos no se han añadido`,\n selected: (count, firstName) =>\n count === 1 ? `«${firstName}» seleccionado` : `${n(count)} archivos seleccionados`,\n remove: (name) => `Quitar «${name}»`,\n clearAll: \"Quitar todos los archivos\",\n removed: (name) => `«${name}» quitado`,\n cleared: \"Se han quitado todos los archivos\",\n },\n wizard: {\n done: \"Listo\",\n cancel: \"Cancelar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n skip: \"Omitir\",\n finish: \"Finalizar\",\n submitting: \"Creando…\",\n steps: \"Pasos\",\n step: (current, total) => `Paso ${n(current)} de ${n(total)}`,\n cancelTitle: \"¿Descartar este formulario?\",\n confirmCancel: \"Se perderán los datos introducidos.\",\n cancelConfirmLabel: \"Descartar\",\n cancelDismissLabel: \"Seguir editando\",\n reviewTitle: \"Revisión\",\n edit: \"Editar\",\n missingRequired: \"Rellene todos los campos obligatorios.\",\n genericError: \"Se ha producido un error\",\n },\n tour: {\n next: \"Siguiente\",\n back: \"Atrás\",\n skip: \"Omitir\",\n done: \"Listo\",\n awaitClickHint: \"Haga clic en el elemento resaltado para continuar\",\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n commandPalette: {\n clear: \"Borrar búsqueda\",\n submit: \"Buscar\",\n close: \"Cerrar\",\n placeholder: \"Buscar…\",\n empty: \"Sin resultados\",\n loading: \"Buscando…\",\n dialog: \"Búsqueda\",\n error: \"La búsqueda ha fallado. Inténtelo de nuevo.\",\n },\n globalSearch: {\n trigger: \"Buscar\",\n placeholder: \"Buscar o ir a…\",\n shortcut: (keys) => `Buscar (${keys})`,\n suggestions: \"Pruebe\",\n results: \"Resultados\",\n },\n sparkline: {\n rising: (first, last) => `Sube de ${first} a ${last}`,\n falling: (first, last) => `Baja de ${first} a ${last}`,\n flat: (value) => `Estable en ${value}`,\n single: (value) => `Un único valor: ${value}`,\n noData: \"Sin datos\",\n named: (name, summary) => `${name}: ${summary}`,\n },\n statTile: {\n increase: (amount) => `Sube ${amount}`,\n decrease: (amount) => `Baja ${amount}`,\n unchanged: \"Sin cambios\",\n better: (change) => `${change} (favorable)`,\n worse: (change) => `${change} (desfavorable)`,\n noValue: \"Sin datos\",\n loading: \"Cargando…\",\n },\n signaturePad: {\n label: \"Firma\",\n instructions: \"Firme en el recuadro con el ratón, el dedo o un lápiz.\",\n typedFallbackHint: \"Si no puede dibujar, escriba su nombre.\",\n empty: \"Aún no hay nada dibujado\",\n signed: \"Firma dibujada\",\n undo: \"Deshacer el último trazo\",\n clear: \"Borrar\",\n save: \"Guardar firma\",\n useTyped: \"Escribir el nombre\",\n useDrawn: \"Dibujar la firma\",\n typedName: \"Nombre completo\",\n cleared: \"Firma borrada\",\n undone: \"Último trazo eliminado\",\n viewEmpty: \"Sin firmar\",\n viewDrawn: \"Firma manuscrita\",\n viewTyped: (name) => `Firmado con el nombre escrito ${name}`,\n },\n passwordStrength: {\n // Agrees with \"contraseña\" (feminine).\n tooShort: \"Demasiado corta\",\n weak: \"Débil\",\n fair: \"Aceptable\",\n good: \"Buena\",\n strong: \"Fuerte\",\n announcement: (level) => `Seguridad de la contraseña: ${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) =>\n `Al menos ${n(minLength)} ${plural(minLength, \"carácter\", \"caracteres\")}`,\n ruleCase: \"Mayúsculas y minúsculas\",\n ruleDigit: \"Un número\",\n ruleSymbol: \"Un símbolo\",\n optional: (rule) => `${rule} (opcional)`,\n met: \"Cumplido:\",\n notMet: \"No cumplido:\",\n tooLong: (maxBytes) =>\n `Como máximo ${n(maxBytes)} ${plural(maxBytes, \"carácter\", \"caracteres\")} (las letras con tilde y los emojis cuentan como más de uno).`,\n },\n seriesChart: {\n resetZoom: \"Restablecer zoom\",\n zoomHint:\n \"Arrastre para ampliar: una selección más o menos cuadrada amplía ambos ejes; una larga y estrecha, solo el suyo. Haga doble clic para restablecer.\",\n empty: \"Sin datos\",\n legend: \"Series\",\n points: \"Valores del gráfico\",\n },\n pieChart: {\n slices: \"Sectores del gráfico\",\n slice: (label, value, percent) => `${label}: ${value} (${percent})`,\n total: \"Total\",\n empty: \"Sin datos\",\n legend: \"Categorías\",\n },\n confirmDialog: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n typed: (text) => `Escriba «${text}» para confirmar`,\n },\n floatingPanel: {\n close: \"Cerrar\",\n badge: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")}`,\n },\n copyButton: {\n copy: \"Copiar\",\n copied: \"Copiado\",\n failed: \"No se pudo copiar\",\n copiedAnnouncement: \"Copiado al portapapeles\",\n failedAnnouncement: \"No se pudo copiar al portapapeles\",\n },\n list: {\n unread: \"No leído\",\n opensInNewTab: \"se abre en una pestaña nueva\",\n },\n breadcrumbs: {\n label: \"Ruta de navegación\",\n showAll: \"Mostrar la ruta completa\",\n },\n toast: {\n close: \"Cerrar notificación\",\n notifications: \"Notificaciones\",\n undo: \"Deshacer\",\n redo: \"Rehacer\",\n },\n form: {\n save: \"Guardar\",\n cancel: \"Cancelar\",\n submitShortcut: (apple) => (apple ? \"⌘ Intro\" : \"Ctrl+Intro\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"Añadir fila\",\n remove: (row) => `Eliminar fila ${row}`,\n confirmRemove: (row) => `¿Eliminar fila ${row}? Pulse de nuevo para confirmar`,\n row: (row) => `Fila ${row}`,\n cell: (column, row) => `${column}, fila ${row}`,\n totals: \"Total\",\n },\n progressBar: {\n unlimited: \"Ilimitado\",\n overLimit: (amount) => `${amount} por encima del límite`,\n },\n signedAmount: {\n positive: (amount) => `más ${amount}`,\n negative: (amount) => `menos ${amount}`,\n },\n errorBoundary: {\n title: \"Algo salió mal\",\n message: \"No se pudo mostrar esta parte de la página. Inténtelo de nuevo o recargue la página.\",\n retry: \"Reintentar\",\n details: \"Detalles del error\",\n reload: \"Recargar\",\n updateTitle: \"Hay una nueva versión disponible\",\n updateMessage: \"Una parte de la aplicación ha cambiado desde que se cargó esta página. Recárguela para obtener la nueva versión.\",\n offlineTitle: \"Sin conexión\",\n offlineMessage: \"No se pudo cargar esta página sin conexión. Vuelva a conectarse y recargue la página.\",\n copyReport: \"Copiar informe de error\",\n reported: \"El error se ha notificado automáticamente.\",\n reportedAs: (reference) => `Notificado con la referencia ${reference}`,\n },\n authedImage: {\n loading: \"Cargando imagen…\",\n loadError: \"No se pudo cargar la imagen\",\n failedImage: (alt) => `${alt}: no se pudo cargar la imagen`,\n },\n imageGrid: {\n list: \"Imágenes\",\n item: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n actions: (name) => `Acciones para ${name}`,\n },\n lightbox: {\n dialog: \"Visor de imágenes\",\n close: \"Cerrar\",\n previous: \"Imagen anterior\",\n next: \"Imagen siguiente\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n download: \"Descargar\",\n zoom: \"Ampliar\",\n noPreview: \"No hay vista previa disponible para este archivo\",\n openInNewTab: \"Abrir en una pestaña nueva\",\n },\n writeLock: {\n reason: \"Puede verlo, pero no modificarlo.\",\n },\n accountState: {\n // Agreeing with \"cuenta\" (feminine): the chip is the state of an account.\n active: \"Activa\",\n inactive: \"Inactiva\",\n invited: \"Invitación enviada\",\n registered: \"Registrada\",\n unverified: \"Sin verificar\",\n passwordChange: \"Debe cambiar la contraseña\",\n deletion: \"Eliminación solicitada\",\n deletionOn: (date) => `Eliminación el ${date}`,\n },\n shareCard: {\n dialogTitle: \"Compartir\",\n close: \"Cerrar\",\n email: \"Correo electrónico\",\n emailOptional: \"Correo electrónico (opcional)\",\n // example.com is reserved for examples (RFC 2606); a localised domain is real.\n emailPlaceholder: \"nombre@example.com\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n roleOf: (name) => `Rol de ${name}`,\n add: \"Compartir\",\n whoHasAccess: \"Quién tiene acceso\",\n nobodyYet: \"Nadie más tiene acceso todavía.\",\n pending: \"Pendiente\",\n openInvite: \"Enlace de invitación abierto\",\n copyLink: \"Copiar enlace\",\n team: \"Equipo\",\n teamHint: (name) => `Todos los miembros de ${name} tendrán acceso.`,\n remove: \"Quitar acceso\",\n removeConfirm: (name) => `¿Quitar el acceso a ${name}?`,\n revokePending: \"Retirar invitación\",\n revokePendingConfirm: (name) => `¿Retirar la invitación para ${name}?`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n loading: \"Cargando…\",\n },\n reauthDialog: {\n title: \"Confirme que es usted\",\n description: \"Introduzca su contraseña actual para continuar.\",\n password: \"Contraseña actual\",\n submit: \"Continuar\",\n cancel: \"Cancelar\",\n },\n serverWake: {\n slow: \"Sigue cargando: está tardando más de lo habitual.\",\n waking: (appName) =>\n `El servidor se duerme cuando nadie usa ${appName ?? \"la aplicación\"}, así que la primera solicitud tras una pausa tiene que volver a arrancarlo. Puede tardar un momento; no se pierde nada y la página se completará sola.`,\n },\n // 0.28.0 — docs/legal-harmonization.md §4.3/§4.4: Kurvenschmiede's reviewed Spanish\n // (formal \"usted\"), brought into line with the kit's English; it goes back to\n // Kurvenschmiede for review.\n legal: {\n navLabel: \"Información legal\",\n links: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n titles: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n backHome: \"Volver al inicio\",\n accept: \"Acepto las {terms} y la {privacy}\",\n notice: {\n beta: \"Beta cerrada. Estos textos aún no han sido revisados por un abogado y lo serán antes de un lanzamiento público.\",\n privacy:\n \"Beta cerrada. La redacción jurídica que sigue aún no ha sido revisada por un abogado y lo será antes de un lanzamiento público. Las descripciones técnicas —qué se guarda, dónde y quién puede leerlo— describen lo que el software hace realmente hoy y deben poder contrastarse con él.\",\n },\n translation: {\n note: (o) =>\n `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,\n show: (o) => `Ver la versión en ${o.bindingLanguage}`,\n },\n sections: {\n impressum: {\n operator: {\n title: \"Responsable del sitio\",\n body: (o) =>\n `${o.name}\\n${o.postalCode} ${o.city}\\n${o.country}\\n\\nLa dirección postal completa se facilita, previa solicitud, a quien tenga un interés jurídico legítimo; escriba a la dirección de contacto indicada abajo.`,\n },\n contact: {\n title: \"Contacto\",\n body: (o) => `Correo electrónico: ${o.email}`,\n },\n disclaimer: {\n title: \"Responsabilidad por contenidos y enlaces\",\n body: \"Este es un proyecto privado y sin fines comerciales, que se ofrece sin garantía durante una beta cerrada. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). \"Plan\"\n // and \"suscripción\" as the `billing` namespace.\n commercial:\n \"Este es un servicio comercial. Los planes de pago los vende nuestro revendedor, que actúa como Merchant of Record: vende la suscripción en su propio nombre, cobra el pago, emite la factura y gestiona el IVA, y sus condiciones de venta se aplican a la compra. Procuramos que el contenido de este servicio sea correcto, pero no podemos garantizar que esté completo ni actualizado. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n },\n },\n privacy: {\n controller: {\n title: \"Responsable del tratamiento\",\n body: (o) =>\n `El responsable del tratamiento de los datos personales en este servicio es:\\n${o.name}\\n${o.postalCode} ${o.city}, ${o.country}\\nCorreo electrónico: ${o.email}\\n\\nLa dirección postal completa se facilita, previa solicitud, a los interesados y a las autoridades de control.`,\n },\n legal_basis: {\n title: \"Base jurídica\",\n body: \"Como el responsable reside en Suiza, el tratamiento se rige por la Ley Federal suiza de Protección de Datos (LPD). Cuando le sea aplicable el Reglamento General de Protección de Datos de la UE (RGPD), nos basamos en la ejecución de un contrato para prestar el servicio (art. 6.1.b RGPD) y en nuestro interés legítimo en operarlo y protegerlo (art. 6.1.f RGPD).\",\n },\n browser: {\n title: \"Qué guarda su navegador\",\n lead: \"Ninguna cookie. La aplicación guarda lo siguiente en el almacenamiento de su navegador:\",\n tail: \"Nada de ello se usa para rastrearle. Las entradas pendientes de envío se nos envían en cuanto sea posible; todo lo demás permanece en su dispositivo. Todo ello desaparece cuando borra los datos del sitio, y al cerrar sesión se eliminan los tokens de inicio de sesión.\",\n },\n rights: {\n title: \"Sus derechos\",\n lead: \"Tiene derecho de acceso, rectificación, supresión, limitación, portabilidad y oposición.\",\n tail: \"Si se encuentra en Suiza, puede dirigirse al Comisionado Federal de Protección de Datos e Información (FDPIC); si se encuentra en la UE, puede presentar una reclamación ante su autoridad de control local.\",\n },\n contact: {\n title: \"Contacto para la protección de datos\",\n body: (o) => `Para cualquier solicitud sobre privacidad, escriba a: ${o.email}`,\n },\n },\n terms: {\n warranty: {\n title: \"Sin garantía\",\n body: \"El servicio se ofrece «tal cual» y «según disponibilidad», sin garantías de ningún tipo, en la medida en que lo permita la ley. Al ser una beta, puede contener errores, cambiar o interrumpirse en cualquier momento; conserve usted mismo copias de seguridad de los datos importantes.\",\n },\n liability: {\n title: \"Limitación de responsabilidad\",\n body: \"En la medida en que lo permita la legislación aplicable, el operador no responde de los daños indirectos o consecuentes derivados del uso o de la imposibilidad de uso del servicio. Nada de lo aquí dispuesto limita la responsabilidad que la ley no permite limitar.\",\n },\n changes: {\n title: \"Cambios en estas condiciones\",\n body: \"Estas condiciones pueden actualizarse a medida que evolucione el servicio. Los cambios importantes se anunciarán por correo electrónico o en la aplicación; si sigue usando el servicio después de un cambio, lo acepta.\",\n },\n language: {\n title: \"Idioma\",\n body: (o) =>\n `Estas condiciones están redactadas en ${o.bindingLanguage}. Las traducciones a otros idiomas se ofrecen solo por comodidad; en caso de discrepancia, prevalece la versión en ${o.bindingLanguage}.`,\n },\n law: {\n title: \"Legislación aplicable\",\n body: (o) =>\n `Estas condiciones se rigen por el derecho suizo, con exclusión de sus normas de conflicto de leyes. En la medida en que lo permita la ley, el fuero competente es ${o.city} (${o.region}), ${o.country}.`,\n },\n },\n },\n },\n // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,\n // notfound) where it says the same, brought into line with the kit's English and this\n // catalogue's words (\"Nueva contraseña\", \"verificación en dos pasos\"); written fresh\n // where Kurvenschmiede has no such text yet. Formal \"usted\". It goes back to\n // Kurvenschmiede for review.\n signIn: {\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n submit: \"Iniciar sesión\",\n passkey: \"Iniciar sesión con una llave de acceso\",\n forgotPassword: \"¿Ha olvidado su contraseña?\",\n noAccount: \"¿Aún no tiene cuenta?\",\n register: \"Crear cuenta\",\n invalidCredentials: \"El correo electrónico o la contraseña no son correctos.\",\n failed: \"No se pudo iniciar sesión. Inténtelo de nuevo.\",\n passkeyFailed: \"No se pudo iniciar sesión con la llave de acceso.\",\n deactivatedHint: \"¿Cuenta desactivada? Escriba a {contact}.\",\n tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,\n twoFactorTitle: \"Verificación en dos pasos\",\n twoFactorIntro: \"Introduzca el código que muestra su app de autenticación.\",\n code: \"Código de verificación\",\n verify: \"Verificar\",\n codeInvalid: \"El código de verificación no es válido.\",\n setPasswordTitle: \"Elija una nueva contraseña\",\n setPasswordIntro:\n \"Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.\",\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n setPasswordSubmit: \"Establecer la contraseña e iniciar sesión\",\n setPasswordFailed: \"No se pudo establecer la contraseña.\",\n expired: \"Este inicio de sesión ha caducado. Inicie sesión de nuevo.\",\n backToSignIn: \"Volver a iniciar sesión\",\n useRecoveryCode: \"Usar un código de respaldo\",\n useAuthenticatorCode: \"Usar su app de autenticación\",\n recoveryCode: \"Código de respaldo\",\n recoveryIntro:\n \"Introduzca uno de los códigos de respaldo que guardó al activar la verificación en dos pasos.\",\n recoveryCodeHint: (length) =>\n `${n(length)} letras y dígitos. Los guiones y los espacios no importan.`,\n recoveryCodeInvalid: \"Este código de respaldo no es válido o ya se ha usado.\",\n rateLimited,\n // 0.31.0: the same words as `landing.requestAccess`.\n requestAccess: \"Solicitar acceso\",\n },\n register: {\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n email: \"Correo electrónico\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.\",\n invitedEmailHint: \"La dirección a la que se envió su invitación.\",\n invitedTagNote: \"La dirección etiquetada recibe su propio correo de confirmación.\",\n password: \"Contraseña\",\n confirmPassword: \"Repita la contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n language: \"Idioma\",\n submit: \"Crear cuenta\",\n haveAccount: \"¿Ya tiene una cuenta?\",\n signIn: \"Iniciar sesión\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n registrationClosed:\n \"Solo se pueden crear cuentas nuevas por invitación. Pida al operador que envíe una invitación a su dirección de correo electrónico.\",\n invitationInvalid: \"Este enlace de invitación no es válido.\",\n invitationExpired: \"Esta invitación ha caducado. Pida una nueva.\",\n failed: \"No se pudo completar el registro. Inténtelo de nuevo.\",\n rateLimited,\n },\n completeName: {\n title: \"Complete su nombre\",\n description:\n \"El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n save: \"Guardar\",\n later: \"Más tarde\",\n failed: \"No se pudo guardar su nombre. Inténtelo de nuevo.\",\n },\n forgotPassword: {\n title: \"Restablecer la contraseña\",\n intro:\n \"Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.\",\n email: \"Correo electrónico\",\n submit: \"Enviar el enlace\",\n sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,\n sentHint:\n \"El enlace es válido durante una hora y funciona una sola vez. Revise también la carpeta de correo no deseado.\",\n backToSignIn: \"Volver a iniciar sesión\",\n error: \"La solicitud ha fallado. Inténtelo de nuevo más tarde.\",\n rateLimited,\n },\n resetPassword: {\n title: \"Elija una nueva contraseña\",\n checking: \"Comprobando el enlace…\",\n intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n mismatch: \"Las contraseñas no coinciden.\",\n submit: \"Guardar la contraseña\",\n failed: \"No se pudo cambiar la contraseña.\",\n noToken: \"Este enlace está incompleto.\",\n invalid: \"Este enlace no es válido o ha caducado.\",\n invalidHint: \"Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.\",\n requestNew: \"Solicitar un enlace nuevo\",\n success: \"Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.\",\n sessionsEnded:\n \"Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.\",\n signIn: \"Ir a iniciar sesión\",\n rateLimited,\n },\n verifyEmail: {\n title: \"Confirme su dirección de correo electrónico\",\n verifying: \"Confirmando…\",\n verified: \"Su dirección de correo electrónico está confirmada.\",\n continue: \"Continuar\",\n invalid: \"Este enlace de confirmación no es válido\",\n expired: \"Este enlace de confirmación ha caducado\",\n noToken: \"A este enlace le falta el token de confirmación.\",\n invalidHint: \"Es posible que el enlace haya caducado o que ya se haya usado.\",\n requestInApp: \"Puede solicitar uno nuevo desde la aplicación.\",\n requestHere: \"Puede solicitar uno nuevo aquí.\",\n resend: \"Enviar de nuevo\",\n resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,\n resent: \"Correo de confirmación enviado\",\n resendError: \"No se pudo enviar el correo de confirmación\",\n rateLimited,\n banner: \"Confirme su dirección de correo electrónico.\",\n dismiss: \"Ahora no\",\n },\n notFound: {\n title: \"Página no encontrada\",\n body: \"Esta dirección no existe (o ya no existe). Quizá sea una errata o la página se haya movido.\",\n home: \"Ir a la página de inicio\",\n app: \"Volver a la aplicación\",\n },\n acceptInvitation: {\n title: \"Aceptar la invitación\",\n accepting: \"Aceptando la invitación…\",\n accepted: \"Invitación aceptada.\",\n joined: (name) => `Se ha unido a ${name}.`,\n continue: \"Continuar\",\n invalid: \"No es posible unirse con este enlace\",\n expired: \"Esta invitación ha caducado\",\n noToken: \"A este enlace le falta el token de invitación.\",\n askAgain: \"Pida a quien le invitó que le envíe una nueva invitación.\",\n signInFirst: \"Inicie sesión para aceptar esta invitación\",\n signInHint: \"Use la cuenta a la que se envió la invitación.\",\n signIn: \"Iniciar sesión\",\n register: \"Crear cuenta\",\n },\n companySwitcher: {\n switchCompany: \"Cambiar de empresa\",\n heading: \"Empresas\",\n current: (name) => `Empresa: ${name}`,\n currentMark: \"(actual)\",\n switching: \"Cambiando de empresa…\",\n },\n // 0.30.0 — docs/user-admin-harmonization.md: Kurvenschmiede's reviewed Spanish for the\n // admin words, transfer, invitations and sessions; written fresh where it had no\n // sentence. \"Usted\", as the rest of this catalogue.\n emailChange: {\n title: \"Dirección de correo electrónico\",\n current: \"Dirección actual\",\n newEmail: \"Nueva dirección de correo electrónico\",\n password: \"Contraseña actual\",\n passwordHint: \"Inicia sesión con su dirección, así que cambiarla requiere su contraseña.\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.\",\n submit: \"Cambiar la dirección de correo electrónico\",\n sameAsCurrent: \"Esta ya es su dirección.\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n wrongPassword: \"La contraseña no es correcta.\",\n pending: (newEmail) => `Confirme el enlace que hemos enviado a ${newEmail}.`,\n pendingHint: (currentEmail) =>\n `Hasta entonces, seguirá iniciando sesión con ${currentEmail}. Revise también la carpeta de correo no deseado.`,\n resend: \"Enviar el enlace de nuevo\",\n resent: \"Hemos vuelto a enviar el enlace.\",\n cancel: \"Cancelar el cambio\",\n confirmed: (email) => `Su dirección de correo electrónico es ahora ${email}.`,\n passkeyNote:\n \"Sus llaves de acceso siguen funcionando. Puede que su dispositivo aún las muestre con su dirección anterior.\",\n rateLimited,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.\n notifications: {\n typesTitle: \"Avisarme de\",\n typesDescription: \"Elija de qué se entera y cómo.\",\n byEmail: \"Por correo electrónico\",\n emailUnverified: \"Confirme su dirección para recibirlos.\",\n digestCadence: \"Frecuencia\",\n digestWeekly: \"Semanal\",\n digestMonthly: \"Mensual\",\n typesLoading: \"Cargando los ajustes de notificaciones…\",\n typesEmpty: \"No hay notificaciones para esta cuenta.\",\n quietTitle: \"Horas de silencio\",\n quietDescription: (inbox) =>\n inbox\n ? \"Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada.\"\n : \"Sin notificaciones push durante este intervalo.\",\n quietFrom: \"Desde\",\n quietUntil: \"Hasta\",\n quietIncomplete:\n \"Indique una hora de inicio y una de fin. Las horas de silencio se aplican cuando ambas están definidas.\",\n timeZone: \"Zona horaria\",\n deviceZone: (zone) => `Este dispositivo está en ${zone}.`,\n useDeviceZone: \"Usarla\",\n regions: {\n Africa: \"África\",\n America: \"América\",\n Antarctica: \"Antártida\",\n Arctic: \"Ártico\",\n Asia: \"Asia\",\n Atlantic: \"Atlántico\",\n Australia: \"Australia\",\n Europe: \"Europa\",\n Indian: \"Océano Índico\",\n Pacific: \"Pacífico\",\n },\n pushTitle: \"Notificaciones push\",\n pushDescription: \"Notificaciones en este dispositivo, también con la app cerrada.\",\n unsupported: \"Este navegador no admite notificaciones push.\",\n iosInstall: (app) =>\n `En iPhone o iPad, añada primero ${app} a la pantalla de inicio: iOS solo entrega notificaciones a la app instalada.`,\n notConfigured: \"Las notificaciones push no están configuradas en este servidor.\",\n blocked: \"Las notificaciones están bloqueadas en los ajustes de este navegador.\",\n on: \"Las notificaciones están activadas en este dispositivo.\",\n off: \"Las notificaciones están desactivadas en este dispositivo.\",\n otherAccount:\n \"Este navegador recibe notificaciones de otra cuenta. Actívelas aquí para recibirlas en la cuenta con la que ha iniciado sesión.\",\n enable: \"Activar notificaciones\",\n disable: \"Desactivar\",\n sendTest: \"Enviar una prueba\",\n enableFailed: \"No se pudieron activar las notificaciones.\",\n noServiceWorker:\n \"No se pudo contactar con el service worker de la app. Recargue la página e inténtelo de nuevo.\",\n pushTimeout: \"El servicio push del navegador no respondió. Compruebe su conexión e inténtelo de nuevo.\",\n testSent: (count) => `Prueba enviada a ${n(count)} ${plural(count, \"dispositivo\", \"dispositivos\")}`,\n testNone: \"Ningún dispositivo aceptó la prueba. Active primero las notificaciones en este dispositivo.\",\n testFailed: \"No se pudo enviar la notificación de prueba.\",\n explainerTitle: \"¿Activar las notificaciones?\",\n explainerBody: (app) =>\n `${app} solo envía notificaciones de lo que usted elija, y puede desactivarlas en cualquier momento.`,\n explainerHint: \"A continuación, su navegador le pedirá permiso.\",\n explainerContinue: \"Continuar\",\n devicesTitle: \"Dispositivos de notificación\",\n devicesDescription:\n \"Todos los dispositivos que reciben notificaciones push de su cuenta. Quite los que ya no use.\",\n devicesLoading: \"Cargando dispositivos…\",\n devicesEmpty: \"Aún no hay ningún dispositivo que reciba notificaciones.\",\n unknownDevice: \"Dispositivo desconocido\",\n thisDevice: \"Este dispositivo\",\n added: (date) => `Añadido el ${date}`,\n lastDelivery: (date) => `Última entrega el ${date}`,\n noDelivery: \"Aún sin entregas\",\n failures: (count) =>\n `${n(count)} ${plural(count, \"entrega fallida consecutiva\", \"entregas fallidas consecutivas\")}`,\n remove: \"Quitar\",\n // Starts with `remove`, the button's visible text, for voice control.\n removeItem: (device) => `Quitar ${device}`,\n removePrompt: \"¿Dejar de enviar notificaciones a este dispositivo?\",\n unsubscribeTitle: \"Notificaciones por correo electrónico\",\n unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,\n unsubscribeGeneric: \"Recibe correos de notificación.\",\n stopThese: \"Dejar de recibir estos correos\",\n stopAll: (app) => `Dejar de recibir todos los correos de notificación de ${app}`,\n stoppedThese: \"Hecho. Ya no recibirá estos correos.\",\n stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,\n accountMail: \"Los correos sobre su cuenta seguirán llegando.\",\n turnBackOn: \"Puede volver a activarlos en cualquier momento en los ajustes.\",\n openSettings: \"Abrir los ajustes\",\n invalidLink: \"Este enlace ya no funciona. Puede desactivar los correos en los ajustes.\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n sessions: {\n title: \"Sesiones\",\n description:\n \"¿Ha iniciado sesión en un dispositivo que ya no usa o en el que no confía? Cierre sesión en todas partes.\",\n signOutEverywhere: \"Cerrar sesión en todas partes…\",\n signOutEverywherePrompt:\n \"Esto termina todas las sesiones, también esta: se cerrará la sesión en este dispositivo y tendrá que volver a iniciarla aquí.\",\n confirmSignOutEverywhere: \"Cerrar sesión en todas partes\",\n list: \"Dónde ha iniciado sesión\",\n loading: \"Cargando sesiones…\",\n empty: \"No hay sesiones que mostrar.\",\n current: \"Este dispositivo\",\n unknownDevice: \"Dispositivo desconocido\",\n // A colon: `when` is either \"hace 3 horas\" or a date.\n lastActive: (when) => `Última actividad: ${when}`,\n ip: (address) => `IP ${address}`,\n revoke: \"Cerrar sesión\",\n // Starts with `revoke`, the button's visible text, for voice control.\n revokeItem: (device) => `Cerrar sesión en ${device}`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n deleteAccount: {\n title: \"Eliminar la cuenta\",\n afterDays: (days) =>\n `Su cuenta se desactiva de inmediato y se borra definitivamente ${n(days)} ${plural(days, \"día\", \"días\")} después.`,\n operator: \"Su cuenta se desactiva de inmediato, y el operador la borrará definitivamente.\",\n arm: \"Eliminar la cuenta…\",\n prompt: \"Se cerrará su sesión en todos los dispositivos y ya no podrá usar su cuenta.\",\n handOver: (count) =>\n count === 1\n ? \"1 elemento que otros pueden ver pasará a un administrador.\"\n : `${n(count)} elementos que otros pueden ver pasarán a un administrador.`,\n confirm: \"Eliminar mi cuenta\",\n done: \"Su cuenta está desactivada. Se está cerrando su sesión.\",\n wrongPassword: \"La contraseña no es correcta.\",\n confirmationMismatch: \"Esta no es la dirección de su cuenta.\",\n lastAdmin:\n \"Su cuenta es la última con rol de administrador. Primero haga administrador a otra persona.\",\n lastAdminOf: (companies) =>\n `Su cuenta es la última con rol de administrador en ${companies}. Primero haga administrador allí a otra persona.`,\n householdHasMembers:\n \"Su hogar tiene otros miembros, así que la cuenta no se puede eliminar aquí. Escriba al operador.\",\n rateLimited,\n failed: \"No se pudo eliminar su cuenta. Inténtelo de nuevo.\",\n },\n dataExport: {\n title: \"Exportar sus datos\",\n description: \"Descargue una copia de los datos de su cuenta como archivo JSON.\",\n download: \"Descargar mis datos\",\n started: \"La descarga ha comenzado.\",\n saveAgain: \"¿No ha empezado? Guardar el archivo\",\n rateLimited: (seconds) =>\n seconds && seconds > 0\n ? `Acaba de exportar sus datos. Inténtelo de nuevo en ${wait(seconds)}.`\n : \"Acaba de exportar sus datos. Inténtelo de nuevo dentro de un minuto.\",\n failed: \"La exportación ha fallado. Inténtelo de nuevo.\",\n },\n userRoster: {\n name: \"Nombre\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n state: \"Estado\",\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n created: \"Creada\",\n lastLogin: \"Último inicio de sesión\",\n never: \"Nunca\",\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones para ${name}`,\n },\n roleSelect: {\n label: \"Rol\",\n rolesLegend: \"Roles\",\n roleOf: (name) => `Rol de ${name}`,\n lockedLastAdmin: \"La última cuenta de administrador activa conserva este rol.\",\n lockedSelf: \"No puede cambiar su propio rol.\",\n notForLastAdmin: \"no para el último administrador\",\n notForSelf: \"no para su propia cuenta\",\n unavailable: (role, reason) => `${role} (${reason})`,\n },\n reviewerScope: {\n languages: \"Idiomas\",\n hint: \"Marque los idiomas que revisa esta persona.\",\n none: \"Ningún idioma: al guardar se retira el rol de revisor.\",\n areas: \"Limitar a\",\n legalOnly: \"Solo las páginas legales\",\n legalOnlyHint:\n \"Aviso legal, política de privacidad y condiciones de uso: para un abogado más que para un hablante nativo.\",\n failed: \"No se pudo guardar el ámbito de revisión. Inténtelo de nuevo.\",\n },\n adminAction: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n close: \"Cerrar\",\n lastAdmin:\n \"Esta es la última cuenta de administrador activa. Primero haga administrador a otra persona.\",\n self: \"No puede hacer esto con su propia cuenta.\",\n confirmationMismatch:\n \"La dirección no coincide con esta cuenta. Compruebe en qué cuenta está.\",\n otherCompanies:\n \"Esta cuenta también pertenece a otras empresas, así que solo el operador de la plataforma puede hacer esto. En su lugar, puede quitarla de esta empresa.\",\n removeFromCompany: \"Quitar de la empresa\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n adminActionLog: {\n title: \"Acciones de administración\",\n empty: \"Aún no hay acciones de administración.\",\n loading: \"Cargando…\",\n by: (actor) => `por ${actor}`,\n bySelf: \"por la propia persona\",\n automatic: \"automáticamente\",\n erased: \"una cuenta borrada\",\n filteredTo: (target) => `Solo ${target}`,\n showAll: \"Mostrar todas las acciones\",\n filterBy: (target) => `Mostrar solo las acciones sobre ${target}`,\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n actions: {\n deactivate: \"Desactivada\",\n reactivate: \"Reactivada\",\n role: \"Rol cambiado\",\n password_change_require: \"Nueva contraseña exigida\",\n password_change_withdraw: \"Exigencia de contraseña retirada\",\n mail_verification: \"Correo de confirmación enviado\",\n mail_reset: \"Correo de restablecimiento de contraseña enviado\",\n reviewer: \"Ámbito de revisión cambiado\",\n invite: \"Invitación enviada\",\n invite_resend: \"Invitación reenviada\",\n invite_revoke: \"Invitación retirada\",\n transfer: \"Trabajo traspasado\",\n deletion_request: \"Eliminación solicitada\",\n deletion_cancel: \"Eliminación cancelada\",\n erase: \"Cuenta borrada\",\n plan: \"Plan cambiado\",\n },\n // 0.34 (§11.5): whole phrases per noun. The group's own agree with the noun\n // (\"Empresa creada\"), a member's with \"cuenta\", as `actions` do. `team` is\n // Kurvenschmiede's \"equipo\"; `company` keeps `actions.membership_remove`'s string.\n groupActions: {\n group: {\n group_create: \"Grupo creado\",\n group_rename: \"Grupo renombrado\",\n group_delete: \"Grupo eliminado\",\n membership_add: \"Añadida al grupo\",\n membership_role: \"Rol en el grupo cambiado\",\n membership_remove: \"Quitada del grupo\",\n deleted: \"un grupo eliminado\",\n },\n team: {\n group_create: \"Equipo creado\",\n group_rename: \"Equipo renombrado\",\n group_delete: \"Equipo eliminado\",\n membership_add: \"Añadida al equipo\",\n membership_role: \"Rol en el equipo cambiado\",\n membership_remove: \"Quitada del equipo\",\n deleted: \"un equipo eliminado\",\n },\n company: {\n group_create: \"Empresa creada\",\n group_rename: \"Empresa renombrada\",\n group_delete: \"Empresa eliminada\",\n membership_add: \"Añadida a la empresa\",\n membership_role: \"Rol en la empresa cambiado\",\n membership_remove: \"Quitada de la empresa\",\n deleted: \"una empresa eliminada\",\n },\n budget: {\n group_create: \"Presupuesto creado\",\n group_rename: \"Presupuesto renombrado\",\n group_delete: \"Presupuesto eliminado\",\n membership_add: \"Añadida al presupuesto\",\n membership_role: \"Rol en el presupuesto cambiado\",\n membership_remove: \"Quitada del presupuesto\",\n deleted: \"un presupuesto eliminado\",\n },\n },\n },\n transferOwnership: {\n title: (name) => `Traspasar el trabajo de ${name}`,\n body: \"Todo lo que posee esta cuenta pasa a la cuenta elegida, en un solo paso.\",\n recipient: \"Traspasar a\",\n choose: \"Elija una cuenta…\",\n chooseFirst: \"Elija quién recibe el trabajo\",\n confirm: \"Traspasar\",\n customer: \"cliente\",\n deactivated: \"desactivada\",\n self: \"la misma cuenta\",\n unavailable: (account, reason) => `${account} (${reason})`,\n noCandidates: \"Ninguna otra cuenta puede recibirlo.\",\n },\n invitations: {\n email: \"Dirección de correo electrónico\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n scope: \"Ámbito\",\n scopeNone: \"Ninguno\",\n language: \"Idioma de la invitación\",\n note: \"Nota\",\n invite: \"Invitar\",\n listTitle: \"Invitaciones\",\n empty: \"Todavía no se ha invitado a nadie.\",\n loading: \"Cargando…\",\n // Agreeing with \"invitación\" (feminine).\n status: { open: \"Pendiente\", accepted: \"Aceptada\", expired: \"Caducada\", revoked: \"Retirada\" },\n sent: (date) => `Enviada el ${date}`,\n expires: (date) => `Válida hasta el ${date}`,\n invitedBy: (name) => `por ${name}`,\n resend: (email) => `Enviar a ${email} un enlace nuevo`,\n copyLink: \"Copiar enlace de invitación\",\n revoke: (email) => `Retirar la invitación de ${email}`,\n consoleHint:\n \"Este servidor no envía correos: se escriben en el registro del servidor. Copie aquí cada enlace de invitación y transmítalo usted mismo: solo se muestra una vez.\",\n linkReady: (email) => `El enlace de invitación para ${email}, que solo se muestra esta vez:`,\n notSent: (email) => `${email} está invitado, pero no se pudo enviar el correo. Reenvíelo.`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n characterCount: {\n count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, \"carácter\", \"caracteres\")}`,\n remaining: (left) =>\n left === 1 ? \"Queda 1 carácter\" : `Quedan ${n(left)} caracteres`,\n limitReached: \"Límite de caracteres alcanzado\",\n },\n countrySelect: {\n country: \"País\",\n search: \"Buscar país\",\n others: \"Otros países\",\n },\n inlineEdit: {\n edit: (label) => `Editar ${label}`,\n failed: \"No se ha podido guardar el cambio.\",\n empty: \"Vacío\",\n },\n ibanInput: {\n format: \"Un IBAN empieza por un código de país de dos letras y dos dígitos de control.\",\n country: (code) => `«${code}» no es el código de país de un IBAN.`,\n length: (actual, expected) =>\n `Un IBAN de este país tiene ${n(expected)} caracteres; este tiene ${n(actual)}.`,\n checksum: \"Los dígitos de control no coinciden: probablemente hay un carácter mal escrito.\",\n qrRequired: \"Este es un IBAN normal. Una factura QR requiere el QR-IBAN de la cuenta.\",\n qrNotAllowed:\n \"Este es un QR-IBAN, que solo recibe pagos de facturas QR. Introduzca el IBAN normal de la cuenta.\",\n },\n phoneInput: {\n countryCode: \"Prefijo del país\",\n other: \"Otro\",\n },\n signChip: {\n outflow: \"Salida\",\n inflow: \"Entrada\",\n direction: (current, next) => `Dirección: ${current} — cambiar a ${next}`,\n switchTo: (next) => `Cambiar a ${next}`,\n },\n columnMapper: {\n paste: \"Pegar una tabla\",\n pasteHint:\n \"Copie las filas de una hoja de cálculo y péguelas aquí, o suelte un archivo CSV o de texto.\",\n chooseFile: \"Elegir un archivo\",\n readError: (name) => `No se ha podido leer «${name}»`,\n headerRow: \"La primera línea contiene los nombres de las columnas\",\n summary: (columns, rows) =>\n `${n(columns)} ${plural(columns, \"columna\", \"columnas\")}, ${n(rows)} ${plural(rows, \"fila\", \"filas\")}`,\n // Fragments of the summary line. \"Separado por…\" would have to agree with a noun the\n // line does not name, so the separator is stated as a value.\n separatorSemicolon: \"separador: punto y coma\",\n separatorComma: \"separador: coma\",\n separatorTab: \"separador: tabulación\",\n separatorSpace: \"separador: espacio\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"coma decimal (1,5)\",\n decimalPoint: \"punto decimal (1.5)\",\n unreadCount: (count) =>\n count === 1 ? \"No se ha podido leer 1 línea\" : `No se han podido leer ${n(count)} líneas`,\n unreadLine: (line) => `No se pudo leer la línea ${line}`,\n unreadMore: (count) => `…y ${n(count)} más`,\n noRows: \"Ninguna línea de este texto se puede leer como una fila de la tabla.\",\n table: \"Columnas y sus funciones\",\n columnN: (column) => `Columna ${column}`,\n roleOf: (column) => `¿Qué contiene la columna «${column}»?`,\n ignore: \"Ignorar\",\n requiredRole: (role) => `${role} (obligatorio)`,\n requiredRoleShort: (role) => `${role} *`,\n previewOf: (shown, total) =>\n shown === 1\n ? `La primera de ${n(total)} filas`\n : `Las primeras ${n(shown)} de ${n(total)} filas`,\n // `roles` arrives joined with \"o\" (\"Debe o Haber\").\n oneOf: (roles) => `${roles} (a elegir)`,\n // \"Falta\" + infinitive: no verb to agree with however many roles follow.\n missing: (roles) => `Falta asignar: ${roles}.`,\n },\n translationReview: {\n statusMissing: \"Falta\",\n statusUnreviewed: \"Sin revisar\",\n statusChanged: \"Cambiado desde la revisión\",\n statusNeedsChange: \"Requiere cambios\",\n statusApproved: \"Aprobado\",\n statusFilter: \"Estado\",\n all: \"Todos\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"Textos\",\n allSources: \"Todos los textos\",\n namespace: \"Área\",\n allNamespaces: \"Todas las áreas\",\n search: \"Buscar en claves y textos\",\n placeholdersOnly: (count) => `Solo problemas de marcadores (${n(count)})`,\n placeholderChip: \"Marcadores\",\n key: \"Clave\",\n statusColumn: \"Estado\",\n empty: \"Ningún texto coincide con estos filtros.\",\n missingText: \"Falta en este idioma\",\n progress: (approved, total) => `${n(approved)} de ${n(total)} ${plural(approved, \"aprobado\", \"aprobados\")}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"Idiomas\",\n approve: \"Aprobar\",\n flag: \"Requiere cambios\",\n suggest: \"Proponer traducción\",\n reset: \"Marcar como sin revisar\",\n cancel: \"Cancelar\",\n approveSelected: \"Aprobar la selección\",\n resetSelected: \"Marcar la selección como sin revisar\",\n selectShown: \"Seleccionar todo lo mostrado\",\n changedSince: \"Este texto cambió después de revisarse. Vuelva a leerlo, por favor.\",\n reviewedWording: \"Redacción al revisarse\",\n reviewedReference: \"Referencia al revisarse\",\n placeholderMismatch: (reference, text) =>\n `Los marcadores no coinciden con la referencia — referencia: ${reference}; este texto: ${text}. La aplicación los rellena, así que deben quedar exactamente como están.`,\n lastApproved: (name, date) => `Aprobado por ${name} el ${date}`,\n lastFlagged: (name, date) => `Marcado para cambiar por ${name} el ${date}`,\n erasedReviewer: \"una cuenta eliminada\",\n suggestion: \"Mejor redacción\",\n translation: \"Traducción\",\n note: \"Nota (opcional)\",\n notePlaceholder: \"Qué está mal o qué hay que tener en cuenta\",\n readOnly: \"Puede leer este idioma, pero no revisarlo.\",\n scope: (areas) => `Su revisión se limita a: ${areas}.`,\n exportCorrections: (count) => `Exportar correcciones (${n(count)})`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n approvedToast: (count) => (count === 1 ? \"Texto aprobado\" : `${n(count)} textos aprobados`),\n clearedToast: (count) => (count === 1 ? \"Texto marcado como sin revisar\" : `${n(count)} textos marcados como sin revisar`),\n // \"sin revisar\" does not agree with the count, so one form serves both.\n groupCount: (unreviewed, total) => `${n(unreviewed)} sin revisar / ${n(total)}`,\n approveGroup: (count) => `Aprobar los sin revisar (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `¿Aprobar el texto sin revisar de «${group}»?`\n : `¿Aprobar los ${n(count)} textos sin revisar de «${group}», incluidos los que no están en pantalla?`,\n },\n // 0.31.0 — docs/settings-harmonization.md §4.3 and docs/landing-demo-harmonization.md\n // §4–§5: the settings shell, the landing page's generic words and the demo. The help\n // lines name things as `accountSettings`, `sessions` and `dataExport` do. \"Usted\".\n // \"Ajustes\" (es-ES), a countable noun: \"Ningún ajuste coincide…\".\n settings: {\n title: \"Ajustes\",\n search: \"Buscar en los ajustes\",\n searchPlaceholder: \"Buscar en los ajustes…\",\n results: \"Ajustes coincidentes\",\n noMatches: (query) => `Ningún ajuste coincide con «${query}».`,\n // As `commandPalette.clear`.\n clearSearch: \"Borrar búsqueda\",\n back: \"Volver a los ajustes\",\n sections: \"Secciones de los ajustes\",\n matchCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n groups: {\n appearance: {\n title: \"Apariencia\",\n help: \"Idioma, tema y aspecto de la aplicación en este dispositivo.\",\n },\n account: {\n title: \"Cuenta\",\n help: \"Su perfil y su dirección de correo electrónico.\",\n },\n security: {\n title: \"Seguridad\",\n help: \"Cómo inicia sesión, y en qué dispositivos tiene la sesión abierta.\",\n },\n notifications: {\n title: \"Notificaciones\",\n help: \"Qué notificaciones recibe, cuándo y en qué dispositivos.\",\n },\n data: {\n title: \"Datos\",\n help: \"Exporte lo que es suyo o elimínelo junto con su cuenta.\",\n },\n },\n },\n landing: {\n signIn: \"Iniciar sesión\",\n requestAccess: \"Solicitar acceso\",\n getStarted: \"Empezar\",\n tryDemo: \"Probar la demo\",\n openApp: \"Abrir la aplicación\",\n continueDemo: \"Continuar la demo\",\n beta: \"Beta\",\n // Plain text: a mail's subject and body lines, never HTML.\n accessSubject: (app) => (app ? `Acceso a ${app}` : \"Solicitud de acceso\"),\n accessName: \"Nombre:\",\n accessCompany: \"Empresa:\",\n accessUse: \"Uso previsto:\",\n },\n demo: {\n starting: \"Iniciando la demo…\",\n rateLimited: (minutes) =>\n minutes\n ? `Demasiadas demos desde esta red. Inténtelo de nuevo en ${n(minutes)} min.`\n : \"Demasiadas demos desde esta red. Inténtelo de nuevo más tarde.\",\n capacity: \"La demo está completa en este momento. Inténtelo de nuevo más tarde.\",\n unavailable: \"La demo no está disponible en este momento.\",\n failed: \"No se pudo iniciar la demo. Inténtelo de nuevo.\",\n // As `legal.backHome`.\n backToStart: \"Volver al inicio\",\n // Hours and minutes together are plural; minutes alone agree with the count.\n hoursLeft: (hours, minutes) => `Demo · quedan ${n(hours)} h ${n(minutes)} min`,\n minutesLeft: (minutes) => `Demo · ${plural(minutes, \"queda\", \"quedan\")} ${n(minutes)} min`,\n badge: \"Demo\",\n readOnly: \"Está viendo datos de ejemplo. No es posible hacer cambios.\",\n sandbox: \"Su propio trabajo se elimina cuando termina la demo.\",\n details: \"Detalles de la demo\",\n writeLocked: \"No es posible en la demo.\",\n endedTitle: \"La demo ha terminado\",\n endedReadOnly: \"Los datos de ejemplo se restablecen con regularidad.\",\n endedSandbox:\n \"Los datos de ejemplo se restablecen con regularidad; su propio trabajo en la demo se elimina.\",\n restart: \"Iniciar una nueva demo\",\n },\n // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: \"plan\" is what is bought\n // (Free, Pro), \"suscripción\" the standing arrangement and the settings group. \"Usted\".\n billing: {\n group: \"Suscripción\",\n plans: \"Planes\",\n interval: \"Periodo de facturación\",\n yearly: \"Anual\",\n monthly: \"Mensual\",\n // As `currency.currency`.\n currency: \"Moneda\",\n perYear: \"al año\",\n perMonth: \"al mes\",\n vatIncluded: \"IVA incluido\",\n free: \"Gratis\",\n notOffered: \"No disponible para este periodo de facturación\",\n // As `progressBar.unlimited`.\n unlimited: \"Ilimitado\",\n limits: \"Límites\",\n features: \"Incluido\",\n current: \"Plan actual\",\n choose: (plan) => `Elegir ${plan}`,\n upgrade: (plan) => `Mejorar a ${plan}`,\n downgrade: (plan) => `Cambiar a ${plan}`,\n isCurrent: \"Este es su plan actual.\",\n pickFirst: \"Elija primero un plan.\",\n // Agreeing with \"suscripción\"; \"caducada\", as `invitations.status.expired`.\n status: {\n trialing: \"Prueba\",\n active: \"Activa\",\n past_due: \"Pago vencido\",\n canceled: \"Cancelada\",\n expired: \"Caducada\",\n comped: \"De cortesía\",\n },\n trialEnding: (days) =>\n `Su periodo de prueba termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n grantEnding: (days) =>\n `Su acceso gratuito termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n paymentFailed: \"Su último pago no se ha completado. Actualice su método de pago para conservar su plan.\",\n planEnded:\n \"Su plan ha terminado. Puede seguir viendo y exportando todo; elija un plan para volver a hacer cambios.\",\n // Never why: the owner's payment status is the owner's personal data (§12.6).\n guestReadOnly: (item) =>\n item\n ? `«${item}» es de solo lectura por ahora; su propietario puede levantar esa restricción.`\n : \"Esto es de solo lectura por ahora; su propietario puede levantar esa restricción.\",\n processing:\n \"Su pago se está procesando. Su plan empieza en cuanto se confirme; esta página se actualiza sola.\",\n choosePlan: \"Elegir un plan\",\n updatePayment: \"Actualizar el método de pago\",\n checkAgain: \"Volver a comprobar\",\n lockReason: \"Su plan ha terminado. Elija un plan para volver a hacer cambios.\",\n // As `characterCount.limitReached` (\"Límite de caracteres alcanzado\").\n limitReached: \"Límite del plan alcanzado\",\n limitUpgrade: \"Para añadir más, elija un plan con un límite mayor.\",\n limitContact: \"Para añadir más, pídanos un límite mayor.\",\n askForMore: \"Pedir más\",\n // Both figures arrive formatted; \"de\", as `characterCount.count`.\n usage: (used, limit) => `${used} de ${limit}`,\n contactSubject: (dimension) => `Límite del plan: ${dimension}`,\n // The toast's figure line (§14.11) and the plan change's over-limit lines (§14.12).\n limitUsageLine: (dimension, used, limit) => `${dimension}: ${used} de ${limit}`,\n manage: \"Pagos y facturas\",\n cancel: \"Cancelar la suscripción\",\n // §14.5: no customer at the provider yet, so no portal to open.\n notAtProvider:\n \"Todavía no hay nada que gestionar. Los pagos y las facturas aparecerán aquí cuando tenga un plan de pago.\",\n // §14.4: the pay page's lines, built into its bundle. \"Usted\".\n payOpening: \"Abriendo el pago seguro…\",\n payNothing: \"Aquí no hay nada que pagar. Para elegir un plan, vuelva a la aplicación.\",\n payFailed: \"No se ha podido abrir el pago. Vuelva atrás e inténtelo de nuevo en un momento.\",\n payBack: \"El pago se ha cerrado. Puede volver atrás o recargar esta página para abrirlo de nuevo.\",\n payDone: \"Pago completado. Puede cerrar esta página.\",\n // 0.39 (§15.2.10): PlanSwitchConfirm.\n switchTitle: \"Cambiar de plan\",\n switchFromTo: (from, to) => `De ${from} a ${to}`,\n switchChargedNow: \"Cargo ahora\",\n switchCredited: \"Abonado a sus próximos cargos\",\n switchNextCharge: (date) => `Próximo cargo el ${date}`,\n switchConfirm: \"Cambiar de plan\",\n waitingChanges: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de un plan`,\n // \"Descartar\", as `wizard.cancelConfirmLabel`.\n discardWaiting: \"Descartar los cambios en espera\",\n notConfigured: \"Los pagos aún no están configurados. Inténtelo de nuevo más tarde.\",\n disabled: \"Las suscripciones no están disponibles aquí.\",\n // §14.2: server-kit 0.7's refusals. \"Pagos y facturas\", as `manage`. \"Usted\".\n providerUnavailable: \"El proveedor de pagos no está disponible en este momento. Inténtelo de nuevo en un momento.\",\n alreadySubscribed: \"Ya tiene una suscripción. Cambie de plan más arriba.\",\n planNotSold: \"Este plan no está disponible para ese periodo de facturación o esa moneda. Elija otro.\",\n // 0.39 (§15.2.10): the plan switch's refusals.\n notSubscribed: \"No hay ninguna suscripción activa que cambiar. Elija un plan para suscribirse.\",\n planUnchanged: \"Ese ya es su plan. Elija otro plan u otro periodo de facturación.\",\n },\n // 0.33.0 — docs/billing-harmonization.md §14.12: the operator's plan parts, \"plan\" as\n // in `billing`. \"Usted\".\n planChange: {\n column: \"Plan\",\n title: \"Cambiar de plan\",\n confirm: \"Cambiar de plan\",\n plan: \"Plan\",\n current: (plan) => `Plan actual: ${plan}`,\n keepsItems: \"Un plan más pequeño solo impide crear más; no se elimina nada.\",\n until: \"Gratis hasta el\",\n untilHint: \"Déjelo vacío para que no tenga fin. Una beta en curso conserva su propio fin.\",\n needsChange: \"Elija otro plan o una fecha de fin.\",\n changed: (from, to) => `Plan cambiado de ${from} a ${to}.`,\n set: (to) => `Plan establecido en ${to}.`,\n keptBeta: \"La beta conserva su fin; solo ha cambiado el plan.\",\n untilDone: (date) => `Gratis hasta el ${date}.`,\n overLimit: \"Por encima del límite del nuevo plan: no se elimina nada, los elementos nuevos quedan bloqueados.\",\n // Figures formatted; \"de\", as `billing.usage`. The app's word follows the limit,\n // in its form (0.33.1): \"1 de 1 presupuesto\", \"1 de 5 presupuestos\".\n usageOf: (used, limit, dimension) => `${used} de ${limit} ${dimension}`,\n },\n // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in\n // the \"Apariencia\" group.\n appearance: {\n textSize: \"Tamaño del texto\",\n textSizeHelp: \"Letras más grandes y un diseño que les hace sitio.\",\n textSizes: { normal: \"Normal\", large: \"Grande\", xlarge: \"Muy grande\" },\n contrast: \"Contraste\",\n contrastHelp:\n \"El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.\",\n contrastModes: { system: \"Sistema\", standard: \"Estándar\", more: \"Aumentado\" },\n saveFailed: \"No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.\",\n },\n // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the\n // last card of \"Apariencia\". \"Restablecer\", as a phone's own settings say it.\n deviceReset: {\n title: \"Restablecer este dispositivo\",\n description:\n \"Devuelve a sus valores predeterminados el aspecto de este dispositivo y la vista en que quedaron sus tablas y paneles. Su cuenta, sus datos y su inicio de sesión no se tocan.\",\n action: \"Restablecer los ajustes de este dispositivo\",\n confirmTitle: \"¿Restablecer los ajustes de este dispositivo?\",\n confirmBody:\n \"El tema, los colores, el tamaño del texto, el contraste y el idioma vuelven aquí a sus valores predeterminados, y las tablas y los paneles se abren como la primera vez. Si su cuenta tiene un idioma, un tamaño de texto o un contraste, este dispositivo vuelve a seguirlo. Su cuenta y sus otros dispositivos quedan como están.\",\n confirmAction: \"Restablecer\",\n done: \"Los ajustes de este dispositivo han vuelto a sus valores predeterminados.\",\n keywords: \"restablecer predeterminado valores dispositivo restaurar apariencia tablas diseño\",\n },\n rowActions: {\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones de ${name}`,\n },\n appShellMore: {\n more: \"Más\",\n moreTitle: \"Más páginas\",\n },\n };\n}\n\nexport const UI_KIT_LABELS_ES: UiKitLabels = uiKitLabelsEs();\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/i18n/locales/es.ts"],"sourcesContent":["import { formatFileSize } from \"../kit-labels\";\nimport type { UiKitLabels } from \"../kit-labels\";\n\n/**\n * The kit's words in Spanish: every namespace of {@link UiKitLabels}, for\n * `<UiKitProvider labels={UI_KIT_LABELS_ES}>`.\n *\n * Self-contained on purpose — nothing but the kit's own `formatFileSize` — so it works\n * as a starting point to copy and adjust. Counts and sizes are formatted with\n * `es-ES` digits; {@link uiKitLabelsEs} takes another number locale\n * (e.g. `\"de-CH\"` for 1’234) without touching the words.\n */\nexport function uiKitLabelsEs(numberLocale = \"es-ES\"): UiKitLabels {\n const num = new Intl.NumberFormat(numberLocale);\n const n = (value: number) => num.format(value);\n const plural = (count: number, one: string, many: string) => (count === 1 ? one : many);\n // 0.30.0 — a throttled request (HTTP 429), as `englishRateLimited` in\n // src/auth/auth-errors.ts: no wait → \"un momento\", under a minute → seconds, else\n // minutes rounded up.\n const wait = (seconds: number) =>\n seconds < 60 ? `${n(Math.ceil(seconds))} s` : `${n(Math.ceil(seconds / 60))} min`;\n const rateLimited = (seconds?: number) =>\n !seconds || seconds <= 0\n ? \"Demasiados intentos. Espere un momento e inténtelo de nuevo.\"\n : `Demasiados intentos. Inténtelo de nuevo en ${wait(seconds)}.`;\n // 0.32.0 — when a trial or a grant ends, as `inDays` in src/billing/billing-labels.ts:\n // 0 (or less) is today, 1 tomorrow.\n const inDays = (days: number) =>\n days <= 0 ? \"hoy\" : days === 1 ? \"mañana\" : `dentro de ${n(days)} ${plural(days, \"día\", \"días\")}`;\n\n return {\n feedbackAttachment: {\n attachmentAdd: \"Añadir adjunto\",\n attachmentCapture: \"Capturar pantalla\",\n attachmentPaste:\n \"…o pegue una captura de pantalla directamente desde el portapapeles, para mostrar solo un detalle en lugar de toda la página.\",\n attachmentRemove: \"Quitar adjunto\",\n attachmentList: \"Adjuntos\",\n attachmentScreenshot: \"Captura de pantalla\",\n attachmentRemoveFile: (name) => `Quitar ${name}`,\n attachmentLimit: (max) =>\n max === 1\n ? `Máximo ${n(max)} adjunto: quítelo para añadir otro.`\n : `Máximo ${n(max)} adjuntos: quite uno para añadir otro.`,\n attachmentUploading: \"Subiendo…\",\n attachmentUploadFailed: (name) => `No se ha podido subir «${name}»`,\n },\n feedbackDialog: {\n title: \"Enviar comentarios\",\n category: \"Categoría\",\n subject: \"Asunto\",\n body: \"¿Qué ha pasado?\",\n bodyOptional: \"¿Qué ha pasado? (opcional)\",\n attachment: \"Adjunto\",\n submitHint: (apple) => (apple ? \"⌘ Intro para enviar\" : \"Ctrl+Intro para enviar\"),\n cancel: \"Cancelar\",\n save: \"Enviar\",\n publicNotice: \"Otras personas verán el título y el texto (nunca sus capturas ni sus archivos).\",\n },\n feedbackThread: {\n thread: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n loading: \"Cargando comentarios…\",\n you: \"Usted\",\n staff: \"Equipo\",\n attachments: \"Adjuntos\",\n },\n feedbackComposer: {\n field: \"Escriba un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Enviar\",\n sendHint: (modifier) => `${modifier} + Intro para enviar`,\n sendHintEnter: \"Intro para enviar, Mayús + Intro para una nueva línea\",\n },\n // 0.27.0. \"Comentarios\" for feedback, as `feedbackDialog`; \"corrección\" for rework.\n feedbackStatus: {\n OPEN: \"Abierto\",\n READY: \"Listo para implementar\",\n REWORK: \"Corrección solicitada\",\n IN_PROGRESS: \"En curso\",\n IN_EVALUATION: \"En evaluación\",\n NEEDS_LIVE_TEST: \"Probar en producción\",\n POSTPONED: \"Pospuesto\",\n DONE: \"Hecho\",\n WONT_DO: \"No se hará\",\n },\n feedbackCategory: {\n CRASH: \"Bloqueo\",\n BUG: \"Error\",\n IDEA: \"Idea\",\n QUESTION: \"Pregunta\",\n OTHER: \"Otro\",\n },\n feedbackToast: {\n submitted: \"¡Gracias por sus comentarios!\",\n submitFailed: \"No se han podido enviar los comentarios\",\n attachmentUnsupported: \"Solo se admiten imágenes, PDF o archivos de texto\",\n attachmentTooLarge: \"El archivo supera los 10 MB\",\n attachmentTooMany: (count) =>\n count === 1\n ? \"Solo cabe 1 adjunto: el resto se ha omitido.\"\n : `Solo caben ${n(count)} adjuntos: el resto se ha omitido.`,\n captureFailed: \"No se ha podido capturar la pantalla\",\n updateFailed: \"No se ha podido guardar el cambio.\",\n statusChanged: (status, title) => `Cambiado a «${status}»: ${title}`,\n statusUndo: \"Deshacer\",\n statusRestored: (status, title) => `De vuelta a «${status}»: ${title}`,\n commentFailed: \"No se ha podido publicar el comentario.\",\n voteFailed: \"No se ha podido guardar su voto.\",\n replyFailed: \"No se ha podido enviar la respuesta.\",\n },\n feedbackMenu: {\n trigger: \"Enviar comentarios\",\n myFeedback: \"Mis comentarios\",\n discussion: \"Debate de comentarios\",\n inbox: \"Comentarios recibidos\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9: the public pages and the two feedback\n // notification types. \"Informe\" for one report, so it never reads as \"comentario\".\n feedbackPublic: {\n title: \"Debate de comentarios\",\n sort: \"Ordenar\",\n sortNewest: \"Más recientes\",\n sortVotes: \"Más deseados\",\n sortUpdated: \"Actualizados recientemente\",\n search: \"Buscar en los títulos\",\n columnVotes: \"Votos\",\n total: (count) => `${n(count)} ${plural(count, \"informe\", \"informes\")}`,\n comments: (count) => `${n(count)} ${plural(count, \"comentario\", \"comentarios\")}`,\n votes: (count) => `${n(count)} ${plural(count, \"voto\", \"votos\")}`,\n anonymous: \"Una persona\",\n filedBy: (name) => `De ${name}`,\n body: \"Descripción\",\n conversation: \"Respuestas y comentarios\",\n loading: \"Cargando…\",\n empty: \"Todavía no hay informes\",\n visibleToOthers: \"Visible para otras personas\",\n visibleHint: \"Otras personas ven el título y el texto, nunca sus capturas ni sus archivos.\",\n visibleLocked: \"Solo mientras el informe siga abierto.\",\n page: (page) => `Página ${n(page)}`,\n },\n feedbackNotificationTypes: {\n answered: \"Respuestas a sus informes\",\n answeredDescription: \"Cuando un informe que usted escribió o comentó recibe una respuesta.\",\n comment: \"Comentarios en informes que sigue\",\n commentDescription: \"Cuando alguien comenta un informe que usted escribió o comentó.\",\n },\n feedbackContext: {\n user: \"Usuario\",\n attachUrl: \"Adjuntar la URL de la página actual\",\n },\n feedbackPage: {\n title: \"Comentarios recibidos\",\n myTitle: \"Mis comentarios\",\n columnId: \"#\",\n columnDate: \"Fecha\",\n columnCategory: \"Categoría\",\n columnSubject: \"Asunto\",\n columnUser: \"Usuario\",\n columnEmail: \"Correo electrónico\",\n columnUrl: \"URL\",\n columnStatus: \"Estado\",\n columnResolved: \"Resuelto el\",\n openPage: \"Abrir página\",\n empty: \"Ninguno\",\n deletedUser: \"<usuario eliminado>\",\n // An id, not a count: printed as it is, like the \"#\" column.\n userFallback: (id) => `usuario #${id}`,\n environment: (environment) => String(environment ?? \"\").toUpperCase(),\n reworkChip: (count) => (count === 1 ? \"Corrección\" : `Corrección ×${n(count)}`),\n awaitingFilter: \"Solo lo que está pendiente de usted\",\n phoneActions: \"Acciones de comentarios\",\n },\n feedbackDetail: {\n subject: \"Asunto\",\n body: \"Descripción\",\n edit: \"Editar\",\n editDescription: \"Editar descripción\",\n save: \"Guardar\",\n cancel: \"Cancelar\",\n url: \"URL\",\n copyUrl: \"Copiar URL\",\n attachment: \"Adjunto\",\n download: (name) => `Descargar ${name}`,\n downloadFailed: \"No se ha podido descargar el adjunto.\",\n outcome: \"Resultado\",\n replies: \"Respuestas\",\n resolvedAt: (date) => `Resuelto el ${date}`,\n outcomeAdd: \"Añadir resultado\",\n outcomeUpdate: \"Actualizar\",\n outcomePlaceholder: \"Qué se ha hecho o decidido, o por qué no se abordará.\",\n rework: \"Corrección\",\n openPage: \"Abrir página\",\n reworkTitle: \"Devolver para corrección\",\n reworkSend: \"Solicitar corrección\",\n reworkPlaceholder: \"¿Qué falta por pulir? Nuevos requisitos o cambios de rumbo.\",\n reworkUploadFailed: \"No se ha podido subir el archivo. La solicitud de corrección no se ha enviado.\",\n status: \"Estado\",\n note: \"Nota\",\n },\n // 0.38.0 — docs/feedback-harmonization.md §9.15: the vote, the comment thread, the replies.\n feedbackVote: {\n vote: \"Yo también lo quiero\",\n own: \"Su informe\",\n },\n feedbackComments: {\n comments: \"Comentarios\",\n empty: \"Aún no hay comentarios\",\n hidden: \"Ocultado por un administrador\",\n hide: \"Ocultar\",\n unhide: \"Mostrar\",\n delete: \"Eliminar\",\n deleteTitle: \"¿Eliminar este comentario?\",\n deleteBody: \"Se eliminará para todos. No se puede deshacer.\",\n field: \"Escribir un comentario\",\n placeholder: \"Escriba un comentario…\",\n send: \"Comentar\",\n },\n feedbackReplies: {\n replies: \"Respuestas\",\n empty: \"Aún no hay respuesta\",\n admin: \"Admin\",\n statusChanged: \"Estado cambiado a\",\n field: \"Escribir una respuesta\",\n placeholder: \"Escriba una respuesta…\",\n reply: \"Responder\",\n status: \"Estado con la respuesta\",\n noChange: \"Sin cambios\",\n nudge: \"No se ha avisado a quien lo informó. Añada una respuesta.\",\n },\n accountSettings: {\n profile: {\n title: \"Perfil\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n memberSince: \"Miembro desde\",\n displayName: \"Nombre visible\",\n save: \"Guardar\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n nameRequired: \"Introduzca el nombre y los apellidos.\",\n },\n password: {\n title: \"Cambiar contraseña\",\n current: \"Contraseña actual\",\n next: \"Nueva contraseña\",\n confirm: \"Confirmar nueva contraseña\",\n submit: \"Cambiar contraseña\",\n tooShort: \"La nueva contraseña es demasiado corta.\",\n mismatch: \"Las contraseñas no coinciden.\",\n wrongPassword: \"La contraseña no es correcta.\",\n },\n twoFactor: {\n status: \"Verificación en dos pasos\",\n enabledText: \"Activada\",\n disabledText: \"Desactivada\",\n enable: \"Configurar la verificación en dos pasos\",\n scanHint: \"Escanee este código con su app de autenticación e introduzca el código que muestra.\",\n codeLabel: \"Código de verificación\",\n verify: \"Verificar y activar\",\n disableSection: \"Desactivar la verificación en dos pasos\",\n password: \"Contraseña actual\",\n disable: \"Desactivar\",\n qrAlt: \"Código QR para su app de autenticación\",\n secretHint: \"¿No puede escanearlo? Introduzca esta clave en la app:\",\n copySecret: \"Copiar clave\",\n // 0.31.0: the card's title; the state (\"Activada\") stands beside it.\n title: \"Verificación en dos pasos\",\n },\n passkeys: {\n title: \"Llaves de acceso\",\n description: \"Inicie sesión con su huella, su cara o el PIN del dispositivo en lugar de una contraseña.\",\n descriptionAlongside: \"Inicie sesión con su huella, su cara o el PIN del dispositivo. Su contraseña sigue funcionando.\",\n empty: \"Aún no hay llaves de acceso\",\n loading: \"Cargando llaves de acceso…\",\n list: \"Sus llaves de acceso\",\n nameLabel: \"Nombre (opcional)\",\n namePlaceholder: \"p. ej. Portátil, Móvil\",\n add: \"Añadir llave de acceso\",\n adding: \"Esperando al dispositivo…\",\n rename: \"Cambiar nombre\",\n renameItem: (name) => `Cambiar nombre de ${name}`,\n renameField: (name) => `Nuevo nombre para ${name}`,\n save: \"Guardar\",\n cancel: \"Cancelar\",\n delete: \"Eliminar\",\n deleteItem: (name) => `Eliminar ${name}`,\n deleteConfirm: (name) => `¿Eliminar «${name}»? Ya no podrá iniciar sesión con ella.`,\n confirmDelete: \"Eliminar llave de acceso\",\n created: (date) => `Añadida el ${date}`,\n lastUsed: (date) => `Último uso: ${date}`,\n neverUsed: \"Nunca usada\",\n },\n },\n measuredGrid: {\n view: \"Vista de tabla\",\n cellsView: \"Celdas\",\n textView: \"Texto\",\n addRow: \"Añadir fila\",\n removeRow: (row) => `Quitar la fila ${row}`,\n clear: \"Vaciar tabla\",\n pasteHint: \"Pegue un bloque de una hoja de cálculo en cualquier celda\",\n cell: (column, row) => `${column}, fila ${row}`,\n rowNumber: \"Fila\",\n rowActions: \"Acciones de fila\",\n keyboardHint:\n \"Las flechas mueven entre celdas. Escriba para reemplazar una celda, F2 para editarla, Escape para deshacer la edición. Intro baja y añade una fila al final.\",\n lineError: (line) => `No se pudo leer la línea ${line}`,\n points: (count) => (count === 1 ? \"1 punto\" : `${n(count)} puntos`),\n problems: (count) =>\n count === 1 ? \"1 celda no es un número\" : `${n(count)} celdas no son números`,\n },\n pageContents: { title: \"En esta página\" },\n common: {\n dismiss: \"Cerrar\",\n close: \"Cerrar\",\n clear: \"Borrar\",\n search: \"Buscar\",\n done: \"Listo\",\n cancel: \"Cancelar\",\n save: \"Guardar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n remove: \"Quitar\",\n loading: \"Cargando…\",\n noResults: \"Sin resultados\",\n fieldValue: (field, value) => `${field}: ${value}`,\n opensInNewTab: \"se abre en una pestaña nueva\",\n aboutField: (field) => `Acerca de «${field}»`,\n help: \"Ayuda\",\n },\n dataTable: {\n columns: \"Columnas\",\n selectAllRows: \"Seleccionar todas las filas\",\n sortHint: \"Haga clic para ordenar · Mayús+clic para añadir un criterio\",\n filter: \"Filtrar\",\n close: \"Cerrar\",\n selectRow: \"Seleccionar fila\",\n selectRows: \"Seleccionar filas\",\n cancelSelection: \"Cancelar\",\n rowDetails: \"Detalles\",\n autoSize: \"Ajustar ancho de columnas\",\n loading: \"Cargando…\",\n filters: \"Filtros\",\n clearAll: \"Borrar todo\",\n done: \"Listo\",\n pageSize: \"Filas por página\",\n pageSizeAll: \"Todas\",\n prevPage: \"Página anterior\",\n nextPage: \"Página siguiente\",\n clearFilter: \"Borrar filtro\",\n filterPlaceholder: \"Filtrar…\",\n selectFilter: \"Seleccionar\",\n selectAll: \"Todos\",\n selectNone: \"Ninguno\",\n dateFrom: \"Desde\",\n dateTo: \"Hasta\",\n numberMin: \"Mín.\",\n numberMax: \"Máx.\",\n numberAbs: \"Valor absoluto\",\n presets: {\n today: \"Hoy\",\n yesterday: \"Ayer\",\n this_week: \"Esta semana\",\n last_week: \"Semana pasada\",\n last_7_days: \"Últimos 7 días\",\n last_30_days: \"Últimos 30 días\",\n this_month: \"Este mes\",\n last_month: \"Mes pasado\",\n last_3_months: \"Últimos 3 meses\",\n ytd: \"En lo que va de año\",\n last_year: \"Año pasado\",\n },\n table: \"Tabla de datos\",\n filterResults: (shown, total) =>\n `${n(shown)} de ${n(total)} ${plural(total, \"fila\", \"filas\")}`,\n sortedAscending: (column) => `Ordenado por ${column}, ascendente`,\n sortedDescending: (column) => `Ordenado por ${column}, descendente`,\n sortCleared: (column) => `Orden por ${column} eliminado`,\n pageChanged: (page, totalPages) => `Página ${n(page)} de ${n(totalPages)}`,\n pageRange: (from, to, total) => `${n(from)}–${n(to)} / ${n(total)}`,\n rowCount: (total) => n(total),\n columnsCount: (visible, total) => `Columnas (${n(visible)}/${n(total)})`,\n filterColumn: (column, active) => (active ? `Filtrar ${column} (activo)` : `Filtrar ${column}`),\n empty: \"No hay entradas\",\n actions: \"Acciones\",\n edit: \"Editar\",\n delete: \"Eliminar\",\n booleanTrue: \"Sí\",\n booleanFalse: \"No\",\n booleanUnset: \"Sin definir\",\n sortBy: \"Ordenar por\",\n sortDefault: \"Orden predeterminado\",\n sortAscending: \"Ascendente\",\n sortDescending: \"Descendente\",\n },\n miniCalendar: {\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n // Already formatted in the provider's locale (\"lunes, 14 de septiembre de 2026\").\n day: (date) => date,\n chooseStart: \"Elija una fecha de inicio\",\n chooseEnd: \"Elija una fecha de fin\",\n // \"Fecha\" is feminine; the date follows a label rather than being the subject of\n // a participle it cannot agree with.\n startSelected: (date) => `Fecha de inicio: ${date}. Elija una fecha de fin.`,\n rangeSelected: (from, to) =>\n `Periodo seleccionado: del ${from} al ${to}. Elija una fecha de inicio para empezar de nuevo.`,\n },\n monthPicker: {\n previousYear: \"Año anterior\",\n nextYear: \"Año siguiente\",\n panel: \"Elegir un mes\",\n month: (monthYear) => monthYear,\n previousMonth: \"Mes anterior\",\n nextMonth: \"Mes siguiente\",\n today: \"Hoy\",\n yearPanel: \"Elegir un año\",\n earlierYears: \"Años anteriores\",\n laterYears: \"Años posteriores\",\n thisYear: \"Este año\",\n },\n calendarHeatmap: {\n grid: \"Valores diarios\",\n day: (date, value) => `${date}: ${value}`,\n less: \"Menos\",\n more: \"Más\",\n truncated: (count) =>\n `Se muestran los días más recientes; ${count === 1 ? \"no se muestra 1 día anterior\" : `no se muestran ${n(count)} días anteriores`}.`,\n },\n datePicker: {\n apply: \"Aplicar\",\n cancel: \"Cancelar\",\n presets: \"Rangos rápidos\",\n panel: \"Elegir una fecha\",\n rangePanel: \"Elegir un intervalo de fechas\",\n clear: \"Borrar\",\n previousDay: \"Día anterior\",\n nextDay: \"Día siguiente\",\n today: \"Hoy\",\n },\n popover: {\n panel: \"Ventana emergente\",\n },\n combobox: {\n search: \"Buscar\",\n noResults: \"Sin resultados\",\n clear: \"Borrar\",\n loading: \"Cargando…\",\n create: (query) => `Crear «${query}»`,\n selectedCount: (count) => `${n(count)} ${plural(count, \"seleccionado\", \"seleccionados\")}`,\n loadError: \"No se han podido cargar los resultados\",\n resultCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n minChars: (count) =>\n `Escriba al menos ${n(count)} ${plural(count, \"carácter\", \"caracteres\")}`,\n },\n multiSelect: {\n search: \"Buscar\",\n selectAll: \"Seleccionar todo\",\n clear: \"Borrar\",\n all: \"Todos\",\n // The bare count, as in English: the trigger has always shown just the number.\n selectedCount: (count) => n(count),\n },\n calculator: {\n open: \"Abrir calculadora\",\n panel: \"Calculadora\",\n calculation: \"Cálculo\",\n backspace: \"Retroceso\",\n clear: \"Borrar\",\n equals: \"Igual\",\n done: \"Listo\",\n plus: \"Más\",\n minus: \"Menos\",\n times: \"Por\",\n divide: \"Entre\",\n decimal: \"Separador decimal\",\n },\n currency: {\n currency: \"Moneda\",\n search: \"Buscar moneda\",\n },\n chipInput: {\n added: (value) => `«${value}» añadido`,\n removed: (value) => `«${value}» quitado`,\n remove: \"Quitar\",\n atLimit: (max) => `Límite de ${n(max)} ${plural(max, \"elemento\", \"elementos\")} alcanzado`,\n duplicate: (value) => `«${value}» ya está en la lista`,\n },\n swatchPicker: {\n none: \"Sin color\",\n mixed: \"Mixto: los elementos seleccionados tienen colores distintos\",\n },\n iconPicker: {\n none: \"Sin icono\",\n mixed: \"Mixto: los elementos seleccionados tienen iconos distintos\",\n search: \"Buscar iconos\",\n noResults: \"Ningún icono coincide\",\n resultCount: (count) => `${n(count)} ${plural(count, \"icono\", \"iconos\")}`,\n },\n fieldSync: {\n synced: \"Guardado\",\n edited: \"Cambios sin guardar\",\n pending: \"Guardando…\",\n error: \"No se pudo guardar\",\n retry: \"Reintentar\",\n },\n passwordReveal: {\n show: \"Mostrar contraseña\",\n hide: \"Ocultar contraseña\",\n },\n dangerConfirm: {\n arm: \"Eliminar…\",\n confirm: \"Eliminar\",\n cancel: \"Cancelar\",\n prompt: \"Esta acción no se puede deshacer.\",\n password: \"Contraseña\",\n phrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n acknowledge: \"He leído lo que hace esta acción y deseo continuar.\",\n needsPhrase: (phrase) => `Escriba «${phrase}» para confirmar`,\n needsAcknowledge: \"Marque la casilla para confirmar\",\n needsPassword: \"Introduzca su contraseña para confirmar\",\n },\n tabs: {\n add: \"Añadir pestaña\",\n remove: (tab) => `Quitar ${tab}`,\n more: \"Más pestañas\",\n backToFirst: \"Volver a la primera pestaña\",\n },\n appShell: {\n collapse: \"Contraer barra lateral\",\n expand: \"Expandir barra lateral\",\n toggleGroup: (groupLabel) => `${groupLabel}: páginas`,\n },\n topBar: {\n theme: \"Cambiar de tema\",\n palette: \"Ajuste de apariencia\",\n language: \"Idioma\",\n switchRole: \"Cambiar de rol\",\n role: (value) => `Rol: ${value}`,\n },\n pickerSheet: {\n close: \"Cerrar\",\n done: \"Listo\",\n },\n dialogFrame: {\n close: \"Cerrar\",\n },\n bulkActionBar: {\n selected: (count) => `${n(count)} ${count === 1 ? \"seleccionado\" : \"seleccionados\"}`,\n clear: \"Borrar selección\",\n cleared: \"Selección borrada\",\n },\n swipeableRow: {\n actions: \"Acciones de la fila\",\n },\n file: {\n // The kit's own `Intl` unit formatting, pinned to this locale (\"3,4 MB\").\n size: (bytes) => formatFileSize(bytes, numberLocale),\n },\n filePicker: {\n dropzone: \"Carga de archivos\",\n browse: \"Examinar\",\n empty: \"Suelte un archivo aquí\",\n emptyMultiple: \"Suelte archivos aquí\",\n hint: (accept) => (accept ? `Aceptados: ${accept}` : \"Cualquier tipo de archivo\"),\n busy: \"Subiendo…\",\n rejectedPick: (count) =>\n count === 1 ? \"El archivo no se añadió\" : `No se añadió ninguno de los ${n(count)} archivos`,\n rejectedType: (name) => `El tipo de archivo de «${name}» no es compatible`,\n rejectedTypeOnly: (accept) => `Solo archivos ${accept}`,\n rejectedSize: (name, maxSize) => `«${name}» supera ${maxSize}`,\n rejectedCount: (name, maxFiles) =>\n `«${name}» no se ha añadido: como máximo ${n(maxFiles)} ${plural(maxFiles, \"archivo\", \"archivos\")}`,\n rejectedInvalid: (name) => `«${name}» no se puede usar aquí`,\n rejectedMany: (count) =>\n count === 1 ? \"1 archivo no se ha añadido\" : `${n(count)} archivos no se han añadido`,\n selected: (count, firstName) =>\n count === 1 ? `«${firstName}» seleccionado` : `${n(count)} archivos seleccionados`,\n remove: (name) => `Quitar «${name}»`,\n clearAll: \"Quitar todos los archivos\",\n removed: (name) => `«${name}» quitado`,\n cleared: \"Se han quitado todos los archivos\",\n },\n wizard: {\n done: \"Listo\",\n cancel: \"Cancelar\",\n back: \"Atrás\",\n next: \"Siguiente\",\n skip: \"Omitir\",\n finish: \"Finalizar\",\n submitting: \"Creando…\",\n steps: \"Pasos\",\n step: (current, total) => `Paso ${n(current)} de ${n(total)}`,\n cancelTitle: \"¿Descartar este formulario?\",\n confirmCancel: \"Se perderán los datos introducidos.\",\n cancelConfirmLabel: \"Descartar\",\n cancelDismissLabel: \"Seguir editando\",\n reviewTitle: \"Revisión\",\n edit: \"Editar\",\n missingRequired: \"Rellene todos los campos obligatorios.\",\n genericError: \"Se ha producido un error\",\n },\n tour: {\n next: \"Siguiente\",\n back: \"Atrás\",\n skip: \"Omitir\",\n done: \"Listo\",\n awaitClickHint: \"Haga clic en el elemento resaltado para continuar\",\n step: (current, total) => `${n(current)} / ${n(total)}`,\n },\n commandPalette: {\n clear: \"Borrar búsqueda\",\n submit: \"Buscar\",\n close: \"Cerrar\",\n placeholder: \"Buscar…\",\n empty: \"Sin resultados\",\n loading: \"Buscando…\",\n dialog: \"Búsqueda\",\n error: \"La búsqueda ha fallado. Inténtelo de nuevo.\",\n },\n globalSearch: {\n trigger: \"Buscar\",\n placeholder: \"Buscar o ir a…\",\n shortcut: (keys) => `Buscar (${keys})`,\n suggestions: \"Pruebe\",\n results: \"Resultados\",\n },\n sparkline: {\n rising: (first, last) => `Sube de ${first} a ${last}`,\n falling: (first, last) => `Baja de ${first} a ${last}`,\n flat: (value) => `Estable en ${value}`,\n single: (value) => `Un único valor: ${value}`,\n noData: \"Sin datos\",\n named: (name, summary) => `${name}: ${summary}`,\n },\n statTile: {\n increase: (amount) => `Sube ${amount}`,\n decrease: (amount) => `Baja ${amount}`,\n unchanged: \"Sin cambios\",\n better: (change) => `${change} (favorable)`,\n worse: (change) => `${change} (desfavorable)`,\n noValue: \"Sin datos\",\n loading: \"Cargando…\",\n },\n signaturePad: {\n label: \"Firma\",\n instructions: \"Firme en el recuadro con el ratón, el dedo o un lápiz.\",\n typedFallbackHint: \"Si no puede dibujar, escriba su nombre.\",\n empty: \"Aún no hay nada dibujado\",\n signed: \"Firma dibujada\",\n undo: \"Deshacer el último trazo\",\n clear: \"Borrar\",\n save: \"Guardar firma\",\n useTyped: \"Escribir el nombre\",\n useDrawn: \"Dibujar la firma\",\n typedName: \"Nombre completo\",\n cleared: \"Firma borrada\",\n undone: \"Último trazo eliminado\",\n viewEmpty: \"Sin firmar\",\n viewDrawn: \"Firma manuscrita\",\n viewTyped: (name) => `Firmado con el nombre escrito ${name}`,\n },\n passwordStrength: {\n // Agrees with \"contraseña\" (feminine).\n tooShort: \"Demasiado corta\",\n weak: \"Débil\",\n fair: \"Aceptable\",\n good: \"Buena\",\n strong: \"Fuerte\",\n announcement: (level) => `Seguridad de la contraseña: ${level}`,\n // Unformatted, as in the English default.\n ruleLength: (minLength) =>\n `Al menos ${n(minLength)} ${plural(minLength, \"carácter\", \"caracteres\")}`,\n ruleCase: \"Mayúsculas y minúsculas\",\n ruleDigit: \"Un número\",\n ruleSymbol: \"Un símbolo\",\n optional: (rule) => `${rule} (opcional)`,\n met: \"Cumplido:\",\n notMet: \"No cumplido:\",\n tooLong: (maxBytes) =>\n `Como máximo ${n(maxBytes)} ${plural(maxBytes, \"carácter\", \"caracteres\")} (las letras con tilde y los emojis cuentan como más de uno).`,\n },\n seriesChart: {\n resetZoom: \"Restablecer zoom\",\n zoomHint:\n \"Arrastre para ampliar: una selección más o menos cuadrada amplía ambos ejes; una larga y estrecha, solo el suyo. Haga doble clic para restablecer.\",\n empty: \"Sin datos\",\n legend: \"Series\",\n points: \"Valores del gráfico\",\n },\n pieChart: {\n slices: \"Sectores del gráfico\",\n slice: (label, value, percent) => `${label}: ${value} (${percent})`,\n total: \"Total\",\n empty: \"Sin datos\",\n legend: \"Categorías\",\n },\n confirmDialog: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n typed: (text) => `Escriba «${text}» para confirmar`,\n },\n floatingPanel: {\n close: \"Cerrar\",\n badge: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")}`,\n },\n copyButton: {\n copy: \"Copiar\",\n copied: \"Copiado\",\n failed: \"No se pudo copiar\",\n copiedAnnouncement: \"Copiado al portapapeles\",\n failedAnnouncement: \"No se pudo copiar al portapapeles\",\n },\n list: {\n unread: \"No leído\",\n opensInNewTab: \"se abre en una pestaña nueva\",\n },\n breadcrumbs: {\n label: \"Ruta de navegación\",\n showAll: \"Mostrar la ruta completa\",\n },\n toast: {\n close: \"Cerrar notificación\",\n notifications: \"Notificaciones\",\n undo: \"Deshacer\",\n redo: \"Rehacer\",\n },\n form: {\n save: \"Guardar\",\n cancel: \"Cancelar\",\n submitShortcut: (apple) => (apple ? \"⌘ Intro\" : \"Ctrl+Intro\"),\n },\n descriptionList: {\n empty: \"—\",\n },\n lineItems: {\n add: \"Añadir fila\",\n remove: (row) => `Eliminar fila ${row}`,\n confirmRemove: (row) => `¿Eliminar fila ${row}? Pulse de nuevo para confirmar`,\n row: (row) => `Fila ${row}`,\n cell: (column, row) => `${column}, fila ${row}`,\n totals: \"Total\",\n },\n progressBar: {\n unlimited: \"Ilimitado\",\n overLimit: (amount) => `${amount} por encima del límite`,\n },\n signedAmount: {\n positive: (amount) => `más ${amount}`,\n negative: (amount) => `menos ${amount}`,\n },\n errorBoundary: {\n title: \"Algo salió mal\",\n message: \"No se pudo mostrar esta parte de la página. Inténtelo de nuevo o recargue la página.\",\n retry: \"Reintentar\",\n details: \"Detalles del error\",\n reload: \"Recargar\",\n updateTitle: \"Hay una nueva versión disponible\",\n updateMessage: \"Una parte de la aplicación ha cambiado desde que se cargó esta página. Recárguela para obtener la nueva versión.\",\n offlineTitle: \"Sin conexión\",\n offlineMessage: \"No se pudo cargar esta página sin conexión. Vuelva a conectarse y recargue la página.\",\n copyReport: \"Copiar informe de error\",\n reported: \"El error se ha notificado automáticamente.\",\n reportedAs: (reference) => `Notificado con la referencia ${reference}`,\n },\n authedImage: {\n loading: \"Cargando imagen…\",\n loadError: \"No se pudo cargar la imagen\",\n failedImage: (alt) => `${alt}: no se pudo cargar la imagen`,\n },\n imageGrid: {\n list: \"Imágenes\",\n item: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n actions: (name) => `Acciones para ${name}`,\n },\n lightbox: {\n dialog: \"Visor de imágenes\",\n close: \"Cerrar\",\n previous: \"Imagen anterior\",\n next: \"Imagen siguiente\",\n counter: (index, count) => `${n(index)} / ${n(count)}`,\n position: (index, count) => `Imagen ${n(index)} de ${n(count)}`,\n download: \"Descargar\",\n zoom: \"Ampliar\",\n noPreview: \"No hay vista previa disponible para este archivo\",\n openInNewTab: \"Abrir en una pestaña nueva\",\n },\n writeLock: {\n reason: \"Puede verlo, pero no modificarlo.\",\n },\n accountState: {\n // Agreeing with \"cuenta\" (feminine): the chip is the state of an account.\n active: \"Activa\",\n inactive: \"Inactiva\",\n invited: \"Invitación enviada\",\n registered: \"Registrada\",\n unverified: \"Sin verificar\",\n passwordChange: \"Debe cambiar la contraseña\",\n deletion: \"Eliminación solicitada\",\n deletionOn: (date) => `Eliminación el ${date}`,\n },\n shareCard: {\n dialogTitle: \"Compartir\",\n close: \"Cerrar\",\n email: \"Correo electrónico\",\n emailOptional: \"Correo electrónico (opcional)\",\n // example.com is reserved for examples (RFC 2606); a localised domain is real.\n emailPlaceholder: \"nombre@example.com\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n roleOf: (name) => `Rol de ${name}`,\n add: \"Compartir\",\n whoHasAccess: \"Quién tiene acceso\",\n nobodyYet: \"Nadie más tiene acceso todavía.\",\n pending: \"Pendiente\",\n openInvite: \"Enlace de invitación abierto\",\n copyLink: \"Copiar enlace\",\n team: \"Equipo\",\n teamHint: (name) => `Todos los miembros de ${name} tendrán acceso.`,\n remove: \"Quitar acceso\",\n removeConfirm: (name) => `¿Quitar el acceso a ${name}?`,\n revokePending: \"Retirar invitación\",\n revokePendingConfirm: (name) => `¿Retirar la invitación para ${name}?`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n loading: \"Cargando…\",\n },\n reauthDialog: {\n title: \"Confirme que es usted\",\n description: \"Introduzca su contraseña actual para continuar.\",\n password: \"Contraseña actual\",\n submit: \"Continuar\",\n cancel: \"Cancelar\",\n },\n serverWake: {\n slow: \"Sigue cargando: está tardando más de lo habitual.\",\n waking: (appName) =>\n `El servidor se duerme cuando nadie usa ${appName ?? \"la aplicación\"}, así que la primera solicitud tras una pausa tiene que volver a arrancarlo. Puede tardar un momento; no se pierde nada y la página se completará sola.`,\n },\n // 0.28.0 — docs/legal-harmonization.md §4.3/§4.4: Kurvenschmiede's reviewed Spanish\n // (formal \"usted\"), brought into line with the kit's English; it goes back to\n // Kurvenschmiede for review.\n legal: {\n navLabel: \"Información legal\",\n links: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n titles: {\n impressum: \"Aviso legal\",\n privacy: \"Política de privacidad\",\n terms: \"Condiciones de uso\",\n },\n backHome: \"Volver al inicio\",\n accept: \"Acepto las {terms} y la {privacy}\",\n notice: {\n beta: \"Beta cerrada. Estos textos aún no han sido revisados por un abogado y lo serán antes de un lanzamiento público.\",\n privacy:\n \"Beta cerrada. La redacción jurídica que sigue aún no ha sido revisada por un abogado y lo será antes de un lanzamiento público. Las descripciones técnicas —qué se guarda, dónde y quién puede leerlo— describen lo que el software hace realmente hoy y deben poder contrastarse con él.\",\n },\n translation: {\n note: (o) =>\n `Esta es una traducción ofrecida para su comodidad; solo la versión en ${o.bindingLanguage} es vinculante.`,\n show: (o) => `Ver la versión en ${o.bindingLanguage}`,\n },\n sections: {\n impressum: {\n operator: {\n title: \"Responsable del sitio\",\n body: (o) =>\n `${o.name}\\n${o.postalCode} ${o.city}\\n${o.country}\\n\\nLa dirección postal completa se facilita, previa solicitud, a quien tenga un interés jurídico legítimo; escriba a la dirección de contacto indicada abajo.`,\n },\n contact: {\n title: \"Contacto\",\n body: (o) => `Correo electrónico: ${o.email}`,\n },\n disclaimer: {\n title: \"Responsabilidad por contenidos y enlaces\",\n body: \"Este es un proyecto privado y sin fines comerciales, que se ofrece sin garantía durante una beta cerrada. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n // 0.32.0 — the commercial variant (docs/billing-harmonization.md §8). \"Plan\"\n // and \"suscripción\" as the `billing` namespace.\n commercial:\n \"Este es un servicio comercial. Los planes de pago los vende nuestro revendedor, que actúa como Merchant of Record: vende la suscripción en su propio nombre, cobra el pago, emite la factura y gestiona el IVA, y sus condiciones de venta se aplican a la compra. Procuramos que el contenido de este servicio sea correcto, pero no podemos garantizar que esté completo ni actualizado. Los sitios externos que enlazamos son responsabilidad de sus respectivos operadores; no tenemos control sobre su contenido.\",\n },\n },\n privacy: {\n controller: {\n title: \"Responsable del tratamiento\",\n body: (o) =>\n `El responsable del tratamiento de los datos personales en este servicio es:\\n${o.name}\\n${o.postalCode} ${o.city}, ${o.country}\\nCorreo electrónico: ${o.email}\\n\\nLa dirección postal completa se facilita, previa solicitud, a los interesados y a las autoridades de control.`,\n },\n legal_basis: {\n title: \"Base jurídica\",\n body: \"Como el responsable reside en Suiza, el tratamiento se rige por la Ley Federal suiza de Protección de Datos (LPD). Cuando le sea aplicable el Reglamento General de Protección de Datos de la UE (RGPD), nos basamos en la ejecución de un contrato para prestar el servicio (art. 6.1.b RGPD) y en nuestro interés legítimo en operarlo y protegerlo (art. 6.1.f RGPD).\",\n },\n browser: {\n title: \"Qué guarda su navegador\",\n lead: \"Ninguna cookie. La aplicación guarda lo siguiente en el almacenamiento de su navegador:\",\n tail: \"Nada de ello se usa para rastrearle. Las entradas pendientes de envío se nos envían en cuanto sea posible; todo lo demás permanece en su dispositivo. Todo ello desaparece cuando borra los datos del sitio, y al cerrar sesión se eliminan los tokens de inicio de sesión.\",\n },\n rights: {\n title: \"Sus derechos\",\n lead: \"Tiene derecho de acceso, rectificación, supresión, limitación, portabilidad y oposición.\",\n tail: \"Si se encuentra en Suiza, puede dirigirse al Comisionado Federal de Protección de Datos e Información (FDPIC); si se encuentra en la UE, puede presentar una reclamación ante su autoridad de control local.\",\n },\n contact: {\n title: \"Contacto para la protección de datos\",\n body: (o) => `Para cualquier solicitud sobre privacidad, escriba a: ${o.email}`,\n },\n },\n terms: {\n warranty: {\n title: \"Sin garantía\",\n body: \"El servicio se ofrece «tal cual» y «según disponibilidad», sin garantías de ningún tipo, en la medida en que lo permita la ley. Al ser una beta, puede contener errores, cambiar o interrumpirse en cualquier momento; conserve usted mismo copias de seguridad de los datos importantes.\",\n },\n liability: {\n title: \"Limitación de responsabilidad\",\n body: \"En la medida en que lo permita la legislación aplicable, el operador no responde de los daños indirectos o consecuentes derivados del uso o de la imposibilidad de uso del servicio. Nada de lo aquí dispuesto limita la responsabilidad que la ley no permite limitar.\",\n },\n changes: {\n title: \"Cambios en estas condiciones\",\n body: \"Estas condiciones pueden actualizarse a medida que evolucione el servicio. Los cambios importantes se anunciarán por correo electrónico o en la aplicación; si sigue usando el servicio después de un cambio, lo acepta.\",\n },\n language: {\n title: \"Idioma\",\n body: (o) =>\n `Estas condiciones están redactadas en ${o.bindingLanguage}. Las traducciones a otros idiomas se ofrecen solo por comodidad; en caso de discrepancia, prevalece la versión en ${o.bindingLanguage}.`,\n },\n law: {\n title: \"Legislación aplicable\",\n body: (o) =>\n `Estas condiciones se rigen por el derecho suizo, con exclusión de sus normas de conflicto de leyes. En la medida en que lo permita la ley, el fuero competente es ${o.city} (${o.region}), ${o.country}.`,\n },\n },\n },\n },\n // 0.29.0 — docs/auth-harmonization.md: Kurvenschmiede's reviewed Spanish (auth.*,\n // notfound) where it says the same, brought into line with the kit's English and this\n // catalogue's words (\"Nueva contraseña\", \"verificación en dos pasos\"); written fresh\n // where Kurvenschmiede has no such text yet. Formal \"usted\". It goes back to\n // Kurvenschmiede for review.\n signIn: {\n email: \"Correo electrónico\",\n password: \"Contraseña\",\n submit: \"Iniciar sesión\",\n passkey: \"Iniciar sesión con una llave de acceso\",\n forgotPassword: \"¿Ha olvidado su contraseña?\",\n noAccount: \"¿Aún no tiene cuenta?\",\n register: \"Crear cuenta\",\n invalidCredentials: \"El correo electrónico o la contraseña no son correctos.\",\n failed: \"No se pudo iniciar sesión. Inténtelo de nuevo.\",\n passkeyFailed: \"No se pudo iniciar sesión con la llave de acceso.\",\n deactivatedHint: \"¿Cuenta desactivada? Escriba a {contact}.\",\n tagHint: (taggedAddress) => `¿Se registró con ${taggedAddress}? Use esa dirección.`,\n twoFactorTitle: \"Verificación en dos pasos\",\n twoFactorIntro: \"Introduzca el código que muestra su app de autenticación.\",\n code: \"Código de verificación\",\n verify: \"Verificar\",\n codeInvalid: \"El código de verificación no es válido.\",\n setPasswordTitle: \"Elija una nueva contraseña\",\n setPasswordIntro:\n \"Se ha solicitado una nueva contraseña para esta cuenta. Elija una y podrá continuar enseguida.\",\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n setPasswordSubmit: \"Establecer la contraseña e iniciar sesión\",\n setPasswordFailed: \"No se pudo establecer la contraseña.\",\n expired: \"Este inicio de sesión ha caducado. Inicie sesión de nuevo.\",\n backToSignIn: \"Volver a iniciar sesión\",\n useRecoveryCode: \"Usar un código de respaldo\",\n useAuthenticatorCode: \"Usar su app de autenticación\",\n recoveryCode: \"Código de respaldo\",\n recoveryIntro:\n \"Introduzca uno de los códigos de respaldo que guardó al activar la verificación en dos pasos.\",\n recoveryCodeHint: (length) =>\n `${n(length)} letras y dígitos. Los guiones y los espacios no importan.`,\n recoveryCodeInvalid: \"Este código de respaldo no es válido o ya se ha usado.\",\n rateLimited,\n // 0.31.0: the same words as `landing.requestAccess`.\n requestAccess: \"Solicitar acceso\",\n },\n register: {\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n email: \"Correo electrónico\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.\",\n invitedEmailHint: \"La dirección a la que se envió su invitación.\",\n invitedTagNote: \"La dirección etiquetada recibe su propio correo de confirmación.\",\n password: \"Contraseña\",\n confirmPassword: \"Repita la contraseña\",\n passwordMismatch: \"Las contraseñas no coinciden.\",\n language: \"Idioma\",\n submit: \"Crear cuenta\",\n haveAccount: \"¿Ya tiene una cuenta?\",\n signIn: \"Iniciar sesión\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n registrationClosed:\n \"Solo se pueden crear cuentas nuevas por invitación. Pida al operador que envíe una invitación a su dirección de correo electrónico.\",\n invitationInvalid: \"Este enlace de invitación no es válido.\",\n invitationExpired: \"Esta invitación ha caducado. Pida una nueva.\",\n failed: \"No se pudo completar el registro. Inténtelo de nuevo.\",\n rateLimited,\n },\n completeName: {\n title: \"Complete su nombre\",\n description:\n \"El nombre y los apellidos ahora se piden por separado. Compruebe lo que ya está rellenado y añada lo que falte.\",\n firstName: \"Nombre\",\n lastName: \"Apellidos\",\n save: \"Guardar\",\n later: \"Más tarde\",\n failed: \"No se pudo guardar su nombre. Inténtelo de nuevo.\",\n },\n forgotPassword: {\n title: \"Restablecer la contraseña\",\n intro:\n \"Introduzca la dirección de correo electrónico de su cuenta. Le enviaremos un enlace para elegir una nueva contraseña.\",\n email: \"Correo electrónico\",\n submit: \"Enviar el enlace\",\n sent: (email) => `Si existe una cuenta para ${email}, el enlace está en camino.`,\n sentHint:\n \"El enlace es válido durante una hora y funciona una sola vez. Revise también la carpeta de correo no deseado.\",\n backToSignIn: \"Volver a iniciar sesión\",\n error: \"La solicitud ha fallado. Inténtelo de nuevo más tarde.\",\n rateLimited,\n },\n resetPassword: {\n title: \"Elija una nueva contraseña\",\n checking: \"Comprobando el enlace…\",\n intro: (email) => `Está estableciendo una nueva contraseña para ${email}.`,\n newPassword: \"Nueva contraseña\",\n confirmPassword: \"Repita la nueva contraseña\",\n mismatch: \"Las contraseñas no coinciden.\",\n submit: \"Guardar la contraseña\",\n failed: \"No se pudo cambiar la contraseña.\",\n noToken: \"Este enlace está incompleto.\",\n invalid: \"Este enlace no es válido o ha caducado.\",\n invalidHint: \"Los enlaces son válidos durante una hora y funcionan una sola vez. Solicite uno nuevo.\",\n requestNew: \"Solicitar un enlace nuevo\",\n success: \"Su contraseña se ha cambiado. Ya puede iniciar sesión con ella.\",\n sessionsEnded:\n \"Se ha cerrado la sesión en los dispositivos conectados; tendrá que volver a iniciarla en ellos.\",\n signIn: \"Ir a iniciar sesión\",\n rateLimited,\n },\n verifyEmail: {\n title: \"Confirme su dirección de correo electrónico\",\n verifying: \"Confirmando…\",\n verified: \"Su dirección de correo electrónico está confirmada.\",\n continue: \"Continuar\",\n invalid: \"Este enlace de confirmación no es válido\",\n expired: \"Este enlace de confirmación ha caducado\",\n noToken: \"A este enlace le falta el token de confirmación.\",\n invalidHint: \"Es posible que el enlace haya caducado o que ya se haya usado.\",\n requestInApp: \"Puede solicitar uno nuevo desde la aplicación.\",\n requestHere: \"Puede solicitar uno nuevo aquí.\",\n resend: \"Enviar de nuevo\",\n resendIn: (seconds) => `Enviar de nuevo en ${n(seconds)} s`,\n resent: \"Correo de confirmación enviado\",\n resendError: \"No se pudo enviar el correo de confirmación\",\n rateLimited,\n banner: \"Confirme su dirección de correo electrónico.\",\n dismiss: \"Ahora no\",\n },\n notFound: {\n title: \"Página no encontrada\",\n body: \"Esta dirección no existe (o ya no existe). Quizá sea una errata o la página se haya movido.\",\n home: \"Ir a la página de inicio\",\n app: \"Volver a la aplicación\",\n },\n acceptInvitation: {\n title: \"Aceptar la invitación\",\n accepting: \"Aceptando la invitación…\",\n accepted: \"Invitación aceptada.\",\n joined: (name) => `Se ha unido a ${name}.`,\n continue: \"Continuar\",\n invalid: \"No es posible unirse con este enlace\",\n expired: \"Esta invitación ha caducado\",\n noToken: \"A este enlace le falta el token de invitación.\",\n askAgain: \"Pida a quien le invitó que le envíe una nueva invitación.\",\n signInFirst: \"Inicie sesión para aceptar esta invitación\",\n signInHint: \"Use la cuenta a la que se envió la invitación.\",\n signIn: \"Iniciar sesión\",\n register: \"Crear cuenta\",\n },\n companySwitcher: {\n switchCompany: \"Cambiar de empresa\",\n heading: \"Empresas\",\n current: (name) => `Empresa: ${name}`,\n currentMark: \"(actual)\",\n switching: \"Cambiando de empresa…\",\n },\n // 0.30.0 — docs/user-admin-harmonization.md: Kurvenschmiede's reviewed Spanish for the\n // admin words, transfer, invitations and sessions; written fresh where it had no\n // sentence. \"Usted\", as the rest of this catalogue.\n emailChange: {\n title: \"Dirección de correo electrónico\",\n current: \"Dirección actual\",\n newEmail: \"Nueva dirección de correo electrónico\",\n password: \"Contraseña actual\",\n passwordHint: \"Inicia sesión con su dirección, así que cambiarla requiere su contraseña.\",\n emailTagUse: (address) => `Usar ${address}`,\n emailTagHint:\n \"Muchos proveedores entregan nombre+etiqueta@… en el mismo buzón, así que el correo de esta aplicación es fácil de filtrar y rastrear. Compruebe que el suyo lo hace antes de confiar en ello: tendría que iniciar sesión con la dirección etiquetada.\",\n submit: \"Cambiar la dirección de correo electrónico\",\n sameAsCurrent: \"Esta ya es su dirección.\",\n emailTaken: \"Ya existe una cuenta con esta dirección de correo electrónico.\",\n wrongPassword: \"La contraseña no es correcta.\",\n pending: (newEmail) => `Confirme el enlace que hemos enviado a ${newEmail}.`,\n pendingHint: (currentEmail) =>\n `Hasta entonces, seguirá iniciando sesión con ${currentEmail}. Revise también la carpeta de correo no deseado.`,\n resend: \"Enviar el enlace de nuevo\",\n resent: \"Hemos vuelto a enviar el enlace.\",\n cancel: \"Cancelar el cambio\",\n confirmed: (email) => `Su dirección de correo electrónico es ahora ${email}.`,\n passkeyNote:\n \"Sus llaves de acceso siguen funcionando. Puede que su dispositivo aún las muestre con su dirección anterior.\",\n rateLimited,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n // 0.36.0 — docs/notifications-harmonization.md §4.2: the notification cards.\n notifications: {\n typesTitle: \"Avisarme de\",\n typesDescription: \"Elija de qué se entera y cómo.\",\n byEmail: \"Por correo electrónico\",\n emailUnverified: \"Confirme su dirección para recibirlos.\",\n digestCadence: \"Frecuencia\",\n digestWeekly: \"Semanal\",\n digestMonthly: \"Mensual\",\n typesLoading: \"Cargando los ajustes de notificaciones…\",\n typesEmpty: \"No hay notificaciones para esta cuenta.\",\n quietTitle: \"Horas de silencio\",\n quietDescription: (inbox) =>\n inbox\n ? \"Sin notificaciones push durante este intervalo. Aun así, llegan a su bandeja de entrada.\"\n : \"Sin notificaciones push durante este intervalo.\",\n quietFrom: \"Desde\",\n quietUntil: \"Hasta\",\n quietIncomplete:\n \"Indique una hora de inicio y una de fin. Las horas de silencio se aplican cuando ambas están definidas.\",\n timeZone: \"Zona horaria\",\n deviceZone: (zone) => `Este dispositivo está en ${zone}.`,\n useDeviceZone: \"Usarla\",\n regions: {\n Africa: \"África\",\n America: \"América\",\n Antarctica: \"Antártida\",\n Arctic: \"Ártico\",\n Asia: \"Asia\",\n Atlantic: \"Atlántico\",\n Australia: \"Australia\",\n Europe: \"Europa\",\n Indian: \"Océano Índico\",\n Pacific: \"Pacífico\",\n },\n pushTitle: \"Notificaciones push\",\n pushDescription: \"Notificaciones en este dispositivo, también con la app cerrada.\",\n unsupported: \"Este navegador no admite notificaciones push.\",\n iosInstall: (app) =>\n `En iPhone o iPad, añada primero ${app} a la pantalla de inicio: iOS solo entrega notificaciones a la app instalada.`,\n notConfigured: \"Las notificaciones push no están configuradas en este servidor.\",\n blocked: \"Las notificaciones están bloqueadas en los ajustes de este navegador.\",\n on: \"Las notificaciones están activadas en este dispositivo.\",\n off: \"Las notificaciones están desactivadas en este dispositivo.\",\n otherAccount:\n \"Este navegador recibe notificaciones de otra cuenta. Actívelas aquí para recibirlas en la cuenta con la que ha iniciado sesión.\",\n enable: \"Activar notificaciones\",\n disable: \"Desactivar\",\n sendTest: \"Enviar una prueba\",\n enableFailed: \"No se pudieron activar las notificaciones.\",\n noServiceWorker:\n \"No se pudo contactar con el service worker de la app. Recargue la página e inténtelo de nuevo.\",\n pushTimeout: \"El servicio push del navegador no respondió. Compruebe su conexión e inténtelo de nuevo.\",\n testSent: (count) => `Prueba enviada a ${n(count)} ${plural(count, \"dispositivo\", \"dispositivos\")}`,\n testNone: \"Ningún dispositivo aceptó la prueba. Active primero las notificaciones en este dispositivo.\",\n testFailed: \"No se pudo enviar la notificación de prueba.\",\n explainerTitle: \"¿Activar las notificaciones?\",\n explainerBody: (app) =>\n `${app} solo envía notificaciones de lo que usted elija, y puede desactivarlas en cualquier momento.`,\n explainerHint: \"A continuación, su navegador le pedirá permiso.\",\n explainerContinue: \"Continuar\",\n devicesTitle: \"Dispositivos de notificación\",\n devicesDescription:\n \"Todos los dispositivos que reciben notificaciones push de su cuenta. Quite los que ya no use.\",\n devicesLoading: \"Cargando dispositivos…\",\n devicesEmpty: \"Aún no hay ningún dispositivo que reciba notificaciones.\",\n unknownDevice: \"Dispositivo desconocido\",\n thisDevice: \"Este dispositivo\",\n added: (date) => `Añadido el ${date}`,\n lastDelivery: (date) => `Última entrega el ${date}`,\n noDelivery: \"Aún sin entregas\",\n failures: (count) =>\n `${n(count)} ${plural(count, \"entrega fallida consecutiva\", \"entregas fallidas consecutivas\")}`,\n remove: \"Quitar\",\n // Starts with `remove`, the button's visible text, for voice control.\n removeItem: (device) => `Quitar ${device}`,\n removePrompt: \"¿Dejar de enviar notificaciones a este dispositivo?\",\n unsubscribeTitle: \"Notificaciones por correo electrónico\",\n unsubscribeAbout: (type) => `Recibe correos sobre: ${type}.`,\n unsubscribeGeneric: \"Recibe correos de notificación.\",\n stopThese: \"Dejar de recibir estos correos\",\n stopAll: (app) => `Dejar de recibir todos los correos de notificación de ${app}`,\n stoppedThese: \"Hecho. Ya no recibirá estos correos.\",\n stoppedAll: (app) => `Hecho. Ya no recibirá correos de notificación de ${app}.`,\n accountMail: \"Los correos sobre su cuenta seguirán llegando.\",\n turnBackOn: \"Puede volver a activarlos en cualquier momento en los ajustes.\",\n openSettings: \"Abrir los ajustes\",\n invalidLink: \"Este enlace ya no funciona. Puede desactivar los correos en los ajustes.\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n sessions: {\n title: \"Sesiones\",\n description:\n \"¿Ha iniciado sesión en un dispositivo que ya no usa o en el que no confía? Cierre sesión en todas partes.\",\n signOutEverywhere: \"Cerrar sesión en todas partes…\",\n signOutEverywherePrompt:\n \"Esto termina todas las sesiones, también esta: se cerrará la sesión en este dispositivo y tendrá que volver a iniciarla aquí.\",\n confirmSignOutEverywhere: \"Cerrar sesión en todas partes\",\n list: \"Dónde ha iniciado sesión\",\n loading: \"Cargando sesiones…\",\n empty: \"No hay sesiones que mostrar.\",\n current: \"Este dispositivo\",\n unknownDevice: \"Dispositivo desconocido\",\n // A colon: `when` is either \"hace 3 horas\" or a date.\n lastActive: (when) => `Última actividad: ${when}`,\n ip: (address) => `IP ${address}`,\n revoke: \"Cerrar sesión\",\n // Starts with `revoke`, the button's visible text, for voice control.\n revokeItem: (device) => `Cerrar sesión en ${device}`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n deleteAccount: {\n title: \"Eliminar la cuenta\",\n afterDays: (days) =>\n `Su cuenta se desactiva de inmediato y se borra definitivamente ${n(days)} ${plural(days, \"día\", \"días\")} después.`,\n operator: \"Su cuenta se desactiva de inmediato, y el operador la borrará definitivamente.\",\n arm: \"Eliminar la cuenta…\",\n prompt: \"Se cerrará su sesión en todos los dispositivos y ya no podrá usar su cuenta.\",\n handOver: (count) =>\n count === 1\n ? \"1 elemento que otros pueden ver pasará a un administrador.\"\n : `${n(count)} elementos que otros pueden ver pasarán a un administrador.`,\n confirm: \"Eliminar mi cuenta\",\n done: \"Su cuenta está desactivada. Se está cerrando su sesión.\",\n wrongPassword: \"La contraseña no es correcta.\",\n confirmationMismatch: \"Esta no es la dirección de su cuenta.\",\n lastAdmin:\n \"Su cuenta es la última con rol de administrador. Primero haga administrador a otra persona.\",\n lastAdminOf: (companies) =>\n `Su cuenta es la última con rol de administrador en ${companies}. Primero haga administrador allí a otra persona.`,\n householdHasMembers:\n \"Su hogar tiene otros miembros, así que la cuenta no se puede eliminar aquí. Escriba al operador.\",\n rateLimited,\n failed: \"No se pudo eliminar su cuenta. Inténtelo de nuevo.\",\n },\n dataExport: {\n title: \"Exportar sus datos\",\n description: \"Descargue una copia de los datos de su cuenta como archivo JSON.\",\n download: \"Descargar mis datos\",\n started: \"La descarga ha comenzado.\",\n saveAgain: \"¿No ha empezado? Guardar el archivo\",\n rateLimited: (seconds) =>\n seconds && seconds > 0\n ? `Acaba de exportar sus datos. Inténtelo de nuevo en ${wait(seconds)}.`\n : \"Acaba de exportar sus datos. Inténtelo de nuevo dentro de un minuto.\",\n failed: \"La exportación ha fallado. Inténtelo de nuevo.\",\n },\n userRoster: {\n name: \"Nombre\",\n email: \"Correo electrónico\",\n role: \"Rol\",\n state: \"Estado\",\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n created: \"Creada\",\n lastLogin: \"Último inicio de sesión\",\n never: \"Nunca\",\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones para ${name}`,\n },\n roleSelect: {\n label: \"Rol\",\n rolesLegend: \"Roles\",\n roleOf: (name) => `Rol de ${name}`,\n lockedLastAdmin: \"La última cuenta de administrador activa conserva este rol.\",\n lockedSelf: \"No puede cambiar su propio rol.\",\n notForLastAdmin: \"no para el último administrador\",\n notForSelf: \"no para su propia cuenta\",\n unavailable: (role, reason) => `${role} (${reason})`,\n },\n reviewerScope: {\n languages: \"Idiomas\",\n hint: \"Marque los idiomas que revisa esta persona.\",\n none: \"Ningún idioma: al guardar se retira el rol de revisor.\",\n areas: \"Limitar a\",\n legalOnly: \"Solo las páginas legales\",\n legalOnlyHint:\n \"Aviso legal, política de privacidad y condiciones de uso: para un abogado más que para un hablante nativo.\",\n failed: \"No se pudo guardar el ámbito de revisión. Inténtelo de nuevo.\",\n },\n adminAction: {\n confirm: \"Confirmar\",\n cancel: \"Cancelar\",\n close: \"Cerrar\",\n lastAdmin:\n \"Esta es la última cuenta de administrador activa. Primero haga administrador a otra persona.\",\n self: \"No puede hacer esto con su propia cuenta.\",\n confirmationMismatch:\n \"La dirección no coincide con esta cuenta. Compruebe en qué cuenta está.\",\n otherCompanies:\n \"Esta cuenta también pertenece a otras empresas, así que solo el operador de la plataforma puede hacer esto. En su lugar, puede quitarla de esta empresa.\",\n removeFromCompany: \"Quitar de la empresa\",\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n adminActionLog: {\n title: \"Acciones de administración\",\n empty: \"Aún no hay acciones de administración.\",\n loading: \"Cargando…\",\n by: (actor) => `por ${actor}`,\n bySelf: \"por la propia persona\",\n automatic: \"automáticamente\",\n erased: \"una cuenta borrada\",\n filteredTo: (target) => `Solo ${target}`,\n showAll: \"Mostrar todas las acciones\",\n filterBy: (target) => `Mostrar solo las acciones sobre ${target}`,\n // Agreeing with \"cuenta\" (feminine), like `accountState`.\n actions: {\n deactivate: \"Desactivada\",\n reactivate: \"Reactivada\",\n role: \"Rol cambiado\",\n password_change_require: \"Nueva contraseña exigida\",\n password_change_withdraw: \"Exigencia de contraseña retirada\",\n mail_verification: \"Correo de confirmación enviado\",\n mail_reset: \"Correo de restablecimiento de contraseña enviado\",\n reviewer: \"Ámbito de revisión cambiado\",\n invite: \"Invitación enviada\",\n invite_resend: \"Invitación reenviada\",\n invite_revoke: \"Invitación retirada\",\n transfer: \"Trabajo traspasado\",\n deletion_request: \"Eliminación solicitada\",\n deletion_cancel: \"Eliminación cancelada\",\n erase: \"Cuenta borrada\",\n plan: \"Plan cambiado\",\n },\n // 0.34 (§11.5): whole phrases per noun. The group's own agree with the noun\n // (\"Empresa creada\"), a member's with \"cuenta\", as `actions` do. `team` is\n // Kurvenschmiede's \"equipo\"; `company` keeps `actions.membership_remove`'s string.\n groupActions: {\n group: {\n group_create: \"Grupo creado\",\n group_rename: \"Grupo renombrado\",\n group_delete: \"Grupo eliminado\",\n membership_add: \"Añadida al grupo\",\n membership_role: \"Rol en el grupo cambiado\",\n membership_remove: \"Quitada del grupo\",\n deleted: \"un grupo eliminado\",\n },\n team: {\n group_create: \"Equipo creado\",\n group_rename: \"Equipo renombrado\",\n group_delete: \"Equipo eliminado\",\n membership_add: \"Añadida al equipo\",\n membership_role: \"Rol en el equipo cambiado\",\n membership_remove: \"Quitada del equipo\",\n deleted: \"un equipo eliminado\",\n },\n company: {\n group_create: \"Empresa creada\",\n group_rename: \"Empresa renombrada\",\n group_delete: \"Empresa eliminada\",\n membership_add: \"Añadida a la empresa\",\n membership_role: \"Rol en la empresa cambiado\",\n membership_remove: \"Quitada de la empresa\",\n deleted: \"una empresa eliminada\",\n },\n budget: {\n group_create: \"Presupuesto creado\",\n group_rename: \"Presupuesto renombrado\",\n group_delete: \"Presupuesto eliminado\",\n membership_add: \"Añadida al presupuesto\",\n membership_role: \"Rol en el presupuesto cambiado\",\n membership_remove: \"Quitada del presupuesto\",\n deleted: \"un presupuesto eliminado\",\n },\n },\n },\n transferOwnership: {\n title: (name) => `Traspasar el trabajo de ${name}`,\n body: \"Todo lo que posee esta cuenta pasa a la cuenta elegida, en un solo paso.\",\n recipient: \"Traspasar a\",\n choose: \"Elija una cuenta…\",\n chooseFirst: \"Elija quién recibe el trabajo\",\n confirm: \"Traspasar\",\n customer: \"cliente\",\n deactivated: \"desactivada\",\n self: \"la misma cuenta\",\n unavailable: (account, reason) => `${account} (${reason})`,\n noCandidates: \"Ninguna otra cuenta puede recibirlo.\",\n },\n invitations: {\n email: \"Dirección de correo electrónico\",\n invalidEmail: \"Introduzca una dirección de correo completa.\",\n role: \"Rol\",\n scope: \"Ámbito\",\n scopeNone: \"Ninguno\",\n language: \"Idioma de la invitación\",\n note: \"Nota\",\n invite: \"Invitar\",\n listTitle: \"Invitaciones\",\n empty: \"Todavía no se ha invitado a nadie.\",\n loading: \"Cargando…\",\n // Agreeing with \"invitación\" (feminine).\n status: { open: \"Pendiente\", accepted: \"Aceptada\", expired: \"Caducada\", revoked: \"Retirada\" },\n sent: (date) => `Enviada el ${date}`,\n expires: (date) => `Válida hasta el ${date}`,\n invitedBy: (name) => `por ${name}`,\n resend: (email) => `Enviar a ${email} un enlace nuevo`,\n copyLink: \"Copiar enlace de invitación\",\n revoke: (email) => `Retirar la invitación de ${email}`,\n consoleHint:\n \"Este servidor no envía correos: se escriben en el registro del servidor. Copie aquí cada enlace de invitación y transmítalo usted mismo: solo se muestra una vez.\",\n linkReady: (email) => `El enlace de invitación para ${email}, que solo se muestra esta vez:`,\n notSent: (email) => `${email} está invitado, pero no se pudo enviar el correo. Reenvíelo.`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n },\n characterCount: {\n count: (used, max) => `${n(used)} de ${n(max)} ${plural(max, \"carácter\", \"caracteres\")}`,\n remaining: (left) =>\n left === 1 ? \"Queda 1 carácter\" : `Quedan ${n(left)} caracteres`,\n limitReached: \"Límite de caracteres alcanzado\",\n },\n countrySelect: {\n country: \"País\",\n search: \"Buscar país\",\n others: \"Otros países\",\n },\n inlineEdit: {\n edit: (label) => `Editar ${label}`,\n failed: \"No se ha podido guardar el cambio.\",\n empty: \"Vacío\",\n },\n ibanInput: {\n format: \"Un IBAN empieza por un código de país de dos letras y dos dígitos de control.\",\n country: (code) => `«${code}» no es el código de país de un IBAN.`,\n length: (actual, expected) =>\n `Un IBAN de este país tiene ${n(expected)} caracteres; este tiene ${n(actual)}.`,\n checksum: \"Los dígitos de control no coinciden: probablemente hay un carácter mal escrito.\",\n qrRequired: \"Este es un IBAN normal. Una factura QR requiere el QR-IBAN de la cuenta.\",\n qrNotAllowed:\n \"Este es un QR-IBAN, que solo recibe pagos de facturas QR. Introduzca el IBAN normal de la cuenta.\",\n },\n phoneInput: {\n countryCode: \"Prefijo del país\",\n other: \"Otro\",\n },\n signChip: {\n outflow: \"Salida\",\n inflow: \"Entrada\",\n direction: (current, next) => `Dirección: ${current} — cambiar a ${next}`,\n switchTo: (next) => `Cambiar a ${next}`,\n },\n columnMapper: {\n paste: \"Pegar una tabla\",\n pasteHint:\n \"Copie las filas de una hoja de cálculo y péguelas aquí, o suelte un archivo CSV o de texto.\",\n chooseFile: \"Elegir un archivo\",\n readError: (name) => `No se ha podido leer «${name}»`,\n headerRow: \"La primera línea contiene los nombres de las columnas\",\n summary: (columns, rows) =>\n `${n(columns)} ${plural(columns, \"columna\", \"columnas\")}, ${n(rows)} ${plural(rows, \"fila\", \"filas\")}`,\n // Fragments of the summary line. \"Separado por…\" would have to agree with a noun the\n // line does not name, so the separator is stated as a value.\n separatorSemicolon: \"separador: punto y coma\",\n separatorComma: \"separador: coma\",\n separatorTab: \"separador: tabulación\",\n separatorSpace: \"separador: espacio\",\n // The examples stay as written: they show the convention, not the reader's locale.\n decimalComma: \"coma decimal (1,5)\",\n decimalPoint: \"punto decimal (1.5)\",\n unreadCount: (count) =>\n count === 1 ? \"No se ha podido leer 1 línea\" : `No se han podido leer ${n(count)} líneas`,\n unreadLine: (line) => `No se pudo leer la línea ${line}`,\n unreadMore: (count) => `…y ${n(count)} más`,\n noRows: \"Ninguna línea de este texto se puede leer como una fila de la tabla.\",\n table: \"Columnas y sus funciones\",\n columnN: (column) => `Columna ${column}`,\n roleOf: (column) => `¿Qué contiene la columna «${column}»?`,\n ignore: \"Ignorar\",\n requiredRole: (role) => `${role} (obligatorio)`,\n requiredRoleShort: (role) => `${role} *`,\n previewOf: (shown, total) =>\n shown === 1\n ? `La primera de ${n(total)} filas`\n : `Las primeras ${n(shown)} de ${n(total)} filas`,\n // `roles` arrives joined with \"o\" (\"Debe o Haber\").\n oneOf: (roles) => `${roles} (a elegir)`,\n // \"Falta\" + infinitive: no verb to agree with however many roles follow.\n missing: (roles) => `Falta asignar: ${roles}.`,\n },\n translationReview: {\n statusMissing: \"Falta\",\n statusUnreviewed: \"Sin revisar\",\n statusChanged: \"Cambiado desde la revisión\",\n statusNeedsChange: \"Requiere cambios\",\n statusApproved: \"Aprobado\",\n statusFilter: \"Estado\",\n all: \"Todos\",\n filterCount: (label, count) => `${label} · ${n(count)}`,\n source: \"Textos\",\n allSources: \"Todos los textos\",\n namespace: \"Área\",\n allNamespaces: \"Todas las áreas\",\n search: \"Buscar en claves y textos\",\n placeholdersOnly: (count) => `Solo problemas de marcadores (${n(count)})`,\n placeholderChip: \"Marcadores\",\n key: \"Clave\",\n statusColumn: \"Estado\",\n empty: \"Ningún texto coincide con estos filtros.\",\n missingText: \"Falta en este idioma\",\n progress: (approved, total) => `${n(approved)} de ${n(total)} ${plural(approved, \"aprobado\", \"aprobados\")}`,\n localeProgress: (approved, total) => `${n(approved)}/${n(total)}`,\n locales: \"Idiomas\",\n approve: \"Aprobar\",\n flag: \"Requiere cambios\",\n suggest: \"Proponer traducción\",\n reset: \"Marcar como sin revisar\",\n cancel: \"Cancelar\",\n approveSelected: \"Aprobar la selección\",\n resetSelected: \"Marcar la selección como sin revisar\",\n selectShown: \"Seleccionar todo lo mostrado\",\n changedSince: \"Este texto cambió después de revisarse. Vuelva a leerlo, por favor.\",\n reviewedWording: \"Redacción al revisarse\",\n reviewedReference: \"Referencia al revisarse\",\n placeholderMismatch: (reference, text) =>\n `Los marcadores no coinciden con la referencia — referencia: ${reference}; este texto: ${text}. La aplicación los rellena, así que deben quedar exactamente como están.`,\n lastApproved: (name, date) => `Aprobado por ${name} el ${date}`,\n lastFlagged: (name, date) => `Marcado para cambiar por ${name} el ${date}`,\n erasedReviewer: \"una cuenta eliminada\",\n suggestion: \"Mejor redacción\",\n translation: \"Traducción\",\n note: \"Nota (opcional)\",\n notePlaceholder: \"Qué está mal o qué hay que tener en cuenta\",\n readOnly: \"Puede leer este idioma, pero no revisarlo.\",\n scope: (areas) => `Su revisión se limita a: ${areas}.`,\n exportCorrections: (count) => `Exportar correcciones (${n(count)})`,\n failed: \"No ha funcionado. Inténtelo de nuevo.\",\n approvedToast: (count) => (count === 1 ? \"Texto aprobado\" : `${n(count)} textos aprobados`),\n clearedToast: (count) => (count === 1 ? \"Texto marcado como sin revisar\" : `${n(count)} textos marcados como sin revisar`),\n // \"sin revisar\" does not agree with the count, so one form serves both.\n groupCount: (unreviewed, total) => `${n(unreviewed)} sin revisar / ${n(total)}`,\n approveGroup: (count) => `Aprobar los sin revisar (${n(count)})`,\n confirmGroup: (count, group) =>\n count === 1\n ? `¿Aprobar el texto sin revisar de «${group}»?`\n : `¿Aprobar los ${n(count)} textos sin revisar de «${group}», incluidos los que no están en pantalla?`,\n },\n // 0.31.0 — docs/settings-harmonization.md §4.3 and docs/landing-demo-harmonization.md\n // §4–§5: the settings shell, the landing page's generic words and the demo. The help\n // lines name things as `accountSettings`, `sessions` and `dataExport` do. \"Usted\".\n // \"Ajustes\" (es-ES), a countable noun: \"Ningún ajuste coincide…\".\n settings: {\n title: \"Ajustes\",\n search: \"Buscar en los ajustes\",\n searchPlaceholder: \"Buscar en los ajustes…\",\n results: \"Ajustes coincidentes\",\n noMatches: (query) => `Ningún ajuste coincide con «${query}».`,\n // As `commandPalette.clear`.\n clearSearch: \"Borrar búsqueda\",\n back: \"Volver a los ajustes\",\n sections: \"Secciones de los ajustes\",\n matchCount: (count) => `${n(count)} ${plural(count, \"resultado\", \"resultados\")}`,\n groups: {\n appearance: {\n title: \"Apariencia\",\n help: \"Idioma, tema y aspecto de la aplicación en este dispositivo.\",\n },\n account: {\n title: \"Cuenta\",\n help: \"Su perfil y su dirección de correo electrónico.\",\n },\n security: {\n title: \"Seguridad\",\n help: \"Cómo inicia sesión, y en qué dispositivos tiene la sesión abierta.\",\n },\n notifications: {\n title: \"Notificaciones\",\n help: \"Qué notificaciones recibe, cuándo y en qué dispositivos.\",\n },\n data: {\n title: \"Datos\",\n help: \"Exporte lo que es suyo o elimínelo junto con su cuenta.\",\n },\n },\n },\n landing: {\n signIn: \"Iniciar sesión\",\n requestAccess: \"Solicitar acceso\",\n getStarted: \"Empezar\",\n tryDemo: \"Probar la demo\",\n openApp: \"Abrir la aplicación\",\n continueDemo: \"Continuar la demo\",\n beta: \"Beta\",\n // Plain text: a mail's subject and body lines, never HTML.\n accessSubject: (app) => (app ? `Acceso a ${app}` : \"Solicitud de acceso\"),\n accessName: \"Nombre:\",\n accessCompany: \"Empresa:\",\n accessUse: \"Uso previsto:\",\n },\n demo: {\n starting: \"Iniciando la demo…\",\n rateLimited: (minutes) =>\n minutes\n ? `Demasiadas demos desde esta red. Inténtelo de nuevo en ${n(minutes)} min.`\n : \"Demasiadas demos desde esta red. Inténtelo de nuevo más tarde.\",\n capacity: \"La demo está completa en este momento. Inténtelo de nuevo más tarde.\",\n unavailable: \"La demo no está disponible en este momento.\",\n failed: \"No se pudo iniciar la demo. Inténtelo de nuevo.\",\n // As `legal.backHome`.\n backToStart: \"Volver al inicio\",\n // Hours and minutes together are plural; minutes alone agree with the count.\n hoursLeft: (hours, minutes) => `Demo · quedan ${n(hours)} h ${n(minutes)} min`,\n minutesLeft: (minutes) => `Demo · ${plural(minutes, \"queda\", \"quedan\")} ${n(minutes)} min`,\n badge: \"Demo\",\n readOnly: \"Está viendo datos de ejemplo. No es posible hacer cambios.\",\n sandbox: \"Su propio trabajo se elimina cuando termina la demo.\",\n details: \"Detalles de la demo\",\n writeLocked: \"No es posible en la demo.\",\n endedTitle: \"La demo ha terminado\",\n endedReadOnly: \"Los datos de ejemplo se restablecen con regularidad.\",\n endedSandbox:\n \"Los datos de ejemplo se restablecen con regularidad; su propio trabajo en la demo se elimina.\",\n restart: \"Iniciar una nueva demo\",\n },\n // 0.32.0 — docs/billing-harmonization.md §7, §10 and §12.24: \"plan\" is what is bought\n // (Free, Pro), \"suscripción\" the standing arrangement and the settings group. \"Usted\".\n billing: {\n group: \"Suscripción\",\n plans: \"Planes\",\n interval: \"Periodo de facturación\",\n yearly: \"Anual\",\n monthly: \"Mensual\",\n // As `currency.currency`.\n currency: \"Moneda\",\n perYear: \"al año\",\n perMonth: \"al mes\",\n vatIncluded: \"IVA incluido\",\n free: \"Gratis\",\n notOffered: \"No disponible para este periodo de facturación\",\n // As `progressBar.unlimited`.\n unlimited: \"Ilimitado\",\n limits: \"Límites\",\n features: \"Incluido\",\n current: \"Plan actual\",\n choose: (plan) => `Elegir ${plan}`,\n upgrade: (plan) => `Mejorar a ${plan}`,\n downgrade: (plan) => `Cambiar a ${plan}`,\n isCurrent: \"Este es su plan actual.\",\n pickFirst: \"Elija primero un plan.\",\n // Agreeing with \"suscripción\"; \"caducada\", as `invitations.status.expired`.\n status: {\n trialing: \"Prueba\",\n active: \"Activa\",\n past_due: \"Pago vencido\",\n canceled: \"Cancelada\",\n expired: \"Caducada\",\n comped: \"De cortesía\",\n },\n trialEnding: (days) =>\n `Su periodo de prueba termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n grantEnding: (days) =>\n `Su acceso gratuito termina ${inDays(days)}. Después podrá seguir viéndolo todo, pero necesitará un plan para hacer cambios.`,\n paymentFailed: \"Su último pago no se ha completado. Actualice su método de pago para conservar su plan.\",\n planEnded:\n \"Su plan ha terminado. Puede seguir viendo y exportando todo; elija un plan para volver a hacer cambios.\",\n // Never why: the owner's payment status is the owner's personal data (§12.6).\n guestReadOnly: (item) =>\n item\n ? `«${item}» es de solo lectura por ahora; su propietario puede levantar esa restricción.`\n : \"Esto es de solo lectura por ahora; su propietario puede levantar esa restricción.\",\n processing:\n \"Su pago se está procesando. Su plan empieza en cuanto se confirme; esta página se actualiza sola.\",\n choosePlan: \"Elegir un plan\",\n updatePayment: \"Actualizar el método de pago\",\n // 0.42 (§16.7 A): for an admin who isn't the buyer.\n paymentFailedAskBuyer: (buyer) =>\n buyer\n ? `El pago no se ha completado. ${buyer} puede actualizar el método de pago.`\n : \"El pago no se ha completado. El administrador que contrató la suscripción puede actualizar el método de pago.\",\n checkAgain: \"Volver a comprobar\",\n lockReason: \"Su plan ha terminado. Elija un plan para volver a hacer cambios.\",\n // As `characterCount.limitReached` (\"Límite de caracteres alcanzado\").\n limitReached: \"Límite del plan alcanzado\",\n limitUpgrade: \"Para añadir más, elija un plan con un límite mayor.\",\n limitContact: \"Para añadir más, pídanos un límite mayor.\",\n askForMore: \"Pedir más\",\n // Both figures arrive formatted; \"de\", as `characterCount.count`.\n usage: (used, limit) => `${used} de ${limit}`,\n contactSubject: (dimension) => `Límite del plan: ${dimension}`,\n // The toast's figure line (§14.11) and the plan change's over-limit lines (§14.12).\n limitUsageLine: (dimension, used, limit) => `${dimension}: ${used} de ${limit}`,\n manage: \"Pagos y facturas\",\n cancel: \"Cancelar la suscripción\",\n // §14.5: no customer at the provider yet, so no portal to open.\n notAtProvider:\n \"Todavía no hay nada que gestionar. Los pagos y las facturas aparecerán aquí cuando tenga un plan de pago.\",\n // §14.4: the pay page's lines, built into its bundle. \"Usted\".\n payOpening: \"Abriendo el pago seguro…\",\n payNothing: \"Aquí no hay nada que pagar. Para elegir un plan, vuelva a la aplicación.\",\n payFailed: \"No se ha podido abrir el pago. Vuelva atrás e inténtelo de nuevo en un momento.\",\n payBack: \"El pago se ha cerrado. Puede volver atrás o recargar esta página para abrirlo de nuevo.\",\n payDone: \"Pago completado. Puede cerrar esta página.\",\n // 0.39 (§15.2.10): PlanSwitchConfirm.\n switchTitle: \"Cambiar de plan\",\n switchFromTo: (from, to) => `De ${from} a ${to}`,\n switchChargedNow: \"Cargo ahora\",\n switchCredited: \"Abonado a sus próximos cargos\",\n switchNextCharge: (date) => `Próximo cargo el ${date}`,\n switchConfirm: \"Cambiar de plan\",\n // 0.42 (§16): the portal for the buyer only, the in-app cancel, the grant warning.\n buyerHolds: (buyer) =>\n buyer\n ? `El método de pago y las facturas los gestiona ${buyer}, que contrató la suscripción.`\n : \"El método de pago y las facturas los gestiona el administrador que contrató la suscripción.\",\n cancelConfirmTitle: \"Cancelar la suscripción\",\n cancelConfirmBody: (date) => `Su suscripción termina el ${date}. Hasta entonces, todo funciona como antes.`,\n cancelConfirmAction: \"Cancelar ahora la suscripción\",\n keepSubscription: \"Mantener la suscripción\",\n grantWarningTitle: \"Su acceso gratuito continúa\",\n grantWarningBody:\n \"Su acceso gratuito no tiene fecha de fin. Mientras dure, una compra no cambia su plan: pagaría por un plan que no se aplica.\",\n grantWarningAction: \"Comprar de todos modos\",\n waitingChanges: (count) => `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de un plan`,\n // \"Descartar\", as `wizard.cancelConfirmLabel`.\n discardWaiting: \"Descartar los cambios en espera\",\n notConfigured: \"Los pagos aún no están configurados. Inténtelo de nuevo más tarde.\",\n disabled: \"Las suscripciones no están disponibles aquí.\",\n // §14.2: server-kit 0.7's refusals. \"Pagos y facturas\", as `manage`. \"Usted\".\n providerUnavailable: \"El proveedor de pagos no está disponible en este momento. Inténtelo de nuevo en un momento.\",\n alreadySubscribed: \"Ya tiene una suscripción. Cambie de plan más arriba.\",\n planNotSold: \"Este plan no está disponible para ese periodo de facturación o esa moneda. Elija otro.\",\n // 0.39 (§15.2.10): the plan switch's refusals.\n notSubscribed: \"No hay ninguna suscripción activa que cambiar. Elija un plan para suscribirse.\",\n planUnchanged: \"Ese ya es su plan. Elija otro plan u otro periodo de facturación.\",\n },\n // 0.33.0 — docs/billing-harmonization.md §14.12: the operator's plan parts, \"plan\" as\n // in `billing`. \"Usted\".\n planChange: {\n column: \"Plan\",\n title: \"Cambiar de plan\",\n confirm: \"Cambiar de plan\",\n plan: \"Plan\",\n current: (plan) => `Plan actual: ${plan}`,\n keepsItems: \"Un plan más pequeño solo impide crear más; no se elimina nada.\",\n until: \"Gratis hasta el\",\n untilHint: \"Déjelo vacío para que no tenga fin. Una beta en curso conserva su propio fin.\",\n needsChange: \"Elija otro plan o una fecha de fin.\",\n changed: (from, to) => `Plan cambiado de ${from} a ${to}.`,\n set: (to) => `Plan establecido en ${to}.`,\n keptBeta: \"La beta conserva su fin; solo ha cambiado el plan.\",\n untilDone: (date) => `Gratis hasta el ${date}.`,\n overLimit: \"Por encima del límite del nuevo plan: no se elimina nada, los elementos nuevos quedan bloqueados.\",\n // Figures formatted; \"de\", as `billing.usage`. The app's word follows the limit,\n // in its form (0.33.1): \"1 de 1 presupuesto\", \"1 de 5 presupuestos\".\n usageOf: (used, limit, dimension) => `${used} de ${limit} ${dimension}`,\n },\n // 0.32.0 — docs/text-size-harmonization.md §6: the text-size and contrast settings in\n // the \"Apariencia\" group.\n appearance: {\n textSize: \"Tamaño del texto\",\n textSizeHelp: \"Letras más grandes y un diseño que les hace sitio.\",\n textSizes: { normal: \"Normal\", large: \"Grande\", xlarge: \"Muy grande\" },\n contrast: \"Contraste\",\n contrastHelp:\n \"El contraste aumentado oscurece los textos tenues y las líneas, y engrosa los marcos de foco. «Sistema» sigue el ajuste de este dispositivo.\",\n contrastModes: { system: \"Sistema\", standard: \"Estándar\", more: \"Aumentado\" },\n saveFailed: \"No se ha podido guardar en su cuenta. En este dispositivo se aplica igualmente.\",\n },\n // 0.36.0 — docs/settings-harmonization.md §11.3: resetting this device's settings, the\n // last card of \"Apariencia\". \"Restablecer\", as a phone's own settings say it.\n deviceReset: {\n title: \"Restablecer este dispositivo\",\n description:\n \"Devuelve a sus valores predeterminados el aspecto de este dispositivo y la vista en que quedaron sus tablas y paneles. Su cuenta, sus datos y su inicio de sesión no se tocan.\",\n action: \"Restablecer los ajustes de este dispositivo\",\n confirmTitle: \"¿Restablecer los ajustes de este dispositivo?\",\n confirmBody:\n \"El tema, los colores, el tamaño del texto, el contraste y el idioma vuelven aquí a sus valores predeterminados, y las tablas y los paneles se abren como la primera vez. Si su cuenta tiene un idioma, un tamaño de texto o un contraste, este dispositivo vuelve a seguirlo. Su cuenta y sus otros dispositivos quedan como están.\",\n confirmAction: \"Restablecer\",\n done: \"Los ajustes de este dispositivo han vuelto a sus valores predeterminados.\",\n keywords: \"restablecer predeterminado valores dispositivo restaurar apariencia tablas diseño\",\n },\n rowActions: {\n actions: \"Acciones\",\n actionsFor: (name) => `Acciones de ${name}`,\n },\n appShellMore: {\n more: \"Más\",\n moreTitle: \"Más páginas\",\n },\n // 0.42.0 — docs/admin-harmonization.md §3.1: the admin area's shared words. \"Usted\",\n // as the rest of the catalogue.\n adminArea: {\n title: \"Administración\",\n waiting: (count) => `${n(count)} ${plural(count, \"pendiente\", \"pendientes\")}`,\n forbiddenTitle: \"Solo para administradores\",\n forbiddenBody: (appName) =>\n `Aquí es donde los administradores gestionan ${appName}. Su cuenta no puede abrir esta página.`,\n forbiddenHome: \"Ir a la página de inicio\",\n forbiddenReviewer: \"Revisar traducciones\",\n sections: {\n overview: { title: \"Resumen\", help: \"Lo que está pendiente, de un vistazo.\" },\n users: { title: \"Usuarios\", help: \"Quién tiene una cuenta y qué puede hacer cada uno.\" },\n invitations: { title: \"Invitaciones\", help: \"Los enlaces con los que entra una persona nueva.\" },\n billing: { title: \"Facturación\", help: \"El plan, el pago y las facturas.\" },\n activity: { title: \"Actividad\", help: \"Lo que hicieron los administradores, lo más reciente primero.\" },\n },\n tiles: {\n feedbackWaiting: \"Por clasificar\",\n deletionRequests: \"Solicitudes de eliminación\",\n invitationsPending: \"Invitaciones pendientes\",\n users: \"Usuarios\",\n usersNew: (count) => `${n(count)} ${plural(count, \"nuevo\", \"nuevos\")} en 7 días`,\n },\n tools: \"Herramientas\",\n },\n // 0.42.0 — docs/top-bar-harmonization.md §3.1: the top bar's shared parts; \"plan\" as\n // `billing`, \"usted\" as the rest of the catalogue.\n topBarParts: {\n tours: {\n menu: \"Visitas guiadas\",\n newDot: \"Visitas nuevas\",\n thisPage: \"En esta página\",\n newTours: \"Visitas nuevas\",\n allTours: \"Todas las visitas…\",\n badgeNew: \"Nuevo\",\n completed: \"Completada\",\n },\n sync: {\n blocked: (count) =>\n `${n(count)} ${plural(count, \"cambio no se puede enviar\", \"cambios no se pueden enviar\")} desde este dispositivo`,\n offline: \"Sin conexión: los cambios se guardan en este dispositivo y se sincronizarán al volver a conectarse\",\n refused: \"El servidor rechazó la última sincronización\",\n syncing: \"Sincronizando…\",\n pending: (count) =>\n `${n(count)} ${plural(count, \"cambio\", \"cambios\")} a la espera de sincronizarse`,\n syncedAt: (time) => `Sincronizado a las ${time}`,\n idle: \"Al día\",\n syncHint: \"Toque para sincronizar ahora\",\n offlineHint: \"no hay nada que sincronizar sin conexión\",\n withHint: (state, hint) => `${state} — ${hint}`,\n scoped: (scope, state) => `${scope}: ${state}`,\n offlineShort: \"Sin conexión\",\n syncingShort: \"Sincronizando…\",\n waitingShort: (count) => `${n(count)} en espera`,\n refusedShort: \"Sin sincronizar\",\n offlineUnsaved: \"Sin conexión: los cambios no se pueden guardar hasta que vuelva a conectarse\",\n saving: \"Guardando…\",\n },\n dev: {\n roleHeading: \"Dev · rol\",\n switchPlan: \"Cambiar de plan\",\n plan: (value) => `Plan: ${value}`,\n planHeading: \"Dev · plan\",\n backTo: (role) => `Volver a ${role}`,\n billingOff: \"La facturación está desactivada en local: los planes no cambian nada\",\n },\n },\n };\n}\n\nexport const UI_KIT_LABELS_ES: UiKitLabels = uiKitLabelsEs();\n"],"mappings":"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","names":[]}
|