Skip to main content

4 Tips for Effective Software Localization

Software localization — from mobile apps to desktop and cloud applications — is important to deliver good customer experience in your target markets. But localizing your software presents particular challenges. These can quickly grow with more languages as your business expands globally and it is especially true when teams treat localization as an afterthought. 

After years of designing and developing software systems, and only recently having joined the localization industry, I know that for many teams localization can be just an afterthought.

Architects and developers might not consider that localization could be as much about code as it is about content. For many, localizing their software consists of little more than creating individual files for their resources and a framework that supports different versions of these resources for each language. Most project managers see translation as something that happens at the end of the development process. As such, they might not take into consideration that it needs testing on its own.

Meanwhile, content authors often don’t see the powerful impact their writing can play in improving the localization process. They can write without consideration to translation, not knowing how it can affect effort and cost farther down the line. And as for UX designers, it’s all too easy to design the user interaction once for English, without taking its effectiveness in other locales into thought.

To effectively create and roll out your global software applications, all of the teams need to be aware of the challenges that can occur. From there, they need to work together to find solutions and follow some best practices. 

Best practices for localizing software

Here are four crucial elements to consider when localizing your software. Fine-tuning these elements will make a solid foundation for future language growth, both in the number and complexity of your target languages, and help you improve your UX (and increase your ROI) in your target markets. It will also help you accelerate your process and save you time and money.
 

1. Think localized UX

Some languages, like German, can take as much as 40% more width space on your screen than the same phrase in English. Other languages, like Chinese, may take up to 20% less width space but the characters are taller and use more vertical space.

Space is often more limited on mobile apps than on desktop or cloud applications. To deliver the customer experience you require, your UX team may need to design in flexibility for character expansion and reduction, and the software needs to be responsive enough to cater for this. If your content contains dates, numbers, currencies, videos and images you also need to decide if these need to be localized. It can greatly improve the consistency across your software and your overall customer experience.

Setting character limits

If there is no more flexibility in the design, setting character restrictions for the translator, makes sure the final text fits into the design. Similarly, text for drop-down menu items tends to be one or two words rather than short phrases — even if these could technically fit within the dimensions of the screen — and this context needs to be passed on to the translation provider.

Linguistic testing

Testing your software helps flag any localization problems before you send the actual text for translation. Pseudo-localization can be used for testing and helps prepare your UX design. Pseudo-localization uses random text to test if your software is well internationalized. The text can be more tailored to your content by using machine-translated versions of your content. 

Ideally, it should be long samples of text, that contain characters with different heights, to test the flexibility in the design. Think back to our mobile app again: a CTA button in German would have more text than one in English, so the design needs to be flexible enough to fit both languages.
 

2. Expecting complex languages?

Many languages have intricate rules around genders, plurals, or declensions. Your software needs to be prepared to handle these complexities. It can be difficult for teams that only speak English to prepare for this, as English is a relatively straightforward language in this sense. Look at the simple example below for Spanish with how your code affects translations.
 

Example: Welcoming your users

Welcome {name}

in Spanish this can be translated as either:

Bienvenido {name}

or

Bienvenida {name}

The choice of word depends on the gender of {name}. If you don’t have the software (and the translation workflow) that can handle two or more options, you’ll be relying on your translator to do either of the following:

Work out a genderless alternative, such as:

Hola {name}

or use a translation to accommodate both genders such as:

Bienvenido/a {name}

or choose just one of the genders, and perhaps distance half your users.

Script direction is another complexity to be aware of: Languages such as Hebrew and Arabic have scripts that travel right to left. If you translate, or plan to translate, into these languages your software framework needs to be set up to handle the BiDirectionality (BiDi) of the text, and even images and page layout e.g. bullet points.

In my experience, you don’t need to plan for all the potential problems that may occur across all languages. Rather, you need to recognize the specific challenges of your target market languages and prepare for them.
 

3. Adopt ‘Intentional Authoring’

It’s hard to translate figurative language and many other literary techniques. If you know your content is going to be translated, your content authors can make the process easier by practicing Intentional Authoring.

