You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1.1 Run node tests/l10n/check-l10n-parity.js at HEAD and confirm it still reports the same 13 missing keys across all 33 required non-Dutch, non-English locales (re-check in case a parallel change has partially closed it)
1.2 Confirm the 13 missing keys are exactly: Open, In Progress, Done, Cancelled, Low, Normal, High, Urgent, Due soon, Overdue, Assigned to: {user}, No tasks, Could not move the task. Please try again. (all sourced from src/components/TaskCard.vue and src/views/ProjectBoard.vue)
2.1 Add real (non-English-fallback) translations for the 13 keys to each required locale's l10n/<locale>.json: de, fr, es, it, bg, hr, cs, da, et, fi, el, hu, ga, lv, lt, mt, pl, pt, ro, sk, sl, sv, sq, is, nb, sr, bs, mk, uk, be, ru, tr, ca, lb, rm
2.2 For the plural/placeholder key "Assigned to: {user}", preserve the {user} placeholder token verbatim in every translation (do not translate or drop the token)
2.3 Leave l10n/en.json (identity source) and l10n/nl.json (already at parity) untouched — en/nl untouched for the 13 keys (a separate new key Move task to another column, introduced by the companion kanban keyboard change, was added to every locale incl. en/nl to keep the now-enforced gate green)
3.1 Add "check:l10n": "node tests/l10n/check-l10n-parity.js" to package.jsonscripts
3.2 Add a step running npm run check:l10n to the planninq CI workflow (new l10n-parity job in .github/workflows/code-quality.yml, node-20 container, runs npm run check:l10n) so a future missing/empty translation fails the pipeline. NOTE: the frontend lint/test run via the shared reusable quality.yml (not editable in-repo), so the gate is added as a planninq-owned sibling job in the same workflow file.
3.3 Confirm npm run check:l10n exits 0 locally after step 2 is complete
4.1 Re-run node tests/l10n/check-l10n-parity.js and confirm EXIT=0 with the summary reporting 0 missing / 0 empty across all 36 required locales
Synced from openspec/changes/fix-l10n-parity-gate by OpenSpec workflow App: planninq
Artifacts
Specs
Tasks
node tests/l10n/check-l10n-parity.jsatHEADand confirm it still reports the same 13 missing keys across all 33 required non-Dutch, non-English locales (re-check in case a parallel change has partially closed it)Open,In Progress,Done,Cancelled,Low,Normal,High,Urgent,Due soon,Overdue,Assigned to: {user},No tasks,Could not move the task. Please try again.(all sourced fromsrc/components/TaskCard.vueandsrc/views/ProjectBoard.vue)l10n/<locale>.json:de,fr,es,it,bg,hr,cs,da,et,fi,el,hu,ga,lv,lt,mt,pl,pt,ro,sk,sl,sv,sq,is,nb,sr,bs,mk,uk,be,ru,tr,ca,lb,rm"Assigned to: {user}", preserve the{user}placeholder token verbatim in every translation (do not translate or drop the token)l10n/en.json(identity source) andl10n/nl.json(already at parity) untouched — en/nl untouched for the 13 keys (a separate new keyMove task to another column, introduced by the companion kanban keyboard change, was added to every locale incl. en/nl to keep the now-enforced gate green)"check:l10n": "node tests/l10n/check-l10n-parity.js"topackage.jsonscriptsnpm run check:l10nto the planninq CI workflow (newl10n-parityjob in.github/workflows/code-quality.yml, node-20 container, runsnpm run check:l10n) so a future missing/empty translation fails the pipeline. NOTE: the frontend lint/test run via the shared reusablequality.yml(not editable in-repo), so the gate is added as a planninq-owned sibling job in the same workflow file.npm run check:l10nexits 0 locally after step 2 is completenode tests/l10n/check-l10n-parity.jsand confirmEXIT=0with the summary reporting 0 missing / 0 empty across all 36 required localesSynced from
openspec/changes/fix-l10n-parity-gateby OpenSpec workflowApp:
planninq