formatMessage
Référence de l’API pour la méthode formatMessage de GT
Aperçu
La méthode formatMessage formate des messages avec substitution de variables et un formatage adapté à la locale.
Basée sur la bibliothèque intl-messageformat de Format.JS, elle prend en charge les modèles du format de message ICU.
Cette méthode est essentielle pour l’interpolation de variables et la pluralisation. Elle prend également en charge le formatage des nombres et des dates, entre autres fonctionnalités.
const gt = new GT({
  sourceLocale: 'en',
  targetLocale: 'fr'
});
const formatted = gt.formatMessage('Bonjour {name}, vous avez {count} messages', {
  variables: { name: 'Alice', count: 5 }
});
// Renvoie : « Bonjour Alice, vous avez 5 messages »Références
Paramètres
Prop
Type
Objet d’options
| Propriété | Type | Facultatif | Description | 
|---|---|---|---|
| locales | string | string[] | ✓ | Locale(s) à utiliser pour le formatage (remplace les valeurs par défaut de l’instance) | 
| variables | FormatVariables | ✓ | Objet contenant des variables pour l’interpolation de messages | 
Type FormatVariables
type FormatVariables = {
  [key: string]: string | number | Date | boolean;
};Renvoie
string - Le message mis en forme avec les variables substituées et le formatage propre à la locale appliqué.
Comportement
Substitution de variables
- Variables simples : {variableName}→ remplacé par une chaîne
- Modèles ICU : {count, plural, ...}→ traités selon les règles de formatage ICU
- Variables manquantes : provoquent une erreur
- Doubles accolades : neutralisent le comportement des accolades et s’affichent comme une seule accolade
Prise en charge de Message Format
- Interpolation simple : {variable}
- Formatage des nombres : {price, number, ::currency/USD},{discount, number, percent},{num, number, integer}
- Formatage des dates : {date, date, short},{time, time, short}
- Pluriel : {count, plural, =0 {aucun} =1 {un} other {beaucoup}}
- Sélection : {gender, select, male {il} female {elle} other {iel}}
- Ordinal sélectif : {place, selectordinal, =1 {#er} =2 {#e} =3 {#e} other {#e}}
Exemples
Substitution basique de variables
const gt = new GT({ targetLocale: 'en' });
const message = gt.formatMessage('Welcome {name}!', {
  variables: { name: 'John' }
});
console.log(message); // "Welcome John!"Pluralisation avec le format ICU
const message = gt.formatMessage(
  'Vous avez {count, plural, =0 {aucun article} =1 {un article} other {# articles}} dans votre panier',
  {
    variables: { count: 3 }
  }
);
console.log(message); // "Vous avez 3 articles dans votre panier"Format des nombres et des devises
const gt = new GT({ targetLocale: 'en' });
const message = gt.formatMessage(
  'Votre total est {price, number, ::currency/USD} avec {discount, number, percent} de réduction',
  {
    variables: { 
      price: 99.99,
      discount: 0.15 
    }
  }
);
console.log(message); // "Votre total est 99,99 $ avec 15 % de réduction"Modèles de messages complexes
const orderStatusMessage = gt.formatMessage(`
  Mise à jour du statut de la commande #{orderId} :
  - Articles : {itemCount, plural, =0 {aucun article} =1 {un article} other {# articles}}
  - Total : {total, number, ::currency/USD}
  - Statut : {status, select, 
      pending {En attente} 
      shipped {Expédiée} 
      delivered {Livrée} 
      other {Inconnu}}
  - Livraison : {deliveryDate, date, short}
`, {
  variables: {
    orderId: 'ORD-12345',
    itemCount: 3,
    total: 149.97,
    status: 'shipped',
    deliveryDate: new Date('2024-03-20')
  }
});Notes
- La méthode prend en charge la syntaxe du format de message ICU pour le formatage avancé à l’aide de Intl.MessageFormatde Format.JS.
- Les variables manquantes déclenchent une Error.
- Le formatage localisé des nombres, des dates et des montants est appliqué automatiquement.
Prochaines étapes
- Consultez la documentation d’Intl.MessageFormatpour davantage d’options
- Formatez les nombres avec formatNum
Que pensez-vous de ce guide ?

