feat(i18n): backfill Slovak (sk) translations (AI-generated, needs review) - #41640
Conversation
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Code Review Agent Run #808eeb
Actionable Suggestions - 8
-
superset/translations/sk/LC_MESSAGES/messages.po - 8
- fuzzy flag silences Slovak translation · Line 2343-2343
- fuzzy flag silences Slovak translation · Line 2349-2349
- fuzzy flag silences Slovak translation · Line 2895-2895
- Source equals translation · Line 8356-8356
- Source equals translation · Line 8686-8686
- Incorrect translation semantically · Line 8703-8703
- Quality: pre-existing wrong translation breaks cluster consistency · Line 11256-11257
- Unreviewed fuzzy translations · Line 15974-15980
Additional Suggestions - 2
-
superset/translations/sk/LC_MESSAGES/messages.po - 2
-
Missing space concatenates words · Line 13791-13792Missing space in concatenated string produces 'príznakGLOBAL' without separation. Compare with line 13804 which correctly reads 'príznakoch funkcií' with a space — the same gap should separate 'príznak' from the feature-flag name here.
-
misleading comment annotation · Line 2144-2146The comment annotation at lines 2144-2145 describes this as "plain-text fallback for quoted string", but the resulting msgstr is a full Slovak translation of the original English text — not a plain-text fallback. The label is misleading and could confuse future reviewers or translators.
-
Filtered by Review Rules
Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.
-
superset/translations/sk/LC_MESSAGES/messages.po - 3
- Process Violation: Unreviewed Machine-Translated Strings Committed · Line 18329-18367
- Missing placeholder breaks Slovak grammar · Line 505-505
- Process Violation: Unreviewed Machine-Translated String Committed · Line 18588-18592
Review Details
-
Files reviewed - 1 · Commit Range:
7d9bf5d..7d9bf5d- superset/translations/sk/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
| #, python-format | ||
| # Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, sr, | ||
| # sr_Latn] | ||
| #, fuzzy, python-format |
There was a problem hiding this comment.
This entry ("Auto refresh paused (set to %s seconds)") carries a #, fuzzy flag, which causes gettext to silently fall back to the English msgid at runtime. Slovak-speaking users will see the untranslated English string instead of the confirmed msgstr "Automatické obnovenie pozastavené (nastavené na %s sekúnd)". Remove the #, fuzzy marker so the translation is active.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
| #, python-format | ||
| # Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, sr, | ||
| # sr_Latn] | ||
| #, fuzzy, python-format |
There was a problem hiding this comment.
This entry ("Auto refresh paused - tab inactive (set to %s seconds)") carries a #, fuzzy flag, causing gettext to fall back to English for Slovak users. The msgstr "Automatické obnovenie pozastavené – karta je neaktívna (nastavené na %s sekúnd)" is a valid translation but remains inactive. Remove the #, fuzzy marker.
Code Review Run #808eeb
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, es, sr, | ||
| # sr_Latn] | ||
| #, fuzzy |
There was a problem hiding this comment.
This entry ("Cancellation not available due to missing abort handler") carries a #, fuzzy flag, hiding the Slovak msgstr from gettext runtime. Slovak users see the raw English string. Remove the #, fuzzy marker so the translation is active.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
| #, fuzzy | ||
| msgid "Liberty (OpenFreeMap)" | ||
| msgstr "" | ||
| msgstr "Liberty (OpenFreeMap)" |
There was a problem hiding this comment.
Source and translation are identical for 'Liberty (OpenFreeMap)'. While brand names may remain in English, this should be intentional rather than defaulting to copy-paste.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
| #, fuzzy | ||
| msgid "MapLibre (open-source)" | ||
| msgstr "" | ||
| msgstr "MapLibre (open-source)" |
There was a problem hiding this comment.
Source and translation are identical for 'MapLibre (open-source)'. This may be intentional for product names but should be verified as intentional localization decision.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
| @@ -8573,8 +8702,11 @@ msgstr "Mapbox" | |||
| msgid "Mapbox (API key required)" | |||
| msgstr "E-mail je povinný" | |||
There was a problem hiding this comment.
Translation 'E-mail je povinný' ('Email is required') is completely unrelated to 'Mapbox (API key required)'. This appears to be a copy-paste error from a different entry's translation.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
| msgid "Revoke API Key" | ||
| msgstr "Kľúč skupiny" |
There was a problem hiding this comment.
The pre-existing entry for "Revoke API Key" (msgstr: "Kľúč skupiny") is clearly mistranslated — it says 'group key', not 'revoke API key'. This creates a visible inconsistency with the adjacent newly added "Revoke this API key" entry whose translation ("Odvolať tento kľúč API") is correct. Both entries belong to the same 'Revoke API' functional cluster and should be translated consistently.
Code Review Run #808eeb
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 "Unable to fetch semantic views. Check the layer configuration." | ||
| msgstr "" | ||
| "Nepodarilo sa načítať sémantické zobrazenia. Skontrolujte konfiguráciu " | ||
| "vrstvy." |
There was a problem hiding this comment.
All 7 entries carry #, fuzzy flags and # Machine-translated via backfill_po.py attribution comments — they are unreviewed machine translations. Per the documented workflow in howtos.md (lines 403–410), these attribution comments and #, fuzzy flags must be removed after human verification before the .po file is committed. The file currently has 879 total fuzzy entries; 105 carry machine-translation attribution. These entries are sourced from non-Slovak reference languages (de, sr, sr_Latn) and should be reviewed by a Slovak speaker before the flags are cleared.
Code Review Run #808eeb
Should Bito avoid suggestions like this for future reviews? (Manage Rules)
- Yes, avoid them
…view) Fills the remaining untranslated entries in the Slovak catalog using scripts/translations/backfill_po.py (Claude, cross-language context). All generated strings are marked `#, fuzzy` with an attribution comment so they are excluded from compiled .mo output until a human reviewer confirms them. Catalog re-normalized to the Babel 2.17 canonical format via `pybabel update` (toolchain pinned in superset/translations/requirements.txt). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7d9bf5d to
de1f43c
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #41640 +/- ##
==========================================
- Coverage 64.55% 64.51% -0.04%
==========================================
Files 2673 2673
Lines 147634 147609 -25
Branches 34090 34078 -12
==========================================
- Hits 95307 95234 -73
- Misses 50595 50643 +48
Partials 1732 1732
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:
|
|
Bito Automatic Review Skipped – PR Already Merged |
SUMMARY
Backfills the 105 remaining untranslated entries in the Slovak (
sk) catalog usingscripts/translations/backfill_po.py, which drafts translations with Claude using every other language's existing translation of the same string as cross-language disambiguation context (perdocs/developer_docs/contributing/howtos.md).All generated strings are marked
#, fuzzywith aMachine-translated via backfill_po.pyattribution comment, The#, fuzzyflag marks each entry as machine-generated and needing native-speaker review. Note on serving: the backend (pybabel compile/flask fab babel-compile) excludes fuzzy entries, so backend strings fall back to English — but the frontend build (po2json --fuzzy) includes them, so these translations do appear in the UI once the frontend is rebuilt. Reviewers should verify each entry and remove the#, fuzzyflag to confirm it. Newly-filled entries preserve their format placeholders.Note: three entries whose English source contains literal double-quotes (e.g.
"Exact match","Cell bars","Sort by metric") were filled via a plain-text fallback prompt — the script's batch JSON contract mis-handles unescaped quotes in the model's response. Those three carry a[plain-text fallback for quoted string]attribution note. (A robustness fix for this is queued on the i18n tooling branch.)Tracked by
check_translation_regression.pyasuntranslated → fuzzy, which is explicitly not a regression. Part of a per-language sweep; follows #41608 (de), #41609 (es), #41612 (lv), #41613 (fi).BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Translation catalogs only — no layout or behavior change. Note: the frontend
po2json --fuzzybuild includes these fuzzy strings, so they render in the UI once the frontend is rebuilt; the backend excludes them (English fallback).TESTING INSTRUCTIONS
pybabel compile -d superset/translations -l sksucceeds (fuzzy entries are skipped, as intended).#, fuzzyentries; correct anymsgstrand remove the#, fuzzyflag + attribution comment to promote them to confirmed translations.ADDITIONAL INFORMATION