Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Dengan mengintegrasikan Intlayer MCP Server ke AI assistant favorit Anda, Anda dapat mengambil seluruh dokumentasi langsung dari ChatGPT, DeepSeek, Cursor, VSCode, dll.
Lihat dokumentasi MCP ServerRiwayat Versi
- Menambahkan konfigurasi `dictionary`v7.0.025/10/2025
- Mengganti konfigurasi `middleware` dengan `routing`v7.0.021/10/2025
- Menambahkan opsi `formatCommand`v7.0.012/10/2025
- Memperbarui opsi `excludedPath`v6.2.012/10/2025
- Menambahkan opsi `outputFormat`v6.0.223/9/2025
- Menghapus field `dictionaryOutput` dan field `i18nextResourcesDir`v6.0.021/9/2025
- Menambahkan mode import `live`v6.0.016/9/2025
- Mengganti field `hotReload` dengan `liveSync` dan menambahkan field `liveSyncPort` serta `liveSyncURL`v6.0.04/9/2025
- Mengganti `activateDynamicImport` dengan opsi `importMode`v5.6.125/7/2025
- Mengubah default contentDir dari `['src']` menjadi `['.']`v5.6.013/7/2025
- Menambahkan perintah `docs`v5.5.1129/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
Dokumentasi Konfigurasi Intlayer
Ikhtisar
File konfigurasi Intlayer memungkinkan kustomisasi berbagai aspek plugin, seperti internasionalisasi, middleware, dan penanganan konten. Dokumen ini memberikan deskripsi rinci tentang setiap properti dalam konfigurasi.
Daftar Isi
Dukungan File Konfigurasi
Intlayer menerima format file konfigurasi JSON, JS, MJS, dan TS:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
Contoh file konfigurasi
Salin kode ke clipboard
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { contentDir: ["src", "../ui-library"], }, dictionary: { fill: "./{{fileName}}.content.json", }, routing: { mode: "prefix-no-default", storage: "cookie", }, editor: { applicationURL: "https://example.com", }, ai: { apiKey: process.env.OPENAI_API_KEY, applicationContext: "Ini adalah aplikasi uji", }, build: { importMode: "dynamic", },};export default config;Referensi Konfigurasi
Bagian berikut menjelaskan berbagai pengaturan konfigurasi yang tersedia untuk Intlayer.
Konfigurasi Internasionalisasi
Mendefinisikan pengaturan yang terkait dengan internasionalisasi, termasuk locale yang tersedia dan locale default untuk aplikasi.
Properti
locales:
- Tipe: string[]
- Default: ['en']
- Deskripsi: Daftar locale yang didukung dalam aplikasi.
- Contoh: ['en', 'fr', 'es']
- requiredLocales:
- Tipe: string[]
- Default: []
- Deskripsi: Daftar locale yang wajib ada dalam aplikasi.
- Contoh: []
- Catatan: Jika kosong, semua locale diwajibkan dalam mode strict.
- Catatan: Pastikan locale yang wajib juga didefinisikan dalam field locales.
strictMode:
- Tipe: string
- Default: inclusive
- Deskripsi: Menjamin implementasi konten internasionalisasi yang kuat menggunakan typescript.
- Catatan: Jika diatur ke "strict", fungsi terjemahan t akan mengharuskan setiap locale yang dideklarasikan untuk didefinisikan. Jika satu locale hilang, atau jika locale tidak dideklarasikan dalam konfigurasi Anda, maka akan menghasilkan error.
- Catatan: Jika diatur ke "inclusive", fungsi terjemahan t akan mengharuskan setiap locale yang dideklarasikan untuk didefinisikan. Jika satu locale hilang, akan memberikan peringatan. Namun akan menerima jika locale tidak dideklarasikan dalam konfigurasi Anda, tetapi ada.
- Catatan: Jika diatur ke "loose", fungsi terjemahan t akan menerima locale yang ada.
defaultLocale:
- Tipe: string
- Default: 'en'
- Deskripsi: Locale default yang digunakan sebagai fallback jika locale yang diminta tidak ditemukan.
- Contoh: 'en'
- Catatan: Ini digunakan untuk menentukan locale ketika tidak ada yang ditentukan dalam URL, cookie, atau header.
Konfigurasi Editor
Mendefinisikan pengaturan terkait editor terintegrasi, termasuk port server dan status aktif.
Properti
applicationURL:
- Tipe: string
- Default: http://localhost:3000
- Deskripsi: URL aplikasi. Digunakan untuk membatasi asal editor demi alasan keamanan.
- Contoh:
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- Catatan: URL aplikasi. Digunakan untuk membatasi asal editor demi alasan keamanan. Jika diatur ke '*', editor dapat diakses dari asal mana pun.
port:
- Tipe: number
- Default: 8000
- Deskripsi: Port yang digunakan oleh server editor visual.
editorURL:
- Tipe: string
- Default: 'http://localhost:8000'
- Deskripsi: URL server editor. Digunakan untuk membatasi asal editor demi alasan keamanan.
- 'http://localhost:3000'
- 'https://example.com'
- process.env.INTLAYER_EDITOR_URL
- Catatan: URL server editor yang dapat diakses dari aplikasi. Digunakan untuk membatasi asal yang dapat berinteraksi dengan aplikasi demi alasan keamanan. Jika diatur ke '*', editor dapat diakses dari asal mana pun. Harus diatur jika port diubah, atau jika editor dihosting di domain yang berbeda.
cmsURL:
- Tipe: string
- Default: 'https://intlayer.org'
- Deskripsi: URL dari Intlayer CMS.
- Contoh: 'https://intlayer.org'
- Catatan: URL dari Intlayer CMS.
backendURL:
- Tipe: string
- Default: https://back.intlayer.org
- Deskripsi: URL dari server backend.
- Contoh: http://localhost:4000
enabled:
- Tipe: boolean
- Default: true
- Deskripsi: Menunjukkan apakah aplikasi berinteraksi dengan visual editor.
- Contoh: process.env.NODE_ENV !== 'production'
- Catatan: Jika true, editor akan dapat berinteraksi dengan aplikasi. Jika false, editor tidak akan dapat berinteraksi dengan aplikasi. Dalam hal apa pun, editor hanya dapat diaktifkan oleh visual editor. Menonaktifkan editor untuk lingkungan tertentu adalah cara untuk menegakkan keamanan.
clientId:
- Tipe: string | undefined
- Default: undefined
- Deskripsi: clientId dan clientSecret memungkinkan paket intlayer untuk melakukan autentikasi dengan backend menggunakan autentikasi oAuth2. Token akses digunakan untuk mengautentikasi pengguna yang terkait dengan proyek. Untuk mendapatkan token akses, kunjungi https://intlayer.org/dashboard/project dan buat akun.
- Contoh: true
- Catatan: Penting: clientId dan clientSecret harus dijaga kerahasiaannya dan tidak dibagikan secara publik. Pastikan untuk menyimpannya di lokasi yang aman, seperti variabel lingkungan.
clientSecret:
- Tipe: string | undefined
- Default: undefined
- Deskripsi: clientId dan clientSecret memungkinkan paket intlayer untuk melakukan autentikasi dengan backend menggunakan autentikasi oAuth2. Token akses digunakan untuk mengautentikasi pengguna yang terkait dengan proyek. Untuk mendapatkan token akses, kunjungi https://intlayer.org/dashboard/project dan buat akun.
- Contoh: true
- Catatan: Penting: clientId dan clientSecret harus dijaga kerahasiaannya dan tidak dibagikan secara publik. Pastikan untuk menyimpannya di lokasi yang aman, seperti variabel lingkungan.
dictionaryPriorityStrategy:
- Tipe: string
- Default: 'local_first'
- Deskripsi: Strategi untuk memprioritaskan kamus dalam kasus adanya kamus lokal dan jauh. Jika diatur ke 'distant_first', aplikasi akan memprioritaskan kamus jauh dibandingkan kamus lokal. Jika diatur ke 'local_first', aplikasi akan memprioritaskan kamus lokal dibandingkan kamus jauh.
- Contoh: 'distant_first'
liveSync:
- Tipe: boolean
- Default: false
- Deskripsi: Menunjukkan apakah server aplikasi harus melakukan hot reload konten aplikasi ketika perubahan terdeteksi pada CMS / Visual Editor / Backend.
- Contoh: true
- Catatan: Misalnya, ketika kamus baru ditambahkan atau diperbarui, aplikasi akan memperbarui konten yang ditampilkan di halaman.
- Catatan: Live sync membutuhkan eksternalisasi konten aplikasi ke server lain. Itu berarti dapat sedikit memengaruhi performa aplikasi. Untuk membatasi hal ini, kami menyarankan untuk meng-host aplikasi dan server live sync pada mesin yang sama. Selain itu, kombinasi live sync dan optimize dapat menghasilkan sejumlah besar permintaan ke server live sync. Tergantung pada infrastruktur Anda, kami menyarankan untuk menguji kedua opsi dan kombinasi keduanya.
liveSyncPort:
- Tipe: number
- Default: 4000
- Deskripsi: Port dari server live sync.
- Contoh: 4000
- Catatan: Port dari server live sync.
liveSyncURL:
- Tipe: string
- Default: 'http://localhost:{liveSyncPort}'
- Deskripsi: URL dari server live sync.
- Contoh: 'https://example.com'
- Catatan: Mengarah ke localhost secara default tetapi dapat diubah ke URL mana pun dalam kasus server live sync jarak jauh.
Konfigurasi Routing
Pengaturan yang mengontrol perilaku routing, termasuk struktur URL, penyimpanan locale, dan penanganan middleware.
Properti
mode:
- Tipe: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'
- Default: 'prefix-no-default'
- Deskripsi: Mode routing URL untuk penanganan locale.
- Contoh:
- 'prefix-no-default': /dashboard (en) atau /fr/dashboard (fr)
- 'prefix-all': /en/dashboard (en) atau /fr/dashboard (fr)
- 'no-prefix': /dashboard (locale ditangani dengan cara lain)
- 'search-params': /dashboard?locale=fr
- Catatan: Pengaturan ini tidak memengaruhi manajemen cookie atau penyimpanan locale.
storage:
- Tipe: false | 'cookie' | 'localStorage' | 'sessionStorage' | 'header' | CookiesAttributes | StorageAttributes | Array
- Default: 'localStorage'
Deskripsi: Konfigurasi untuk menyimpan locale di sisi klien.
cookie:
- Deskripsi: Menyimpan data dalam cookie, potongan kecil data yang disimpan di browser klien, dapat diakses di sisi klien dan server.
- Catatan: Untuk penyimpanan yang sesuai dengan GDPR, pastikan persetujuan pengguna yang tepat sebelum penggunaan.
- Catatan: Parameter cookie dapat disesuaikan jika diatur sebagai CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }).
localStorage:
- Deskripsi: Menyimpan data di browser tanpa tanggal kedaluwarsa, memungkinkan data bertahan antar sesi, hanya dapat diakses di sisi klien.
- Catatan: Ideal untuk menyimpan data jangka panjang tetapi perlu memperhatikan implikasi privasi dan keamanan karena sifatnya yang tidak kedaluwarsa kecuali secara eksplisit dihapus.
- Catatan: Penyimpanan locale hanya dapat diakses di sisi klien, proxy intlayer tidak akan dapat mengaksesnya.
- Catatan: Parameter penyimpanan locale dapat disesuaikan jika diatur sebagai StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }).
sessionStorage:
- Deskripsi: Menyimpan data selama durasi sesi halaman, artinya data akan dihapus setelah tab atau jendela ditutup, hanya dapat diakses di sisi klien.
- Catatan: Cocok untuk penyimpanan data sementara untuk setiap sesi.
- Catatan: Penyimpanan locale hanya dapat diakses di sisi klien, proxy intlayer tidak akan dapat mengaksesnya.
- Catatan: Parameter penyimpanan locale dapat disesuaikan jika diatur sebagai StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }).
header:
- Deskripsi: Memanfaatkan header HTTP untuk menyimpan atau mengirim data locale, cocok untuk penentuan bahasa di sisi server.
- Catatan: Berguna dalam panggilan API untuk menjaga konsistensi pengaturan bahasa di seluruh permintaan.
- Catatan: Header hanya dapat diakses di sisi server, sisi klien tidak akan dapat mengaksesnya.
- Catatan: Nama header dapat disesuaikan jika diatur sebagai StorageAttributes ({ type: 'header', name: 'custom-locale' }).
basePath:
- Tipe: string
- Default: ''
- Deskripsi: Jalur dasar untuk URL aplikasi.
- Contoh: '/my-app'
- Catatan:
- Jika aplikasi dihosting di https://example.com/my-app
- Jalur dasar adalah '/my-app'
- URL akan menjadi https://example.com/my-app/en
- Jika jalur dasar tidak diatur, URL akan menjadi https://example.com/en
Atribut Cookie
Saat menggunakan penyimpanan cookie, Anda dapat mengonfigurasi atribut cookie tambahan:
- name: Nama cookie (default: 'INTLAYER_LOCALE')
- domain: Domain cookie (default: tidak ditentukan)
- path: Jalur cookie (default: tidak ditentukan)
- secure: Memerlukan HTTPS (default: tidak ditentukan)
- httpOnly: Flag hanya HTTP (default: tidak ditentukan)
- sameSite: Kebijakan SameSite ('strict' | 'lax' | 'none')
- expires: Tanggal kedaluwarsa atau jumlah hari (default: undefined)
Atribut Penyimpanan Locale
Saat menggunakan localStorage atau sessionStorage:
- type: Tipe penyimpanan ('localStorage' | 'sessionStorage')
- name: Nama kunci penyimpanan (default: 'INTLAYER_LOCALE')
Contoh Konfigurasi
Berikut beberapa contoh konfigurasi umum untuk struktur routing v7 yang baru:
Konfigurasi Dasar (Default):
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: "localStorage", headerName: "x-intlayer-locale", basePath: "", },});Konfigurasi Sesuai GDPR:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "prefix-no-default", storage: [ { type: "localStorage", name: "user-locale", }, { type: "cookie", name: "user-locale", secure: true, sameSite: "strict", httpOnly: false, }, ], headerName: "x-intlayer-locale", basePath: "", },});Mode Parameter Pencarian:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "search-params", storage: "localStorage", headerName: "x-intlayer-locale", basePath: "", },});Mode Tanpa Prefix dengan Penyimpanan Kustom:
// intlayer.config.tsexport default defineConfig({ internationalization: { locales: ["en", "fr", "es"], defaultLocale: "en", }, routing: { mode: "no-prefix", storage: { type: "sessionStorage", name: "app-locale", }, headerName: "x-custom-locale", basePath: "/my-app", },});Konfigurasi Konten
Pengaturan terkait penanganan konten dalam aplikasi, termasuk nama direktori, ekstensi file, dan konfigurasi turunan.
Properti
watch:
- Tipe: boolean
- Default: process.env.NODE_ENV === 'development'
- Deskripsi: Menunjukkan apakah Intlayer harus memantau perubahan pada file deklarasi konten dalam aplikasi untuk membangun kembali kamus terkait.
fileExtensions:
- Tipe: string[]
- Default: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- Deskripsi: Ekstensi file yang dicari saat membangun kamus.
- Contoh: ['.data.ts', '.data.js', '.data.json']
- Catatan: Menyesuaikan ekstensi file dapat membantu menghindari konflik.
baseDir:
- Tipe: string
- Default: process.cwd()
- Deskripsi: Direktori dasar untuk proyek.
- Contoh: '/path/to/project'
- Catatan: Ini digunakan untuk menyelesaikan semua direktori terkait Intlayer.
contentDir:
- Tipe: string[]
- Default: ['.']
- Contoh: ['src', '../../ui-library', require.resolve("@my-package/content")]
- Deskripsi: Jalur direktori tempat konten disimpan.
dictionariesDir:
- Tipe: string
- Default: '.intlayer/dictionaries'
- Deskripsi: Jalur direktori untuk menyimpan hasil sementara atau output.
moduleAugmentationDir:
- Tipe: string
- Default: '.intlayer/types'
- Deskripsi: Direktori untuk augmentasi modul, memungkinkan saran IDE yang lebih baik dan pengecekan tipe.
- Contoh: 'intlayer-types'
- Catatan: Pastikan untuk memasukkan ini dalam tsconfig.json.
unmergedDictionariesDir:
- Tipe: string
- Default: '.intlayer/unmerged_dictionary'
- Deskripsi: Direktori untuk menyimpan kamus yang belum digabungkan.
- Contoh: 'translations'
dictionariesDir:
- Tipe: string
- Default: '.intlayer/dictionary'
- Deskripsi: Direktori untuk menyimpan kamus lokal.
- Contoh: 'translations'
typesDir:
- Tipe: string
- Default: 'types'
- Deskripsi: Direktori untuk menyimpan tipe kamus.
- Contoh: 'intlayer-types'
mainDir:
- Tipe: string
- Default: 'main'
- Deskripsi: Direktori tempat file aplikasi utama disimpan.
- Contoh: 'intlayer-main'
excludedPath:
- Tipe: string[]
- Default: ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**']
- Deskripsi: Direktori yang dikecualikan dari pencarian konten.
- Catatan: Pengaturan ini belum digunakan, tetapi direncanakan untuk implementasi di masa depan.
formatCommand:
- Tipe: string
- Default: undefined
- Deskripsi: Perintah untuk memformat konten. Ketika intlayer menulis file .content Anda secara lokal, perintah ini akan digunakan untuk memformat konten.
- Contoh: 'npx prettier --write "{{file}}" --log-level silent' Menggunakan Prettier
- Contoh: 'npx biome format "{{file}}" --write --log-level none' Menggunakan Biome
- Contoh: 'npx eslint --fix "{{file}}" --quiet' Menggunakan ESLint
- Catatan: Intlayer akan menggantikan {{file}} dengan path file yang akan diformat.
- Catatan: Jika tidak diatur, Intlayer akan mencoba mendeteksi perintah format secara otomatis dengan mencoba menyelesaikan perintah berikut: prettier, biome, eslint.
Konfigurasi Kamus
Pengaturan yang mengontrol operasi kamus, termasuk perilaku pengisian otomatis dan pembuatan konten.
Konfigurasi kamus ini memiliki dua tujuan utama:
- Nilai Default: Mendefinisikan nilai default saat membuat file deklarasi konten
- Perilaku Cadangan: Memberikan nilai cadangan ketika bidang tertentu tidak didefinisikan, memungkinkan Anda untuk menentukan perilaku operasi kamus secara global
Untuk informasi lebih lanjut tentang file deklarasi konten dan bagaimana nilai konfigurasi diterapkan, lihat Dokumentasi File Konten.
Properti
- fill
- description
- locale
- priority
- live
- title
- tags
- version
Konfigurasi Logger
Pengaturan yang mengontrol logger, termasuk prefix yang digunakan.
Properti
mode:
- Tipe: string
- Default: default
- Deskripsi: Menunjukkan mode dari logger.
- Opsi: default, verbose, disabled
- Contoh: default
- Catatan: Mode dari logger. Mode verbose akan mencatat lebih banyak informasi, tetapi dapat digunakan untuk tujuan debugging. Mode disabled akan menonaktifkan logger.
prefix:
- Tipe: string
- Default: '[intlayer] '
- Deskripsi: Prefix dari logger.
- Contoh: '[my custom prefix] '
- Catatan: Prefix dari logger.
Konfigurasi AI
Pengaturan yang mengontrol fitur AI dari Intlayer, termasuk provider, model, dan API key.
Konfigurasi ini bersifat opsional jika Anda terdaftar di Intlayer Dashboard menggunakan access key. Intlayer akan secara otomatis mengelola solusi AI yang paling efisien dan hemat biaya untuk kebutuhan Anda. Menggunakan opsi default memastikan pemeliharaan jangka panjang yang lebih baik karena Intlayer terus diperbarui untuk menggunakan model yang paling relevan.
Jika Anda lebih memilih menggunakan API key sendiri atau model tertentu, Anda dapat mendefinisikan konfigurasi AI kustom Anda. Konfigurasi AI ini akan digunakan secara global di seluruh lingkungan Intlayer Anda. Perintah CLI akan menggunakan pengaturan ini sebagai default untuk perintah (misalnya fill), serta SDK, Visual Editor, dan CMS. Anda dapat menimpa nilai default ini untuk kasus penggunaan tertentu dengan menggunakan parameter perintah.
Intlayer mendukung beberapa provider AI untuk fleksibilitas dan pilihan yang lebih baik. Provider yang saat ini didukung adalah:
- OpenAI (default)
- Anthropic Claude
- Mistral AI
- DeepSeek
- Google Gemini
- Meta Llama
Properti
provider:
- Tipe: string
- Default: 'openai'
- Deskripsi: Provider yang digunakan untuk fitur AI dari Intlayer.
- Opsi: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini'
- Contoh: 'anthropic'
- Catatan: Penyedia yang berbeda mungkin memerlukan kunci API yang berbeda dan memiliki model harga yang berbeda.
model:
- Tipe: string
- Default: Tidak ada
- Deskripsi: Model yang digunakan untuk fitur AI di Intlayer.
- Contoh: 'gpt-4o-2024-11-20'
- Catatan: Model spesifik yang digunakan bervariasi tergantung penyedia.
temperature:
- Tipe: number
- Default: Tidak ada
- Deskripsi: Temperature mengontrol tingkat keacakan respons AI.
- Contoh: 0.1
- Catatan: Temperature yang lebih tinggi akan membuat AI lebih kreatif dan kurang dapat diprediksi.
apiKey:
- Tipe: string
- Default: Tidak ada
- Deskripsi: Kunci API Anda untuk penyedia yang dipilih.
- Contoh: process.env.OPENAI_API_KEY
- Catatan: Penting: Kunci API harus dijaga kerahasiaannya dan tidak dibagikan secara publik. Pastikan untuk menyimpannya di lokasi yang aman, seperti variabel lingkungan.
applicationContext:
- Tipe: string
- Default: Tidak ada
- Deskripsi: Memberikan konteks tambahan tentang aplikasi Anda kepada model AI, membantu menghasilkan terjemahan yang lebih akurat dan sesuai konteks. Ini dapat mencakup informasi tentang domain aplikasi Anda, audiens target, nada, atau terminologi khusus.
Konfigurasi Build
Pengaturan yang mengontrol bagaimana Intlayer mengoptimalkan dan membangun internasionalisasi aplikasi Anda.
Opsi build berlaku untuk plugin @intlayer/babel dan @intlayer/swc.
Dalam mode pengembangan, Intlayer menggunakan impor statis untuk kamus agar pengalaman pengembangan menjadi lebih sederhana.
Saat dioptimalkan, Intlayer akan mengganti panggilan kamus untuk mengoptimalkan chunking, sehingga bundel akhir hanya mengimpor kamus yang benar-benar digunakan.
Properti
optimize:
- Tipe: boolean
- Default: process.env.NODE_ENV === 'production'
- Deskripsi: Mengontrol apakah build harus dioptimalkan.
- Contoh: true
- Catatan: Saat diaktifkan, Intlayer akan mengganti semua panggilan kamus untuk mengoptimalkan chunking. Dengan begitu, bundel akhir hanya akan mengimpor kamus yang digunakan. Semua impor akan tetap sebagai impor statis untuk menghindari pemrosesan async saat memuat kamus.
- Catatan: Intlayer akan mengganti semua panggilan useIntlayer dengan mode yang ditentukan oleh opsi importMode dan getIntlayer dengan getDictionary.
- Catatan: Opsi ini bergantung pada plugin @intlayer/babel dan @intlayer/swc.
- Catatan: Pastikan semua kunci dideklarasikan secara statis dalam panggilan useIntlayer. Contoh: useIntlayer('navbar').
- importMode:
- Tipe: 'static' | 'dynamic' | 'live'
- Default: 'static'
- Deskripsi: Mengontrol bagaimana kamus diimpor.
- Contoh: 'dynamic'
- Catatan: Mode yang tersedia:
- "static": Kamus diimpor secara statis. Mengganti useIntlayer dengan useDictionary.
- "dynamic": Kamus diimpor secara dinamis menggunakan Suspense. Mengganti useIntlayer dengan useDictionaryDynamic.
- "live": Kamus diambil secara dinamis menggunakan live sync API. Mengganti useIntlayer dengan useDictionaryDynamic.
- Catatan: Impor dinamis bergantung pada Suspense dan mungkin sedikit memengaruhi performa rendering.
- Catatan: Jika dinonaktifkan, semua locale akan dimuat sekaligus, meskipun tidak digunakan.
- Catatan: Opsi ini bergantung pada plugin @intlayer/babel dan @intlayer/swc.
- Catatan: Pastikan semua kunci dideklarasikan secara statis dalam panggilan useIntlayer. Contoh: useIntlayer('navbar').
- Catatan: Opsi ini akan diabaikan jika optimize dinonaktifkan.
- Catatan: Jika diatur ke "live", hanya kamus yang menyertakan konten jarak jauh, dan diatur sebagai flag "live" yang akan diubah menjadi mode live. Yang lainnya akan diimpor secara dinamis sebagai mode "dynamic" untuk mengoptimalkan jumlah kueri pengambilan, dan kinerja pemuatan.
- Catatan: Mode live akan menggunakan API sinkronisasi live untuk mengambil kamus. Jika panggilan API gagal, kamus akan diimpor secara dinamis sebagai mode "dynamic".
- Catatan: Opsi ini tidak akan memengaruhi fungsi getIntlayer, getDictionary, useDictionary, useDictionaryAsync dan useDictionaryDynamic.
outputFormat:
- Tipe: 'esm' | 'cjs'
- Default: 'esm'
- Deskripsi: Mengontrol format output dari kamus.
- Contoh: 'cjs'
- Catatan: Format output dari kamus.
traversePattern:
- Tipe: string[]
- Default: ['**/*.{js,ts,mjs,cjs,jsx,tsx,mjx,cjx}', '!**/node_modules/**']
- Deskripsi: Pola yang menentukan file mana yang harus dilalui selama optimasi.
- Contoh: ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**']
- Catatan: Gunakan ini untuk membatasi optimasi hanya pada file kode yang relevan dan meningkatkan performa build.
- Catatan: Opsi ini akan diabaikan jika optimize dinonaktifkan.
- Catatan: Gunakan pola glob.