Skip to content

feat(i18n): add Spanish (es) locale to desktop app - #82172

Open
echla-magia wants to merge 1 commit into
NousResearch:mainfrom
echla-magia:feat/es-locale
Open

feat(i18n): add Spanish (es) locale to desktop app#82172
echla-magia wants to merge 1 commit into
NousResearch:mainfrom
echla-magia:feat/es-locale

Conversation

@echla-magia

Copy link
Copy Markdown

Summary

Adds Spanish (es) as a fully supported UI language for the Hermes desktop app, following the exact pattern already proven with ar (Arabic). The language picker (Settings → Appearance → Language) will now offer Español alongside English, 简体中文, 繁體中文, 日本語 and العربية.

This is a complete, independent translation (pattern of en.ts / ar.ts, ~3000 lines) — it does not rely on the English fallback.

Changes

File Change
apps/desktop/src/i18n/es.ts New — full Spanish translation (export const es: Translations)
apps/desktop/src/i18n/types.ts Add 'es' to the Locale union
apps/desktop/src/i18n/languages.ts Add es to LOCALE_OPTIONS + 18 aliases (es, es-mx, es-419, es-es, español, …)
apps/desktop/src/i18n/catalog.ts Register es in TRANSLATIONS
apps/desktop/src/i18n/languages.test.ts Coverage for es normalization/config/alias

Tone/scope: neutral Latin American Spanish (largest speaker block, incl. Mexico), consistent with the existing full-locale files.

Verification

  • tsc -p . (renderer), tsc -p tsconfig.electron.json, tsc -p tsconfig.e2e.json: 0 errors
  • vitest run src/i18n/languages.test.ts src/i18n/context.test.tsx: 15/15 pass

🙏 From the author

"Muchas gracias por su trabajo. Sería un honor para mí colaborar aunque sea en algo tan sencillo como esto. Un fuerte abrazo, su amigo de México."

(Thank you so much for your work. It would be an honor for me to contribute even in something as simple as this. A big hug, your friend from Mexico.)

@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) area/i18n Localization, locales, translations sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades duplicate This issue or pull request already exists labels Aug 9, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Duplicate of #41230: this implements the same Desktop Spanish locale catalog, registration, aliases, and test surface.

@echla-magia

Copy link
Copy Markdown
Author

Hola, equipo de Hermes 👋

Les escribo como el autor de esta contribución. Esta traducción al español está completa y verificada:

  • Traducción íntegra e independiente de toda la interfaz (~3000 líneas, patrón de en.ts), español neutro latinoamericano.
  • Verificado: tsc -p . (renderer), tsc -p tsconfig.electron.json, tsc -p tsconfig.e2e.json — 0 errores; vitest i18n — 15/15 tests en verde.
  • ✅ Sigue exactamente el patrón ya probado del locale ar (árabe) en LOCALE_OPTIONS, LOCALE_ALIASES y catalog.ts.

Español es el 2º idioma más hablado del mundo (~600M hablantes). Que la interfaz de Hermes hable español abre el proyecto a una comunidad enorme.

Gracias por su trabajo; es un honor poder colaborar con este pequeño granito de arena. 🙌

— E.ChLA.:Cuauhtli.:Balam.:

@echla-magia

Copy link
Copy Markdown
Author

Hola equipo Hermes 👋, autor de #82172 aquí. Respetuosamente pido revisar el label duplicate:

Entiendo que #41230 es el candidato canónico de español, pero no está mergeable hoy: lleva 2 meses en estado dirty (conflictos). Mi PR sí está mergeable (solo falta aprobación) y es i18n puro (5 archivos): no toca el compositor ni otros módulos como hace #41230, así que el riesgo de regresión es mínimo.

Mi traducción está completa e independiente (~3000 líneas, español neutro latinoamericano, tsc 0 errores en renderer/electron/e2e y 15/15 tests i18n).

Propongo no duplicar esfuerzo: que mi rama se consolide dentro de #41230 (rebase/cherry-pick manteniendo mi autoría) o, si prefieren, actualizar el canónico con una versión de menor riesgo que mergea ya. Mantener ambas no tiene sentido; pero cerrar el mío como "dup" sin integrarlo tampoco aprovecha un trabajo verificado que está listo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/i18n Localization, locales, translations comp/desktop Electron desktop app (apps/desktop/*) duplicate This issue or pull request already exists P3 Low — cosmetic, nice to have sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants