Skip to content

feat(i18n): backfill Slovak (sk) translations (AI-generated, needs review) - #41640

Merged
sadpandajoe merged 1 commit into
masterfrom
feat/i18n-sk-translations
Jul 2, 2026
Merged

feat(i18n): backfill Slovak (sk) translations (AI-generated, needs review)#41640
sadpandajoe merged 1 commit into
masterfrom
feat/i18n-sk-translations

Conversation

@rusackas

@rusackas rusackas commented Jul 1, 2026

Copy link
Copy Markdown
Member

SUMMARY

Backfills the 105 remaining untranslated entries in the Slovak (sk) catalog using scripts/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 (per docs/developer_docs/contributing/howtos.md).

All generated strings are marked #, fuzzy with a Machine-translated via backfill_po.py attribution comment, The #, fuzzy flag 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 #, fuzzy flag 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.py as untranslated → 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 --fuzzy build 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 sk succeeds (fuzzy entries are skipped, as intended).
  • Slovak native speakers: review the #, fuzzy entries; correct any msgstr and remove the #, fuzzy flag + attribution comment to promote them to confirmed translations.

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

@dosubot dosubot Bot added the i18n:slovak label Jul 1, 2026
@github-actions github-actions Bot added the i18n Namespace | Anything related to localization label Jul 1, 2026
@netlify

netlify Bot commented Jul 1, 2026

Copy link
Copy Markdown

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit de1f43c
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a459fd6013d780008de19fb
😎 Deploy Preview https://deploy-preview-41640--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@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 #808eeb

Actionable Suggestions - 8
Additional Suggestions - 2
  • superset/translations/sk/LC_MESSAGES/messages.po - 2
    • Missing space concatenates words · Line 13791-13792
      Missing 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-2146
      The 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

AI Code Review powered by Bito Logo

#, python-format
# Machine-translated via backfill_po.py (claude-sonnet-4-6) [refs: de, sr,
# sr_Latn]
#, 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.

fuzzy flag silences Slovak translation

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

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.

fuzzy flag silences Slovak translation

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

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.

fuzzy flag silences Slovak translation

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)"

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.

Source equals translation

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)"

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.

Source equals translation

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ý"

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.

Incorrect translation semantically

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

Comment on lines 11256 to 11257
msgid "Revoke API Key"
msgstr "Kľúč skupiny"

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.

Quality: pre-existing wrong translation breaks cluster consistency

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

Comment on lines +15974 to +15980
# 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."

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.

Unreviewed fuzzy translations

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>
@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 64.51%. Comparing base (e58ce1c) to head (de1f43c).
⚠️ Report is 2 commits behind head on master.

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              
Flag Coverage Δ
hive 39.06% <ø> (ø)
mysql 57.68% <ø> (ø)
postgres 57.74% <ø> (ø)
presto 40.61% <ø> (ø)
python 59.15% <ø> (ø)
sqlite 57.33% <ø> (ø)
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 merged commit 706ff94 into master Jul 2, 2026
61 checks passed
@sadpandajoe
sadpandajoe deleted the feat/i18n-sk-translations branch July 2, 2026 00:42
@bito-code-review

Copy link
Copy Markdown
Contributor

Bito Automatic Review Skipped – PR Already Merged

Bito scheduled an automatic review for this pull request, but the review was skipped because this PR was merged before the review could be run.
No action is needed if you didn't intend to review it. To get a review, you can type /review in a comment and save it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

i18n:slovak i18n Namespace | Anything related to localization preset-io size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants