1.7 KiB
1.7 KiB
title
| title |
|---|
| 34 i18n Fields |
34 i18n Fields
Scope
Field-level i18n editing in project t1, including language tabs, active-language switching, and AI-assisted subtree translation for supported text widgets.
Prerequisites
- Mock mode enabled
- Project t1
- Collection i18n_content
- Entry ic2 for missing EN translations
Test Cases
| ID | Description | Expected Result | Priority |
|---|---|---|---|
| I18N-01 | i18n field shows language tabs | Tabs for configured languages are visible on detected i18n fields | High |
| I18N-10 | Switching tabs changes visible content | Active language content changes without losing the other language value | High |
| I18N-30 | Editing one language marks the entry dirty | Unsaved badge appears after editing an i18n value | High |
| I18N-33 | AI translation fills a missing simple target value | Switching to the target tab and clicking translate inserts the translated target value and marks the entry dirty | High |
| I18N-34 | AI translation fills a nested subtree | Switching to the target tab and clicking translate on a nested i18n object fills supported target leaves while preserving the field shape | High |
Edge Cases
- Translation button is hidden for readonly i18n fields
- Empty source language content does not overwrite the target
- Invalid AI JSON response shows an error toast and does not mutate the field
- Only supported string widgets are translated; other values remain local copies from the source subtree
Accessibility
- Language tabs remain keyboard-focusable buttons with correct tab semantics
- Translate actions expose a descriptive aria-label for translating into the active target language from the auto-selected best source language