Skip to content

feat(i18n): add complete Latin American Spanish (es) UI translation catalogs - #1047

Open
kauenet wants to merge 1 commit into
solana-foundation:mainfrom
solanabr:feat/i18n-es-catalogs-01-08-2026
Open

feat(i18n): add complete Latin American Spanish (es) UI translation catalogs#1047
kauenet wants to merge 1 commit into
solana-foundation:mainfrom
solanabr:feat/i18n-es-catalogs-01-08-2026

Conversation

@kauenet

@kauenet kauenet commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds complete Latin American Spanish (es) catalogs for all 3,639 UI strings across the 8 message files — including dashboard-private-channels.json (272 keys), which fr does not cover yet.
  • Registers es in supportedLocales/messagesByLocale; the language picker and Accept-Language resolution (es, es-MX, es-AR, …) pick it up automatically.
  • Adds the locales.es terminology block (voice, glossary-driven terminology, forbiddenTerms) to .github/translation-guidance.json, so catalog validation and the Eve release workflow enforce the conventions on every future string.

Sibling PR: #1046 (Brazilian Portuguese) — both add a locale to the same five wiring files, so whichever merges second gets a trivial rebase (supportedLocales, imports, catalog const, registry entry, guidance block are all additive).

Terminology

  • Source of truth: solanabr/solana-glossary + the established fr conventions.
  • Kept in English: Token, Wallet, mint/burn, allowlist/blocklist, endpoint, API Playground, Sandbox, stablecoin, on-chain/off-chain, staking, the SPL authority family (Mint/Freeze/Update/Metadata Authority, Permanent Delegate), ramp/on-ramp/off-ramp, rails, rent.
  • Standard Latin American financial vocabulary elsewhere: activo, contraparte, transferencia, cotización, proveedor, custodia, custodio, decimales, cumplimiento, pago saliente (payout), fondeo (funding); tarifa for network/transaction fees vs comisión for provider fees.
  • Register: /ustedes (never vosotros), inverted ¿ ¡. Forbidden (regex-enforced): billetera, monedero, cartera, ficha, acuñar, zona de pruebas, lista blanca/negra.

Quality process

  • Terminology contract authored before translating.
  • Two rounds of independent adversarial review (native register, cross-file terminology consistency, UI mechanics, meaning fidelity, and revision regression), with all confirmed findings applied.
  • 100% key parity with en; placeholder tokens byte-identical; zero forbidden-term hits.

Policy

Dedicated translation-only PR per check-catalog-change-policy.mjs — zero English catalog changes.

Validation

  • validateCatalogs (missing keys + placeholder parity + forbidden terms): es fully valid
  • vitest src/i18n/messages.unit.test.ts (inventory parity, typed lookups, fallback): pass
  • tsc --noEmit (sdp-web) — catalogs type-checked via satisfies LocalizedMessages<Messages>: pass
  • pnpm test:scripts (catalog policy + release translation tooling): pass
  • Biome on all changed files: clean
  • Runtime: cookie and Accept-Language (es, es-MX) resolve to es; landing and dashboard surfaces render translated; en/fr unaffected.

@vercel

vercel Bot commented Aug 1, 2026

Copy link
Copy Markdown

@kauenet is attempting to deploy a commit to the Solana Foundation Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps

greptile-apps Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds complete Latin American Spanish catalogs and registers the locale in the dashboard’s i18n configuration.

  • Adds Spanish translations across the landing page and dashboard feature catalogs.
  • Registers es for locale negotiation and typed message loading.
  • Adds Spanish terminology guidance, validation rules, documentation, and locale tests.

Confidence Score: 5/5

The PR appears safe to merge, with only non-blocking Spanish terminology cleanup remaining in an existing review thread.

The previously reported removal terminology mismatch remains in the Spanish catalogs, but no blocking failure remains.

Files Needing Attention: apps/sdp-web/messages/es/shared.json, apps/sdp-web/messages/es/dashboard-payments.json, apps/sdp-web/messages/es/dashboard-custody.json

Important Files Changed

Filename Overview
.github/translation-guidance.json Adds the Spanish locale’s voice, terminology, and forbidden-term validation contract.
apps/sdp-web/src/i18n/config.ts Registers Spanish as a supported locale.
apps/sdp-web/src/i18n/messages.ts Imports and assembles the Spanish catalogs for typed runtime lookup.
apps/sdp-web/src/i18n/messages.unit.test.ts Extends locale inventory and fallback coverage to Spanish.
apps/sdp-web/messages/es/shared.json Adds shared Spanish dashboard messages.
apps/sdp-web/messages/es/dashboard-custody.json Adds Spanish custody and wallet-management messages.
apps/sdp-web/messages/es/dashboard-payments.json Adds Spanish payment workflow messages.

Reviews (4): Last reviewed commit: "feat(i18n): add complete Latin American ..." | Re-trigger Greptile

Comment thread apps/sdp-web/messages/es/shared.json
@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sdp-docs Ready Ready Preview Aug 4, 2026 8:44am
sdp-web Ready Ready Preview Aug 4, 2026 8:44am

Request Review

…atalogs

Adds full es catalogs for all 3,639 UI strings across the 8 message files,
including dashboard-private-channels (not yet covered by fr). Registers the
locale in supportedLocales/messagesByLocale, extends the i18n unit tests,
and adds the locales.es terminology block (voice, glossary-driven
terminology, forbiddenTerms) to translation-guidance.json so catalog
validation enforces the conventions from day one.

Terminology follows solanabr/solana-glossary and the established fr
precedent: Token, Wallet, mint/burn, allowlist/blocklist, endpoint,
API Playground and friends stay in English; generic finance/CS vocabulary
uses neutral Latin American Spanish (activo, contraparte, transferencia,
cotización, proveedor). Register: tú, never vosotros.
@kauenet
kauenet force-pushed the feat/i18n-es-catalogs-01-08-2026 branch from 9f1ced9 to 969e90c Compare August 4, 2026 16:11
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