Magic Translate vs. i18next
i18next, z powiązaniami React react-i18next, jest najpopularniejszą biblioteką open source i18n dla JavaScript. Jest zbudowany wokół kluczy tłumaczeniowych i plików językowych. Magic Translate tłumaczy tekst w komponentach bezpośrednio, bez kluczy i plików. Ta strona wyjaśnia różnicę, dzięki czemu możesz wybrać odpowiednie narzędzie dla swojej aplikacji.
Na pierwszy rzut oka
| Magic Translate | i18next | |
|---|---|---|
| Jak piszesz tekst | Twoje własne słowa, owinięte w <T> | Klucz na tekst, taki jak t('cart.title') |
| Tłumaczenia | Tłumaczenie maszynowe, tworzone automatycznie | Ty lub Twoi tłumacze piszesz je |
| Pliki językowe | Żaden | Jeden plik na język i przestrzeń nazw |
| Nowe języki | Zmień ustawienie language | Przetłumacz każdy klucz na nowy język |
| Renderowanie serwera | Komponenty serwera React i Next.js | Tak, z dodatkową konfiguracją |
| Wielorakie i formatowanie | Przetłumaczone jako część zdania | Wbudowany, z regułami mnogiej na język |
| Cena | Bezpłatny plan, następnie plany miesięczne oparte na użyciu | Otwarte źródło i za darmo |
Czym różni się kod
Z react-i18next przechowujesz plik językowy dla każdego języka i odwołujesz się do tekstów według klucza:
// locales/en/translation.json{ "cart": { "title": "Your shopping cart" } }// Cart.tsximport { useTranslation } from 'react-i18next';const Cart = () => {const { t } = useTranslation();return <h2>{t('cart.title')}</h2>;};
W przypadku Magic Translate tekst pozostaje w komponencie:
import { T } from '@magic-translate/react';const Cart = () => (<h2><T>Your shopping cart</T></h2>);
Kiedy wybrać Magic Translate
- Chcesz, aby Twoja aplikacja była w wielu językach bez zarządzania plikami językowymi.
- Nie masz tłumaczy lub nie chcesz czekać na nich przed wydaniem nowej wersji.
- Twoje teksty często się zmieniają, i chcesz, aby każdy język był na bieżąco.
- Używasz komponentów React Server lub Next.js i chcesz w pełni przetłumaczyć HTML dla wyszukiwarek.
Kiedy wybrać i18next
- Każdy tekst musi być przetłumaczony lub sprawdzony przez osobę.
- Potrzebujesz dokładnej kontroli nad wieloma formami, datami i liczbami w każdym języku.
- Potrzebujesz bezpłatnej biblioteki typu open source bez zewnętrznej usługi.
Przejście z i18next do Magic Translate
Możesz przełączać jeden komponent na raz. Zastąp t('key') tekstem w języku angielskim z pliku języka, zapakowanym w <T> lub użyj useT hook dla props i atrybutów. Obie biblioteki mogą działać obok siebie podczas migracji.
Gotowy do wypróbowania? Postępuj zgodnie z instrukcjami dotyczącymi rozpoczę cia pracy, aby przetłumaczyć pierwszy komponent w pięć minut.