Wörterbücher Referenz
Ein Überblick über das Wörterbuchmuster
Überblick
In diesem Referenzleitfaden stellen wir Ihnen das Dictionary-Muster vor. Bitte zögern Sie nicht, auf dieser Seite nach Bedarf zu navigieren. Wir werden Folgendes behandeln:
- Was ist ein Dictionary?
- Wie man Dictionaries verwendet
- Laden von Dictionaries für andere Sprachen
- Verwendung von Dictionaries
- Überlegungen für den Produktionseinsatz
Was ist ein Wörterbuch?
General Translation ermöglicht es, übersetzbare Inhalte in einer Wörterbuchdatei zu speichern.
Ein Wörterbuch ist ein verschachteltes Objekt mit String-Werten, das zur Speicherung übersetzbarer Inhalte verwendet werden kann.
Diese Wörterbuchdatei (.ts
, .js
oder .json
) wird dann zur Generierung einer Übersetzung verwendet.
Wörterbücher können eigenständig oder in Verbindung mit <T>
-Komponenten verwendet werden.
Wörterbuch vs. <T>
-Komponenten
Das Wörterbuchmuster hat einige Vorteile gegenüber der <T>
-Komponente:
- Zentralisierte Speicherung: Wörterbücher speichern alle übersetzbaren Inhalte in einer einzigen Datei, was die Verwaltung und Aktualisierung erleichtert.
- Historischer Präzedenzfall: Das Wörterbuchmuster ist ein gängiges Entwurfsmuster in der Branche und wird von vielen anderen Bibliotheken verwendet.
Gleichzeitig hat es auch einige Nachteile:
- Komplexität: Wörterbücher sind komplexer einzurichten und zu verwenden als die
<T>
-Komponente. - Lesbarkeit: Wörterbücher sind weniger lesbar als die
<T>
-Komponente, da der Inhalt nicht inline ist. - Wartbarkeit: Wörterbücher sind schwieriger zu warten als die
<T>
-Komponente, da der Inhalt nicht inline ist, sondern separat gespeichert wird. Dies macht das Debuggen und die Wartung von Übersetzungen viel schwieriger.
Beide Entwurfsmuster werden von unserer Bibliothek unterstützt und schließen sich nicht gegenseitig aus.
Sie können ein Wörterbuch zusammen mit <T>
-Komponenten verwenden.
Unser Rat
Wir empfehlen die Verwendung der <T>
-Komponente aufgrund ihrer Einfachheit, besonders wenn Sie neu im Bereich der Internationalisierung (i18n) sind.
Wir bieten Wörterbuchunterstützung für diejenigen an, die dieses Entwurfsmuster aus früheren Erfahrungen bevorzugen oder für eine einfachere Integration in bestehende Codebasen.
Wie man Wörterbücher verwendet
In diesem Abschnitt zeigen wir Ihnen, wie Sie eine einfache Wörterbuch-Implementierung in Ihrer Next.js-Anwendung einrichten können. Wir werden die folgenden Schritte durchgehen:
Ein Wörterbuch erstellen
Auf das Wörterbuch zugreifen
Schritt 1: Ein Wörterbuch erstellen
Der erste Schritt ist die Erstellung eines Wörterbuchs.
Dies ist eine dictionary.js
(.ts
oder .json
) Datei, die alle Inhalte enthält, die Sie übersetzen möchten.
Erstellen Sie das Wörterbuch in Ihrem src/
Verzeichnis.
Wenn Sie keinen src/
Ordner verwenden, können Sie das Verzeichnis des Wörterbuchs auch in der next.config.js
Datei angeben.
Fügen Sie den folgenden Inhalt zu Ihrer dictionary.js
Datei hinzu:
Sie können auch eine dictionary.json
Datei verwenden, um Ihr Wörterbuch zu speichern. Dies ist nützlich, wenn Sie von einer anderen Bibliothek migrieren oder wenn Sie lieber JSON-Dateien verwenden möchten.
Hier ist ein Beispiel für eine dictionary.json
Datei:
Schritt 2: Auf das Wörterbuch zugreifen
Es gibt verschiedene Möglichkeiten, das Wörterbuch zu verwenden, abhängig vom Kontext, in dem Sie das Wörterbuch nutzen möchten.
Wenn Sie beispielsweise in einer clientseitigen Komponente sind, verwenden Sie den useDict()
Hook und für serverseitige Komponenten verwenden Sie await getDict()
.
Hier ist ein Beispiel, wie Sie das Wörterbuch in einer clientseitigen Komponente verwenden können:
Und hier ist ein Beispiel, wie Sie auf die Übersetzungen in einer serverseitigen Komponente zugreifen können:
Laden von Wörterbüchern für andere Sprachen
Standardmäßig stellen Entwickler nur ein Wörterbuch für die Standardsprache bereit.
General Translation generiert automatisch Wörterbücher für andere Sprachen und lädt sie mit der Funktion loadTranslations
.
Wenn Sie jedoch von einer anderen i18n-Bibliothek migrieren oder bereits Wörterbücher für andere Sprachen haben, können Sie diese an die Funktion loadDictionary
übergeben.
gt-next
lädt automatisch das entsprechende Wörterbuch für die angeforderte Sprache, wenn Sie den useDict()
-Hook oder die getDict()
-Funktion verwenden.
Weitere Informationen finden Sie in der API-Referenz.
Verwendung von Wörterbüchern
Variablen
Sie können Variablen zu Ihrem Wörterbuch hinzufügen, indem Sie die {variable}
-Syntax verwenden:
Lesen Sie mehr über das Hinzufügen von Variablen zu Ihrem Wörterbuch im Typ DictionaryTranslationOptions
.
Präfixe
Zusätzlich können Sie mit useDict()
und getDict()
ein Präfix an die Funktion übergeben, um einen gemeinsamen Pfad im Wörterbuch anzugeben.
Dies ist nützlich, wenn Sie einen gemeinsamen Pfad in Ihrem Wörterbuch haben, den Sie in mehreren Komponenten verwenden möchten.
Teilmengen mit <GTProvider>
Sie können auch ein Präfix im <GTProvider>
-Komponente angeben.
Dies wird eine Teilmenge des Wörterbuchs an den Client übergeben, sodass das gesamte Wörterbuch nicht geladen werden muss.
Dies gilt nur für clientseitige Komponenten.
Sie müssen immer noch den gesamten Pfad angeben, wenn Sie einen Schlüssel im Wörterbuch referenzieren.
Produktionsüberlegungen
Bereitstellung in der Produktion
Stellen Sie sicher, dass Sie den Übersetzungsbefehl ausführen, bevor Sie in die Produktion bereitstellen, damit alle Übersetzungen zur Laufzeit verfügbar sind. Wir empfehlen, ihn in Ihre CD-Pipeline oder als Teil Ihres Build-Skripts aufzunehmen.
Das war's! Sie haben Ihre Anwendung erfolgreich ins Französische, Spanische und Japanische übersetzt.
Für eine detailliertere Anleitung zur Bereitstellung Ihrer Anwendung lesen Sie bitte den Bereitstellungsleitfaden. Für weitere Informationen zum Befehl lesen Sie bitte die CLI-Tool Referenzanleitung.
Verhalten: Entwicklung vs Produktion
In der Entwicklung wird die d()
Funktion Wörterbucheinträge bei Bedarf übersetzen.
Das bedeutet, dass beim Rendern der Komponente sofort eine Übersetzung durchgeführt wird.
Wir tun dies aus Bequemlichkeit, um die Entwicklung mit anderen Sprachen zu erleichtern.
Um dieses Verhalten zu aktivieren, fügen Sie einfach einen Dev-API-Schlüssel zu Ihrer Umgebung hinzu.
In der Produktion wird die d()
Funktion Inhalte zur Build-Zeit übersetzen.
Das bedeutet, dass Sie den Übersetzungsbefehl ausführen müssen, bevor Sie Ihre Anwendung bereitstellen.
Tipp: Wenn Sie das Produktionsverhalten in der Entwicklung simulieren möchten, verwenden Sie einfach einen Produktions-API-Schlüssel in Ihrem Entwicklungs-Build.
Notizen
- Wörterbücher sind eine Alternative zur
<T>
Komponente. Sie können in Verbindung mit<T>
Komponenten oder eigenständig verwendet werden. - Wörterbuchübersetzungen erfolgen zur Build-Zeit, daher müssen Sie den
translate
Befehl in Ihren Build-Prozess integrieren. - Wörterbücher können mit Präfixen verwendet werden, um einen Teil des Wörterbuchs anzugeben.
Nächste Schritte
- Erfahren Sie mehr über die
<T>
Komponente und wie Sie sie in Ihrer Next.js-Anwendung verwenden können. - Lernen Sie, wie Sie mit unserem Bereitstellungsleitfaden in die Produktion gehen.