With the continued expansion of the Internet and connectivity, the onslaught of mobility apps on all of our smart phones and tablets, and the plethora of products that have software integrated within them that are being introduced all over the world, now more than ever, software development and deployment is a global endeavor. Thus, there is a critical need for software and user experience to be localized for the markets that the products and services are to be released in.

Internationalizing software can be an arduous and time consuming process involving multiple moving parts and resources including marketing, business units, developers, and subject matter experts. There are constant dialogues back and forth to understand not just what needs to be translated, but also how it needs to be translated – the exact context and the experience for the user. There are also multiple cycles of developmental rework and code changes that indubitably occur throughout this process, to get everything just right in the UI.

One of the biggest issues with internationalizing software is accurately representing context. A typical process for getting software translated into other languages is to send a subject matter expert a list of strings that need to be translated, incorporate the translations into the software, and finally get the software user tested. It is difficult to extract accurate context from just an Excel spreadsheet or a Word document that simply gives the text strings that need to be translated and, maybe, some additional descriptive comments. Also, once the strings are translated, it is very time consuming to get an iteration that is viable for review by stakeholders, as they are then coded into a Flash prototype, for example, or the actual software product itself. It is even more time consuming to incorporate change requests, which is almost guaranteed. It is often in user testing that the gaps and discrepancies in translation are typically discovered when testing of the translations in context has been done with the proper display and functionality – and by this time, it is too late.

However, there may be a better way to globalize your software.

Using visualization – rapid, codeless, interactive prototyping generated by using tools such as justinmind, Axure, etc. – one can quickly and easily incorporate language strings into a visualization that can then be presented in the proper context within the UI. This allows stakeholders to experience the translations in the proper environment and to review and get things just right before any costly coding takes place, significantly reducing the back and forth process, developmental rework, and time consumption.

The major benefits are that visualization provides both accurate context and ease of change. Once sign off is given, the developers can then use the visualization as a guide and reference to incorporate the language strings into the software the proper way the first time.

Example Process:

  1. Identify a trusted SME that has both a good command of the intent of the software, as well as the original language the application is presented in and the language that the text needs to be translated into.
  2. Send the text strings to the SME for translation.
  3. Once the strings have been translated, create a duplicate of the original visualization, where the text is replaced by the new translations (e.g. a Spanish specific version of the software visualization).
  4. Once the translations are integrated, hold a review session with stakeholders to review the visualization with the incorporated translations, quickly making any changes that need to be made in real time and to get validation and sign off.
  5. Once sign off is received, pass the visualization on to developers to code from.
  6. Once software is available for review, check against the visualization for accuracy.

Tips and Tricks:

  1. Make sure to identify the maximum character counts of the smallest acceptable font size for each test string element (e.g. text fields, buttons, dropdown lists, screen titles, navigation bar elements, etc.). These values should be able to be extracted from a software style guide that should be supplied for the UI development. This will help your SME with producing translations that will fit within the proper space area constraints, or allow them to raise a flag early on in the process if there is an issue with the space allotment for a given text element. It will also provide stakeholders with the chance to review how the translations will appear in the UI, in the proper size and context, to validate if the translations will work or if adjustments need to be made. The visualization will allow for an accurate representation of how the final software will look and behave.
  2. Use Masters in your visualization for frequently used text strings. This is always a good practice, anyway, but the real benefit for internationalization is that the more masters that you use, the quicker translation integration can be, because you only have to integrate a string once, as opposed to having to incorporate it on every screen or UI instance where it is required.
  3. Use globalized iconography as much as possible in the design of your UI. The less text that you need to translate the better. Just be sure to do your due diligence because some icons that we think should be generally understood can have significantly different meanings in other cultures.

Visualization is a powerful tool that can help to improve your time to market and reduce the amount of rework needed to get an MVP out the door, by reducing the time needed and increasing the accuracy when internationalizing your software for the globe at large.

 

~Joshua

“I fight for the users.”

-Tron