# General Translation Platform: formatCutoff
URL: https://generaltranslation.com/it/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx
Docs index: https://generaltranslation.com/llms.txt
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&#39;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&#39;istanza di [GT](/docs/platform/core/reference/gt-class/constructor). Per il troncamento a livello di istanza, che eredita l&#39;impostazione regionale dell&#39;istanza, usa invece il metodo [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) di un&#39;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&#39;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&#39;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&#39;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&#39;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<string, number> = {
    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&#39;impostazione regionale.
* I separatori vengono ignorati se non è presente alcun terminatore.

## Sitemap

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