Software Internationalization
Software internationalization (a.k.a.,
globalization, localization) is the
implementation
task during which
software components are implemented to be usable in multiple
countries and to conform to multiple languages and
cultures.
The typical objectives of software internationalization are
to:
- Ensure that all software components are internationalized
for specific target:
- Countries.
- Languages and dialects.
- Cultures.
Software internationalization typically can begin when the
following preconditions hold:
Software internationalization is typically complete when the
following postconditions hold:
- All software components have been internationalized in
accordance with the associated internationalization:
- Requirements.
- Architectural mechanisms.
Software internationalization involves the following roles
performing the following steps in an iterative, incremental,
parallel, and time-boxed manner:
-
Software Development Team (specifically the
internationalization engineer):
- Read and understand the internationalization
requirements in the quality requirements section of the
system requirements specification.
- For each software component, determine all places in
the software component that may need to be
internationalized including those that involve textual,
numerical, audio, graphical, and video data:
- Input.
- Storage.
- Output.
- Display.
- Determine how to implement each part of a software
component requiring internationalization based on the
associated countries, languages, and cultures:
- Nationality (e.g., currency, time, date, tax laws,
and import/export duties).
- Language and dialect.
- Culture (e.g., removal of offensive or inappropriate
words, images, or colors).
- Implement the implementation parts of the software
components:
- Implement a multibyte character set (MBCS) for the
official languages of the target countries (e.g., using
Unicode ISO-10646).
- Implement software components so that they satisfy
target country and language conventions for:
- Calendars (e.g., Japan, Korea, and Islamic
countries), date formatting (e.g., Europe vs. USA), and
time formatting (e.g., 12 hour vs. 24 hour clock).
- Currency formatting (e.g., currency symbol,
fractional currency, and number of digits).
- Currency translation.
- Cultural norms (e.g., avoidance of specific colors,
numbers, graphics, product names, and words).
- Line breaks and hyphenation.
- Names (e.g., number, order, honorifics, and
suffixes).
- Numbers:
- Chinese ideographic characters for numbers in
financial documents.
- National identity numbers (e.g., social security
number).
- Sorting of lists.
- Legal issues such as:
- Import/export laws.
- Tariff and sales tax calculations.
- Customs documentation.
- Trademarks.
- Privacy laws.
- Text directions (e.g., left to right, right to
left, top to bottom).
- Check to ensure that the internationalization code does
not involve making ot require changes to executable
software component including user interfaces.
- Iterate as necessary.
Software internationalization can typically be performed
using the following techniques:
- Internationalization Mechanisms
- Iteration
Software internationalization typically results in the
production of the following work products:
- Software internationalization should be driven from
internationalization requirements and conform to
architectural mechanisms for internationalization.
- There is far more to meeting internationalization
requirements then creating international content. Numerous
software components must be modified to support
internationalization.