formatMessage
Référence de l’API de la méthode formatMessage de GT
Vue d’ensemble
La méthode formatMessage formate des messages avec substitution de variables et un formatage sensible à la locale.
Construite 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('Hello {name}, you have {count} messages', {
variables: { name: 'Alice', count: 5 }
});
// Retourne : « Hello Alice, you have 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 paramètres 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 formaté avec les variables remplacées et le formatage spécifique à la locale appliqué.
Comportement
Substitution de variables
- Variables simples :
{variableName}→ remplacées par une chaîne - Modèles ICU :
{count, plural, ...}→ traités selon les règles de formatage ICU - Variables manquantes : entraînent une Error
- 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}} - Sélection ordinale :
{place, selectordinal, =1 {#er} =2 {#e} =3 {#e} other {#e}}
Exemples
Substitution de variables simple
const gt = new GT({ localeCible: 'en' });
const message = gt.formatMessage('Bienvenue {name} !', {
variables: { name: 'John' }
});
console.log(message); // "Bienvenue 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 »Formatage des nombres et des devises
const gt = new GT({ localeCible: 'en' });
const message = gt.formatMessage(
'Votre total est de {price, number, ::currency/USD} avec {discount, number, percent} de réduction',
{
variables: {
price: 99.99,
discount: 0.15
}
}
);
console.log(message); // « Votre total est de 99,99 $ avec 15 % de réduction »Modèles de messages complexes
const orderStatusMessage = gt.formatMessage(`
Commande n°{orderId} - mise à jour du statut :
- 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')
}
});Remarques
- La méthode interprète la syntaxe du format de message ICU pour un formatage avancé à l’aide de
Intl.MessageFormatde Format.JS. - Les variables manquantes déclencheront une Error.
- Le formatage des nombres, des dates et des devises spécifique à la locale est appliqué automatiquement.
Prochaines étapes
- Consultez la documentation d’
Intl.MessageFormatpour plus d’options - Formatez les nombres avec formatNum
Comment trouvez-vous ce guide ?