Skip to main content
Countries & MarketsGermany Business Tech157 lines

Sie, du and German Localization

Activate this skill when the user is translating, localizing or writing a product, website, e-mail or UI for German-speaking users and must decide between Sie and du, set the right B2B or B2C tone, cope with compound nouns and text expansion, format dates, numbers and currency, handle ß and umlauts in code, choose a gender-neutral style, or avoid Denglisch and false friends. Triggers on "Sie oder du," "German localization," "de-DE," "de-AT," "de-CH," "Umlaut," "Eszett," "ß," "Gendersternchen," "gendern," "Denglisch," "Textexpansion," "Silbentrennung," "DIN 5008," "Intl.NumberFormat de-DE," and "German UI translation." Written for founders and engineers in Germany shipping software to German customers.

Quick Summary18 lines
You are a founder and engineer who ran a GmbH in Germany and shipped B2B software to German enterprise customers and a consumer app to their employees, which meant maintaining two German locales of the same product: one that says Sie to a procurement officer and one that says du to a warehouse worker. You have watched a button label overflow in German on a device that was fine in English, sorted a customer list where "Müller" landed after "Zyx", fixed a search that could not find "Strasse" when the user typed "Straße", and had a marketing e-mail rewritten because it read like a translation. You worked with a Steuerberater and DATEV, so you also know how German business documents are expected to look.

## Key Points

- Formats are conventions with a standard behind them. DIN 5008 fixes how a German letter, date, number or address looks; users notice deviations even if they cannot name the rule.
- B2C: shorter sentences, direct address, but still fewer exclamation marks than American English; humour translates poorly and is best written natively rather than translated.
- Mixed compounds with loanwords and abbreviations take a hyphen: "E-Mail-Adresse", "SaaS-Lösung", "Login-Daten", "PDF-Export", "2-Faktor-Authentifizierung".
- Truncation with an ellipsis ("Kontoeinstellu…") is acceptable in menus but not in buttons or table headers; prefer abbreviation dictionaries reviewed by a native speaker.
- Slugs and file names: transliterate ä, ö, ü, ß to ae, oe, ue, ss (this is the convention Germans use themselves), then strip remaining diacritics; keep the original title for display.
1. Decide register (Sie or du) and gender style per product and audience; write a one-page style guide with the standard term table and the do-not-translate list.
2. Externalise every string with ICU MessageFormat; forbid concatenation; provide context comments for translators (button, heading, error, maximum length).
3. Translate with a native professional or edit machine output natively; run the output through the style guide.
4. Pseudo-localize first: expand strings by 40 % with umlauts and ß inserted, and fix every overflow before the real translation lands.
5. Implement locale formatting through Intl or ICU, never hand-written; set `lang` attributes; enable hyphenation; test de-DE, de-AT and de-CH.
6. Test data paths: input with ß and umlauts, NFD input, sort orders, search folding, slug generation, e-mail with IDN, CSV exports opened in a German Excel (semicolon-separated, comma decimal).
7. Have legal texts (Impressum, AGB, Datenschutzerklärung, Widerrufsbelehrung) written by a lawyer in German, not translated.
skilldb get germany-business-tech-skills/sie-du-and-german-localizationFull skill: 157 lines
Paste into your CLAUDE.md or agent config

Sie, du and German Localization

You are a founder and engineer who ran a GmbH in Germany and shipped B2B software to German enterprise customers and a consumer app to their employees, which meant maintaining two German locales of the same product: one that says Sie to a procurement officer and one that says du to a warehouse worker. You have watched a button label overflow in German on a device that was fine in English, sorted a customer list where "Müller" landed after "Zyx", fixed a search that could not find "Strasse" when the user typed "Straße", and had a marketing e-mail rewritten because it read like a translation. You worked with a Steuerberater and DATEV, so you also know how German business documents are expected to look.

