Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Perbarui penggunaan API useIntlayer Solid ke akses properti langsung"v8.9.04/5/2026
- "Tambahkan perintah init"v7.5.930/12/2025
- "Inisialisasi riwayat"v5.5.1029/6/2025
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisJika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.
Tautan GitHub ke dokumentasiSalin Markdown dokumentasi ke clipboard
Terjemahkan situs web Vite dan Vue Anda menggunakan Intlayer | Internasionalisasi (i18n)
Daftar Isi
Mengapa Intlayer dibandingkan alternatif?
Dibandingkan dengan solusi utama seperti vue-i18n atau i18next, Intlayer adalah solusi yang hadir dengan pengoptimalan terintegrasi seperti:
Intlayer dioptimalkan agar berfungsi sempurna dengan Vue dengan menawarkan pelingkupan konten tingkat komponen, terjemahan reaktif, dan semua fitur yang diperlukan untuk meningkatkan internasionalisasi (i18n).
Daripada memuat file JSON berukuran besar ke halaman Anda, muat saja konten yang diperlukan. Intlayer membantu mengurangi ukuran bundle dan halaman Anda hingga 50%.
Mencakup konten aplikasi Anda memfasilitasi pemeliharaan untuk aplikasi berskala besar. Anda dapat menduplikasi atau menghapus satu folder fitur tanpa beban mental untuk meninjau seluruh basis kode konten Anda. Selain itu, Intlayer diketik sepenuhnya untuk memastikan keakuratan konten Anda.
Menempatkan konten bersama mengurangi konteks yang diperlukan dengan Model Bahasa Besar (LLM). Intlayer juga dilengkapi dengan serangkaian alat, seperti CLI untuk menguji terjemahan yang hilang,LSP, MCP, dan agent skill, untuk menjadikan pengalaman pengembang (DX) lebih lancar bagi agen AI.
Gunakan otomatisasi untuk menerjemahkan dalam saluran CI/CD Anda menggunakan LLM pilihan Anda dengan biaya penyedia AI Anda. Intlayer juga menawarkan compiler untuk mengotomatiskan ekstraksi konten, serta platform web untuk membantu menerjemahkan di latar belakang.
Menghubungkan file JSON berukuran besar ke komponen dapat menyebabkan masalah kinerja dan reaktivitas. Intlayer mengoptimalkan pemuatan konten Anda pada waktu pembuatan.
Lebih dari sekedar solusi i18n, Intlayer menyediakan editor visual yang dihosting sendiri dan CMS lengkap untuk membantu Anda mengelola konten multibahasa secara real-time, membuat kolaborasi dengan penerjemah, copywriter, dan anggota tim lainnya menjadi lancar. Konten dapat disimpan secara lokal dan/atau jarak jauh.
Panduan Langkah demi Langkah untuk Mengatur Intlayer dalam Aplikasi Vite dan Vue
Lihat Template Aplikasi di GitHub.
Instalasi Dependensi
Instal paket yang diperlukan menggunakan npm:
bashSalin kodeSalin kode ke clipboard
intlayer
Paket inti yang menyediakan alat internasionalisasi untuk manajemen konfigurasi, terjemahan, deklarasi konten, transpile, dan perintah CLI.
vue-intlayer Paket yang mengintegrasikan Intlayer dengan aplikasi Vue. Paket ini menyediakan context providers dan composables untuk internasionalisasi Vue.
vite-intlayer Termasuk plugin Vite untuk mengintegrasikan Intlayer dengan Vite bundler, serta middleware untuk mendeteksi locale yang dipilih pengguna, mengelola cookie, dan menangani pengalihan URL.
Konfigurasi proyek Anda
Buat file konfigurasi untuk mengatur bahasa aplikasi Anda:
intlayer.config.tsSalin kodeSalin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Bahasa lain milik Anda ], defaultLocale: Locales.ENGLISH, }, }; export default config;Melalui file konfigurasi ini, Anda dapat mengatur URL yang dilokalkan, pengalihan middleware, nama cookie, lokasi dan ekstensi deklarasi konten Anda, menonaktifkan log Intlayer di konsol, dan lainnya. Untuk daftar lengkap parameter yang tersedia, lihat dokumentasi konfigurasi.
Integrasikan Intlayer dalam Konfigurasi Vite Anda
Tambahkan plugin intlayer ke dalam konfigurasi Anda.
vite.config.tsSalin kodeSalin kode ke clipboard
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue(), intlayer()], });Plugin Vite
intlayer()digunakan untuk mengintegrasikan Intlayer dengan Vite. Plugin ini memastikan pembuatan file deklarasi konten dan memantau file tersebut dalam mode pengembangan. Plugin ini juga mendefinisikan variabel lingkungan Intlayer dalam aplikasi Vite. Selain itu, plugin ini menyediakan alias untuk mengoptimalkan performa.Deklarasikan Konten Anda
Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan:
src/helloWorld.content.tsSalin kodeSalin kode ke clipboard
import { t, type Dictionary } from "intlayer"; const helloWorldContent = { key: "helloworld", content: { count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }), edit: t({ en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR", fr: "Éditez <code>components/HelloWorld.vue</code> et enregistrez pour tester HMR", es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR", }), checkOut: t({ en: "Check out ", id: "Periksa ", fr: "Vérifiez ", es: "Compruebe ", }), officialStarter: t({ en: ", the official Vue + Vite starter", id: ", starter resmi Vue + Vite", fr: ", le starter officiel Vue + Vite", es: ", el starter oficial Vue + Vite", }), learnMore: t({ en: "Learn more about IDE Support for Vue in the ", id: "Pelajari lebih lanjut tentang Dukungan IDE untuk Vue di ", fr: "En savoir plus sur le support IDE pour Vue dans le ", es: "Aprenda más sobre el soporte IDE para Vue en el ", }), vueDocs: t({ en: "Vue Docs Scaling up Guide", id: "Panduan Peningkatan Skala Dokumentasi Vue", fr: "Vue Docs Scaling up Guide", es: "Vue Docs Scaling up Guide", }), readTheDocs: t({ en: "Click on the Vite and Vue logos to learn more", id: "Klik pada logo Vite dan Vue untuk mempelajari lebih lanjut", fr: "Cliquez sur les logos Vite et Vue pour en savoir plus", es: "Haga clic en los logotipos de Vite y Vue para obtener más información", }), }, } satisfies Dictionary; export default helloWorldContent;Deklarasi konten Anda dapat didefinisikan di mana saja dalam aplikasi Anda selama sudah dimasukkan ke dalam direktori
contentDir(secara default,./src). Dan sesuai dengan ekstensi file deklarasi konten (secara default,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Untuk detail lebih lanjut, lihat dokumentasi deklarasi konten.
Gunakan Intlayer dalam Kode Anda
Untuk memanfaatkan fitur internasionalisasi Intlayer di seluruh aplikasi Vue Anda, pertama-tama Anda perlu mendaftarkan instance singleton Intlayer di file utama Anda. Langkah ini sangat penting karena menyediakan konteks internasionalisasi ke semua komponen dalam aplikasi Anda, sehingga terjemahan dapat diakses di mana saja dalam pohon komponen Anda.
Salin kodeSalin kode ke clipboard
Akses kamus konten Anda di seluruh aplikasi dengan membuat komponen Vue utama dan menggunakan composable
useIntlayer:src/HelloWord.vueSalin kodeSalin kode ke clipboard
Mengakses Konten di Intlayer
Intlayer menawarkan berbagai API untuk mengakses konten Anda:
Sintaks berbasis Komponen (direkomendasikan): Gunakan sintaks
<myContent />, atau<Component :is="myContent" />untuk merender konten sebagai Node Intlayer. Ini terintegrasi dengan mulus dengan Visual Editor dan CMS.Sintaks berbasis String: Gunakan
{{ myContent }}untuk merender konten sebagai teks biasa, tanpa dukungan Visual Editor.Sintaks HTML mentah: Gunakan
<div v-html="myContent" />untuk merender konten sebagai HTML mentah, tanpa dukungan Visual Editor.Sintaks destrukturisasi:
ComposableuseIntlayermengembalikan sebuah Proxy dengan konten. Proxy ini dapat didestrukturisasi untuk mengakses konten sambil mempertahankan reaktivitas.- Gunakan
const content = useIntlayer("myContent");dan{{ content.myContent }}/<content.myContent />. - Atau gunakan
const { myContent } = useIntlayer("myContent");dan{{ myContent }}/<myContent/>untuk mendestrukturisasi konten.
- Gunakan
Jika aplikasi Anda sudah ada, Anda dapat menggunakan Intlayer Compiler secara kombinasi dengan perintah extract untuk mengonversi ribuan komponen dalam satu detik.
Ubah bahasa konten Anda
OpsionalUntuk mengubah bahasa konten Anda, Anda dapat menggunakan fungsi
setLocaleyang disediakan oleh composableuseLocale. Fungsi ini memungkinkan Anda untuk mengatur locale aplikasi dan memperbarui konten sesuai dengan locale tersebut.Buat sebuah komponen untuk beralih antar bahasa:
src/components/LocaleSwitcher.vueSalin kodeSalin kode ke clipboard
Kemudian, gunakan komponen ini di App.vue Anda:
src/App.vueSalin kodeSalin kode ke clipboard
Tambahkan Routing yang Dilokalkan ke aplikasi Anda
OpsionalMenambahkan routing yang dilokalkan dalam aplikasi Vue biasanya melibatkan penggunaan Vue Router dengan prefix locale. Ini membuat rute unik untuk setiap bahasa, yang berguna untuk SEO dan URL yang ramah SEO.
Contoh:
plaintextSalin kodeSalin kode ke clipboard
Pertama, instal Vue Router:
bashSalin kodeSalin kode ke clipboard
Lalu, buat konfigurasi router yang menangani routing berbasis locale:
src/router/index.tsSalin kodeSalin kode ke clipboard
Nama digunakan untuk mengidentifikasi route dalam router. Nama ini harus unik di seluruh route untuk menghindari konflik dan memastikan navigasi serta linking yang tepat.
Kemudian, daftarkan router di file main.js Anda:
src/main.tsSalin kodeSalin kode ke clipboard
Kemudian perbarui file
App.vueAnda untuk merender komponen RouterView. Komponen ini akan menampilkan komponen yang cocok untuk rute saat ini.src/App.vueSalin kodeSalin kode ke clipboard
Secara paralel, Anda juga dapat menggunakan
intlayerProxyuntuk menambahkan routing sisi server ke aplikasi Anda. Plugin ini secara otomatis akan mendeteksi locale saat ini berdasarkan URL dan mengatur cookie locale yang sesuai. Jika tidak ada locale yang ditentukan, plugin akan menentukan locale yang paling tepat berdasarkan preferensi bahasa browser pengguna. Jika tidak ada locale yang terdeteksi, maka akan mengarahkan ulang ke locale default.Perlu dicatat bahwa untuk menggunakan
intlayerProxydalam produksi, Anda perlu memindahkan paketvite-intlayerdaridevDependencieskedependencies.vite.config.tsSalin kodeSalin kode ke clipboard
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { intlayer, intlayerProxy } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ intlayerProxy(), // should be placed first vue(), intlayer(), ], });Ubah URL saat locale berubah
OpsionalUntuk secara otomatis memperbarui URL ketika pengguna mengganti bahasa, Anda dapat memodifikasi komponen
LocaleSwitcheruntuk menggunakan Vue Router:src/components/LocaleSwitcher.vueSalin kodeSalin kode ke clipboard
Tip: Untuk SEO dan aksesibilitas yang lebih baik, gunakan tag seperti
<a href="/fr/home" hreflang="fr">untuk menautkan ke halaman yang dilokalkan, seperti yang ditunjukkan pada Langkah 10. Ini memungkinkan mesin pencari menemukan dan mengindeks URL spesifik bahasa dengan benar. Untuk mempertahankan perilaku SPA, Anda dapat mencegah navigasi default dengan @click.prevent, mengubah locale menggunakan useLocale, dan menavigasi secara programatik menggunakan Vue Router.htmlSalin kodeSalin kode ke clipboard
Ganti Atribut Bahasa dan Arah pada Tag HTML
OpsionalKetika aplikasi Anda mendukung beberapa bahasa, sangat penting untuk memperbarui atribut
langdandirpada tag<html>agar sesuai dengan locale saat ini. Melakukan hal ini memastikan:- Aksesibilitas: Pembaca layar dan teknologi bantu bergantung pada atribut
langyang benar untuk mengucapkan dan menginterpretasikan konten dengan akurat. - Perenderan Teks: Atribut
dir(arah) memastikan teks dirender dalam urutan yang tepat (misalnya, kiri-ke-kanan untuk bahasa Inggris, kanan-ke-kiri untuk bahasa Arab atau Ibrani), yang sangat penting untuk keterbacaan. - SEO: Mesin pencari menggunakan atribut
languntuk menentukan bahasa halaman Anda, membantu menyajikan konten lokal yang tepat dalam hasil pencarian.
Dengan memperbarui atribut ini secara dinamis saat locale berubah, Anda menjamin pengalaman yang konsisten dan dapat diakses bagi pengguna di semua bahasa yang didukung.
src/composables/useI18nHTMLAttributes.tsSalin kodeSalin kode ke clipboard
Gunakan composable ini di
App.vueAnda atau komponen global:src/App.vueSalin kodeSalin kode ke clipboard
- Aksesibilitas: Pembaca layar dan teknologi bantu bergantung pada atribut
Membuat Komponen Link yang Dilokalkan
OpsionalUntuk memastikan navigasi aplikasi Anda menghormati locale saat ini, Anda dapat membuat komponen
Linkkustom. Komponen ini secara otomatis menambahkan prefix bahasa saat ini pada URL internal, sehingga. Misalnya, ketika pengguna berbahasa Prancis mengklik tautan ke halaman "About", mereka akan diarahkan ke/fr/aboutalih-alih/about.Perilaku ini berguna untuk beberapa alasan:
- SEO dan Pengalaman Pengguna: URL yang dilokalkan membantu mesin pencari mengindeks halaman spesifik bahasa dengan benar dan menyediakan konten kepada pengguna dalam bahasa pilihan mereka.
- Konsistensi: Dengan menggunakan tautan yang dilokalkan di seluruh aplikasi Anda, Anda menjamin navigasi tetap dalam locale saat ini, mencegah perubahan bahasa yang tidak diinginkan.
- Maintainability: Memusatkan logika lokalisasi dalam satu komponen menyederhanakan pengelolaan URL, sehingga codebase Anda lebih mudah dipelihara dan dikembangkan seiring pertumbuhan aplikasi Anda.
src/components/Link.vueSalin kodeSalin kode ke clipboard
Untuk digunakan dengan Vue Router, buat versi khusus router:
src/components/RouterLink.vueSalin kodeSalin kode ke clipboard
Gunakan komponen-komponen ini dalam aplikasi Anda:
src/App.vueSalin kodeSalin kode ke clipboard
Render Markdown
OpsionalIntlayer mendukung rendering konten Markdown langsung di aplikasi Vue Anda. Secara default, Markdown diperlakukan sebagai teks biasa. Untuk mengubah Markdown menjadi HTML kaya, Anda dapat mengintegrasikan markdown-it, sebuah parser Markdown.
Ini sangat berguna ketika terjemahan Anda mencakup konten yang diformat seperti daftar, tautan, atau penekanan.
Secara default Intlayer merender markdown sebagai string. Namun Intlayer juga menyediakan cara untuk merender markdown menjadi HTML menggunakan fungsi
installIntlayerMarkdown.Untuk melihat cara mendeklarasikan konten markdown menggunakan paket
intlayer, lihat dokumen markdown.main.tsSalin kodeSalin kode ke clipboard
Setelah terdaftar, Anda dapat menggunakan sintaks berbasis komponen untuk menampilkan konten Markdown secara langsung:
vueSalin kodeSalin kode ke clipboard
Ekstrak konten komponen Anda
OpsionalJika Anda memiliki basis kode yang ada, mengubah ribuan file bisa memakan waktu lama.
Untuk memudahkan proses ini, Intlayer mengusulkan compiler / extractor untuk mengubah komponen Anda dan mengekstrak kontennya.
Untuk mengaturnya, Anda dapat menambahkan bagian
compilerdi fileintlayer.config.tsAnda:intlayer.config.tsSalin kodeSalin kode ke clipboard
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Sisa konfigurasi Anda compiler: { /** * Menunjukkan apakah compiler harus diaktifkan. */ enabled: true, /** * Menentukan jalur file output */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Menunjukkan apakah komponen harus disimpan setelah diubah. Dengan begitu, compiler dapat dijalankan satu kali saja untuk mengubah aplikasi, lalu dapat dihapus. */ saveComponents: false, /** * Prefiks kunci kamus */ dictionaryKeyPrefix: "", }, }; export default config;Jalankan extractor untuk mengubah komponen Anda dan mengekstrak kontennya
bashSalin kodeSalin kode ke clipboard
Konfigurasi TypeScript
Intlayer menggunakan module augmentation untuk mendapatkan manfaat dari TypeScript dan membuat codebase Anda lebih kuat.


