What is internationalization?
Definition
Software internationalization, often abbreviated as I18N, is
the process of generalizing a product during the development
process, so as to enable it to handle multiple languages and
cultural conventions allowing 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 Localizations |
Internationalization is divided into three layers:
Transportation
Ensuring that all text containers (files, strings, buffers,
pages etc.) support the texts and character strings. For
example:
 |
Multibyte support |
 |
Unicode support |
Application
Ensuring that all text containers (files, strings, buffers,
pages etc.) support the texts and character strings. For example:
 |
Upper/lower cases |
 |
Sorting |
 |
Collation |
 |
Search |
MMU GUI
Adapting the user interface to support localization. For example:
 |
String externalization |
 |
Resource externalization |
 |
Message formatting |
Internationalization - How to?
I18n assessment
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. |
Implementation
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.
Quality Assurance
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, if any
is necessary, the product should be tested by native speaking
QA engineers, to ensure that the product fulfills the requirements.
Maintenance
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 continuing support of the product to ensure complete satisfaction.
|
|