Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Init 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 @nuxtjs/i18n ke Intlayer
Mengapa bermigrasi dari @nuxtjs/i18n ke Intlayer?
Alih-alih memuat file JSON besar ke halaman Anda, muat hanya konten yang diperlukan. Intlayer membantu mengurangi ukuran bundle dan halaman hingga 50%.
Membatasi konten aplikasi Anda memfasilitasi 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 di ekosistem i18n — masalah diperbaiki dengan cepat, adapter framework baru dirilis secara teratur, dan API inti terus disempurnakan berdasarkan umpan balik produksi dunia nyata.
Menempatkan konten bersama 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 developer (DX) bahkan lebih lancar untuk agen AI.
Gunakan otomasi untuk menerjemahkan di pipeline CI/CD Anda menggunakan LLM pilihan Anda dengan biaya dari penyedia AI Anda. Intlayer juga menawarkan compiler untuk mengotomatisasi ekstraksi konten, serta platform web untuk membantu menerjemahkan di latar belakang.
Menghubungkan file JSON besar ke komponen dapat menyebabkan masalah performa dan reaktivitas. Intlayer mengoptimalkan pemuatan konten Anda pada waktu build.
Lebih dari sekadar solusi i18n, Intlayer menyediakan visual editor yang di-self-hosted dan CMS lengkap untuk membantu Anda mengelola konten multibahasa Anda secara real-time, membuat kolaborasi dengan penerjemah, copywriter, dan anggota tim lainnya mulus. Konten dapat disimpan secara lokal dan/atau jarak jauh.
Strategi Migrasi
Karena @nuxtjs/i18n didukung oleh vue-i18n di balik layar, ada dua strategi pelengkap untuk migrasi ke Intlayer:
Compat adapter (direkomendasikan untuk aplikasi yang sudah ada) — Instal
@intlayer/vue-i18ndannuxt-intlayer. Ini mengekspos API yang sama persis sepertivue-i18ntetapi mendelegasikan semua pekerjaan terjemahan ke Intlayer di balik layar. Anda mempertahankan$t,useI18n(), dan routing Nuxt yang sudah ada — satu-satunya perubahan adalah inisialisasi.Migrasi penuh — Secara bertahap ganti API
@nuxtjs/i18ndengan hooks Intlayer asli (useIntlayer) dan co-locate konten dalam file.content.tsbersama komponen Anda.
Panduan ini mencakup Strategi 1 terlebih dahulu (drop-in compat adapter), kemudian menjelaskan migrasi penuh opsional.
Daftar Isi
Migrasi cepat
Langkah-langkah berikut adalah persyaratan minimum untuk menjalankan aplikasi Nuxt Anda yang sudah ada di Intlayer tanpa perubahan kode di 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 menginstal paket yang diperlukan. Contohnya:
bashSalin kodeSalin kode ke clipboard
npm install intlayer vue-intlayer nuxt-intlayer @intlayer/vue-i18n @intlayer/sync-json-pluginAnda dapat dengan aman menyimpan
@nuxtjs/i18nterinstal selama migrasi, meskipun Anda akan menghapusnya dari konfigurasi Nuxt Anda segera.Configure Intlayer
Perintah
intlayer initmembuatintlayer.config.tspemula. Perbarui untuk mencocokkan locale yang 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 ada di sini ], defaultLocale: Locales.ENGLISH, }, plugins: [ syncJSON({ // cocok dengan sintaks placeholder vue-i18n: {name} format: "icu", source: ({ locale }) => `./locales/${locale}.json`, location: "locales", }), ], }; export default config;sourcememetakan locale ke jalur file JSON-nya.locationmemberi tahu pengawas Intlayer folder mana yang harus dipantau untuk perubahan. Opsiformat: 'icu'memastikan bahwa placeholder diuraikan dengan benar untukvue-i18n.Update Nuxt Configuration
Ganti modul
@nuxtjs/i18ndengannuxt-intlayerdinuxt.config.tsAnda. Plugin Intlayer secara otomatis menyuntikkan alias modul, yang berarti panggilanimport { useI18n } from 'vue-i18n'yang sudah ada dialihkan secara transparan ke@intlayer/vue-i18n.nuxt.config.tsSalin kodeSalin kode ke clipboard
export default defineNuxtConfig({ // Hapus '@nuxtjs/i18n' modules: ["nuxt-intlayer"], });Anda tidak perlu lagi menentukan objek konfigurasi Nuxt i18n. Intlayer mengompilasi semua dictionary pada waktu build, menangani deteksi locale, routing, dan pemuatan dictionary dengan mulus.
Itulah semua untuk migrasi cepat. Aplikasi Nuxt Anda sekarang berjalan di Intlayer sambil menjaga setiap $t dan useI18n() tetap utuh.
Migrasi Lengkap
Langkah-langkah di bawah ini bersifat opsional dan dapat dilakukan secara bertahap. Langkah-langkah ini membuka akses ke set fitur Intlayer lengkap: visual editor, CMS, typed content files, AI-powered translation, dan banyak lagi.
Explicit import renaming (optional)
OpsionalPlugin Intlayer sudah menangani aliasing di tingkat bundler. Jika Anda lebih suka membuat dependensi eksplisit di 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'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
# Uji 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 }) => `./locales/${locale}.json`, location: "locales", }), ], ai: { apiKey: process.env.OPENAI_API_KEY, // provider: "openai", // default // model: "gpt-4o-mini", // default }, }; export default config;Lihat dokumentasi Intlayer CLI untuk semua opsi yang tersedia.
Yang dapat Anda hapus setelah migrasi
Setelah adapter kompatibilitas sudah disiapkan, boilerplate berikut dapat dihapus:
Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| File / pattern | Mengapa tidak lagi diperlukan |
|---|---|
i18n configurations in nuxt.config.ts | Intlayer menangani routing, dictionary loading, dan default locales secara internal. |
@nuxtjs/i18n from package.json | Sepenuhnya digantikan oleh nuxt-intlayer. |
JSON language bundles (locales/*.json) | JSON bundles hanya diperlukan jika Anda masih menggunakan plugin syncJSON. Setelah Anda bermigrasi ke file .content.ts Anda dapat menghapus folder JSON. |
Ketika Anda siap untuk melanjutkan, Intlayer secara otomatis menemukan semua file .content.ts dan .content.json di mana pun dalam codebase Anda (secara default, di mana pun di dalam ./src). Anda dapat menempatkan file my-component.content.ts tepat di sebelah MyComponent.vue Anda dan Intlayer akan mengambilnya pada saat build tanpa konfigurasi tambahan — tidak ada imports, tidak ada registration, tidak ada file index terpusat yang diperlukan. Ini membuat co-locating translations dengan pages dan components menjadi sangat mudah.
Konfigurasi TypeScript
Intlayer menggunakan module augmentation untuk memberikan intellisense TypeScript lengkap untuk kunci terjemahan Anda. Pastikan tsconfig.json Anda menyertakan tipe yang di-generate otomatis:
Salin kode ke clipboard
{ // ... Konfigurasi TypeScript yang sudah ada "include": [ // ... Konfigurasi TypeScript yang sudah ada ".intlayer/**/*.ts", // Sertakan tipe yang di-generate otomatis ],}Konfigurasi Git
Tambahkan direktori yang dihasilkan oleh Intlayer ke .gitignore Anda:
Salin kode ke clipboard
# Ignore the files generated by Intlayer.intlayerLangkah Selanjutnya
- 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 Nuxt — Panduan setup lengkap untuk Nuxt: intlayerwithnuxt.md
- Intlayer with Vue — Panduan setup lengkap untuk Vue: intlayerwithvite+vue.md