ManuceTranslate a fileTranslate a CSV string table into German

Translate a CSV string table into German

Manuce fills the German column of your CSV string table, or adds it as the last column if there isn't one. Keys, delimiters, quotes, encoding and BOM stay exactly as they were; only the values change. The real work with German is planning for longer labels and a handful of typographic traps.

Upload my file See pricing

What it costs

For a CSV string table with about 2,000 words of values, 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 a string table

A CSV string table is mostly short text: buttons, menu items, error messages, tooltips. That is where German causes trouble, far more than in long sentences.

  • Length. German text often runs 20 to 35% longer than English, and compound nouns make short labels balloon: Account settings becomes Kontoeinstellungen, a single word with no natural break point. A button sized tightly for Save may not fit Speichern.
  • Capitalised nouns. Every noun takes a capital: Neues Spiel, Datei öffnen. If your code title-cases strings or forces lower case for a visual style, the German output becomes wrong.
  • ß in capitals. An engine that uppercases headings turns Straße into STRASSE, which is correct but longer still.
  • Sie or du. Business software uses the formal Sie (Bitte geben Sie Ihr Passwort ein); many games address the player as du (Gib deinen Namen ein). Mixing both in one interface stands out at once.
  • Plurals. German has two CLDR categories, one and other, like English, so 0 Dateien takes the plural. If your source is French, where zero is singular, check any logic hard-coded as singular for n ≤ 1.

The CSV file itself: delimiters, quotes, umlauts

CSV is a fragile format, and German adds three specific risks.

  • Delimiters. Excel set to a German locale often uses a semicolon as the list separator, because the comma is the decimal mark. If someone opens and re-saves the translated file in a spreadsheet, the delimiter can change and Unity or Godot will no longer read the columns. Manuce keeps your original delimiter; the risk lies in handling the file afterwards.
  • Quotes. German quotation marks „…“ are different characters from the straight " used to wrap CSV fields, so they do not break the structure. A value containing a comma still needs its straight quotes, and since the file's quoting is preserved, it keeps them.
  • Encoding. ä, ö, ü and ß turn into ä or ß when a UTF-8 file is read as Latin-1. Your source file's encoding and BOM are kept as they are, so if your engine expects UTF-8 with or without a BOM, make sure the source already matches.

What Manuce returns, and what it does not do

The expected input is a developer-style CSV: one key column (key, id…) and one column per language (en, fr, de_DE…), as used by Unity or Godot.

  • If a German column exists, it is filled; otherwise one is added as the last column. A comment or context column is used as context for the translation.
  • You get the same file back: key order, quotes, comments, line endings, encoding and BOM preserved.
  • Each translated value is checked against the source: {player_name}, %d or <b> must appear in the German value. If a mismatch persists, the source value is kept and the report says so.
  • Not translated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
  • A report comes with the file: strings translated, strings left unchanged and why.

What Manuce does not do: it does not shorten labels to fit your buttons, does not test the display in your interface, and does not take glossaries or terminology instructions. A CSV without a key column is not treated as a language file; it is translated as plain text. Manuce does not produce sworn or certified translations, though a string table rarely needs one.

Preparing the file and checking it afterwards

Before uploading:

  • Make sure the header row includes a key column; without it, the file is translated as text.
  • Fill the context column for ambiguous strings: Button, limited width, Menu title, Verb, not noun. Play can be Spielen or Abspielen depending on use.
  • Prefer named placeholders ({count}) to positional ones (%s %s): German word order often pushes the verb to the end and may swap two variables.

When the file comes back:

  • Read the free sample to judge register (Sie or du) and terminology before paying, then the full translation, especially any terms you want kept as they are.
  • Go through the report: every string left in the source language has a stated reason.
  • Import the file without passing it through a spreadsheet, then click through your screens in German to spot truncated labels.

In practice

  1. Check that your CSV has a key column and, ideally, a context column.
  2. Upload the file and pick German: the quote is based on the words in the values.
  3. Read the free sample to confirm register and tone.
  4. Download the translated CSV and the report of strings left unchanged.
  5. Import it straight into Unity or Godot and check long labels on screen.

Frequently asked questions

My de_DE column is already half filled. What happens?

If the target-language column exists, that is the one that gets filled. Empty source values are not translated. The report lists which strings were translated and which were left as they were.

Will the German text fit my buttons?

Not necessarily: German is often 20 to 35% longer than English, and Manuce does not shorten labels to a given width. Noting 'short button' in the context column helps the translation, but testing on screen remains your job.

Will it use Sie or du?

Sie is the norm in professional contexts, while many games use du. Manuce does not take register instructions, so read the free sample, translated at the level you choose, to see which form is used before you pay.

My umlauts look broken after import. Is that the translation?

Manuce keeps the source file's encoding and BOM. Characters such as ä instead of ä usually mean the file was read in a different encoding, or re-saved by a spreadsheet. Check what encoding your engine expects and what your source uses.

What is counted in the price?

Only the words in the values; keys and tags are excluded. German is charged at the base rate, with a ×1 coefficient. If you translate the same table into several languages, a discount applies to the whole order from two languages upwards.

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