Jun 1, 2014

Internationalization

Daily, millions of users consume a huge amount of information available in Internet. The explosion of mobile devices has done nothing but encourage the devouring attitude. Few years ago, the only method accessible was using a desktop computer. Nowadays, users in their way to work or back to home, access different to websites looking for information to satisfy their desires.

Companies have seen this opportunity and have turned to distribute content worldwide. One of the big issues is that users decline to be limited to a fixed category no matter if it is cultural, political or language. Customers demand that their ideas, culture and beliefs are respected. The fact is that these customers are no longer situated in a specific area or country; furthermore, they are located all over the globe. News, politics, shopping, games, are some of the main areas that an average users prefer. If you want to succeed and increase your the number of loyal clients, you have to think globally.

One popular way to reach more users is simply to internationalize your software products. By internationalize we mean, ensure that it will work well for, can be easily adapted for, users with different cultures, regions or languages. In the software world it’s commonly named as “i18n”.

Localization versus Internationalization


Sometimes, these two terms are often considered as synonyms across different websites but the fact is they aren’t.

Localization refers to the process of adapting a product, application or document content to meet the market needs from the view of culture, language and other related requirements (also called “l10n”).

Some customizations that are of concern:
  • Numeric.
  • Date and time formats.
  • Use of currency.
  • Keyboard usage.
  • Collation and sorting.
  • Symbols, icons and colors.
  • Text and graphics containing references to objects or actions (in distinct cultures may have different meanings).
  • Varying legal requirements

According to W3C, internationalization is the design and the development of a product, application or document content that enables easy localization for target audiences that vary in culture, region or language.
Typical activities that are considered:
  • Designing and developing in a way that removes barriers to localization or international deployment (using Unicode, handling correctly legacy characters, issues when concatenating strings, avoiding dependencies in code of the user interface, etc.).
  • Providing support for features that may not be used until localization occurs (supporting bidirectional text or identifying the language, adding specific CSS primitives for supporting vertical text or other non-Latin typographic features).
  • Enabling code to support local, regional, language, or culturally related preferences (include date and time formats, local calendars, number formats and numeral systems, sorting and presentation of lists, handling of personal names and forms of address).
  • Separating localizable elements from source or content, such that localized alternatives can be loaded or selected based on the user's international preferences as needed.

These items do not necessarily include localization of the content; they are good practices that ensures that if a migration needs to take place it can be done easily (without a catastrophic refactoring).
Internationalization is a fundamental step in the designing and developing process for delivering content globally. Anyway, it is much more expensive and time consuming readapting a linguistically and culturally deliverable than to include this process at first in the development process.

Some general internationalization guidelines follows to illustrate the power and scope of this process.

Text and Words Guidelines


  • Use simple sentences. Depending of your needs and target market the language might be different, but it is recommendable to use English if you think in something global. Furthermore, it is easier to translate from English to other languages. In addition, use a restricted set of vocabulary and follow Noun-Verb-Object sentence structure. Users don’t have all the same language proficiency. You want attract them, not disinterest or bore them.
  • Try to avoid acronyms, abbreviations and slang. All are difficult and sometimes confusing to translate.
  • Avoid using three noun words (stringing three nouns together).
  • Don’t use local or computer jargon (for example: AI for artificial intelligence, App for application, Bug for programming error, etc.).
  • Avoid culturally specific examples. In some countries they are not seen with good eyes.
  • All references to national, racial, religious and sexist stereotypes should be avoided. Even if they are jokes.
  • A telegraphic writing style is not recommended (terse style where words such as “and,” “the,” and “is,” are omitted).
  • Write in a formal or semi-formal style. An over-friendly style is not recommended as it can be considered condescending and irritating for the reader.
  • Adhere to local user language idioms and cultural contexts. There are some words that have different meaning in distinct countries.
  • Preserve the original word if it can’t be translated. For example: “Disk Drive” and “zooming” don’t exist in Thai.
  • Some words translated to other languages need more screen space. For instance, in Gmail “Inbox” is translated to Spanish as “Bandeja de Entrada”. Take care of extra space for this kind of issues (horizontally and vertically speaking).  The National Language Technical Center from IBM proposed a guideline for calculating the extra space required from the character number.
  • The main choices at the moment of selecting alternative languages should be: German in Europe, Arabic in Middle East, Japanese in Far East as suggested Microsoft. This company also applied this guideline in the following order due to the complexity of each one: Japanese, Arabic and German.
  • Place icon captions outside of the graphic to save redrawing the entire icon per translation. Avoiding this, the only thing needed is to translate the text to the desired language.
  • Adhere to local formats for date, time, money, measurements, addresses, and telephone numbers.

Image and Symbols


  • Adhere to local cultural and social norms. The meaning of the images may confuse the users. Objects like mailboxes, trashcans are different in some countries. Develop proper images for the cultures where they will be used.
  • Use internationally accepted symbols. The International Standard Association (ISO) has developed standard shapes for different purposes. Don’t reinvent the wheel.
  • Develop generic images. If a user uses many versions of the same product and images are diametrically different, he will be totally lost. Try to standardize the images in your product.
  • Be extremely careful with:
    • Religious symbols (crosses and stars).
    • The human body.
    • Women.
    • Hand gestures.
    • Flags.
    • Controversial geographic maps.
    • The cross and check for check boxes (the O mark used in Korea and Japan).
    • Review proposed graphical images early in the design cycle.

Color, Sequence, and Functionality


  • Adhere to local color connotations and conventions. The association of colors is different in many countries. In Spain, mailboxes are yellow but in England and Argentina they are red or blue. The following chart some of the interpretations of colors in different countries:
  • Provide the proper information sequence. The information shown in the screen has a logical flow that in some countries may be different. Clear examples are cultures where they read from right to left like Arabic countries or from top to down like Japan or Korea.
  • Provide the proper functionality. Some functionalities provided in the product can be accepted in some countries but in others not. All the functionalities should be reviewed to ensure that they don’t generate any cultural trouble.
  • Remove all references to features not supported. All internationalization functionalities that are not available or not supported should be eliminated. Otherwise, they will generate noise and confuse the users.

From any point of view, internationalization should be considered from the starting point. Modern web application frameworks such as Django Framework and Spring Framework provide internationalization features to help the developers to build powerful web applications without suffering a complete refactoring. Furthermore, the cost and time of starting from scratch rather than trying to internationalize the product once deployed is quite minimum. Even though a global scope is not aimed, things in the future might change. Expect for the unexpected...just in case.

References


  • W3C Website - http://www.w3.org/International/
  • Designing Web Usability, Jakob Nielsen, Peachpit Press
  • The Essential Guide to User Interface Design: An Introduction to GUI Design Principles and Techniques, 3rd Edition,Wilbert O. Galitz, John Wiley & Sons