Skip to content

feat(i18n): add complete Brazilian Portuguese (pt) UI translation catalogs - #1046

Open
kauenet wants to merge 4 commits into
solana-foundation:mainfrom
solanabr:feat/i18n-pt-catalogs-01-08-2026
Open

feat(i18n): add complete Brazilian Portuguese (pt) UI translation catalogs#1046
kauenet wants to merge 4 commits into
solana-foundation:mainfrom
solanabr:feat/i18n-pt-catalogs-01-08-2026

Conversation

@kauenet

@kauenet kauenet commented Aug 1, 2026

Copy link
Copy Markdown

Summary

  • Adds complete Brazilian Portuguese (pt) 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 pt in supportedLocales/messagesByLocale; the language picker and Accept-Language resolution (pt, pt-BR) pick it up automatically.
  • Adds the locales.pt 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.
  • Capitalizes language endonyms in the language picker (applies to all locales, including fr).

Sibling PR: #1047 (Latin American Spanish) — both add a locale to the same five wiring files; whichever merges second gets a trivial additive rebase.

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), rent, rails, explorer.
  • Standard Brazilian financial vocabulary elsewhere: ativo, contraparte, transferência, cotação, provedor, custódia, custodiante, decimais.
  • Register: você. Forbidden (regex-enforced): carteira, ficha, ponto de extremidade, cunhar, lista branca/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): pt 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 (pt, pt-BR) resolve to pt; landing and dashboard surfaces render translated; en/fr unaffected.

…alogs

Adds full pt 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.pt 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 standard Brazilian Portuguese (ativo, contraparte, transferência,
cotação, provedor). Register: você.
@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

Adds complete Brazilian Portuguese catalogs and registers pt throughout the dashboard localization system.

  • Adds Portuguese translations for all dashboard message namespaces.
  • Registers Portuguese catalog loading and locale resolution.
  • Adds Portuguese terminology validation guidance and updates localization documentation.
  • Capitalizes locale endonyms in the language picker.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
.github/translation-guidance.json Adds Brazilian Portuguese voice, terminology, and forbidden-term validation rules.
apps/sdp-web/src/i18n/config.ts Registers pt as a supported application locale.
apps/sdp-web/src/i18n/messages.ts Imports, merges, and exposes all Portuguese message catalogs.
apps/sdp-web/src/i18n/messages.unit.test.ts Extends locale acceptance, translation lookup, and inventory checks to Portuguese.
apps/sdp-web/src/components/language-picker.tsx Capitalizes the first character of locale display names using locale-sensitive casing.
apps/sdp-web/src/i18n/README.md Documents Portuguese support and generalized localized-catalog ownership.
apps/sdp-web/messages/pt.json Adds Brazilian Portuguese translations for top-level public and shared application surfaces.
apps/sdp-web/messages/pt/dashboard-custody.json Adds the Brazilian Portuguese custody dashboard catalog.
apps/sdp-web/messages/pt/dashboard-private-channels.json Adds the Brazilian Portuguese private-channels dashboard catalog.

Reviews (4): Last reviewed commit: "Merge branch 'main' into feat/i18n-pt-ca..." | Re-trigger Greptile

@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:33am
sdp-web Ready Ready Preview Aug 4, 2026 8:33am

Request Review

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.

2 participants