Opens in a new tab
+49 231 55 78 000info@eurolingua.de
Mon–Thu 8:30–15:30, Fri 8:30–14:30
Request a quote
Specialised translations · Software localisation

Software localisation: software, apps and machine controls in the target language

Software, apps and machine controls in the target language: strings, placeholders, plural forms, resource files. ISO 17100.
  • ISO 17100 and ISO 9001, audited by DEKRA
  • strings.xml, .strings, .resx, .po, XLIFF, JSON and YAML
  • Placeholders, plural forms and string lengths are checked
  • A translation memory per product: releases only as a delta

ISO 17100 · DEKRAISO 9001 · DEKRATranslating since 1976Dual control principle on every translation

For software companies and machinery and plant engineering

Industry software and web applications usually come with ongoing releases, machine controls together with the operating instructions in one terminology base. Marketing website and online shop belong to website localisation.

The resource file is checked before the quote

  1. Check and quote

    Review of the resource file: placeholders, plural forms, concatenated strings, texts not yet moved out of the code. Then a quote per language, with a delivery date, usually the same working day.

    What you supplyResource file, if possible screenshots for ambiguous strings

  2. Terminology

    Define product terms, lock names that stay untranslated, align with existing documentation

    What you supplyGlossary, if available; translated manual, if available

  3. Translation in the format

    Directly in the resource file, with automated checks of placeholders, lengths and special characters

    What you supplyNothing

  4. Revision and sign-off

    Mandatory revision to ISO 17100 by a second specialist, text against text. The visual check in the localised build or on screenshots per language lies with your team.

    What you supplyFeedback from your visual check, for example strings that have to be shortened

For follow-up releases only new and changed strings are handled and charged; terminology and translation memory grow with them. A delta export is enough, or the full file from which we determine the delta.

Placeholders and string lengths are checked by machine

Translation happens directly in the resource file, with automated checks of placeholders, lengths and special characters. A second specialist then revises text against text, as ISO 17100 requires. The visual check in the localised build or on screenshots per language lies with your team. The process is certified to ISO 17100 and ISO 9001 and audited by DEKRA.

ISO 17100:2015, DEKRA certificate 300125019, valid until 2 January 2028 · ISO 9001:2015, DEKRA certificate 90524330, valid until 7 March 2027 · View certificates
A quote for your software localisation

Send the file or a sample with the target language and purpose, and you will usually have a quote on the same working day.

The quote is non-binding. Phone lines are open Mon–Thu 8:30–15:30, Fri 8:30–14:30.

Strings already translated lower the cost

The price depends on the language combination, the number of languages, the effort needed to clarify context and the share of strings already translated in earlier releases. Whether the software is internationalised belongs before the quote, because it changes the effort.

  • Billing is per standard line (Normzeile) of 50 to 55 characters including spaces, not per file size
  • Urgent deadlines: agreed with the quote; same-day delivery is possible only in exceptional cases, because the mandatory revision to ISO 17100 by a second specialist takes time.

The general basis of billing is explained under specialised translations.

L10n adapts interfaces to the target market

Software localisation, abbreviated L10n, is the adaptation of software, an app or a machine control to the language, conventions and technical requirements of a target market. It differs from document translation at three points: the text does not come as running text but as individual strings in resource files; each string has a length limit set by the layout; and placeholders, plural rules and date formats have to work in the target language, not just sound right. Eurolingua handles localisation to ISO 17100 with mandatory revision by a second specialist, directly in the resource format and with a translation memory across all releases. Websites and online shops with legal texts, search terms and shop strings belong to website localisation.

