Vue i18n
vue-i18n · JSON · 46 languages · Free

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.

Translate your locale file → $ pip install kaeris
{named} interpolation preserved Pipe pluralization preserved SFC <i18n> block friendly Format-native JSON No account needed
Localize your Vue app in 3 steps
1

Upload src/locales/en.json

Or run kaeris init --preset vue-i18n to point the CLI at your locales folder.

2

Pick locales

From a quick Europe preset to all 46 languages KAERIS supports.

3

Ship

Drop the output into src/locales/ and pass it straight into createI18n({ messages }).

Real vue-i18n JSON, pipes and all

Before → after

src/locales/en.json
{
  "welcome": "Welcome back, {name}!",
  "cart": "no items | one item | {count} items",
  "save": "Save changes"
}
src/locales/de.json
{
  "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.

Built for vue-i18n

{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.

Why KAERIS
Placeholder-safe{name} is never dropped or mistranslated.
Format-native — real vue-i18n JSON out, pipes and all, not a flattened wrapper.
Verify-meaning QA — every string is back-translated to catch meaning drift before you ship.
No account needed — drag & drop free up to 10,000 characters, or use the CLI/API.

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
Translate your locale files now →