Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Inisialisasi history"v9.0.05/6/2026
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisIf 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
Migrasi dari vue-i18n ke Intlayer
Mengapa bermigrasi dari vue-i18n ke Intlayer?
Alih-alih memuat file JSON besar ke halaman Anda, muat hanya konten yang diperlukan. Intlayer membantu mengurangi ukuran bundle dan halaman Anda hingga 50%.
Menentukan ruang lingkup konten aplikasi Anda memudahkan pemeliharaan untuk aplikasi skala besar. Anda dapat menduplikasi atau menghapus folder fitur tunggal tanpa beban mental meninjau seluruh codebase konten Anda. Selain itu, Intlayer sepenuhnya diketik untuk memastikan akurasi konten Anda.
Intlayer juga merupakan solusi dengan pengembangan paling aktif dalam ekosistem i18n — masalah diperbaiki dengan cepat, adapter framework baru dirilis secara teratur, dan core API terus disempurnakan berdasarkan umpan balik produksi dunia nyata.
Kolokasi konten mengurangi konteks yang diperlukan oleh Large Language Models (LLM). Intlayer juga dilengkapi dengan rangkaian alat, seperti CLI untuk menguji terjemahan yang hilang, LSP, MCP, dan agent skills, untuk membuat pengalaman pengembang (DX) bahkan lebih mulus untuk AI agents.
Gunakan automation untuk menerjemahkan dalam pipeline CI/CD Anda menggunakan LLM pilihan Anda dengan biaya dari penyedia AI Anda. Intlayer juga menawarkan compiler untuk mengotomatisasi ekstraksi konten, serta web platform untuk membantu menerjemahkan di latar belakang.
Menghubungkan file JSON besar ke komponen dapat menyebabkan masalah performa dan reaktivitas. Intlayer mengoptimalkan pemuatan konten Anda pada saat build.
Lebih dari sekadar solusi i18n, Intlayer menyediakan visual editor yang self-hosted dan full CMS untuk membantu Anda mengelola konten multibahasa Anda secara real-time, membuat kolaborasi dengan penerjemah, copywriter, dan anggota tim lainnya menjadi seamless. Konten dapat disimpan secara lokal dan/atau remote.
Strategi Migrasi
Ada dua strategi pelengkap untuk bermigrasi dari vue-i18n ke Intlayer:
Compat adapter (direkomendasikan untuk aplikasi yang sudah ada) — Instal
@intlayer/vue-i18n(untuk komponen Vue). Package ini mengekspos API yang sama persis sepertivue-i18ntetapi mendelegasikan semua pekerjaan terjemahan ke Intlayer di balik layar. Anda menyimpan panggilan$t,useI18n(), dan<i18n-t>yang sudah ada — satu-satunya perubahan adalah path import dan inisialisasi.Migrasi penuh — Secara bertahap gantikan API
vue-i18ndengan hooks Intlayer asli (useIntlayer) dan co-locate konten di file.content.tsbersama komponen Anda.
Panduan ini mencakup Strategy 1 terlebih dahulu (compat adapter drop-in), kemudian menjelaskan migrasi penuh opsional.
Daftar Isi
Migrasi Cepat
Langkah-langkah berikut adalah minimum yang diperlukan untuk menjalankan aplikasi vue-i18n yang sudah ada di Intlayer tanpa perubahan kode dalam komponen Anda.
Install Dependencies
Install paket inti Intlayer dan adapter kompatibilitas:
bashSalin kodeSalin kode ke clipboard
npx intlayer-cli init --interactiveflag
--interactivebersifat opsional. Gunakanintlayer-cli initjika Anda adalah agen AI.Perintah ini akan mendeteksi lingkungan Anda dan menginstall paket yang diperlukan. Sebagai contoh:
bashSalin kodeSalin kode ke clipboard
npm install intlayer vue-intlayer @intlayer/vue-i18n @intlayer/sync-json-pluginAnda dapat tetap menginstal
vue-i18n— adapter kompatibilitas menggunakannya sebagaidevDependency/peerDependencyuntuk tipe TypeScript.Configure Intlayer
Perintah
intlayer initmembuatintlayer.config.tspemula. Update untuk menyesuaikan dengan locale yang sudah ada dan arahkan pluginsyncJSONke file pesan Anda:intlayer.config.tsSalin kodeSalin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Tambahkan semua locale yang sudah ada di sini ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // cocok dengan sintaks placeholder vue-i18n: {name} format: "icu", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], }; export default config;sourcememetakan locale ke jalur file JSON-nya.locationmemberi tahu watcher Intlayer folder mana yang harus dipantau untuk perubahan. Opsiformat: 'icu'memastikan bahwa placeholder diurai dengan benar untukvue-i18n.Add the Intlayer Plugin to your Bundler
Bungkus konfigurasi bundler yang sudah ada dengan plugin kompatibilitas. Plugin ini menggabungkan plugin Intlayer inti, mengatur content watching, dan — yang penting — menyuntikkan alias modul sehingga panggilan
import … from 'vue-i18n'yang sudah ada dialihkan secara transparan ke@intlayer/vue-i18npada saat build. Tidak ada perubahan file sumber yang diperlukan.For Vite:
vite.config.tsSalin kodeSalin kode ke clipboard
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { vueI18nVitePlugin } from "@intlayer/vue-i18n/plugin"; export default defineConfig({ plugins: [vue(), vueI18nVitePlugin()], });vueI18nVitePlugin()membungkus pluginintlayer()darivite-intlayerdan menambahkan aliasvue-i18n. Menggunakan pluginintlayer()biasa darivite-intlayermengompilasi kamus tetapi tidak menambahkan alias — Anda kemudian harus mengganti nama impor ke@intlayer/vue-i18nsecara manual (lihat Langkah 4).For Nuxt:
Jika Anda menggunakan
@nuxtjs/i18n(integrasi Nuxt), installnuxt-intlayerdan tambahkan kenuxt.config.tsAnda:bashSalin kodeSalin kode ke clipboard
npm install nuxt-intlayernuxt.config.tsSalin kodeSalin kode ke clipboard
export default defineNuxtConfig({ modules: ["nuxt-intlayer"], // Anda dapat dengan aman menghapus @nuxtjs/i18n dari modul Anda });Anda tidak lagi memerlukan
createI18n()atau bootstrap provider manual. Intlayer mengompilasi semua kamus pada waktu build, jadi tidak ada langkah loading runtime. Provider dengan alias menangani inisialisasi untuk Anda.
Itu saja untuk migrasi cepat. Aplikasi Anda sekarang berjalan di Intlayer sambil mempertahankan setiap impor dan API vue-i18n.
Kunci terjemahan yang diketik — otomatis. Setelah Intlayer mengompilasi kamus Anda,
useI18ndiketik terhadap konten aktual Anda ketika Anda melewatkan opsinamespace. Kunci secara otomatis dilengkapi di IDE Anda dan jalur yang tidak valid menyebabkan kesalahan TypeScript pada waktu build — tidak ada pengaturan tambahan yang diperlukan.tsSalin kodeSalin kode ke clipboard
// 'about' adalah kunci kamus yang terdaftarconst { t } = useI18n({ namespace: "about" });t("counter.label"); // ✓ autocompletedt("does.not.exist"); // ✗ TypeScript error
Migrasi Lengkap
Langkah-langkah di bawah ini bersifat opsional dan dapat dilakukan secara bertahap. Mereka membuka kumpulan fitur Intlayer lengkap: editor visual, CMS, file konten yang diketik, terjemahan bertenaga AI, dan banyak lagi.
Explicit import renaming (optional)
OpsionalPlugin Intlayer sudah menangani aliasing di tingkat bundler. Jika Anda lebih suka membuat dependensi eksplisit dalam file sumber Anda, Anda dapat mengganti nama impor secara manual:
Tampilkan semua isi tabelBuka tabel dalam modal untuk melihat semua isi data dengan jelas
Sebelum Sesudah import { useI18n } from 'vue-i18n'import { useI18n } from '@intlayer/vue-i18n'import { createI18n } from 'vue-i18n'import { createI18n } from '@intlayer/vue-i18n'Ini adalah drop-in replacements — tidak ada perubahan pada tanda tangan panggilan, argumen, atau jenis pengembalian yang diperlukan.
Enable AI-Powered Translation Automation
OpsionalSetelah Intlayer terhubung, gunakan CLI-nya untuk mengisi terjemahan yang hilang secara otomatis:
bashSalin kodeSalin kode ke clipboard
# Test untuk terjemahan yang hilang (tambahkan ke CI)npx intlayer test# Isi terjemahan yang hilang dengan AInpx intlayer fillTambahkan konfigurasi AI ke
intlayer.config.ts:intlayer.config.tsSalin kodeSalin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer"; import { syncJSON } from "@intlayer/sync-json-plugin"; const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ format: "icu", source: ({ locale }) => `./src/locales/${locale}.json`, location: "src/locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // default // model: "gpt-4o-mini", // default }, }; export default config;Lihat dokumentasi CLI Intlayer untuk semua opsi yang tersedia.
Apa yang dapat Anda hapus setelah migrasi
Setelah adapter kompatibilitas ditempatkan, boilerplate vue-i18n berikut dapat dihapus:
Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| File / pola | Mengapa tidak lagi diperlukan |
|---|---|
createI18n() calls | Provider Intlayer menginisialisasi semuanya secara otomatis; tidak ada langkah loading runtime. |
Vue plugin registration (app.use(i18n)) | Plugin Intlayer menangani injection dan bootstrapping di balik layar. |
JSON language bundles (locales/*.json) | Bundle JSON hanya diperlukan jika Anda masih menggunakan plugin syncJSON. Setelah bermigrasi ke file .content.ts Anda dapat menghapus folder JSON. |
Ketika Anda siap untuk melangkah lebih jauh, Intlayer secara otomatis menemukan semua file .content.ts dan .content.json di mana saja dalam codebase Anda (secara default, di mana saja di dalam ./src). Anda dapat menempatkan file my-component.content.ts tepat di sebelah MyComponent.vue Anda dan Intlayer akan mengambilnya pada waktu build tanpa konfigurasi tambahan — tidak ada imports, tidak ada registrasi, tidak ada file index terpusat yang diperlukan. Ini membuat co-locating translations dengan pages dan components benar-benar tanpa hambatan.
Konfigurasi TypeScript
Intlayer menggunakan module augmentation untuk memberikan intellisense TypeScript lengkap untuk kunci terjemahan Anda. Pastikan tsconfig.json Anda menyertakan tipe yang dibuat secara otomatis:
Salin kode ke clipboard
{ // ... Konfigurasi TypeScript yang sudah ada "include": [ // ... Konfigurasi TypeScript yang sudah ada ".intlayer/**/*.ts", // Sertakan tipe yang dibuat secara otomatis ],}Konfigurasi Git
Tambahkan direktori yang dihasilkan oleh Intlayer ke .gitignore Anda:
Salin kode ke clipboard
# Ignore the files generated by Intlayer.intlayerLanjutkan Lebih Jauh
- Visual Editor — Kelola terjemahan secara visual di browser Anda: Intlayer Visual Editor
- CMS — Eksternalisasi dan kelola konten dari jarak jauh: Intlayer CMS
- VS Code Extension — Dapatkan autocompletion dan deteksi kesalahan terjemahan real-time: Intlayer VS Code Extension
- CLI Reference — Daftar lengkap perintah CLI: Intlayer CLI
- Intlayer with Vue — Panduan setup lengkap untuk Vue: intlayerwithvite+vue.md
- Intlayer with Nuxt — Panduan setup lengkap untuk Nuxt: intlayerwithnuxt.md