Show table: localised content, formats, checks and quoteHide table
Software and website localisation at Eurolingua: quick overview
Criterion Details
What is localised User interfaces (menus, buttons, dialogues), error and status messages, onboarding and help texts, machine controls and operator panels (HMI), firmware display texts, app store descriptions, web front ends of SaaS applications
Formats strings.xml (Android), .strings and String Catalogs (iOS/macOS), .resx (.NET), .po/.pot (gettext), JSON (i18next and similar), .properties (Java), XLIFF 1.2 and 2.x, CSV/Excel exports from CMS and shop systems
Checks Placeholders and variables unchanged, plural forms complete per language, string lengths against the limit, special characters and escape sequences, consistency with the operating manual and help
Certification ISO 17100 and ISO 9001 (DEKRA, valid until 2 January 2028 and 7 March 2027 respectively)
Reuse Translation memory and terminology database per product; for releases only new and changed strings are charged
Scope Websites and online shops: website localisation. Operating manual and handbook: technical translation. Campaigns and slogans: business translation
Location Hohe Straße 45, 44139 Dortmund, Germany; personal consultation Mon–Thu 8:30–15:30, Fri 8:30–14:30
Quote Without obligation, once we have seen the resource file

Translation or localisation: the difference at three points in the code

A translation carries over text. A localisation makes sure that the translated text works at the point where the software outputs it. The difference is not a degree of care but a different working basis: the localiser does not see the sentence but the string, with its key, its length limit and its variables. Internationalisation (i18n) is the upstream step on the development side that makes the software localisable in the first place: moving texts out of the code, not hard-wiring formats, providing for plural rules.

What internationalisation, translation and localisation each do
Step Who does it In practice If it is missing
Internationalisation (i18n) Development Move strings into resource files, output date, number and currency through locale functions, set up plural forms as categories, allow in the layout for longer texts and right-to-left script The software cannot be localised, only reprogrammed. No translation agency can make up for that
Translation Specialist translator The meaning of each string in the target language, with context (Where does it appear? Button or heading? Which variable goes into the placeholder?) “Save” becomes “Sparen” (economise) instead of “Speichern” (store), “Order” becomes “Reihenfolge” (sequence) instead of “Bestellung” (purchase order)
Localisation (L10n) Specialist translator and reviser; your development team does the visual check in the build Keep to string lengths, fill in plural forms per language, preserve placeholders, check sort orders and keyboard shortcuts, identify images with text, look at the result in the build Text overflows the button, “1 files”, a crash caused by a damaged placeholder, a screenshot in the help shows the German interface

Check before the quote whether your software is internationalised. If date formats or messages are assembled in the code, the effort is different, and we say so before the first string is translated.

Strings, placeholders and plural forms: what is different in software compared with documents

Three properties of software text create errors that do not occur in documents: strings expand in the target language, and the shorter they are, the more they expand; placeholders such as %1$s, {count} or %d have to be preserved exactly and stand in the grammatically correct place; and the number of plural forms differs by language, which the software has to provide for before the translator can fill them in.

Text expansion: why buttons break and paragraphs do not

When translated from English, German text grows by around 30 per cent on average. For the interface, though, the average is irrelevant. What matters is that short strings grow most in percentage terms: a word of five characters can double or triple in the target language, while a paragraph of 500 characters grows by a third. That is why menu items, buttons and table headers break while help texts fit without trouble.

Text expansion by source length, guide values for English as the source language (after IBM, as quoted by the W3C)
Length of the English string Additional space to allow for Typical place
up to 10 characters 100 to 200 per cent Buttons, menu items, tab labels
11 to 20 characters 80 to 100 per cent Field labels, table headers
21 to 30 characters 60 to 80 per cent Status messages, tooltips
31 to 50 characters 40 to 60 per cent Dialogue texts, warnings
51 to 70 characters 51 to 70 per cent Longer messages, notes
over 70 characters around 30 per cent Help texts, descriptions

For German as the source language the reverse applies: English becomes shorter, Romance languages and Russian become longer, Chinese and Japanese need fewer characters but more line height. If you supply a length limit per string, it is checked during translation; if not, only the build shows where text overflows.

Plural forms: a question to settle before translation

German and English have two plural categories (one file, two files). Many target languages have more, and the category depends on the number:

Plural categories by language (Unicode CLDR)
Language Categories Example for “n files”
German, English, Dutch, Swedish, Turkish 2 (one, other) 1 file / 2 files
French, Portuguese (Brazil) one and other in everyday use, with 0 and 1 counted as singular; CLDR adds a many category for millions 0 fichier, 1 fichier / 2 fichiers
Polish, Russian, Ukrainian, Czech, Croatian 3 to 4 (one, few, many, other) 1 plik / 2 to 4 pliki / 5 to 21 plików, 22 pliki
Arabic 6 (zero, one, two, few, many, other) Separate forms for 0, 1, 2, 3 to 10, 11 to 99, 100 and above
Chinese, Japanese, Vietnamese 1 (other) No plural inflection, the number stands alone

