文档

Magic Translate vs. Lingui

Lingui 是一个用于 JavaScript 和 React 的开源 i18n 库。就像 Magic Translate 一样,它允许你在组件中写自己的单词而不是按键。区别在于接下来会发生什么:使用 Lingui,你可以提取消息,进行翻译并针对每种语言进行编译。使用 Magic Translate,翻译是为你创建的。

一目了然

Magic TranslateLingui
你如何写文字你自己的话,包裹在 <T> 中你自己的话,包裹在 <Trans> 中
翻译AI 翻译,自动创建您提取消息并进行翻译
消息文件无每种语言一个目录,例如 PO 文件
生成步骤无提取并编译目录
新语言更改 language 设置将每条消息翻译成新语言
复数和格式作为句子的一部分翻译ICU 每种语言都有复数规则的消息
价格免费套餐,然后根据使用量订阅月度套餐开源且免费

代码有何不同

使用 Lingui 时,文本保留在组件中,但每条消息都经过一个目录:

import { Trans } from '@lingui/react/macro';
const Cart = () => (
<h2>
<Trans>Your shopping cart</Trans>
</h2>
);
// Then run `lingui extract`, translate the catalogs for every language,
// run `lingui compile` and load the right catalog when the app starts.

使用 Magic Translate 时,组件看起来很相似,翻译是自动生成的:

import { T } from '@magic-translate/react';
const Cart = () => (
<h2>
<T>Your shopping cart</T>
</h2>
);

何时选择 Magic Translate

  • 你喜欢在组件中写自己的文字,而且你不想维护目录。
  • 你没有译员,或者你想在不等待翻译的情况下发布更新。
  • 您想在不管理翻译项目的情况下添加语言。

何时选择 Lingui

  • 所有文本必须由一个人翻译或审阅。
  • 对于复杂的复数和性别,你需要 ICU 消息。
  • 你想要一个没有外部服务的免费开源库。

从 Lingui 移至 Magic Translate

由于两个库都将文本保留在组件中,因此迁移主要是替换翻译组件和函数:<Trans> 变成 <T>,t 宏变成 useT hook。一次可以迁移一个组件。

准备好试试了吗?按照入门指南在五分钟内翻译您的第一个组件。