tyndale
$ cat hero.tsx

只用一种语言编写应用。

获得所有语言版本。

面向 React 与 Next.js 的 AI 驱动 i18n(国际化)。无需 key 文件。无需手动翻译。

i18n 所需,一应俱全

从提取到部署,Tyndale 处理整个翻译工作流。

零 key 工作流

无需维护 key 文件,即可翻译 JSX 和字符串。

Welcome.tsx
import { T, useTranslation } from 'tyndale-react';

export function Welcome() {
  const t = useTranslation();
  return (
    <div>
      <T>Welcome to our app!</T>
      <p>{t('You have 3 new messages')}</p>
    </div>
  );
}

AI 驱动

使用你自己的 AI 提供商,获得高质量翻译。

增量翻译

只翻译自上次运行以来发生变化的内容。

unchanged line
- old translation
+ new translation

丰富内容支持

变量、复数、数字、货币和日期。

{count, plural, one{# item} other{# items}}

Next.js 原生级支持

中间件、providers、RTL、静态生成。

  • Middleware
  • Server Components
  • Static Generation

CI 友好

tyndale validate 可在不写入文件的情况下检查翻译。

$ npx tyndale validate
es.json 42/42 keys
fr.json 42/42 keys
All translations valid

3 步走向全球

编写组件。运行 CLI。发布多语言版本。

1 编写组件
import { T } from 'tyndale-react';

<T>Welcome!</T>
2 运行 CLI
$ npx tyndale translate
  Translating to es, fr, de...
  Done.
3 查看结果
// es.json
{
  "Welcome!":
    "Bienvenido!"
}

准备好走向全球了吗?

今天就开始为 React 应用做翻译。开源,永久免费。