Need For Globalization:
Today, growth of any business requires its expansion beyond the traditional geographical limits. This means Globalization. Here,software development has been considered as an example :
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.