Skip to content

feat(i18n): backfill Russian (ru) translations (AI-generated, needs review)#41649

Merged
rusackas merged 2 commits into
masterfrom
feat/i18n-ru-translations
Jul 2, 2026
Merged

feat(i18n): backfill Russian (ru) translations (AI-generated, needs review)#41649
rusackas merged 2 commits into
masterfrom
feat/i18n-ru-translations

Conversation

@rusackas

@rusackas rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member

SUMMARY

Backfills the remaining untranslated entries in the Russian (ru) 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: 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. Newly-filled entries preserve their format placeholders.

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. The strings render in the UI once the frontend/backend are rebuilt.

TESTING INSTRUCTIONS

  • pybabel compile --use-fuzzy -d superset/translations -l ru succeeds.
  • Russian 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:russian Translation related to Russian language label Jul 2, 2026
@github-actions github-actions Bot added the i18n Namespace | Anything related to localization label Jul 2, 2026
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
@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.59%. Comparing base (8be255d) to head (818554d).
⚠️ Report is 27 commits behind head on master.

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     
Flag Coverage Δ
hive 39.23% <ø> (+0.16%) ⬆️
mysql 57.83% <ø> (+0.15%) ⬆️
postgres 57.89% <ø> (+0.14%) ⬆️
presto 40.76% <ø> (+0.15%) ⬆️
python 59.28% <ø> (+0.13%) ⬆️
sqlite 57.47% <ø> (+0.14%) ⬆️
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.

@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 #79cef5

Actionable Suggestions - 4
  • superset/translations/ru/LC_MESSAGES/messages.po - 4
Additional Suggestions - 11
  • superset/translations/ru/LC_MESSAGES/messages.po - 11
    • Incorrect translation on do-not-translate string · Line 17764-17765
      The "# Не переводить" 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-850
      The 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-1022
      Same 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-1028
      Same issue as the two entries above: the machine-translated attribution comment is placed before the `#` flags comment.
    • Incorrect PO comment order · Line 2116-2118
      Same 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-12155
      Newly 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-12161
      Same 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-12678
      Multi-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-12686
      Identical pattern and required action as the 'Some groups could not be resolved' entry.
    • Post-commit fuzzy-flag removal required · Line 12688-12694
      Identical pattern and required action as other new entries. Translation fills multi-line msgstr correctly.
    • Post-commit fuzzy-flag removal required · Line 12826-12837
      Multi-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
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

AI Code Review powered by Bito Logo

Comment thread superset/translations/ru/LC_MESSAGES/messages.po
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po
Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
…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>

@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 #c5b8fe

Actionable Suggestions - 2
  • superset/translations/ru/LC_MESSAGES/messages.po - 2
Additional Suggestions - 3
  • superset/translations/ru/LC_MESSAGES/messages.po - 3
    • CWE-117: Translation of proper noun · Line 8147-8148
      Remove 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-11005
      This 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-11431
      This 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.

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

AI Code Review powered by Bito Logo

Comment thread superset/translations/ru/LC_MESSAGES/messages.po Outdated
Comment thread superset/translations/ru/LC_MESSAGES/messages.po
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@netlify

netlify Bot commented Jul 2, 2026

Copy link
Copy Markdown

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 818554d
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a469bc56feeb300089be3f6
😎 Deploy Preview https://deploy-preview-41649--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.

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

@bito-code-review

bito-code-review Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #4c9e14

Actionable Suggestions - 0
Review Details
  • Files reviewed - 1 · Commit Range: cd69964..818554d
    • 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

AI Code Review powered by Bito Logo

@rusackas

rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member Author

Reverted all the do-not-translate tokens the bots flagged here (bolt, error_message, step-after/step-before, the sample IDs...) back to untranslated, so they fall back to the source literal instead of the wrong machine translation. The # Не переводить markers stay put.

Going forward, #41651 turns this into a real standard so the backfill skips them automatically. The bots actually caught a real one here :)

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

Labels

i18n:russian Translation related to Russian language i18n Namespace | Anything related to localization size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants