Learning Resources
 

Internationalization and localization


In computing, internationalization and localization (other correct spellings are internationalisation and localisation) are means of adapting computer software 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 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.

The terms are frequently abbreviated to the numeronyms i18n (where 18 stands for the number of letters between the first i and last n in internationalization, a usage coined at DEC in the 1970s or 80s) and L10n respectively, due to the length of the words. The capital L in L10n helps to distinguish it from the lowercase i in i18n.

Some companies, like IBM and Sun Microsystems, use the term "globalization" for the combination of internationalization and localization.

Microsoft defines Internationalization as a combination of World-Readiness and localization. World-Readiness is a developer task, which enables a product to be used with multiple scripts and cultures (globalization) and separating user interface resources in a localizable format (localizability, abbreviated to L12y).

This concept is also known as NLS (National Language Support or Native Language Support).

If the application is very complex, with a large number of JSP pages and the requirement is to support multiple locales? What factors should you consider before taking the actual step of changing your code to do this? Here are a few:

1.      Identify the areas in your application that will have to change in order to support users from different countries. There are two main areas that will need change:

a.      The visible part of your application – the User Interface. The user interface specific changes could mean changes to text, date formats, currency formats etc. More information about this is provided in section 19.1.3

b.      The invisible parts of your application – database support for different character encoding formats and your back-end logic that processes this data.

2.      Identify the prospective clientele of your application. A country that may not seem to be at the top of your list right now might actually be a good bet based on the size of it’s population. For example, the new generation of young adults in India is turning out to be a growing consumer of foreign products. Companies like Nokia and Coke are cashing in on this trend. Similarly, web applications have to be flexible enough to support different locales. It never helps to have to go back and change your design in order to accommodate new locales or any other internationalization specific changes.

3.      Once the end user has been identified, see if your software supports their language-based needs. For example, do you have the software to develop a web based search engine that accepts input in Arabic and returns search results?

4.      Identify a timeline within which you will have to deliver the web application with support for a given region and language. For example, the support for the French language in France (fr_FR) is different from the support for French in Canada (fr_CA) in terms of the presentation details. For example: the following code segment formats the same number for two different locales both speaking French.
 
5.      The last but also the most important factor is to identify the actual “type” of internationalization approach to use. That is, do you want to create a new copy of each JSP page per locale or do you want to have a single JSP page that works for different locales.


Many companies that decide to go global have some specific goals in mind that justify the cost. Here are a few main ones:

1.      An increase in the number of users as more and more people will be able to use the application in their native languages, all this without having to create a single office in each of the regions supported. The mantra of any profit making company is quite simple actually and works well for internationalizing applications too: More users = More sales = More profit.

2.      Though the cost of localization is high as each individual page will have to be translated into several languages but the benefits from sales almost always outweigh the costs. A lot of big companies in the US, Sun Microsystems included, obtain around half of their revenue from outside of the US.

3.      By localizing a web application, the user level of comfort with the application increases. The primary aim of localization is to “get through” to the user. And what better way to do this than in a language that the user is comfortable with?


A list of the commonly localized fields in a web application:
1.      Messages – These could be status messages displayed to the user or error messages
2.      Labels on GUI components – labels, button names
3.      Dates
4.      Times
5.      Numbers
6.      Currencies
7.      Phone numbers
8.      Addresses
9.      Graphics – images have to be very specific for every locale and cater to each region’s cultural tastes.
10.   Icons
11.   Colors – Colors play a very important role in different countries. For example, death is represented by the color white in China.
12.   Sounds
13.   Personal titles
14.   Page layouts – that’s right. Just like colors, page layouts can vary from locale to locale based on the country’s cultural preferences.


Suggestions
• In terms of internationalization, operators must support appropriate character encoding on the signaling channel which would allow all characters of the world to be represented.
• Need of investigation and study of major issues for enabling Mobile web in Indian languages
• Standardization of mobile media also required to be addressed taking into consideration of specific requirements of each of Indic languages.