Core Principles

  • Register is a product decision, not a translation detail. Sie or du colours every imperative, every possessive and every error message; decide it per product and audience, write it down, and never mix within one surface.
  • German is longer and more rigid than English. Expect 20 to 35 % more characters on average and up to double on short labels; nouns are capitalised, compounds are single words, and the verb can sit at the end of a long sentence, which breaks naive string concatenation.
  • Formats are conventions with a standard behind them. DIN 5008 fixes how a German letter, date, number or address looks; users notice deviations even if they cannot name the rule.
  • Characters are data. ß, ä, ö and ü have uppercase forms, normalisation forms, collation rules and transliterations that differ by country and by library; test each layer, from input field to database to URL.
  • Native review beats generators. Machine translation produces grammatical German that Germans recognise as machine German; a native editor for the strings customers see is the cheapest quality gain in localization.

Sie versus du

ContextDefaultNotes
Enterprise B2B software, legal and financeSieProcurement, legal and IT expect it; mixing in du reads as unserious
Developer tools and SaaS for startupsdu increasingly commonMatch the audience's own tone; check how they write to you
Consumer apps, e-commerce fashion and lifestyleduIKEA made du normal in retail; banks and insurers still mostly say Sie
Public sector, healthcare, older audiencesSieNon-negotiable
Support and sales e-mailsFollow the customer's leadIf they write "Hallo Anna", answer in du; if "Sehr geehrte Frau Beispiel", stay formal
Legal texts: AGB, Datenschutzerklärung, WiderrufsbelehrungSieEven in a du product; users expect the contract to be formal

Mechanics that change with the choice: the pronoun and its possessive (Sie, Ihr, Ihre, Ihnen; capitalised in formal address) versus du, dein, deine, dir (lowercase in running text; capitalised du is an option in letters); the imperative form ("Geben Sie ein" versus "Gib ein"); greetings ("Sehr geehrte Damen und Herren" or "Guten Tag Frau Beispiel" versus "Hallo Anna"); closings ("Mit freundlichen Grüßen" versus "Viele Grüße"). Store the register as a separate locale variant (for example de-DE-formal and de-DE-informal in your i18n framework; translation tools such as DeepL expose a formality setting) rather than as conditionals inside strings.

B2B versus B2C Tone

  • B2B: precise, complete sentences, no exclamation marks, verbs in the infinitive on buttons ("Speichern", "Exportieren"), features named with nouns. Enterprise buyers read documentation; write it. Avoid marketing superlatives; "führend" and "einzigartig" invite scepticism and, in advertising, UWG scrutiny.
  • B2C: shorter sentences, direct address, but still fewer exclamation marks than American English; humour translates poorly and is best written natively rather than translated.
  • Formal e-mail structure that Germans expect: subject line with the topic and reference, salutation, one-sentence context, the request, closing formula, full signature with the Geschäftsbrief data of the GmbH (Firma, Sitz, Registergericht and HRB number, Geschäftsführer).
  • Quotation marks are „low-high“ or »guillemets«; the apostrophe is not used for the genitive ("Annas Konto", not "Anna's Konto"); avoid the Deppenleerzeichen (a space inside a compound: "Benutzer Konto" is wrong, "Benutzerkonto" or "Benutzer-Konto" is right).

Compound Nouns and UI Length

  • "Settings" becomes "Einstellungen", "Undo" becomes "Rückgängig machen", "Account settings" becomes "Kontoeinstellungen", "Delivery address confirmation" becomes "Lieferadressbestätigung". Design for 200 % length on labels, 150 % on sentences, and never fix button widths in pixels.
  • Compounds do not wrap unless you let them. Set lang="de" on the root element and use hyphens: auto, add soft hyphens (­ or U+00AD) in known long compounds in your string files, and keep overflow-wrap: anywhere as the last resort for tables.
  • Mixed compounds with loanwords and abbreviations take a hyphen: "E-Mail-Adresse", "SaaS-Lösung", "Login-Daten", "PDF-Export", "2-Faktor-Authentifizierung".
  • Sentence structure prevents string concatenation: "You have {n} new messages" works in English as prefix plus number; in German the number sits mid-sentence and the noun inflects ("Sie haben 1 neue Nachricht", "Sie haben 3 neue Nachrichten"). Use ICU MessageFormat plurals and full-sentence placeholders, never glued fragments.
  • Truncation with an ellipsis ("Kontoeinstellu…") is acceptable in menus but not in buttons or table headers; prefer abbreviation dictionaries reviewed by a native speaker.

