Magic Translate vs. react-intl
react-intl ist Teil von FormatJS. Es formatiert Nachrichten, Daten und Zahlen mit der Nachrichtensyntax ICU, und du lieferst die Übersetzungen für jede Sprache. Magic Translate übersetzt den Text in deinen Komponenten direkt, sodass du keine Übersetzungen schreibst oder verwaltest.
Auf einen Blick
| Magic Translate | react-intl | |
|---|---|---|
| Wie schreibst du Text | Deine eigenen Worte, verpackt in <T> | <FormattedMessage> mit einer ID und einer Standardnachricht |
| Übersetzungen | Maschinelle Übersetzung, automatisch erstellt | Du extrahierst Nachrichten und lässt sie übersetzen. |
| Nachrichtendateien | Keine | Eine Datei pro Sprache |
| Daten und Zahlen | Verwende die Intl-APIs des Browsers | Eingebaute Komponenten und ICU-Syntax |
| Server-Rendern | React-Serverkomponenten und Next.js | Ja, mit zusätzlichen Einstellungen |
| Preis | Kostenloses Abo, dann monatliche Tarife je nach Nutzung | Open Source und kostenlos |
Wie sich der Code unterscheidet
Mit react-intl hat jede Nachricht eine ID und die Übersetzungen befinden sich in separaten Dateien:
import { FormattedMessage } from 'react-intl';const Welcome = () => (<FormattedMessage id="home.welcome" defaultMessage="Welcome back!" />);// Then extract the messages, translate them for every language// and load the right file when the app starts.
Mit Magic Translate schreibst du die Nachricht einmal:
import { T } from '@magic-translate/react';const Welcome = () => <T>Welcome back!</T>;
Wann wähle ich Magic Translate
- Du willst deine App in vielen Sprachen ohne Übersetzungs-Workflow.
- Deine Texte ändern sich oft und du möchtest, dass jede Sprache auf dem neuesten Stand bleibt.
- Du willst neue Sprachen, ohne für Übersetzer zu bezahlen oder auf sie zu warten.
Wann wähle ich react-intl
- Du benötigst die Nachrichtensyntax ICU für komplexe Pluralformen und Geschlecht.
- Deine Übersetzungen müssen von Leuten geschrieben oder überprüft werden.
- Du möchtest eine kostenlose Open-Source-Bibliothek ohne externen Dienst.
Benutze beide
Die beiden passen gut zusammen. Verwende react-intl oder die Intl APIs, um Daten, Zahlen und Währungen zu formatieren, und Magic Translate, um den Text um sie herum zu übersetzen.
Bereit, es zu versuchen? Folge der Anleitung für die ersten Schritte, um deine erste Komponente in fünf Minuten zu übersetzen.