Localization and Internationalization: What do these terms mean?
Internationalization means making your product flexible enough to be localized to other languages. This includes, but isn't limited to, externalization of string and image resources, applying correct number, date, time, and currency formats based on region, text input considerations, and right to left support. This is effectively the "prep work" that must be done before localization can be applied. The term globalization is also used for the same purpose.
Localization is the process of translating (and otherwise tweaking) your product to be accepted in a specific locale. Often this starts with translation of text and possibly images. Layouts may have to be modified to fit the new content. Certain content may have to be changed to be more applicable to the target culture. Testing is also very important, especially by a native speaker, to make sure everything makes sense and that the expected tasks can be accomplished.
You may see "i18n" and "l10n". These are abbreviations for the previously discussed terms, created from the first and last letters of the words, and the number of letters between them.
What's in it for me?
Code may be a universal language, but if a UI (user interface) is only in one language, the market potential is limited. Would you want to use software with a non-English UI if you only speak English? Of course not! And neither would non-English speakers want to use an English UI! This is where Localization and Internationalization come in - expanding the market and making your users happy.
How would you read this advertisement for a soft drink?
- A man is exhausted in the desert.
- He drinks the soda.
- He is full of energy!
Seems like a great advertisement, right? Well... what if you market this in a country where they read right to left?
- A man is full of energy!
- He drinks the soda.
- Dead in the desert?
Don't quite want that soda anymore, do you?
The Chevy Nova didn't sell very well in Spanish speaking countries. After all, why would you want to buy a car that doesn't go ("no va")?
This movie is called "Laputa: Castle in the Sky" in Japanese. But for western audiences it was changed to just "Castle in the Sky" to avoid being potentially offensive in Spanish.
My next blog will be about best practices for software internationalization and localization, so I will cover the software part in more detail then. Here are some quick examples.
Text Input - Make sure your users can enter non-English characters (like letters with accents or even Chinese, Japanese, Korean, Arabic, etc.) in your text boxes and combo boxes. If they can't, your application won't be usable.
Layout - Be sure to allow extra space for translations. Some languages, like German, tend to have longer text length than English. Positioning labels above inputs can also help resolve layout issues.
Number, Date, Time, and Currency Formats - These can often be formatted automatically based on a regional setting. Libraries like .NET provide this functionality with methods like "DateTime.ToShortDateString()".
For further information about internationalization and localization, here are some useful reference links: