Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
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
Intlayer v8 Baru - Apa yang Baru?
Selamat datang di Intlayer v8! Rilis ini berfokus pada peningkatan pengalaman pengembang dengan deteksi konten otomatis, memastikan integritas data melalui validasi skema, dan memberikan lebih banyak kontrol atas pengelolaan kamus.
Daftar Isi
Evolusi Konten Kaya: Markdown & HTML
Intlayer v8 membawa peningkatan besar pada cara penanganan konten kaya, memperkenalkan node HTML (yang tidak ada di v7) dan menyatukan API dengan node Markdown (yang ada di v7 tetapi telah ditingkatkan).
API .use() yang Terpadu
Kami memperkenalkan metode .use() untuk node Markdown dan HTML. Metode ini memungkinkan Anda menyesuaikan tag HTML atau komponen yang digunakan selama proses render.
- Penggantian Komponen: Anda dapat dengan mudah mengganti tag HTML atau komponen kustom dengan komponen framework Anda sendiri (misalnya, mengganti
<a>denganNextLinkatau<CustomCmp>dengan komponen React). - Keamanan Tipe (Type Safety): Semua fungsi untuk menyediakan komponen diketik sepenuhnya (fully typed), memastikan Anda menerima props yang benar.
Perilaku Render Default
Di v7, jika tidak ada provider yang didefinisikan, node Markdown dirender sebagai string mentah, seringkali membutuhkan library eksternal untuk memparsingnya.
Di v8, Intlayer menyertakan parser Markdown internalnya sendiri. Secara default, node Markdown sekarang dirender langsung sebagai HTML tanpa memerlukan library eksternal apa pun.
Utilitas Renderer & Provider Baru
Kami telah memperkenalkan fungsi renderer dan komponen mandiri baru untuk memberi Anda kontrol lebih besar di luar alur standar useIntlayer.
- Markdown:
MarkdownRenderer,useMarkdownRenderer,renderMarkdown. (Catatan:MarkdownProvidersudah ada di v7 tetapi sekarang terintegrasi dengan alat-alat baru ini). - HTML:
HTMLRenderer,useHTMLRenderer,renderHTML,HTMLProvider.
Contoh: Alat Rendering Markdown
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Menggunakan Layanan (Service):
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
Contoh: Alat Rendering HTML
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Penggunaan Langsung:
Di Angular, Anda dapat menggunakan binding [innerHTML] standar.
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
1. Menggunakan Komponen:
Salin kode ke clipboard
2. Menggunakan Hook:
Salin kode ke clipboard
3. Menggunakan Fungsi Utilitas:
Salin kode ke clipboard
Untuk detail lebih lanjut, lihat Dokumentasi Konten HTML and Dokumentasi Markdown.
File Konten YAML & Markdown (v8.10.0)
Anda sekarang dapat mendeklarasikan konten secara langsung menggunakan ekstensi file .content.md dan .content.yaml. Ini sangat cocok untuk konten panjang, blog, dokumentasi, dan kebijakan privasi.
File-file ini sepenuhnya dapat diedit dari Visual Editor, menyediakan alur kerja yang efisien untuk anggota tim non-teknis.
Untuk detail lebih lanjut, lihat Dokumentasi File Konten YAML dan Dokumentasi File Konten Markdown.
Penulisan Ulang URL Kustom
Intlayer v8 memperkenalkan dukungan untuk Penulisan Ulang URL Kustom, yang memungkinkan Anda mendefinisikan jalur spesifik-locale yang berbeda dari struktur standar /locale/path. Ini adalah fitur yang kuat untuk meningkatkan SEO lokal dan memberikan pengalaman pengguna yang lebih alami bagi pengguna non-Inggris.
Peningkatan utama di v8:
- Framework Formatters:
nextjsRewrite,svelteKitRewrite,reactRouterRewrite,vueRouterRewrite,solidRouterRewrite,tanstackRouterRewrite,nuxtRewrite, danviteRewritebaru untuk menyediakan sintaks pola idiomatik bagi setiap router. - Hook
useRewriteURL: Hook sisi klien baru yang secara diam-diam memperbaiki bilah alamat ke URL lokal yang "cantik" tanpa memicu navigasi router. - Automatic SEO Redirects: Proxy bawaan sekarang secara otomatis mengarahkan pengguna dari path kanonik yang diketik manual (mis.
/fr/about) ke versi lokal yang lebih rapi (mis./fr/a-propos).
Contoh Konfigurasi:
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Fitur ini didukung langsung (out-of-the-box) di Next.js dan Vite melalui proxy Intlayer, dan dapat dengan mudah diintegrasikan ke router lain seperti TanStack Router, React Router, Vue Router, SvelteKit, dan Solid Router.
Untuk informasi lebih lanjut dan panduan integrasi, lihat Dokumentasi Penulisan Ulang URL Kustom.
Nilai Insertion yang Ditingkatkan
Di v8, nilai insertion sekarang dapat menerima elemen React (atau node Vue) selain string dan angka. Ini memungkinkan Anda menyisipkan komponen interaktif yang kaya langsung ke dalam template insertion Anda.
Intlayer sekarang secara andal menangani node React dan Preact yang bersarang di dalam insertions, memastikan bahwa struktur UI yang kompleks dipertahankan dan dirender dengan benar.
Contoh:
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Aturan Jamak Unicode CLDR (v8.8.0)
Helper node plural baru telah diperkenalkan berdasarkan aturan jamak yang didefinisikan oleh Unicode CLDR Project, meningkatkan dukungan untuk bahasa yang kompleks.
Salin kode ke clipboard
Anda kemudian dapat meneruskan jumlah (count) secara dinamis dalam komponen framework Anda:
Salin kode ke clipboard
Untuk informasi lebih lanjut, lihat Dokumentasi Pluralisasi.
Validasi Skema Konten
Intlayer v8 memperkenalkan validasi skema untuk dictionaries. Sekarang Anda dapat mendefinisikan skema validasi yang dapat digunakan ulang dalam konfigurasi Anda menggunakan Zod dan menerapkannya pada file konten Anda. Ini memastikan konten Anda selalu sesuai dengan struktur yang diharapkan, sehingga menangkap kesalahan saat proses build.
1. Definisikan Skema
Definisikan skema Anda di intlayer.config.ts:
Salin kode ke clipboard
2. Terapkan Skema ke Dictionaries
Referensikan kunci skema dalam definisi dictionary Anda:
Salin kode ke clipboard
Jika konten tidak cocok dengan skema (mis. judul terlalu pendek), proses build akan menghasilkan error.
TypeScript: Aksesor Primitif IntlayerNode
Tipe IntlayerNode telah diperbarui untuk memungkinkan pemanggilan metode JavaScript primitif secara langsung pada node konten. Ini memungkinkan Anda untuk berinteraksi dengan konten yang dilokalkan secara langsung seolah-olah itu adalah string, angka, boolean, atau array primitif standar.
Didukung di React, Preact, Solid, Svelte, Vue, dan Angular.
Contoh String
Salin kode ke clipboard
Contoh Array
Salin kode ke clipboard
Pendeteksian Konten Otomatis yang Ditingkatkan
Di v8, Intlayer secara cerdas mendeteksi sintaks Markdown, tag HTML, dan penyisipan variabel dalam string konten Anda. Ini berarti Anda sering dapat menghilangkan fungsi pembantu seperti md(), html(), atau insert().
Perilaku ini diaktifkan secara default. Anda sekarang dapat menyetel deteksi ini baik secara global di intlayer.config.ts atau per kamus.
Kontrol Granular
Anda dapat mengaktifkan atau menonaktifkan jenis transformasi tertentu:
Salin kode ke clipboard
Perilaku v7 (Pembungkusan Manual):
Salin kode ke clipboard
Perilaku v8 (Deteksi otomatis):
Salin kode ke clipboard
Hasil JSON dasar tetap sama, mempertahankan informasi tipe kaya yang diperlukan untuk rendering:
Salin kode ke clipboard
Lokalisasi: hook useIntl baru
Hook useIntl() baru sekarang tersedia di React, Next.js dan Vue. Hook ini menyediakan objek Intl yang terikat pada locale yang secara otomatis menggunakan bahasa saat ini untuk memformat angka, tanggal, dan lainnya, tanpa perlu mengoper locale secara manual.
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Tooling: Peningkatan Ekstensi VSCode
Ekstensi Intlayer untuk VSCode menerima pembaruan besar di v8 untuk menyederhanakan alur kerja internasionalisasi Anda:
- Waktu Mulai: Peningkatan kinerja saat membuka proyek.
- Caching: Lapisan caching yang ditingkatkan untuk validasi dan autocompletion hampir seketika.
- Deteksi Kunci Tidak Terpakai & Duplikat: Fitur baru untuk secara otomatis mendeteksi kunci yang tidak terpakai dan kunci duplikat di seluruh kamus Anda, membantu menjaga konten tetap bersih dan efisien.
Tooling: C++ Watcher & LSP Berbasis OXC (v8.12.0)
Intlayer v8.12.0 membawa peningkatan besar pada pengalaman pengembang:
- Parcel Watcher: Pemantau konten (content watcher) telah dimigrasikan dari
chokidarke@parcel/watcher, memanfaatkan pemantauan file C++ asli untuk memberikan pembaruan yang lebih cepat dan konsumsi memori yang jauh lebih rendah. - Language Server Protocol (LSP) Baru: LSP yang benar-benar baru kini telah tersedia. Dibangun dengan parsing berbasis OXC, ini membantu IDE dan agen AI Anda menghubungkan panggilan
useIntlayer('my-key')secara mulus dengan file.contentyang sesuai, dan sebaliknya.
Untuk detail lebih lanjut, lihat Dokumentasi LSP.
Optimisasi Kompiler
Intlayer v8 menyertakan lapisan caching baru untuk compiler Markdown dan HTML. Ini memastikan bahwa string konten yang identik dengan konfigurasi yang sama hanya diparse sekali, secara signifikan mengurangi overhead selama re-render atau saat menggunakan konten yang sama di beberapa tempat.
Salin kode ke clipboard
Salin kode ke clipboard
Untuk Vue / Svelte Anda perlu menginstal paket compiler yang sesuai:
bashSalin kodeSalin kode ke clipboard
bashSalin kodeSalin kode ke clipboard
Optimisasi Build Eksperimental: Minify & Purge (v8.7.0)
Intlayer v8.7.0 memperkenalkan fitur build eksperimental baru di intlayer.config.ts Anda yang dirancang untuk mengoptimalkan bundle produksi Anda:
- Minifikasi Kamus (Dictionary Minification): Meminimalkan file kamus untuk memperkecil ukuran.
- Pembersihan Kunci yang Tidak Digunakan (Unused Key Purging): Memindai dan menghapus kunci terjemahan yang tidak digunakan dari kamus, mengubah nama kunci aktif menjadi karakter pendek (mis.
"products" -> "a","pricing" -> "b"). Ini mengurangi ukuran bundle hingga 5%. - Menonaktifkan Pemeriksaan TypeScript: Mempercepat proses build dengan menonaktifkan typechecking TypeScript selama langkah kompilasi.
Salin kode ke clipboard
Fleksibilitas: Mode Impor Terpadu
Properti boolean live telah usang (deprecated) digantikan oleh properti importMode yang lebih komprehensif. Ini memungkinkan definisi eksplisit tentang bagaimana dictionary harus dimuat: secara statis, dinamis, atau melalui sinkronisasi langsung.
Mode
static(Default): Dictionary dikemas pada saat build. Terbaik untuk performa.dynamic: Dictionary dimuat saat runtime (misalnya melalui fetch JSON atau suspense).fetch: Dictionary di-fetch dari CMS/Server saat runtime dan disinkronkan.
Migrasi:
Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| Konfigurasi v7 | Konfigurasi v8 |
|---|---|
live: true | importMode: 'fetch' |
live: false | importMode: 'static' (atau 'dynamic') |
Catatan: Di Intlayer v8, properti importMode telah dipindahkan dari konfigurasi build ke konfigurasi dictionary di intlayer.config.ts. Ini memungkinkan Anda mendefinisikan import mode default untuk semua kamus Anda sambil tetap dapat menimpanya pada tingkat per-kamus.
Contoh Konfigurasi Global:
Salin kode ke clipboard
Contoh Kamus:
Salin kode ke clipboard
Kontrol Lokasi Kamus
v8 memperkenalkan properti location untuk secara eksplisit mengelola di mana dictionary berada dan bagaimana mereka disinkronkan. Ini sangat berguna untuk alur kerja hibrida yang melibatkan file lokal dan konten CMS remote.
Opsi
local: Dictionary hanya ada secara lokal. Ini tidak akan didorong ke CMS remote.remote: Dictionary dikelola secara remote. Setelah didorong ke CMS, ia akan dipisahkan dari yang lokal. Dictionary remote akan ditarik dari CMS.local_and_remote: Dictionary ada di kedua tempat. Perubahan lokal didorong, dan perubahan remote ditarik (disinkronkan).
Contoh:
Salin kode ke clipboard
Pemisahan Konfigurasi Sistem
Intlayer v8 memisahkan konfigurasi sumber konten dari jalur sistem internal dan jalur output. Ini membersihkan properti content dan membuatnya jelas pengaturan mana yang dimaksudkan untuk dikelola pengguna versus yang dikelola oleh sistem Intlayer.
Properti berikut telah dipindahkan dari content ke properti baru system di intlayer.config.ts:
dictionariesDirmoduleAugmentationDirunmergedDictionariesDirtypesDirmainDirconfigDircacheDiroutputFilesPatternWithPath
Perilaku v7:
Salin kode ke clipboard
Perilaku v8:
Salin kode ke clipboard
Pemisahan Direktori Konten dan Kode
Intlayer v8 memisahkan konfigurasi untuk file definisi konten dari konfigurasi untuk transformasi kode. Ini memungkinkan pemantauan dan pemindaian yang lebih tepat, meningkatkan performa build.
Sebelumnya, contentDir digunakan untuk kedua pemantauan file .content.* dan pemindaian kode untuk pemanggilan useIntlayer. Sekarang:
contentDir: Secara khusus untuk file deklarasi konten Anda.codeDir: Secara khusus untuk kode aplikasi Anda yang membutuhkan transformasi (mis. pruning, optimasi).
Migrasi:
Jika sebelumnya Anda telah mengatur contentDir, Intlayer v8 akan menggunakannya sebagai default untuk codeDir juga, tetapi akan mencatat peringatan. Anda harus secara eksplisit mendefinisikan codeDir dalam konfigurasi Anda.
Perilaku v7:
Salin kode ke clipboard
Perilaku v8:
Salin kode ke clipboard
Framework: Peningkatan Svelte
Konten Markdown dan HTML di Svelte sekarang secara otomatis di-parse menjadi HTML saat distringifikasi. Hal ini membuatnya jauh lebih mudah digunakan dengan sintaks {@html} Svelte, karena Anda sekarang dapat langsung meneruskan node konten.
Dukungan Angular: Vite Bundler (v8.11.0)
Untuk pengguna Angular, Intlayer sekarang secara native mendukung bundler Vite melalui plugin esbuild kustom baru, mempercepat waktu pengembangan dan build.
Untuk detail tentang konfigurasi, lihat Dokumentasi Lingkungan Angular.
Pembuatan Sitemap (v8.6.0)
Intlayer sekarang menghasilkan sitemap secara otomatis berdasarkan locale dan mode routing Anda. Ini sangat berguna untuk optimisasi SEO dalam arsitektur router seperti TanStack Router:
Salin kode ke clipboard
Catatan migrasi dari v7
Perubahan Konfigurasi
- Properti
live: Propertilivepada kamus telah dihapus. GunakanimportMode: 'fetch'sebagai gantinya. - importMode: Properti
build.importModedalam konfigurasi sudah deprecated. Gunakandictionary.importModesebagai gantinya. contentDirdancodeDir:contentDirsekarang secara khusus untuk file konten. Properti barucodeDirditambahkan untuk transformasi kode. JikacodeDirtidak diatur, Intlayer akan menggunakancontentDirsebagai fallback dan menampilkan peringatan di log.- Validasi Skema: Untuk menggunakan fitur
schemabaru, pastikan Anda telah menginstalzoddi proyek Anda.
