语言环境与翻译

页面摘要: 通过更新 config.locales 数组来配置管理面板的语言,并使用 config.translations 或自定义翻译文件覆盖默认或插件的字符串。

Strapi 的管理面板默认提供英文字符串,并支持添加其他语言环境(locales),以便你的编辑团队可以使用其偏好的语言工作。语言环境决定了界面中会出现哪些语言,而翻译则为语言环境中的每个键提供显示的文本。

本指南面向从应用代码库自定义管理体验的项目维护者。所有示例都会修改由 /src/admin/app 文件导出的配置,Strapi 在构建管理面板时会加载该文件。你将了解如何声明额外的语言环境,以及当某个语言环境缺少字符串时如何扩展 Strapi 或插件的翻译。

定义语言环境

要更新管理面板中可用的语言环境列表,请在 src/admin/app 文件中设置 config.locales 数组:

JavaScript

export default {
  config: {
    locales: ["ru", "zh"],
  },
  bootstrap() {},
};

TypeScript

export default {
  config: {
    locales: ["ru", "zh"],
  },
  bootstrap() {},
};
说明
  • en 语言环境无法从构建中移除,因为它既是回退语言环境(即如果某个语言环境中找不到翻译,将使用 en),也是默认语言环境(即用户首次打开管理面板时使用)。
  • 完整的可用语言环境列表可在 Strapi 的 Github 仓库 中查看。

扩展翻译

翻译的键/值对在 @strapi/admin/admin/src/translations/[language-name].json 文件中声明。

这些键可以通过 src/admin/app 文件中的 config.translations 键进行扩展:

JavaScript

export default {
  config: {
    locales: ["fr"],
    translations: {
      fr: {
        "Auth.form.email.label": "test",
        Users: "Utilisateurs",
        City: "CITY (FRENCH)",
        // Customize the label of the Content Manager table.
        Id: "ID french",
      },
    },
  },
  bootstrap() {},
};

TypeScript

export default {
  config: {
    locales: ["fr"],
    translations: {
      fr: {
        "Auth.form.email.label": "test",
        Users: "Utilisateurs",
        City: "CITY (FRENCH)",
        // Customize the label of the Content Manager table.
        Id: "ID french",
      },
    },
  },
  bootstrap() {},
};

插件的键/值对在其文件 /admin/src/translations/[language-name].json 中独立声明。这些键/值对同样可以在 config.translations 键中扩展,方法是在键前加上插件名称(即 [plugin name].[key]: 'value'),如以下示例所示:

JavaScript

export default {
  config: {
    locales: ["fr"],
    translations: {
      fr: {
        "Auth.form.email.label": "test",
        // Translate a plugin's key/value pair by adding the plugin's name as a prefix
        // In this case, we translate the "plugin.name" key of plugin "content-type-builder"
        "content-type-builder.plugin.name": "Constructeur de Type-Contenu",
      },
    },
  },
  bootstrap() {},
};

TypeScript

export default {
  config: {
    locales: ["fr"],
    translations: {
      fr: {
        "Auth.form.email.label": "test",
        // Translate a plugin's key/value pair by adding the plugin's name as a prefix
        // In this case, we translate the "plugin.name" key of plugin "content-type-builder"
        "content-type-builder.plugin.name": "Constructeur de Type-Contenu",
      },
    },
  },
  bootstrap() {},
};

如果你需要附带额外的翻译 JSON 文件——例如为了组织大型覆盖,或支持 Strapi 未内置的语言环境——请将它们放在 /src/admin/extensions/translations 文件夹中,并确保该语言环境代码已列入 config.locales。

重新构建管理面板

翻译更改在管理面板重新构建后生效。如果更新未显示,请重新运行开发服务器或重新构建管理面板以刷新打包的翻译。