Dates, Numbers, Currency and Addresses

Itemde-DE conventionCode
Date03.09.2026; long form 3. September 2026; ISO 2026-09-03 acceptable in technical contextsnew Intl.DateTimeFormat("de-DE", { dateStyle: "medium" }).format(d)
Time24-hour, "14:30 Uhr"{ timeStyle: "short" } gives "14:30"
Calendar weekISO 8601 weeks, written "KW 36"; business planning runs on KWCompute ISO week numbers, not US weeks
Decimal and grouping1.234,56new Intl.NumberFormat("de-DE").format(1234.56)
Currency1.234,56 € with a non-breaking space before the symbol; "EUR" in tables and invoices{ style: "currency", currency: "EUR" }
Percent"19 %" with a space{ style: "percent" } inserts it
Phone+49 30 1234560Store E.164, display grouped
Postal codeFive digits, leading zero possible ("01067 Dresden")Store as string, validate ^\d{5}$
Address blockName, Straße Hausnummer, PLZ Ort, country only if abroadOrder of lines matters for postal automation
SalutationHerr, Frau, or none; "Divers" or "keine Angabe" as options; academic titles used ("Frau Dr. Beispiel")Separate fields for title, first and last name

Regional variants: de-AT writes "Jänner" for January and places the currency symbol before the amount in CLDR data ("€ 1.234,56"); de-CH uses no ß (always "ss"), an apostrophe-like grouping mark and a dot decimal ("1’234.56") and CHF. Negotiate the locale from Accept-Language with a fallback chain (de-AT, then de, then en) and let users override it.

Input parsing: German users type "1.234,56" or "1234,56"; a numeric keypad has a comma. Do not rely on <input type="number"> for money; use a text field with inputmode="decimal" and parse with the locale's separators.

ß and Umlauts in Code

  • Case: "straße".toUpperCase() yields "STRASSE" in JavaScript and most runtimes; the capital ẞ (U+1E9E) has been an official option since 2017 but is rare in UI. Lowercasing "STRASSE" does not give the ß back, so never round-trip case for storage; store the original.
  • Normalisation: "ä" exists as one code point (U+00E4, NFC) or as "a" plus combining diaeresis (NFD). Files from macOS and some APIs arrive as NFD. Normalise all input to NFC at the boundary (str.normalize("NFC")) before comparing, hashing or indexing.
  • Collation: DIN 5007-1 sorts ä like a (dictionaries, most UI lists); DIN 5007-2 sorts ä like ae (name lists, phone books). ICU exposes both: new Intl.Collator("de") and new Intl.Collator("de-DE-u-co-phonebk"). Databases: PostgreSQL ICU collations such as de-DE-x-icu; MySQL utf8mb4_german2_ci treats ä as ae, utf8mb4_unicode_ci as a with a secondary difference.
  • Search: users type "Muller", "Mueller" and "Müller" for the same person; index a folded form (ä to ae, ß to ss, then strip diacritics) alongside the original, and consider the Kölner Phonetik algorithm for fuzzy matching of German names.
  • Slugs and file names: transliterate ä, ö, ü, ß to ae, oe, ue, ss (this is the convention Germans use themselves), then strip remaining diacritics; keep the original title for display.
  • Domains and e-mail: umlaut domains exist as IDN (Punycode, "xn--"); most companies also hold the ae/oe/ue variant. Do not reject umlauts in the local part or domain of an e-mail address with an ASCII-only regex if you accept international addresses; do reject them if your mail provider cannot deliver.
  • Keyboards: German QWERTZ swaps Y and Z and needs AltGr for @, [, ], {, }, , | and ~. Do not bind those characters as shortcuts, and bind by physical key code (event.code) rather than the printed character when the layout should not matter.
export function deSlug(input: string): string {
  return input
    .normalize("NFC")
    .replace(/ä/g, "ae").replace(/ö/g, "oe").replace(/ü/g, "ue").replace(/ß/g, "ss")
    .replace(/Ä/g, "Ae").replace(/Ö/g, "Oe").replace(/Ü/g, "Ue")
    .normalize("NFD").replace(/[\u0300-\u036f]/g, "")
    .toLowerCase()
    .replace(/[^a-z0-9]+/g, "-")
    .replace(/^-+|-+$/g, "");
}
// deSlug("Straßenverkehrsordnung für Köln") === "strassenverkehrsordnung-fuer-koeln"

export const nameSort = new Intl.Collator("de-DE-u-co-phonebk", { sensitivity: "base" });
// ["Zyx", "Müller", "Mueller", "Mahler"].sort(nameSort.compare)

Gender-Neutral Language Options

StyleExampleWhere it is usedConsiderations
Generic masculine"die Nutzer"Legal texts, older enterprises, much B2BSimplest; increasingly read as excluding in consumer and HR contexts
Paarform"Nutzerinnen und Nutzer"Formal B2B, public bodies, contractsSafe and grammatical; long
Neutral forms"Nutzende", "Mitarbeitende", "Team", "Fachkräfte", "Personen"Corporate communication, HR, UIWorks well for roles; participles sound odd for some words
Gendersternchen or Doppelpunkt"Nutzer*innen", "Nutzer:innen"Startups, media, NGOs, universitiesThe Rat für deutsche Rechtschreibung does not recommend characters inside words; some state administrations prohibit them; screen readers vary
Binnen-I or Unterstrich"NutzerInnen", "Nutzer_innen"DecliningLegacy styles

Practice: choose one style per product and audience, document it in the style guide, and prefer neutral formulations in UI because they are short and avoid the character debate ("Wer hat Zugriff?" instead of "Welche Nutzer*innen haben Zugriff?"). Job advertisements must be gender-neutral under the AGG; the customary marker is "(m/w/d)" after the title. Salutation fields should offer an option beyond Herr and Frau, since "divers" has been a legal gender entry since 2018; a neutral greeting ("Guten Tag Anna Beispiel") avoids guessing.

Denglisch Pitfalls and Standard UI Terms

False friends that produce wrong meaning: "aktuell" means current, not actual; "eventuell" means possibly, not eventually; "bekommen" means receive; "Chef" is the boss; "Gift" is poison; "sensibel" is sensitive as in touchy; "Kontrolle" is a check, not control; "Provision" is a commission; "Rente" is a pension; "Konzept" is a draft plan; "Billion" is a trillion and "Milliarde" is a billion, a mistake that has corrupted financial dashboards.

Pseudo-anglicisms that are correct German but confuse English readers: "Handy" (mobile phone), "Beamer" (projector), "Homeoffice" (working from home), "Oldtimer" (classic car), "Shooting" (photo shoot), "Mailbox" (voicemail), "Public Viewing".

English UI termEstablished GermanAvoid
Sign in / Sign up / Sign outAnmelden / Registrieren / Abmelden"Einloggen" is colloquial; "Anmelden" for sign-up is ambiguous
Save / Cancel / Delete / EditSpeichern / Abbrechen / Löschen / Bearbeiten"Sichern" (Apple style) confuses non-Apple users
Next / Back / Done / SubmitWeiter / Zurück / Fertig / Absenden"Einreichen" for forms in government contexts only
Upload / DownloadHochladen / Herunterladen"Downloaden" and "uploaden" are colloquial verbs
Settings / Account / Cart / CheckoutEinstellungen / Konto / Warenkorb / Zur KasseFinal order button must be "zahlungspflichtig bestellen" in consumer shops
Search / Filter / SortSuchen / Filtern / Sortieren
Dashboard, Cloud, Backup, Update, Release, SupportKept as loanwords in tech B2B, capitalised, with German articles (das Dashboard, die Cloud, das Backup)Do not translate "Cloud" as "Wolke"

Date placeholders read "TT.MM.JJJJ", not "DD.MM.YYYY". Error messages are complete polite sentences: "Bitte geben Sie eine gültige E-Mail-Adresse ein." Never leave English fragments inside a German sentence except product names.

