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 the situation with this 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? But 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 linguistic, cultural and other requirements of the specific market you are targeting. While localization includes translation, it’s only one part of the process.
Other important steps in software localization include adapting numeric, date and time formats, currencies and encoding for the target 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 that 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 aspect of internationalization is, obviously, designing and developing the software in such a way so as to remove 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 of the concatenation of strings and avoiding dependence of user-interface string values within a code.
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 complete.
It can be presented in this way:
Internationalization + Localization = Globalization
To sum up, internationalization significantly affects the ease of a 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!