feat(i18n): add Spanish (es) locale — 15 namespaces, ~1 450 keys - #264
feat(i18n): add Spanish (es) locale — 15 namespaces, ~1 450 keys#264Mukller wants to merge 1 commit into
Conversation
Implements full Spanish translation covering all existing locale namespaces: activity, alerts, analytics, ccConfig, common, dashboard, errors, kanban, nav, run, sessions, settings, splash, updates, workflows. - All interpolation variables preserved; upstream/master-only keys included - Language switcher wired: languageNames.es/languageShort.es added - i18n/index.ts: imports all 15 es bundles, adds es to supportedLngs - i18n.test.ts: adds Spanish nav, non-explicit es-ES, and terminology tests Closes hoangsonww#197
Dcastroro
left a comment
There was a problem hiding this comment.
The new Spanish option is only added to the Spanish nav file. The English, Chinese, Vietnamese, and Korean nav resources do not contain languageNames.es or languageShort.es. Since the language selector renders while one of those locales is active, users cannot get the localized Spanish label before switching and will see the raw key or fallback behavior. Add the Spanish language name and short label to every existing nav locale, and extend the locale parity test so future languages must be discoverable from every active locale.
hoangsonww
left a comment
There was a problem hiding this comment.
Thanks for the changes -- mostly lgtm, but can you also add Spanish support to the documentation (README in spanish, the wiki page at wiki/index.html, etc.)? If you're using AI agents, it can be as easy as telling the agent to do the docs update skill already in the repo.
Summary
Closes #197 — adds a complete Spanish (
es) locale to the i18n layer.What's included
client/src/i18n/locales/es/:activity,alerts,analytics,ccConfig,common,dashboard,errors,kanban,nav,run,sessions,settings,splash,updates,workflowsenlocaleawaitingReason(common),waitingBanner/conversation/timeline/transcriptNotFound(sessions),remoteSources/cursorPathsNote(settings),clearSearch/jumpTo/new keybinding fields (ccConfig)
languageNames.es = "Español"andlanguageShort.es = "ES"added tonav.jsonfor all five localesclient/src/i18n/index.ts: imports all 15esbundles and adds"es"to
supportedLngsclient/src/i18n/__tests__/i18n.test.ts: three new assertions —Spanish nav keys, non-explicit
es-EStag resolution, and terminology checkTranslation notes
{{count}},{{name}},<code>…</code>) arepreserved verbatim throughout
subagente — the natural Spanish equivalent; technical UI identifiers such
as
toolLegend.agentremain untranslated, matching the project conventionwhat/howToRead/whyblocksare fully translated
Test plan
page all render in Spanish
es-ESbrowser locale also resolves toes(nonExplicitSupportedLngs)cd client && npx vitest run src/i18n— three new Spanish test cases pass