What thoughts usually cross your mind, when you hear the phrase “application localization”? Almost certainly, the first thing that dawns upon you is the translation. However, most people are unaware that localization is not a mere translation. It is a comprehensive, multilevel process full of challenges and nuances.
In this blog post, we will consider the Softengi team’s experience of localizing a rich application and some of the specifics that go with it.
Enviance, Inc., a long-standing customer of Softengi, had a need to localize a large EH&S application developed back in 2000. Enviance needed this legacy application to be localized into Chinese and Russian.
The application itself consisted of around 2 million lines of code. Therefore, the job required a great deal of time and effort.
The Way Out
First, the Softengi team performed a thorough application analysis to understand whether it needed any redesign or modification of the core. Based on the results, the team members:
- Wrote code adding the missing parts to the core of the system;
- Provided macros support;
- Created tables in the database;
- Created scripts to export data to Excel and later import the translated literals to the system; etc.
After that, the code was divided into several parts, which were distributed among the members of the development team.
In total, about 200,000 literals were found in the code. Many of them were system literals and were not to be localized. Also, there were many duplicates (e.g., “Save”, “Cancel”, “Task”, “Calendar”, etc.), which had to be avoided. So, our team’s main task was to examine each literal, identify the users’ literals, subdivide them into categories and allow them to the respective resources. The Softengi developers overcame this challenge by developing a script detecting lines in the code and introducing a system for resources organization.
In the course of the application localization, a large variety of technologies were used: C#, HTML, ASP.NET, JavaScript, XML, XSLT, .NET, etc.
The menu structure of the application was kept in XML, and the content itself was contained in XSLT. Also, both XML and XSLT were cached.
The Softengi team used .NET to categorize the identified literals by:
- Levels:
- Global (e.g., general literals such as “Save”, “Ok”, “Cancel”, “Information”, “Error”, etc.);
- Module (e.g., “Task”, “Calendar”, etc.);
- Local / webpage (e.g., information messages, error messages, etc.).
- Type (e.g., domain entity and attribute names, different categories of error messages and information messages, etc.).
The Second Step
This categorization saved the team a lot of time and effort.
It is worth mentioning that the Softengi developers used a unique approach to the localization of the client files. They devised a system of macros and localized them in JavaScript on the server side. This approach allowed them to use the same resources both for server files and client files. On the whole, performing the localization on the server side and using the macros system helped the team simplify and hasten the whole localization procedure.
To localize such formats as date and time, the team used the embedded features of .NET. On the client side, JavaScript support was ensured making it possible to format numbers, date and time, and currency according to the user culture.
The concatenation of lines was another serious challenge. It posed a real problem, as there were parts of the text, or independent words, instead of the whole text making it unfeasible for the translators to translate the literals correctly. Therefore, the developers had to perform code refactoring and localize the templates.
After all the developers’ and translators’ work was done, five qualified Softengi testing engineers then performed the technical part of the localization testing. For instance, they checked the layout to ensure the proper display of the translated text and prevent it from going beyond the limits of the predefined space due to the specifics of different languages.
Moreover, native speakers were involved in the testing to check whether the translated text met the cultural peculiarities of their language and was right for the nature of the application itself.
As a result, the Enviance System was capable of being used in Chinese and Russian, not just English, with the ability to add languages as needed.
Conclusion
At the end of the localization procedure, the customer received an application fully localized for the Chinese and Russian markets. This was possible due to the consolidated efforts of the Softengi team members and their tailor-made solutions streamlining and speeding up the whole process.