Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Lịch sử phiên bản
- "Init history"v9.0.013/6/2026
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Migrate from Vue I18n to Intlayer
If your Vue application currently uses vue-i18n, you can migrate to Intlayer without rewriting your components or translating hooks. Intlayer provides a compat adapter that perfectly mirrors vue-i18n's API while leveraging Intlayer's powerful features under the hood.
What to do
To get started, simply run the initialization command in your project:
Sao chép mã vào clipboard
npx intlayer initDuring the initialization, Intlayer will set up your configuration file (intlayer.config.ts) and prepare your project for migration. You will just need to add the Intlayer plugin to your Vite configuration to automatically alias the vue-i18n imports.
Sao chép mã vào clipboard
import { defineConfig } from "vite";import vue from "@vitejs/plugin-vue";import vueI18nVitePlugin from "@intlayer/vue-i18n/plugin";export default defineConfig({ plugins: [vue(), vueI18nVitePlugin()],});What it does under the hood
The vueI18nVitePlugin injects a module alias into your bundler. Any import of vue-i18n in your codebase will be transparently redirected to @intlayer/vue-i18n.
Under the hood, the adapter handles the complex vue-i18n syntax natively:
- Interpolation & Plurals: Resolves
{name}and list{0}interpolations. Pipe plurals ("car | cars") are converted into Intlayer enumeration/plural nodes based on positional semantics. - Formats: Functions like
d()andn()wrapIntlunder the hood, honoring thedatetimeFormatsandnumberFormatsdefined in your options. - Global & Local State:
global.localeis mapped to aWritableComputedRefbacked by the Intlayer client, so reactivity behaves exactly as expected (e.g.locale.value = 'fr'). - Directives: The
v-tdirective is registered and functions normally.
Your application continues rendering exactly as before, but the content is powered by your Intlayer dictionaries, giving you type safety, better bundle optimization, and seamless CMS integration.