I18n

Plugin NocoBase hỗ trợ i18n cho cả phía client và phía server. Thông qua một cơ chế thống nhất, bạn có thể dễ dàng triển khai nội dung đa ngôn ngữ trong plugin.

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, khuyến nghị đặt tên theo ngôn ngữ, ví dụ:

|- /plugin-hello
  |- /src
    |- /locale
      |- en-US.json   # Ngôn ngữ tiếng Anh
      |- zh-CN.json   # Ngôn ngữ tiếng Trung

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

// zh-CN.json
{
  "Hello": "你好",
  "World": "世界",
  "Enter your name": "请输入你的名字",
  "Your name is {{name}}": "你的名字是 {{name}}"
}
// en-US.json
{
  "Hello": "Hello",
  "World": "World",
  "Enter your name": "Enter your name",
  "Your name is {{name}}": "Your name is {{name}}"
}

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 qua API: http://localhost:13000/api/app:getLang?locale=zh-CN

Các API liên quan đến i18n

ctx.i18n

ctx.t(text, options)

plugin.t()

useT()

tExpr(text)

useTranslation(ns)

withTranslation(ns)