Config

loadTranslations()

API-Referenz für die Funktion loadTranslations().

Übersicht

Verwenden Sie loadTranslations(), um das Ladeverhalten für Übersetzungen festzulegen. Standardmäßig lädt Ihre App Übersetzungen im Produktionsbetrieb vom GT CDN. Sie können eine eigene loadTranslations()-Funktion angeben, um Übersetzungen aus einer anderen Quelle zu laden, zum Beispiel:

  • Aus dem Bundle Ihrer App (am häufigsten)
  • Aus einer Datenbank
  • Über eine API
  • Von einem anderen CDN

Wir haben die Unterstützung für das Laden von Übersetzungen aus lokalen Dateien im Bundle Ihrer App integriert. Folgen Sie dieser Anleitung, um lokale Übersetzungen in Ihrer Next.js-App einzurichten.

Wenn Sie eigene Übersetzungen manuell definieren möchten, sehen Sie sich den Leitfaden für benutzerdefinierte Übersetzungen und die loadDictionary()-Funktion an.

Referenz

Parameter

PropTypeDefault
locale?
string
-

Beschreibung

TypBeschreibung
localeDas Gebietsschema, für das Übersetzungen geladen werden sollen.

Rückgabewert

Ein Promise<any>, das auf ein Wörterbuch aufgelöst wird, das IDs den Übersetzungen für das angegebene Gebietsschema zuordnet.


Einrichtung

Definieren Sie Ihre loadTranslations() als den Standardexport für eine Datei mit dem Namen loadTranslations.js oder loadTranslations.ts entweder im Verzeichnis src/ oder im Root-Verzeichnis. Stellen Sie sicher, dass die Funktion ein Promise zurückgibt, das zu einem Objekt mit Übersetzungen für die angegebene Sprache aufgelöst wird.

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

Wenn Sie einen anderen Namen oder Pfad verwenden möchten, übergeben Sie den relativen Pfad über den Parameter loadTranslationsPath in withGTConfig().


Beispiele

Übersetzungen aus Ihrem Bundle abrufen

src/loadTranslations.js
export default async function loadTranslations(locale) {
  const translations = await import(`../public/locales/${locale}.json`);
  return translations.default;
};

Wenn es für die Verwendung von lokalen Übersetzungen konfiguriert ist, speichert der gtx-cli translate Befehl Übersetzungen im Dateibaum Ihres Projekts.

npx gtx-cli translate

Übersetzungen von einem CDN laden

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await fetch(`https://your-cdn.com/translations/${locale}.json`);
    const data = await translations.json();
    return data;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Übersetzungen aus Ihrer eigenen Datenbank laden

loadTranslations.js
export default async function loadTranslations(locale) {
  try {
    const translations = await prisma.translation.findUnique({
      where: {
        locale: locale,
      },
    });
    return translations;
  } catch (e) {
    console.error(e);
    return {};
  }
};

Frage: Was ist der Unterschied zwischen loadTranslations() und loadDictionary()?

  • loadTranslations() wird verwendet, um benutzerdefiniertes Ladeverhalten für das Abrufen von Übersetzungen für Ihre App zu definieren. Dies könnte das Abrufen von Übersetzungen von einem CDN, einer Datenbank oder dem Bundle Ihrer App sein. Diese sind normalerweise maschinell generierte Übersetzungen, die vom CLI-Tool verwaltet werden und nicht sehr benutzerfreundlich zu bearbeiten sind.
  • loadDictionary() ist für Implementierungen von gt-next als eigenständige Bibliothek gedacht. Benutzer bringen ihre eigenen Übersetzungen mit und es wird keine Übersetzungsinfrastruktur verwendet.

Hinweise

  • loadTranslations() gibt Ihnen die Möglichkeit, anzupassen, wie Übersetzungen in Ihrer App in der Produktion geladen werden.
  • Der häufigste Anwendungsfall ist das Hinzufügen von lokalen Übersetzungen

Nächste Schritte

Wie ist dieser Leitfaden?