Đặ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 22 tháng 8, 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.
Đối với React, Vue và các framework khác, hãy sử dụng các hooks/composables dành riêng cho từng framework mà tự động liên kết với ngữ cảnh locale của ứng dụng của bạn:
Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Framework | Import |
|---|---|
| React (client) | react-intlayer/format |
| React (server) | react-intlayer/server/format |
| Next.js (client) | next-intlayer/client/format |
| Next.js (server) | next-intlayer/server/format |
| Vue | vue-intlayer/format |
| Preact | preact-intlayer/format |
| Vanilla JS / Node.js | intlayer (yêu cầu truyền locale thủ công) |
React Formatters
Import
Sao chép mã vào clipboard
Các Hook Có Sẵn
Tất cả các hook tự động sử dụng locale từ IntlayerProvider hoặc IntlayerServerProvider.
Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Hook | Description | Example Output |
|---|---|---|
useNumber() | Định dạng số với phân nhóm | "123,456.789" |
useCurrency() | Định dạng giá trị tiền tệ | "€1,234.50" |
usePercentage() | Định dạng phần trăm | "25%" |
useDate() | Định dạng ngày và giờ | "Aug 2, 2025" |
useRelativeTime() | Định dạng thời gian tương đối | "in 3 days" |
useUnit() | Định dạng giá trị với đơn vị | "5 kilometers" |
useCompact() | Định dạng số ở dạng ký hiệu compact | "1.2K" |
useList() | Định dạng mảng dưới dạng danh sách | "apple, banana, and orange" |
useIntl() | Lấy object Intl được gắn locale | Full Intl API access |
Ví dụ Hoàn chỉnh
Sao chép mã vào clipboard
Hook useIntl
Hook useIntl cung cấp quyền truy cập trực tiếp vào một đối tượng Intl được ràng buộc với locale. Điều này hữu ích khi bạn cần toàn bộ API Intl (ví dụ: DisplayNames, Collator, PluralRules) với việc tiêm locale tự động.
Sao chép mã vào clipboard
Vue Formatters
Intl.DisplayNames
Sao chép mã vào clipboard
Các Composables Có Sẵn
Tất cả các composables trả về computed refs tự động sử dụng locale từ IntlayerProvider được inject.
Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Composable | Mô tả | Ví dụ Output |
|---|---|---|
useNumber() | Định dạng số với nhóm | "123,456.789" |
useCurrency() | Định dạng giá trị tiền tệ | "€1,234.50" |
usePercentage() | Định dạng phần trăm | "25%" |
useDate() | Định dạng ngày và giờ | "Aug 2, 2025" |
useRelativeTime() | Định dạng thời gian tương đối | "in 3 days" |
useUnit() | Định dạng giá trị với đơn vị | "5 kilometers" |
useCompact() | Định dạng số ở ký hiệu compact | "1.2K" |
useList() | Định dạng mảng dưới dạng danh sách | "apple, banana, and orange" |
useIntl() | Lấy đối tượng Intl liên kết locale | Full Intl API access |
Ví Dụ Hoàn Chỉnh
Sao chép mã vào clipboard
Intl.Collator
Dùng để so sánh và sắp xếp chuỗi theo ngữ cảnh địa phương:
Sao chép mã vào clipboard
Vanilla JS / Node.js Formatters
Đối với các ngữ cảnh không sử dụng framework, hãy import các formatter trực tiếp từ intlayer. Lưu ý rằng bạn phải truyền locale theo cách thủ công.
Intl.PluralRules
Sao chép mã vào clipboard
Các Hàm Định Dạng
number(value, options?)
Định dạng một giá trị số sử dụng nhóm và thập phân nhận biết địa phương.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Sao chép mã vào clipboard
percentage(value, options?)
Định dạng một số dưới dạng chuỗi phần trăm. Các giá trị lớn hơn 1 được chuẩn hóa (ví dụ: 25 → 25%, 0.25 → 25%).
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Sao chép mã vào clipboard
currency(value, options?)
Định dạng một giá trị dưới dạng tiền tệ được bản địa hóa. Mặc định là USD.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Common:
currency,currencyDisplay("symbol" | "code" | "name")
- Common:
Sao chép mã vào clipboard
date(date, optionsOrPreset?)
Định dạng một giá trị ngày/giờ.
- date:
Date | string | number - optionsOrPreset:
Intl.DateTimeFormatOptions & { locale?: LocalesValues }hoặc preset:"short" | "long" | "dateOnly" | "timeOnly" | "full"
Sao chép mã vào clipboard
relativeTime(from, to?, options?)
Định dạng thời gian tương đối giữa hai thời điểm.
- from:
Date | string | number - to:
Date | string | number(mặc định lànew Date()) - options:
{ locale?, unit?, numeric?, style? }
Sao chép mã vào clipboard
units(value, options?)
Định dạng một giá trị số với một đơn vị.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }- Common:
unit(e.g.,"kilometer","byte"),unitDisplay("short" | "narrow" | "long")
- Common:
Sao chép mã vào clipboard
compact(value, options?)
Định dạng một số sử dụng ký hiệu compact.
- value:
number | string - options:
Intl.NumberFormatOptions & { locale?: LocalesValues }
Sao chép mã vào clipboard
list(values, options?)
Định dạng một mảng thành một chuỗi danh sách đã được bản địa hóa.
- values:
(string | number)[] - options:
Intl.ListFormatOptions & { locale?: LocalesValues }- Common:
type("conjunction" | "disjunction" | "unit"),style("long" | "short" | "narrow")
- Common:
Sao chép mã vào clipboard
Cached Intl
Intl được xuất từ intlayer là một wrapper được lưu trong bộ nhớ cache xung quanh Intl toàn cục. Nó memoizes các instance formatter (NumberFormat, DateTimeFormat, v.v.) để tránh việc xây dựng lại chúng liên tục, cải thiện hiệu suất.
Sao chép mã vào clipboard
Các Tính Năng Intl Bổ Sung
Intl.DisplayNames
Để có được tên được bản địa hóa của các ngôn ngữ, khu vực, tiền tệ và chữ viết:
Sao chép mã vào clipboard
Intl.Collator
Để so sánh và sắp xếp chuỗi ký tự theo locale:
Sao chép mã vào clipboard
Intl.PluralRules
Để xác định các dạng số nhiều trong các locale khác nhau:
Sao chép mã vào clipboard
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:
Sao chép mã vào clipboard
getLocaleLang(locale?)
Trích xuất mã ngôn ngữ từ một chuỗi locale:
Sao chép mã vào clipboard
getLocaleFromPath(inputUrl)
Trích xuất phần locale từ một URL hoặc pathname:
Sao chép mã vào clipboard
getPathWithoutLocale(inputUrl, locales?)
Loại bỏ phần locale khỏi URL hoặc đường dẫn:
Sao chép mã vào clipboard
getLocalizedUrl(url, currentLocale, locales?, defaultLocale?, prefixDefault?)
Tạo URL có địa phương hóa cho locale hiện tại:
Sao chép mã vào clipboard
getHTMLTextDir(locale?)
Trả về hướng văn bản cho một locale:
Sao chép mã vào clipboard
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.):
Sao chép mã vào clipboard
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ữ:
Sao chép mã vào clipboard
getIntlayer(dictionaryKey, locale?, plugins?)
Lấy và chuyển đổi nội dung từ một từ điển theo key:
Sao chép mã vào clipboard
Ghi chú
- Tất cả các helper chấp nhận
stringinputs; chúng được chuyển đổi nội bộ thành numbers hoặc dates. - Locale mặc định là
internationalization.defaultLocaleđược cấu hình của bạn nếu không được cung cấp. - Các tiện ích này là thin wrappers; để định dạng nâng cao, hãy sử dụng các tùy chọn
Intltiêu chuẩn.
