How to develop Multi language apps for mobile devices. Part 1
Mobile devices typically use operating systems other than desktops or laptops. The resources and capabilities of these devices are small due to the limited physical size and small amount of memory, as well as the low speed of Internet connection.
The most obvious difference between full-fledged computers and mobile devices is manifested in their purpose.
The main feature of mobile devices is that they can be used anytime, anywhere. When developing multilingual applications for mobile devices, this feature should be given special attention, as methods may be required that are fundamentally different from those used in the development of multilingual desktop applications.
Are multilingual apps really multilingual?
Multilingual applications or functions are usually developed for a specific operating system and must be supported by the operating system of the computer or mobile device. The introduction of multilingual capabilities into a mobile device (especially when it comes to supporting oriental languages) usually requires multilingual components (including fonts) and additional hardware resources (for example, memory), which, in turn, increase the cost of the device and additional difficulties. This is one of the main reasons that localized mobile devices are usually intended for users of a particular region and are supported by wireless operators exclusively in these regions.
If the multilingual mobile application being developed depends on multilingual support at the operating system level, take this into account and focus on the specific target audience of users. However, users of mobile devices that speak two or more languages, but do not have localized devices, are everywhere.
Perhaps we can agree with the fact that a truly multilingual mobile application should work on a mobile device which operating system does not have multilingual features. The reason is simple. The application, which requires multilingual capabilities built into the operating system, will not be considered multilingual by the user, and in most cases will perceive this as support at the device level. For example, an email application for mobile devices in Chinese that runs on a phone with an operating system in Chinese will not be perceived by users as multilingual, because the operating system of this phone is already designed to support Chinese. However, if the Japanese email application is running on the same phone, from the user’s point of view, this application will be multilingual.
If we assume that all content will use Unicode encoding, and develop an application to work only with this encoding, many customers will be dissatisfied and disappointed.
The solution is to develop truly multilingual, embedded and independent of the operating system mobile applications. In the case of embedded applications that are independent of the operating system, it is possible to avoid problems typical of applications that depend on the OS, but here the developer is faced with difficulties of a different kind. Below will be discussed in detail these difficulties, as well as some important issues that should be given special attention when developing applications.
What encodings should multi language mobile apps support? Unicode and own (traditional) encoding
During the development of a multilingual application, the developer is faced with the problem of encoding content: he must decide which encodings will be handled by the application and how. Ideally, everything should be in Unicode. However, in reality, traditional encodings for various languages and character sets are still widely used in operating systems and applications. As a result, if you use Unicode encoding for all content and develop an application to work only with this encoding, many customers will be dissatisfied and disappointed.
You can develop an application that uses Unicode encoding, and the content in a different encoding is previously converted to Unicode. For conversion, cross-display tables and additional programming are required. All this will increase the real size of the application and may affect the speed or efficiency of its work.