Skip to content

feat(i18n): backfill Brazilian Portuguese (pt_BR) translations (AI-generated, needs review)#41659

Merged
rusackas merged 1 commit into
masterfrom
feat/i18n-pt_BR-translations
Jul 2, 2026
Merged

feat(i18n): backfill Brazilian Portuguese (pt_BR) translations (AI-generated, needs review)#41659
rusackas merged 1 commit into
masterfrom
feat/i18n-pt_BR-translations

Conversation

@rusackas

@rusackas rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member

SUMMARY

Backfills the remaining untranslated entries in the Brazilian Portuguese (pt_BR) catalog using scripts/translations/backfill_po.py (Claude, cross-language context), skipping do-not-translate tokens (icon names, enum values, SQL keywords, API field names, placeholders — see #41651).

All generated strings are marked #, fuzzy with an attribution comment. The #, fuzzy flag marks each entry as machine-generated and needing native-speaker review. Note on serving: both the frontend (po2json --fuzzy) and backend (pybabel compile --use-fuzzy, see #41648) builds include fuzzy entries, so these translations render in the UI once built — reviewers should verify each and remove the #, fuzzy flag to confirm. Format placeholders are preserved (verified programmatically).

Tracked by check_translation_regression.py as untranslated → fuzzy, which is explicitly not a regression. Part of a per-language sweep.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Translation catalog only — no layout or behavior change. Strings render once the frontend/backend are rebuilt.

TESTING INSTRUCTIONS

  • pybabel compile --use-fuzzy -d superset/translations -l pt_BR succeeds.
  • Brazilian Portuguese native speakers: review the #, fuzzy entries and de-fuzz once confirmed.

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
  • Introduces new feature or API
  • Removes existing feature or API

…nerated, needs review)

Fills the remaining untranslated entries in the Brazilian Portuguese catalog using
scripts/translations/backfill_po.py (Claude, cross-language context), skipping
do-not-translate tokens. All generated strings are marked `#, fuzzy` with an
attribution comment for native-speaker review; they preserve format
placeholders. Both the frontend (`po2json --fuzzy`) and backend builds serve
fuzzy entries, so reviewers should verify and de-fuzz to confirm.

Catalog re-normalized to the Babel 2.17 canonical format via `pybabel update`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rusackas rusackas requested a review from sfirke as a code owner July 2, 2026 02:55
@rusackas rusackas requested a review from michael-s-molina July 2, 2026 02:55
@github-actions github-actions Bot added i18n Namespace | Anything related to localization i18n:brazilian labels Jul 2, 2026
@bito-code-review

bito-code-review Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Bito Review Failed - Technical Failure

Bito encountered technical difficulties while cleaning up code feedback. To retry, type '/review' in a comment and save. If the issue persists, contact support@bito.ai.

@dosubot dosubot Bot added the i18n:brazillian Translation related to Brazilian label Jul 2, 2026
@codecov

codecov Bot commented Jul 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.62%. Comparing base (748060d) to head (61553cd).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #41659      +/-   ##
==========================================
- Coverage   64.63%   64.62%   -0.01%     
==========================================
  Files        2674     2674              
  Lines      147711   147711              
  Branches    34098    34098              
==========================================
- Hits        95466    95459       -7     
- Misses      50509    50513       +4     
- Partials     1736     1739       +3     
Flag Coverage Δ
hive 39.10% <ø> (ø)
mysql 57.83% <ø> (ø)
postgres 57.89% <ø> (-0.01%) ⬇️
presto 40.64% <ø> (ø)
python 59.30% <ø> (-0.01%) ⬇️
sqlite 57.47% <ø> (ø)
unit 100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sadpandajoe sadpandajoe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Translation-only .po update under superset/translations.

@rusackas

rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

/review

@bito-code-review bito-code-review Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review Agent Run #f24d35

