Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Dokumen ini sudah usang, versi dasar telah diperbarui pada 20 Januari 2026.
Buka dokumen bahasa InggrisRiwayat Versi
- "Menghapus getIntlayerAsync dari formatters"v6.2.014/10/2025
- "Menambahkan formatters untuk vue"v5.8.020/8/2025
- "Menambahkan dokumentasi formatters"v5.8.018/8/2025
- "Menambahkan dokumentasi list formatter"v5.8.020/8/2025
- "Menambahkan utilitas Intl tambahan (DisplayNames, Collator, PluralRules)"v5.8.020/8/2025
- "Menambahkan utilitas lokal (getLocaleName, getLocaleLang, getLocaleFromPath, dll.)"v5.8.020/8/2025
- "Menambahkan utilitas penanganan konten (getContent, getTranslation, getIntlayer, dll.)"v5.8.020/8/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
Formatters Intlayer
Daftar Isi
Ikhtisar
Intlayer menyediakan serangkaian pembantu ringan yang dibangun di atas API Intl asli, ditambah pembungkus Intl yang di-cache untuk menghindari pembuatan formatter berat berulang kali. Utilitas ini sepenuhnya sadar lokal dan dapat digunakan dari paket utama intlayer.
Impor
Jika Anda menggunakan React, hooks juga tersedia; lihat react-intlayer/format.
Intl yang Di-cache
Intl yang diekspor adalah pembungkus tipis yang di-cache di sekitar Intl global. Ini menyimpan instance dari NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat, DisplayNames, Collator, dan PluralRules, yang menghindari pembuatan ulang formatter yang sama berulang kali.
Karena pembuatan formatter relatif mahal, caching ini meningkatkan performa tanpa mengubah perilaku. Pembungkus ini menampilkan API yang sama seperti Intl asli, sehingga penggunaannya identik.
- Caching dilakukan per proses dan transparan bagi pemanggil.
Jika Intl.DisplayNames tidak tersedia di lingkungan, hanya satu peringatan khusus pengembang yang dicetak (pertimbangkan menggunakan polyfill).
Contoh:
Utilitas Intl Tambahan
Selain pembantu formatter, Anda juga dapat menggunakan pembungkus Intl yang di-cache secara langsung untuk fitur Intl lainnya:
Intl.DisplayNames
Untuk nama yang dilokalkan dari bahasa, wilayah, mata uang, dan skrip:
Intl.Collator
Untuk perbandingan dan pengurutan string yang sadar lokal:
Intl.PluralRules
Untuk menentukan bentuk jamak dalam berbagai locale:
Utilitas Locale
getLocaleName(displayLocale, targetLocale?)
Mendapatkan nama yang dilokalkan dari sebuah locale dalam locale lain:
- displayLocale: Locale yang ingin didapatkan namanya
- targetLocale: Locale untuk menampilkan nama (default-nya adalah displayLocale)
getLocaleLang(locale?)
Mengambil kode bahasa dari string locale:
- locale: Locale yang akan diambil bahasanya (default-nya adalah locale saat ini)
getLocaleFromPath(inputUrl)
Mengambil segmen locale dari URL atau pathname:
- inputUrl: String URL lengkap atau pathname yang akan diproses
- returns: Locale yang terdeteksi atau locale default jika tidak ditemukan locale
getPathWithoutLocale(inputUrl, locales?)
Menghapus segmen locale dari URL atau pathname:
- inputUrl: String URL lengkap atau pathname yang akan diproses
- locales: Array opsional dari locale yang didukung (default-nya adalah locale yang dikonfigurasi)
- returns: URL tanpa segmen locale
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
Menghasilkan URL yang dilokalkan untuk locale saat ini:
- url: URL asli yang akan dilokalkan
- currentLocale: Locale saat ini
- locales: Array opsional dari locale yang didukung (default ke locale yang dikonfigurasi)
- defaultLocale: Locale default opsional (default ke locale default yang dikonfigurasi)
- prefixDefault: Apakah akan menambahkan prefix untuk locale default (default ke nilai yang dikonfigurasi)
getHTMLTextDir(locale?)
Mengembalikan arah teks untuk sebuah locale:
- locale: Locale untuk mendapatkan arah teks (default ke locale saat ini)
- returns:
"ltr","rtl", atau"auto"
Utilitas Penanganan Konten
getContent(node, nodeProps, locale?)
Mengubah node konten dengan semua plugin yang tersedia (terjemahan, enumerasi, penyisipan, dll.):
- node: Node konten yang akan diubah
- nodeProps: Properti untuk konteks transformasi
- locale: Locale opsional (default ke locale default yang dikonfigurasi)
getTranslation(languageContent, locale?, fallback?)
Mengambil konten untuk locale tertentu dari objek konten bahasa:
- languageContent: Objek yang memetakan locale ke konten
- locale: Locale target (default ke locale default yang dikonfigurasi)
- fallback: Apakah akan kembali ke locale default (default true)
getIntlayer(dictionaryKey, locale?, plugins?)
Mengambil dan mengubah konten dari kamus berdasarkan kunci:
- dictionaryKey: Kunci dari kamus yang akan diambil
- locale: Locale opsional (default ke locale default yang dikonfigurasi)
- plugins: Array opsional dari plugin transformasi kustom
Formatter
Semua helper di bawah ini diekspor dari intlayer.
number(value, options?)
Memformat nilai numerik menggunakan pengelompokan dan desimal yang sesuai dengan locale.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Contoh:
percentage(value, options?)
Memformat angka sebagai string persentase.
Perilaku: nilai yang lebih besar dari 1 diartikan sebagai persentase utuh dan dinormalisasi (misalnya, 25 → 25%, 0.25 → 25%).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Contoh:
currency(value, options?)
Memformat nilai sebagai mata uang lokal. Default ke USD dengan dua digit pecahan.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Field umum:
currency(misalnya,"EUR"),currencyDisplay("symbol" | "code" | "name")
- Field umum:
Contoh:
date(date, optionsOrPreset?)
Memformat nilai tanggal/waktu dengan Intl.DateTimeFormat.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }atau salah satu preset:- Preset:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- Preset:
Contoh:
relativeTime(from, to = new Date(), options?)
Memformat waktu relatif antara dua momen dengan Intl.RelativeTimeFormat.
- Berikan "now" sebagai argumen pertama dan target sebagai argumen kedua untuk mendapatkan frasa yang alami.
- from:
Date | string | number - to:
Date | string | number(defaultnyanew Date()) - options:
{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }- Default
unitadalah"second".
- Default
Contoh:
units(value, options?)
Memformat nilai numerik sebagai string unit yang dilokalkan menggunakan Intl.NumberFormat dengan style: 'unit'.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Field umum:
unit(misalnya,"kilometer","byte"),unitDisplay("short" | "narrow" | "long") - Default:
unit: 'day',unitDisplay: 'short',useGrouping: false
- Field umum:
Contoh:
compact(value, options?)
Memformat angka menggunakan notasi ringkas (misalnya, 1.2K, 1M).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }(menggunakannotation: 'compact'secara internal)
Contoh:
list(values, options?)
Memformat array nilai menjadi string daftar yang dilokalkan menggunakan Intl.ListFormat.
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- Field umum:
type("conjunction" | "disjunction" | "unit"),style("long" | "short" | "narrow") - Default:
type: 'conjunction',style: 'long'
- Field umum:
Contoh:
Catatan
- Semua helper menerima input
string; secara internal akan dikonversi menjadi angka atau tanggal. - Locale default adalah
internationalization.defaultLocaleyang telah Anda konfigurasi jika tidak disediakan. - Utilitas ini adalah pembungkus tipis; untuk pemformatan lanjutan, gunakan opsi standar
Intl.
Titik masuk dan ekspor ulang (@index.ts)
Formatter berada di paket inti dan diekspor ulang dari paket tingkat atas untuk menjaga impor tetap ergonomis di berbagai runtime:
Contoh:
React
Komponen klien:
Komponen server (atau runtime React Server):
Hooks tersebut akan mempertimbangkan locale dariIntlayerProvideratauIntlayerServerProvider
Vue
Komponen klien:
Composables tersebut akan mempertimbangkan locale dari IntlayerProvider yang di-inject