feat(i18n): add Spanish (es) locale

Full European Spanish translation — frontend/src/i18n/locales/es.ts
  covers all 4899 keys with placeholders, plural forms, and inline
  markup preserved. Registered in i18n/index.ts (resources,
  supportedLngs, availableLanguages) and selectable as "Español".

  check-i18n-parity.mjs auto-discovers the new file; added an
  ES_COGNATES allow-list for genuine Spanish cognates and brand/format
  tokens so Check 4 does not flag them as untranslated leaks. Brings the
  supported-language count to 9.
This commit is contained in:
maziggy
2026-05-21 13:13:55 +02:00
parent 76e327f4a1
commit a51d59eabf
6 changed files with 6419 additions and 445 deletions
+17
View File
@@ -285,11 +285,28 @@ const ZH_TW_COGNATES = [
'EC984C,#6CD4BC,A66EB9,D87694',
];
// Spanish cognates — words/phrases that are genuinely identical in Spanish.
const ES_COGNATES = [
'Error', 'Firmware', 'General', 'Control', 'Total', 'total', 'Material',
'Material:', 'Color', 'Hex', 'Local', 'Global', 'China', 'Editable',
'Normal', 'Metal', 'Multicolor', 'Proxy', 'Host', 'Factor', 'Original',
'Sport (124%)', 'Ludicrous (166%)', 'MakerWorld: {{designer}}',
'{{printer}}: {{error}}', 'Base: {{name}}',
'{{name}} — {{stage}} ({{percent}}%) — {{elapsed}}', 'total: {{minutes}} min',
'({{count}}/8)', 'Hex: #{{hex}}', '(25%, 50%, 75%)',
'EC984C,#6CD4BC,A66EB9,D87694', 'Est.',
'ntfy, Pushover, Discord, etc.',
'Box label (62 × 29 mm)',
'Avery L7160 — A4 sheet (38.1 × 63.5 mm × 21)',
'Avery 5160 — US Letter sheet (25.4 × 66.7 mm × 30)',
];
const IDENTICAL_TO_EN_ALLOWED = {
de: new Set(DE_COGNATES),
fr: new Set(FR_COGNATES),
it: new Set(IT_COGNATES),
ja: new Set(JA_COGNATES),
es: new Set(ES_COGNATES),
'pt-BR': new Set(PT_BR_COGNATES),
'zh-CN': new Set(ZH_CN_COGNATES),
'zh-TW': new Set(ZH_TW_COGNATES),