语言环境与翻译
页面摘要: 通过更新
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。
翻译更改在管理面板重新构建后生效。如果更新未显示,请重新运行开发服务器或重新构建管理面板以刷新打包的翻译。