section 3.1

3.1 What is Internationalization and Localization?

Users from different countries or cultural backgrounds require software and
services that are adapted to correctly process information using their
native languages, writing systems, measurement systems, calendars, and
other linguistic rules and cultural conventions.

[Definition: International Preferences] The specification of the particular
set of cultural conventions that software or web services must employ to
correctly process information exchanged with a user.

[Definition: Internationalization] The process of designing, creating, and
maintaining software that can serve the needs of users with differing
language, cultural, or geographic requirements and expectations.

There are many kinds of international preferences that a Web service may
need to offer, to be considered usable and acceptable by users around the
world. Some of these preferences might include:

    * Natural language text processing (parsing, spell checking, grammar
checking are examples of these)
    * User interface language, imagery, colors, sounds, etc.
    * Presentation (human-oriented formatting) of dates, times, numbers, lists,
and other values.
    * Collation (sorting), often specified with xml:sort
    * Alternate Calendars, including holidays, work rules, weekends, the
organization of months, the numbering of years and so forth.
    * Tax or regulatory regime
    * Currency
    * ...and many more

Because there are a large number of preferences, software and Web
services often use an identifier based on language and location as a
shorthand indicator for collections of preferences that typify categories of
users. HTML for example uses the lang attribute for this purpose. XML
uses the xml:lang attribute. Java, POSIX and other software development
methodologies use a similar-looking (but not identical) construct known as
locale. In this document, we will use the term locale as the name for this
shorthand indicator for a user's particular set of international preferences.

[definition: Locale] Shorthand identifier representing the particular
specification of international preferences that a (certain category of) user
requires.

Generally, systems that are internationalized can support a wide variety of
languages and behaviors to meet the international preferences of many
kinds of users. When a particular set of preferences is operationally
available (often called "enabled"), then the system is referred to as
localized. 

[Definition: Localization] Localization  is the tailoring of a system to the
individual cultural
expectations for a specific target market or group of individuals. The target
group is often indicated by the Locale identifier.

However, it is important to note that many of the international preferences
do not correlate strongly with Locale identifiers based solely on language and
location.
For example, the locale of "en-US" (English, United States) encompasses
several time zones, so the user's prefered time zone cannot be deduced
by the locale identifier alone.  Many cultures have more than one way of
collating text, and so the appropriate sort ordering cannot always be 
infered from the locale. For example, Japanese applications may use different
orderings known as radical-stroke and stroke-radical.
Germany and other parts of the world may use different sort orderings known as
dictionary vs phonebook.

Distinguishing these situations requires forethought in the design of the
service
and the setting of reasonable default values.

Each user or system in a Web services interaction may have its own
default locale settings. The interplay between the requester, provider,
service host, intermediaries, and so forth may have complex implications.

Received on Tuesday, 30 March 2004 12:34:09 UTC