In this guide
You cannot reproduce a bug, but two testers swear it is real. Before you doubt them, check one thing: do they use different language and region settings than you? Locale changes more than the words on screen, so the same build can behave differently on two phones.
Why locale changes behavior
- Text length. A label that fits in English can be cut off, wrapped badly or push a button off screen in a language with longer words.
- Writing direction. Right-to-left languages mirror layouts. Icons, arrows and swipe gestures can end up pointing the wrong way.
- Number and date formats. One tester types "1,5" and another "1.5". Parsing, validation and sorting can break on the unexpected one.
- Currency, units and calendars. Prices, distances and week starts differ by region.
- Sorting and case rules. Alphabetical order and upper/lower-case conversion are not the same in every language.
- Missing translations. A string that exists only in your main language falls back, shows a raw key or leaves a blank.
- Server content. If the backend returns text or data by region, the app may receive something you never saw.
Language and region are separate settings. A phone set to English with a German region can behave differently from one set to English with a US region.
Ask testers these questions
Put them in your test brief or feedback form, so every report carries the answer:
- Which system language is the phone set to?
- Which region is set?
- Which app language, if the app has its own setting?
- Did you enter any numbers, dates or prices, and how did you write them?
- Is the keyboard language different from the system language?
- Is the text size or display size changed?
- Does the bug stay when you switch the language back to English?
Question 7 is the fastest triage. If the bug disappears, it is locale-related.
Reproduce it yourself
- Change your own phone or emulator to the tester's language and region, not just the language.
- Repeat the exact steps from the report, including how numbers and dates were typed.
- Look for truncated text, mirrored layouts, blank labels and failed input.
- If it still does not reproduce, compare with the server side: is the response different for that region?
Build a small locale check list
You do not need to test every language. Pick a short set that stresses different things:
- One language with long words.
- One right-to-left language.
- One region that uses a comma as decimal separator.
- Your main language as the baseline.
Run the same core flow in each, and ask testers to cover them. For a deeper look at layout problems, see how to test app localization: long words, RTL, formats.
Prevent the next one
- Never build user-facing text by gluing strings together.
- Format numbers, dates and currency with the platform's locale functions, not by hand.
- Test with a pseudo-long string early, before translations exist.
- Record the locale in every bug report template.
Related
On AppReviewX, testers give you private, structured feedback. You can ask for device, language and region in your questions, so every report comes with the context. Start free and see what your app does outside your own settings.