Translation and new markets 7 min

Translating software or an app: strings, context, updates

Translating software or an app means translating hundreds of short texts taken out of their screen: translators need context, the code must handle plurals and longer text, and translation happens at every release rather than once. A memory, a glossary and a check that blocks an incomplete release keep pace with updates.

Contents8
  1. 01Why software is not translated like a website
  2. 02Preparing the software before translation
  3. 03Giving translators context
  4. 04Keeping up with updates without retranslating everything
  5. 05The store listing and what surrounds the software
  6. 06What it costs
  7. 07Where to start
  8. 08Frequently asked questions

In short

  • Software is translated as strings: short texts, cut off from their screen. Without context, even an excellent translator gets the meaning wrong.

  • The interface is prepared before translation: texts taken out of the code, plurals, room for longer text, another writing direction.

  • Translation follows every release: only new or changed strings go back out, and a check stops a release from shipping with an incomplete language.

Translating a website means translating pages. Translating software or an app means translating hundreds of small texts: a button, an error message, a screen title, a notification. Each arrives on its own, without the sentence around it, and changes with every release.

Well prepared, this translation opens a market without slowing down releases. Badly prepared, it produces cut-off buttons, wrong plurals and half-translated screens after every update. This article says what makes the difference, from the point of view of the company that publishes the software. It extends our articles on website translation and opening new markets.

Definition

String

A text displayed by the software (button label, error message, screen title), stored outside the code in one file per language, and identified by a key that is the same in every language.

Why software is not translated like a website

Three differences change everything.

Texts are short and without context. Is “Open” a verb or a state? Does “Save” mean storing a file or spending less? On screen, the answer is obvious; in a string file, it is not. In French, for instance, the two meanings of each word take different translations. The translator, human or machine, guesses.

Texts contain code. A string like “{count} files deleted” carries a variable that the translation must neither translate nor break, and whose position changes with the language.

Texts change constantly. Every release adds, modifies or removes strings. A translation done once and for all is out of date by the next release.

Preparing the software before translation

This work is done once, in the code, and serves every language. It is called internationalization.

Take texts out of the code. Every displayed text lives in a string file per language, never hard-coded in a screen.

Plan for plurals. Android’s documentation sums it up:

Different languages have different rules for grammatical agreement with quantity.

Android documentation, string resources

English has two forms, singular and plural; Polish or Russian have more; Chinese makes no distinction. The translation libraries of the main programming languages handle these forms, provided the code passes them the number instead of tacking an “s” onto the end of the word. Date, number and currency formats follow the same logic, as explained in localize, don’t just translate.

Leave room for translated text. Text translated from English grows longer, and all the more so when it is short:

200 to 300%

the average length, after translation from English, of a text of 10 characters or fewer

130%

that of a text over 70 characters

Source: W3C, Text size in translation, based on IBM guidelines for European languages

Buttons and tabs, the shortest texts, are therefore the first to overflow. The same W3C article gives the example of Flickr’s word “views”, three times longer in Italian.

Plan for the other writing direction. Arabic and Hebrew are written right to left: the whole interface flips, not just the text.

These defects show up before you pay for a single translation. Android offers pseudolocales that lengthen and accent every text, or switch it to right to left: a screen that breaks in a pseudolocale will break in German or Arabic.

Giving translators context

Context makes the quality of a software translation more than the tool does. For each string, the translator should see:

  • a screenshot of the screen where it appears, or at least where it sits;
  • a description when the meaning is ambiguous (“Open: verb, button that opens the folder”);
  • a maximum length when space is tight;
  • the tone: formal or informal address, register, kept in the brand glossary along with feature names.

Translation management platforms display this context next to each string, and an AI model can receive it with the text. The machine translation tool is chosen on your own strings, following the method in DeepL, Google or an LLM.

Nothing replaces review inside the app itself, though. A translator or reviewer going through the real screens in their language sees what no file shows: a cut-off button, a message that does not match the action, a term that changes from one screen to the next. That is their job, and it remains essential even when the machine does the first draft, as we detail in translating your website with AI: automatic or reviewed?.

Keeping up with updates without retranslating everything

Translating software is not a project, it is a step in every release.

