Translate a Vue app into German: vue-i18n JSON files
Upload your Vue app’s vue-i18n JSON locale file and Manuce returns the same file with the values in German, {name} placeholders and pipe-separated plural forms untouched. Keys, order, indentation and encoding stay as they were. A report lists every string translated and every string left as it was, with the reason.
What it costs
For the language files of a Vue app totalling about 2,500 words, into German:
To understand, internal use.
Ready to send, by the technical specialist.
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 does to a Vue interface
German lengthens strings and builds compound words that cannot wrap at a space. “Save” becomes Speichern, but “Account settings” becomes Kontoeinstellungen: one eighteen-letter block inside a button or tab. Expect German text to run 20 to 35 % longer than English, and much more on two- or three-word labels.
- Every noun is capitalised: a CSS
text-transform: lowercaseorcapitalizeon your menus produces incorrect German. Drop it for thedelocale. - Formal or informal: Sie is the norm in professional contexts, while many consumer apps use du. Seeing
Melden Sie sich anon one screen andSpeichere deine Änderungenon the next looks careless. - Punctuation: German quotation marks are „…“, and decimal commas apply to numbers.
- Word order: past participles move to the end, so
{count} files deletedbecomes{count} Dateien gelöscht. A sentence stitched together in code with$t('a') + name + $t('b')cannot follow that order; a single string with a placeholder can.
vue-i18n plurals in German: two categories and gendered words
German has only two CLDR plural categories, one and other, and zero takes the plural: 0 Dateien, as in English “0 files”. If your source is French, note that French puts 0 with the singular, so a French-specific rule should not be copied across.
- With two forms,
1 Datei | {count} Dateien, vue-i18n’s default rule sends 0 to the second form, which suits German. - If your project defines custom
pluralRulesfor the source locale, do not reuse them forde. - With three forms (zero | one | many), the number of segments stays the same:
no files | one file | {count} filesbecomeskeine Dateien | eine Datei | {count} Dateien. Manuce keeps the pipe-separated forms; it does not merge or add any.
A trap specific to German is grammatical gender, which affects articles and adjectives. A generic key such as New {item} cannot agree, since German says Neue Datei but Neuer Ordner. Split such keys before translation.
What Manuce returns, and what it does not do
You get the same JSON file back, ready to drop into src/locales or wherever your project keeps its messages:
- indentation, key order, quotes, comments, line endings, encoding and BOM preserved; only the values change;
{name}placeholders and pipe-separated plural forms preserved;- each translated value checked against the source (placeholders, tags): if
{count}is missing from the German and the mismatch persists, the source value is kept and the report says so; - left untranslated: keys, empty values, URLs, email addresses, numbers, colours, date formats, identifiers and anything marked as non-translatable.
The report shows which strings were translated and which were left as they were, and why. Pricing is based on the words in the values; keys and tags are not counted.
Manuce does not touch your code: not text hard-coded in .vue templates, not your numberFormats or datetimeFormats configuration, not the width of your components. Nor does it produce sworn or certified translations: if the app shows terms and conditions, an Impressum or a Datenschutzerklärung for German users, have them reviewed by a lawyer.
Preparing the file and checking German in the running app
Before uploading:
- start from one complete source file, such as
en.json; if your messages live in<i18n>blocks or YAML, gather them into JSON first; - replace concatenations with strings that carry placeholders;
- in vue-i18n 9 and later, @ introduces linked messages, so an address inside a value is written
contact{'@'}example.de; - mark product names and terms you want kept as non-translatable.
After delivery:
- set
lang="de"on the html element when the locale switches; without it,hyphens: autowill not breakKontoeinstellungencleanly; - go through buttons, tabs, menus and toasts at mobile width;
- make sure amounts and dates go through
$nand$dwithde-DE:1.234,56 €,31.12.2025; - read the report and deal with any strings left in the source language.
In practice
- Gather your Vue app’s messages into one complete source JSON file.
- Upload it: the quote is based on the exact word count of the values, and the free extract shows the German you will get, register included.
- Pay, then download de.json and the report from your account.
- Add de.json to the messages in createI18n, set lang="de" on the page and test each screen at mobile width.
Frequently asked questions
My messages are in <i18n> blocks or YAML. What should I do?
This page covers vue-i18n JSON files. Gather your messages into a JSON file first, upload it, then move the German version back into your own structure if needed.
Will the German use Sie or du?
Sie is the convention in professional contexts, whereas many consumer apps use du. Check the register on the free extract before paying, then review key screens for consistency.
What happens if a {count} placeholder goes missing?
Every translated value is compared with the source. If the mismatch persists, the source value is kept and the report flags it, so you know exactly which key to revisit.
Will my pipe-separated plurals work in German?
The pipe-separated forms are kept, with the same number of segments. German treats 0 as plural, as English does, so vue-i18n’s default rule works; just avoid reusing custom pluralRules written for another language.
Are my keys or their order changed?
No. Keys, order, indentation, quotes, comments, encoding and BOM stay identical; only the values change. Keys are not counted in the price.
The specialist in charge
This subject goes to Dédale, the technical specialist. See how it works.
The same file, into another language
Into German, other files
See also
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.