Localization is the process of translating text elements of an application and adjusting the user interface to a specific language or region. In broader terms, localization is the adaptation of a software product, together with its online help and documentation, for use in one or more regions of the world.
Localization of software can include translating user-interface text, resizing text-related graphical elements, and modifying images and sound to conform to local conventions. The localization process consists of the following steps:
The main goal of preparation phase is to prepare all necessary documents and other items that may be required for localization. On this step a tester goes through the activities like:
- Scheduling and resource plan development
- Software analysis
- Glossary creation. The glossary contains menu items abbreviations, technical terms, notions used in a certain domain.
- Creation of untranslatable words list
- Test documentation creation
- Functionality learning by translators
Apart from that, there are some specific points which are usually need to be addressed during localization:
- Duration of the localization and required efforts depend on the overall words count in the application and documentation.
- Usually the localization process has several cycles (translation->implementation->testing->defect fixing and validation).
- It is necessary to use terminology consistently to avoid alternative translations of the same term.
- On this phase close cooperation between translator and QA specialists is a MUST for better understanding of the functionality. And of course learning will require more in case of translating into many languages. For that very purpose QA engineers can prepare detailed instructions and check-lists for translators, which allow making translation without deep product investigation. The approach allows the company to decrease the budget of the project and saves the time.
After all the preparation activities the process moves to software adaptation, where a tester can choose between two localization methods: source-based localization and binary localization. Source-based localization is a universal process that can be used with products designed for any platforms.
It is based on localization of text files that contain only textual representation of user interface elements. In this model, source file compilation as well as build creation is typically performed by the software engineers.
While binary localization, all activities are focused on the compiled modules or directly on the whole product as such with already built-in translations.
Source-based localization is the most frequently used method. It allows easily localizing the product into a particular language without the development team having to spend many efforts. If the source-based method is chosen, a development engineer adapts the software for using external text files.
During the process the development engineer also adapts methods of data, currency, and unit of measure representation, sort order, which allows the engineer to easily consider peculiarities of foreign languages
As soon as all text elements are exported to resource files, professional linguists start translation. Native speakers as well as professional translators get involved in the process. Translation is made using special tools, which help to track the translation process, use common terminology, and check spelling errors. While the translation process, it is really necessary to follow some tips to increase the translation quality. First of all translators should have access to the application and its screenshots to be sure they use words in proper context.
If you want to avoid long debates on “which word to choose”, distribute the documents or modules between the translators, follow the rule: one translator – one module/document. And one more thing, if the source files contain control symbols, translators should have instructions from the development team for how to use them.
Once the translation is over, the development engineer compiles a project with translated resources. Afterwards the process moves to linguistic verification testing, when a linguistic expert runs through the localized application, reviews each screen and compares it with the source-language application.
The linguist checks the translation of every screen and help topic in runtime context. QA specialists work closely with the linguists and guide them through the screens and address any functional, network, and file access issues that are uncovered during the review. The linguistic verification testing phase includes the steps like:
- Verification of translation accuracy
- Check for typographical errors
- Check for truncated or misallocated text
- Assessment of cultural compliance
- Check for politically sensitive content
Formats like dates, times, numbers, currencies, separators, units of measure, and calendars are to be thoroughly tested. The testing ensures that items are placed in the correct order, separator symbol is placed in a proper location, and the entered values are properly recognized.
Localization testing is a part of software testing process focused on internationalization and localization aspects of software. It is the process of adapting a globalized application to a particular culture. Localizing an application requires a basic understanding of the character sets typically used in modern software development and comprehension of the issues associated with them.
Localization is quite a comprehensive task, and there is a lot of room for error. So check back the translation is contextual and done correctly.