# generaltranslation: General Translation Core SDK: formatMessage URL: https://generaltranslation.com/fr/docs/core/functions/formatting/format-message.mdx --- title: formatMessage description: Référence API pour la fonction autonome formatMessage --- ## Vue d’ensemble La méthode `formatMessage` met en forme les messages en remplaçant les variables et en appliquant un formatage adapté au paramètre régional. Basée sur la bibliothèque [`intl-messageformat`](https://formatjs.github.io/docs/intl-messageformat/) de Format.JS, elle prend en charge les modèles 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. ```typescript import { formatMessage } from 'generaltranslation'; const formatted = formatMessage('Hello {name}, you have {count} messages', { locales: ['en'], variables: { name: 'Alice', count: 5 } }); // Retourne : "Hello Alice, you have 5 messages" ``` *** ## Référence ### Paramètres ### Objet d’options | Propriété | Type | Facultatif | Par défaut | Description | | ----------- | -------------------- | ---------- | ---------- | ------------------------------------------------------------ | | `locales` | `string \| string[]` | ✓ | `['en']` | Paramètre(s) régional(aux) à utiliser pour la mise en forme | | `variables` | `FormatVariables` | ✓ | `{}` | Objet contenant les variables utilisées pour l’interpolation | ### Retourne `string` - Le message mis en forme, avec les variables remplacées et le formatage propre au paramètre régional appliqué. *** ## Comportement ### Gestion des paramètres régionaux * Utilise le paramètre `locales` fourni pour le formatage * Utilise `['en']` par défaut si aucun paramètre régional n'est spécifié * Prend en charge les chaînes de repli des paramètres régionaux sous forme de tableaux ### Traitement des variables * Substitution simple : `{variable}` → remplacée par sa valeur * Format de message ICU : prise en charge complète des pluriels, des sélections et de la mise en forme * Variables manquantes : laissées inchangées dans la sortie ### Prise en charge du format de message Prend en charge les mêmes fonctionnalités du format de message ICU que la méthode de classe GT : * Formatage des nombres : `{price, number, currency}` * Formatage des dates : `{date, date, short}` * Pluralisation : `{count, plural, ...}` * Sélection : `{gender, select, ...}` *** ## Exemples ### Utilisation de base ```typescript import { formatMessage } from 'generaltranslation'; const greeting = formatMessage('Hello {name}!', { locales: ['en'], variables: { name: 'World' } }); console.log(greeting); // "Hello World!" ``` ### Sans instance GT ```typescript // 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( 'You have {count, plural, =0 {no messages} =1 {one message} other {# messages}}', { count: 3 }, 'en' ); console.log(notification); // "You have 3 messages" ``` ### Formatage des devises et des nombres ```typescript // Formatage avec le paramètre régional allemand const germanPrice = formatMessage('Preis: {price, number, currency}', { locales: ['de'], variables: { price: 1234.56 } }); console.log(germanPrice); // "Preis: 1.234,56 €" // Formatage en pourcentage const progress = formatMessage('Progress: {percent, number, percent}', { locales: ['en'], variables: { percent: 0.85 } }); console.log(progress); // "Progress: 85%" ``` ### Bibliothèque de modèles ```typescript import { formatMessage } from 'generaltranslation'; class MessageTemplates { private locale: string; constructor(locale: string = 'en') { this.locale = locale; } welcome(name: string) { return formatMessage('Welcome back, {name}!', { locales: [this.locale], variables: { name } }); } itemCount(count: number) { return formatMessage( '{count, plural, =0 {No items} =1 {One item} other {# items}}', { locales: [this.locale], variables: { count } } ); } } const templates = new MessageTemplates('fr'); console.log(templates.welcome('Marie')); // "Welcome back, Marie!" (en français) console.log(templates.itemCount(5)); // "5 éléments" ``` *** ## Remarques * Nécessite de spécifier explicitement le paramètre régional dans les options * Prend en charge les mêmes fonctionnalités du format de message ICU que la méthode de classe GT * Renvoie une chaîne vide pour les modèles d’entrée vides * Les variables sont traitées avant l’application des règles de formatage ICU ## Étapes suivantes * Consultez la documentation de [`Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) pour découvrir d’autres options * Utilisez la méthode [`formatMessage`](/docs/core/class/methods/formatting/format-message) de la classe GT pour un formatage avec état * Formatez les nombres avec la fonction autonome [`formatNum`](/docs/core/functions/formatting/format-num) * Découvrez le type `FormatVariables`