# 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)