# General Translation Platform: formatCutoff URL: https://generaltranslation.com/fr/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx --- title: formatCutoff 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 = { 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.