Skip to content

Conversation

@leoralph
Copy link

@leoralph leoralph commented Aug 5, 2025

No description provided.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @leoralph, 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's primary objective is to integrate Brazilian Portuguese (pt-BR) as a supported language within the application. This involves adding a large number of new localization files that translate existing UI elements, model attributes, error messages, and mailer content into Portuguese, significantly enhancing the application's internationalization capabilities.

Highlights

  • New Language Support: This pull request introduces a comprehensive set of Brazilian Portuguese (pt-BR) localization files, enabling the application to fully support users who prefer this language.
  • Extensive Translations: Translations have been added for a wide range of application components, including mailers, ActiveRecord models (accounts, addresses, entries, imports, time series, transfers, trends, users), and numerous view-related strings across various features like accounts, categories, imports, settings, and more.
  • Improved User Experience: By providing a complete Brazilian Portuguese interface, the application becomes more accessible and user-friendly for a significant portion of its potential user base.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 or fill out our survey to provide feedback.

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.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds a comprehensive set of Brazilian Portuguese translations, which is a great addition. My review focuses on improving consistency, correcting some minor grammatical issues, and fixing a few potential bugs related to translation key lookups and branding. Addressing these points will ensure a polished and accurate experience for Brazilian users.

invitation_mailer:
invite_email:
accept_button: Aceitar Convite
body: "%{inviter} convidou você para se juntar à família %{family} no Sure!"

Choose a reason for hiding this comment

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

critical

The application name appears to be "Maybe", but "Sure!" is used here. This is inconsistent with other translation files and could be confusing. Please use "Maybe" for consistency.

      body: "%[inviter] convidou você para se juntar à família %[family] no Maybe!"

accept_button: Aceitar Convite
body: "%{inviter} convidou você para se juntar à família %{family} no Sure!"
expiry_notice: Este convite expirará em %{days} dias
greeting: Bem-vindo ao Sure!

Choose a reason for hiding this comment

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

critical

The application name appears to be "Maybe", but "Sure!" is used in the greeting. Please use "Maybe" for consistency across the application.

      greeting: Bem-vindo ao Maybe!

pt-BR:
invitation_mailer:
invite_email:
subject: "%{inviter} convidou você para se juntar à sua família no Sure!"

Choose a reason for hiding this comment

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

critical

The application name appears to be "Maybe", but "Sure!" is used here. This is inconsistent with other translation files and could be confusing for users. Please replace "Sure!" with "Maybe" for brand consistency. This issue is also present in config/locales/views/invitation_mailer/pt-BR.yml.

      subject: "%[inviter] convidou você para se juntar à sua família no Maybe!"

Comment on lines +34 to +36
clear_cache:
cache_cleared: Cache de dados foi limpo. Isso pode levar alguns momentos para ser concluído.
not_authorized: Você não está autorizado a realizar esta ação

Choose a reason for hiding this comment

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

high

The not_authorized key is at the settings.hostings level. However, the call in Settings::HostingsController#ensure_admin is t(".not_authorized") inside a before_action for the clear_cache action. This means I18n will look for the key at settings.hostings.clear_cache.not_authorized. Please move this key under the clear_cache scope to ensure it's found correctly.

      clear_cache:
        cache_cleared: Cache de dados foi limpo. Isso pode levar alguns momentos para ser concluído.
        not_authorized: Você não está autorizado a realizar esta ação

Comment on lines +4 to +7
api_keys_controller:
success: "Sua chave de API foi criada com sucesso"
revoked_successfully: "Chave de API foi revogada com sucesso"
revoke_failed: "Falha ao revogar chave de API"

Choose a reason for hiding this comment

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

high

These translations under api_keys_controller are likely not being used. The corresponding controller Settings::ApiKeysController appears to use hardcoded English strings for flash messages (e.g., flash[:notice] = "Your API key has been created successfully"). For these translations to work, the controller would need to be updated to use t(...) for localization.

profile_label: Conta
rules_label: Regras
security_label: Segurança
self_hosting_label: Auto hospedagem

Choose a reason for hiding this comment

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

medium

For correct Portuguese grammar, "Auto hospedagem" should be hyphenated as "Auto-hospedagem".

      self_hosting_label: Auto-hospedagem

Choose a reason for hiding this comment

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

Self Hosting is a stablished term in Portuguese, I would keep in English

account: Conta de transferência (opcional)
account_prompt: Buscar conta
amount: Valor
holding: Símbolo do ticker

Choose a reason for hiding this comment

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

medium

The phrase "Símbolo do ticker" is a bit redundant, as "ticker" itself is a symbol. Using just "Símbolo" or "Ticker" would be more concise and is common in Brazilian financial contexts.

      holding: Símbolo

de confirmação.
success: Seu perfil foi atualizado.
reset:
success: Sua conta foi resetada. Os dados serão excluídos em segundo plano em algum tempo.

Choose a reason for hiding this comment

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

medium

The phrase "em algum tempo" is a bit vague. Consider using a more specific or common phrase like "em breve" (soon) or "em alguns instantes" (in a few moments).

      success: Sua conta foi resetada. Os dados serão excluídos em segundo plano em breve.

Comment on lines +10 to +11
change: alteração
date: data

Choose a reason for hiding this comment

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

medium

These keys seem to be used for table headers. For consistency with other parts of the UI, they should be capitalized.

      change: Alteração
      date: Data

Comment on lines +14 to +15
valuations: Valor
value: valor

Choose a reason for hiding this comment

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

medium

These keys seem to be used for table headers. For consistency with other parts of the UI, they should be capitalized.

      valuations: Valor
      value: Valor

@jjmata
Copy link
Collaborator

jjmata commented Aug 5, 2025

Hello @leoralph ... let's wait a few days until we are done changing Maybe -> Sure, otherwise strings are a moving target.

Copy link

@joaofrenor joaofrenor left a comment

Choose a reason for hiding this comment

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

Some gemini coments make sense, would be great if you could address them.

@jjmata
Copy link
Collaborator

jjmata commented Oct 26, 2025

Hello @leoralph ... let's wait a few days until we are done changing Maybe -> Sure, otherwise strings are a moving target.

The customizable brand/product name branch has now been merged ...

Can you please update to support using %{product_name} and %{product_brand} interpolations, @leoralph? 🙏

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.

3 participants