# generaltranslation: General Translation Core SDK: formatCutoff URL: https://generaltranslation.com/fr/docs/core/functions/formatting/format-cutoff.mdx --- title: formatCutoff description: Fonction autonome pour tronquer des chaînes avec des terminateurs adaptés au paramètre régional --- ## Vue d’ensemble La fonction autonome `formatCutoff` tronque les chaînes à l’aide de terminateurs appropriés selon le paramètre régional, sans nécessiter d’instance GT. Elle fournit une troncature de texte adaptée au paramètre régional, en respectant les conventions propres aux différentes langues en matière de points de suspension et d’espacement. ```typescript import { formatCutoff } from 'generaltranslation'; const formatted = formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8 }); // Retourne : "Hello, w…" ``` ## Référence ### Paramètres | Nom | Type | Description | | --------- | -------------------------------------------------------- | --------------------------- | | `value` | `string` | La chaîne à tronquer | | `options` | `CutoffFormatOptions & { locales?: string \| string[] }` | Configuration de troncature | ### CutoffFormatOptions | Name | Type | Description | | ------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | `locales?` | `string \| string[]` | Paramètres régionaux utilisés pour sélectionner le terminateur | | `maxChars?` | `number` | Nombre maximal de caractères à afficher. `undefined` signifie qu'aucune coupure n'est appliquée. Les valeurs négatives tronquent à partir de la fin | | `style?` | `'ellipsis' \| 'none'` | Style du terminateur. Par défaut : `'ellipsis'` | | `terminator?` | `string` | Terminateur personnalisé remplaçant celui par défaut du paramètre régional | | `separator?` | `string` | Séparateur personnalisé entre le terminateur et le texte | ### Retourne `string` - La chaîne tronquée avec le terminateur approprié. *** ## Comportement ### Limites de caractères * **`maxChars` positif** : Tronque la fin et ajoute le terminateur * **`maxChars` négatif** : Prend la fin de la chaîne et ajoute le terminateur au début * **`maxChars` nul** : Renvoie une chaîne vide * **`maxChars` non défini** : Aucune troncature n’est appliquée ### Terminateurs spécifiques au paramètre régional Les conventions relatives aux points de suspension varient selon les paramètres régionaux : * **Français** : `…` avec une espace fine insécable (`\u202F`) * **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 + du séparateur dépasse `maxChars`, renvoie une chaîne vide * Si la chaîne d'origine est plus courte que `maxChars`, elle est renvoyée inchangée * Le style `'none'` tronque sans aucun terminateur *** ## Exemples ### Utilisation de base ```typescript import { formatCutoff } from 'generaltranslation'; // Troncature de base console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8 })); // Sortie : "Hello, w…" // Aucune troncature nécessaire console.log(formatCutoff('Short', { locales: 'en-US', maxChars: 10 })); // Sortie : "Short" ``` ### Limites de caractères négatives ```typescript // Découpe depuis la fin console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: -3 })); // Sortie : "…ld!" // Découpe négative plus grande console.log(formatCutoff('JavaScript', { locales: 'en-US', maxChars: -6 })); // Sortie : "…Script" ``` ### Terminateurs propres au paramètre régional ```typescript // Formatage français console.log(formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10 })); // Sortie : "Bonjour\u202F…" (espace fine avant les points de suspension) // Formatage chinois console.log(formatCutoff('你好世界', { locales: 'zh-CN', maxChars: 3 })); // Sortie : "你好……" // Formatage japonais console.log(formatCutoff('こんにちは', { locales: 'ja-JP', maxChars: 4 })); // Sortie : "こん……" ``` ### Terminateurs personnalisés ```typescript // Terminateur personnalisé console.log(formatCutoff('Long text here', { locales: 'en-US', maxChars: 10, terminator: '...' })); // Sortie : "Long te..." // Terminateur personnalisé avec séparateur console.log(formatCutoff('Another example', { locales: 'en-US', maxChars: 12, terminator: '[more]', separator: ' ' })); // Sortie : "Anoth [more]" // Sans terminateur console.log(formatCutoff('Clean cut', { locales: 'en-US', maxChars: 5, style: 'none' })); // Sortie : "Clean" ``` ### Fonctions utilitaires ```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-locale function truncateByLocale(text: string, locale: string) { const limits = { '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)); // Sortie : "This is a ve…" console.log(truncateByLocale('Eine sehr lange deutsche Beschreibung', 'de')); // Sortie : "Eine sehr lange deutsche Besch…" ``` *** ## Remarques * Contrairement à la méthode de classe GT, le paramètre `locales` est facultatif et sa valeur par défaut est `'en'` * Les résultats sont mis en cache en interne pour de meilleures performances avec des combinaisons récurrentes de paramètres régionaux et d’options * La longueur du terminateur est prise en compte dans les calculs de limite de caractères * Les terminateurs personnalisés remplacent les valeurs par défaut propres au paramètre régional * Les séparateurs sont ignorés lorsqu’aucun terminateur n’est présent ## Étapes suivantes * Utilisez la méthode [`formatCutoff`](/docs/core/class/methods/formatting/format-cutoff) de la classe GT pour une utilisation par instance * Consultez d’autres fonctions de formatage, comme [`formatMessage`](/docs/core/functions/formatting/format-message) * Voir [`formatNum`](/docs/core/functions/formatting/format-num) pour le formatage des nombres