Skip to content

feat(i18n): backfill Catalan (ca) translations (AI-generated, needs review)#41657

Merged
rusackas merged 1 commit into
masterfrom
feat/i18n-ca-translations
Jul 2, 2026
Merged

feat(i18n): backfill Catalan (ca) translations (AI-generated, needs review)#41657
rusackas merged 1 commit into
masterfrom
feat/i18n-ca-translations

Conversation

@rusackas

@rusackas rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member

SUMMARY

Backfills the remaining untranslated entries in the Catalan (ca) catalog using scripts/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 #, fuzzy with an 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. Format placeholders are preserved (verified programmatically).

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. Strings render once the frontend/backend are rebuilt.

TESTING INSTRUCTIONS

  • pybabel compile --use-fuzzy -d superset/translations -l ca succeeds.
  • Catalan native speakers: review the #, fuzzy entries and de-fuzz once confirmed.

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

…eview)

Fills the remaining untranslated entries in the Catalan 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-code-review

bito-code-review Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #e2af21

Actionable Suggestions - 0
Additional Suggestions - 3
  • superset/translations/ca/LC_MESSAGES/messages.po - 3
    • Incorrect translation for API key · Line 1038-1039
      The msgstr 'El nom del rol és obligatori' (Role name is required) is incorrectly used for 'API key name is required'. This appears to be a pre-existing copy-paste error from the 'Role name is required' entry at line 11780. Catalan users will see 'El nom del rol és obligatori' when the English text says 'API key name is required', causing confusion.
    • Translation fuzzy flag review needed · Line 847-851
      All newly added Catalan translations are marked with #, fuzzy flag indicating machine-translation without human review. While the translations appear semantically accurate (e.g., 'API key revoked successfully' → 'La clau API s'ha revocat correctament'), the fuzzy flag should be removed after a Catalan-speaking reviewer verifies each entry.
    • Fuzzy entries need human review before use · Line 9082-9096
      The backfill script intentionally marks AI-generated entries as `#, fuzzy` so they are excluded from runtime translation until reviewed (per `howtos.md` lines 403-408). All 5 new fuzzy entries added in this diff need human review before the flag is removed — particularly the longer multi-line strings where placeholder alignment and context preservation are harder to verify.
Review Details
  • Files reviewed - 1 · Commit Range: 7ef9ab1..7ef9ab1
    • superset/translations/ca/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

@dosubot dosubot Bot added the i18n:general Related to translations label Jul 2, 2026
@github-actions github-actions Bot added the i18n Namespace | Anything related to localization label Jul 2, 2026
@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.62%. Comparing base (748060d) to head (7ef9ab1).
⚠️ Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #41657      +/-   ##
==========================================
- 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     
Flag Coverage Δ
hive 39.10% <ø> (ø)
mysql 57.83% <ø> (ø)
postgres 57.89% <ø> (-0.01%) ⬇️
presto 40.64% <ø> (ø)
python 59.30% <ø> (-0.01%) ⬇️
sqlite 57.47% <ø> (ø)
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.

Comment thread superset/translations/ca/LC_MESSAGES/messages.po
@bito-code-review

Copy link
Copy Markdown
Contributor

The flagged issue is correct. The Catalan translation "Aquest és un missatge d'error personalitzat per a a" contains a duplicated "a" at the end, which is grammatically incorrect and unprofessional. To resolve this, you should quote the identifier or rephrase the sentence to avoid the repetition. For example, you could change the translation to: msgstr "Aquest és un missatge d'error personalitzat per a \"a\"".

I have checked the PR comments, and there are no other comments to address. Would you like me to implement this fix for you?

superset/translations/ca/LC_MESSAGES/messages.po

msgid "This is custom error message for a"
-msgstr "Aquest és un missatge d'error personalitzat per a a"
+msgstr "Aquest és un missatge d'error personalitzat per a \"a\""

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

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

Labels

i18n:general Related to translations i18n Namespace | Anything related to localization size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants