mcpField
G
generate-translations

generate-translations

github.com/payloadcms开发45.6k572 次安装今天更新
代码仓库

关于 generate-translations

用于在 Payload 核心包和插件中生成翻译的指南技能。它说明英文源文本与客户端键的存放位置、生成脚本的使用方式,以及如何为插件搭建翻译结构。

主要功能

  1. 01核心翻译流程
  2. 02插件翻译流程
  3. 03英文源文本与客户端键
  4. 04插件翻译结构搭建
  5. 05生成脚本配置

适用场景

  1. 01添加核心界面翻译
  2. 02生成插件语言文件
  3. 03为新插件配置翻译

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/payloadcms/payload --skill generate-translations

安装后在 Claude Code 中输入/generate-translations确认已加载。

详细介绍

翻译生成指南

Payload 有两套独立的翻译系统:

  1. 核心翻译 - 用于核心 Payload 包(packages/ui、packages/payload、packages/next)
  2. 插件翻译 - 用于插件(packages/plugin-*)

目录


1. 核心翻译

使用场景: 为核心 Payload 包(packages/ui、packages/payload、packages/next)添加翻译

步骤:
  1. 添加英文翻译 到 packages/translations/src/languages/en.ts

    • 将新的键/值添加到相应部分(例如 authentication、general、fields 等)
    • 使用嵌套对象进行组织
    • 示例:
      export const enTranslations = {
        authentication: {
          // ... existing keys
          newFeature: 'New Feature Text',
        },
      }
      
  2. 添加客户端键(如果客户端侧使用需要)到 packages/translations/src/clientKeys.ts

    • 使用冒号表示法添加翻译键路径
    • 示例:'authentication:newFeature'
    • 客户端键用于需要在浏览器中可用的翻译
  3. 为所有语言生成翻译

    • 切换目录:cd tools/scripts
    • 运行:pnpm generateTranslations:core
    • 这会将新的英文键自动翻译为所有其他支持的语言

2. 插件翻译

使用场景: 为任意插件包(packages/plugin-*)添加翻译

步骤:
  1. 确认插件有 translations 文件夹

    • 检查 packages/plugin-{name}/src/translations 是否存在
    • 如果不存在,请参阅下方「搭建新插件翻译」
  2. 添加英文翻译 到插件的 packages/plugin-{name}/src/translations/languages/en.ts

    • 插件翻译命名空间位于插件名称下
    • plugin-multi-tenant 的示例:
      export const enTranslations = {
        'plugin-multi-tenant': {
          'new-feature-label': 'New Feature',
        },
      }
      
  3. 为所有语言生成翻译

    • 切换目录:cd tools/scripts
    • 运行插件专用脚本:pnpm generateTranslations:plugin-{name}
    • 示例:
      • pnpm generateTranslations:plugin-multi-tenant
      • pnpm generateTranslations:plugin-ecommerce
      • pnpm generateTranslations:plugin-import-export
搭建新插件翻译

如果插件还没有 translations 文件夹,询问用户是否想要搭建一个。

要创建的结构:
packages/plugin-{name}/src/translations/
├── index.ts
├── types.ts
└── languages/
    ├── en.ts
    ├── es.ts
    └── ... (all other language files)
要创建的文件:
  1. types.ts - 定义插件的翻译类型
  2. index.ts - 导出所有翻译并重新导出类型
  3. languages/en.ts - 英文翻译(生成用的源文件)
  4. languages/*.ts - 其他语言文件(初始为空,将被生成)
要创建的生成脚本:
  1. 创建 tools/scripts/src/generateTranslations/plugin-{name}.ts

    • 使用 plugin-multi-tenant.ts 作为模板
    • 更新导入路径以指向新插件
    • 更新 targetFolder 路径
  2. 添加脚本到 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