Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Tài liệu này đã lỗi thời, phiên bản gốc đã được cập nhật vào 20 tháng 1, 2026.
Xem tài liệu tiếng AnhLịch sử phiên bản
- "Loại bỏ getIntlayerAsync khỏi bộ định dạng"v6.2.014/10/2025
- "Thêm bộ định dạng cho vue"v5.8.020/8/2025
- "Thêm tài liệu cho bộ định dạng"v5.8.018/8/2025
- "Thêm tài liệu cho bộ định dạng danh sách"v5.8.020/8/2025
- "Thêm các tiện ích Intl bổ sung (DisplayNames, Collator, PluralRules)"v5.8.020/8/2025
- "Thêm các tiện ích locale (getLocaleName, getLocaleLang, getLocaleFromPath, v.v.)"v5.8.020/8/2025
- "Thêm các tiện ích xử lý nội dung (getContent, getTranslation, getIntlayer, v.v.)"v5.8.020/8/2025
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhNếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.
Liên kết GitHub tới tài liệuSao chép Markdown của tài liệu vào bộ nhớ tạm
Bộ định dạng Intlayer
Mục lục
Tổng quan
Intlayer cung cấp một bộ helper nhẹ xây dựng trên các API Intl gốc, cùng với một wrapper Intl được lưu trong bộ nhớ đệm để tránh việc tạo lại các bộ định dạng nặng nhiều lần. Các tiện ích này hoàn toàn nhận biết locale và có thể được sử dụng từ package chính intlayer.
Import
Nếu bạn sử dụng React, các hook cũng có sẵn; xem react-intlayer/format.
Intl được lưu trong bộ nhớ đệm
Intl được xuất ra là một wrapper mỏng, được lưu trong bộ nhớ đệm quanh Intl toàn cục. Nó ghi nhớ các thể hiện của NumberFormat, DateTimeFormat, RelativeTimeFormat, ListFormat, DisplayNames, Collator, và PluralRules, giúp tránh việc xây dựng lại cùng một bộ định dạng nhiều lần.
Vì việc tạo bộ định dạng khá tốn kém, việc lưu trong bộ nhớ đệm này cải thiện hiệu suất mà không làm thay đổi hành vi. Wrapper này cung cấp cùng API như Intl gốc, nên cách sử dụng hoàn toàn giống nhau.
- Việc lưu trong bộ nhớ đệm là theo từng tiến trình và hoàn toàn minh bạch với người gọi.
Nếu Intl.DisplayNames không có sẵn trong môi trường, một cảnh báo chỉ dành cho nhà phát triển sẽ được in ra một lần (cân nhắc sử dụng polyfill).
Ví dụ:
Tiện ích Intl bổ sung
Ngoài các trình trợ giúp định dạng, bạn cũng có thể sử dụng trực tiếp wrapper Intl đã được lưu trong bộ nhớ đệm cho các tính năng Intl khác:
Intl.DisplayNames
Dùng để lấy tên địa phương hóa của ngôn ngữ, vùng, tiền tệ và bảng chữ cái:
Intl.Collator
Dùng để so sánh và sắp xếp chuỗi theo ngữ cảnh địa phương:
Intl.PluralRules
Dùng để xác định các dạng số nhiều trong các locale khác nhau:
Tiện ích Locale
getLocaleName(displayLocale, targetLocale?)
Lấy tên địa phương hóa của một locale trong một locale khác:
- displayLocale: Locale cần lấy tên
- targetLocale: Locale để hiển thị tên (mặc định là displayLocale)
getLocaleLang(locale?)
Trích xuất mã ngôn ngữ từ một chuỗi locale:
- locale: Locale để trích xuất ngôn ngữ (mặc định là locale hiện tại)
getLocaleFromPath(inputUrl)
Trích xuất phần locale từ một URL hoặc pathname:
- inputUrl: Chuỗi URL đầy đủ hoặc đường dẫn cần xử lý
- returns: Locale được phát hiện hoặc locale mặc định nếu không tìm thấy locale nào
getPathWithoutLocale(inputUrl, locales?)
Loại bỏ phần locale khỏi URL hoặc đường dẫn:
- inputUrl: Chuỗi URL đầy đủ hoặc đường dẫn cần xử lý
- locales: Mảng tùy chọn các locale được hỗ trợ (mặc định là các locale đã cấu hình)
- returns: URL không có phần locale
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
Tạo URL có địa phương hóa cho locale hiện tại:
- url: URL gốc cần địa phương hóa
- currentLocale: Locale hiện tại
- locales: Mảng tùy chọn các locale được hỗ trợ (mặc định là các locale đã cấu hình)
- defaultLocale: Locale mặc định tùy chọn (mặc định là locale mặc định đã cấu hình)
- prefixDefault: Có thêm tiền tố locale mặc định hay không (mặc định theo giá trị đã cấu hình)
getHTMLTextDir(locale?)
Trả về hướng văn bản cho một locale:
- locale: Locale để lấy hướng văn bản (mặc định là locale hiện tại)
- returns:
"ltr","rtl", hoặc"auto"
Tiện ích Xử lý Nội dung
getContent(node, nodeProps, locale?)
Chuyển đổi một node nội dung với tất cả các plugin có sẵn (dịch thuật, đánh số, chèn, v.v.):
- node: Node nội dung cần chuyển đổi
- nodeProps: Thuộc tính cho ngữ cảnh chuyển đổi
- locale: Locale tùy chọn (mặc định là locale mặc định đã cấu hình)
getTranslation(languageContent, locale?, fallback?)
Trích xuất nội dung cho một locale cụ thể từ một đối tượng nội dung ngôn ngữ:
- languageContent: Đối tượng ánh xạ các locale tới nội dung
- locale: Locale mục tiêu (mặc định là locale cấu hình sẵn)
- fallback: Có fallback về locale mặc định hay không (mặc định là true)
getIntlayer(dictionaryKey, locale?, plugins?)
Lấy và chuyển đổi nội dung từ một từ điển theo key:
- dictionaryKey: Khóa của từ điển để truy xuất
- locale: Locale tùy chọn (mặc định là locale cấu hình sẵn)
- plugins: Mảng tùy chọn các plugin chuyển đổi tùy chỉnh
Bộ định dạng
Tất cả các helper dưới đây được xuất khẩu từ intlayer.
number(value, options?)
Định dạng một giá trị số sử dụng nhóm và phần thập phân theo locale.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Ví dụ:
percentage(value, options?)
Định dạng một số thành chuỗi phần trăm.
Hành vi: các giá trị lớn hơn 1 được hiểu là phần trăm nguyên và được chuẩn hóa (ví dụ, 25 → 25%, 0.25 → 25%).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Ví dụ:
currency(value, options?)
Định dạng một giá trị dưới dạng tiền tệ theo locale. Mặc định là USD với hai chữ số thập phân.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Các trường phổ biến:
currency(ví dụ,"EUR"),currencyDisplay("symbol" | "code" | "name")
- Các trường phổ biến:
Ví dụ:
date(date, optionsOrPreset?)
Định dạng giá trị ngày/giờ với Intl.DateTimeFormat.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }hoặc một trong các preset:- Preset:
"short" | "long" | "dateOnly" | "timeOnly" | "full"
- Preset:
Ví dụ:
relativeTime(from, to = new Date(), options?)
Định dạng thời gian tương đối giữa hai thời điểm với Intl.RelativeTimeFormat.
- Truyền "now" làm đối số đầu tiên và mục tiêu làm đối số thứ hai để có cách diễn đạt tự nhiên.
- from:
Date | string | number - to:
Date | string | number(mặc định lànew Date()) - options:
{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }- Mặc định
unitlà"second".
- Mặc định
Ví dụ:
units(value, options?)
Định dạng một giá trị số thành chuỗi đơn vị được địa phương hóa sử dụng Intl.NumberFormat với style: 'unit'.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Các trường phổ biến:
unit(ví dụ,"kilometer","byte"),unitDisplay("short" | "narrow" | "long") - Mặc định:
unit: 'day',unitDisplay: 'short',useGrouping: false
- Các trường phổ biến:
Ví dụ:
compact(value, options?)
Định dạng một số sử dụng ký hiệu rút gọn (ví dụ, 1.2K, 1M).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }(sử dụngnotation: 'compact'bên trong)
Ví dụ:
list(values, options?)
Định dạng một mảng các giá trị thành chuỗi danh sách được địa phương hóa sử dụng Intl.ListFormat.
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- Các trường phổ biến:
type("conjunction" | "disjunction" | "unit"),style("long" | "short" | "narrow") - Mặc định:
type: 'conjunction',style: 'long'
- Các trường phổ biến:
Ví dụ:
Ghi chú
- Tất cả các helper chấp nhận đầu vào kiểu
string; chúng sẽ được ép kiểu nội bộ thành số hoặc ngày tháng. - Locale mặc định là
internationalization.defaultLocalemà bạn đã cấu hình nếu không được cung cấp. - Các tiện ích này là các wrapper mỏng; để định dạng nâng cao, hãy truyền các tùy chọn tiêu chuẩn của
Intl.
Điểm vào và tái xuất (@index.ts)
Các bộ định dạng nằm trong package core và được tái xuất từ các package cấp cao hơn để giữ cho việc import thuận tiện trên các runtime khác nhau:
Ví dụ:
React
Các thành phần client:
Các thành phần server (hoặc runtime React Server):
Các hook đó sẽ lấy locale từIntlayerProviderhoặcIntlayerServerProvider
Vue
Các component phía client:
Các composable đó sẽ lấy locale từ IntlayerProvider được inject vào