Software that forms “files” as one string with a number inserted (“%d files”) cannot be localised correctly into Polish or Arabic, regardless of translation quality. The plural categories have to exist as forms in the resource file (Android plurals, iOS stringsdict or String Catalog, ICU MessageFormat, gettext Plural-Forms) so that the translator can fill them in. We settle this question at the quote, not at the complaint.

Placeholders and word order

%1$s saved %2$d files in %3$s may rearrange the placeholders in the target language, but not change them. Languages with a different word order need numbered placeholders; without numbering (%s has %d files) the order is fixed, and the translation becomes grammatically wrong or the software crashes if a type does not match. We check this automatically before delivery; unnumbered placeholders are reported back to you before work starts.

Resource files and handover: strings translated directly in their format

The most frequent avoidable effort in localisation projects is the detour via Word or Excel: strings are exported, translated as running text and carried back by hand. Keys, comments and placeholders get lost on the way, and every transfer back is a source of error. We translate directly in the resource file; keys, structure and comments stay unchanged, only the target text changes.

Show table: resource formats with platform and handover notesHide table
Common resource formats and what matters at handover
Format Platform What matters at handover
strings.xml Android Supply plurals and string-array as well; set translatable="false" for product names and keys that are not to be translated
.strings, .stringsdict, String Catalog (.xcstrings) iOS, macOS Developer comments in the catalog are the most important context; create plural variants in the catalog before translation
.resx .NET, Windows Culture-specific files per language (.de-DE.resx, .pl-PL.resx); use the comment column
.po / .pot gettext (PHP, Python, WordPress, Linux) Set the Plural-Forms header correctly per language; msgctxt for identical strings with different meanings
JSON Web front ends (i18next, Vue I18n, Angular) Keep ICU syntax for plural and select; do not flatten nested keys
.properties Java Preserve Unicode escapes and line breaks; state the encoding
XLIFF 1.2 / 2.x Exchange format from TMS, CMS and development environments The best handover format, because source, target, context and status sit in one file; re-import without manual work
CSV, Excel Shop systems, CMS exports, machine controls Only as a last resort: add a column for the key, a column for the length limit and a column for context; do not wrap cell contents

Your resource format is not in the table? Tell us the format or send us a sample file. Send a file

What you should supply so that the translation fits first time: the resource file in the original, developer comments or screenshots for ambiguous strings, the length limits where they exist, a glossary of product terms that are not translated and, if available, the already translated operating manual, so that software and documentation use the same terms.

Website or software: which service fits your project

The line does not run between browser and desktop but between resource file and page content. Everything a visitor calls up as a page, meaning corporate sites, online shops, product copy, metadata, legal texts and transactional emails, belongs to website localisation, with its own rules for search terms, hreflang and the target market’s language requirements. Everything that sits as a string with a key in a resource file belongs here, even if it runs in the browser: the interface of a SaaS application is software, its marketing website is a website. If you have both, you place two jobs with a shared terminology base.

Three classes of error in localisation projects

Three classes of error are typical in localisation jobs. None of them is a translation error in the narrow sense; all three arise at the boundary between text and software.

Error class 1: software and manual name the same function differently

The operating manual was translated two years ago, the control software now, by another provider or without the manual as a reference. The menu item has a different name in the software than in the manual that refers to it. The user looks on the machine for a term that does not exist there. It is the same error that the technical translation page describes from the opposite direction. Remedy: the software’s display texts are the leading terminology and the manual follows them; both in one translation memory.

Error class 2: concatenated messages

The software builds a message from parts: "File" + name + "was" + status. Each part is translated correctly. In the target language, the grammar requires a different order or an inflection that depends on the inserted value. The result is a message made of the right words in the wrong order. This cannot be fixed by translation, only by a complete string with placeholders. We report such places back before work starts, because the decision lies with development.

Error class 3: nobody looks at the build

