Saturday, August 23, 2008

Uncovering Myths about Globalization Testing- 4

Myth 11: Localization - means Localized product on a localized Operating System, Internationalization- means Localized product on English Operating System

One of the readers of my previous Globalization testing related post had commented the following-
I have always heard the below definitions for L10n and I18n:
Localization - means Localized product on a localized Operating System.
Internationalization- means Localized product on English Operating System.
Could you please clarify. As a person who has not done any such testing, I am always in doubt regarding this.

It made me realize that one of the most misunderstood aspects in the world of Software Globalization is comprehension of terms “Internationalization” and “Localization”. I too used to be having a wrong notion about these terms before I started working in this field. I think the major reason for the incorrect understanding about these terms is the lack of awareness and exposure in the field (particularly in India). Moreover, the available definitions and literature also makes it a bit hard for a person with no background in Software Globalization to fathom the basic differences in Software Internationalization and Localization. So, without delving any deeper into text book definitions of Internationalization and Localization, let me attempt to explain these terms as I have experienced while working in the Industry.

Software Globalization:
At the most basic level, Software Globalization= Software Internationalization + Software Localization.
Simply explained, the term “Globalization” relates to all the activities that are required to conceptualize, design, develop, test, maintain and probably sell and market the product in supported International geographies. Globalization is a superset term which constitutes Software Internationalization and Software Localization. Whenever someone uses the term “Globalization testing”, it primarily includes testing of all the changes that needs to be included into the Software to make it fit to be developed in different languages or technically put- Internationalize it. We will look deeper into the phrase “testing of all the changes” (used in previous sentence) in the following points.

What is Software Internationalization ?:
As we now know, one of the activities that come under Software Globalization umbrella is “Internationalization”. Lets forget about Internationalization testing for a moment and focus our thoughts on “What is Internationalization ?”. The primary thing to keep in mind when we talk about Internationalization is that- Internationalization is a Software Design and Development activity.
One question that comes to mind at this point is- If Internationalization is a Software Design and Development activity then how is it different from Design and Development of base Software product (By base Software product I mean that English language Software assuming the Software gets developed in English language first and then into other languages). Base Software development includes development of all the features and functionalities of the application e.g. Taking an example of Windows Notepad application, Base product development includes- writing code for functionality of File/New, Open, Save, Save-as menu, Edit menu and so on. So base product development ensure that the basic features that a product offers are in place.
So, where does Internationalization come into Picture here ?
When we talk of selling the Software in International market, broadly 2 types of requirements are taken in to consideration
a) The features and functionalities that the base language product offers should be available in International version of the Software (there can of course be some exception e.g. say German market does not need a feature that may be a in demand in US market)
b) International requirements i.e. requirements pertaining to the locale in which the Software is being sold. Consider the following examples-
• For a software being developed for Arabic market, it should provide a provision to write in a Left to Right fashion (as against English- Right to left).
• Traditional Chinese is written from Top to bottom so the Software product being sold in that market should have UI supporting text from Top to bottom.
• For a software being sold in International market, one of the primary requirements is that it should support the character sets for that particular language e.g. German, Japanese text etc. If the product does not support the local character sets, it cannot be sold in those markets as the consumers will invariably reject the Software whose UI is translated but it does not support data entry in translated language.
• If a product supports multiple languages then one of the possible Internationalization feature is ability to changing the language at a run time.
• One of the important Internationalization requirements is that the core binaries of product (having code for product’s core features) should not change when Software is internationalized in different languages i.e. same code base should be used for a Software in English, German, Japanese languages etc. One of the aims of Internationalization is achieve the same code base across all the languages. If the code base differs as we move from one language to another, then the overall cost of product development and testing becomes multifold.
• And there can be many more such requirements.
And relooking at above 2 broad classifications of requirements, the requirement b) comes under scope of Internationalization i.e. these requirements are covered as a part of Internationalization design and development. So an international Software leverages the features developed in base language (requirement a) above) and in addition includes varios International requirements.
I hope the above examples provides some insights into what Design and Development activities comes under the scope of Internationalization, why is Internationalization important and how is Internationalization different from base product development.

What is Software Localization ?
So, where does Software Localization comes into picture in Software Globalization ? As mentioned earlier- Software Localization is one of the activities of Software Globalization. In simple terms, Localization deals with presentation aspects of International Software. So if I ask what is the basic difference one observes after having a look at German language User Interface as against an English Language user Interface ? The obvious answer is “Language”. So, one of the prime tasks of Software Localization is translation of various User Interface elements in target language. Remember- we are not talking about Localization testing here, its just an plain explanation of term “Software Localization”.

Who does what ?
Software Internationalization is carried out by either the base product developers who are well versed with Internationalization concepts or it is done by the Software Internationalization experts. Internationalization is indeed an experts’ job.
Translation activity in Software Localization is carried out by the language experts preferably by the people who are the native speakers of the language (usually not the people who have learnt the target language as a second language).

Where does Software Internationalization and Software Localization meet ?
In an ideal scenario, Software Internationalization is done when the base product development is being done i.e. Internationalization requirements are built into the Software when the base product is being developed. An important point here is that Internationalization is built into the Software much before it is actually translated. This is an important concept to understand.
The translation work starts only after the base product User Interface is finalized i.e. no more changes are planned to the User Interface. After the User Interface Freeze, the language experts get the English text, they work to translate the same and after the entire translation is done , the translated resources files are included in the product.

Keep watching this space, there’s still a lot more to come on Software Globalization!

No comments: