i18n
Plugin NocoBase hỗ trợ i18n cho cả phía client và phía server. Bạn có thể triển khai nội dung đa ngôn ngữ trong plugin thông qua một cơ chế thống nhất.
Quản lý file đa ngôn ngữ
File đa ngôn ngữ của plugin được đặt thống nhất trong thư mục src/locale, được đặt tên theo ngôn ngữ, ví dụ:
Mỗi file ngôn ngữ export một object JSON chứa toàn bộ các mục dịch của ngôn ngữ đó, ví dụ:
Khi thêm file ngôn ngữ lần đầu, bạn cần khởi động lại ứng dụng để có hiệu lực. Bạn có thể kiểm tra các mục dịch đã có hiệu lực hay chưa thông qua API: http://localhost:13000/api/app:getLang?locale=zh-CN
Instance i18n toàn cục
app.i18n là instance i18n toàn cục, phù hợp cho CLI hoặc các tình huống toàn cục của plugin. Bạn có thể kết hợp với inquirer để triển khai tương tác dòng lệnh:
app.i18n.t(text, options)được dùng để dịch văn bản, hỗ trợ biến template.
i18n theo Context của request
Mỗi request có ctx.i18n là một instance clone của i18n toàn cục, phản hồi thông tin đa ngôn ngữ độc lập theo ngôn ngữ của client.
Đặt ngôn ngữ phía client
- Query String:
- Request Header (khuyến nghị):
Sử dụng trong middleware
Truy cập http://localhost:13000/api/test-i18n?locale=zh-CN sẽ trả về 你好.
i18n nội bộ của plugin
Trong plugin, bạn có thể dùng trực tiếp plugin.t(key, options) để lấy bản dịch:
plugin.t(text)tương đương vớictx.t(text, { ns })
Liên kết liên quan
- i18n phía client — Cách viết file dịch phía client, cách dùng useT, tExpr
- Danh sách ngôn ngữ — Danh sách đầy đủ mã ngôn ngữ NocoBase hỗ trợ

