| name | localization-testing |
| description | Internationalization (i18n) and localization (l10n) testing for global products including translations, locale formats, RTL languages, and cultural appropriateness. Use when launching in new markets or building multi-language products. |
| category | specialized-testing |
| priority | medium |
| tokenEstimate | 800 |
| agents | ["qe-test-generator","qe-test-executor","qe-visual-tester"] |
| implementation_status | optimized |
| optimization_version | 1 |
| last_optimized | "2025-12-02T00:00:00.000Z" |
| dependencies | [] |
| quick_reference_card | true |
| tags | ["localization","i18n","l10n","translation","rtl","unicode","locale"] |
| trust_tier | 3 |
| validation | {"schema_path":"schemas/output.json","validator_path":"scripts/validate-config.json","eval_path":"evals/localization-testing.yaml"} |
Localization & Internationalization Testing
Browser engine
Browser-driven locale checks (RTL layout diffs, language-switching flows, locale-specific screenshots) should go through the qe-browser fleet skill. Example:
vibium go "$BASE_URL?lang=ar"
vibium wait load
node .claude/skills/qe-browser/scripts/visual-diff.js --name homepage-ar-rtl
vibium go "$BASE_URL?lang=ja"
node .claude/skills/qe-browser/scripts/visual-diff.js --name homepage-ja
See .claude/skills/qe-browser/SKILL.md for the full reference.
<default_to_action>
When testing multi-language/region support:
- VERIFY translation coverage (all strings translated)
- TEST locale-specific formats (date, time, currency, numbers)
- VALIDATE RTL layout (Arabic, Hebrew)
- CHECK character encoding (UTF-8, unicode)
- CONFIRM cultural appropriateness (icons, colors, content)
Quick i18n Checklist:
- All user-facing strings externalized
- No hardcoded text in code
- Date/time/currency formatted per locale
- RTL languages flip layout correctly
- Unicode characters display properly
Critical Success Factors:
- Don't hardcode strings - externalize everything
- Test with real speakers, not just translation files
- RTL requires mirrored UI layout
</default_to_action>
Quick Reference Card
When to Use
- Launching in new markets
- Adding language support
- Before international releases
- After UI changes
Translation Coverage Testing
test('all strings are translated', () => {
const enKeys = Object.keys(translations.en);
const frKeys = Object.(translations.);
esKeys = .(translations.);
(frKeys).(enKeys);
(esKeys).(enKeys);
});
(, ({ page }) => {
page.();
text = page.();
(text)..();
(text)..();
});