What is internationalization?
Software internationalization, often abbreviated as i18n, is the process of generalizing a product during the development process to enable it to handle multiple languages and cultural conventions. This process allows adaptation of the product/software to different countries and cultures (also called locales) without necessitating redesign. Customization of the internationalized product to a specific region is called localization.
The purpose of internationalization is to make localization easier, faster, of a higher quality, and more cost-efficient.
An analogous approach may be as follows:
- Internationalization is like Generalization
- Localization is like Customization
- Globalization = Internationalization + N x Localization
Internationalization is divided into three layers:
Ensuring that all text containers (files, strings, buffers, pages, etc.) support the texts and character strings. For example:
- Multibyte support
- Unicode support
Ensuring that all text will either present or behave as expected in the target. For example:
- Upper/lower cases
Adapting the user interface to support localization. For example:
- String externalization
- Resource externalization
- Message formatting
Internationalization – How to?
An i18n assessment is the first stage in the internationalization (i18n) process. This stage focuses primarily on two items:
- What are the architectural, design and code changes needed for the i18n process?
- What is involved in implementing those changes? This includes engineering and QA.
The assessment phase should provide:
- A detailed design document
- A project plan (Gantt), including effort assessment
Once you have a complete design document and a Gantt chart, the implementation can start. The implementation may be performed by your R&D team, with the guidance of an i18n consultant, or using outsourced services.
Implementation by an in-house team tends to be much more efficient. Notwithstanding the “ramp-up” stage, where the team has to learn about the i18n work, the knowledge gained by the team remains and is available for maintenance work and future versions.
Outsourcing is faster and cheaper – there is no need to train team members.
QA should be carried out in phases. In the first phase, the enabled (i.e. internationalized) version should be tested by the QA team in the original language and environment. Only then, when the version is stable, should it be tested in the target environment. This testing can be performed by your QA team with the guidance of outside QA experts.
Before delivery, and after adapting the localization environment where necessary, the product should be tested by native speaking QA engineers to ensure that the product fulfills the requirements.
Our goal is to train your R&D team to have a better i18n understanding for future product/software versions and for product/software maintenance. Our consulting services include support of the product after QA to ensure complete satisfaction.