关于 generate-translations
用于在 Payload 核心包和插件中生成翻译的指南技能。它说明英文源文本与客户端键的存放位置、生成脚本的使用方式,以及如何为插件搭建翻译结构。
主要功能
- 01核心翻译流程
- 02插件翻译流程
- 03英文源文本与客户端键
- 04插件翻译结构搭建
- 05生成脚本配置
适用场景
- 01添加核心界面翻译
- 02生成插件语言文件
- 03为新插件配置翻译
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ payloadcms/ payload --skill generate-translations安装后在 Claude Code 中输入/generate-translations确认已加载。
详细介绍
翻译生成指南
Payload 有两套独立的翻译系统:
- 核心翻译 - 用于核心 Payload 包(packages/ui、packages/payload、packages/next)
- 插件翻译 - 用于插件(packages/plugin-*)
目录
1. 核心翻译
使用场景: 为核心 Payload 包(packages/ui、packages/payload、packages/next)添加翻译
步骤:
-
添加英文翻译 到
packages/translations/src/languages/en.ts- 将新的键/值添加到相应部分(例如
authentication、general、fields等) - 使用嵌套对象进行组织
- 示例:
export const enTranslations = { authentication: { // ... existing keys newFeature: 'New Feature Text', }, }
- 将新的键/值添加到相应部分(例如
-
添加客户端键(如果客户端侧使用需要)到
packages/translations/src/clientKeys.ts- 使用冒号表示法添加翻译键路径
- 示例:
'authentication:newFeature' - 客户端键用于需要在浏览器中可用的翻译
-
为所有语言生成翻译
- 切换目录:
cd tools/scripts - 运行:
pnpm generateTranslations:core - 这会将新的英文键自动翻译为所有其他支持的语言
- 切换目录:
2. 插件翻译
使用场景: 为任意插件包(packages/plugin-*)添加翻译
步骤:
-
确认插件有 translations 文件夹
- 检查
packages/plugin-{name}/src/translations是否存在 - 如果不存在,请参阅下方「搭建新插件翻译」
- 检查
-
添加英文翻译 到插件的
packages/plugin-{name}/src/translations/languages/en.ts- 插件翻译命名空间位于插件名称下
- plugin-multi-tenant 的示例:
export const enTranslations = { 'plugin-multi-tenant': { 'new-feature-label': 'New Feature', }, }
-
为所有语言生成翻译
- 切换目录:
cd tools/scripts - 运行插件专用脚本:
pnpm generateTranslations:plugin-{name} - 示例:
pnpm generateTranslations:plugin-multi-tenantpnpm generateTranslations:plugin-ecommercepnpm generateTranslations:plugin-import-export
- 切换目录:
搭建新插件翻译
如果插件还没有 translations 文件夹,询问用户是否想要搭建一个。
要创建的结构:
packages/plugin-{name}/src/translations/
├── index.ts
├── types.ts
└── languages/
├── en.ts
├── es.ts
└── ... (all other language files)
要创建的文件:
- types.ts - 定义插件的翻译类型
- index.ts - 导出所有翻译并重新导出类型
- languages/en.ts - 英文翻译(生成用的源文件)
- languages/*.ts - 其他语言文件(初始为空,将被生成)
要创建的生成脚本:
-
创建
tools/scripts/src/generateTranslations/plugin-{name}.ts- 使用
plugin-multi-tenant.ts作为模板 - 更新导入路径以指向新插件
- 更新 targetFolder 路径
- 使用
-
添加脚本到
tools/scripts/package.json:"generateTranslations:plugin-{name}": "node --no-deprecation --import @swc-node/register/esm-register src/generateTranslations/plugin-{name}.ts"
重要说明
- 所有翻译生成都需要设置
OPENAI_KEY环境变量 - 生成脚本使用 OpenAI 将英文翻译为其他语言
- 始终先添加英文翻译 - 它是唯一可信来源
- 核心翻译:仅浏览器/管理 UI 中使用的翻译才需要客户端键
- 插件翻译:自动命名空间位于插件名称下,以避免冲突
评论
支持 Markdown