# General Translation Platform: formatCutoff
URL: https://generaltranslation.com/it/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Tronca il testo con caratteri e terminatori di troncamento in base all'impostazione regionale. Riferimento API per formatCutoff.

Tronca una stringa su un&#39;istanza di [GT](/docs/platform/core/reference/gt-class/constructor) usando terminatori in base all&#39;impostazione regionale, applicando i caratteri di puntini di sospensione e la spaziatura appropriati per l&#39;impostazione regionale di destinazione. General Translation lo usa per troncare il testo dell&#39;interfaccia utente nel rispetto delle convenzioni delle diverse lingue per indicare il testo troncato.

## Panoramica [#overview]

Chiama `formatCutoff` su un&#39;istanza di [`GT`](/docs/platform/core/reference/gt-class/constructor), passando la stringa da troncare e un oggetto options che specifica `maxChars`. Restituisce la stringa troncata con il terminatore applicato.

```typescript
const gt = new GT({ sourceLocale: 'en', targetLocale: 'fr-FR' });

const formatted = gt.formatCutoff('Hello, world!', {
  maxChars: 8,
});
// "Hello,\u202F…" (spazio unificatore stretto prima dei puntini di sospensione in francese)
```

Firma:

```typescript
formatCutoff(
  value: string,
  options?: { locales?: string | string[] } & CutoffFormatOptions
): string
```

*Nota: `formatCutoff` viene eseguito localmente e non richiede una chiave API. Per impostazione predefinita usa l&#39;impostazione regionale di destinazione dell&#39;istanza, con fallback prima all&#39;impostazione regionale sorgente e poi al valore predefinito della libreria (`en`); passa `locales` per sovrascriverla. Per la formattazione senza un&#39;istanza `GT`, vedi la versione autonoma di [`formatCutoff`](/docs/platform/core/reference/utility-functions/formatting/format-cutoff).*

*Nota: il terminatore e il separatore vengono conteggiati in `maxChars`. Gli output di esempio qui sotto riflettono il comportamento attuale della libreria e correggono diversi esempi della documentazione sorgente che omettevano il terminatore dal conteggio (ad esempio, `maxChars: 8` produce `"Hello, …"`, non `"Hello, w…"`).*

## Come funziona [#how-it-works]

### Risoluzione dell&#39;impostazione regionale

* Per impostazione predefinita usa l&#39;impostazione regionale di destinazione dell&#39;istanza, con fallback prima a quella sorgente e poi al valore predefinito della libreria (`en`).
* Può essere ignorata specificando esplicitamente l&#39;opzione `locales`.

### Gestione del limite di caratteri

* **`maxChars` positivo:** tronca a partire dall&#39;inizio e aggiunge il terminatore.
* **`maxChars` negativo:** esegue il taglio dalla fine (seguendo il comportamento di `.slice()`) e antepone il terminatore.
* **`maxChars` zero:** restituisce una stringa vuota.
* **`maxChars` non definito:** non viene applicato alcun troncamento; restituisce la stringa originale.
* Se il troncamento produce una stringa vuota, non viene aggiunto alcun terminatore.

### Comportamento dipendente dall&#39;impostazione regionale

Il metodo seleziona automaticamente i terminatori appropriati in base alla lingua:

* **Francese (`fr`):** `…` con uno spazio stretto unificatore (`\u202F`).
* **Cinese (`zh`):** doppi puntini di sospensione `……` senza separatore.
* **Giapponese (`ja`):** doppi puntini di sospensione `……` senza separatore.
* **Predefinito:** puntini di sospensione singoli `…` senza separatore.

## Parametri [#parameters]

