Our experience, knowledge and lessons learned - all here just for you.
What is Internationalization (i18n)?
Internationalization is the process of adapting a digital product prior to localization. Although there are many variations to what Internationalization can include, the majority of sources agree that the product of Internationalization is software ready for localization.
This often includes ensuring world-readiness and localizability of the software. It is crucial to remember that the process of Internationalization should be an integral step in the overall development process and not an after-thought.
Internationalization includes separating content and communications from the actual code. This way, content can be localized without influencing the inner structure of a product.
Basically, the credo of internationalization is: One base code to rule all locales. Essentially, the goal is to create a functional code that can be used as a foundation for all locales in the localization process. Internationalization boils down to investing a lot of time in proper product design and product development with future localization in mind.
According to LISA (Localization Industry Standards Association), internationalization process is integral part of:
Product testing & quality assurance
How is internationalization done?
In software development, internationalization means removing hard-coded text and visual elements. They are put in a separate database or in a language resource file - one or several for each locale.
The source code then contains instructions to include text strings from resource files, allocated by ID or a value name.
Similar approach can be made for visual elements (ex. pictures), where the code will insert a corresponding picture depending on the selected locale. A properly internationalized source code can be used for all translations. The product of good Internationalization process is a product that is easy to localize to as many locales as possible (ideally - localizable to any locale). This can include everything from enabling use of Unicode to support of bidirectional and vertical texts, including support for different time and date formats, currencies etc.
A couple of things to look out for during internationalization:
Design elements with expansion options: some languages take up more space than others.
Avoid slang and culture-specific content
Provide comments & context for strings which translators can use
Allow usage of data with variable formats such as currencies, measurements, dates, and times
Support different character sets, not just Latin alphabet
Internationalization vs. Localization - what’s the difference?
Different sources often define internationalization and localization with slight variations.
However, the main difference remains - the end goal of internationalization (i18n) and localization (i10n) is different.
Internationalization is the process of creating a source product with content which is easy to localize. The end goal of internationalization is a product ready for localization.
Localization , on the other hand, is the process that comes after internationalization. The end goal of localization is a product in several languages, where each version appears as a tailor-made.