文档

Magic Translate vs. react-intl

react-intl 是 FormatJS 的一部分。它使用 ICU 消息语法格式化消息、日期和数字,并且您可以提供每种语言的翻译。Magic Translate 直接翻译组件中的文本,因此您无需编写或维护任何翻译。

一目了然

Magic Translatereact-intl
你如何写文字你自己的话,包裹在 <T> 中<FormattedMessage> 带有 ID 和默认消息
翻译机器翻译,自动创建您提取消息并进行翻译
消息文件无每种语言一个文件
日期和数字使用浏览器的 Intl API内置组件和 ICU 语法
服务器渲染React 服务器组件和 Next.js是的,需要额外的设置
价格免费套餐,然后根据使用量订阅月度套餐开源且免费

代码有何不同

使用 react-intl 时,每条消息都有一个 ID,并且翻译文件位于不同的文件中:

import { FormattedMessage } from 'react-intl';
const Welcome = () => (
<FormattedMessage id="home.welcome" defaultMessage="Welcome back!" />
);
// Then extract the messages, translate them for every language
// and load the right file when the app starts.

使用 Magic Translate,你只写一次消息:

import { T } from '@magic-translate/react';
const Welcome = () => <T>Welcome back!</T>;

何时选择 Magic Translate

  • 您希望您的应用程序支持多种语言,而无需翻译工作流程。
  • 你的文字经常变化,你希望每种语言都保持最新状态。
  • 您无需为翻译人员付费或等待翻译人员即可获得新语言。

何时选择 react-intl

  • 复杂的复数和性别需要 ICU 消息语法。
  • 您的翻译必须由他人撰写或审阅。
  • 你想要一个没有外部服务的免费开源库。

两者都使用

两者配合得很好。使用 react-intl 或 Intl API 格式化日期、数字和货币,使用 Magic Translate 翻译它们周围的文本。

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