After Hours

10 tips and best practices for software localization

Localizing your software can be an exercise in frustration. Avoid major headaches by following this practical advice.

Many companies seek to expand their business and provide software products for the worldwide market through localization (L10N) -- translating or adapting a software product into different languages or for a specific country or region. Many localization attempts are met with frustration once the software is built: Text is garbled, fonts aren't exact, encoding of exotic languages doesn't look right, sentences are cut off, and in general, software builds may not work as designed.

Here are some pointers to help you avoid these problems and produce a quality product for the global market.

1: Plan ahead

For many companies, software localization turns out to be a last-minute rush before a product release.  All localization scheduling and scoping efforts should take into account the translation, testing, and regression that must occur to produce a quality product.

2: Test your software

In most cases, localized software should be tested as rigorously as the original English software. There's no replacement for the awareness that comes with seeing a foreign language "in context" within your software.

3: Develop a detailed English test plan

Use this same test plan in your localized testing. The same crucial UI dialogs and functionality will be put to the test. Reusing the English test plan for localization testing is common in the industry and will avoid delays in L10N testing.

4: Leave plenty of space for text expansion in other languages

Many languages take up to 30 percent more space than English! If your engineers design the software for which English "just barely fits," you'll have a problem down the road. Leave ample space or program dynamic UI expansion into your software.

5: Use localization-friendly encoding of strings

When possible, source your string tables or software resources in Unicode/UTF-8 encoding. This will avoid extra conversion steps, time-consuming debug work, and garbled text.

6: Perform "pseudo localization" to root out hard-coded strings

In a separate temporary branch, use a regular expression to replace all letters in the string text with a single repeating character, such as "XXXXX." Build the software, and any hard-coded text will really jump out at you, showing string IDs that are not defined in string tables.

7: Avoid concatenation and overuse of single strings

A combination of words in English will most likely not follow the same order in most other languages. Concatenated strings and strings that are used in multiple contexts will have grammar and gender agreement issues. Gone are the days of optimizing software due to memory limitations, so be generous when localizing your product.

8: Provide "internationalization" support in your software (i18n)

This will enable dates, numbers, and other region-specific data such as currency to show up in a familiar and comfortable way to all users around the world.

9: Provide numerous comments in software resources that define context

Knowing the context and use of certain strings will help translators choose the right translation from the beginning. Most translation tools will allow translators to see these comments as they translate the strings.

10: Perform localization of Help and software (GUI) at the same time

Users around the world will notice when context-sensitive help tells them to click on a button that is worded differently in the software itself. Seek a responsible and experienced translation company to handle both your software and Help/User's Guide at the same time to ensure consistency between your software and help documentation.

About the authors

Jeremy Coombs is senior vice president of operations for translation service provider MultiLing, managing large-scale translation and localization projects for companies such as Dell, LSI Corporation, Qlogic, Intuit, and GE Healthcare.

Dan Videki is a PMP-certified senior project manager at MultiLing. For the past seven years, he has managed the localization and testing efforts for the worldwide release of numerous software suites.

4 comments
HanyAhmed
HanyAhmed

I hired Elite Translingo to help me with the process of localizing my VPN app. They were very efficient, responsive and committed. They provide App and Software localization among other translation and  interpretation services too.

http://elitetranslingo.com/

tatessa
tatessa

What about searching for an ideal localization tool? Individual developers and freelancers need such a tool for an improvement of the time spent on their app. I am working as a translator with a few app developers right now and we are using a very efficient software: https://poeditor.com. There is competition on the market, but this one has all the necessary aspects (translation memory, automatic translation, reference language). You should make a separate article on the topic of localization tools maybe.

Johnryanshaw
Johnryanshaw

Thanks Jeremy, you've helped our company with a lot of localization in the past.  I hope you don't mind but here is an additional best practice we have found to be quite useful.  I would be interested to hear your thoughts on it:

Create a Common Glossary of Unique Terms:   Identify the words that are very specific to your industry and find experts in that industry that speak the local language to help you translate them.   Whether you are using a great provider like Multi-ling or an in-house resource to do the bulk of the localization providing a glossary of these unique, translated terms will go along way in making user feel at home in the application.

jcoombs
jcoombs

@Johnryanshaw Thanks for that comment, John.  I completely agree that having established terminology is a very important best practice, especially for software localization.  Creating a common list of terms and having that available for all languages not only ensures consistency within a language's translation, but also adds consistency in usage and term importance across languages.  This is essential to protecting brand fidelity as well.

Additionally, when considering software localization, it is quite often that some sort of documentation or help follows the software.  Having consistency of terminology as used in the software is critical in the translations of documentation, especially from an end-user viewpoint.

Tip #11... Thanks John!

Editor's Picks