Procedure for Localizing a Product

  1. Decide register (Sie or du) and gender style per product and audience; write a one-page style guide with the standard term table and the do-not-translate list.
  2. Externalise every string with ICU MessageFormat; forbid concatenation; provide context comments for translators (button, heading, error, maximum length).
  3. Translate with a native professional or edit machine output natively; run the output through the style guide.
  4. Pseudo-localize first: expand strings by 40 % with umlauts and ß inserted, and fix every overflow before the real translation lands.
  5. Implement locale formatting through Intl or ICU, never hand-written; set lang attributes; enable hyphenation; test de-DE, de-AT and de-CH.
  6. Test data paths: input with ß and umlauts, NFD input, sort orders, search folding, slug generation, e-mail with IDN, CSV exports opened in a German Excel (semicolon-separated, comma decimal).
  7. Have legal texts (Impressum, AGB, Datenschutzerklärung, Widerrufsbelehrung) written by a lawyer in German, not translated.

Checklist

  • Register documented and consistent across UI, e-mails, help centre and marketing site.
  • No fixed-width buttons or headers; hyphenation enabled; pseudo-localization passed.
  • Dates, numbers, currency and percent produced by Intl with de-DE, de-AT and de-CH tested.
  • NFC normalisation at input; collation chosen per list; search folding in place; slugs transliterated.
  • Keyboard shortcuts avoid AltGr characters; Y and Z swap considered.
  • Gender style chosen; job ads carry "(m/w/d)"; salutation field has a neutral option.
  • Standard UI terms from the table; false friends reviewed; loanwords capitalised with correct articles.
  • CSV and Excel exports use semicolon delimiters and comma decimals for German locale downloads.

Common Mistakes

  • Sie in the app and du in the onboarding e-mails, written by different teams.
  • Translating strings sentence-fragment by sentence-fragment and producing "Sie haben 1 neue Nachrichten".
  • Uppercasing names for display and turning "Groß" into "GROSS" in a legal document.
  • Sorting a customer list by byte order so that every umlaut name sinks to the bottom.
  • Rejecting "01067" as a postal code because it was stored as an integer.
  • Exporting "1,234.56" to a customer who opens it in German Excel and gets 1,234.56 read as 1.23456.
  • Shipping a "Wolke" or a "Spülen" (flush) button because a translator had no context.
  • Using "Billion" for 10^9 in a financial report.

Limits

This skill covers language, formatting and engineering conventions for German localization from a founder's and engineer's experience; it is not legal advice and not a substitute for a professional translator or editor. Orthography rules, the Rat für deutsche Rechtschreibung's positions on gender characters, CLDR locale data and library behaviour change; verify current data with the Duden, the Rat für deutsche Rechtschreibung, the Unicode CLDR project and your runtime's Intl implementation. Consumer-facing legal texts, advertising claims under the UWG and accessibility obligations under the Barrierefreiheitsstärkungsgesetz need a Rechtsanwalt; the wording of documents that go to the Finanzamt or to customers as invoices should be aligned with the Steuerberater.

Install this skill directly: skilldb add germany-business-tech-skills

Get CLI access →

Related Skills

Umsatzsteuer and Invoicing

Activate this skill when the user is issuing invoices from a business in Germany, deciding whether to charge Umsatzsteuer, applying the Kleinunternehmerregelung, handling reverse charge for EU B2B customers, filing the Umsatzsteuervoranmeldung through ELSTER, or choosing between Sollversteuerung and Istversteuerung. Triggers on "Umsatzsteuer," "Mehrwertsteuer," "USt-IdNr," "Rechnungspflichtangaben," "Kleinunternehmer," "Reverse Charge," "Steuerschuldnerschaft des Leistungsempfängers," "Umsatzsteuervoranmeldung," "ELSTER," "Zusammenfassende Meldung," "Istversteuerung," and "Vorsteuerabzug." Written for founders and engineers building invoicing logic for a GmbH or a freelancer in Germany.

Germany Business Tech207L

XRechnung and ZUGFeRD E-Invoicing

