# General Translation Platform: formatCutoff
URL: https://generaltranslation.com/fr/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx
Docs index: https://generaltranslation.com/llms.txt
Description: Tronquez du texte avec des caractères de troncature adaptés au paramètre régional, sans instance GT. Référence de l’API pour formatCutoff.

[`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) est une fonction utilitaire indépendante de la bibliothèque Core de General Translation qui tronque des chaînes de caractères avec des terminateurs adaptés au paramètre régional. Elle respecte les conventions propres à chaque langue en matière de points de suspension et d’espacement.

## Vue d’ensemble [#overview]

Importez `formatCutoff` directement depuis `generaltranslation` et appelez-la avec une chaîne de caractères et un objet d’options. Elle ne nécessite ni clé API ni instance de [GT](/docs/platform/core/reference/gt-class/constructor). Pour une troncature basée sur une instance qui hérite du paramètre régional de l’instance, utilisez plutôt la méthode [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) d’une instance [`GT`](/docs/platform/core/reference/gt-class/constructor).

```typescript
import { formatCutoff } from 'generaltranslation';

const formatted = formatCutoff('Hello, world!', {
  locales: 'en-US',
  maxChars: 8,
});
// Retourne : "Hello, …"
```

Signature :

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

## Fonctionnement [#how-it-works]

Le terminateur et le séparateur sont comptabilisés dans `maxChars`. Autrement dit, la chaîne renvoyée (y compris le terminateur) ne dépasse pas `maxChars` caractères.

### Limites de caractères

* **`maxChars` positif :** tronque à partir du début et ajoute le terminateur à la fin.
* **`maxChars` négatif :** découpe à partir de la fin (conformément au comportement de `Array.prototype.slice`) et ajoute le terminateur au début.
* **`maxChars` égal à zéro :** renvoie une `string` vide.
* **`maxChars` non défini :** aucune troncature n’est appliquée.

### Terminateurs selon le paramètre régional

Différents paramètres régionaux suivent des conventions différentes pour les points de suspension :

* **Français :** `…` avec une espace fine insécable (`\u202F`) comme séparateur.
* **Chinois/Japonais :** double point de suspension `……` sans séparateur.
* **Par défaut :** point de suspension simple `…` sans séparateur.

### Cas limites

* Si la longueur du terminateur plus le séparateur dépasse `maxChars`, le résultat est une chaîne vide.
* Une chaîne plus courte que `maxChars` est renvoyée inchangée.
* Le style `'none'` tronque sans terminateur.
* Lorsque `locales` est omis, la valeur de repli est le paramètre régional par défaut de la bibliothèque, `en`.

## Paramètres [#parameters]

| Paramètre             | Description                                                                   | Type                                                     | Facultatif | Par défaut |
| --------------------- | ----------------------------------------------------------------------------- | -------------------------------------------------------- | ---------- | ---------- |
| [`value`](#value)     | La chaîne à tronquer.                                                         | `string`                                                 | Non        | —          |
| [`options`](#options) | Configuration de troncature, y compris le ou les paramètres régionaux cibles. | `{ locales?: string \| string[] } & CutoffFormatOptions` | Oui        | `{}`       |

### `value` [#value]

**Type** `string` · **Obligatoire**

Chaîne à tronquer.

### `options` [#options]

**Type** `{ locales?: string | string[] } & CutoffFormatOptions` · **Facultatif** · **Par défaut** `{}`

Configuration de la troncature :

| Propriété    | Description                                                                                                                                                             | Type                   | Facultatif | Par défaut   |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ---------- | ------------ |
| `locales`    | Paramètre(s) régional(aux) pour la sélection du terminateur.                                                                                                            | `string \| string[]`   | Oui        | `en`         |
| `maxChars`   | Nombre maximal de caractères à afficher (y compris le terminateur). `Undefined` signifie qu’il n’y a pas de troncature ; les valeurs négatives tronquent depuis la fin. | `number`               | Oui        | —            |
| `style`      | Style du terminateur.                                                                                                                                                   | `'ellipsis' \| 'none'` | Oui        | `'ellipsis'` |
| `terminator` | Terminateur personnalisé qui remplace les valeurs par défaut du paramètre régional.                                                                                     | `string`               | Oui        | —            |
| `separator`  | Séparateur personnalisé entre le terminateur et le texte. Ignoré en l’absence de terminateur.                                                                           | `string`               | Oui        | —            |

## Renvoie [#returns]

**Type** `string`

La chaîne tronquée avec le terminateur approprié.

## Exemples [#examples]

```typescript
import { formatCutoff } from 'generaltranslation';

// Troncature de base (le point de suspension est compté dans maxChars)
console.log(formatCutoff('Hello, world!', {
  locales: 'en-US',
  maxChars: 8,
}));
// Résultat : "Hello, …"

// Aucune troncature nécessaire
console.log(formatCutoff('Short', {
  locales: 'en-US',
  maxChars: 10,
}));
// Résultat : "Short"
```

```typescript
// Les limites de caractères négatives découpent depuis la fin

// Découpe depuis la fin
console.log(formatCutoff('Hello, world!', {
  locales: 'en-US',
  maxChars: -3,
}));
// Résultat : "…d!"

// Découpe négative plus large
console.log(formatCutoff('JavaScript', {
  locales: 'en-US',
  maxChars: -6,
}));
// Résultat : "…cript"
```

```typescript
// Terminateurs spécifiques au paramètre régional

// Formatage français (espace fine insécable avant les points de suspension)
console.log(formatCutoff('Bonjour le monde', {
  locales: 'fr-FR',
  maxChars: 10,
}));
// Sortie : "Bonjour \u202F…"

// Formatage chinois (points de suspension doubles, sans séparateur)
console.log(formatCutoff('你好世界', {
  locales: 'zh-CN',
  maxChars: 3,
}));
// Sortie : "你……"

// Formatage japonais
console.log(formatCutoff('こんにちは', {
  locales: 'ja-JP',
  maxChars: 4,
}));
// Sortie : "こん……"
```

```typescript
// Terminateurs personnalisés

// Terminateur personnalisé
console.log(formatCutoff('Long text here', {
  locales: 'en-US',
  maxChars: 10,
  terminator: '...',
}));
// Résultat : "Long te..."

// Terminateur personnalisé avec séparateur
console.log(formatCutoff('Another example', {
  locales: 'en-US',
  maxChars: 12,
  terminator: '[more]',
  separator: ' ',
}));
// Résultat : "Anoth [more]"

// Sans terminateur
console.log(formatCutoff('Clean cut', {
  locales: 'en-US',
  maxChars: 5,
  style: 'none',
}));
// Résultat : "Clean"
```

```typescript
import { formatCutoff } from 'generaltranslation';

// Tronquer pour l'affichage dans l'interface
function displayText(text: string, maxLength: number, locale = 'en-US') {
  return formatCutoff(text, {
    locales: locale,
    maxChars: maxLength,
  });
}

// Troncature multi-paramètres régionaux
function truncateByLocale(text: string, locale: string) {
  const limits: Record<string, number> = {
    en: 50,
    de: 45, // Les mots allemands ont tendance à être plus longs
    zh: 30, // Les caractères chinois sont plus denses
  };

  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…"
```

## Remarques [#notes]

* Contrairement à la méthode de la classe GT, `locales` est facultatif et sa valeur par défaut est `en`.
* Les résultats sont mis en cache en interne pour de meilleures performances lorsque les mêmes combinaisons de paramètre régional et d’options sont réutilisées.
* La longueur du terminateur (et du séparateur) est prise en compte dans le calcul de la limite de caractères.
* Les terminateurs personnalisés remplacent les valeurs par défaut spécifiques au paramètre régional.
* Les séparateurs sont ignorés lorsqu’aucun terminateur n’est présent.

## Sitemap

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