ManuceTranslate a fileTranslate a Java (Spring) app into German

Translate a Java (Spring) app into German

Upload the messages.properties file from your Spring application and Manuce returns the same file with German values, ready to save as messages_de.properties. Keys, {0} placeholders, escapes and encoding stay untouched, and a report shows what was translated and what was left as it was.

Upload my file See pricing

What it costs

For the language files of a Java (Spring) app totalling about 2,000 words, into German:

Essentiel
€12

To understand, internal use.

Professional
€36

Ready to send, by the technical specialist.

Premium
€70

Cross-checked. For documents that commit you.

Price for one language, original layout included. VAT not applicable — article 293 B of the French General Tax Code (CGI). The exact quote, based on your file's word count, is shown before you pay.

What German changes in your Spring messages

German text typically runs 20 to 35% longer than English, and compound nouns make short labels much wider. «Settings» becomes Einstellungen, «Order history» becomes Bestellverlauf: a single word that cannot wrap neatly inside a narrow Thymeleaf table cell or navigation bar.

  • Every noun is capitalised: password.forgot=Passwort vergessen?. A lower-case noun looks like a typo to any German reader.
  • Formal address: business software uses Sie, as in Geben Sie Ihre E-Mail-Adresse ein, with Sie and Ihre capitalised. The informal du suits some consumer apps, but it must be consistent across the whole file.
  • Punctuation: German quotation marks look „like this“ in Germany and Austria, and there is no space before a question mark or colon.
  • Regional variant: Switzerland does not use ß (Strasse rather than Straße) and prefers « » quotes. If that market matters, keep a separate messages_de_CH.properties.

Plurals, apostrophes and umlauts: traps specific to .properties

The plural of zero. German has two CLDR plural categories, one and other, and only 1 is singular: 0 Dateien, 1 Datei, 2 Dateien. If your messages use ChoiceFormat, check every branch, for example files.count={0,choice,0#Keine Dateien|1#Eine Datei|1<{0} Dateien}.

The MessageFormat apostrophe. In any message containing {0}, a single apostrophe must be doubled, otherwise the text after it vanishes. German uses few apostrophes, but they appear in Geht''s weiter, {0}? or Max'' Profil. Manuce handles these apostrophes.

Umlauts and encoding. Before Java 9, .properties files were read as ISO-8859-1, so many projects still contain escapes such as zur\\u00fcck for «zurück». These escapes are preserved where they are used. Note that ä, ö, ü and ß exist in ISO-8859-1, but the „ “ quotation marks do not. Also make sure your MessageSource reads the file in its actual encoding, or «Bestätigen» will display as Bestätigen.

What Manuce returns, and what it does not do

You get the same file in the same format: indentation, key order, quotes, comments, line endings, encoding and BOM are all preserved. Only the values change. Continuation lines (a long value ending in \\ and carried on to the next line) are respected.

  • Each German value is checked against the source: if {0} or a tag such as <b> goes missing and the mismatch persists, the source value is kept and the report says so.
  • Not translated: keys (checkout.button.pay stays as it is), empty values, URLs, email addresses, numbers, colours, date patterns such as dd.MM.yyyy, identifiers and anything you mark as non-translatable.
  • The report lists the strings translated and those left unchanged, with the reason.

Manuce does not touch your Java code or templates: a string hard-coded in a controller stays in the source language, and a button too narrow for Bestellung abschließen is a CSS fix on your side. Number formatting (1.234,56) comes from the Java Locale, not from translation. Pricing counts the words in the values only, excluding keys and tags.

Preparing the file and checking the German build

  1. Start from the complete reference file: your source-language bundle with every current key, not a half-finished messages_de.properties.
  2. State the register: Sie for business tools, du only if your brand is already informal elsewhere.
  3. Mark what must stay as is: product names, displayed error codes, technical terms your German users know in English.
  4. Check the encoding: configure message loading to match the file's real encoding; UTF-8 is simplest if you want proper „quotes“.
  5. Test with the de locale: sign-up forms, validation messages, generated emails. Look for overflowing labels, missing capitals and ß in upper-case headings (STRASSE or STRAẞE, as you prefer).

The free excerpt, one paragraph translated at your chosen level, lets you judge tone and form of address before paying.

In practice

  1. Upload your reference messages.properties for an instant quote based on the exact word count.
  2. Read the free excerpt to confirm the register (Sie or du) and terminology.
  3. Download the translated file and the report of strings left unchanged.
  4. Save it as messages_de.properties alongside your other resource bundles.
  5. Run the app with the de locale and adjust any labels that overflow.

Frequently asked questions

Could my keys or {0} placeholders be altered?

No. Keys are never translated, and every value is checked against the source for placeholders and tags. If a placeholder is missing and the mismatch persists, the source value is kept and flagged in the report.

My file uses \\u00fc escapes. Will they survive?

Yes: \\uXXXX escapes are preserved where they are used, along with the file's encoding and BOM. Just confirm your MessageSource reads the file in that encoding, or umlauts will display incorrectly.

Should the German version use Sie or du?

For professional software, Sie is the norm, with Sie and Ihre capitalised. Du appears in relaxed consumer apps. Whichever you choose, it has to be applied consistently across every message.

Is one file enough for Germany, Austria and Switzerland?

A single messages_de.properties usually serves all three. Swiss German spelling drops ß and uses « » quotes, so if Switzerland is a key market, keep a separate messages_de_CH.properties.

Will strings hard-coded in my Java classes be translated?

No. Manuce translates the values in the .properties file you upload and does not modify your code. Move those strings into your message bundles first if you want them in German.

The specialist in charge

This subject goes to Dédale, the technical specialist. See how it works.

Try it on your own file, free

A sample of your file translated at the level you choose, before any payment. You judge, then you decide.

Upload my file