Intentional Authoring is the process of writing your content with simplicity and consistency for your wider international audience. It means thinking beyond the source language, and it’s good practice for any work that might be translated.

Content authors who practice Intentional Authoring reduce many of the pain points associated with software localization. Plus, it helps reduce the overall cost of translation and improves the quality of the final piece of content, especially when developing software for a global audience.

Intentional Authoring also boosts the effectiveness of translation technologies, helping you scale up your translation for more languages and more content. Using your language assets to guide writing and practicing consistent Intentional Authoring is the best way to boost the translation technologies, namely:

  • your Translation Memory (TM, a database of your previous translations) is triggered more often, improving translation consistency;

  • your Machine Translation engines will work more efficiently, speeding up translations;

  • your bilingual terminologies will be administered, so your key terms are translated as your SMEs need them to be translated;

  • you avoid unnecessary questions about the text and spare your researchers from researching regionalisms or figures of speech that cannot be directly translated, saving time for everyone.
     

4. Context is king

Context is very important when translating projects for software localization. In conventional language projects, translators get full texts to translate, and translators can understand the context from the text. In software localization, translators only receive software strings (short sentences or single words) which can be full of placeholders or joined end-to-end to form different sentences (string concatenation). Without context, strings from software localization can be challenging to translate, which can ultimately lead to quality issues. 
 

Example: Placeholders

In software development a placeholder is a provisional character or word that takes the place of a final word or number. Placeholders are often introduced to reuse content in different contexts or to inject different text using programming logic. For example, a developer may expect to add a value to a software string, but doesn’t know the final value when they’re writing the code.

Some placeholders can have multiple meanings. Without context, the translator might not select the right word in the target language or be left uncertain how to proceed. To combat this, your developers need to share additional context with your translators (e.g comments on strings or URLs of where the content will be published). This will help the translator understand the meaning of the word and give the best quality translation.
 

Example: String concatenation

String concatenation is used to join strings end-to-end, in this way it can form different sentences depending on the context. Take the following example:

string1 = You have

string2 = the test

string3 = started

string4 = passed

string5 = rejected


The logic of the program adds string3, string4 or string5 in between string1 and string2 to make a complete sentence as required. If the strings are passed on for translation as separate elements, the translators will translate word by word. They won’t see the complete sentence needed, and the overall meaning of the sentence will be lost.

Additionally, not all languages have the same language structure and developers need to cater for these differences. In German, for example, the verb goes at the end of the sentence, so string3, string4, and string5 would need to go after string2.
 

Example: Translating the article ‘the’

The German language also highlights another potential challenge: translating the article ‘the’ without context. It can be incredibly difficult to translate “the’’ if the German translator cannot see how it fits in the full sentence. If, for example, it’s being used in multiple places of code. The tables below show the enormity of the challenge:
 

German

Case

  Masculine

|Feminine

|Neuter|

Plural

Nominative

   der 

  die

  das

   die

Accusative

   den

  die

  das

   die

Dative

   dem

  der

  dem

   den

Genitive

   des

  der

  des

   der

 

English

Case

  Masculine

|Feminine

|Neuter

|Plural

Nominative

    the

   the

  the

    the

Accusative

    the

   the

  the

    the

Dative

    the

   the

  the

    the

Genitive

    the

   the

  the

    the


Duplicating content feels counterintuitive to most developers. Reusability is a key practice in programming. But reusing, by definition, separates the translator from the context they need to translate to the quality you require. To deliver quality translations and ultimately, good customer experience through easily absorbed content, developers need to remember to duplicate code for software localization.

By making your teams aware of these potential challenges and practicing these tips from the get-go, you can reduce some of the pain points associated with software localization. A localization partner can help you grow globally by delivering a great customer experience across all of your target markets and languages. 

Talk to our experts.

About the Author

Head of Localization Solutions Architecture at Unbabel, Juan has over 15 years of experience as an IT professional. He previously held positions as researcher, developer, architect, and CTO across different environments and industries in Germany, Spain, France, and the UK, before specializing in localization technologies and processes.