The resource file is completely and correctly translated. The file is signed off, not the running software. In the build, text overflows buttons, a date appears in German notation because it is formatted in the code, and a screenshot in the help shows the German interface. Remedy: a check in the localised build or with screenshots per language as a fixed step of your sign-off. Revision to ISO 17100 checks text against text; the visual check in the running software is a separate step that only your team can carry out with the build.

Process and continuous localisation: how releases stay multilingual without a new commission

Software has no final deadline, only releases. Continuous localisation means that after the first complete run, only new and changed strings are translated for each release, and everything unchanged comes from the translation memory. This requires an exchange format from which the delta can be determined, usually XLIFF or the export of a translation management system.

Software and website localisation in Dortmund and the Ruhr region

From Dortmund, one of the larger IT locations in North Rhine-Westphalia with its Technical University, technology park and Fraunhofer institutes, we localise software for software houses, IT service providers and the region’s machinery and plant engineering, whose control software has to go into the same languages as its operating manuals.

Typical jobs from the region:

  • Machine controls and HMI texts from machinery and plant engineering, together with the operating manual in one terminology base
  • Industry software and web applications from Dortmund software companies for clients across Europe, mostly with ongoing releases
  • SaaS interfaces and web front ends with JSON resources, where the marketing website runs separately under website localisation
  • App store texts and onboarding for consumer-facing apps, with an eye on accessible labels since the German Accessibility Strengthening Act (BFSG)

Personal consultation: Hohe Straße 45, 44139 Dortmund (Kreuzviertel district), Mon–Thu 8:30–15:30, Fri 8:30–14:30. Underground station Saarlandstraße (U46). For localisation projects, meeting in person is most useful at the start, when terminology and handover format are set.

Translation agency in Dortmund

Common questions on software and website localisation

What is localisation, and how does it differ from translation?

Localisation is the adaptation of software, an app or a machine control to the language, conventions and technology of a target market. Translation is the part of it that carries over text. On top of that come string lengths, placeholders, plural forms, date and number formats, sorting, right-to-left script and the check in the running program. The upstream step on the development side that makes all this possible is called internationalisation (i18n); localisation is abbreviated L10n, after the number of letters between L and n.

Can you translate strings directly in our resource file?

Yes, that is the normal case. strings.xml, String Catalogs, .resx, .po, JSON, .properties and XLIFF are handled in their format; keys, comments and placeholders stay unchanged. The re-import into your project works without manual transfer. An export to Word or Excel is not necessary and would be the route with the most errors.

How does continuous localisation work?

After the first complete run, only new and changed strings are translated for each release. Everything unchanged comes from the translation memory and is not charged again. This needs an exchange format from which the delta can be determined, usually XLIFF or the export of your translation management system. The delivery rhythm follows your release cycle; with short cycles we agree fixed handover dates.

Who checks whether the translation displays correctly in the software?

Revision to ISO 17100 by a second specialist is mandatory and checks text against text. What it does not see only shows in the running software: text overflows, truncated labels, wrongly formatted dates, images with text. This visual check in the localised build or on screenshots per language lies with your team; we deliver the file, and your development team looks at the result. Report back to us any strings that have to be shortened or adapted.

What does software localisation cost?

Billing is per word or standard line (Normzeile) of the strings to be translated, not per file size. The price depends on the language combination, the number of languages, the effort needed to clarify context and the share of strings already translated in earlier releases. With ongoing localisation, the cost per release falls markedly because only the delta is charged. You receive a quote per job, without obligation. The general basis of billing is explained under specialised translations.

Which languages are requested most often for software localisation?

English covers the entry point; the languages of the neighbouring markets, Dutch, French and Polish, follow depending on the sales region. For machine controls, the languages of machinery export markets follow, often Spanish, Italian, Czech and Chinese, with character limits on the panel as the deciding factor. For Arabic and Hebrew, the right-to-left display of the interface also has to be checked, which the software has to support. Language details: languages we translate.

Software and manual in one terminology base

Send the file or a sample with the target language and purpose, and you will usually have a quote on the same working day.

The quote is non-binding. Phone lines are open Mon–Thu 8:30–15:30, Fri 8:30–14:30.