# generaltranslation: General Translation Core SDK: formatCutoff URL: https://generaltranslation.com/it/docs/core/class/methods/formatting/format-cutoff.mdx --- title: formatCutoff description: Riferimento API per il metodo formatCutoff di GT --- ## Panoramica Il metodo `formatCutoff` tronca le stringhe con terminatori specifici dell'impostazione regionale, applicando i caratteri di sospensione e la spaziatura appropriati in base all'impostazione regionale di destinazione. Questo metodo è essenziale per il troncamento del testo dell'interfaccia utente nel rispetto delle convenzioni delle diverse lingue per indicare il testo troncato. ```typescript const gt = new GT({ sourceLocale: 'en', targetLocale: 'fr-FR' }); const formatted = gt.formatCutoff('Hello, world!', { maxChars: 8 }); // Restituisce: "Hello, w\u202F…" (con spazio stretto in francese) ``` *** ## Guida di riferimento ### Parametri ### Oggetto opzioni | Proprietà | Tipo | Facoltativo | Descrizione | | ------------ | ---------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------- | | `locales` | `string \| string[]` | ✓ | Impostazioni regionali da usare per la selezione del terminatore (sovrascrive i valori predefiniti dell'istanza) | | `maxChars` | `number` | ✓ | Numero massimo di caratteri da visualizzare. `undefined` indica nessun troncamento. I valori negativi troncano dalla fine | | `style` | `'ellipsis' \| 'none'` | ✓ | Stile del terminatore. Il valore predefinito è `'ellipsis'` | | `terminator` | `string` | ✓ | Terminatore personalizzato per sovrascrivere i valori predefiniti dell'impostazione regionale | | `separator` | `string` | ✓ | Separatore personalizzato tra il terminatore e il testo | ### Tipo `CutoffFormatOptions` ```typescript interface CutoffFormatOptions { maxChars?: number; style?: 'ellipsis' | 'none'; terminator?: string; separator?: string; } ``` ### Restituisce `string` - La stringa troncata con il terminatore appropriato applicato in base alle convenzioni dell'impostazione regionale. *** ## Comportamento ### Determinazione dell'impostazione regionale * Usa `_renderingLocales` dell'istanza per impostazione predefinita (include `sourceLocale`, `targetLocale` e il fallback) * Può essere sostituita specificando esplicitamente l'opzione `locales` * Se la determinazione non va a buon fine, usa l'impostazione regionale predefinita della libreria come fallback ### Gestione del limite di caratteri * **`maxChars` positivo**: Tronca dall'inizio e aggiunge il terminatore * **`maxChars` negativo**: Taglia dalla fine e antepone il terminatore * **`maxChars` pari a zero**: Restituisce una stringa vuota * **`maxChars` non definito**: Non viene applicato alcun troncamento e viene restituita la stringa originale ### Comportamento specifico dell'impostazione regionale Il metodo seleziona automaticamente i terminatori appropriati in base alla lingua: * **Francese (`fr`)**: `…` con spazio unificatore non divisibile stretto (`\u202F`) * **Cinese (`zh`)**: doppio punto di sospensione `……` senza separatore * **Giapponese (`ja`)**: doppio punto di sospensione `……` senza separatore * **Predefinito**: punto di sospensione singolo `…` senza separatore *** ## Esempi ### Uso di base con le impostazioni regionali dell'istanza ```typescript const gt = new GT({ targetLocale: 'en-US' }); const truncated = gt.formatCutoff('Hello, world!', { maxChars: 8 }); console.log(truncated); // "Hello, w…" ``` ### Sovrascrittura dell'impostazione regionale ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Sovrascrittura dell'impostazione regionale dell'istanza const french = gt.formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10 }); console.log(french); // "Bonjour\u202F…" ``` ### Limiti di caratteri con valori negativi ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Taglia dalla fine const fromEnd = gt.formatCutoff('JavaScript Framework', { maxChars: -9 }); console.log(fromEnd); // "…Framework" // Taglio negativo più grande const moreFromEnd = gt.formatCutoff('Hello, world!', { maxChars: -3 }); console.log(moreFromEnd); // "…ld!" ``` ### Opzioni di stile personalizzato ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Terminatore personalizzato const custom = gt.formatCutoff('Long description text', { maxChars: 12, terminator: '...' }); console.log(custom); // "Long desc..." // Terminatore personalizzato con separatore const customSep = gt.formatCutoff('Another example', { maxChars: 10, terminator: '[...]', separator: ' ' }); console.log(customSep); // "Anot [...]" // Nessun terminatore const none = gt.formatCutoff('Clean cut text', { maxChars: 5, style: 'none' }); console.log(none); // "Clean" ``` ### Applicazione multilingue ```typescript class UserInterface { private gt: GT; constructor(locale: string) { this.gt = new GT({ targetLocale: locale }); } truncateTitle(title: string, maxLength = 20): string { return this.gt.formatCutoff(title, { maxChars: maxLength }); } truncateDescription(description: string): string { return this.gt.formatCutoff(description, { maxChars: 100 }); } } const englishUI = new UserInterface('en-US'); const chineseUI = new UserInterface('zh-CN'); console.log(englishUI.truncateTitle('Very Long English Title Here', 15)); // Output (risultato): "Very Long Engl…" console.log(chineseUI.truncateTitle('很长的中文标题在这里', 8)); // Output (risultato): "很长的中文标题……" ``` ### Gestione dinamica dell’impostazione regionale ```typescript const gt = new GT({ sourceLocale: 'en', targetLocale: 'en' }); function adaptiveText(text: string, userLocale: string, context: 'title' | 'body') { const limits = { title: { 'en': 50, 'fr': 45, 'de': 40, 'zh': 25 }, body: { 'en': 200, 'fr': 180, 'de': 160, 'zh': 100 } }; const maxChars = limits[context][userLocale] || limits[context]['en']; return gt.formatCutoff(text, { locales: userLocale, maxChars }); } // Utilizzo nell'applicazione const userPrefs = [ { locale: 'fr-FR', text: 'Une très longue description française' }, { locale: 'zh-CN', text: '这是一个非常长的中文描述文本' }, { locale: 'de-DE', text: 'Eine sehr lange deutsche Beschreibung' } ]; userPrefs.forEach(({ locale, text }) => { console.log(`${locale}: ${adaptiveText(text, locale, 'title')}`); }); ``` *** ## Note * Il metodo usa `_renderingLocales` dell'istanza GT per rilevare automaticamente l'impostazione regionale * La lunghezza del terminatore e del separatore viene considerata nel calcolo del limite di caratteri * Se la lunghezza di terminatore + separatore supera `maxChars`, restituisce una stringa vuota * I terminatori personalizzati sostituiscono completamente i valori predefiniti specifici dell'impostazione regionale * Le prestazioni sono ottimizzate grazie al caching interno delle istanze del formattatore ## Passi successivi * Usa [`formatCutoff`](/docs/core/functions/formatting/format-cutoff) in modalità autonoma, senza un'istanza GT * Formatta i messaggi con [`formatMessage`](/docs/core/class/methods/formatting/format-message) * Formatta i numeri con [`formatNum`](/docs/core/class/methods/formatting/format-num) * Scopri le [proprietà dell'impostazione regionale](/docs/core/class/methods/locales/get-locale-properties)