Skip to content

Add Spanish (es) locale with polite usted form#62

Merged
AdaInTheLab merged 1 commit into
mainfrom
feature/i18n-spanish
May 9, 2026
Merged

Add Spanish (es) locale with polite usted form#62
AdaInTheLab merged 1 commit into
mainfrom
feature/i18n-spanish

Conversation

@AdaInTheLab
Copy link
Copy Markdown
Collaborator

Summary

Third and final language addition in this round. German shipped in #59, French in #61, this completes the de/fr/es trio. Spanish, polite usted form throughout.

What's in the locale

  • Full mirror of `en.ts` (~250 keys across 30 namespaces) translated to Spanish
  • Polite form (`usted`) — appropriate register for an admin tool, neutral across regional variants
  • Technical proper nouns kept in English: Steam, EAC, telnet, Cloudflare, Discord, IANA, BBGGRR, etc.
  • Game-specific terms use the conventional 7D2D-ES renderings: «Luna de sangre», «Z-Kills», etc.
  • Action buttons in standard Spanish UI infinitive form (Guardar, Editar, Eliminar, ...)
  • Browser auto-detect extended — visitors with `es-*` locale (es-ES, es-MX, es-AR, etc.) land on Spanish automatically
  • broadcastsHint translated to Spanish

Quality note

Same as the German + French PRs: this is a competent first pass, not a professional localization. Common UX surfaces should read naturally; the deeper config-editor field labels are direct translations and would benefit from a domain-fluent native-speaker polish. PRs welcome from your community.

The `usted` form is regionally neutral — works fine for both Latin American and European Spanish-speaking users. If your audience leans heavily one way you might want to revisit specific phrasings, but the default is safe.

Files

File What
`frontend/src/i18n/locales/es.ts` New
`frontend/src/i18n/index.ts` Register `es`, add to `SUPPORTED_LOCALES`, extend browser-language detect

Test plan

  • Pull, build, deploy
  • Hard-refresh panel → language dropdown shows "Español" between "Français" and "简体中文"
  • Switch to Español — sidebar nav, dashboard, settings, etc. render in Spanish
  • Hover the language switcher → tooltip shows the broadcasts-not-translated note in Spanish
  • Set browser language to `es-ES`, clear localStorage, reload → defaults to Español
  • vue-tsc passes (structural typecheck across all 8 locales)

What this round delivered

  • de/fr/es with polite-form translations
  • Tooltip on language switcher about non-translating broadcasts
  • Browser auto-detect picks the user's preferred language
  • 8 supported locales total: en, de, fr, es, zh-CN, zh-TW, ja, ko (the latter four still on English placeholders for the keys added during this round — fine to revisit alongside any native-translator pass)

🤖 Generated with Claude Code

Third and final language addition in this round (German #59, French
#61 already shipped). Same shape: full mirror of en.ts, polite usted
register, technical proper nouns kept in English, browser-language
detection extended for es-* visitors (es-ES, es-MX, es-AR, etc.).

Game-specific terms use the conventional 7D2D-ES renderings («Luna
de sangre», etc.). Action buttons in standard Spanish UI infinitive
form (Guardar, Editar, Eliminar, ...).

Quality-wise this is a competent first pass — common UX surfaces
should read naturally; the deeper config-editor field labels are
direct translations and would benefit from a domain-fluent native-
speaker polish. PRs welcome.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@AdaInTheLab AdaInTheLab merged commit 3d6c90f into main May 9, 2026
2 checks passed
@AdaInTheLab AdaInTheLab deleted the feature/i18n-spanish branch May 9, 2026 12:40
AdaInTheLab added a commit that referenced this pull request May 13, 2026
Rolls up everything since v2.6.2 into a single release tag. v2.6.3
was bumped on main (#63) but never tagged or released — folding it
into v2.6.4 keeps the public release history clean.

Marquee additions since v2.6.2:

- Modpack (#64) — Bundle installed mods into a single zip players can
  download from the login page. No panel account required. Three-state
  workflow (draft → published → archived), top-right CTA on the login
  page, anonymous metadata + download endpoints. Atomic temp-file zip
  build so public downloaders can't grab a half-written archive.

- Graceful Restart (#57, #58) — Scheduled daily restarts with
  player-friendly in-game countdown warnings. Configurable warning
  ladder, IANA-timezone schedule (DST-aware), krestart console command,
  REST endpoints, panel Settings tab.

- Backups bug fix (#56) — BackupService had a redundant conn.Open()
  call that silently dropped writes due to a custom System.Data.SQLite
  quirk. Reads worked, so the bug went unnoticed until first hands-on
  test. Six call sites fixed, class doc comment added so future-me
  doesn't reintroduce it.

- German / French / Spanish locales (#59, #61, #62) — Full polite-form
  translations across ~250 keys / 30 namespaces. Browser auto-detect
  picks the right one for de-* / fr-* / es-* visitors. Tooltip on the
  language switcher noting that in-game broadcast messages don't
  auto-translate.

- Favicon (#60) — Regenerated all four favicon variants (svg / 16 /
  32 / ico) from kitsune-command-logo-transparent.png so the browser
  tab matches the panel's sidebar logo.

- README updates: features list now reflects all the above.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant