DEV Community

Cover image for Translating Your SaaS into German: What Actually Changes
Mohit Sapat for Babelize

Posted on Originally published at babelize.co

Translating Your SaaS into German: What Actually Changes

TL;DR: Translating a SaaS into German changes more than the words: UI text runs about 30% longer and short labels often double or triple, you must choose formal Sie or informal du for every string, numbers and dates use German formats (1.299,00 €, 13.10.2026), and you need German legal pages (Impressum under the DDG, privacy policy, cookie consent), VAT-inclusive consumer prices, and payment methods such as SEPA Direct Debit and invoice.

Germany is usually the first non-English market a SaaS product goes after, and the translation is the easy part. Strings get longer, the product has to choose how formally it talks, numbers and dates flip their separators, and the legal and billing pages need more than a translator. This guide covers what actually changes, with measurements from real open-source apps.

German Text Is About 30% Longer, and Short Strings Grow the Most

"German is longer" is common knowledge. How much longer is worth measuring, because it decides how much room your buttons need. We compared the English and German UI strings of two widely used open-source apps, Excalidraw and Mastodon, character by character (placeholders and tags removed, untranslated strings skipped):

Excalidraw Mastodon
Translated strings compared 566 1,574
Total length, German vs English +28% +29%
Strings that got longer 81% 79%
Strings at least 1.5× as long 25% 30%
Short strings (1–10 characters): median growth +27% +50%
Short strings: 1 in 10 grows by at least +88% +183%

The averages are manageable. The tail is what breaks layouts, and it sits in the shortest strings: the labels on buttons, tabs, and menu items, where you have the least room. Some real pairs from those files:

  • Undo → Rückgängig machen (4.2×)
  • Unmute → Stummschaltung aufheben (3.8×)
  • Retry → Erneut versuchen (3.2×)
  • Edit → Bearbeiten (2.5×)
  • Move canvas → Zeichenfläche verschieben (2.3×)

What to do about it:

  • Never give text a fixed width. Let buttons and tabs grow, and decide in advance what happens when they cannot: wrap, truncate with a tooltip, or move into an overflow menu.
  • Budget for 3× on labels under 10 characters and about 1.5× on sentences, not a flat 30%.
  • Test before you translate. A pseudo-locale that pads every string by 40% shows where the layout breaks without waiting for a translator.
  • Turn on hyphenation for long compounds. German glues nouns together ("Zahlungsmethodenverwaltung"), and a single word can be wider than a narrow column.
/* Works only when the page declares its language: <html lang="de"> */
.card-title,
.table-header {
  hyphens: auto;
  overflow-wrap: break-word;
}
Enter fullscreen mode Exit fullscreen mode

hyphens: auto uses the browser's German dictionary, so it only works when the document or element has lang="de". That is one more reason to set the lang attribute from the active locale instead of hardcoding en.

Du or Sie: Pick One Before You Translate Anything

German has two forms of "you": informal du and formal Sie. Every sentence that addresses the user commits to one, so the choice affects thousands of strings, and switching later means retranslating all of them.

Developer and consumer tools have moved toward du. In the German files we measured, Excalidraw uses informal forms (du, dein, dich) 60 times and formal Sie zero times; Mastodon uses informal forms 252 times against a handful of formal ones. Products that sell to banks, insurers, law firms, or the public sector usually stay with Sie, because that is how their customers write to each other.

  • Match how your customers talk to each other, not how your English copy sounds. Casual English does not automatically mean du.
  • Write the decision down in your style guide and glossary, and give it to every translator and every AI prompt.
  • Never mix the two. A product that says du on the dashboard and Sie in billing emails reads as two different companies. Search your German files for both forms before each release.

Numbers, Dates, and Currency Flip

German swaps the roles of the comma and the period, writes the currency symbol after the amount, and puts the day before the month. The browser already knows all of this, as long as you format values with Intl instead of string templates. Every output below was generated by Intl in Node.js:

new Intl.NumberFormat("de-DE").format(1234567.891);
// "1.234.567,891"   (en-US: "1,234,567.891")

new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(1299);
// "1.299,00 €"

new Intl.NumberFormat("de-DE", { style: "percent", maximumFractionDigits: 1 }).format(0.195);
// "19,5 %"   (note the space before %)

const date = new Date("2026-10-13T14:05:00Z");
new Intl.DateTimeFormat("de-DE", { dateStyle: "medium", timeZone: "Europe/Berlin" }).format(date);
// "13.10.2026"

new Intl.ListFormat("de", { type: "conjunction" }).format(["Rechnung", "SEPA-Lastschrift", "PayPal"]);
// "Rechnung, SEPA-Lastschrift und PayPal"
Enter fullscreen mode Exit fullscreen mode

"German" is also more than one locale. Switzerland and Austria format differently, so do not let de-DE stand in for every German speaker:

new Intl.NumberFormat("de-CH", { style: "currency", currency: "CHF" }).format(1299.5);
// "CHF 1'299.50"

new Intl.NumberFormat("de-AT", { style: "currency", currency: "EUR" }).format(1299.5);
// "€ 1.299,50"
Enter fullscreen mode Exit fullscreen mode

Two more details: German uses the 24-hour clock in UI text, and the week starts on Monday, which matters for calendars, date pickers, and weekly reports. Our Intl API guide covers the formatting APIs in depth, and the locale codes guide explains when to use de versus de-DE, de-AT, or de-CH.

Typography That Translators Get Right and Code Gets Wrong

  • Quotation marks are „like this“ (low-high), not "like this". If your code wraps user content in quotes, the quotes belong in the translation string, not in the component.
  • Nouns are capitalized, so CSS text-transform: capitalize on English-style title case will mangle German. Let the translation decide capitalization.
  • Sentence fragments do not survive. "Delete" + " " + itemName works in English; German often needs the object before the verb. Translate whole sentences with placeholders, using ICU MessageFormat for counts.
  • Gender-inclusive language is a live style choice in German. Teams pick doubled forms ("Nutzerinnen und Nutzer"), neutral participles ("Nutzende"), or symbols ("Nutzer*innen"). Neutral forms are the least controversial and the easiest to keep short. As with du and Sie, pick one and apply it everywhere.

Legal Pages Are Not a Translation Task

Some German requirements have no English equivalent, so translating your existing legal pages will not cover them. The usual list for a SaaS product with German customers looks like this; have a German lawyer review it, because this is a summary, not legal advice:

  • Impressum (legal notice). Commercial websites aimed at Germany must name the operator, a postal address, and contact details. Since May 14, 2024 the legal basis is § 5 of the Digitale-Dienste-Gesetz (DDG), which replaced the Telemediengesetz. An Impressum that still cites "§ 5 TMG" is out of date.
  • Datenschutzerklärung (privacy policy) under the GDPR (DSGVO in German), in German, covering every tool that processes personal data.
  • Cookie consent under the TDDDG, the renamed TTDSG: non-essential cookies and trackers need consent before they load.
  • A data processing agreement (Auftragsverarbeitungsvertrag, AVV). German business customers will ask for one before signing, along with where your data is hosted. Have it ready instead of drafting it during a deal.

Pricing and Billing Change Too

  • Show the right price. Prices shown to consumers must include VAT, which is 19% for most digital services in Germany. Business-only pricing pages can show net prices, marked "zzgl. MwSt." (plus VAT).
  • Collect VAT IDs for business customers in other EU countries so you can invoice under the reverse-charge rules.
  • Offer the payment methods Germans use. German shoppers rely on PayPal, SEPA Direct Debit, and paying on invoice (Kauf auf Rechnung) much more than shoppers in most Western markets, and cards make up a comparatively small share of online purchases. For B2B SaaS, accepting SEPA Direct Debit and paying an invoice by bank transfer removes a common blocker.
  • Localize the invoice itself. A German customer's accountant expects German labels, the correct VAT breakdown, and dates and amounts in German format.

A Practical Order of Work

  1. Internationalize first. Move every user-facing string into locale files and format every number and date with Intl. Translating hardcoded strings is wasted work; see i18n vs l10n for the difference.
  2. Run a pseudo-locale with 40% padding and fix the layouts that break, especially buttons, tabs, and table headers.
  3. Decide du or *Sie*, gender-inclusive style, and a glossary of product terms that stay in English.
  4. Translate the UI, with a German speaker reviewing at least onboarding, billing, and error messages.
  5. Handle legal and billing separately: Impressum, privacy policy, consent, AVV, VAT display, and payment methods.
  6. Launch the German locale behind its own URL (/de/) with hreflang, so German searchers land on German pages.

If German is your first market after English, our guide to choosing your first SaaS languages covers how to sequence the next ones.

Frequently Asked Questions

How much longer is German text than English?

In the English and German UI strings of Excalidraw and Mastodon, German was 28 to 29% longer in total, about 80% of strings got longer, and a quarter to a third grew by 50% or more. Short labels grow the most: one in ten short Mastodon labels grew by 183% or more.

Should a SaaS product use du or Sie in German?

Developer and consumer tools increasingly use du, while products for conservative industries such as finance, insurance, law, and the public sector usually use Sie. Match how your customers write to each other, document the choice, and never mix the two forms in one product.

How do I format prices and dates for German users?

Use the Intl APIs with the de-DE locale instead of string templates. They produce 1.299,00 € for prices, 13.10.2026 for dates, and 19,5 % for percentages, and they handle Austrian (de-AT) and Swiss (de-CH) conventions too.

Does a SaaS website need an Impressum for Germany?

Commercial websites aimed at German users generally need one. Since May 14, 2024 the requirement is in § 5 of the Digitale-Dienste-Gesetz (DDG), which replaced § 5 of the Telemediengesetz (TMG). Have a German lawyer confirm what yours must contain.

Which payment methods should a SaaS offer in Germany?

Beyond cards, offer SEPA Direct Debit and payment by invoice or bank transfer, and consider PayPal for self-serve plans. German buyers use these methods far more than shoppers in most other Western markets.

Written with AI assistance and reviewed by the Babelize team. The length and du/Sie figures were measured on Excalidraw's and Mastodon's own translation files, and the format examples were generated with Node's Intl.


Originally published on the Babelize blog. Babelize is an AI localization tool for Next.js, React and Django apps: it marks strings, keeps your locale files in sync, and opens the changes as a pull request.

Top comments (0)