A translated release, from code to publication

  1. Extraction

    New or changed strings leave the code, with their context.

  2. Translation

    Memory first, then machine translation with the glossary, then the translator.

  3. Review

    On the real screens, in each language.

  4. Check

    The release does not ship if a string is missing in a language.

  5. Publication

    The app, then its store listing.

Translation memory avoids paying twice for the same string: only new and changed ones go back to translation. The parity check compares each language’s keys with those of the source language and blocks the release when some are missing.

From the field

On Palmora Property, a six-language real-estate listings site we operate, the translation pipeline combines a glossary, a memory and a parity check: German was opened there with 1,092 keys in parity with the other languages, and 95% of segments come out of the memory after the first pass, without calling the AI again. On this site, a check run before every build rejects any offer page whose French and English versions do not have the same blocks, lists and numbers.

The store listing and what surrounds the software

A translated app whose listing stays in another language will not be found. Apple separates the two: according to its documentation, the languages declared in App Store Connect are part of the app’s metadata, distinct from localizing the app binary, and when you add a language, screenshots and properties default to those of the primary language, except the description and keywords, which you still have to write.

These listing keywords are researched like a website’s, in the language and for the country, following keywords abroad: redo the research, don’t translate it. Screenshots are better when they show the interface in the listing’s language.

Around the software, other texts follow: emails sent by the app, notifications, the help centre, terms of use (to be reviewed by a lawyer in the country), and support replies, covered in translating customer support emails without hiring. For a catalogue of products sold in the app, product pages for export applies as is.

What it costs

The volume of text in software is often modest compared with a website’s. What costs is preparing the code, providing context and reviewing inside the app, then keeping up at each release. Once the workflow is in place, each release only costs its new strings. Per-word and per-character prices are detailed in website translation cost: per word, per page, per market, and the budget of an app as a whole in how much an app costs: what makes the price vary.

That leaves choosing the language to start with: German, Spanish or Italian: which market to open first and opening an English-speaking market: beyond language help you decide.

Where to start

Turn on a pseudolocale in your app, or have a copy of your strings machine-translated into German, and go through every screen. Note each text that overflows, each text left in the source language and each wrong plural: that is the list of what must be fixed in the code before the real translation.

To prepare your software and set up translation at every release, tell us about your app and your languages: we start from your code and your release pace.

Frequently asked questions

Can I translate an app with DeepL or ChatGPT?

Yes for the first draft, provided you supply the context of each string and a glossary, and protect the code’s variables. Short, ambiguous strings remain the weak point of any machine translation: a review inside the app, by someone who reads the language, catches wrong meanings and overflowing texts.

What is pseudo-localization?

It is a fake language generated automatically to test the interface before translating: each text is lengthened, accented or written right to left, while staying readable. A screen that breaks in a pseudolocale will break in a real language. Android offers two, one for expansion and accents, one for writing direction.

Do I need translation management software?

Not at first, for one or two languages and a slow release pace. It becomes useful when languages multiply or releases come often: it keeps the memory, shows translators the context, tracks changed strings and connects to the code repository. The essential part is the check that blocks an incomplete release.

Should the app and its store listing be translated at the same time?

Yes. A translated app whose listing stays in another language is not found by users in the country, and a translated listing for an app that is not translated disappoints from the first launch. Both ship together, with listing keywords researched for the country rather than translated.

Sources

  1. Android documentation, test your app with pseudolocales (new tab)developer.android.com
  2. Apple, App Store Connect, localize app information (new tab)developer.apple.com
Source 1

Android documentation, test your app with pseudolocales

Read on developer.android.com(new tab)
Source 2

Apple, App Store Connect, localize app information

Read on developer.apple.com(new tab)

Jim · founder of Brain Plus AI

Also in translation and new markets

  • Understand7 min

    Translation memory: what a company gains from it

    A sentence translated once should not be paid for twice. The translation memory makes sure of that at every site update, provided it belongs to you.

  • Practical guide8 min

    Brand glossary: keeping translations consistent

    The same product called three different things on three pages, and readers wonder whether there are three products. A brand glossary fixes the terms that are not up for debate, before the first translation, whatever the tool or the translator.

  • Understand8 min

    Localize, don't just translate: prices, proof and forms

    A page can be perfectly translated and still feel foreign: a price in the wrong currency, a date read backwards, a form that rejects a name, a meeting with no time zone. Localizing means adapting what changes from one country to another, not just the words.

WhatsApp