Magic Translate vs. vue-i18n
vue-i18n 是 Vue 的标准 i18n 库,@nuxtjs/i18n 以此为基础构建 Nuxt。与大多数 i18n 库一样,它为每条消息使用一个密钥,每种语言使用一组消息。Magic Translate 直接翻译 Vue 模板中的文本,无需密钥或消息文件。
一目了然
| Magic Translate | vue-i18n | |
|---|---|---|
| 你如何写文字 | 你自己的话,包裹在 <T> 中 | 每条消息的密钥,例如 $t('cart.title') |
| 翻译 | AI 翻译,自动创建 | 你或你的翻译者写的 |
| 消息文件 | 无 | 每种语言一组消息 |
| 新语言 | 更改 language 设置 | 将每条消息翻译成新语言 |
| 切换语言 | 在运行时,使用 useLanguageSwitcher | 在运行时,通过更改语言环境 |
| 复数和格式 | 作为句子的一部分翻译 | 内置,具有复数规则以及日期和数字格式 |
| 价格 | 免费套餐,然后根据使用量订阅月度套餐 | 开源且免费 |
代码有何不同
使用 vue-i18n,您可以为每种语言定义消息并按键引用它们:
// i18n.tsimport { createI18n } from 'vue-i18n';export const i18n = createI18n({locale: 'de',messages: {en: { cart: { title: 'Your shopping cart' } },de: { cart: { title: 'Ihr Warenkorb' } }}});
<h2>{{ $t('cart.title') }}</h2>
使用 Magic Translate 时,文本将保留在模板中:
<h2><T>Your shopping cart</T></h2>
对于占位符等属性,请使用 useTranslate:
<input :placeholder="t('Search products')" />
何时选择 Magic Translate
- 你希望你的 Vue 应用程序支持多种语言,而不必管理每种语言的消息。
- 你没有译员,或者你想在不等待翻译的情况下发布更新。
- 您的文本经常更改,并且您希望每种语言都保持最新状态。
何时选择 vue-i18n
- 所有文本必须由一个人翻译或审阅。
- 你需要搜索引擎才能看到从 Nuxt 服务器渲染中翻译过来的 HTML。Magic Translate for Vue 在浏览器中进行翻译。
- 你想要一个没有外部服务的免费开源库。
从 vue-i18n 移至 Magic Translate
一次可以切换一个组件。将 $t('key') 替换为消息中的英文文本,用 <T> 包装,或使用 useTranslate 中的 t() 作为属性。迁移时,这两个库可以并行运行。Vue 指南显示了设置。
准备好试试了吗?按照入门指南在五分钟内翻译您的第一个组件。