# generaltranslation: General Translation Core SDK: formatCutoff URL: https://generaltranslation.com/fr/docs/core/class/methods/formatting/format-cutoff.mdx --- title: formatCutoff description: Référence API de la méthode formatCutoff de GT --- ## Aperçu La méthode `formatCutoff` tronque les chaînes à l’aide de terminateurs adaptés au paramètre régional, en appliquant les caractères de points de suspension et l’espacement appropriés selon le paramètre régional cible. Cette méthode est essentielle pour la troncature du texte de l’interface utilisateur, dans le respect des conventions propres à chaque langue pour signaler qu’un texte a été tronqué. ```typescript const gt = new GT({ sourceLocale: 'en', targetLocale: 'fr-FR' }); const formatted = gt.formatCutoff('Hello, world!', { maxChars: 8 }); // Retourne : "Hello, w\u202F…" (avec espace fine en français) ``` *** ## Référence ### Paramètres ### Objet d’options | Propriété | Type | Facultatif | Description | | ------------ | ---------------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | `locales` | `string \| string[]` | ✓ | Paramètre(s) régional(aux) à utiliser pour sélectionner le terminateur (remplace les valeurs par défaut de l’instance) | | `maxChars` | `number` | ✓ | Nombre maximal de caractères à afficher. `undefined` signifie qu’aucune troncature n’est appliquée. Les valeurs négatives tronquent à partir de la fin | | `style` | `'ellipsis' \| 'none'` | ✓ | Style du terminateur. Valeur par défaut : `'ellipsis'` | | `terminator` | `string` | ✓ | Terminateur personnalisé pour remplacer les valeurs par défaut du paramètre régional | | `separator` | `string` | ✓ | Séparateur personnalisé entre le terminateur et le texte | ### Type `CutoffFormatOptions` ```typescript interface CutoffFormatOptions { maxChars?: number; style?: 'ellipsis' | 'none'; terminator?: string; separator?: string; } ``` ### Renvoie `string` - La chaîne tronquée, avec le terminateur approprié appliqué selon les conventions du paramètre régional. *** ## Comportement ### Résolution du paramètre régional * Utilise par défaut le `_renderingLocales` de l’instance (inclut `sourceLocale`, `targetLocale` et le paramètre régional de secours) * Peut être remplacé par une option `locales` explicite * Revient au paramètre régional par défaut de la bibliothèque si la résolution échoue ### Traitement de la limite de caractères * **`maxChars` positif** : Tronque au début et ajoute le terminateur à la fin * **`maxChars` négatif** : Tronque à la fin et ajoute le terminateur au début * **`maxChars` nul** : Renvoie une chaîne vide * **`maxChars` non défini** : Aucune troncature n’est appliquée, renvoie la chaîne d’origine ### Comportement spécifique au paramètre régional La méthode choisit automatiquement les terminateurs appropriés en fonction de la langue : * **Français (`fr`)** : `…` avec une espace fine insécable (`\u202F`) * **Chinois (`zh`)** : points de suspension doubles `……` sans séparateur * **Japonais (`ja`)** : points de suspension doubles `……` sans séparateur * **Par défaut** : point de suspension simple `…` sans séparateur *** ## Exemples ### Utilisation de base avec les paramètres régionaux de l’instance ```typescript const gt = new GT({ targetLocale: 'en-US' }); const truncated = gt.formatCutoff('Hello, world!', { maxChars: 8 }); console.log(truncated); // "Hello, w…" ``` ### Remplacement du paramètre régional ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Remplacer le paramètre régional de l'instance const french = gt.formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10 }); console.log(french); // "Bonjour\u202F…" ``` ### Limites de caractères négatives ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Découpe depuis la fin const fromEnd = gt.formatCutoff('JavaScript Framework', { maxChars: -9 }); console.log(fromEnd); // "…Framework" // Découpe négative plus grande const moreFromEnd = gt.formatCutoff('Hello, world!', { maxChars: -3 }); console.log(moreFromEnd); // "…ld!" ``` ### Options de personnalisation du style ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Terminateur personnalisé const custom = gt.formatCutoff('Long description text', { maxChars: 12, terminator: '...' }); console.log(custom); // "Long desc..." // Terminateur personnalisé avec séparateur const customSep = gt.formatCutoff('Another example', { maxChars: 10, terminator: '[...]', separator: ' ' }); console.log(customSep); // "Anot [...]" // Sans terminateur const none = gt.formatCutoff('Clean cut text', { maxChars: 5, style: 'none' }); console.log(none); // "Clean" ``` ### Application multilingue ```typescript 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)); // Sortie : "Very Long Engl…" console.log(chineseUI.truncateTitle('很长的中文标题在这里', 8)); // Sortie : "很长的中文标题……" ``` ### Gestion dynamique des paramètres régionaux ```typescript 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 }); } // Utilisation dans l'application 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')}`); }); ``` *** ## Remarques * La méthode utilise le `_renderingLocales` de l'instance GT pour détecter automatiquement le paramètre régional * La longueur du terminateur et du séparateur est prise en compte dans le calcul de la limite de caractères * Si la longueur cumulée du terminateur et du séparateur dépasse `maxChars`, renvoie une chaîne vide * Les terminateurs personnalisés remplacent complètement les valeurs par défaut propres au paramètre régional * Les performances sont optimisées grâce à la mise en cache interne des instances de formatteur ## Étapes suivantes * Utilisez la version autonome de [`formatCutoff`](/docs/core/functions/formatting/format-cutoff) sans instance GT * Formatez les messages avec [`formatMessage`](/docs/core/class/methods/formatting/format-message) * Formatez les nombres avec [`formatNum`](/docs/core/class/methods/formatting/format-num) * Découvrez les [propriétés d’un paramètre régional](/docs/core/class/methods/locales/get-locale-properties)