Dictionary Translations

useTranslations

API‑Referenz für den Hook useTranslations

Übersicht

useTranslations wird verwendet, um Zeichenketten aus dem translation dictionary abzurufen.

Es muss innerhalb einer Komponente verwendet werden, die von einem <GTProvider> umschlossen ist.

const d = useTranslations(); // Übersetzungsfunktion abrufen
d('greeting.hello'); // id übergeben, um die Übersetzung zu erhalten

Für asynchrone Komponenten siehe getTranslations.

getTranslations und useTranslations verwenden ein Wörterbuch, um sämtliche Inhalte für die Übersetzung zu speichern. Das unterscheidet sich von der Verwendung der <T>-Komponente für Übersetzungen. Wenn Sie ausschließlich <T>-Komponenten für Übersetzungen verwenden möchten, ist dieses Dokument nicht relevant.

Referenz

Parameter

Prop

Type

Beschreibung

PropBeschreibung
idEin optionales Präfix, das allen Übersetzungsschlüsseln vorangestellt wird. Das ist hilfreich beim Arbeiten mit verschachtelten Wörterbuchwerten.

Rückgabewert

Eine Übersetzungsfunktion d, die für eine angegebene id die übersetzte Version des entsprechenden Entry zurückgibt

(id: string, options?: DictionaryTranslationOptions) => React.ReactNode
NameTypeDescription
idstringDie id des zu übersetzenden Entry
options?DictionaryTranslationOptionsÜbersetzungsoptions zur Anpassung des Verhaltens von d.

Beispiele

Grundlegende Verwendung des Wörterbuchs

Jeder Entry in deinem Wörterbuch wird übersetzt.

dictionary.jsx
const dictionary = {
  greeting: "Hallo, Bob", 
};
export default dictionary;

Wenn wir clientseitig auf diese Einträge zugreifen möchten, rufen wir useTranslations auf. Das liefert eine Funktion, die den Schlüssel einer Übersetzung aus dem Wörterbuch entgegennimmt.

TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations(); 
  return (
    <p>
      {d('greeting')} // Hallo, Alice // [!code highlight]
    </p>
  );
}

Verwendung von Variablen

Um Werte zu übergeben, müssen Sie (1) einen Bezeichner vergeben und (2) diesen Bezeichner beim Aufruf der Funktion d referenzieren.

In diesem Beispiel verwenden wir {}, um Variablen an die Übersetzungen zu übergeben. Im Wörterbuch vergeben wir den Bezeichner {userName}.

dictionary.jsx
const dictionary = {
  greeting: "Hallo, {userName}!", 
};
export default dictionary;
src/server/TranslateGreeting.jsx
import { useTranslations } from 'gt-next';

export default async function TranslateGreeting() {
  const d = useTranslations();
  
  // Hallo, Alice!
  const greetingAlice = d('greeting', { userName: "Alice" }); 

  return (
    <p>
      {greetingAlice}
    </p>
  );
}

Präfixe verwenden

Wir können Präfixe nutzen, um nur eine Teilmenge des Wörterbuchs zu übersetzen.

dictionary.jsx
const dictionary = {
  prefix1: { 
    prefix2: { 
      greeting: "Hallo, Bob",
    }
  }
};
export default dictionary;

Da wir den Wert 'prefix1.prefix2' dem Hook useTranslations hinzugefügt haben, sind alle Schlüssel mit prefix1.prefix2 vorangestellt:

UserDetails.jsx
import { useTranslations } from 'gt-next';

export default function UserDetails() {
  const d = useTranslations('prefix1.prefix2'); 
  return (
    <div>
      <p>{d('greeting')}</p> // greeting => prefix1.prefix2.greeting // [!code highlight]
    </div>
  );
}

Hinweise

  • Die Funktion useTranslations ermöglicht den Zugriff auf Wörterbuchübersetzungen auf der Clientseite.
  • Der Hook useTranslations kann nur innerhalb einer Komponente verwendet werden, die von einer <GTProvider>-Komponente umschlossen ist.

Nächste Schritte

Wie ist dieser Leitfaden?

useTranslations