Summary
While running the RC end-to-end checklist for v1.7.0-rc.3 (b9a144f on release/v1.7.0), npm run i18n:check failed with a large number of missing (and a few extra) translation keys, spread across most non-English locales and six different namespace files.
This is not a regression introduced during the 1.7.0 RC window — git log -S"autoFocusAllOn" -- src/i18n/locales/en/timeline.json shows the English keys were added back in commit a371658 ("global auto toggle"), and git show v1.6.0:src/i18n/locales/fr/timeline.json | grep autoFocusAllOn confirms fr was already missing them in the last stable release. So this is pre-existing translation debt, not something rc.3 broke. Filing it anyway since i18n:check is a real script in package.json (npm run i18n:check) and it's currently red.
Repro
git checkout release/v1.7.0 # or main — same gap exists there too
npm install
npm run i18n:check
Output ends with:
i18n check FAILED — translation files are out of sync.
Affected locales / namespaces (as of b9a144f)
ar, es, fr, it, ja-JP, ko-KR, pt-BR, ru, tr, vi, zh-CN, zh-TW (12 of 13 non-English locales)
- Namespaces with gaps:
dialogs.json (unsavedChanges.*), editor.json (emptyState.*, it/pt-BR only), launch.json (sourceSelector.*, tooltips.*), settings.json (cursor.clipToBoundsDescription, zoom.focusMode.lockedDisclaimer, textAnimation.* in several locales, plus a few EXTRA stale keys like annotation.selectAnimation/annotation.textAnimation that look like they were renamed to textAnimation.* in English but the old names linger in ar/tr/vi/zh-CN/zh-TW/pt-BR), shortcuts.json (pt-BR only), timeline.json (buttons.autoFocusAllOn/autoFocusAllOff/autoZoomOn/autoZoomOff — missing in all 12 non-English locales).
User-facing impact
Any of these UI strings will fall back to the i18n library's fallback behavior (raw key or English) for affected locales. Concretely: a French, Spanish, German, etc. user turning on the auto-zoom timeline feature will see an untranslated button label. This likely explains why a French UI spot-check during the 2026-07-19 RC pass (docs/testing/rc-e2e-checklist.md) didn't catch it — the spot-check didn't happen to click the specific auto-zoom controls.
Suggested fix
Someone with translation context needs to backfill the missing keys and remove the stale EXTRA ones. Given the scale (~50 keys × up to 12 locales), this is probably its own PR rather than a quick fix.
Summary
While running the RC end-to-end checklist for
v1.7.0-rc.3(b9a144fonrelease/v1.7.0),npm run i18n:checkfailed with a large number of missing (and a few extra) translation keys, spread across most non-English locales and six different namespace files.This is not a regression introduced during the 1.7.0 RC window —
git log -S"autoFocusAllOn" -- src/i18n/locales/en/timeline.jsonshows the English keys were added back in commita371658("global auto toggle"), andgit show v1.6.0:src/i18n/locales/fr/timeline.json | grep autoFocusAllOnconfirmsfrwas already missing them in the last stable release. So this is pre-existing translation debt, not something rc.3 broke. Filing it anyway sincei18n:checkis a real script inpackage.json(npm run i18n:check) and it's currently red.Repro
Output ends with:
Affected locales / namespaces (as of b9a144f)
ar,es,fr,it,ja-JP,ko-KR,pt-BR,ru,tr,vi,zh-CN,zh-TW(12 of 13 non-English locales)dialogs.json(unsavedChanges.*),editor.json(emptyState.*,it/pt-BRonly),launch.json(sourceSelector.*,tooltips.*),settings.json(cursor.clipToBoundsDescription,zoom.focusMode.lockedDisclaimer,textAnimation.*in several locales, plus a fewEXTRAstale keys likeannotation.selectAnimation/annotation.textAnimationthat look like they were renamed totextAnimation.*in English but the old names linger inar/tr/vi/zh-CN/zh-TW/pt-BR),shortcuts.json(pt-BRonly),timeline.json(buttons.autoFocusAllOn/autoFocusAllOff/autoZoomOn/autoZoomOff— missing in all 12 non-English locales).User-facing impact
Any of these UI strings will fall back to the i18n library's fallback behavior (raw key or English) for affected locales. Concretely: a French, Spanish, German, etc. user turning on the auto-zoom timeline feature will see an untranslated button label. This likely explains why a French UI spot-check during the 2026-07-19 RC pass (
docs/testing/rc-e2e-checklist.md) didn't catch it — the spot-check didn't happen to click the specific auto-zoom controls.Suggested fix
Someone with translation context needs to backfill the missing keys and remove the stale
EXTRAones. Given the scale (~50 keys × up to 12 locales), this is probably its own PR rather than a quick fix.