The document discusses internationalization and localization. Internationalization is the process of designing software to work for multiple languages and regions, while localization is the process of adapting internationalized software for a specific locale. Globalization involves both internationalization and localization. The document outlines best practices for internationalization including separating UI from logic, standardizing formatting, and designing for localization. It also discusses common internationalization approaches like using frameworks and conditioning compilation.
2. Explanation of Internationalization
• Internationalization and localization are means of
adapting computer software (as we are doing for a client)
to different languages, regional differences and technical
requirements of a target market. Internationalization is the
process of designing a software application so that it can
potentially be adapted to various languages and regions
without engineering changes. Localization is the process of
adapting internationalized software for a specific region or
language by adding locale-specific components and
translating text. Localization (which is potentially
performed multiple times, for different locales) uses the
infrastructure or flexibility provided by internationalization
(which is ideally performed only once, or as an integral part
of ongoing development).
3. Globalization = Internationalization +
Localization
Internationalization(I18N)
• Internationalization is the process of enabling a product at a technical level
for localization
• Internationalization primarily consists of abstracting the functionality of a
product away from any particular culture, language so that support for
specific languages can be integrated easily
Localization (L10N)
• Localization refers to the adaptation of a product, application or document
content to meet the language, cultural & other requirements for a specific
target market
• Localization can entail customization for all numeric dates, currencies,
symbols, icons etc.
4. Globalization Life Cycle
Internationalization
and localization
Development and QA
Cycle
Product Analysis
(Global/ Local)
Product Design
and Development
(Enabling I18N)
Internationalized
Product Testing
and QA
Product
Localization
(Language
Translation and
Lang Pack
development
Localization
Testing and QA
Localized
Technical
Documentation
(Product
documents and
help files)
5. Internationalization Approach
• Many different techniques exist for handling
localization, ranging from conditionally compiled
code to dynamically loaded modules.
• Starting basic step – separate the user interface from
the logic.
• The first step is to make sure the program can handle
multi-byte character sets.
• The next main step is to standardize the formatting
of values such as dates, times, currencies, and other
measurements.
• Making an internationalization Framework
6. Internationalization and
Localization Best Practices
• Address cultural sensitivity and localizability
issues as early as possible.
• Isolate language/culture-sensitive code or
features to make code changes more
manageable.
• Avoid text in graphics
• Watch the size of string buffers.
7. Internationalization and
Localization Best Practices
• Design the UI to accommodate the text expansion that
results from translation
• Enable functions that depend on UI element location
to accommodate changes due to text expansion or
mirroring.
• Consider the cultural impacts of color.
• Architect solutions to appropriately use translated or
localized content
• Design the layout of UI controls for localizability.
• Design icons and clip art for international users or
facilitate their localization if necessary
8. Internationalization Suggested Approach
• ICU is a mature, widely used set of C/C++ libraries providing Unicode and
Globalization support for software applications
• ICU is widely portable across all platforms
9. Internationalization Alternative Approach
• Preparing Nib Files for Localization
• Use Canonical Language and Locale IDs
• Use Bundles
• Support Unicode Text
Mac OS- X
• Create code that takes advantage
of international functionality
offered by Microsoft Windows
• Compile all international editions
of the program from one set of
source files
• Use Resources
• Support Unicode Text
Windows
10. Advantages and Disadvantages
Advantages
• Opportunity to exploit an
existing competitive edge in
new markets
• Increased revenue generation
• Product becomes more mature
Disadvantages
• The physical fonts used for
rendering the text vary
between different
implementations, host
operating systems, and locales,
so an application can not
achieve the same look
everywhere. Also, the mapping
mechanisms occasionally limit
the range of characters that
can be rendered.
• This approach is substantially
harder to program.