feat(i18n): backfill Russian (ru) translations (AI-generated, needs review)#41649
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #41649 +/- ##
==========================================
+ Coverage 64.56% 64.59% +0.03%
==========================================
Files 2673 2684 +11
Lines 147634 148266 +632
Branches 34090 34150 +60
==========================================
+ Hits 95314 95777 +463
- Misses 50591 50744 +153
- Partials 1729 1745 +16
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:
|
There was a problem hiding this comment.
Code Review Agent Run #79cef5
Actionable Suggestions - 4
-
superset/translations/ru/LC_MESSAGES/messages.po - 4
- CWE-20: Do-not-translate comment ignored by backfill script · Line 18212-18218
- CWE-20: Do-not-translate comment ignored by backfill script · Line 18219-18225
- Do-not-translate comment ignored by backfill script · Line 18273-18277
- Do-not-translate comment ignored by backfill script · Line 18366-18371
Additional Suggestions - 11
-
superset/translations/ru/LC_MESSAGES/messages.po - 11
-
Incorrect translation on do-not-translate string · Line 17764-17765The "# Не переводить" comment indicates this string should not be translated, yet the msgstr uses underscores in "сообщение_об_ошибке" — a technical artifact rather than proper preserved text. Compare with Spanish (es): "error_message" is preserved unchanged, while German correctly translates to "Fehlermeldung". Either preserve the English key or use proper Russian without underscores.
-
Incorrect PO comment order · Line 848-850The machine-translated attribution comment is placed before the `#` flags comment. In PO files, translator comments (including machine-translated attribution) should appear after the flags line. All other existing machine-translated entries in this file (e.g. lines 240–241, 335–336) correctly place the attribution after the flags. This ordering is confirmed by `backfill_po.py` line 500's logic that appends attribution to `entry.tcomment` after flags are set.
-
Incorrect PO comment order · Line 1020-1022Same issue as the ECharts entry: the machine-translated attribution comment is placed before the `#` flags comment. In PO files, translator comments should appear after the flags line.
-
Incorrect PO comment order · Line 1026-1028Same issue as the two entries above: the machine-translated attribution comment is placed before the `#` flags comment.
-
Incorrect PO comment order · Line 2116-2118Same issue as the three entries above: the machine-translated attribution comment is placed before the `#` flags comment.
-
Post-commit fuzzy-flag removal required · Line 12151-12155Newly added entries are marked `#, fuzzy`, which is correct per the backfill workflow. However, fuzzy entries are excluded from `build_translation_index.py`'s translation index — they will not be used as context for other languages' backfills until the fuzzy flag is removed post-review. Once this entry is verified, the flag and attribution comment must be stripped before committing (howtos.md Step 4).
-
Post-commit fuzzy-flag removal required · Line 12157-12161Same pattern as the 'Semantic view updated' entry above: fuzzy flag is correct now but must be removed post-review for the translation to be included in the index. See build_translation_index.py `_is_translated` exclusion logic.
-
Post-commit fuzzy-flag removal required · Line 12672-12678Multi-line msgid parsed and translated correctly across all continuation lines. Same post-review cleanup required as other new entries.
-
Post-commit fuzzy-flag removal required · Line 12680-12686Identical pattern and required action as the 'Some groups could not be resolved' entry.
-
Post-commit fuzzy-flag removal required · Line 12688-12694Identical pattern and required action as other new entries. Translation fills multi-line msgstr correctly.
-
Post-commit fuzzy-flag removal required · Line 12826-12837Multi-line msgid and msgstr correctly parsed — all continuation lines filled with translation. Same post-review cleanup required.
-
Filtered by Review Rules
Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.
-
superset/translations/ru/LC_MESSAGES/messages.po - 1
- Unreviewed fuzzy entries in PO diff · Line 14854-14866
Review Details
-
Files reviewed - 1 · Commit Range:
3786d6b..3786d6b- superset/translations/ru/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
…eview) Fills the remaining untranslated entries in the Russian catalog using scripts/translations/backfill_po.py (Claude, cross-language context). All generated strings are marked `#, fuzzy` with an attribution comment for native-speaker review; they preserve their format placeholders. 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>
3786d6b to
cd69964
Compare
There was a problem hiding this comment.
Code Review Agent Run #c5b8fe
Actionable Suggestions - 2
-
superset/translations/ru/LC_MESSAGES/messages.po - 2
- Incorrect translation — API key context · Line 1014-1015
- Wrong msgstr line split for python-format · Line 2317-2319
Additional Suggestions - 3
-
superset/translations/ru/LC_MESSAGES/messages.po - 3
-
CWE-117: Translation of proper noun · Line 8147-8148Remove the machine-translated comment block and the `#, fuzzy` flag above the “Liberty (OpenFreeMap)” entry, and leave the msgid/msgstr pair unchanged so the proper noun remains untranslated.
-
Fuzzy entry skipped at runtime · Line 11001-11005This entry was added by `backfill_po.py` but is tagged `#, fuzzy`. In gettext, fuzzy entries are never compiled into the `.mo` binary catalog used at runtime, so end users see the English `msgid` fallback, not the Russian `msgstr`. A translator must review and remove the flag before the translation activates. Three other entries in this diff (lines 11203-11213, 11388-11392, 11427-11431) share the same pattern. Consider annotating the PR or commit message with a follow-up action to remove all `#, fuzzy` flags after human review.
-
Fuzzy entry skipped at runtime · Line 11427-11431This entry was added by `backfill_po.py` and is tagged `#, fuzzy`, so it is skipped by `msgfmt` and invisible to end users at runtime. The Russian text 'Коэффициент масштабирования, применяемый к ширинам линий на основе метрик' is a plausible translation. Remove the fuzzy flag after human review to activate it.
-
Filtered by Review Rules
Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.
-
superset/translations/ru/LC_MESSAGES/messages.po - 4
- PO entry comment misplaced after msgid · Line 18311-18315
- Missing python-format flag · Line 240-240
- Missing python-format flag · Line 331-331
- Missing python-format flag on 3 entries · Line 491-507
Review Details
-
Files reviewed - 1 · Commit Range:
cd69964..cd69964- superset/translations/ru/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
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
✅ Deploy Preview for superset-docs-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
sadpandajoe
left a comment
There was a problem hiding this comment.
Translation-only .po update under superset/translations.
Code Review Agent Run #4c9e14Actionable Suggestions - 0Review Details
Bito Usage GuideCommands Type the following command in the pull request comment and save the comment.
Refer to the documentation for additional commands. Configuration This repository uses Documentation & Help |
|
Reverted all the do-not-translate tokens the bots flagged here ( Going forward, #41651 turns this into a real standard so the backfill skips them automatically. The bots actually caught a real one here :) |
SUMMARY
Backfills the remaining untranslated entries in the Russian (
ru) 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: 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. Newly-filled entries preserve their format placeholders.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. The strings render in the UI once the frontend/backend are rebuilt.
TESTING INSTRUCTIONS
pybabel compile --use-fuzzy -d superset/translations -l rusucceeds.#, fuzzyentries; correct anymsgstrand remove the#, fuzzyflag + attribution comment to promote them to confirmed translations.ADDITIONAL INFORMATION