Actionable Suggestions - 14
Additional Suggestions - 9
  • superset/translations/pt_BR/LC_MESSAGES/messages.po - 9
    • Backend translation excluded by fuzzy flag · Line 19665-19677
      The `#, fuzzy` flag means this entry is excluded from the backend `.mo` binary compiled by `msgfmt` (see `check_translation_regression.py` line 126). Users running this dashboard will see the English error text from `form_validator.py` even though the translation exists in the `.po` file.
    • Wrong translation for plural noun · Line 14788-14788
      The pre-existing `#, fuzzy` entry for msgid "Tasks" (line 14787) has msgstr "marca", which is the translation for "Tag" — as seen identically on lines 14696 (Tag → marca) and 14754 (Task → marca). This wrong translation will display "Tag" when users see "Tasks" in the UI. Correct it to "Tarefas".
    • Unreviewed machine translation · Line 14897-14905
      Entry at line ~14900 uses #, fuzzy flag indicating unreviewed machine translation. Verify translation accuracy and remove fuzzy flag after human review to prevent potentially incorrect translations from being used in production.
    • Wrong pre-existing msgstr for Permissions · Line 11070-11071
      The pre-existing translation for `msgid "Permissions"` reads "Versão" ("Version"), which is semantically incorrect — it should be "Permissões" ("Permissions") to match the adjacent sibling entry "Permissions successfully synced" which correctly uses "Permissões". Remove the `#, fuzzy` flag once corrected.
    • Inconsistent machine-translation attribution · Line 339-341
      Add the `# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, es, sr, sr_Latn]` attribution comment and the `#, fuzzy, python-format` flag back to the `%s Selected (Virtual)` entry to match other machine-translated entries and prevent `pybabel update` from de-fuzzing it.
    • Adjacent entry not backfilled within changed range · Line 13538-13539
      `Set System Default Theme` (line 13542) remains with a stale placeholder translation ("Data/hora padrão") and no machine-translation attribution, while its sibling `Set System Dark Theme` (line 13538) was just backfilled. This creates an inconsistency within the same theme-setting cluster — reviewers may assume the uncommented entry was manually reviewed when it was not.
    • Inconsistent capitalization in translation · Line 13380-13380
      The translation "Visão Semântica" uses title case, which is inconsistent with the surrounding translations for "Semantic Layer" / "Semantic layer" → "Camada de anotação" and "Camada semântica" (lines 13373-13390). Brazilian Portuguese conventions lowercase article nouns in compound terms. Align the capitalization to "Visão semântica" for uniformity across the semantic-layer cluster.
    • Inconsistent capitalization in translation · Line 13386-13386
      The translation "Visões Semânticas" uses title case, inconsistent with the adjacent "Visão Semântica" → "Visão semântica" fix and the surrounding lowercase style of the semantic-layer cluster. Apply the same lowercase treatment to maintain intra-cluster consistency.
    • Stale empty msgstr in entry · Line 17270-17279
      The entry at lines 17273-17279 has a stale empty `msgstr ""` above the new machine-translated block. In GNU gettext the last msgstr wins, but the stale empty line should be removed for cleanliness and to prevent confusion during future merges.
Filtered by Review Rules

Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.

  • superset/translations/pt_BR/LC_MESSAGES/messages.po - 2
Review Details
  • Files reviewed - 1 · Commit Range: 61553cd..61553cd
    • superset/translations/pt_BR/LC_MESSAGES/messages.po
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

Comment on lines 3049 to 3050
msgid "Cannot delete system themes"
msgstr "Não foi possível acessar a consulta"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Translation text mismatch

Translation for 'Cannot delete system themes' (line 3049) is wrong — msgstr at line 3050 reads 'Não foi possível acessar a consulta', which is the correct translation for 'Cannot access the query' (line 3041). This entry appears to have been corrupted by a stray overwrite from the neighboring entry.

Citations

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

@@ -4793,15 +5056,20 @@ msgstr "Configurações do banco de dados atualizadas"
msgid "Database type does not support file uploads."
msgstr "O banco de dados não é compatível com subconsultas"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wrong translation of file upload

The msgstr at line 5057 is a pre-existing incorrect translation of msgid "Database type does not support file uploads.". It reads 'O banco de dados não é compatível com subconsultas' (subqueries), but the source clearly refers to file uploads. German confirms: 'Der Datenbanktyp unterstützt keine Datei-Uploads.' This wrong translation will display misleading text to pt_BR users when this error condition is triggered. The # Machine-translated via backfill_po.py (claude-sonnet-4-6) [no refs] tag on lines 5059–5062 is a separate, correctly machine-generated block and is not affected.

Citations

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

@@ -7889,8 +8397,11 @@ msgstr "Superior esquerdo"
msgid "Inside right"
msgstr "Superior direito"

# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: cs, de, ja,
# lv, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy
msgid "Inside top"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Inconsistent positioning label translation

The translation "Dentro no topo" breaks the file's established naming convention. All other "Inside *" entries use a position-first format: "Superior direito" (Inside right), "Superior esquerdo" (Inside left), "Inferior esquerda" (Inside bottom left), "Inferior direita" (Inside bottom right), "inferior" (Inside bottom). "Inside top" should follow the same pattern and translate to "Superior" — matching how "right"→"Superior direito" and "left"→"Superior esquerdo" both use "Superior". The machine translation added "Dentro no topo" (literal "inside on the top"), which is inconsistent with the established convention and could cause confusion in the UI.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

