Skip to content

fix(i18n): pt-BR native-fluency polish (brand gender rule, Pix, terminology) - #2500

Merged
abalinda merged 1 commit into
mobile-releasefrom
fix/ptbr-localization-polish
Jul 24, 2026
Merged

fix(i18n): pt-BR native-fluency polish (brand gender rule, Pix, terminology)#2500
abalinda merged 1 commit into
mobile-releasefrom
fix/ptbr-localization-polish

Conversation

@abalinda

Copy link
Copy Markdown
Contributor

Native-speaker polish pass over src/i18n/app/messages/pt-BR.json (the localization that shipped with native app 1.0.36+). Copy-only — no keys added or removed, no code changes. All 39 i18n tests pass (key parity + ICU syntax).

Peanut brand gender rule

Peanut is gender-neutral where grammar allows, feminine where an article/contraction is unavoidable. The file mixed all three genders; now:

  • Subject position → no article: "Peanut está em beta!", "Peanut é só por convite", "Peanut não armazena nenhum dos seus documentos", "Peanut usa o Pix na taxa atual de mercado"
  • Forced contraction → feminine: "Taxa da Peanut" (was do in 6 places, da in 2), "Patrocinada pela Peanut" (was pelo in 6 places), "Entre na Peanut", "app da Peanut", "Contatos da Peanut", "receber dinheiro pela Peanut"
  • Verb + brand → bare: "usou Peanut", "seus amigos usam Peanut" (was a mix of o Peanut / a Peanut)
  • Masculine stays only where it agrees with a masculine noun, not the brand: "cartão Peanut", "seu cartão Peanut"

Official spellings

  • PIX → Pix everywhere (Banco Central's official casing, used by Nubank/Wise/Mercado Pago): "Pagar com Pix", "Chave Pix", "Pix Automático"
  • MercadoPago → Mercado Pago (official brand spacing)
  • lowercase "carteira peanut" / "Peanut wallet" → "carteira Peanut" / "Peanut Wallet"

One term per concept (was 2–3 competing translations)

Concept Was Now
badges emblemas / selos / badges selos
US routing number Número de routing / Routing Number / Número de roteamento Routing number (Wise keeps it in English in PT-BR — help article)
pot contributors Contribuintes / Contribuidores Contribuidores ("contribuinte" = taxpayer)
card PIN pin / Pin / PIN PIN
liveness check verificação de vivacidade prova de vida (the standard BR term — banks, gov.br)
limit reset redefinido / renovado renovado
rate quote melhor taxa / cotação cotação
auto-balance (recovery page) auto-balance recarga automática (matches fixSignature section)

Naturalness fixes (selection)

  • errors.minimumSendAmount: "0.0001" → "0,0001" (decimal comma)
  • withdraw.bankForm: "Seu CEP" → "Seu código postal" (form is for foreign bank accounts; CEP is Brazil-only)
  • card.yourCard.payAsCreditBody: "roda na rede de crédito" → "funciona na função crédito" (what maquininhas actually say)
  • card.rejection.title: "hoje a porta está apertada." → "a porta tá difícil hoje." (club-door metaphor, EN "the door's tight tonight")
  • settings.deleteAccount.doneDescription: "Obrigado por abrir o Peanut com a gente" → "Obrigado por ter feito parte da Peanut" (EN pun "cracking open Peanut" doesn't survive literally)
  • claim.errors.missingInviter: "falta quem convidou" → "não identificamos quem convidou você"
  • rewards.friendsEarnedYou: "Seus amigos fizeram você ganhar" → "Seus amigos já te renderam"
  • global.betaBanner: "usuário inicial" → "um dos primeiros usuários"
  • global.balanceWarningModal: "você é o único que pode acessar" → "só você pode acessar" (tighter + not gendered)
  • withdraw.confirm.recipientReceivesInfo: "taxa de rede entre redes" → "taxa de ponte entre redes" (matches the very next row's label)
  • iOS-facing strings: "tela inicial" → "tela de início" (Apple's PT-BR term); Android/general strings keep "tela inicial"
  • exchangeRate.widget.arrivesHours: "Deve chegar em horas." → "Deve chegar em poucas horas."
  • e-mail spelling normalized to "e-mail" (3 stragglers)

Notes for reviewer

🤖 Generated with Claude Code

Peanut brand gender rule: article-less where possible ('Peanut está em
beta'), feminine where grammar forces one ('taxa da Peanut', 'na Peanut')
— was inconsistently masculine/feminine across the file. Also: official
'Pix' and 'Mercado Pago' spellings, one term for badges (selos) and
routing number (kept in English, as Wise does), 'prova de vida' for
liveness, PIN casing, decimal comma, and assorted unnatural phrasings.
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
peanut-wallet Ready Ready Preview, Comment Jul 24, 2026 10:05am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3d1c4222-117b-47a6-9d24-0f049a0d99d9

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/ptbr-localization-polish

Comment @coderabbitai help to get the list of available commands.

@abalinda
abalinda marked this pull request as ready for review July 24, 2026 10:03
@abalinda
abalinda merged commit b1cb61a into mobile-release Jul 24, 2026
11 checks passed
innolope-dev added a commit that referenced this pull request Jul 24, 2026
…minology)

Mirrors the pt-BR polish in #2500: official Pix/Mercado Pago casing,
unified routing-number/contributor/auto-balance terminology that was
split across multiple translations, a few real bugs (lowercase brand
name, stray "E-mail"), and naturalness tweaks to vague or awkward phrasing.
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