Globalized software: A brief Internationalization and Localization overview

Categories: Nearshore | Software Testing |

Nowadays, most software is designed for thousands of users around the world. The need to satisfy multinational users is called Globalization. Let’s see what it means.

What is globalization

What does Globalization mean?

First of all, it’s important to clarify both localization and internationalization terms.

Internationalization (sometimes written as I18N) refers to the process of designing an application to facilitate localization. On the other hand, localization (often written as L10N) involves adapting cultural and linguistic elements of an internationalized application to two or more culturally-distinct markets.

Here is a more detailed description:

Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.

When we talk about ‘Globalization‘, we’re referring to the combination of internationalization and localization.

Which are the globalization steps?

Globalization processThe internationalization and localization process could be divided in two phases. As the chart above shows, Phase 1 (internationalization) includes the planning and preparation stages for a product which is built by design to support global markets. In order to ease the subsequent adaptation of the product, all cultural references should be removed. If this content is not separated during this phase, it must be fixed during localization, causing waste of time, stress and expense to the project. Regarding Phase 2 (localization), it encompasses the adaptation of the product for a particular locale using regional spellings and idioms specific to a culture (writing systems, written characters, icons, images and colors, dates, times, weights, measures and currencies).

At the end, each phase concludes with an extensive and thorough testing and quality assurance process to ensure the product works properly and meets the client’s quality expectations.

Focal points

Main points of internationalization and localization to take into account are the following:

1. Language

  •  Direction of writing (mirroring) – Left to right direction is frequently the most used. But the process of localizing the user interface to handle right to left (RTL) languages such as Arabic, Hebrew, Farsi, etc. is admitted too
  • Spelling variations – For example, ‘globalization’ in American English is ‘globalisation’ in British. The English word ‘Cost’ can be translated into Spanish as ‘Costo’ (Latin America) and as ‘Coste’ (Spain). And the possible Spanish translations for ‘Jacket’ are ‘Campera’ (Argentina), ‘Chamarra’ (Mexico) or ‘Chaqueta’ (Venezuela).
  • Multiple meaning words – In all languages there are many words that have two or more meanings. Once, a funny thing happened to me.  When I was testing a website, the translation company made a mistake and translated the English word ‘Save’ into Spanish as ‘Guardar’, which is one of many possible translations. But analyzing the context, these ‘Save’ word was referring to save money and not to save a change. In this case, the correct Spanish translation is ‘Ahorrar’.

2. Culture

  • Currency (format)
  • Format of telephone numbers, addresses, postal codes
  • Images and colors based on cultural appropriateness
  • Weights and measures

3. Conventions and formats

  • Date and time format – In many cultures the default time format is MM/DD/YYYY. Others use YYYY/MM/DD as default format.
  • Number formats – Decimal separator, digit grouping. Many countries use a ‘.’ as decimal separator and many others use a ‘,’

Testing a Globalized Software

Before starting, I always recommend setting as many environments as languages you need to test.  Suppose someone is working on a website that needs to be translated into French, Spanish, German, and Chinese languages. A good choice is to create many virtual machines and adapt them to the requirements of each language by installing the appropriate MUI (Multilingual User Interface) pack, its current location, default keyboard layout and regional currency/date format. By establishing these International Testing environments, you’ll be able to emulate the same conditions as the end user has.

I would like to mention that, due to its nature, there are no many tools to help us to automate the testing effort. However, we can use others that could make the work easier (e.g.:  Lingoport’s Globalyzer, W3C Internationalization Checker and Fake language testing. Please, see Useful tools section below for further details).

The key is to keep the focus mainly on systems of numerals. Currency, date and time formats are the most common issues and the ones that will require greater efforts from the tester. Special care is needed here; is not the same $ 1,000 than $ 1.000. When system fails to recognize the decimal separator or the digit grouping symbol, a big problem arises.

Imagine the impact that your business would suffer if one thousand is confused with one dollar or if an important date, e.g.  July 4th (07/04) is confused with April 7th (04/07).

Another important step is to ensure all phrases are grammatically correct and readable. In some cases, there is a tendency to translate word by word and not the complete sentence.  This causes the translation to be inappropriate leaving the sentence without sense.

Moreover, internationalization testing should cover the UI (menus, buttons, labels, fonts, dialog boxes, images) aside from the spacing requirements introduced by translation. For example, German or Korean words occupy more space than English words so buttons and labels should have a larger width to accommodate for longer text in these languages.

It should also cover data storage which includes files and databases. In the case of files, a good practice is to set a compatible encoding and avoid the default encoding. Furthermore, databases should support Unicode characters to allow special characters like the ones that Russian language use.

Summing up, both Internationalization and localization involve a great effort and occurs as a fundamental step in the design and development flow, rather than as an afterthought that can often involve awkward and expensive re-engineering. However, it is an essential process in such a globalized world.

Useful Tools’s Globalyzer is a tool which does static code analysis to identify internalization issues and help mitigate them. Internationalization Checker performs various tests on a Web Page to determine its level of internationalization-friendliness. It also summarizes key internationalization information about a page, such as character encoding and language declarations. language testing uses software translators to catch the translation and localization issues early. This also ensures that switching between languages works properly and correct messages are picked up from proper directories that have the translated messages. Fake language testing helps in identifying the issues proactively before the product is localized.