Документация

Magic Translate vs. Lingui

Lingui — это библиотека i18n с открытым исходным кодом для JavaScript и React. Как и Magic Translate, она позволяет писать собственные слова в компонентах вместо ключей. Разница в том, что происходит дальше: с помощью Lingui вы извлекаете сообщения, переводите их и компилируете для всех языков. С помощью Magic Translate переводы создаются для вас.

С первого взгляда

Magic TranslateLingui
Как вы пишете текстВаши собственные слова, завернутые в <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. Можно переносить по одному компоненту за раз.

Готовы попробовать? Следуйте инструкциям по началу работы, чтобы перевести первый компонент за пять минут.