# General Translation Platform: formatCutoff URL: https://generaltranslation.com/it/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx --- title: formatCutoff description: Tronca il testo con caratteri di troncamento in base all'impostazione regionale senza un'istanza GT. Riferimento API per formatCutoff. --- [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) è una funzione di utilità autonoma della libreria Core di General Translation che tronca le stringhe con terminatori di troncamento in base all'impostazione regionale. Rispetta le convenzioni di ogni lingua per i caratteri di puntini di sospensione e la spaziatura. ## Panoramica [#overview] Importa `formatCutoff` direttamente da `generaltranslation` e chiamalo con una stringa e un oggetto options. Non richiede una chiave API né un'istanza di [GT](/docs/platform/core/reference/gt-class/constructor). Per il troncamento a livello di istanza, che eredita l'impostazione regionale dell'istanza, usa invece il metodo [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) di un'istanza di [`GT`](/docs/platform/core/reference/gt-class/constructor). ```typescript import { formatCutoff } from 'generaltranslation'; const formatted = formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8, }); // Restituisce: "Hello, …" ``` Firma: ```typescript formatCutoff( value: string, options?: { locales?: string | string[] } & CutoffFormatOptions ): string ``` ## Come funziona [#how-it-works] Il terminatore e il separatore rientrano nel conteggio di `maxChars`. In altre parole, la stringa restituita (incluso il terminatore) è lunga al massimo `maxChars` caratteri. ### Limiti di caratteri * **`maxChars` positivo:** tronca all'inizio e aggiunge il terminatore. * **`maxChars` negativo:** taglia dalla fine (seguendo il comportamento di `Array.prototype.slice`) e antepone il terminatore. * **`maxChars` pari a zero:** restituisce una stringa vuota. * **`maxChars` non definito:** non viene applicato alcun troncamento. ### Terminatori specifici dell'impostazione regionale Le diverse impostazioni regionali usano convenzioni diverse per i puntini di sospensione: * **Francese:** `…` con un separatore costituito da uno spazio unificatore stretto (`\u202F`). * **Cinese/Giapponese:** doppi puntini di sospensione `……` senza separatore. * **Predefinito:** un singolo puntino di sospensione `…` senza separatore. ### Casi particolari * Se la lunghezza complessiva del terminatore e del separatore supera `maxChars`, il risultato è una stringa vuota. * Una stringa più corta di `maxChars` viene restituita invariata. * Lo stile `'none'` tronca senza alcun terminatore. * Se `locales` viene omesso, viene usata l'impostazione regionale predefinita della libreria, `en`. ## Parametri [#parameters] | Parametro | Descrizione | Tipo | Facoltativo | Predefinito | | --------------------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------- | ----------- | | [`value`](#value) | La stringa da troncare. | `string` | No | — | | [`options`](#options) | Configurazione del troncamento, incluse le impostazioni regionali di destinazione. | `{ locales?: string \| string[] } & CutoffFormatOptions` | Sì | `{}` | ### `value` [#value] **Tipo** `string` · **Obbligatorio** La stringa da troncare. ### `options` [#options] **Tipo** `{ locales?: string | string[] } & CutoffFormatOptions` · **Facoltativo** · **Predefinito** `{}` Configurazione del troncamento: | Proprietà | Descrizione | Tipo | Facoltativo | Predefinito | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------- | ------------ | | `locales` | Impostazioni regionali per la selezione del terminatore. | `string \| string[]` | Sì | `en` | | `maxChars` | Numero massimo di caratteri da visualizzare (incluso il terminatore). Undefined indica che non viene applicato alcun troncamento; i valori negativi tagliano a partire dalla fine. | `number` | Sì | — | | `style` | Stile del terminatore. | `'ellipsis' \| 'none'` | Sì | `'ellipsis'` | | `terminator` | Terminatore personalizzato che sovrascrive i valori predefiniti dell'impostazione regionale. | `string` | Sì | — | | `separator` | Separatore personalizzato tra il terminatore e il testo. Ignorato se non è presente alcun terminatore. | `string` | Sì | — | ## Restituisce [#returns] **Tipo** `stringa` La stringa troncata con il terminatore appropriato. ## Esempi [#examples] ```typescript import { formatCutoff } from 'generaltranslation'; // Troncamento di base (l'ellissi conta ai fini di maxChars) console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8, })); // Output: "Hello, …" // Nessun troncamento necessario console.log(formatCutoff('Short', { locales: 'en-US', maxChars: 10, })); // Output: "Short" ``` ```typescript // I limiti di caratteri negativi tagliano dalla fine // Taglia dalla fine console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: -3, })); // Output: "…d!" // Taglio negativo più grande console.log(formatCutoff('JavaScript', { locales: 'en-US', maxChars: -6, })); // Output: "…cript" ``` ```typescript // Terminatori specifici per impostazione regionale // Formattazione francese (spazio unificatore stretto prima dei puntini di sospensione) console.log(formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10, })); // Output: "Bonjour \u202F…" // Formattazione cinese (puntini di sospensione doppi, nessun separatore) console.log(formatCutoff('你好世界', { locales: 'zh-CN', maxChars: 3, })); // Output: "你……" // Formattazione giapponese console.log(formatCutoff('こんにちは', { locales: 'ja-JP', maxChars: 4, })); // Output: "こん……" ``` ```typescript // Terminatori personalizzati // Terminatore personalizzato console.log(formatCutoff('Long text here', { locales: 'en-US', maxChars: 10, terminator: '...', })); // Output: "Long te..." // Terminatore personalizzato con separatore console.log(formatCutoff('Another example', { locales: 'en-US', maxChars: 12, terminator: '[more]', separator: ' ', })); // Output: "Anoth [more]" // Senza terminatore console.log(formatCutoff('Clean cut', { locales: 'en-US', maxChars: 5, style: 'none', })); // Output: "Clean" ``` ```typescript import { formatCutoff } from 'generaltranslation'; // Tronca per la visualizzazione nell'interfaccia utente function displayText(text: string, maxLength: number, locale = 'en-US') { return formatCutoff(text, { locales: locale, maxChars: maxLength, }); } // Troncamento multi-locale function truncateByLocale(text: string, locale: string) { const limits: Record = { en: 50, de: 45, // Le parole tedesche tendono ad essere più lunghe zh: 30, // I caratteri cinesi sono più densi }; return formatCutoff(text, { locales: locale, maxChars: limits[locale] || 50, }); } console.log(displayText('This is a very long description', 15)); // Output: "This is a very…" console.log(truncateByLocale('Eine sehr lange deutsche Beschreibung mit vielen Wörtern', 'de')); // Output: "Eine sehr lange deutsche Beschreibung mit vi…" ``` ## Note [#notes] * A differenza del metodo della classe GT, `locales` è facoltativo e il valore predefinito è `en`. * Per migliorare le prestazioni, i risultati vengono memorizzati internamente nella cache per combinazioni ripetute di impostazione regionale/opzioni. * La lunghezza del terminatore (e del separatore) viene considerata nel calcolo del limite di caratteri. * I terminatori personalizzati sostituiscono quelli predefiniti specifici dell'impostazione regionale. * I separatori vengono ignorati se non è presente alcun terminatore.