使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
通过将 Intlayer MCP 服务器集成到您的 AI 助手,您可以直接从 ChatGPT、DeepSeek、Cursor、VSCode 等获取所有文档。
查看 MCP 服务器文档此页面的内容已使用 AI 翻译。
查看英文原文的最新版本如果您有改善此文档的想法,请随时通过在GitHub上提交拉取请求来贡献。
文档的 GitHub 链接复制文档 Markdown 到剪贴板
在 CI/CD 流水线中自动生成翻译
Intlayer 允许自动生成内容声明文件的翻译。根据您的工作流程,有多种方式可以实现这一点。
使用 CMS
使用 Intlayer,您可以采用一种工作流程,只在本地声明单一语言环境,而所有翻译内容则通过 CMS 远程管理。这使内容和翻译完全脱离代码库,为内容编辑者提供更大的灵活性,并支持热内容重载(无需重建应用即可应用更改)。
示例配置
复制代码到剪贴板
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH], requiredLocales: [Locales.ENGLISH], // 可选语言环境将由远程管理 defaultLocale: Locales.ENGLISH, }, editor: { dictionaryPriorityStrategy: "distant_first", // 远程内容优先 applicationURL: process.env.APPLICATION_URL, // CMS 使用的应用程序 URL clientId: process.env.INTLAYER_CLIENT_ID, // CMS 凭证 clientSecret: process.env.INTLAYER_CLIENT_SECRET, }, ai: { applicationContext: "这是一个测试应用程序", // 有助于确保一致的翻译生成 },};export default config;
要了解有关 CMS 的更多信息,请参阅官方文档。
使用 Husky
您可以使用 Husky 将翻译生成集成到本地 Git 工作流中。
示例配置
复制代码到剪贴板
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH], requiredLocales: [Locales.ENGLISH], // 可选语言由远程处理 defaultLocale: Locales.ENGLISH, }, editor: { clientId: process.env.INTLAYER_CLIENT_ID, clientSecret: process.env.INTLAYER_CLIENT_SECRET, }, ai: { provider: "openai", apiKey: process.env.OPENAI_API_KEY, // 使用您自己的 API 密钥 applicationContext: "这是一个测试应用程序", // 有助于确保翻译生成的一致性 },};export default config;
复制代码到剪贴板
npx intlayer build # 确保词典是最新的npx intlayer fill --unpushed --mode fill # 仅填充缺失内容,不更新已有内容
有关 Intlayer CLI 命令及其用法的更多信息,请参阅 CLI 文档。
如果您的仓库中有多个应用使用独立的 intlayer 实例,可以使用 --base-dir 参数,如下所示:
复制代码到剪贴板
# 应用 1npx intlayer build --base-dir ./app1npx intlayer fill --base-dir ./app1 --unpushed --mode fill# 应用 2npx intlayer build --base-dir ./app2npx intlayer fill --base-dir ./app2 --unpushed --mode fill
使用 GitHub Actions
Intlayer 提供了一个 CLI 命令,用于自动填充和审查词典内容。您可以将其集成到使用 GitHub Actions 的 CI/CD 工作流中。
复制代码到剪贴板
name: Intlayer 自动填充# 触发此工作流的条件on: pull_request: branches: - "main"permissions: contents: write pull-requests: writeconcurrency: group: "autofill-${{ github.ref }}" cancel-in-progress: truejobs: autofill: runs-on: ubuntu-latest env: # OpenAI AI_MODEL: openai AI_PROVIDER: gpt-5-mini AI_API_KEY: ${{ secrets.AI_API_KEY }} steps: # 第一步:从仓库获取最新代码 - name: ⬇️ 签出仓库 uses: actions/checkout@v4 with: persist-credentials: true # 保留凭据以创建拉取请求 fetch-depth: 0 # 获取完整的 git 历史以进行差异分析 # 步骤 2:设置 Node.js 环境 - name: 🟢 设置 Node.js uses: actions/setup-node@v4 with: node-version: 20 # 使用 Node.js 20 LTS 以保证稳定性 # 步骤 3:安装项目依赖 - name: 📦 安装依赖 run: npm install # 步骤 4:全局安装 Intlayer CLI 以管理翻译 - name: 📦 安装 Intlayer run: npm install -g intlayer-cli # 步骤 5:构建 Intlayer 项目以生成翻译文件 - name: ⚙️ 构建 Intlayer 项目 run: npx intlayer build # 步骤 6:使用 AI 自动填充缺失的翻译 - name: 🤖 自动填充缺失的翻译 run: npx intlayer fill --git-diff --mode fill --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY # 第7步:检查是否有更改并提交 - name: � 检查更改 id: check-changes run: | if [ -n "$(git status --porcelain)" ]; then echo "has-changes=true" >> $GITHUB_OUTPUT else echo "has-changes=false" >> $GITHUB_OUTPUT fi # 第8步:如果存在更改,则提交并推送 - name: 📤 提交并推送更改 if: steps.check-changes.outputs.has-changes == 'true' run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git add . git commit -m "chore: 自动填充缺失的翻译 [skip ci]" git push origin HEAD:${{ github.head_ref }}
要设置环境变量,请前往 GitHub → 设置 → Secrets and variables → Actions 并添加密钥(API_KEY)。
与 Husky 相同,在单一仓库(monorepo)的情况下,可以使用 --base-dir 参数依次处理每个应用。
默认情况下,--git-diff 参数会筛选包含从基线(默认 origin/main)到当前分支(默认 HEAD)的更改的字典。
有关 Intlayer CLI 命令及其用法的更多信息,请参阅 CLI 文档。
文档历史
版本 | 日期 | 变更 |
---|---|---|
5.5.10 | 2025-06-29 | 初始化历史记录 |