| Parametro             | Descrizione                        | Tipo     | Facoltativo | Predefinito |
| --------------------- | ---------------------------------- | -------- | ----------- | ----------- |
| [`value`](#value)     | La stringa da troncare.            | `string` | No          | —           |
| [`options`](#options) | Configurazione per il troncamento. | `object` | Sì          | —           |

### `value` [#value]

**Tipo** `stringa` · **Obbligatorio**

La stringa da troncare.

### `options` [#options]

**Tipo** `{ locales?: string | string[] } & CutoffFormatOptions` · **Facoltativo**

Configurazione del troncamento:

| Nome         | Descrizione                                                                                                                                                   | Tipo                   | Facoltativo | Predefinito                                          |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ----------- | ---------------------------------------------------- |
| `locales`    | Impostazioni regionali da usare per la selezione del terminatore (sovrascrivono i valori predefiniti dell&#39;istanza).                                       | `string \| string[]`   | Sì          | impostazioni regionali di rendering dell&#39;istanza |
| `maxChars`   | Numero massimo di caratteri da visualizzare. `Undefined` indica nessun troncamento; i valori negativi tagliano dalla fine; `0` restituisce una stringa vuota. | `number`               | Sì          | —                                                    |
| `style`      | Stile del terminatore.                                                                                                                                        | `'ellipsis' \| 'none'` | Sì          | `'ellipsis'`                                         |
| `terminator` | Terminatore personalizzato per sovrascrivere i valori predefiniti dell&#39;impostazione regionale.                                                            | `string`               | Sì          | —                                                    |
| `separator`  | Separatore personalizzato tra il terminatore e il testo. Ignorato se non viene fornito alcun terminatore.                                                     | `string`               | Sì          | —                                                    |

Il tipo `CutoffFormatOptions`:

```typescript
interface CutoffFormatOptions {
  maxChars?: number;
  style?: 'ellipsis' | 'none';
  terminator?: string;
  separator?: string;
}
```

## Valore restituito [#returns]

**Tipo** `string`

La stringa troncata con il terminatore appropriato, applicato in base alle convenzioni dell&#39;impostazione regionale.

## Esempi [#examples]

```typescript
// Utilizzo di base con le impostazioni regionali dell'istanza
const gt = new GT({ targetLocale: 'en-US' });

const truncated = gt.formatCutoff('Hello, world!', {
  maxChars: 8,
});
console.log(truncated); // "Hello, …"
```

```typescript
// Override dell'impostazione regionale
const gt = new GT({ targetLocale: 'en-US' });

const french = gt.formatCutoff('Bonjour le monde', {
  locales: 'fr-FR',
  maxChars: 10,
});
console.log(french); // "Bonjour \u202F…"
```

```typescript
// Limiti di caratteri negativi
const gt = new GT({ targetLocale: 'en-US' });

// Taglia dalla fine
const fromEnd = gt.formatCutoff('JavaScript Framework', {
  maxChars: -9,
});
console.log(fromEnd); // "…ramework"

// Taglio negativo più grande
const moreFromEnd = gt.formatCutoff('Hello, world!', {
  maxChars: -3,
});
console.log(moreFromEnd); // "…d!"
```

```typescript
// Opzioni di stile personalizzate
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"
```

```typescript
// Applicazione multilingue
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: "Very Long Engl…"

console.log(chineseUI.truncateTitle('很长的中文标题在这里', 8));
// Output: "很长的中文标……"
```

```typescript
// Gestione dinamica dell'impostazione regionale
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,
  });
}

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 [#notes]

* Il metodo usa l&#39;impostazione regionale di destinazione dell&#39;istanza GT per il rilevamento automatico dell&#39;impostazione regionale, con fallback prima sull&#39;impostazione regionale sorgente e poi sul valore predefinito della libreria (`en`).
* La lunghezza del terminatore e del separatore viene considerata nel calcolo del limite di caratteri.
* Se la lunghezza complessiva di terminatore e separatore supera `maxChars`, il metodo restituisce una stringa vuota.
* I terminatori personalizzati sostituiscono completamente quelli predefiniti specifici dell&#39;impostazione regionale.
* Le prestazioni sono ottimizzate grazie alla memorizzazione nella cache interna delle istanze del formattatore.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
