218
edits
Note: Currently new registrations are closed, if you want an account Contact us
(reverted spam) |
|||
Line 5: | Line 5: | ||
-[[wikipedia:Genesis|Genesis]] | -[[wikipedia:Genesis|Genesis]] | ||
==Introduction== | |||
The Software industry started in US,and traditionally software that allows only English input and output has been forced upon global users. This is based on this question from developers: "Why can't they all speak English?". However if a user is given two software products that offer same features, most people would choose one in their native language. | |||
Now a days software development centers are concentrated in countries like India, Australia, Mexico and Israel. As software is developed in different parts of world, successful companies believe that it is critical that their software products interact with their users in their native language and local conventions. Monolingual and mono cultural software products are not competitive. | |||
Let us illustrate the problem of monolingual programming practice by an example. | |||
Below given is a program to check the valid inputs from a user. | |||
char c; | |||
//Get user input | |||
if((c>='A' && c<='Z') || (c>='a' && c<='z')){ | |||
//Accept the input | |||
}else{ | |||
//Error Handling | |||
} | |||
What is the problem with this code? This code is wriiten in the assumption that users are going to input english text and letters are between A to Z. The above code will not work in Danish. Danish alphabet has 3 more letters after Z. This will frustrate Danish users. Now imagine what would happen if a chinese user tried to enter data? | |||
Converting an American software package into a multi-lingual product or "Americanizing" foreign software entails more than translation. A properly localized software package allows the local user to exploit the software's power to do exactly the same things that the original software does for the original user, but according to the local user's own rules and conventions. The local user will not be distracted by imprecise or ambiguous features that can result from inadequate attention to cultural and linguistic differences, nor from the nature of the software and engineering constraints on equipment. | |||
Around the world local conventions exist for number formatting, currency, dates, times, names, addresses, measurement, calendar. Besides local conventions software developer must consider cultural diversity issues related to numbers and colors. In Asian countries white denotes death in general but in western countries it is black. In Latin America death is denoted by purple. In US 13 is considered unlucky, 69 has sexual connotations, and 666 is the sign of the devil. In Hong Kong the number 7 is unlucky, while in India some people consider 7 as lucky number. | |||
Even English is not same across the world. See the following examples: | |||
''' US english''' ''' UK english''' | |||
Aluminum Aluminium | |||
Center Centre | |||
Internationalization Internationalisation | |||
Flavor Flavour | |||
Tire Tyre | |||
Elevator Lift | |||
Hood Bonnet | |||
Mutual Fund Unit Trust | |||
Pavement Road | |||
Sidewalk Pavement | |||
Trunk Boot | |||
Mere translation of the strings will not solve the problem. See the following examples. | |||
Here are signs from hotels around the world showing what can happen if you don't have knowledgeable translators: | |||
''Please leave your values at the desk'' - France | |||
''You are invited to take advantage of the chambermaid''- japan | |||
''Ladies are requested not to have children at the bar''- Norway | |||
==Customized Localization== | |||
Developing multiple versions of the same software for different languages/cultures is known as Customized Localization. Many companies actually do this and it is very expensive to maintain. Any bug fix, feature addition requires replication of the same among all versions. Then all these versions should be tested independently. Definitely this would be a nightmare. | |||
==Internationalization== | |||
This is an alternative to customized localization, where the software is made in such a way that it supports all languages all over the world and same version can be sold anywhere in the world. | |||
Internationalization is commonly known as I18N(Eye-Eighteen-En) in software industry.Internationalization begins with I and ends with N , and 18 characters in between. | |||
"Internationalization is not a feature"-Tom McFarland,HP | |||
Usually people wont ask for internationalized softwares, but they expect that the software follows their local conventions correctly. | |||
'''Gettext''' | |||
* Get text is the tool which is used for runtime internationalisation. | |||
* Internationalisation is achieved in gettext through the following phases: | |||
## Preparing source code for internationalisation | |||
## Extraction process | |||
## Translation Process | |||
## Compilation of translation | |||
## Retrieval of translation | |||
==Localization== | |||
The process of adjusting internationalized software to a particular locale is called localization.A common acronym for this term is L10N(10 characters in between L and N). You can think of software internationalization as a prerequisite for localization. | |||
The product is first localized for the market where the software is developed. Through localization, you are creating versions of the softwares without modifying source code or binary. This is achieved through externalization of text messages and locale specific images/bitmaps. People working on localization changes these texts/images according to their local language/conventions. | |||
A very simple example is given below in java(Technical details skipped for simplicity). | |||
public class HelloWorld{ | |||
public static void main(String args[]){ | |||
System.out.println("Hello world") | |||
} | |||
} | |||
output: Hello world | |||
In the above code "Hello world" is hard coded. We need to externalize that string for localizing the application. Now see the internationalized code: | |||
import java.util.*; | |||
public class HelloWorld{ | |||
public static void main(String args[]){ | |||
ResourceBundle resources; | |||
try{ | |||
resources=ResourceBundle.getBundle("messages"); | |||
System.out.println(resources.getString("Hello world")); | |||
}catch(MissingResourceException e){ | |||
//error handling code.. | |||
} | |||
} | |||
} | |||
And the resourcebundle messages_ml(ml is the ISO language code for Malayalam) contains the following text: | |||
Hello world=ലോകമേ നമസ്കാരം | |||
Now the output changes to | |||
ലോകമേ നമസ്കാരം | |||
==Globalization== | |||
The term globalization (G11N) is often used synonymously with internationalization. But usually it encompasses both Internationalization and Localization. It is a process which involves design, implementation and localization. | |||
== The Importance of Localization == | |||
Currently, people who want to use computers must first learn English. In a country with low [[w:Literacy|literacy rates]], this blocks access to [[w:Information technology|information and communications technologies]] (ICTs), especially for the rural poor and women who do not have equal access to education. Even after having learnt English, users must pay hundreds of dollars to license foreign software, or resort to widespread illegal copying of software, in order to gain access to ICTs. In short, access to information technology is one of the keys to development, and localized FOSS applications remain a crucial missing link in communications infrastructure. | |||
[[w:Localization|Localization]] brings the following benefits: | |||
# Significantly reduces the amount of training necessary to empower end-users to use a computer system. | |||
# Facilitates the introduction of computer technology in [[w:Small and medium enterprises|Small and Medium Enterprises]] (SMEs). | |||
# Opens the way for the development of computer systems for a country's national, provincial and district level administration that will allow civil servants to work entirely in the local language and manage databases of local language names and data. | |||
# Facilitates the decentralization of data at provincial and district levels. The same applies to utility companies (electricity, water, telephone), who will develop local language databases, thereby reducing costs and giving better service to citizens. | |||
# Allows citizens to communicate through e-mail in their own language. | |||
# Empowers local software development companies to work for the administration, the public sector and private companies. | |||
# Provides the local design industry with good fonts. | |||
# Helps universities train more software engineers. | |||
The beneficiaries of this multi-stakeholder project are: | |||
# Directly, all local computer users, who will have easier access to the use of computers as they will not have to learn English first. | |||
# Indirectly, through improvements in governance using native computer systems, all local citizens in the quality of their dealings with the administration. | |||
# The local government who will have the opportunity to develop databases and applications in the local language. Sufficient technology and empowered local development companies will be available. The government will also have the tool to coordinate applications among similar administrations (e.g., provinces), so that IT-based improvements in governance can be made at the lowest possible cost. | |||
# The [[w:Software industry|software industry]]. The government's use of standards-compliant computer technology encourages software companies to start developing compatible computer systems that will be used by the different bodies of the administration, thereby creating a stable software industry in the country. Once this expertise is developed (using FOSS), these companies will be empowered to undertake similar projects for foreign companies at extremely competitive prices, facilitating sales beyond the local market. | |||
Source: http://en.wikibooks.org/wiki/FOSS_Localization/Introduction | |||
==Culturally Biased wrong Assumptions== | ==Culturally Biased wrong Assumptions== |