msg
API-Referenz für die Funktion msg()
Übersicht
Die Funktion msg kennzeichnet und kodiert Zeichenketten für die Übersetzung.
const encodedString = msg('Hallo, Welt!');Die encoded string sollte an den useMessages-Hook oder die Funktion getMessages übergeben werden, um Übersetzungen abzurufen.
Encoding:
msg codiert die Eingabezeichenfolge, daher kannst du sie nicht direkt in JSX oder anderswo verwenden.
Wenn du die ursprüngliche Zeichenfolge wiederherstellen möchtest, musst du sie mit decodeMsg decodieren.
Decodierung
Um die ursprüngliche Zeichenkette wiederherzustellen, müssen Sie sie mit decodeMsg dekodieren
import { msg, decodeMsg } from 'gt-next';
const encodedString = msg('Hallo, Welt!');
const decodedString = decodeMsg(encodedString);
console.log(decodedString); // „Hallo, Welt!"Referenz
Parameter
| Name | Type | Description |
|---|---|---|
content | string | Der zu kodierende String-Inhalt. |
options? | InlineTranslationOptions | Übersetzungsoptionen zur Anpassung des Verhaltens von msg. |
Rückgabewert
Eine encoded string, wobei interpolierte variables (falls vorhanden) durch ihre value ersetzt werden.
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) oder (2) im Build-Output Ihrer App gespeichert. Von dort aus wird der übersetzte Inhalt an Ihre Nutzer ausgeliefert. Wenn keine Übersetzung gefunden wird, wird als Standardwert auf den originalen Inhalt zurückgegriffen.
Achten Sie darauf, der Bereitstellungsanleitung hier zu folgen.
Entwicklung
Während der Entwicklung übersetzt die Funktion msg Inhalte bei Bedarf.
Das ist nützlich, um zu prototypen, wie deine App in verschiedenen Sprachen aussehen wird.
Denk daran, einen Dev API key in deiner Umgebung zu hinterlegen, um dieses Verhalten zu aktivieren.
Während der On-Demand-Ü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 on demand übersetzt,
d. h. mit tx oder <Tx>.
Beispiel
Grundlegende Verwendung
Mit msg können Sie Zeichenfolgen für die Übersetzung markieren.
import { msg, useMessages } from 'gt-next';
const encodedString = msg('Hallo, Welt!');
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedString)}
</p>
);
}Hinweis: "Hello, world!" wird in die bevorzugte Sprache des Nutzers übersetzt.
Verwendung von variables
Sie können variables an Wörterbuchübersetzungen übergeben.
import { msg, useMessages } from 'gt-next';
const encodedString = msg('Hallo, {name}!', { name: 'Alice' });
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedString)}
</p>
);
}Hinweis: „Alice“ wird nicht in die bevorzugte Sprache des Nutzers übersetzt, da es sich um eine Variable handelt.
Verwendung des ICU‑Nachrichtenformats
gt-next unterstützt das ICU‑Nachrichtenformat, mit dem Sie auch Variablen formatieren können.
import { msg, useMessages } from 'gt-next';
const encodedString = msg('Es {count, plural, =0 {befinden sich keine Artikel} =1 {befindet sich ein Artikel} other {befinden sich {count} Artikel}} im Warenkorb', { count: 10 });
export default function TranslateGreeting() {
const m = useMessages();
return (
<p>
{m(encodedString)}
</p>
);
}Das ICU Message Format ist eine leistungsstarke Methode, um Variablen zu formatieren. Weitere Informationen finden Sie in der ICU-Message-Format-Dokumentation.
Hinweise
- Die Funktion
msgmarkiert Zeichenketten für die Übersetzung. - Übersetzungen von mit
msgmarkierten Zeichenketten erfolgen vor der Laufzeit, während des Build-Prozesses (außer in der Entwicklung).
Nächste Schritte
- Siehe
useMessageszum Übersetzen von Strings. - Siehe
getMessageszum Übersetzen von Strings in asynchronen serverseitigen Komponenten.
Wie ist diese Anleitung?