# generaltranslation: General Translation Core SDK: formatMessage
URL: https://generaltranslation.com/it/docs/core/class/methods/formatting/format-message.mdx
---
title: formatMessage
description: Riferimento API per il metodo formatMessage di GT
---
## Panoramica
Il metodo `formatMessage` formatta i messaggi con sostituzione delle variabili e formattazione basata sull'impostazione regionale.
Basato sulla libreria [`intl-messageformat`](https://formatjs.github.io/docs/intl-messageformat/) di Format.JS, supporta i pattern del formato dei messaggi ICU.
Questo metodo è essenziale per l'interpolazione delle variabili e la pluralizzazione.
Supporta anche la formattazione di numeri e date, tra le altre funzionalità.
```typescript
const gt = new GT({
sourceLocale: 'en',
targetLocale: 'fr'
});
const formatted = gt.formatMessage('Hello {name}, you have {count} messages', {
variables: { name: 'Alice', count: 5 }
});
// Restituisce: "Hello Alice, you have 5 messages"
```
***
## Riferimento
### Parametri
### Oggetto delle opzioni
| Proprietà | Tipo | Facoltativo | 说明 |
| ------------ | -------------------- | ----------- | --------------------------------------------------------------------------------------------------------------- |
| `locales` | `string \| string[]` | ✓ | Impostazioni regionali da usare per la formattazione (sovrascrive le impostazioni predefinite dell'istanza) |
| `variables` | `FormatVariables` | ✓ | Oggetto contenente le variabili per l'interpolazione del messaggio |
| `dataFormat` | `StringFormat` | ✓ | Formato dei dati della stringa del messaggio (ad esempio, `'ICU'`, `'I18NEXT'`, `'STRING'`) |
### Tipo FormatVariables
```typescript
type FormatVariables = Record;
```
### Restituisce
`string` - Il messaggio formattato, con le variabili sostituite e la formattazione specifica per l'impostazione regionale applicata.
***
## Comportamento
### Sostituzione delle variabili
* Variabili semplici: `{variableName}` → sostituite con un valore di tipo cadena
* Pattern ICU: `{count, plural, ...}` → elaborati secondo le regole di formattazione ICU
* Variabili mancanti: generano un errore
* Doppie parentesi graffe: eseguono l'escape delle parentesi graffe e vengono visualizzate come una singola parentesi graffa
### Supporto per il formato dei messaggi
* **Interpolazione semplice**: `{variable}`
* **Formattazione numerica**: `{price, number, ::currency/USD}`, `{discount, number, percent}`, `{num, number, integer}`
* **Formattazione di data e ora**: `{date, date, short}`, `{time, time, short}`
* **Pluralizzazione**: `{count, plural, =0 {none} =1 {one} other {many}}`
* **Selezione**: `{gender, select, male {he} female {she} other {they}}`
* **Selectordinal**: `{place, selectordinal, =1 {#st} =2 {#nd} =3 {#rd} other {#th}}`
***
## Esempi
### Sostituzione di variabili di base
```typescript
const gt = new GT({ targetLocale: 'en' });
const message = gt.formatMessage('Welcome {name}!', {
variables: { name: 'John' }
});
console.log(message); // "Welcome John!"
```
### Pluralizzazione nel formato 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); // "Hai 3 articoli nel tuo carrello"
```
### Formattazione di numeri e valute
```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); // "Il tuo totale è $99.99 con il 15% di sconto"
```
### Template per messaggi complessi
```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')
}
});
```
***
## Note
* Il metodo elabora la sintassi del formato dei messaggi ICU per la formattazione avanzata utilizzando [`Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) di Format.JS.
* Le variabili mancanti generano un errore.
* La formattazione di numeri, date e valute specifica dell'impostazione regionale viene applicata automaticamente
## Passaggi successivi
* Consulta la documentazione di [`Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) per altre opzioni
* Formatta i numeri con [formatNum](/docs/core/class/methods/formatting/format-num)