Inline Translations

getMessages

API-Referenz für die Übersetzungsfunktion getMessages()

Überblick

Die Funktion getMessages ist eine asynchrone Funktion, die encoded strings von msg zur Build‑Zeit übersetzt.

const m = await getMessages();

<p>{  m(codierteZeichenkette)  }</p>;

Buildtime Translation: getMessages-Übersetzungen erfolgen zur Build-Zeit, bevor Ihre App bereitgestellt wird. Sie können encoded strings von msg übergeben; diese werden dann in die bevorzugte Sprache des Nutzers übersetzt.

Referenzen

Parameter

Keine

Rückgabe

Ein Promise, das eine Callback-Funktion m liefert, die den bereitgestellten, kodierten Inhalt aus msg übersetzt.

Promise<(encodedContent: string, options?: Record<string, any>) => string>
NameTypeDescription
encodedContentstringDer encoded string-Inhalt aus msg, der übersetzt werden soll.
options?Record<string, any>Optionale Parameter zum Überschreiben von variables in der encoded string.

Verhalten

Produktion

Während des CD-Prozesses (Continuous Delivery/Deployment) wird sämtlicher Inhalt innerhalb einer msg-Funktion übersetzt, bevor Ihre Anwendung bereitgestellt wird. Das gewährleistet schnelle Ladezeiten für alle locales, kann jedoch nur Inhalte übersetzen, die zur Build-Zeit bekannt sind.

Nach der Generierung werden die Übersetzungen je nach Konfiguration entweder (1) im CDN (Content Delivery Network) gespeichert oder (2) im Build-Output Ihrer App abgelegt. Von dort aus wird der übersetzte Inhalt an Ihre Nutzer ausgeliefert. Wenn keine Übersetzung gefunden wird, wird auf den ursprünglichen Inhalt zurückgegriffen.

Stellen Sie sicher, dass Sie der Bereitstellungsanleitung hier folgen.

Entwicklung

Während der Entwicklung übersetzt die Funktion m Inhalte bei Bedarf. Das ist hilfreich, um zu prototypen, wie deine App in verschiedenen Sprachen aussehen wird. Denke daran, deiner Umgebung einen Dev API-Schlüssel hinzuzufügen, um dieses Verhalten zu aktivieren.

Während der On‑Demand-Übersetzung in der Entwicklung kann es zu einer Verzögerung kommen. Dies tritt in Produktions-Builds nicht auf, es sei denn, Inhalte werden ausdrücklich bei Bedarf übersetzt, d. h. mithilfe von tx oder <Tx>.


Beispiel

Grundlegende Verwendung

Sie können getMessages verwenden, um encoded strings aus msg zu übersetzen.

import { msg, getMessages } from 'gt-next/server';

const encodedGreeting = msg('Hallo, Alice!');

export default async function TranslateGreeting() {
  const m = await getMessages();

  return (
    <p>
      {m(encodedGreeting)}
    </p>
  );
}

Hinweis: "Alice" wird in die bevorzugte Sprache des/der Nutzers/Nutzerin übersetzt.

Verwendung von variables

Sie können variables in encoded strings überschreiben.

import { msg, getMessages } from 'gt-next/server';

const encodedGreeting = msg('Hallo, {name}!', { name: 'Alice' });

export default async function TranslateGreeting() {
  const m = await getMessages();

  return (
    <p>
      {m(encodedGreeting, { name: 'Bob' })}
    </p>
  );
}

Hinweis: Dadurch wird "Hallo, Bob!" angezeigt – die Variable wird zur Laufzeit beim Rendern überschrieben.

Verwendung des ICU Message Format

gt-next unterstützt das ICU Message Format, mit dem Sie auch Ihre Variablen formatieren können.

import { msg, getMessages } from 'gt-next/server';

const encodedMessage = msg('Im Warenkorb {count, plural, =0 {sind keine Artikel} =1 {ist ein Artikel} other {sind {count} Artikel}}', { count: 10 });

export default async function TranslateGreeting() {
  const m = await getMessages();
  return (
    <p>
      {m(encodedMessage)}
    </p>
  );
}

Das ICU message format ist eine leistungsstarke Methode, um Ihre variables zu formatieren. Weitere Informationen finden Sie in der Dokumentation zum ICU message format.


Hinweise

  • Die Funktion getMessages ist eine serverseitige Funktion, die von msg erzeugte encoded strings übersetzt.
  • Übersetzungen mit getMessages erfolgen nicht zur Laufzeit, sondern bereits während des Build-Prozesses (außer in der Entwicklung).

Nächste Schritte

  • Siehe useMessages für clientseitige Übersetzungen von Strings aus encoded strings zur Build‑Zeit.
  • Siehe msg zum Enkodieren von Strings für die Übersetzung.
  • Für Übersetzungen zur Laufzeit siehe tx und <Tx>.

Wie ist dieser Leitfaden?

getMessages