- CatalogSearchOverlay: replace handleAddStub with real openAddToCollection/openAddToThread routing based on catalogSearchMode - ConfirmDialog + __root.tsx: swap t() for Trans component on deleteItemMessage, deleteCandidateMessage, pickWinnerMessage — fixes <bold> rendering as literal text - Biome format pass: fix 23 lint/format errors across scripts, services, tests - Planning: mark all UAT and verification gaps resolved for phases 07, 11, 16, 20, 21, 22, 24, 32, 34; close debug sessions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
2.3 KiB
Markdown
55 lines
2.3 KiB
Markdown
---
|
|
status: complete
|
|
phase: 34-i18n-foundation
|
|
source: [34-01-PLAN.md, 34-02-PLAN.md, 34-03-PLAN.md, 34-04-PLAN.md, 34-05-PLAN.md]
|
|
started: 2026-04-17T00:00:00.000Z
|
|
updated: 2026-04-17T00:00:00.000Z
|
|
---
|
|
|
|
## Current Test
|
|
<!-- OVERWRITE each test - shows where we are -->
|
|
|
|
[testing complete]
|
|
|
|
## Tests
|
|
|
|
### 1. App loads with i18n — no errors
|
|
expected: Start the dev server fresh (bun run dev). Open the app in the browser. The app loads without console errors related to i18n, missing translation keys, or failed namespace loads. All visible text renders normally (no [object Object] or raw key strings like "common.save").
|
|
result: pass
|
|
|
|
### 2. UI strings are translated (not hardcoded)
|
|
expected: Browse around the app — collection page, a thread, setups. All UI chrome text (buttons, labels, headings, empty states) renders in English. No raw strings like "items.title" or untranslated placeholders visible anywhere.
|
|
result: pass
|
|
|
|
### 3. Language picker exists in Settings
|
|
expected: Open Settings page. There is a language / language picker section. It shows the current language (English). The picker lists at least English and Deutsch (German) as options.
|
|
result: pass
|
|
|
|
### 4. Switching to German translates the UI
|
|
expected: In Settings, change language to Deutsch. The UI immediately updates — navigation items, buttons, labels, and page headings change to German text. No full page reload required.
|
|
result: pass — was fixed (full page coverage + ä/ö/ü restored)
|
|
|
|
### 5. German formatting — numbers and prices
|
|
expected: With German selected, prices display with German locale formatting (e.g. "1.234,56 €" with period as thousands separator, comma as decimal, € symbol). Weight values also use comma as decimal separator where applicable.
|
|
result: pass
|
|
|
|
### 6. Switch back to English
|
|
expected: In Settings, change language back to English. The UI reverts to English text and English number/price formatting (e.g. "$1,234.56"). Change is immediate, no reload.
|
|
result: pass
|
|
|
|
### 7. Language preference persists on reload
|
|
expected: Set the language to Deutsch. Reload the page (F5 / hard refresh). The app remembers the language selection and loads in German without requiring the user to switch again.
|
|
result: pass
|
|
|
|
## Summary
|
|
|
|
total: 7
|
|
passed: 7
|
|
issues: 0
|
|
pending: 0
|
|
skipped: 0
|
|
|
|
## Gaps
|
|
|
|
[none]
|