feat(i18n): add Spanish (es) locale - #798
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughSpanish is added as a supported language, a complete Spanish translation catalog is registered, and date formatting now uses the Spanish locale when the active language is ChangesSpanish locale support
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Adds Spanish as a UI display language, matching the existing
4-locale pattern (en, ja, zh-CN, zh-TW) with full key parity.
- app/src/i18n/locales/es/translation.json: 832 strings across 18
namespaces, translated from the en master. Keys, {{interpolation}}
placeholders, <code>/<path>/<link>/<strong> tags and _one/_other
plurals preserved. Brand/model names (Whisper, Qwen3, CUDA, MCP…)
left untranslated by design.
- app/src/i18n/index.ts: register `es` in SUPPORTED_LANGUAGES and
resources; the language switcher and LanguageCode derive automatically.
- app/src/lib/utils/format.ts: wire the date-fns `es` locale for
relative-date formatting.
Verified: key parity 832/832 (no missing/extra, placeholders & tags
intact), biome check clean, app+web typecheck pass, build:web succeeds.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7183417 to
559f44a
Compare
|
Hi @jamiepine 👋 Thanks for merging the French and pt-BR locales! This PR adds Spanish ( I've rebased it on the latest Whenever you get a chance, could you approve the workflow run so CI can verify it? Happy to tweak anything. 🙏 |
# Conflicts: # app/src/i18n/index.ts
Adds Spanish as a UI display language, matching the existing
4-locale pattern (en, ja, zh-CN, zh-TW) with full key parity.
- app/src/i18n/locales/es/translation.json: 832 strings across 18
namespaces, translated from the en master. Keys, {{interpolation}}
placeholders, <code>/<path>/<link>/<strong> tags and _one/_other
plurals preserved. Brand/model names (Whisper, Qwen3, CUDA, MCP…)
left untranslated by design.
- app/src/i18n/index.ts: register `es` in SUPPORTED_LANGUAGES and
resources; the language switcher and LanguageCode derive automatically.
- app/src/lib/utils/format.ts: wire the date-fns `es` locale for
relative-date formatting.
Verified: key parity 832/832 (no missing/extra, placeholders & tags
intact), biome check clean, app+web typecheck pass, build:web succeeds.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
What
Adds Spanish (
es) as a UI display language, extending the existing i18next setup that already ships English, Japanese, Simplified Chinese and Traditional Chinese.Why
Spanish was missing from the UI locales (it previously existed only as a TTS output language). UI i18n / general localization is listed as a Tier-2 roadmap item in
docs/PROJECT_STATUS.md(#411, #392, #261), so this is an additive, on-roadmap change that follows the established 4-locale pattern.Changes
app/src/i18n/locales/es/translation.json— new locale, 832 strings across all 18 namespaces, translated from theenmaster. Keys,{{interpolation}}placeholders,<code>/<path>/<link>/<strong>tags and_one/_otherplural forms are preserved. Brand/model names (Whisper, Qwen3, Chatterbox, CUDA, MCP, etc.) are intentionally left untranslated.app/src/i18n/index.ts— registeresinSUPPORTED_LANGUAGESandresources. The language switcher and theLanguageCodetype derive automatically.app/src/lib/utils/format.ts— wire thedate-fnseslocale for relative-date formatting.Verification
en: 832/832 — no missing/extra keys; all{{…}}placeholders and<…>tags intact.biome checkclean (JSON: no trailing commas, lineWidth 100).tsc --noEmitpasses for bothappandweb.bun run build:websucceeds.Notes
date-fnsalready present).CHANGELOG.mdleft untouched — it's auto-compiled during the release workflow per the file header.Summary by CodeRabbit