# generaltranslation: General Translation Core SDK: formatMessage URL: https://generaltranslation.com/fr/docs/core/class/methods/formatting/format-message.mdx --- title: formatMessage description: Référence de l’API pour la méthode GT formatMessage --- ## Vue d’ensemble La méthode `formatMessage` met en forme les messages avec substitution de variables et 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 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. ```typescript const gt = new GT({ sourceLocale: 'en', targetLocale: 'fr' }); const formatted = gt.formatMessage('Hello {name}, you have {count} messages', { variables: { name: 'Alice', count: 5 } }); // Retourne : "Hello Alice, you have 5 messages" ``` *** ## Référence ### Paramètres ### Objet d’options | Propriété | Type | Facultatif | Description | | ------------ | -------------------- | ---------- | ----------------------------------------------------------------------------------------------------------- | | `locales` | `string \| string[]` | ✓ | Paramètre(s) régional(aux) à utiliser pour la mise en forme (remplace les valeurs par défaut de l’instance) | | `variables` | `FormatVariables` | ✓ | Objet contenant les variables d’interpolation du message | | `dataFormat` | `StringFormat` | ✓ | Format des données de la chaîne de message (par ex., `'ICU'`, `'I18NEXT'`, `'STRING'`) | ### Type FormatVariables ```typescript type FormatVariables = Record; ``` ### Valeur de retour `chaîne de caractères` - Le message mis en forme, dans lequel les variables ont été remplacées et le formatage propre au paramètre régional a été appliqué. *** ## Comportement ### Substitution de variables * Variables simples : `{variableName}` → remplacées par une chaîne de caractères * Modèles ICU : `{count, plural, ...}` → traités selon les règles de formatage ICU * Variables manquantes : provoqueront une erreur * Accolades doubles : neutraliseront le comportement des accolades et s’afficheront comme une accolade simple ### Prise en charge du format des messages * **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}` * **Pluralisation** : `{count, plural, =0 {none} =1 {one} other {many}}` * **Sélection** : `{gender, select, male {he} female {she} other {they}}` * **Selectordinal** : `{place, selectordinal, =1 {#st} =2 {#nd} =3 {#rd} other {#th}}` *** ## Exemples ### Substitution simple de variables ```typescript const gt = new GT({ targetLocale: 'en' }); const message = gt.formatMessage('Welcome {name}!', { variables: { name: 'John' } }); console.log(message); // "Welcome John!" ``` ### Gestion du pluriel avec le format ICU ```typescript const message = gt.formatMessage( 'You have {count, plural, =0 {no items} =1 {one item} other {# items}} in your cart', { variables: { count: 3 } } ); console.log(message); // "You have 3 items in your cart" (« Vous avez 3 articles dans votre panier ») ``` ### Formatage des nombres et des devises ```typescript const gt = new GT({ targetLocale: 'en' }); const message = gt.formatMessage( 'Your total is {price, number, ::currency/USD} with {discount, number, percent} off', { variables: { price: 99.99, discount: 0.15 } } ); console.log(message); // "Your total is $99.99 with 15% off" ``` ### Templates de messages complexes ```typescript const orderStatusMessage = gt.formatMessage(` Order #{orderId} status update: - Items: {itemCount, plural, =0 {no items} =1 {one item} other {# items}} - Total: {total, number, ::currency/USD} - Status: {status, select, pending {Pending} shipped {Shipped} delivered {Delivered} other {Unknown}} - Delivery: {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 messages ICU pour le formatage avancé via [`Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) de Format.JS. * Les variables manquantes entraînent une erreur. * Le formatage des nombres, des dates et des devises propre au paramètre régional est appliqué automatiquement ## Prochaines étapes * Consultez la [documentation de `Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) pour découvrir d’autres options * Formatez les nombres avec [formatNum](/docs/core/class/methods/formatting/format-num)