Skip to content

feat(desktop): add Spanish locale - #41230

Open
sdyckjq-lab wants to merge 1 commit into
NousResearch:mainfrom
sdyckjq-lab:feat/desktop-es-locale
Open

feat(desktop): add Spanish locale#41230
sdyckjq-lab wants to merge 1 commit into
NousResearch:mainfrom
sdyckjq-lab:feat/desktop-es-locale

Conversation

@sdyckjq-lab

@sdyckjq-lab sdyckjq-lab commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Hermes Desktop can now be used in Spanish through the existing language picker, with English remaining the default. This refresh rebuilds the Spanish catalog against the current Desktop translation contract so the current interface does not silently fall back to English.

  • Registers Spanish (es) as Español in the Desktop language picker.
  • Keeps the composer placeholder in the active language when switching locales without resetting the selected prompt, draft, or session state.
  • Translates the full current Desktop catalog, including dynamic success messages and guidance that depends on the active session.

Scope

  • Uses the existing Desktop i18n system and keeps future English fallback behavior.
  • Supports es, es-ES, es_ES, es-419, es_419, es-MX, es_MX, es-AR, and es_AR, all persisted canonically as es.
  • Keeps unlisted regional values such as es-CL on the existing English fallback path.
  • Does not change Web, Dashboard, CLI, TUI, the setup wizard, or other locales.

Verification

  • Verified the raw Spanish and English catalogs contain 2,674 matching entries, with no missing entries, extras, or parameter mismatches.
  • Relevant Desktop coverage: 7 test files and 56 tests passed.
  • Full Desktop suite: 343 test files, 3,088 tests passed, and 3 project-configured tests skipped.
  • Desktop typecheck passed.
  • Desktop lint completed with 0 errors; the 24 warnings are pre-existing outside this change.
  • Prettier check passed for all changed TypeScript files.
  • Built and validated the macOS arm64 app and DMG with test:desktop:all; the final DMG also passed macOS disk-image verification.
  • Manual macOS Desktop check: selected Español, confirmed the main UI and picker changed, and confirmed a typed draft stayed intact while switching languages.

Tested on macOS 26.3.1 arm64.

Review status

A full native-Spanish copy review is still requested before merge.

Co-authored-by: Kiro 有点Yes 246816394+sdyckjq-lab@users.noreply.github.com

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the Spanish Desktop locale contribution. The feature is still absent from current main: apps/desktop/src/i18n/languages.ts:7-32 and apps/desktop/src/i18n/catalog.ts:7-12 register only en/zh/zh-hant/ja.

Problems

  • The locale-sensitive placeholder effect in this PR has moved. Current main owns it in apps/desktop/src/app/chat/composer/hooks/use-composer-placeholder.ts:21-59; its effect only responds to a session change. Preserve the PR’s locale-change behavior there so an already-open composer does not retain English placeholder text after switching to Spanish.
  • The i18n contract has expanded materially since the PR base: git diff --stat fa8fd513..HEAD -- apps/desktop/src/i18n reports 3,697 added lines. Rebase the Spanish overrides on current Translations so newly added Desktop UI does not fall back to English unintentionally.

Suggested changes

  • Salvage the locale catalog and aliases onto current main, then update use-composer-placeholder.ts and add a locale-switch-without-session-change test.
  • Coordinate catalog choice with the related open Spanish locale PRs #49036 and #54970.

Automated hermes-sweeper review.

Comment thread apps/desktop/src/app/chat/composer/index.tsx Outdated
Comment thread apps/desktop/src/i18n/es.ts
@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 14, 2026
@sdyckjq-lab
sdyckjq-lab force-pushed the feat/desktop-es-locale branch from 00fe600 to bf411a7 Compare July 14, 2026 17:58
@sdyckjq-lab

Copy link
Copy Markdown
Contributor Author

Spanish native-language review requested for final head bf411a7c4.

@pgsonic @mistaker47, could either of you review the current Desktop Spanish wording when you have a moment? The catalog has been rebuilt against the current contract (2,357 entries with no missing keys or parameter mismatches), and the automated checks and local Desktop smoke test have passed.

I will wait for that language review and the new CI run before asking a maintainer to merge.

@virtualwolf-369

Copy link
Copy Markdown

Hola @sdyckjq-lab — acabo de cerrar mi PR #64793 como duplicado del tuyo. Llegué de forma independiente a las mismas correcciones contextuales que reportaron en triage (toggle on/off → Activado/Desactivado, muted → Silenciado, smart → Inteligente) y confirmé que ya están en tu catálogo, así que cerrar el mío no pierde nada. Gracias por llevar la implementación canónica del locale es; si quieres una segunda lectura o ayuda con el rebase contra main, avísame. ¡Buen trabajo!

@valeracjva

Copy link
Copy Markdown

Hi @sdyckjq-lab,

I opened PR #68836 with a Spanish Desktop locale implementation for issue #68822. I understand from the current triage that #41230 is the preferred canonical implementation, and I am happy to defer to it rather than maintain competing PRs.

If useful, please feel free to salvage any wording or regional aliases from #68836. I am also available to review the Spanish copy or help validate the locale behavior from an Argentine Spanish perspective.

Once #41230 is merged and the Spanish locale is verified, I will close #68836 as a duplicate.

@alt-glitch alt-glitch added comp/desktop Electron desktop app (apps/desktop/*) and removed sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Jul 24, 2026
@sdyckjq-lab
sdyckjq-lab force-pushed the feat/desktop-es-locale branch from bf411a7 to 9538cef Compare July 26, 2026 13:33
@sdyckjq-lab

Copy link
Copy Markdown
Contributor Author

Hi @valeracjva — thank you for offering to help from an Argentine Spanish perspective.

I have rebased and refreshed #41230 on the current main. The current head is 9538cefa8; the Spanish and English Desktop catalogs now align at 2,674 entries, and the local Desktop tests, typecheck, build, and macOS DMG validation pass.

Could you please:

  1. confirm whether you are a native Spanish speaker; and
  2. review the complete Spanish Desktop copy on the current head for neutral international Spanish, natural voice, clarity, and UI context?

If you find anything to change, please leave the corrections here. If the copy looks good, an explicit confirmation that you reviewed the current head would help us complete the language-review gate before merge.

@valeracjva

Copy link
Copy Markdown

Hi @sdyckjq-lab — yes, I’m a native Spanish speaker. My native variety is neutral Venezuelan Spanish, and I’ve also lived in Argentina for almost ten years.

I reviewed the current head 9538cefa8 for neutral international Spanish, consistent voice, clarity, and UI context. Overall the copy reads well and is mergeable from my side.

I only found a few small wording tweaks worth making:

  1. compression.enabled
    Current: Resume contexto antiguo cuando las conversaciones crecen.
    Suggested: Resume el contexto anterior cuando las conversaciones crecen.

  2. revertConfirm
    Current: ¿Descartar los cambios en este archivo y restaurarlo al estado comprometido? Esto no se puede deshacer.
    Suggested: ¿Descartar los cambios en este archivo y restaurarlo al estado del último commit? Esto no se puede deshacer.

  3. revertAllConfirm
    Current: ¿Descartar todos los cambios y restaurar archivos al estado comprometido? Esto no se puede deshacer.
    Suggested: ¿Descartar todos los cambios y restaurar los archivos al estado del último commit? Esto no se puede deshacer.

  4. ghMissing
    Current: Instale GitHub CLI (gh) e inicie sesión para abrir PR
    Suggested: Instala GitHub CLI (gh) e inicia sesión para abrir PRs

Other than those minor adjustments, the locale looks good to me for neutral international Spanish and a natural voice.

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/*) P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants