Today my inspiration comes from this amusing popup that appeared in an app made in China for a gadget purchased online. My aim is to stress the importance of linguistic translations for international applications.
We’re often concerned with the technical side of the problem, and looking for systems that allow programmers to easily manage the translation, but this neglects the crucial aspect: the user experience. When a user sees an untranslated message, they react the same way they do when they find a bug; when shown an inaccurate translation they are – at the very least – confused (see popup).
That’s why we decided to create a specific module for Instant Developer Cloud that lets you manage app translations precisely and professionally, but it’s also quick and agile when, for example, you need to publish a fix and you can’t wait for a professional translator. You’ll find it starting in version 17-009, which is already available.
To use it, select the app to be translated in the objects tree, and from the gear menu at the bottom select Translation Management. A list of strings will appear that the system extracts automatically from the views and the code that you have implemented.
First, you’ll need to decide which strings you actually need to have translated. To do so, you’ll need to use the commands that appear to the left of each row. Check out the Show in IDE command. It shows you the context in which a given string was used, which is crucially important for understanding whether it needs to be translated, and how.
Once you’ve decided how it should be translated, use the Add language button to add one or more languages you want to translate into. At this point you have two choices:
- Final translation: if you have a professional translator available, the Export button lets you create an XML file that’s compatible with the most common CAT systems.
- Temporary translation: you can write directly in the fields or use the powerful Google tools by clicking Translate, which will automatically translate the entire app into the languages you’ve requested.
The system tracks which strings were translated temporarily compared with those translated professionally, so you’ll always have a clear picture of the situation.
When the app is run, the framework automatically activates the language based on the device settings, so you don’t need to write any code for the translations to work.
Lastly, when you change the app, the system tracks what you’ve already translated and prompts you to retranslate only new or edited strings, always based on the context in which they are used.
It might seem like a slightly complex module, but apps today have to put the user experience first, so you can’t underestimate the problem. What do you think? Have you had any experience developing multilingual apps?