Đặ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
Lịch sử phiên bản
- "Khởi tạo tài liệu"v9.4.024/8/2026
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
Tài liệu Plugin intlayer cho Elysia
Plugin intlayer cho Elysia phát hiện locale của người dùng và tiêm một đối tượng intlayer vào route context. Nó cũng cho phép sử dụng các hàm dịch toàn cục trong ngữ cảnh của request.
Sử dụng
Sao chép mã vào clipboard
Plugin đăng ký context của nó thông qua mộtderiveglobal, được Elysia định kiểu làPartial<{ intlayer: IntlayerContext }>. Giá trị luôn tồn tại lúc runtime với các route được đăng ký sau.use(intlayer()), vì vậy hãy dùng non-null assertion (intlayer!.t), hoặc optional chaining, để thỏa mãn TypeScript ở chế độstrict.
Các helper tương tự cũng có sẵn dưới dạng các export độc lập, nên bạn có thể gọi chúng mà không cần destructure route context:
Sao chép mã vào clipboard
Mô tả
Plugin thực hiện các nhiệm vụ sau:
- Phát hiện locale: Nó đọc locale được client thiết lập một cách tường minh từ storage (cookie, header), sau đó quay về locale được thương lượng từ header
Accept-Language. - Tiêm vào ngữ cảnh: Nó thêm thuộc tính
intlayervào context route của Elysia (xem bảng Context của route bên dưới). - Chuẩn bị dictionary: Nó gọi
prepareIntlayerkhi plugin được tạo, nhờ vậy dictionary được build khi ứng dụng khởi động.
Context của route
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
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
locale | Locale | Locale dùng cho request này, locale_storage được ưu tiên hơn locale_detected. |
locale_storage | Locale (tùy chọn) | Locale được client yêu cầu tường minh qua cookie hoặc header. |
locale_detected | Locale | Locale được thương lượng từ các header của request. |
defaultLocale | Locale | Locale được cấu hình làm fallback trong intlayer.config.ts. |
t | TranslateFunction | Một hàm dịch. |
getIntlayer | typeof getIntlayer | Hàm để lấy dictionary theo key. |
getDictionary | typeof getDictionary | Hàm để xử lý các đối tượng dictionary. |
Khi các helper độc lập được gọi bên ngoài một request do plugin xử lý, chúng quay về locale mặc định đã được cấu hình.
Thứ tự phân giải locale
Theo mặc định, plugin phân giải locale theo thứ tự sau:
- Cookie
INTLAYER_LOCALE. - Header
x-intlayer-locale. - Thương lượng qua header
Accept-Language. defaultLocaleđã được cấu hình.
Sao chép mã vào clipboard
Cấu hình
Plugin đọc tệp intlayer.config.ts của bạn. Bạn có thể tùy chỉnh cookie và header dùng cho việc phát hiện locale:
Sao chép mã vào clipboard
import { Locales, type IntlayerConfig } from "intlayer";
const config: IntlayerConfig = {
internationalization: {
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
defaultLocale: Locales.ENGLISH,
},
routing: {
storage: [
{ type: "header", name: "my-locale-header" },
{ type: "cookie", name: "my-locale-cookie" },
],
},
};
export default config;
Để biết thêm thông tin về cấu hình, hãy truy cập tài liệu cấu hình.
