Skip to content

fix(i18n): backfill missing translation keys across 12 locales#133

Open
EtienneLescot wants to merge 1 commit into
mainfrom
fix/129-i18n-gaps
Open

fix(i18n): backfill missing translation keys across 12 locales#133
EtienneLescot wants to merge 1 commit into
mainfrom
fix/129-i18n-gaps

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Fixes #129. npm run i18n:check now passes.

Backfilled ~50 missing keys and removed a handful of stale ones across dialogs.json, editor.json, launch.json, settings.json, shortcuts.json, and timeline.json for ar, es, fr, it, ja-JP, ko-KR, pt-BR, ru, tr, vi, zh-CN, and zh-TW -- most of it pre-existing debt from before the 1.7.0 RC window, not something this cherry-pick window introduced.

Renamed ar/tr/vi/zh-CN/zh-TW's leftover annotation.textAnimation / annotation.selectAnimation into the proper top-level textAnimation.* namespace that en already uses, and pt-BR's links.* into support.* to match the key en/code actually looks up.

Translations were produced by an LLM pass, not reviewed by native speakers per language. Flagging that explicitly per the linked issue -- worth a follow-up pass by someone with the language context before shipping if precision matters for a given locale, especially for the longer descriptive strings (cursor.clipToBoundsDescription, zoom.focusMode.lockedDisclaimer, the emptyState/dropErrors copy in editor.json). tsc --noEmit, biome check ., npm run test (427/427), and npm run i18n:check all pass.

Summary

Related issue

Fixes #

Type of change

  • Bug fix
  • Feature
  • Enhancement
  • Documentation
  • Refactor / maintenance
  • Performance
  • Security

Release impact

  • Patch
  • Minor
  • Major / breaking change
  • No release note needed

Desktop impact

  • Windows
  • macOS
  • Linux
  • Installer / packaging
  • Not platform-specific

Screenshots / video

Testing

Summary by CodeRabbit

  • Localization
    • Expanded Arabic, Chinese, English? No—updated Arabic, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Turkish, Vietnamese, and Chinese translations across key workflows.
    • Added clearer unsaved-change actions for creating projects and importing videos.
    • Improved Studio, source-selection, loading, permission, and error messages.
    • Added guidance for zoom focus, cursor boundaries, text animations, webcam mirroring, support actions, and project management.
    • Added localized controls for automatic zoom suggestions and focus behavior across timeline actions.

Fixes #129. npm run i18n:check now passes.

Backfilled ~50 missing keys and removed a handful of stale ones across
dialogs.json, editor.json, launch.json, settings.json, shortcuts.json,
and timeline.json for ar, es, fr, it, ja-JP, ko-KR, pt-BR, ru, tr, vi,
zh-CN, and zh-TW -- most of it pre-existing debt from before the 1.7.0
RC window, not something this cherry-pick window introduced.

Renamed ar/tr/vi/zh-CN/zh-TW's leftover annotation.textAnimation /
annotation.selectAnimation into the proper top-level textAnimation.*
namespace that en already uses, and pt-BR's links.* into support.* to
match the key en/code actually looks up.

Translations were produced by an LLM pass, not reviewed by native
speakers per language. Flagging that explicitly per the linked issue --
worth a follow-up pass by someone with the language context before
shipping if precision matters for a given locale, especially for the
longer descriptive strings (cursor.clipToBoundsDescription,
zoom.focusMode.lockedDisclaimer, the emptyState/dropErrors copy in
editor.json). tsc --noEmit, biome check ., npm run test (427/427), and
npm run i18n:check all pass.
@coderabbitai

coderabbitai Bot commented Jul 19, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This change synchronizes non-English locale files with new dialog, editor, launch, settings, shortcut, and timeline translation keys. It also restructures text-animation settings translations and adds localized empty, error, tooltip, and toggle-state messages.

Changes

Locale synchronization

Layer / File(s) Summary
Dialog and editor locale coverage
src/i18n/locales/*/dialogs.json, src/i18n/locales/{it,pt-BR}/editor.json
Unsaved-change actions and editor loading, empty-state, recording, and project-drop messages were added.
Launch and source selector messages
src/i18n/locales/*/launch.json
Studio tooltips and source-selector empty and load-failure messages were added, with additional tray tooltip text in pt-BR.
Settings locale structures
src/i18n/locales/*/settings.json
Focus-mode, cursor, project, support, preview, layout, text-animation, and timeline translations were expanded or reshaped.
Timeline and shortcut controls
src/i18n/locales/*/timeline.json, src/i18n/locales/pt-BR/shortcuts.json
Auto-zoom, auto-focus, app-opening, and registration-failure labels were added.

