Dictionary

useDict()

API-Referenz für den useDict-Hook

Übersicht

useDict() wird verwendet, um auf Zeichenkettenübersetzungen aus dem Übersetzungswörterbuch zuzugreifen. Es muss innerhalb einer Komponente verwendet werden, die von einem <GTProvider> umschlossen ist.

const d = useDict(); // Get the translation function
d('greeting.hello'); // pass the id to get a translation

useDict() verwendet ein Wörterbuch, um alle Inhalte für die Übersetzung zu speichern. Dies unterscheidet sich von der Verwendung der <T> Komponente für Übersetzungen. Wenn Sie nur <T> Komponenten für Übersetzungen verwenden möchten, ist dieses Dokument nicht relevant.

Referenz

Parameter

PropTypeDefault
id??
string
undefined

Beschreibung

PropBeschreibung
idEin optionales Präfix, das allen Übersetzungsschlüsseln vorangestellt wird. Dies ist nützlich, um mit verschachtelten Wörterbuchwerten zu arbeiten.

Rückgabewert

Eine Übersetzungsfunktion d(), die bei Angabe einer id die übersetzte Version des entsprechenden Eintrags zurückgibt

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

Beispiele

Grundlegende Verwendungen

Jeder Eintrag in deinem Wörterbuch wird übersetzt.

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

Wenn wir auf diese Einträge zugreifen möchten, rufen wir useDict() auf. Dies gibt eine Funktion zurück, die den Schlüssel einer Übersetzung aus dem Wörterbuch akzeptiert.

Du musst das Wörterbuch an die GTProvider Komponente übergeben.

TranslateGreeting.jsx
import { useDict } from 'gt-react';
import dictionary from "./dictionary.json"

export default async function TranslateGreeting() {
  const d = useDict(); 
  return (
    <GTProvider dictionary={dictionary}>
      <p>
        {d('greeting')} // [!code highlight]
      </p>
    </GTProvider>
  );
}

Verwendung von Variablen

Um Werte zu übergeben, musst du (1) einen Bezeichner zuweisen und (2) den Bezeichner beim Aufruf der d() Funktion referenzieren.

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

dictionary.jsx
const dictionary = {
  greeting: "Hello, {userName}!", 
};
export default dictionary;
TranslateGreeting.jsx
import { useDict } from 'gt-react';

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

  return (
    <p>
      {greetingAlice} // Hello, Alice // [!code highlight]
    </p>
  );
}

Verwendung von Präfixen

Wir können Präfixe verwenden, um nur einen Teil des Wörterbuchs zu übersetzen.

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

Da wir den Wert 'prefix1.prefix2' an den useDict Hook übergeben haben, sind alle Schlüssel mit prefix1.prefix2 vorangestellt:

UserDetails.jsx
import { useDict } from 'gt-react';

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

Hinweise

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

Nächste Schritte

Wie ist dieser Leitfaden?