文档

Magic Translate vs. i18next

i18next 带有 React 绑定 react-i18next,是 JavaScript 中最受欢迎的开源 i18n 库。它围绕翻译密钥和语言文件构建。Magic Translate 直接翻译组件中的文本,无需密钥或文件。此页面解释了区别,因此您可以为应用程序选择正确的工具。

一目了然

Magic Translatei18next
你如何写文字你自己的话,包裹在 <T> 中每个文本的密钥,例如 t('cart.title')
翻译机器翻译,自动创建你或你的翻译者写的
语言文件无每种语言和命名空间一个文件
新语言更改 language 设置将所有密钥翻译成新语言
服务器渲染React 服务器组件和 Next.js是的,需要额外的设置
复数和格式作为句子的一部分翻译内置,每种语言都有复数规则
价格免费套餐,然后根据使用量订阅月度套餐开源且免费

代码有何不同

使用 react-i18next,您可以为每种语言保留一个语言文件并按键引用文本:

// locales/en/translation.json
{ "cart": { "title": "Your shopping cart" } }
// Cart.tsx
import { useTranslation } from 'react-i18next';
const Cart = () => {
const { t } = useTranslation();
return <h2>{t('cart.title')}</h2>;
};

使用 Magic Translate 时,文本将保留在组件中:

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

何时选择 Magic Translate

  • 您希望您的应用程序支持多种语言,而无需管理语言文件。
  • 你没有翻译人员,或者你不想等他们再发布新版本。
  • 你的文字经常变化,你希望每种语言都保持最新状态。
  • 你使用 React Server Components 或 Next.js,想要为搜索引擎提供经过全面翻译的 HTML。

何时选择 i18next

  • 每篇文章都必须由一个人翻译或审阅。
  • 你需要精确控制每种语言的复数形式、日期和数字。
  • 你想要一个没有外部服务的免费开源库。

从 i18next 移至 Magic Translate

一次可以切换一个组件。将 t('key') 替换为语言文件中的英文文本,用 <T> 包装,或者使用 useT hook 表示 props 和属性。迁移时,这两个库可以并行运行。

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