fix(i18n): translate hardcoded "Logout" string in avatar-menu #1154

Merged
reviewer merged 1 commit from code-lead/1147 into main 2026-05-14 12:02:25 +00:00
Collaborator

Summary

  • Replace the hardcoded <span>Logout</span> in apps/web/src/components/avatar-menu.tsx with <span>{m.avatar_menu_logout()}</span> so the logout button is properly localised.
  • The avatar_menu_logout key already exists in messages/en.json ("Logout") and messages/fr.json ("Se déconnecter"), so no message changes are needed.

Closes #1147

Test plan

  • just qa — typecheck, lint, format, paraglide-check, i18n-string-check, sql-layer-check, flow-schema-check, 3371 tests all green
  • No remaining raw user-facing "Logout" strings in avatar-menu.tsx (the two grep hits are JSDoc/section comments, not UI text)

🤖 Generated with Claude Code

## Summary - Replace the hardcoded `<span>Logout</span>` in `apps/web/src/components/avatar-menu.tsx` with `<span>{m.avatar_menu_logout()}</span>` so the logout button is properly localised. - The `avatar_menu_logout` key already exists in `messages/en.json` ("Logout") and `messages/fr.json` ("Se déconnecter"), so no message changes are needed. Closes #1147 ## Test plan - [x] `just qa` — typecheck, lint, format, paraglide-check, i18n-string-check, sql-layer-check, flow-schema-check, 3371 tests all green - [x] No remaining raw user-facing "Logout" strings in `avatar-menu.tsx` (the two grep hits are JSDoc/section comments, not UI text) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(i18n): translate hardcoded "Logout" string in avatar-menu
All checks were successful
qa / i18n-string-check (pull_request) Successful in 9s
qa / db-schema (pull_request) Successful in 15s
qa / dockerfile (pull_request) Successful in 17s
qa / sql-layer-check (pull_request) Successful in 10s
qa / qa-1 (pull_request) Successful in 2m25s
qa / qa (pull_request) Successful in 0s
f06241f738
The avatar menu's logout button rendered the literal "Logout" string
instead of going through Paraglide. The `avatar_menu_logout` key already
exists in `messages/en.json` and `messages/fr.json`, so this only swaps
the JSX to call `m.avatar_menu_logout()`.

Closes #1147

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
reviewer approved these changes 2026-05-14 12:02:18 +00:00
reviewer left a comment

APPROVED

Surgical single-line fix — exactly what the issue called for.

AC verification:

  • <span>Logout</span><span>{m.avatar_menu_logout()}</span> (diff confirms)
  • avatar_menu_logout key present in messages/en.json + messages/fr.json (pre-existed; CI i18n-string-check + paraglide-check both green)
  • Paraglide compile clean — no missing-key warnings
  • No raw UI "Logout" strings remain in avatar-menu.tsx
  • CI: all checks green (3371 tests, typecheck, lint, format, i18n-string-check, paraglide-check, flow-schema-check)

Zero scope creep, mergeable. Merging now.

**APPROVED** Surgical single-line fix — exactly what the issue called for. **AC verification:** - ✅ `<span>Logout</span>` → `<span>{m.avatar_menu_logout()}</span>` (diff confirms) - ✅ `avatar_menu_logout` key present in `messages/en.json` + `messages/fr.json` (pre-existed; CI `i18n-string-check` + `paraglide-check` both green) - ✅ Paraglide compile clean — no missing-key warnings - ✅ No raw UI `"Logout"` strings remain in `avatar-menu.tsx` - ✅ CI: all checks green (3371 tests, typecheck, lint, format, i18n-string-check, paraglide-check, flow-schema-check) Zero scope creep, mergeable. Merging now.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/agent-hooks!1154
No description provided.