Testing for Internationalisation and Localisation
Internationalisation (i18n) is designing software to support multiple locales; localisation (l10n) is adapting software for a specific locale — translating text, formatting numbers and dates, supporting local conventions. Testing i18n and l10n ensures the application works correctly for users across different languages, regions, and cultural contexts.
Internationalisation Test Areas
- Character encoding: UTF-8 handling — does the application correctly store and display characters from all scripts (Arabic, Chinese, Hebrew, Cyrillic)?
- Text direction: Right-to-left (RTL) languages (Arabic, Hebrew) require layout mirroring — does the UI adapt correctly?
- String expansion: Translated strings are typically longer than English. German and Finnish strings can be 30-50% longer — does the UI accommodate this?
- Placeholder and format strings: "Welcome, {name}!" — are format strings correctly externalised and do they work with all translation inputs?
Localisation Test Areas
- Date formatting: DD/MM/YYYY vs MM/DD/YYYY vs YYYY-MM-DD
- Number formatting: 1,234.56 vs 1.234,56
- Currency: symbol position, decimal places, local currency
- Time zones: events and timestamps in user's local time
- Translation quality: functional correctness and natural-sounding translations
Pseudo-localisation
Pseudo-localisation replaces English strings with extended versions (using accented characters and extra length) to test i18n readiness without requiring actual translations. It reveals hard-coded strings, layout issues with longer text, and encoding problems early in development.