useMessages
API Reference für die Übersetzungsfunktion useMessages()
Übersicht
Die Funktion useMessages ist ein Hook zum Übersetzen von encoded strings aus msg zur Build‑Zeit.
const m = useMessages();
<p>{ m(encodedString) }</p>;Buildtime Translation:
useMessages-Übersetzungen erfolgen zur Buildtime, bevor Ihre App ausgeliefert wird.
Sie können encoded strings aus msg übergeben, die dann in die bevorzugte Sprache der Nutzer:innen übersetzt werden.
Referenz
Parameter
Keine
Rückgabe
Eine Callback-Funktion m, die den angegebenen kodierten Inhalt aus msg übersetzt.
(encodedContent: string, options?: Record<string, any>) => string| Name | Type | Description |
|---|---|---|
encodedContent | string | Der Inhalt des encoded string aus msg, der übersetzt werden soll. |
options? | Record<string, any> | Optionale Parameter zum Überschreiben von variables im encoded string. |
Verhalten
Produktion
Während des CD-Prozesses 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 Übersetzungen je nach Konfiguration entweder (1) im CDN (Content Delivery Network) gespeichert oder (2) im Build-Output Ihrer App. Von dort aus wird der übersetzte Inhalt an Ihre Nutzer ausgeliefert. Wenn keine Übersetzung gefunden wird, wird auf den ursprünglichen Inhalt als Standardwert zurückgegriffen.
Bitte folgen Sie der Bereitstellungsanleitung hier.
Entwicklung
Während der Entwicklung übersetzt die Funktion m Inhalte bei Bedarf.
Das ist hilfreich, um zu prototypisieren, wie Ihre App in verschiedenen Sprachen aussehen wird.
Denken Sie daran, Ihrer Umgebung einen Dev API key hinzuzufügen, um dieses Verhalten zu aktivieren.
Bei bedarfsorientierter Übersetzung in der Entwicklung kann es zu einer Verzögerung kommen.
Dies tritt bei Produktions-Builds nicht auf, es sei denn, Inhalte werden ausdrücklich bei Bedarf übersetzt,
d. h. mit tx oder <Tx>.
Beispiel
Grundlegende Verwendung
Sie können useMessages verwenden, um encoded strings aus msg zu übersetzen.
import { msg, useMessages } from 'gt-react';
const encodedGreeting = msg('Hallo Alice!');
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedGreeting)}
</p>
);
}Hinweis: "Alice" wird in die bevorzugte Sprache des Benutzers übersetzt.
Variablen verwenden
Sie können Variablen in kodierten Strings überschreiben.
import { msg, useMessages } from 'gt-react';
const encodedGreeting = msg('Hallo, {name}!', { name: 'Alice' });
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedGreeting, { name: 'Bob' })}
</p>
);
}Hinweis: Dadurch wird „Hello, Bob!“ angezeigt – die Variable wird zur Laufzeit des Renderings überschrieben.
Verwendung des ICU‑Nachrichtenformats
gt-react unterstützt das ICU‑Nachrichtenformat, mit dem Sie auch Ihre Variablen formatieren können.
import { msg, useMessages } from 'gt-react';
const encodedMessage = msg('Im Warenkorb {count, plural, =0 {befinden sich keine Artikel} =1 {befindet sich ein Artikel} other {befinden sich {count} Artikel}}', { count: 10 });
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedMessage)}
</p>
);
}Das ICU Message Format ist eine leistungsstarke Möglichkeit, Variablen zu formatieren. Weitere Informationen finden Sie in der Dokumentation zum ICU Message Format.
Hinweise
- Die Funktion
useMessagesist ein Hook, der encodierte Strings ausmsgübersetzt. - Übersetzungen von Strings mit
useMessageserfolgen nicht zur Laufzeit, sondern bereits während des Build‑Prozesses (außer in der Entwicklung).
Nächste Schritte
- Siehe
getMessagesfür asynchrone Übersetzungen aus encoded strings zur Buildzeit. - Siehe
msgzum Encodieren von Strings für die Übersetzung. - Für Übersetzungen zur Laufzeit siehe
txund<Tx>.
Wie ist diese Anleitung?