Internationalisation and Localisation
Internationalisation is the process of producing a globalised product, in terms of both design and code, which is independent of language, script, and culture. This section provides an overview to internationalisation and localisation process and the software development challenges and approaches.
The internationalised products are designed to support any language, script, culture, and code pages, through the localisation process, with minimal expense and effort. A software targeted for global market, needs to be developed must not confine to a particular country or language. The developed software is translated accordingly to suit multiple countries or regions. This process reduces the localisation time by translating the resource files containing the display strings accordingly.
Fundamentally, computers store letters and other characters by assigning a number for each character using encoding systems. However, a single encoding system cannot contain enough characters to cover all languages. Even for one language, single encoding system is not adequate for all the letters, punctuation, and technical symbols in common use.
In addition, these encoding systems can conflict with one another. When two encodings use the same number for two different characters or use different numbers for the same character, conflicts may occur. A computer may support different encodings. However, data always runs the risk of character corruption like incorrect or incompatible conversions, when data is passed between different encodings or platforms.
Internationalising allows applications to:
- Provide applications for global markets
- Interface to internationalised processes
- Increase portability
- Reduce development costs
The following are the requirements to be internationalised.
- Terminal and File I/O
- Dates or Times
- Numbers or Currency
- Searching or Sorting
- Messages or Properties
Internationalising an application does the following.
- Separates executable code from user interface
- Handles numbers, currency, dates and times independently of formatting
- Provides text input and layout
- Allows alphabetical order of characters
- Allows character format
- Avoids cultural assumptions
Internationalising Process
The goal of internationalising programs is to prepare and ensure the code never needs modification; separate files contain the translatable information.
This process does the following to the code and makes the product internationalised.
- Moves all translatable strings into resource files and enables the code to access those strings when required. These resource files are completely separate from the main code and contain only the translatable data.
- Changes variable formatting to be language-independent.
- Changes sorting, searching, and other types of processing to be language-independent. Various criteria such as date, time, number, currency, and messages call functions are formatted according to the local language and country requirements.
Localising Process
Localisation is the process of adapting an internationalised offering to a specific language, script, and culture. A product is localised when it is fully adapted to a country's language and cultural conventions, such as currency, number formats, sorting sequence, and so on.
Localising an internationalised program does not involve any change to the source. Instead, contractors and/or translation agencies modify the files.
The initial cost of producing internationalised code is comparatively higher than localising it to a single market. However, the cost involved in a one-time investment. After the code is internationalised, the cost of doing an additional localisation is a fraction of the previous cost, and avoids the considerable cost of maintenance and source code control for multiple code versions.
Software Development Challenges and Approaches
This section provides details about the challenges and approaches involved in the development of software product to suit the international market.
Challenges
As different countries use different characters to represent words, developers must consider the following challenges during development.
- Languages such as Cyrillic, Hebrew, Arabic, Chinese, Japanese, Korean, and Thai use characters that are not included in the 256-character ASCII set. However, these characters must be included as well during internationalisation.
- Same document or record can never store text from different character sets. If each document has its own character set, manual intervention for conversion is inevitable.
- Introduction of new characters (if any) must also be accommodated.
The solution for the applications to interchange data with one or more character sets is to adopt a worldwide usable character set and use a well-conceived strategy that incorporates that character set to produce software products.
Approaches
Companies mostly develop the first version of a program or system to suit English users. Based on the requirement, the product is internationalised by going through all lines of code and translating literal strings.
The disadvantages of translating literal strings are as follows.
- Process is time consuming
- Not suitable for long-term strategies
- Creation and maintenance of multiple versions of source codes is expensive,
- Multiple source codes involve repetitive translation process
- Bugs arise in case the translator modifies the source code
The advantage of the internationalising software is that, it is flexible and can support any language by translating resource files into that language.
By internationalising the product, the developer can:
- Provide applications to global markets
- Inter-operate with external processes
- Increase systems portability and
- Reduce development costs
For applications that need to handle characters outside the ASCII range, internationalisation is the best medium and long-range development solution.
In this topic