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 Locale mớ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ề Locale dướ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 Locale cho 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ạo Intl.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 trong Object.prototype.toString().

Phương thức instance

Intl.Locale.prototype.getCalendars()

Trả về một Array chứ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 Array chứa các kiểu sắp xếp của Locale.

Intl.Locale.prototype.getHourCycles()

Trả về một Array chứ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 Array chứ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ặc rtl (phải sang trái).

Intl.Locale.prototype.getTimeZones()

Trả về một Array chứa các định danh múi giờ liên kết với Locale.

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ố:

js
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:

js
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