Windows Mobile OS is a mobile operating system developed by Microsoft for smartphones. According to Market research firm IDC, the global market is expecting a major growth of Windows Phone 7/Windows Mobile share. This great global growth is expected to increase the demand of localized mobile applications.
Worldwide Smartphone Operating System 2012 and 2016 Market Share and 2012-2016 Compound Annual Growth Rate:
|Smartphone OS||2012 Market Share||2016 Market Share||2012 – 2016 CAGR|
|Windows Phone 7/Windows Mobile||5.2%||19.2%||46.2%|
Mobile Application Localization
Localization of mobile applications allow displaying content and typing inputs using a local language such as Arabic, Hebrew, Chinese, etc…. As an example, Microsoft Arabic Windows Mobile provides Arabic support for MS Office applications to be displayed correctly in target languages.
Although Mobile applications are different from web software, some fundamental basics are common including:
(Displaying content to the user: texts, numbers, validation, dates, design layout)
(internal routines to compute information based on client inputs, send/ receive data from database)
The fact that a mobile application must be downloaded and installed on a mobile device, the need to localize some items such as brief description and features along with a friendly localized setup routine become a must to ensure the usability of the application by users who understand different languages.
As with any type of multilingual software, mobile applications should be globalized and localized. Globalization plans should be adapted during the preliminary steps of the development life cycle and respected during the different developments stages in order to be able to localize the application easily. You may have heard of “globalize once, localize as many times as you need”.
Globalizing mobile applications: (Windows Mobile OS case study)
Globalization also called Internationalization is very important because it is the foundation that makes an application ready for different markets. Without globalization addressed in the application design phase, it will be very difficult and time consuming to adapt Mobile applications for different regions. Without first globalization/internationalization of the application, developers will almost always need to re-construct the application and re-build it again.
Basic globalization concepts for mobile applications:
A mobile application should be Unicode-based and handle any language & texts, this means:
– Can format different types of data correctly based on a culture such as a phone number, dates and currencies.
– Can handle different encoding standards
– Ensure that the application support non-Latin characters
Note: In windows Mobile development environment, developers can use built in CultureInfo component with culture code to use built-in formatting and sorting instead of developing custom solution.
In a Windows phone devise, there are 2 types of fonts: Reading fonts and UI fonts: Reading fonts are available by default in all the windows phone devices while UI fonts are associated with a specific culture. For example a Windows mobile in Egypt will have Arabic UI font, in France will be the French UI Font.
Always develop your windows mobile application with Unicode encoding to allow using it in a global context. Developers can use the encoding component to convert between Unicode types. Also, for web applications designed to be displayed on mobile device, the correct encoding metadata should be added in the HTML.
Localizing mobile applications: (Windows Mobile OS case study)
Localizing a mobile application is designing the software code and resources files in way that the application can be localized to any number of languages without any changes to the source code. The process has mainly 4 areas to deal with:
- separation between software logic and resources
- UI Interface
- non-text resources
- string resources construct
The separation between application logic and static content approach is a great solution to handle localization requirements for a mobile application. In previous years localization was handled by creating one application per language and as a result, if one error was discovered every version of the applications in different languages needed to be fixed. By separating the source code from the static content we can develop, test and fix errors one time only, leaving the different language version content alone.
In the Microsoft Mobile development environment developers use resource files to store all the static content texts or images. Then developers simply need a resource per language. Following this approach the application logic will be always clean and stable. Furthermore, the translation process is easier because the translator will deal only with the exported resource file without any risk of accidentally translating by mistake any internal coding. It is very important to use resource files for all static objects to avoid extra effort later to externalize the static content.
Using Resource files:
– Add resource file to the application:
– Resource file should be named as follows: (name.language-culture.resx). Example: AppResources.resx for the source language and then later after inserting all strings images and objects the file will be duplicated one per language with the following naming convention: AppResources.es-ES.resx, AppResources.ar-EG.resx etc.
– The Resource file is structured as Key / value pair. From Application source files we can call the key of a string to display the value correctly in localized language.
Some final thoughts on translating mobile applications:
- Be sure all the strings that need to be translated exist in Resource file.
- Be sure not to include any functional code in Resource files.
- Be sure to test the layout after the translation because strings can become longer after translation. During globalization phase it is possible also to allow word wrap to avoid this issue.