Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Inisialisasi dokumentasi"v9.4.024/8/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
Dokumentasi Plugin intlayer untuk Elysia
Plugin intlayer untuk Elysia mendeteksi locale pengguna dan menyuntikkan objek intlayer ke dalam route context. Plugin ini juga memungkinkan penggunaan fungsi terjemahan global di dalam konteks request.
Penggunaan
Salin kode ke clipboard
Helper yang sama tersedia sebagai export mandiri, sehingga Anda dapat memanggilnya tanpa melakukan destructuring pada route context:
Salin kode ke clipboard
Deskripsi
Plugin melakukan tugas-tugas berikut:
- Deteksi locale: Membaca locale yang ditetapkan secara eksplisit oleh klien dari storage (cookie, header), lalu beralih ke locale yang dinegosiasikan dari header
Accept-Language. - Injeksi Konteks: Menambahkan properti
intlayerke route context Elysia, yang berisi:locale: Locale yang digunakan untuk request ini, denganlocale_storagelebih diprioritaskan daripadalocale_detected.locale_storage: Locale yang diminta secara eksplisit oleh klien melalui cookie atau header.locale_detected: Locale yang dinegosiasikan dari header request.defaultLocale: Locale yang dikonfigurasi sebagai fallback diintlayer.config.ts.t: Sebuah fungsi terjemahan.getIntlayer: Fungsi untuk mengambil dictionary berdasarkan key.getDictionary: Fungsi untuk memproses objek dictionary.
- Manajemen Konteks: Menggunakan
AsyncLocalStorageuntuk mengelola konteks asinkron, memungkinkan fungsi Intlayer global (t,getIntlayer,getDictionary) mengakses locale spesifik request tanpa harus meneruskan objek konteks.
Tidak seperti plugin Intlayer berbasis Node,elysia-intlayermengandalkanAsyncLocalStoragealih-alihcls-hooked, karenacls-hookedbergantung padaasync_hooks.createHook, yang tidak diimplementasikan oleh Bun.
Konteks request dilepaskan setelah response dipetakan, sehingga helper mandiri tidak pernah diselesaikan terhadap request yang sudah berakhir. Ketika dipanggil di luar request yang ditangani plugin, keduanya beralih ke locale default yang dikonfigurasi.
Konfigurasi
Plugin membaca file intlayer.config.ts Anda. Anda dapat menyesuaikan cookie dan header yang digunakan untuk deteksi locale:
Salin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
Untuk informasi lebih lanjut tentang konfigurasi, kunjungi dokumentasi konfigurasi.
