A reusable Vue 3 localization plugin that wraps vue-i18n and provides a ready-to-use integration layer — set up once, reuse across every project.

Load locales via dynamic imports — only the active language is loaded, others are fetched on demand. Two translation methods: t() for simple strings with interpolation and tm() for ICU pluralisation with correct forms for any language (including Arabic).
useLocale provides access to the current language, its metadata (flag, display name), and switching with a loading indicator. useAvailableLocales returns a list of all registered locales. useFormat wraps Intl for formatting dates, numbers, and currencies using the active locale.
The check plugin validates all locales against a reference for missing or extra keys at build time and in HMR. The inline plugin bakes JSON into the bundle, while the namespace plugin automatically splits locales into chunks with lazy loading. The dev plugin adds a translation inspector with in‑UI editing.
Interactive initialisation, adding new locales, completeness checks, removing unused keys, merging with a shared base, XLIFF/PO export/import, and stale translation tracking. The TranslationKey type generation provides autocomplete and compile‑time key checking in all composables.
A built‑in browser editor with a key table, filters, group operations, and live preview. Automatic translation of missing strings via LibreTranslate or DeepL. Support for a base dictionary, key locking, validation rules, and ignore lists for fine‑tuning to your project.