Tuesday, April 26, 2016

Globalize your mobile content - App Localization

Mobile applications are built for specific purposes and requirements, but it has to cater to a wide audience beyond linguistic and geographical barriers. This involves a great deal of personalization of the application to the users specific language.
Why is Localization Important?
Below are a few stats that clearly emphasize why an applications have to be localized.
  • 89% of the Internet users are outside the United States
  • When it comes to consumer preference 52.6% of consumers feel that localized content is more important than the price they pay for the service
  • Vendors receive $25 for every $1 spent on localized content proving consistent return on investment. This has resulted in 71.43% of Fortune 500 companies adopting localization to reach more customers in the countries they already operate in
English is the dominant language among application development organizations and as a result the great majority of apps launch only have an English language option. This approach has failed, in turn causing reductions in usability and reachability.
What Does it Take to Localize an Application?
Every smartphone platform has provisions for developers to localize content, but one has to consider all areas in this landscape. Areas of consideration for mobile application localization include:
  • UI context switching 
  • Handling bi-directional text (RTR <-> LTR)
  • Encoding formats for languages like Chinese, Arabic, etc.
  • Support from web services and middleware

Localization Solution Approach in Detail
Be it Android, iOS or any other mobile application platform, the labels and text content to be localized are placed inside a XML/JSON based common resource file bundled within the app package.
This involves carrying out the strings to different resource files with the equivalent text for different languages. A respective key value pair will identify every specific text (). The resource files are placed inside the folders with the respective language identified by default values within the OS.
UI Context Switching
When the language context is changed, say from English to French, then it would logically fetch the localization resources mapped to French language and display the corresponding text on the user interface. With respect to multimedia resources (images, audio and video), which require localization support, mobile platforms/OS provide region-based qualifiers to the resources folder structure. A resource folder can be differentiated by adding the “-xx” qualifier to the name, where xx would stand for a specific language (en - English, fr - French, etc.). This would help the OS to select region specific resources as well.
  • The user interface should be mirrored when displaying right-to-left languages
  • If base internationalization and Auto Layout is used in iOS, most of the user interface will appear mirrored automatically
  • The text direction changes to right-to-left with the exception of phone numbers and country codes, which are always left-to-right
  • Some views and controls in the user interface may not change direction automatically which can be fixed programmatically
Handling Bi-directional Text
Use of standard views and controls that automatically handle bi-directional text, as described in Displaying Text is recommended. On creation of custom controls for text input, bi-directional text has to be handled explicitly.
Encoding Formats for Languages
There are several different encoding formats such as ASCII encodingUnicode & UTF-8/UTF-16 are available but to support Internationalization UTF-8 can be used.
Support from Web Services and Middleware
Employ a common character-encoding format across mechanism either UTF-8 or UTF-16.
The following is an example of how internationalization should be handled incase of SOAP services.
Localization in a Mobile Client - SOAP Architecture