Skip to content

🌐 app: setup native locales, add portuguese l10n#884

Open
cruzdanilo wants to merge 14 commits intoupgradefrom
i18n
Open

🌐 app: setup native locales, add portuguese l10n#884
cruzdanilo wants to merge 14 commits intoupgradefrom
i18n

Conversation

@cruzdanilo
Copy link
Member

@cruzdanilo cruzdanilo commented Mar 13, 2026

closes #856


Open with Devin

Summary by CodeRabbit

  • New Features

    • Portuguese translations added (UI and native iOS usage texts).
    • Spanish native iOS permission descriptions added (camera, location).
    • App locales expanded to support English, Spanish and Portuguese.
    • Date/time formatting now uses Portuguese locale for Portuguese users.
  • Style

    • Many UI strings updated to use typographic apostrophes and curly quotes.

@changeset-bot
Copy link

changeset-bot bot commented Mar 13, 2026

🦋 Changeset detected

Latest commit: 74b94a1

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the application's internationalization by adding full support for the Portuguese language. It involves configuring the application to recognize and utilize Portuguese locales, integrating new translation files for both general UI text and native platform-specific strings, and updating development tools like the spell checker to accommodate the new language. This change aims to provide a more localized and accessible experience for Portuguese-speaking users.

Highlights

  • Portuguese Localization Added: Introduced comprehensive Portuguese (pt) translations for the application's UI and native platform strings, expanding language support.
  • Native Locale Configuration: Configured expo-localization to explicitly support English, Spanish, and Portuguese, and registered native locale files for Spanish and Portuguese within app.config.ts.
  • Spell Check Updates: Integrated a Portuguese dictionary into cspell.json and updated spell check overrides to correctly handle new Portuguese translation files.
  • Translation Resource Integration: The new Portuguese translation file (src/i18n/pt.json) was imported and registered with the i18n configuration in src/app/_layout.tsx.
Changelog
  • .changeset/curvy-insects-sin.md
    • Added a changeset entry for setting up native locales.
  • .changeset/long-rocks-rhyme.md
    • Added a changeset entry for Portuguese translations.
  • app.config.ts
    • Configured 'expo-localization' to support 'en', 'es', and 'pt' locales.
    • Registered native locale files for Spanish and Portuguese.
  • cspell.json
    • Added the Portuguese dictionary to cspell configuration.
    • Updated the filename pattern for Spanish i18n overrides.
    • Added cspell overrides for the new Portuguese i18n file.
  • package.json
    • Added '@cspell/dict-pt-br' as a development dependency.
  • src/app/_layout.tsx
    • Imported the new Portuguese translation file.
    • Registered Portuguese translations with the i18n configuration.
  • src/i18n/native/es.json
    • Added native iOS strings for camera and location usage descriptions in Spanish.
  • src/i18n/native/pt.json
    • Added native iOS strings for camera and location usage descriptions in Portuguese.
  • src/i18n/pt.json
    • Added comprehensive Portuguese translations for various application strings.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link

coderabbitai bot commented Mar 13, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds Portuguese UI and native iOS locale files, enables expo-localization for en/es/pt in the Expo config, updates spellcheck and a devDependency for Portuguese, adds changeset entries, and applies typographic apostrophe/quote fixes across multiple UI strings. (28 words)

Changes

