formatMessage
Référence de l’API pour la fonction formatMessage autonome
Présentation
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 patrons 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.
import { formatMessage } from 'generaltranslation';
const formatted = formatMessage('Bonjour {name}, vous avez {count} messages', {
  locales: ['en'],
  variables: { name: 'Alice', count: 5 }
});
// Retourne : "Bonjour Alice, vous avez 5 messages"Références
Paramètres
Prop
Type
Objet options
| Propriété | Type | Optionnel | Valeur par défaut | Description | 
|---|---|---|---|---|
| locales | string | string[] | ✓ | ['en'] | Locale(s) à utiliser pour le formatage | 
| variables | FormatVariables | ✓ | {} | Objet contenant des variables pour l’interpolation | 
Renvoie
string - Le message mis en forme avec les variables remplacées et le formatage propre à la locale appliqué.
Comportement
Gestion des locales
- Utilise le paramètre localesfourni pour le formatage
- Revient à ['en']si aucune locale n’est spécifiée
- Prend en charge les chaînes de secours de locales via des tableaux
Traitement des variables
- Substitution simple : {variable}→ remplacé par la valeur
- Format de message ICU : prise en charge complète des pluriels, des sélections et du formatage
- Variables manquantes : laissées inchangées dans la sortie
Prise en charge du format de message
Les mêmes fonctionnalités du format de message ICU que la méthode de la classe GT :
- Mise en forme des nombres : {price, number, currency}
- Mise en forme des dates : {date, date, short}
- Pluralisation : {count, plural, ...}
- Sélection : {gender, select, ...}
Exemples
Utilisation de base
import { formatMessage } from 'generaltranslation';
const greeting = formatMessage('Bonjour {name} !', {
  locales: ['en'],
  variables: { name: 'World' }
});
console.log(greeting); // "Bonjour World !"Sans instance de GT
// Fonction utilitaire pour le formatage sans instanciation de classe
function quickFormat(template: string, variables: any, locale = 'en') {
  return formatMessage(template, {
    locales: [locale],
    variables
  });
}
const notification = quickFormat(
  'Vous avez {count, plural, =0 {aucun message} =1 {un message} other {# messages}}',
  { count: 3 },
  'en'
);
console.log(notification); // « Vous avez 3 messages »Formatage des nombres et des devises
// Formatage de la locale allemande
const germanPrice = formatMessage('Preis: {price, number, currency}', {
  locales: ['de'],
  variables: { price: 1234.56 }
});
console.log(germanPrice); // "Preis: 1.234,56 €"
// Formatage de pourcentage
const progress = formatMessage('Progrès : {percent, number, percent}', {
  locales: ['en'],
  variables: { percent: 0.85 }
});
console.log(progress); // "Progrès : 85%"Bibliothèque de modèles
import { formatMessage } from 'generaltranslation';
class MessageTemplates {
  private locale: string;
  
  constructor(locale: string = 'en') {
    this.locale = locale;
  }
  
  welcome(name: string) {
    return formatMessage('Bon retour, {name} !', {
      locales: [this.locale],
      variables: { name }
    });
  }
  
  itemCount(count: number) {
    return formatMessage(
      '{count, plural, =0 {Aucun élément} =1 {Un élément} other {# éléments}}',
      {
        locales: [this.locale],
        variables: { count }
      }
    );
  }
}
const templates = new MessageTemplates('fr');
console.log(templates.welcome('Marie')); // "Bon retour, Marie !" (en français)
console.log(templates.itemCount(5)); // "5 éléments"Notes
- Nécessite de spécifier explicitement la locale dans options
- Prend en charge les mêmes fonctionnalités du format de message ICU que la méthode de la GT class
- Retourne une chaîne vide pour les modèles d’entrée vides
- Les variables sont traitées avant les règles de formatage ICU
Prochaines étapes
- Consultez la documentation d’Intl.MessageFormatpour plus d’options
- Utilisez la classe GT formatMessagepour un formatage stateful
- Formatez les nombres avec formatNum
- Découvrez le type FormatVariables
Que pensez-vous de ce guide ?

