Translate vue-i18n locale files without breaking {named} interpolation
Upload src/locales/en.json, pick locales, and get back de.json, uk.json… — {name} placeholders and | pluralization pipes translated correctly for each locale.
Upload src/locales/en.json
Or run kaeris init --preset vue-i18n to point the CLI at your locales folder.
Pick locales
From a quick Europe preset to all 46 languages KAERIS supports.
Ship
Drop the output into src/locales/ and pass it straight into createI18n({ messages }).
Before → after
{ "welcome": "Welcome back, {name}!", "cart": "no items | one item | {count} items", "save": "Save changes" }
{ "welcome": "Willkommen zurück, {name}!", "cart": "keine Artikel | ein Artikel | {count} Artikel", "save": "Änderungen speichern" }
The |-separated plural forms are translated in place, keeping {count} in the right form. For CLDR-heavy locales (ru, ar, pl…) KAERIS keeps the same number of forms as your source — pair it with vue-i18n's pluralRules config if you need extra categories.
{named} interpolation preserved
{name}-style placeholders are never dropped, renamed or reordered across translations.
Pipe pluralization preserved
no items | one item | {count} items — each pipe-separated form is translated on its own, not as one blob.
SFC <i18n> friendly
Output is plain JSON you can paste straight into a component's <i18n> custom block or a shared locales/ file.
One CLI command
kaeris init --preset vue-i18n scaffolds locale detection from your existing locales folder.
{name} is never dropped or mistranslated.Ship Vue in every market
46 languages, placeholder-safe, format-native. Free to start, no account required.
$ pip install kaeris $ kaeris init --preset vue-i18n