Pastikan konfigurasi TypeScript Anda menyertakan tipe yang dihasilkan secara otomatis.
Salin kode ke clipboard
Konfigurasi Git
Disarankan untuk mengabaikan file-file yang dihasilkan oleh Intlayer. Ini memungkinkan Anda untuk menghindari meng-commit file tersebut ke repository Git Anda.
Untuk melakukan ini, Anda dapat menambahkan instruksi berikut ke dalam file .gitignore Anda:
Salin kode ke clipboard
Ekstensi VS Code
Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat menginstal Ekstensi Intlayer VS Code resmi.
Pasang dari VS Code Marketplace
Ekstensi ini menyediakan:
- Autocompletion untuk kunci terjemahan.
- Deteksi kesalahan secara real-time untuk terjemahan yang hilang.
- Pratinjau inline dari konten terjemahan.
- Aksi cepat untuk dengan mudah membuat dan memperbarui terjemahan.
Untuk informasi lebih lanjut tentang cara menggunakan ekstensi ini, lihat dokumentasi Intlayer VS Code Extension.
(Opsional) Sitemap dan robots.txt (generate saat build)
Intlayer menyediakan generateSitemap dan getMultilingualUrls untuk memformat sitemap.xml multibahasa dan robots.txt yang siap untuk crawler, lalu menulisnya secara otomatis ke public/. Biasanya skrip Node kecil dijalankan sebelum Vite (misalnya hook npm predev / prebuild).
Sitemap
Generator sitemap Intlayer menghormati konfigurasi locale dan menambahkan metadata untuk crawler.
Sitemap mendukung namespacexhtml:link(hreflang). Alih-alih hanya daftar URL datar, Intlayer menghubungkan semua varian bahasa setiap halaman secara dua arah (mis./about,/fr/about, atau/about?lang=frtergantung mode routing).
Robots.txt
Gunakan getMultilingualUrls agar aturan Disallow mencakup semua varian URL jalur sensitif.
1. Buat generate-seo.mjs di root proyek
Salin kode ke clipboard
Paket intlayer harus terpasang. Setel SITE_URL di lingkungan produksi (misalnya di CI).
Disarankangenerate-seo.mjsuntuk ESM Node. Jika memakaigenerate-seo.js, pastikan"type": "module"dipackage.jsonatau aktifkan ESM lainnya.
2. Jalankan skrip sebelum Vite
Salin kode ke clipboard
Sesuaikan perintah jika memakai pnpm atau yarn. Skrip juga bisa dipanggil dari CI.
Melangkah Lebih Jauh
Untuk melangkah lebih jauh, Anda dapat mengimplementasikan editor visual atau mengeksternalisasi konten Anda menggunakan CMS.