localization: ship es-ES
Complete Spanish catalog across all three namespaces, 1129 keys,
machine-translated then reviewed for terminology and plurals.
Fixed on review: an awkward literal fragment in settings.accounts.description
("Quién tiene acceso, y como qué") reworded to use the established
role → "función" glossary term instead of an ad-hoc phrase. Everything
else held up — "compositor" for the chat composer avoided the same
Editor-collision German needed fixing for, Minesweeper stayed
untranslated matching pt-PT/fr-FR/de-DE precedent, and the impersonal
"se" constructions used for the file-operation plurals (Se copió /
Se copiaron) read correctly at both n=1 and n=0 — Spanish's plural
rule is one/other like English, count=0 takes the plural branch.
All 17 plural entries verified at count 0/1/2.
This closes out the three-locale rollout: es-ES, de-DE and fr-FR all
now in SHIPPED_LOCALES and all three parity tests, each shipped in
its own commit only after passing review. pt-BR stays out per the
owner's call — European Portuguese first, Brazilian is a separate
decision.
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"button": {
|
||||
"cancel": "Cancelar",
|
||||
"confirm": "Confirmar",
|
||||
"ok": "Aceptar",
|
||||
"close": "Cerrar"
|
||||
},
|
||||
"search": {
|
||||
"placeholder": "Buscar",
|
||||
"open": "Abrir búsqueda",
|
||||
"close": "Cerrar búsqueda",
|
||||
"clear": "Borrar búsqueda"
|
||||
},
|
||||
"select": {
|
||||
"placeholder": "Seleccionar..."
|
||||
},
|
||||
"tabs": {
|
||||
"filterPlaceholder": "Filtrar"
|
||||
},
|
||||
"commandBlock": {
|
||||
"run": "Ejecutar en el terminal",
|
||||
"copy": "Copiar comando"
|
||||
},
|
||||
"colorPicker": {
|
||||
"placeholder": "Color hexadecimal"
|
||||
},
|
||||
"state": {
|
||||
"loading": "Cargando…"
|
||||
},
|
||||
"dataTable": {
|
||||
"empty": "No se encontraron datos.",
|
||||
"pagination": {
|
||||
"showingPage": "Mostrando página {{current}} de {{total}}",
|
||||
"showingPageShort": "p {{current}}/{{total}}",
|
||||
"rowsPerPage": "Filas por página",
|
||||
"perPage": "{{size}} / página",
|
||||
"perPageShort": "{{size}}/p",
|
||||
"first": "Primera",
|
||||
"prev": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"last": "Última"
|
||||
}
|
||||
},
|
||||
"pagination": {
|
||||
"label": "Paginación",
|
||||
"previous": "Anterior",
|
||||
"next": "Siguiente",
|
||||
"morePages": "Más páginas",
|
||||
"goToPrevious": "Ir a la página anterior",
|
||||
"goToNext": "Ir a la página siguiente"
|
||||
},
|
||||
"carousel": {
|
||||
"previous": "Diapositiva anterior",
|
||||
"next": "Diapositiva siguiente"
|
||||
},
|
||||
"breadcrumb": {
|
||||
"more": "Más"
|
||||
},
|
||||
"theme": {
|
||||
"toggle": "Alternar modo de color"
|
||||
},
|
||||
"error": {
|
||||
"forbidden": {
|
||||
"title": "Acceso no autorizado",
|
||||
"description": "No tienes autorización para realizar esta acción.",
|
||||
"hint": "Si crees que esto es un error, contacta con tu responsable."
|
||||
},
|
||||
"unauthorized": {
|
||||
"title": "Credenciales no válidas",
|
||||
"description": "Tu token de acceso ha caducado",
|
||||
"hint": "Inicia sesión de nuevo"
|
||||
},
|
||||
"server": {
|
||||
"title": "Error del servidor"
|
||||
}
|
||||
},
|
||||
"logo": {
|
||||
"icon": "Icono de Officer",
|
||||
"logo": "Logotipo de Officer"
|
||||
}
|
||||
}
|
||||
@@ -4,11 +4,12 @@ import en from './en-GB.json';
|
||||
import ptPT from './pt-PT.json';
|
||||
import frFR from './fr-FR.json';
|
||||
import deDE from './de-DE.json';
|
||||
import esES from './es-ES.json';
|
||||
|
||||
// D2: every shipped locale ships a COMPLETE catalog. A key en-GB has and another locale lacks is a red
|
||||
// build, not a warning — there is no regional fallback to paper over the gap.
|
||||
describe('shared components (ui.*) locale catalogs', () => {
|
||||
test('every shipped locale has every key en-GB has', () => {
|
||||
expect(findMissingKeys(en, { 'pt-PT': ptPT, 'fr-FR': frFR, 'de-DE': deDE })).toEqual([]);
|
||||
expect(findMissingKeys(en, { 'pt-PT': ptPT, 'fr-FR': frFR, 'de-DE': deDE, 'es-ES': esES })).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user