How to perform Localization testing?

Can anyone suggest how to perform Localization testing and which handy free tools are available?

Let’s consider an example of Chat application. Now users from any country can use the chat application. Now there are two mediums users can use the Chat application, one is Mobile app (native platform) and the second is Webapp developed in php-laravel framework.

So how do I test if the chat module is showing the correct date & timings if multiple users from different counties are using the Chat app? There might be another use case like Virtual global events concepts.

I searched over the internet on this topic but didn’t get much clarity on it. So hoping my question is clear and in advance thanks for the contributions.

4 Likes

What’s the date&timings based on? ip/location of the user? or system date^time? or the installation/configuration set location?

  • For the local system date&time - use the OS clock(remove the auto-set).
  • For browser location(if the web app does that), I’d use a VPN tool(not sure which addon is free anymore).
  • For configs inside the app(search for the config file and change it), or use the interface for it.
2 Likes

Here is a quick demo of how to test this within Chrome Dev Tools using this page

3 Likes

Hi, thanks for this tips.

How do I test it in mobile app? Like consider one person from USA is chatting with another person from UK. Now I want to test this scenario like person sending message from USA then that UK person is receiving the message as per their timezone or not and vice versa.

I don’t have emulators installed at the moment, but there are mobile emulators you can use to run your app from your computer, they have options to change timezone/gps coordinates. You’ll have to google for your specific setup.

If you are also testing for untranslated strings and so on, you would have to change the system locale to the desired language.

This is the approach I’ve been wanting to try the next time I work on a system that requires localization:

  • Gradually amend end to end tests to use non-text selectors - i.e. HTML IDs/classes and not “click on button that has text ok”. This may require you to change the code itself to add IDs, etc. that can be used as non-text selectors.
  • Once done, parameterize the tests to run the same user stories in lots of languages/locales.
  • Take bundles of automated screenshots. Send those screenshots to translators for in-context verification on both language strings and localization of currencies, numbers, etc.

Times and dates are a bit more complicated. It often requires “fixing” the time on the backend. It is possible to do this with libfaketime, but it’s tricky and there are all sorts of issues with this approach that I won’t get into right now.

In the realm of global software deployment, effective localization testing is pivotal. It’s more than translation – it’s about cultivating a seamless user experience in diverse cultural contexts.

Here’s my perspective on the process:

1. Define Scope: Identify target locales and languages to shape testing efforts.

2. Prepare Resources: Translate text, adapt content, and manage resources effectively.

3. Validate Linguistics and Functionality: Ensure accurate translation and validate region-specific functionalities.

4. Ensure UI Consistency: Check UI elements for layout issues due to text variations.

5. Test Dynamic Locale Switching: Ensure smooth transitions between locales.

6. Collaborate for Cultural Insight: Engage native speakers for authenticity and nuanced feedback.

7. Automate for Efficiency: Combine manual scrutiny with automated tests for thorough coverage.

8. Iterate and Enhance: Continuously improve based on user feedback for a globally relevant product.