msgid "The exponent to compute all sizes from. \"EXP\" only"
msgstr ""
msgstr "O expoente a partir do qual calcular todos os tamanhos. Somente \"EXP\""

#, fuzzy, python-format

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wrong translation for extension load error

Please replace the existing msgstr for the msgid "The extension %(id)s could not be loaded." (currently "URI de dados não são permitidos.") with "A extensão %(id)s não pôde ser carregada.".

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

@@ -15234,6 +16319,9 @@ msgstr "Essa coluna pode ser incompatível com o conjunto de dados atual"
msgid "This column must contain date/time information."
msgstr "Isso a coluna deve conter informações de data/hora."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pre-existing Portuguese grammatical error

Line 16320 contains a pre-existing grammatical error in an already-translated string: "Isso a coluna" is ungrammatical in Portuguese — "isso" (that) cannot qualify a feminine noun directly. Should be "Esta coluna" (this column). This is not introduced by this diff, but is confirmed present in the file and should be corrected alongside these backfill additions.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

@@ -16237,14 +17465,22 @@ msgstr "Valor desconhecido"
msgid "Unpin"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wrong translation carry-forward

The translation carry-forward "em execução" (= "running") does not mean "Unpin". The new machine-translated sibling entries at lines 17471 and 17477 correctly use "Desafixar". Line 17466 should match those siblings.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17497 to +17503
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: cs, de, ja,
# lv, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy
msgid "Unsupported file type. Please use CSV, Excel, or Columnar files."
msgstr ""
"Tipo de arquivo não suportado. Por favor, use arquivos CSV, Excel ou "
"colunares."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before. Leaving fuzzy entries in the final commit bypasses that gate.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17615 to +17624
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: cs, de, ja,
# lv, ro, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy
msgid ""
"Use Handlebars syntax to create custom tooltips. Available variables are "
"based on your tooltip contents selection above."
msgstr ""
"Use a sintaxe Handlebars para criar dicas de ferramentas personalizadas. "
"As variáveis disponíveis são baseadas na seleção de conteúdo de dicas de "
"ferramentas acima."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17761 to +17770
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: ar, ca, cs,
# de, es, fa, fr, ja, lv, mi, nl, pl, ro, ru, sk, sl, sr, sr_Latn, tr, uk, zh,
# zh_TW]
#, fuzzy
msgid ""
"Uses Gaussian Kernel Density Estimation to visualize spatial distribution"
" of data"
msgstr ""
"Usa a Estimativa de Densidade de Kernel Gaussiano para visualizar a "
"distribuição espacial dos dados"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17792 to +17796
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, sr,
# sr_Latn]
#, fuzzy
msgid "Uses the first 25 values if the dimension has more."
msgstr ""
msgstr "Usa os primeiros 25 valores se a dimensão tiver mais."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17810 to +17814
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: ca, cs, de,
# es, fr, ja, lv, mi, ro, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy, python-format
msgid "Validating connectivity for %s"
msgstr ""
msgstr "Validando conectividade para %s"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17861 to +17865
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: ca, cs, de,
# es, fr, ja, lv, mi, ro, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy
msgid "Value less than"
msgstr ""
msgstr "Valor menor que"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +17884 to +17888
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: cs, de, fr,
# ja, lv, ro, ru, sk, sr, sr_Latn, tr, uk]
#, fuzzy
msgid "Values less than this percentage will be grouped into the Other category."
msgstr ""
msgstr "Valores menores que esta porcentagem serão agrupados na categoria Outro."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

Comment on lines +18088 to +18092
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, sr,
# sr_Latn]
#, fuzzy
msgid "Waiting for first refresh"
msgstr ""
msgstr "Aguardando a primeira atualização"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Machine-translated fuzzy entry unverified

This entry is marked #, fuzzy and was machine-generated by backfill_po.py but is being committed without the required human-review step defined in the project's translation workflow. Per howtos.md lines 406–408, the # Machine-translated via backfill_po.py comment and #, fuzzy flag must be removed only after verifying the translation is correct — not before.

Code Review Run #f24d35


Should Bito avoid suggestions like this for future reviews? (Manage Rules)

  • Yes, avoid them

@rusackas rusackas merged commit 358493a into master Jul 2, 2026
63 checks passed
@rusackas rusackas deleted the feat/i18n-pt_BR-translations branch July 2, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i18n:brazilian i18n:brazillian Translation related to Brazilian i18n Namespace | Anything related to localization size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants