Skip to content

#15 i18n S1 — localize issues (Detail) slice (DE/EN)#63

Merged
WolfTasks merged 5 commits into
mainfrom
worktree-i18n-s1-issues
Jul 14, 2026
Merged

#15 i18n S1 — localize issues (Detail) slice (DE/EN)#63
WolfTasks merged 5 commits into
mainfrom
worktree-i18n-s1-issues

Conversation

@WolfTasks

Copy link
Copy Markdown
Owner

Summary

Session 1 of the #15 i18n full-rollout: localizes the S1 issues (Detail) slice. Extracts every user-facing string from the three in-scope components into a new issues react-i18next namespace (en/de), removes those files from the scanner allowlist, and flips S1 to ✅ in the coverage matrix.

Plan: docs/superpowers/plans/2026-07-13-i18n-s1-issues.md (executed via subagent-driven development: fresh implementer + task review per task, opus whole-branch review at the end).

Changes

  • New issues namespace (en/de, key-identical) + common:close/yes/no, registered in i18n/index.ts.
  • IssueDialog.tsx — full-view link + close aria-label.
  • IssueDetailContent.tsx — loading/not-found, Description/References headings, 12 sidebar field labels.
  • IssueListPage.tsx — heading, create button, filter dropdowns/placeholders, create-form, empty state, and the DoD-required alert(...) (a scanner blind spot).
  • Each localized file removed itself from frontend/scripts/i18n-allowlist.json (66 → 63).
  • S1 coverage-matrix row flipped to ✅.

Out of scope (left unchanged, by design): raw priority enum {issue.priority} (S2) and data-driven custom-field labels. The other three S1 files (IssueDetailPage, IssueDialogHost, InlineEditTitle) are already string-free and untouched.

Verification

  • npm run test:i18n → 17/17
  • npm run lint:i18n → scan OK (0 hardcoded, 63 allowlisted) + parity OK (en/de match)
  • npm run build → tsc + vite build succeeded
  • Final whole-branch review (opus): Ready to merge, 0 Critical / 0 Important.

Deviation from plan

Dropped the plan's unused issues:dialog.close key (it duplicated common:close and violated the plan's own "shared terms live in common" constraint); the dialog aria-label uses common:close. Approved decision during execution.

Still owed before merge

  • Manual DE/EN browser check (switch language via Settings → Profile; verify issue list + detail/dialog, incl. German label lengths in the sidebar).

🤖 Generated with Claude Code

@WolfTasks
WolfTasks merged commit 9ab04c3 into main Jul 14, 2026
11 checks passed
@WolfTasks
WolfTasks deleted the worktree-i18n-s1-issues branch July 14, 2026 18:38
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.

1 participant