If your app is used anywhere outside your country of origin, chances are it uses some kind of localization strategy. Many people assume that localization simply means translation to another language, but this is not the case. Here are some examples of localization that your application might use:
Language: different countries speak different languages. But different regions can speak different languages as well. An example of this would be Canada: in the province of Quebec, the primary language spoken is French, and in the other provinces, the primary language spoken is English.
Spelling: even when two areas speak the same language, the spelling of words can be different. For example, “color” in the US, as opposed to “colour” in Canada and the UK.
Words and idioms: words can vary even in a common language. In the UK, a truck is a lorry, and a car’s trunk is a boot. In the US, to “table” a topic means to stop talking about it until a later meeting. But in the UK and Canada, to “table” a topic means to start talking about it in the current meeting- the complete opposite of what it means in the US!
Currency: different countries will use different currencies. But this doesn’t just mean using a different symbol in front of the currency, like $ or £. The currencies can also be formatted differently. In the US, fractions of a dollar are separated with a dot, and amounts over one thousand are separated with a comma. In the UK, it’s the opposite. So what would be written as 1,000.00 in the US would be written as 1.000,00 in the UK.
Date and Time Formats: in the US, dates are written as month/day/year, but in the UK, dates are written as day/month/year. The US generally writes times using AM and PM, but many other countries use 24-hour time, so what would be 1:00 PM in the US would be 13:00 elsewhere.
Units of Measure: the US usually uses US Customary units, such as pounds for weight and feet and inches for height. Most other countries will use the metric system for these measurements. Most countries measure air temperature in Celsius, while the US uses Fahrenheit.
Postal Codes and Phone Numbers: these vary widely from country to country. See my posts on international phone numbers and postal codes for some examples.
Images: pictures in an application might need to be varied from country to country, but there are some considerations. For example, if your application was to be used internationally, you might not want to include a picture of a building with an American flag in the front. Or if your app were to be used in religiously conservative countries, you might not want a picture of a person in a sleeveless shirt.
Testing for Localization
The first step in localization testing is to determine exactly what will be localized. Your company may decide to localize for date and time, postal codes, and phone numbers, but not for language. Or a mobile app may choose to only use other languages that are built into the device, so that the text of the app would be in one language, but the buttons for the app would be in the user’s language.
If your app will be using other languages, gather all the texts you will need to be checking. For example, if your app has menu items such as “Home”, “Search”, “Your Account”, and “About Us”, and your app will be localized for French and Spanish, find out what those menu items should be in French and Spanish. It goes without saying that whoever has done the translations should have consulted with a native speaker to make sure that the translations are correct.
Next, create a test plan. The simplest way to do this would be to create a spreadsheet, where the left column lists the different localization types you need to test and the top row lists the different countries. Here is a very basic example:
Once your matrix is created, it should be very simple to run through your tests. If you are testing on mobile, here’s a helpful hint: When you switch your mobile device to a different language, make sure you know exactly how to switch it back if you don’t recognize the words in the language you are switching to. When I was testing localization for Mandarin, this was especially important; since I didn’t know any of the characters, I had no idea what any of the menu items said. I memorized the order of the menu items so I knew which item I needed to click on to get back to English.
Another important thing to watch for as you are testing is that translated items fit well in the app. For example, your Save button might look perfectly fine in English, but in German it could look like this:
Once you have completed your localization testing, you’ll want to automate it. This could be done with UI automation tools such as Selenium. You could have a separate test suite for each language, where the setup step would be to set the desired country on the browser or device, and each test would validate one aspect of localization, such as verifying that button texts are in the correct language, or validating that you can enter a postal code in the format of that country. It would be very helpful to use a tool like Applitools to validate that buttons are displaying correctly or that the correct flag icon is displaying for the location.
Localization is a tricky subject, and just like software, it’s hard to make it perfect. But if you and your development team clarify exactly what you want to localize, and if you are methodical in your testing, you’ll ensure that a majority of your users will be satisfied with your application.