This document gives you basic guidelines for writing internationalized software for enabling efficient language and regional variation.
This document is aimed primarily for those developing and designing (Symbian C++) applications on top of the S60 platform, but the document also contains plenty of generic information on internationalization, localization, and different languages, which is applicable in wider scope.
There is also an S60 Platform: Localization Example published separately at Forum Nokia that demonstrates a C++ application with two languages (that are automatically changed according to the chosen phone language) and localized number, currency, date, and time formats. Note that all aspects presented in this document have not been covered in the code example.
Note: This document is based on guidelines originally written for S60 engineers and S60 licensees. Therefore, many parts that are irrelevant for third-party developers, as well as parts discussing functionality not publicly available, were removed, but some relevant information was added (mainly in Chapter 2). This background is still somewhat visible in the structure and emphasis of the content, and in the overall consistence of this document. In other words, the content of this document has not been fully designed and optimized for third-party developers in the first place. Updates of this document will address these deficiencies.It should be noted that there may be alternative methods and styles to implement internationalization, but this document reflects the style used in the S60 platform.The following are examples of where and how emphasis between S60 core applications and third-party applications may differ:
In the S60 platform, applications are designed to be easily localizable practically for all countries, languages, and cultures in the world, which is rarely the case and need with third-party applications.
S60 core applications typically always use AVKON components - which is also a key instruction and message of this document - yet there are plenty of third-party applications with a custom UI, which is an area that is not well covered in this document.
S60 core applications are delivered embedded in devices, so there is typically no need to consider the delivery channel or compliance with different platform editions, whereas for third-party developers these are major issues to consider.