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
- "Riwayat awal"v8.4.1023/3/2026
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 Vanilla JS Anda dengan Intlayer | Internasionalisasi (i18n)
Daftar Isi
Mengapa Intlayer dibandingkan alternatif?
Dibandingkan dengan solusi utama seperti i18next atau i18n.js, Intlayer adalah solusi yang hadir dengan pengoptimalan terintegrasi seperti:
Intlayer dioptimalkan untuk bekerja sempurna dengan Vite dengan menawarkan manajemen konten tanpa kerangka kerja, dukungan TypeScript, 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 Menyiapkan Intlayer dalam Aplikasi Vite dan Vanilla JS
Instal 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, transpilasi, dan perintah CLI.
vanilla-intlayer Paket yang mengintegrasikan Intlayer dengan aplikasi JavaScript / TypeScript murni. Paket ini menyediakan pub/sub singleton (
IntlayerClient) dan pembantu berbasis callback (useIntlayer,useLocale, dll.) sehingga bagian mana pun dari aplikasi Anda dapat bereaksi terhadap perubahan lokal tanpa bergantung pada kerangka kerja UI.vite-intlayer Menyertakan plugin Vite untuk mengintegrasikan Intlayer dengan Vite bundler, serta middleware untuk mendeteksi lokal pilihan 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, // Lokal lainnya ], 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 banyak lagi. Untuk daftar lengkap parameter yang tersedia, lihat dokumentasi konfigurasi.
Integrasikan Intlayer ke dalam Konfigurasi Vite Anda
Tambahkan plugin intlayer ke konfigurasi Anda.
vite.config.tsSalin kodeSalin kode ke clipboard
import { defineConfig } from "vite"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [intlayer()], });Plugin Vite
intlayer()digunakan untuk mengintegrasikan Intlayer dengan Vite. Plugin ini memastikan pembuatan file deklarasi konten dan memantaunya dalam mode pengembangan. Plugin ini mendefinisikan variabel lingkungan Intlayer di dalam aplikasi Vite. Selain itu, plugin ini menyediakan alias untuk mengoptimalkan kinerja.Bootstrap Intlayer di Titik Masuk Anda
Panggil
installIntlayer()sebelum merender konten apa pun sehingga singleton lokal global siap digunakan.src/main.tsSalin kodeSalin kode ke clipboard
Jika Anda juga menggunakan deklarasi konten
md()(Markdown), instal juga perender markdown:src/main.tsSalin kodeSalin kode ke clipboard
Deklarasikan Konten Anda
Buat dan kelola deklarasi konten Anda untuk menyimpan terjemahan:
src/app.content.tsSalin kodeSalin kode ke clipboard
import { insert, t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: { title: "Vite + Vanilla", viteLogoLabel: t({ en: "Vite Logo", fr: "Logo Vite", es: "Logo Vite", }), count: insert( t({ en: "count is {{count}}", fr: "le compte est {{count}}", es: "el recuento es {{count}}", }) ), readTheDocs: t({ en: "Click on the Vite logo to learn more", fr: "Cliquez sur le logo Vite pour en savoir plus", es: "Klik pada logo Vite untuk mempelajari lebih lanjut", }), }, } satisfies Dictionary; export default appContent;Deklarasi konten Anda dapat ditentukan di mana saja di aplikasi Anda selama mereka termasuk dalam direktori
contentDir(secara default./src). Dan cocok 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 di JavaScript Anda
vanilla-intlayermencerminkan API permukaanreact-intlayer:useIntlayer(key, locale?)mengembalikan konten yang diterjemahkan secara langsung. Rantai.onChange()pada hasilnya untuk berlangganan perubahan lokal - padanan eksplisit dari render ulang React.src/main.tsSalin kodeSalin kode ke clipboard
Akses nilai leaf sebagai string dengan merangkumnya dalam
String(), yang memanggil metodetoString()node dan mengembalikan teks yang diterjemahkan.Saat Anda memerlukan nilai untuk atribut HTML asli (misalnya,
alt,aria-label), gunakan.valuesecara langsung:typescriptSalin kodeSalin kode ke clipboard
Ubah Bahasa Konten Anda
OpsionalUntuk mengubah bahasa konten, gunakan fungsi
setLocaleyang disediakan olehuseLocale.src/locale-switcher.tsSalin kodeSalin kode ke clipboard
Render Konten Markdown dan HTML
OpsionalIntlayer mendukung deklarasi konten
md()danhtml(). Dalam Vanilla JS, output yang dikompilasi dimasukkan sebagai HTML mentah melaluiinnerHTML.Kompilasi dan masukkan HTML:
src/main.tsSalin kodeSalin kode ke clipboard
TIP String(content.editNote)memanggiltoString()padaIntlayerNodeyang mengembalikan string Markdown mentah. Berikan itu kecompileMarkdownuntuk mendapatkan string HTML, lalu pasang melaluiinnerHTML.WARNING Hanya gunakan
innerHTMLdengan konten tepercaya. Jika markdown berasal dari input pengguna, bersihkan terlebih dahulu (misalnya dengan DOMPurify). Anda dapat menginstal perender pembersih secara dinamis:typescriptSalin kodeSalin kode ke clipboard
Tambahkan Localized Routing ke aplikasi Anda
OpsionalUntuk membuat rute unik untuk setiap bahasa (berguna untuk SEO), Anda dapat menggunakan
intlayerProxydalam konfigurasi Vite untuk deteksi lokal sisi server.Pertama, tambahkan
intlayerProxyke konfigurasi Vite Anda:Perhatikan bahwa untuk menggunakan
intlayerProxydi produksi, Anda perlu memindahkanvite-intlayerdaridevDependencieskedependencies.vite.config.tsSalin kodeSalin kode ke clipboard
import { defineConfig } from "vite"; import { intlayer, intlayerProxy } from "vite-intlayer"; export default defineConfig({ plugins: [ intlayerProxy(), // sebaiknya diletakkan pertama intlayer(), ], });Ubah URL ketika lokal berubah
OpsionalUntuk memperbarui URL browser saat lokal berubah, panggil
useRewriteURL()setelah menginstal Intlayer:src/main.tsSalin kodeSalin kode ke clipboard
Alihkan Atribut Bahasa dan Arah HTML
OpsionalPerbarui atribut
langdandirdari tag<html>agar sesuai dengan lokal saat ini demi aksesibilitas dan SEO.src/main.tsSalin kodeSalin kode ke clipboard
Lazy-load kamus per lokal
OpsionalUntuk aplikasi besar, Anda mungkin ingin membagi kamus setiap lokal ke dalam penggalannya sendiri. Gunakan
useDictionaryDynamicbersama denganimport()dinamis Vite:src/app.tsSalin kodeSalin kode ke clipboard
Bundel masing-masing lokal hanya diambil ketika lokal tersebut menjadi aktif dan hasilnya disimpan di cache - pengalihan berikutnya ke lokal yang sama bersifat instan.
Ekstrak konten komponen Anda
OpsionalJika Anda memiliki kode dasar yang sudah ada, mengubah ribuan file bisa memakan waktu.
Untuk meringankan proses ini, Intlayer mengusulkan kompilator / ekstraktor untuk mentransformasi komponen Anda dan mengekstrak konten.
Untuk menyiapkannya, Anda dapat menambahkan bagian
compilerdi fileintlayer.config.tsAnda:intlayer.config.tsSalin kodeSalin kode ke clipboard
Jalankan ekstraktor untuk mentransformasi komponen Anda dan mengekstrak konten
bashSalin kodeSalin kode ke clipboard
(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.
Konfigurasi TypeScript
Pastikan konfigurasi TypeScript Anda menyertakan tipe yang dihasilkan secara otomatis.
Salin kode ke clipboard
Konfigurasi Git
Disarankan untuk mengabaikan file yang dihasilkan oleh Intlayer. Ini memungkinkan Anda untuk menghindari memasukkannya ke dalam repositori Git Anda.
Untuk melakukan ini, Anda dapat menambahkan instruksi berikut ke file .gitignore Anda:
Salin kode ke clipboard
Ekstensi VS Code
Untuk meningkatkan pengalaman pengembangan Anda dengan Intlayer, Anda dapat menginstal Ekstensi VS Code Intlayer resmi.
Instal dari VS Code Marketplace
Ekstensi ini menyediakan:
- Autocompletion untuk kunci terjemahan.
- Deteksi kesalahan waktu nyata untuk terjemahan yang hilang.
- Pratinjau sebaris dari konten yang diterjemahkan.
- Tindakan cepat untuk membuat dan memperbarui terjemahan dengan mudah.
Untuk detail lebih lanjut tentang cara menggunakan ekstensi, lihat dokumentasi Ekstensi VS Code Intlayer.
Melangkah Lebih Jauh
Untuk melangkah lebih jauh, Anda dapat mengimplementasikan editor visual atau mengeksternalisasi konten Anda menggunakan CMS.