Open System Services Porting Guide (G06.24+, H06.03+)

Table Of Contents
Porting UNIX Applications to the OSS Environment
Open System Services Porting Guide520573-006
7-29
Using the OSS Internationalization Subsystem
Using the OSS Internationalization Subsystem
Internationalization is the process of developing software applications without making
assumptions about the language, encoding methods, and cultural data that the
applications are expected to handle. Internationalized applications support new
languages, cultures, and code sets without requiring changes to source code. Quite
simply, internationalized code is portable. The OSS Internationalization subsystem
follows POSIX standards and XPG4 specifications and is currently supported only in
the OSS environment.
This subsection gives an overview of the OSS Internationalization subsystem and
highlights some considerations when writing or porting for internationalization. For
details on developing an internationalized application, use the Software
Internationalization Guide, the C/C++ Programmer’s Guide, the Open System Services
Library Calls Reference Manual, and the X/Open Internationalization Guide Version 2.
Internationalization Design and Development Guidelines
You can minimize the effort of internationalizing applications by starting at the
development stages:
Code preparation: ensure data transparency, remove hard-coded messages, and
remove locale-dependent information and assumptions about character encoding.
See Porting Considerations for Locales on page 7-29.
POSIX standards and XPG specifications: use as a model for developing
internationalized programs where users specify a locale for the operating
environment.
A key task when beginning to internationalize an application is to separate the
program’s base function (algorithms, logic, and purpose) from its locale-sensitive data
(error messages, date formats, time formats, currency formats, collation schemes,
character sets, and code sets). Then when an internationalized program needs to
support a new locale, only the locale source file is localized.
Porting Considerations for Locales
For an internationalized program to support a variety of languages, cultures, and code
sets, the data for the source country must be transformed into data that is appropriate
for target countries. This porting consideration is known as “localization.”
A locale is the part of a user’s environment that defines the users language, cultural
conventions, and coded character set. When porting code for multiple locales, be
aware of character information considerations such as collating sequences, case-
conversion, and format of data—for example, date and time formats.
A program must be properly initialized before functions that support international
behavior can access locale-specific information. The setlocale() function call links
a program with the appropriate locale data, setting your locale environment variables.
For additional information on setting locale variables, refer to the sh(1) and