feat(i18n): backfill Brazilian Portuguese (pt_BR) translations (AI-generated, needs review)#41659
Conversation
…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>
|
Bito Review Failed - Technical Failure |
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
sadpandajoe
left a comment
There was a problem hiding this comment.
Translation-only .po update under superset/translations.
|
/review |
There was a problem hiding this comment.
Code Review Agent Run #f24d35
Actionable Suggestions - 14
-
superset/translations/pt_BR/LC_MESSAGES/messages.po - 14
- Translation text mismatch · Line 3049-3050
- Wrong translation of file upload · Line 5057-5057
- Inconsistent positioning label translation · Line 8403-8403
- Wrong translation for extension load error · Line 15209-15209
- Pre-existing Portuguese grammatical error · Line 16320-16320
- Wrong translation carry-forward · Line 17465-17465
- Machine-translated fuzzy entry unverified · Line 17497-17503
- Machine-translated fuzzy entry unverified · Line 17615-17624
- Machine-translated fuzzy entry unverified · Line 17761-17770
- Machine-translated fuzzy entry unverified · Line 17792-17796
- Machine-translated fuzzy entry unverified · Line 17810-17814
- Machine-translated fuzzy entry unverified · Line 17861-17865
- Machine-translated fuzzy entry unverified · Line 17884-17888
- Machine-translated fuzzy entry unverified · Line 18088-18092
Additional Suggestions - 9
-
superset/translations/pt_BR/LC_MESSAGES/messages.po - 9
-
Backend translation excluded by fuzzy flag · Line 19665-19677The `#, 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-14788The 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-14905Entry 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-11071The 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-341Add 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-13380The 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-13386The 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-17279The 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
- Wrong alphabetical entry ordering · Line 14189-14200
- Translation missing in machine block · Line 1039-1039
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
| msgid "Cannot delete system themes" | ||
| msgstr "Não foi possível acessar a consulta" |
There was a problem hiding this comment.
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
- Rule Violated: howtos.md:406
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" | |||
There was a problem hiding this comment.
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
- Rule Violated: howtos.md:403
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" | |||
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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." | |||
There was a problem hiding this comment.
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" | |||
There was a problem hiding this comment.
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
| # 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." |
There was a problem hiding this comment.
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
| # 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." |
There was a problem hiding this comment.
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
| # 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" |
There was a problem hiding this comment.
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
| # 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." |
There was a problem hiding this comment.
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
| # 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" |
There was a problem hiding this comment.
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
| # 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" |
There was a problem hiding this comment.
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
| # 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." |
There was a problem hiding this comment.
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
| # 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" |
There was a problem hiding this comment.
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
SUMMARY
Backfills the remaining untranslated entries in the Brazilian Portuguese (
pt_BR) catalog usingscripts/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
#, fuzzywith an attribution comment. The#, fuzzyflag 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#, fuzzyflag to confirm. Format placeholders are preserved (verified programmatically).Tracked by
check_translation_regression.pyasuntranslated → 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_BRsucceeds.#, fuzzyentries and de-fuzz once confirmed.ADDITIONAL INFORMATION