Интернационализация (I18n)

Плагины NocoBase поддерживают многоязычную интернационализацию (i18n) как для фронтенда, так и для бэкенда. Благодаря единому механизму вы можете легко реализовать многоязычный контент в плагинах.

Управление файлами локализации

Файлы локализации плагина хранятся в директории src/locale. Рекомендуется называть их по языку, например:

|- /plugin-hello
  |- /src
    |- /locale
      |- en-US.json   # Английский язык
      |- zh-CN.json   # Китайский язык

Каждый языковой файл экспортирует JSON-объект, содержащий все строки перевода для этого языка, например:

// 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}}"
}

При первом добавлении языковых файлов нужно перезапустить приложение, чтобы изменения вступили в силу. Проверить, что строки перевода применились, можно через API:
http://localhost:13000/api/app:getLang?locale=zh-CN

API, связанные с i18n

ctx.i18n

ctx.t(text, options)

plugin.t()

useT()

tExpr(text)

useTranslation(ns)

withTranslation(ns)