Magic Translate vs. Lingui
Lingui 是一个用于 JavaScript 和 React 的开源 i18n 库。就像 Magic Translate 一样,它允许你在组件中写自己的单词而不是按键。区别在于接下来会发生什么:使用 Lingui,你可以提取消息,进行翻译并针对每种语言进行编译。使用 Magic Translate,翻译是为你创建的。
一目了然
| Magic Translate | Lingui | |
|---|---|---|
| 你如何写文字 | 你自己的话,包裹在 <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。一次可以迁移一个组件。
准备好试试了吗?按照入门指南在五分钟内翻译您的第一个组件。