Übersicht

Übersicht über das React‑SDK von General Translation

Einführung

Das General Translation React SDK ist eine Open-Source‑Internationalisierungsbibliothek (i18n) für React‑Anwendungen.

Es bietet einen umfassenden Satz an Tools, um Ihre React‑Anwendung einfach und wartbar zu internationalisieren – mit Funktionsparität zu anderen beliebten i18n‑Bibliotheken.

Das SDK kann eigenständig, ohne die General Translation‑Plattform, verwendet werden und verhält sich ähnlich wie andere i18n‑Bibliotheken.

Es integriert sich jedoch auch in unsere Plattform und bietet erweiterte Funktionen:

  • Hot Reloading von Übersetzungen in der Entwicklungsumgebung
  • Automatische KI‑Übersetzungen
  • Synchronisierung von Übersetzungen mit der General Translation‑Plattform
  • Native Integration mit unserem Translation‑CDN (Content Delivery Network)

Konzepte

Es gibt 5 zentrale Konzepte, die du beim SDK verstehen solltest.

Die Komponente <GTProvider>

Die Komponente <T>

Der Hook useGT

Die Funktion msg für gemeinsam genutzte Strings

(Optional) Der Hook useTranslations

Die <GTProvider>-Komponente

Die <GTProvider>-Komponente stellt Ihrer Anwendung den Übersetzungskontext bereit, einschließlich der aktuellen Sprache und der zugehörigen Übersetzungen.

import { GTProvider } from 'gt-react';

function App() {
  return (
    <GTProvider>
      <div>
        {/* Ihr Anwendungsinhalt */}
      </div>
    </GTProvider>
  );
}

Wichtig: Der Provider sollte Ihre gesamte Anwendung umschließen und so weit oben wie möglich im Komponentenbaum platziert werden, zum Beispiel in Ihrer Root-App-Komponente.

Weitere Informationen finden Sie in der API-Referenz zu GTProvider.

Die <T>-Komponente

Die <T>-Komponente ist die empfohlene Methode, um Inhalte in Ihrer Anwendung zu übersetzen.

Sie ist eine React-Komponente, die beliebige JSX-Elemente umschließen kann und den Inhalt des Elements automatisch in einer unterstützten Sprache rendert.

Wir empfehlen, die <T>-Komponente nach Möglichkeit zu verwenden, da sie die größte Flexibilität bei Übersetzungen bietet.

Im Gegensatz zu Strings kann die <T>-Komponente auch HTML-Inhalte übersetzen und ist damit deutlich leistungsfähiger als String-Übersetzungen.

Beispiele

<T>
  <div>Hallo, Welt!</div>
</T>
<T>
  <div>
    <h1> Hier ist ein Bild </h1>
    <img src="https://example.com/image.png" alt="Beispiel" />
  </div>
</T>
<T>
  Die Formatierung lässt sich einfach mit der `<T>`-Komponente durchführen.
  <Num>{1000}</Num>
  <DateTime>{new Date()}</DateTime>
  <Currency currency="USD">{1000}</Currency>
</T>

Die <T>-Komponente arbeitet mit Variablenkomponenten wie <Num>, <DateTime> und <Currency> zusammen, um dynamische Inhalte zu formatieren.

Siehe den Leitfaden zur Komponente <T>, um mehr über die verschiedenen Verwendungsmöglichkeiten der <T>-Komponente zu erfahren.

Der useGT-Hook

Der useGT-Hook ist ein React-Hook, der ähnlich wie die <T>-Komponente verwendet werden kann – mit einigen Abstrichen.

Der Hook gibt eine Funktion zurück, mit der sich Strings übersetzen lassen.

const t = useGT();

t('Hallo, Welt!');

Im Vergleich zur <T>-Komponente bietet der useGT-Hook mehr Flexibilität in Ihrem Code.

Wenn Sie beispielsweise eine komplexe Datenstruktur mit verschachtelten Zeichenketten haben, wäre eine <T>-Komponente schwieriger zu verwenden.

const t = useGT();
const data = {
  title: t('Hallo, Welt!'),
  description: t('Dies ist eine Beschreibung'),
};

Siehe den Leitfaden zu strings, um mehr über den useGT Hook zu erfahren.

Die Funktion msg

Die Funktion msg wird verwendet, um Zeichenfolgen zur Übersetzung zu markieren, die in mehreren Komponenten genutzt oder in Konfigurationsobjekten gespeichert werden.

Das ist besonders nützlich für gemeinsam verwendete Inhalte wie Navigationsbezeichnungen, Formularmeldungen oder beliebigen Text, der an mehreren Stellen in Ihrer Anwendung erscheint.

// Strings für Übersetzung markieren
import { msg } from 'gt-react';

const navItems = [
  { label: msg('Startseite'), href: '/' },
  { label: msg('Über uns'), href: '/about' },
  { label: msg('Kontakt'), href: '/contact' }
];
// Markierte Strings dekodieren und verwenden
import { useMessages } from 'gt-react';

function Navigation() {
  const m = useMessages();
  
  return (
    <nav>
      {navItems.map(item => (
        <a key={item.href} href={item.href}>
          {m(item.label)}
        </a>
      ))}
    </nav>
  );
}

Die Funktion msg versieht Strings mit Übersetzungsmetadaten, und useMessages wertet sie aus.

Verwenden Sie msg für geteilte Inhalte, die in Ihrer Anwendung konsistent übersetzt werden sollen. Für komponentenspezifische Inhalte verwenden Sie bevorzugt <T> oder useGT.

Weitere Informationen zur Funktion msg finden Sie im Leitfaden zu Shared Strings.

Der useTranslations-Hook

Der useTranslations-Hook ist ein React-Hook, der eine Funktion zurückgibt, mit der Sie Übersetzungen zu einem bestimmten Schlüssel abrufen können.

dictionary.ts
const dictionary = {
  hello: {
    world: 'Hallo, Welt!',
  },
};
App.tsx
const translate = useTranslations();
translate('hello.world');

Dieses Verhalten ähnelt anderen Übersetzungsbibliotheken wie react-i18next und next-intl.

Wir raten davon ab, den useTranslations-Hook in Ihrer Anwendung zu verwenden. Die häufige Nutzung des useTranslations-Hooks erschwert die Wartung Ihres Codes und führt zu erheblicher technischer Schuld.

Verwenden Sie stattdessen die <T>-Komponente oder den useGT-Hook.

Wenn Sie von einer anderen i18n-Bibliothek migrieren, ist der useTranslations-Hook ein Drop-in-Ersatz und kann für die schrittweise Migration Ihres Codes hilfreich sein.

Weitere Informationen zum useTranslations-Hook finden Sie im Leitfaden dictionaries.

Weitere Details finden Sie in der useTranslations API Reference.


Nächste Schritte

Wie ist diese Anleitung?