SuperAPI AI 工具集

ampel-i18n

编程与开发

查看项目

更新于 10-16 07:47

技能介绍

ampel-i18n 是一个用于自动化应用国际化和本地化的命令行工具,底层依赖 ampel-i18n-builder。它面向需要将应用翻译成多种语言的开发场景,覆盖从字符串提取、代码重构、翻译生成到类型定义输出的完整流程。

用途

ampel-i18n 主要用于以下任务:从源代码中提取可翻译字符串;将硬编码字符串自动重构为 i18n 调用;为配置的语言生成或更新翻译;查看各语言的翻译完成百分比;列出所有未翻译的键;生成综合翻译状态报告;以及从翻译文件生成 TypeScript 或 Rust 类型。

主要能力

工具提供以下命令:

  • ampel-i18n init:面向首次用户的交互式设置向导。
  • ampel-i18n doctor:健康检查,验证配置并诊断问题。
  • ampel-i18n extract:从源代码中提取可翻译字符串。
  • ampel-i18n refactor:自动将硬编码字符串替换为 i18n 调用。
  • ampel-i18n sync:为所有配置的语言生成或更新翻译。
  • ampel-i18n coverage:显示每种语言的翻译完成百分比。
  • ampel-i18n missing:列出所有未翻译的键。
  • ampel-i18n report:生成综合翻译状态报告。
  • ampel-i18n generate-types:从翻译文件创建 TypeScript 或 Rust 类型。

翻译提供方采用四级回退系统,可配置 Systran(企业级神经机器翻译)、DeepL(高质量欧盟语言)、Google Translate(广泛覆盖)和 OpenAI(复杂内容回退)。只需配置一个提供方,系统会按需逐级回退。

支持 27 种语言:21 个简单代码(en、fr、de、it、ru、ja、ko、ar、he、hi、nl、pl、sr、th、tr、sv、da、fi、vi、no、cs)和 6 个区域变体(en-GB、pt-BR、zh-CN、zh-TW、es-ES、es-MX)。阿拉伯语(ar)和希伯来语(he)的 RTL 支持会自动处理。

使用方式

使用前需确认工具已安装,可运行 ampel-i18n --version 或 ampel-i18n --version 检查。若未安装,需先安装 Rust/Cargo,再运行 cargo install ampel-i18n-builder,最后验证版本。工具未安装时不应继续执行后续命令。

对于新项目,推荐自动化工作流:

# 1. 初始化配置
ampel-i18n init

# 2. 从代码中提取可翻译字符串
ampel-i18n extract \
  --source frontend/src \
  --patterns "*.tsx" "*.ts" \
  --format json \
  --output frontend/public/locales/en/extracted.json \
  --merge

# 3. 重构代码以使用 i18n 调用
ampel-i18n refactor \
  --target frontend/src \
  --mapping frontend/public/locales/en/extracted.json \
  --namespace common

# 4. 翻译到所有语言
ampel-i18n sync

也可手动设置:识别所用 i18n 框架(如 i18next、react-intl、rust-i18n 等),定位或创建翻译文件结构,创建 .ampel-i18n.yaml 配置,在 .env 中设置提供方凭据,然后运行 ampel-i18n sync 生成翻译。

对于已有项目:运行 ampel-i18n doctor 验证设置,运行 ampel-i18n coverage 评估当前状态,运行 ampel-i18n missing 找出缺口,运行 ampel-i18n sync 填补缺失翻译。

同步翻译后,可生成类型定义以实现编译时安全:

# TypeScript
ampel-i18n generate-types --lang typescript --output src/types/i18n.d.ts

# Rust
ampel-i18n generate-types --lang rust --output src/i18n_types.rs

适用场景

适用于 React/i18next、Rust/rust-i18n、Vue/vue-i18n 等项目的国际化与本地化。配置示例包括:React/i18next 项目可设置 source_locale: en、locales_dir: src/locales、file_format: json、namespaces: [common, auth, dashboard];Rust 项目可设置 source_locale: en、locales_dir: locales、file_format: yaml、namespaces: [errors, validation, providers];Vue 项目可设置 source_locale: en、locales_dir: src/i18n/locales、file_format: json。

限制

使用前必须安装 ampel-i18n-builder,否则不应执行任何命令。翻译提供方至少需配置一个,凭据放在 .env 文件中。工具未安装时需先安装 Rust/Cargo。关于具体收费、价格、平台支持范围、翻译效果等细节,资料中暂未提供。