On this page
Localization bugs slip into releases easily because every developer device runs one language. The app looks finished, translations get imported, and nobody checks what happens when German words run longer, Arabic mirrors the layout, or a date string parses as something else entirely. This guide is the pre-launch checklist for finding those problems while they are still cheap.
Set up your test environment
Android Studio can generate pseudo-locales, which expand text by roughly a third, add accents, and mirror the entire interface as if it were right-to-left. Enabling them lets you find clipping and layout assumptions before any translator delivers a file. For real languages, change the device language in system settings, or use the per-app language setting available on newer Android versions so only your app switches.
Enable pseudo-locales on a debug build
Turn on pseudo-locale generation in your build configuration and run the app with the expanded and mirrored variants. Anything that clips, overlaps, or stays unmirrored is a layout problem independent of translation quality.
Walk each real locale
Switch to each target language through system settings, then walk every core flow looking for leftover English, broken formatting, and truncated text.
The localization checklist
- Hardcoded strings: no literal English text left in layouts or code, which lint flags as HardcodedText.
- Missing translations: check how the app behaves when a string has no translation, since fallback can produce mixed-language screens.
- Text expansion: longer languages must wrap or grow the control instead of clipping or overlapping the next element.
- Right-to-left layouts: Arabic and Hebrew mirror the interface, including icons with direction such as back arrows and progress indicators.
- Dates, numbers, and currency: formatted with locale-aware APIs rather than fixed patterns from your own language.
- Plurals and placeholders: plural rules differ per language, and format placeholders must survive the translation file intact.
- Special glyph rendering: scripts with complex shaping or different alphabets display correctly, not as boxes.
- Input fields: keyboard types and validation match local formats for phone numbers, names, and addresses.
Beyond the strings
Localization testing also covers behavior that changes by region: the first day of the week in calendars, decimal separators in prices, and sorting rules for lists of names. These are classic sources of bugs because they are invisible in your home locale until a user abroad hits them in a flow you never thought of as locale-dependent.
A practical way to get real coverage is to distribute the localized build through a Google Play testing track and recruit testers in each target market. AppsTestLab runs localization passes alongside that setup, combining the technical checks above with native-reader review so the release is verified in the languages your users will actually choose.
Frequently asked questions
Frequently asked questions
Do we need to test every language before launch?
Test the technical layout in a mirrored and an expanded pseudo-locale, then do a full end-to-end pass in your largest launch languages. Remaining languages can follow the same checklist on a rotating basis after launch.
Should translators see the app instead of an export file?
Where possible, yes. Context beats a spreadsheet: knowing a string is a button label that sits beside another button prevents translations that are correct in isolation and broken on screen.
Sources & references
Official Google documentation- Android testing guidesdeveloper.android.com
- Set up an open, closed, or internal testsupport.google.com
These links open Google's official Play Console Help pages used to verify this guide. AppsTestLab guidance is independent and not affiliated with Google.
Get help doing this