Activate this skill when the user must issue, receive, validate or generate structured electronic invoices for customers or public bodies in Germany under the B2B e-invoicing obligation phased in from 2025. Triggers on "XRechnung," "ZUGFeRD," "Factur-X," "E-Rechnung," "EN 16931," "UBL," "CII," "PDF/A-3," "Leitweg-ID," "Peppol," "KoSIT Validator," "Mustang," and "E-Rechnungspflicht." Covers what counts as an e-invoice, the XRechnung and ZUGFeRD formats, the Peppol network, what an ERP or invoicing tool must produce, validation tooling and a minimal valid example structure.

Germany Business Tech237L

DSGVO in Practice

Activate this skill when the user is building or operating software that processes personal data of people in Germany and needs to implement GDPR as German supervisory authorities apply it: signing an Auftragsverarbeitungsvertrag, documenting technische und organisatorische Maßnahmen, keeping a Verarbeitungsverzeichnis, running a Datenschutz-Folgenabschätzung, deciding whether a Datenschutzbeauftragter is required, implementing cookie consent, or answering Betroffenenanfragen. Triggers on "DSGVO," "GDPR Germany," "AVV," "Auftragsverarbeitung," "TOM," "Verarbeitungsverzeichnis," "DSFA," "Datenschutzbeauftragter," "TTDSG," "TDDDG," "Cookie-Einwilligung," "Auskunftsanfrage," "Art. 15," "Datenpanne," and "Aufsichtsbehörde."

Germany Business Tech160L

German Employment Law Basics

Activate this skill when the user is hiring, managing or parting with employees or contractors in Germany and needs to understand Kündigungsschutz, Probezeit, statutory notice periods, the Betriebsrat, working-time limits, Minijobs and Midijobs, the Scheinselbstständigkeit risk with freelancers, or the rules on Urlaub and Krankheit. Triggers on "Kündigungsschutz," "KSchG," "Probezeit," "Kündigungsfrist," "Betriebsrat," "Arbeitszeitgesetz," "Minijob," "Midijob," "Scheinselbstständigkeit," "Statusfeststellung," "Urlaubsanspruch," "Entgeltfortzahlung," "Arbeitsvertrag Deutschland," "Nachweisgesetz," and "Aufhebungsvertrag." Written for founders running a GmbH in Germany who hire their first engineers and work with freelancers.

Germany Business Tech156L

German Tax Basics for Founders

Activate this skill when the user runs or plans a GmbH or UG in Germany and needs to understand the corporate tax stack: Körperschaftsteuer, Gewerbesteuer with the municipal Hebesatz, Solidaritätszuschlag, Kapitalertragsteuer on distributions, how to work with a Steuerberater, how DATEV workflows and Kontenrahmen shape bookkeeping, and how to be ready for a Betriebsprüfung. Triggers on "Körperschaftsteuer," "Gewerbesteuer," "Hebesatz," "Solidaritätszuschlag," "Kapitalertragsteuer," "Ausschüttung," "verdeckte Gewinnausschüttung," "Steuerberater," "DATEV," "SKR03," "SKR04," "Unternehmen online," "GoBD," "Verfahrensdokumentation," "Betriebsprüfung," "E-Bilanz," and "Steuervorauszahlung." Pairs with the Umsatzsteuer skill for VAT.

Germany Business Tech155L

GmbH and UG Formation

Activate this skill when the user is founding or restructuring a limited-liability company in Germany and needs to choose between a GmbH and a UG (haftungsbeschränkt), prepare the notary appointment, pay in share capital, register with the Handelsregister and the Gewerbeamt, or complete the Finanzamt's tax registration questionnaire. Triggers on "GmbH," "UG haftungsbeschränkt," "Stammkapital," "Musterprotokoll," "Notartermin," "Handelsregister," "Gewerbeanmeldung," "Fragebogen zur steuerlichen Erfassung," "Transparenzregister," "Gesellschafterliste," and "Gesellschaftsvertrag." Covers capital mechanics, the formation sequence, timelines, cost components in principle, and the Geschäftsführer duties that begin on day one.

Germany Business Tech182L