# generaltranslation: General Translation Core SDK: formatMessage URL: https://generaltranslation.com/it/docs/core/functions/formatting/format-message.mdx --- title: formatMessage description: Riferimento API per la funzione autonoma formatMessage --- ## Panoramica Il metodo `formatMessage` formatta i messaggi con sostituzione delle variabili e formattazione sensibile all'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 import { formatMessage } from 'generaltranslation'; const formatted = formatMessage('Hello {name}, you have {count} messages', { locales: ['en'], variables: { name: 'Alice', count: 5 } }); // Restituisce: "Hello Alice, you have 5 messages" ``` *** ## Riferimento ### Parametri ### Oggetto delle opzioni | Proprietà | Tipo | Facoltativo | Predefinito | Descrizione | | ----------- | -------------------- | ----------- | ----------- | -------------------------------------------------------- | | `locales` | `string \| string[]` | ✓ | `['en']` | Impostazioni regionali da usare per la formattazione | | `variables` | `FormatVariables` | ✓ | `{}` | Oggetto contenente le variabili per l'interpolazione | ### Restituisce `string` - Il messaggio formattato con le variabili sostituite e con la formattazione specifica dell’impostazione regionale applicata. *** ## Funzionamento ### Gestione delle impostazioni regionali * Usa il parametro `locales` fornito per la formattazione * Usa `['en']` come fallback se non viene specificata alcuna impostazione regionale * Supporta catene di fallback delle impostazioni regionali tramite array ### Elaborazione delle variabili * Sostituzione semplice: `{variable}` → sostituita con il valore * Formato dei messaggi ICU: supporto completo per plurali, selezioni e formattazione * Variabili mancanti: lasciate invariate nell'output ### Supporto del formato dei messaggi Supporta le stesse funzionalità del formato dei messaggi ICU del metodo della classe GT: * Formattazione dei numeri: `{price, number, currency}` * Formattazione delle date: `{date, date, short}` * Pluralizzazione: `{count, plural, ...}` * Selezione: `{gender, select, ...}` *** ## Esempi ### Uso di base ```typescript import { formatMessage } from 'generaltranslation'; const greeting = formatMessage('Hello {name}!', { locales: ['en'], variables: { name: 'World' } }); console.log(greeting); // "Hello World!" ``` ### Senza un'istanza GT ```typescript // Funzione di utilità per la formattazione senza istanziazione della 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" ``` ### Formattazione di valuta e numeri ```typescript // Formattazione con impostazione regionale tedesca const germanPrice = formatMessage('Preis: {price, number, currency}', { locales: ['de'], variables: { price: 1234.56 } }); console.log(germanPrice); // "Preis: 1.234,56 €" // Formattazione percentuale const progress = formatMessage('Progress: {percent, number, percent}', { locales: ['en'], variables: { percent: 0.85 } }); console.log(progress); // "Progress: 85%" ``` ### Libreria di modelli ```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!" (in francese) console.log(templates.itemCount(5)); // "5 éléments" ``` *** ## Note * Richiede di specificare esplicitamente l'impostazione regionale nelle opzioni * Supporta le stesse funzionalità del formato dei messaggi ICU del metodo della classe GT * Restituisce una stringa vuota per i modelli di input vuoti * Le variabili vengono elaborate prima dell'applicazione delle regole di formattazione ICU ## Passaggi successivi * Consulta la documentazione di [`Intl.MessageFormat`](https://formatjs.github.io/docs/intl-messageformat/) per ulteriori opzioni * Usa il metodo [`formatMessage`](/docs/core/class/methods/formatting/format-message) della classe GT per una formattazione con stato * Formatta i numeri con la funzione autonoma [`formatNum`](/docs/core/functions/formatting/format-num) * Scopri il tipo `FormatVariables`