Need for
Globalization
Businesses are becoming increasingly global every day. By global, we mean,
selling products and services to a global audience. With software becoming an
indispensable tool to run businesses, it is an imperative that the software
used by businesses also are global in nature to remain competitive in the
global arena. Globalization also referred as G11N because of the eleven
characters between G and N, in the context of software is the act of making of
applications usable in more than one country.
The need to globalize software is crucial because the Internet makes it easy to
sell your products across the globe to anyone and most of the people surfing
the net today are non-English speaking. By an estimate nearly 70% of surfers by
the year 2005 will be non-English speakers.
Retrospectively looking at the penetration of Internet in our own country one
can make tentative estimates of what the Indian market will be down the line
say in a year or two. Most of the users of software and the Internet will be
native language speakers. Given the large cultural and linguistic variation of
the country, it is important to globalize software applications so they can be
sold in the different states across the country. Already there are many Indic
variants of popular software products that are being sold.
Microsoft provides support for many Indic languages through the National
Language Support (NLS) API. Until now, Bangla and Malayalam were the two
languages that are not supported directly on Windows. The new Windows XP
service pack 2 provides support for these two Indic languages. This opens a
whole new market to Software vendors.
To develop applications that are world ready you require adequate support for
software development and conformance to standards. Window XP is an world-ready
operating system as are other applications such as Office and Visual Studio.
.NET supports development of world ready applications by supporting standards
such as Unicode and providing a host of API to work with international,
culture-specific, and linguistic issues.
Software globalization involves two processes known as Internationalization and
Localization. The subsequent sections of this article explore these.
Internationalization
Internationalization also referred as I18N because of the eighteen characters
between I and N, in the context of software is the act of designing software to
handle linguistic and cultural variations to avoid engineering overhead at the
time development.
Basically, I18N involves separation of language and cultural information from
the program source code. Usually programmers, hardcode string literals,
currencies, numbers, calendars and the like. If a program that contains these
hardcoded artifacts needs to be sold to people of different country and
culture, then the entire source code has to be rewritten to change this
hardcoded information. A properly internationalized application does not incur
this overhead of changing parameters to suit an audience of different culture
and country. Introduction of new standards and practices or changes to existing
standards may also raise issues in I18N. For example, the adoption of the
common euro currency in Europe affects I18N.
An Internationalized application,
- Aggregates information that are language and culture specific into external resource files
- Enables the user interface (UI) to display different language and cultural information
- Makes sure that all de jure and de facto standards for a country or region is supported
- Makes sure the characters to display a language or languages of a country or region are supported
The above four points are not exhaustive but they are the most important and
basic requirements for internationalizing an application. In practical terms,
it is nothing but writing an application in such a way that string literals,
currencies, numbers, calendars and the like are not hardcoded but they are
picked up at runtime based on country and region settings of the system or
according to the preference of the user.
I18n should be integrated in the design process of the application. The major
advantage of internationalizing software is because it assists in localizing
software, thereby reducing cost of software and time to market.
Every application consists of a code block and data block. The data block
contains culture specific data. This data is used by the code block. The
information contained within the data block is always used based on a set of
rules. These rules vary from country to country. For example, in the United
States currency denominations are prefixed with a Dollar ($) symbol and in
Europe the same are prefixed with a Euro (€) symbol. In India we require
currency to be prefixed using Rupee (Rs) symbol. Therefore these country or
region specific rules could pertain to
- The data format being used for a language, or the character specifications and encodings
- Date and Time formatting
- Numeric and Currency formatting
- Weights and Measurements
- Rules to sort words of a particular language
Any internationalized application has to be tested for localizability.
Localizability is nothing but preparing an application or an application being
ready, for localization.
Localization
Localization also referred as L10N because of the ten characters between L and
N, in the context of software is the acts of making an internationalized
application conform to rules of specific culture or locale.
A Locale denotes a place geographically, however in software terms locale refers
to information pertaining to that place. Table 1-1 shows some of the
information that Windows stores as part of a locale.
Locale Data
|
Locale or Locale Data |
United States |
India |
|
Country / Region |
United States |
India |
|
Language |
English |
Hindi, English, Bengali, Malayalam, Urdu, … |
|
Written Scripts |
Latin |
Devanagari, Bengali, Malayalam, Perso-Arabic, … |
|
Direction of Text |
Left to Right |
Left to Right, Right to Left |
|
Currency Symbol |
$ |
Rs, रु, টা, ക, … |
|
Long Date Format |
August 04, 2004 |
04 August 2004, 04 আগস্ট 04 ഓഗസ്ററ് 2004 |
|
Short Date Format |
08/04/04 |
04-08-04 |
|
Calendar |
Gregorian Calendar |
Gregorian Calendar, ... |
|
Default Paper Size |
US Letter
(81/2 x 11 ins) |
A4
(210 x 297 mm) |
|
Decimal Separator |
. |
. |
|
List Separator |
, |
, |
|
Thousands Separator |
, |
, |
This table shows some categorized locale information for United States and
India. As you can see there are more than one de facto standard based on
culture and region that appears on the column representing India.
Note:
For a comprehensive list of NLS data set supported by the NLS API, refer MSDN page.
The process of Localization involves translation of UI elements such as strings
used in buttons, labels, text messages etc, online help information,
documentation, and inclusion of language specific components such as spell
checkers etc. Apart from translation one should use the locale information to
format and represent data according to the preferences of a particular culture
as denoted by its locale.
In windows environment, to localize an application you provide external resource
DLLs from which the resource is loaded into memory at runtime by the
application. These resources are then used by the application to provide a
localized UI to end user.