formatMessage
API Reference für die GT-Methode formatMessage
Überblick
Die Methode formatMessage formatiert Nachrichten mit Variableneinsetzung und lokalisierungsbewusster Formatierung.
Auf Basis der Format.JS‑Bibliothek intl-messageformat unterstützt sie Muster des ICU message format.
Diese Methode ist unerlässlich für Variableninterpolation und Pluralbildung. Außerdem unterstützt sie die Formatierung von Zahlen und Datumsangaben sowie weitere Funktionen.
const gt = new GT({
  sourceLocale: 'en',
  targetLocale: 'fr'
});
const formatted = gt.formatMessage('Hallo {name}, du hast {count} Nachrichten', {
  variables: { name: 'Alice', count: 5 }
});
// Ergebnis: "Hallo Alice, du hast 5 Nachrichten"Referenz
Parameter
Prop
Type
Options-Objekt
| Eigenschaft | Typ | Optional | Beschreibung | 
|---|---|---|---|
| locales | string | string[] | ✓ | Locale(s), die für die Formatierung verwendet werden (überschreibt die Standardwerte der Instanz) | 
| variables | FormatVariables | ✓ | Objekt mit variables für die Nachrichteninterpolation | 
Typ FormatVariables
type FormatVariables = {
  [key: string]: string | number | Date | boolean;
};Rückgabewert
string - Die formatierte Nachricht mit ersetzten Variablen und angewandter, locale-spezifischer Formatierung.
Verhalten
Variablenersetzung
- Einfache Variablen: {variableName}→ wird durch einen Stringwert ersetzt
- ICU-Muster: {count, plural, ...}→ wird gemäß den ICU-Formatierungsregeln verarbeitet
- Fehlende Variablen: führen zu einem Fehler
- Doppelte geschweifte Klammern: umgehen das Klammerverhalten und werden als einzelne geschweifte Klammer gerendert
Unterstützung für MessageFormat
- Einfache Interpolation: {variable}
- Zahlenformatierung: {price, number, ::currency/USD},{discount, number, percent},{num, number, integer}
- Datumsformatierung: {date, date, short},{time, time, short}
- Pluralbildung: {count, plural, =0 {keine} =1 {eine} other {viele}}
- Auswahl: {gender, select, male {er} female {sie} other {they}}
- Selectordinal: {place, selectordinal, =1 {#st} =2 {#nd} =3 {#rd} other {#th}}
Beispiele
Grundlegende Variablenersetzung
const gt = new GT({ targetLocale: 'en' });
const message = gt.formatMessage('Willkommen {name}!', {
  variables: { name: 'John' }
});
console.log(message); // "Willkommen John!"Pluralbildung mit dem ICU-Format
const message = gt.formatMessage(
  'Sie haben {count, plural, =0 {keine Artikel} =1 {einen Artikel} other {# Artikel}} in Ihrem Warenkorb',
  {
    variables: { count: 3 }
  }
);
console.log(message); // „Sie haben 3 Artikel in Ihrem Warenkorb"Zahlen- und Währungsformatierung
const gt = new GT({ targetLocale: 'en' });
const message = gt.formatMessage(
  'Ihr Gesamtbetrag beträgt {price, number, ::currency/USD} mit {discount, number, percent} Rabatt',
  {
    variables: { 
      price: 99.99,
      discount: 0.15 
    }
  }
);
console.log(message); // „Ihr Gesamtbetrag beträgt $99.99 mit 15% Rabatt"Komplexe Vorlagen für Nachrichten
const orderStatusMessage = gt.formatMessage(`
  Bestellung #{orderId} Statusaktualisierung:
  - Artikel: {itemCount, plural, =0 {keine Artikel} =1 {ein Artikel} other {# Artikel}}
  - Gesamt: {total, number, ::currency/USD}
  - Status: {status, select, 
      pending {Ausstehend} 
      shipped {Versandt} 
      delivered {Zugestellt} 
      other {Unbekannt}}
  - Lieferung: {deliveryDate, date, short}
`, {
  variables: {
    orderId: 'ORD-12345',
    itemCount: 3,
    total: 149.97,
    status: 'shipped',
    deliveryDate: new Date('2024-03-20')
  }
});Hinweise
- Die Methode verarbeitet die Syntax des ICU Message Format für erweitertes Formatieren mit Intl.MessageFormatvon Format.JS.
- Fehlende variables führen zu einem Error.
- Sprachspezifische Formatierungen für Zahlen, Datumsangaben und Währungen werden automatisch angewendet
Nächste Schritte
- Sieh dir die Dokumentation zu Intl.MessageFormatfür weitere Optionen an
- Zahlen mit formatNum formatieren
Wie ist dieser Leitfaden?

