Intl.Locale
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
* Some parts of this feature may have varying levels of support.
Đối tượng Intl.Locale là một thuộc tính tích hợp sẵn tiêu chuẩn của đối tượng Intl, đại diện cho một định danh locale Unicode.
Try it
const korean = new Intl.Locale("ko", {
script: "Kore",
region: "KR",
hourCycle: "h23",
calendar: "gregory",
});
const japanese = new Intl.Locale("ja-Jpan-JP-u-ca-japanese-hc-h12");
console.log(korean.baseName, japanese.baseName);
// Expected output: "ko-Kore-KR" "ja-Jpan-JP"
console.log(korean.hourCycle, japanese.hourCycle);
// Expected output: "h23" "h12"
Mô tả
Đối tượng Intl.Locale được tạo ra nhằm giúp thao tác với các locale Unicode dễ dàng hơn. Unicode biểu diễn locale bằng một chuỗi ký tự gọi là định danh locale. Định danh locale bao gồm một định danh ngôn ngữ và các thẻ mở rộng. Định danh ngôn ngữ là phần cốt lõi của locale, gồm các thẻ phụ language (ngôn ngữ), script (chữ viết), region (vùng) và variants (biến thể). Thông tin bổ sung về locale được lưu trong các thẻ mở rộng tùy chọn. Các thẻ mở rộng chứa thông tin về những khía cạnh của locale như loại lịch, loại đồng hồ và hệ thống đánh số.
Theo truyền thống, API Intl dùng chuỗi ký tự để biểu diễn locale, giống như Unicode. Đây là giải pháp đơn giản và nhẹ nhàng, hoạt động tốt trong hầu hết trường hợp. Tuy nhiên, việc thêm lớp Locale giúp phân tích cú pháp và thao tác ngôn ngữ, chữ viết, vùng cũng như các thẻ mở rộng dễ dàng hơn. Các thuộc tính của Intl.Locale sau đây tương ứng với các thẻ phụ của định danh locale Unicode:
| Thuộc tính | Thẻ phụ tương ứng |
|---|---|
language |
ID ngôn ngữ, phần đầu tiên |
script |
ID ngôn ngữ, phần sau language |
region |
ID ngôn ngữ, phần sau script |
variants |
ID ngôn ngữ, phần sau region |
calendar |
ca (mở rộng) |
caseFirst |
kf (mở rộng) |
collation |
co (mở rộng) |
hourCycle |
hc (mở rộng) |
numberingSystem |
nu (mở rộng) |
numeric |
kn (mở rộng) |
Thông tin trên được cung cấp đúng như khi đối tượng Locale được khởi tạo, mà không cần tra cứu cơ sở dữ liệu bên ngoài nào. Ngoài ra, đối tượng Intl.Locale còn cung cấp một số phương thức trả về thông tin thực tế của locale, chẳng hạn như các lịch, kiểu sắp xếp và hệ thống đánh số có sẵn.
Hàm khởi tạo
Intl.Locale()-
Tạo một đối tượng
Localemới.
Thuộc tính instance
Các thuộc tính này được định nghĩa trên Intl.Locale.prototype và dùng chung cho tất cả các instance Intl.Locale.
Intl.Locale.prototype.baseName-
Trả về thông tin cơ bản, cốt lõi về
Localedưới dạng một chuỗi con của chuỗi dữ liệu đầy đủ. Intl.Locale.prototype.calendar-
Trả về phần của
Localecho biết kỷ nguyên lịch của locale. Intl.Locale.prototype.caseFirst-
Trả về thông tin liệu có xem xét chữ hoa/thường trong quy tắc sắp xếp của locale hay không.
Intl.Locale.prototype.collation-
Trả về kiểu sắp xếp cho
Locale, dùng để sắp xếp chuỗi theo quy tắc của locale. Intl.Locale.prototype.constructor-
Hàm khởi tạo đã tạo ra đối tượng instance. Với các instance
Intl.Locale, giá trị khởi tạo là hàm khởi tạoIntl.Locale. Intl.Locale.prototype.hourCycle-
Trả về quy ước định dạng thời gian được locale sử dụng.
Intl.Locale.prototype.language-
Trả về ngôn ngữ liên kết với locale.
Intl.Locale.prototype.numberingSystem-
Trả về hệ thống đánh số mà locale sử dụng.
Intl.Locale.prototype.numeric-
Trả về thông tin liệu locale có xử lý đặc biệt khi sắp xếp ký tự số hay không.
Intl.Locale.prototype.region-
Trả về vùng lãnh thổ (thường là một quốc gia) liên kết với locale.
Intl.Locale.prototype.script-
Trả về hệ thống chữ viết dùng để ghi ngôn ngữ cụ thể trong locale.
Intl.Locale.prototype.variants-
Trả về các thẻ phụ biến thể (chẳng hạn các hệ thống chính tả khác nhau) liên kết với locale.
Intl.Locale.prototype[Symbol.toStringTag]-
Giá trị khởi tạo của thuộc tính
[Symbol.toStringTag]là chuỗi"Intl.Locale". Thuộc tính này được dùng trongObject.prototype.toString().
Phương thức instance
Intl.Locale.prototype.getCalendars()-
Trả về một
Arraychứa các định danh lịch có sẵn theo quy tắc của locale. Intl.Locale.prototype.getCollations()-
Trả về một
Arraychứa các kiểu sắp xếp củaLocale. Intl.Locale.prototype.getHourCycles()-
Trả về một
Arraychứa các định danh chu kỳ giờ, biểu thị đồng hồ 12 giờ ("h12"), đồng hồ 12 giờ kiểu Nhật ("h11"), đồng hồ 24 giờ ("h23") hoặc định dạng ít dùng "h24". Intl.Locale.prototype.getNumberingSystems()-
Trả về một
Arraychứa các định danh hệ thống đánh số có sẵn theo quy tắc của locale. Intl.Locale.prototype.getTextInfo()-
Trả về phần chỉ ra thứ tự ký tự
ltr(trái sang phải) hoặcrtl(phải sang trái). Intl.Locale.prototype.getTimeZones()-
Trả về một
Arraychứa các định danh múi giờ liên kết vớiLocale. Intl.Locale.prototype.getWeekInfo()-
Trả về Các thành phần tuần theo UTS 35 theo quy tắc locale.
Intl.Locale.prototype.maximize()-
Lấy các giá trị có khả năng nhất cho ngôn ngữ, chữ viết và vùng của locale dựa trên các giá trị hiện có.
Intl.Locale.prototype.minimize()-
Cố gắng xóa thông tin về locale mà lẽ ra sẽ được thêm vào khi gọi
maximize(). Intl.Locale.prototype.toString()-
Trả về chuỗi định danh locale đầy đủ của Locale.
Ví dụ
>Sử dụng cơ bản
Ở dạng đơn giản nhất, hàm khởi tạo Intl.Locale() nhận một chuỗi định danh locale làm đối số:
const us = new Intl.Locale("en-US");
Sử dụng hàm khởi tạo Locale với đối tượng tùy chọn
Hàm khởi tạo cũng nhận một đối số là đối tượng cấu hình tùy chọn, có thể chứa một số loại mở rộng. Ví dụ, đặt thuộc tính hourCycle của đối tượng cấu hình thành loại chu kỳ giờ mong muốn, rồi truyền vào hàm khởi tạo:
const us12hour = new Intl.Locale("en-US", { hourCycle: "h12" });
console.log(us12hour.hourCycle); // Prints "h12"
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2026 Internationalization API Specification> # locale-objects> |
Tương thích trình duyệt
Xem thêm
- Polyfill của
Intl.Localetrong FormatJS Intl- Canonical Unicode Locale Identifiers trong đặc tả ngôn ngữ đánh dấu dữ liệu locale Unicode