Cohort / File(s) Summary
Changesets
/.changeset/curvy-insects-sin.md, /.changeset/long-rocks-rhyme.md, /.changeset/fine-papayas-worry.md, /.changeset/free-meals-sip.md
Added four changeset entries (minor/patch bumps) documenting native locales, Portuguese translations, and typographic punctuation notes.
Expo config & app init
app.config.ts, src/app/_layout.tsx
Enabled expo-localization plugin with ["expo-localization", { supportedLocales: ["en","es","pt"] }], added locales mapping in Expo config, and included pt in i18n resources.
Spellcheck & dev dependency
cspell.json, package.json
Added Portuguese cspell imports/overrides and added devDependency @cspell/dict-pt-br.
Native iOS permission strings
src/i18n/native/es.json, src/i18n/native/pt.json
Added Spanish and Portuguese native iOS usage description JSON files (NSCameraUsageDescription, NSLocationWhenInUseUsageDescription).
Portuguese translations
src/i18n/pt.json
Added comprehensive Portuguese UI translation resource (~576 lines).
Locale-aware date-fns selection
src/components/pay-mode/PaymentSheet.tsx
Replaced binary en/es locale selection with a keyed map including ptBR (mapped to "pt") for date formatting.
Typographic punctuation updates
src/components/.../Status.tsx, src/components/.../PasskeysAbout.tsx, src/components/home/..., src/components/loans/..., src/components/pay-mode/..., src/components/send-funds/..., src/components/shared/Error.tsx, src/i18n/es.json
Replaced ASCII quotes/apostrophes with typographic (curly) quotes/apostrophes across multiple UI strings and updated Spanish translation entries; no logic changes.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant App as App (React)
participant ExpoCfg as Expo config (app.config.ts)
participant I18n as i18n resources (src/i18n/*)
participant iOS as iOS Info.plist / native locales

App->>ExpoCfg: read plugins & locales mapping
ExpoCfg->>iOS: include locales mapping & set CFBundleAllowMixedLocalizations
App->>I18n: request selected locale resources (en / es / pt)
I18n-->>App: return UI translations and native permission strings
App->>iOS: supply native usage descriptions for permission prompts

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • nfmelendez
  • itofarina
  • dieguezguille
  • franm91
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: setup of native locales and addition of Portuguese localization.
Linked Issues check ✅ Passed The pull request successfully implements Portuguese localization with native locale setup as required by issue #856.
Out of Scope Changes check ✅ Passed All changes are scoped to Portuguese localization and native locale setup. Minor typography updates (typographic apostrophes) are related quality improvements.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch i18n
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

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

gemini-code-assist[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

@sentry
Copy link

sentry bot commented Mar 13, 2026

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
602 1 601 1
View the top 2 failed test(s) by shortest run time
test/hooks/panda.test.ts > card operations > capture > with collateral > over capture debit
Stack Traces | 0.121s run time
AssertionError: expected 569 to be 200 // Object.is equality

- Expected
+ Received

- 200
+ 569

 ❯ test/hooks/panda.test.ts:1677:41
local::local
Stack Traces | 159s run time
Assertion is false: false is true

To view more test analytics, go to the Prevent Tests Dashboard

@cruzdanilo cruzdanilo linked an issue Mar 13, 2026 that may be closed by this pull request
coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

sentry[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
src/i18n/pt.json (1)

109-109: ⚠️ Potential issue | 🟡 Minor

Restore full meaning of the DeFi entry-point copy.

Line 109 drops “for funding, swaps, and more,” which narrows the user guidance versus the source key.

💬 Suggested fix
-  "Access decentralized tools for funding, swaps, and more": "Acesse ferramentas descentralizadas",
+  "Access decentralized tools for funding, swaps, and more": "Acesse ferramentas descentralizadas para financiamento, trocas e muito mais",

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: dce66832-17ff-443d-976c-b0b5013f7cba

📥 Commits

Reviewing files that changed from the base of the PR and between dd57942 and 6af218d.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (24)
  • .changeset/curvy-insects-sin.md
  • .changeset/fine-papayas-worry.md
  • .changeset/free-meals-sip.md
  • .changeset/long-rocks-rhyme.md
  • app.config.ts
  • cspell.json
  • package.json
  • src/app/_layout.tsx
  • src/components/add-funds/KYC.tsx
  • src/components/add-funds/Status.tsx
  • src/components/auth/PasskeysAbout.tsx
  • src/components/home/Home.tsx
  • src/components/home/VisaSignatureSheet.tsx
  • src/components/loans/Amount.tsx
  • src/components/loans/LoanActivity.tsx
  • src/components/pay-mode/Empty.tsx
  • src/components/pay-mode/UpcomingPayments.tsx
  • src/components/send-funds/Contact.tsx
  • src/components/send-funds/QR.tsx
  • src/components/shared/Error.tsx
  • src/i18n/es.json
  • src/i18n/native/es.json
  • src/i18n/native/pt.json
  • src/i18n/pt.json

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

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.

app: portuguese l10n

1 participant