In one of our recent blogs, we discussed why people often use the terms translation, localization and internationalization interchangeably when it comes to going global with their website, even though these terms refer to different processes. What it’s like when it comes to software?
Let’s say you’ve developed a great app. Naturally, you want it to reach a broader audience. How do you do it – do you translate, localize or internationalize it? Or maybe globalize it from the very beginning? Aren’t they the same things since you cannot be global unless you are international?
In this blog, we explain the differences between software localization and software internationalization. Let’s dive in!
Software Localization (l10n)
Localization refers to adapting your software and its content to meet the language, cultural and other requirements of the specific market you are targeting. While localization includes the translation, it’s only one part of the process.
Other important steps in software localization include adapting numeric, date and time formats, the use of currency and encoding for the targeted language, UI planning, adjusting graphics and images as well as paying attention to legal requirements. Localization may even require re-thinking your visual design so it’s appropriate for your new audience.
However, making efforts to adapt your software to a new market and go global wouldn’t be possible if not for… you guessed it – software internationalization. This means that localization can only be performed once software internationalization has been completed.
Software Internationalization (i18n)
The fundamental aspect of internationalization is to make sure the technology supports text in any writing system of the world. When you plan to go global, you have to bear in mind that you may also need to support alternative calendars, time zones, and daylight savings, as well as names and addresses in both native and transliterated forms.
Only when your technology supports all of the above, you can start expanding to other markets. In short, internationalization’s task is to do everything to simplify the process of localization.
Four aspects of internationalization
The first one is, obviously, designing and developing the software in a way that removes barriers to localization or international deployment. This includes enabling the use of Unicode or ensuring the proper handling of legacy character encodings where appropriate, taking care over the concatenation of strings and avoiding dependence in a code of user-interface string values.
The second one is providing support for features that may not be used until localization occurs. For example, adding markup in your DTD to support bidirectional text and identify a language or adding to CSS support for vertical text or other non-Latin typographic features.
The third aspect is enabling the code to support local or regional language or culturally related preferences. Typically, this involves incorporating predefined localization data and features derived from existing libraries or user preferences.
- date and time formats,
- local calendars
- number formats
- numeral systems
- sorting and presentation of lists
- handling of personal names and forms of address
The fourth aspect is separating localizable elements from source code or content so that localized alternatives can be loaded or selected based on the user’s international preferences as needed. Once everything is done to simplify the process of localization, the process of internationalization may be considered completed.
It can be presented in this way:
Internationalization + Localization = Globalization
To sum up, internationalization significantly affects the ease of the product’s localization. If you have questions about your software’s localization or internationalization, feel free to reach out to us – we will be glad to help you make the first steps!