Estimated code review effort: 2 (Simple) | ~15 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title concisely matches the main change: backfilling missing i18n keys across locales.
Description check ✅ Passed It includes the required summary, issue reference, and testing details, with only optional template sections left partially filled.
Linked Issues check ✅ Passed The PR backfills the missing locale keys, removes stale ones, and renames the affected namespaces called out in #129, restoring i18n sync.
Out of Scope Changes check ✅ Passed The changes stay within locale JSON sync and namespace renames; no unrelated code paths or features were introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/129-i18n-gaps

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/i18n/locales/ar/settings.json (1)

138-139: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Restore annotation.textAnimation. src/components/video-editor/AnnotationSettingsPanel.tsx still calls t("annotation.textAnimation"), but src/i18n/locales/ar/settings.json and src/i18n/locales/tr/settings.json only define textAnimation.title, so this label falls back in the annotation panel.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/i18n/locales/ar/settings.json` around lines 138 - 139, Restore the
missing annotation.textAnimation label in the translation structures used by
AnnotationSettingsPanel.tsx, matching the existing locale terminology. Update
src/i18n/locales/ar/settings.json at lines 138-139 and 184-194, and
src/i18n/locales/tr/settings.json at lines 138-139 and 184-194; add the direct
textAnimation translation where the annotation settings keys are defined while
preserving the existing textAnimation.title entries.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@src/i18n/locales/ar/settings.json`:
- Around line 138-139: Restore the missing annotation.textAnimation label in the
translation structures used by AnnotationSettingsPanel.tsx, matching the
existing locale terminology. Update src/i18n/locales/ar/settings.json at lines
138-139 and 184-194, and src/i18n/locales/tr/settings.json at lines 138-139 and
184-194; add the direct textAnimation translation where the annotation settings
keys are defined while preserving the existing textAnimation.title entries.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e2ab64be-d773-4ee1-bccc-fbc09ead62e7

📥 Commits

Reviewing files that changed from the base of the PR and between 8b4a118 and d53c447.

📒 Files selected for processing (51)
  • src/i18n/locales/ar/dialogs.json
  • src/i18n/locales/ar/launch.json
  • src/i18n/locales/ar/settings.json
  • src/i18n/locales/ar/timeline.json
  • src/i18n/locales/es/dialogs.json
  • src/i18n/locales/es/launch.json
  • src/i18n/locales/es/settings.json
  • src/i18n/locales/es/timeline.json
  • src/i18n/locales/fr/dialogs.json
  • src/i18n/locales/fr/launch.json
  • src/i18n/locales/fr/settings.json
  • src/i18n/locales/fr/timeline.json
  • src/i18n/locales/it/dialogs.json
  • src/i18n/locales/it/editor.json
  • src/i18n/locales/it/launch.json
  • src/i18n/locales/it/settings.json
  • src/i18n/locales/it/timeline.json
  • src/i18n/locales/ja-JP/dialogs.json
  • src/i18n/locales/ja-JP/launch.json
  • src/i18n/locales/ja-JP/settings.json
  • src/i18n/locales/ja-JP/timeline.json
  • src/i18n/locales/ko-KR/dialogs.json
  • src/i18n/locales/ko-KR/launch.json
  • src/i18n/locales/ko-KR/settings.json
  • src/i18n/locales/ko-KR/timeline.json
  • src/i18n/locales/pt-BR/dialogs.json
  • src/i18n/locales/pt-BR/editor.json
  • src/i18n/locales/pt-BR/launch.json
  • src/i18n/locales/pt-BR/settings.json
  • src/i18n/locales/pt-BR/shortcuts.json
  • src/i18n/locales/pt-BR/timeline.json
  • src/i18n/locales/ru/dialogs.json
  • src/i18n/locales/ru/launch.json
  • src/i18n/locales/ru/settings.json
  • src/i18n/locales/ru/timeline.json
  • src/i18n/locales/tr/dialogs.json
  • src/i18n/locales/tr/launch.json
  • src/i18n/locales/tr/settings.json
  • src/i18n/locales/tr/timeline.json
  • src/i18n/locales/vi/dialogs.json
  • src/i18n/locales/vi/launch.json
  • src/i18n/locales/vi/settings.json
  • src/i18n/locales/vi/timeline.json
  • src/i18n/locales/zh-CN/dialogs.json
  • src/i18n/locales/zh-CN/launch.json
  • src/i18n/locales/zh-CN/settings.json
  • src/i18n/locales/zh-CN/timeline.json
  • src/i18n/locales/zh-TW/dialogs.json
  • src/i18n/locales/zh-TW/launch.json
  • src/i18n/locales/zh-TW/settings.json
  • src/i18n/locales/zh-TW/timeline.json

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

npm run i18n:check fails on release/v1.7.0 — ~50 missing/extra keys across 11 locales

2 participants