Magic Translate vs. vue-i18n
vue-i18n — это стандартная библиотека i18n для Vue, а @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
- Весь текст должен быть переведен или рецензирован человеком.
- Вам нужно, чтобы поисковые системы видели переведенный HTML-код из рендеринга сервера Nuxt. Magic Translate для Vue переводится в браузере.
- Вам нужна бесплатная библиотека с открытым исходным кодом без внешних сервисов.
Переход с vue-i18n на Magic Translate
Можно переключать по одному компоненту за раз. Замените $t('key') английским текстом из сообщений, завернутым в <T>, или используйте t() из useTranslate в качестве атрибутов. Во время миграции обе библиотеки могут работать бок о бок. В руководстве Vue показана настройка.
Готовы попробовать? Следуйте инструкциям по началу работы, чтобы перевести первый компонент за пять минут.