# General Translation Platform: formatCutoff URL: https://generaltranslation.com/es/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx --- title: formatCutoff description: Trunca texto con caracteres de corte adaptados a la configuración regional sin una instancia de GT. Referencia de API de formatCutoff. --- [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) es una función utilitaria independiente de la biblioteca Core de General Translation que trunca cadenas con terminadores adaptados a la configuración regional. Respeta las convenciones de cada idioma en cuanto a los caracteres de puntos suspensivos y el espaciado. ## Descripción general [#overview] Importa `formatCutoff` directamente desde `generaltranslation` y llámalo con una cadena y un objeto de opciones. No requiere una clave de API ni una instancia de [GT](/docs/platform/core/reference/gt-class/constructor). Si quieres un truncamiento basado en instancias que herede la configuración regional de la instancia, usa en su lugar el método [`formatCutoff`](/docs/platform/core/reference/gt-class-methods/formatting/format-cutoff) de una instancia de [`GT`](/docs/platform/core/reference/gt-class/constructor). ```typescript import { formatCutoff } from 'generaltranslation'; const formatted = formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8, }); // Devuelve: "Hello, …" ``` Firma: ```typescript formatCutoff( value: string, options?: { locales?: string | string[] } & CutoffFormatOptions ): string ``` ## Cómo funciona [#how-it-works] El terminador y el separador cuentan para `maxChars`. Es decir, la cadena devuelta (incluido el terminador) tiene como máximo `maxChars` caracteres. ### Límites de caracteres * **`maxChars` positivo:** trunca desde el inicio y añade el terminador. * **`maxChars` negativo:** corta desde el final (siguiendo el comportamiento de `Array.prototype.slice`) y antepone el terminador. * **`maxChars` igual a cero:** devuelve una cadena vacía. * **`maxChars` sin definir:** no se aplica ningún truncamiento. ### Terminadores específicos de cada configuración regional Las distintas configuraciones regionales usan convenciones diferentes para los puntos suspensivos: * **Francés:** `…` con un separador de espacio de no separación estrecho (`\u202F`). * **Chino/japonés:** puntos suspensivos dobles `……` sin separador. * **Predeterminado:** puntos suspensivos simples `…` sin separador. ### Casos límite * Si la longitud del terminador más el separador supera `maxChars`, el resultado es una cadena vacía. * Una cadena de menos de `maxChars` se devuelve sin cambios. * El estilo `'none'` trunca sin ningún terminador. * Cuando se omite `locales`, se usa la configuración regional predeterminada de la biblioteca, `en`. ## Parámetros [#parameters] | Parámetro | Descripción | Tipo | Opcional | Predeterminado | | --------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------- | -------- | -------------- | | [`value`](#value) | La cadena que se va a truncar. | `string` | No | — | | [`options`](#options) | Configuración de truncamiento, incluidas las configuraciones regionales de destino. | `{ locales?: string \| string[] } & CutoffFormatOptions` | Sí | `{}` | ### `value` [#value] **Tipo** `string` · **Obligatorio** La cadena que se va a truncar. ### `options` [#options] **Tipo** `{ locales?: string | string[] } & CutoffFormatOptions` · **Opcional** · **Predeterminado** `{}` Configuración de truncamiento: | Propiedad | Descripción | Tipo | Opcional | Predeterminado | | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | -------- | -------------- | | `locales` | Configuración(es) regional(es) para seleccionar el terminador. | `string \| string[]` | Sí | `en` | | `maxChars` | Cantidad máxima de caracteres que se mostrarán (incluido el terminador). `undefined` significa que no hay truncado; los valores negativos recortan desde el final. | `number` | Sí | — | | `style` | Estilo del terminador. | `'ellipsis' \| 'none'` | Sí | `'ellipsis'` | | `terminator` | Terminador personalizado que anula los valores predeterminados de la configuración regional. | `string` | Sí | — | | `separator` | Separador personalizado entre el terminador y el texto. Se ignora cuando no hay terminador. | `string` | Sí | — | ## Devuelve [#returns] **Tipo** `string` La cadena truncada con el terminador correspondiente aplicado. ## Ejemplos [#examples] ```typescript import { formatCutoff } from 'generaltranslation'; // Truncación básica (el ellipsis cuenta para maxChars) console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8, })); // Output: "Hello, …" // No se necesita truncación console.log(formatCutoff('Short', { locales: 'en-US', maxChars: 10, })); // Output: "Short" ``` ```typescript // Los límites de caracteres negativos recortan desde el final // Recortar desde el final console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: -3, })); // Salida: "…d!" // Recorte negativo mayor console.log(formatCutoff('JavaScript', { locales: 'en-US', maxChars: -6, })); // Salida: "…cript" ``` ```typescript // Terminadores específicos de configuración regional // Formato francés (espacio de no separación estrecho antes de los puntos suspensivos) console.log(formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10, })); // Output: "Bonjour \u202F…" // Formato chino (puntos suspensivos dobles, sin separador) console.log(formatCutoff('你好世界', { locales: 'zh-CN', maxChars: 3, })); // Output: "你……" // Formato japonés console.log(formatCutoff('こんにちは', { locales: 'ja-JP', maxChars: 4, })); // Output: "こん……" ``` ```typescript // Terminadores personalizados // Terminador personalizado console.log(formatCutoff('Long text here', { locales: 'en-US', maxChars: 10, terminator: '...', })); // Salida: "Long te..." // Terminador personalizado con separador console.log(formatCutoff('Another example', { locales: 'en-US', maxChars: 12, terminator: '[more]', separator: ' ', })); // Salida: "Anoth [more]" // Sin terminador console.log(formatCutoff('Clean cut', { locales: 'en-US', maxChars: 5, style: 'none', })); // Salida: "Clean" ``` ```typescript import { formatCutoff } from 'generaltranslation'; // Truncar para visualización en la interfaz function displayText(text: string, maxLength: number, locale = 'en-US') { return formatCutoff(text, { locales: locale, maxChars: maxLength, }); } // Truncación para múltiples configuraciones regionales function truncateByLocale(text: string, locale: string) { const limits: Record = { en: 50, de: 45, // Las palabras en alemán tienden a ser más largas zh: 30, // Los caracteres chinos son más densos }; return formatCutoff(text, { locales: locale, maxChars: limits[locale] || 50, }); } console.log(displayText('This is a very long description', 15)); // Salida: "This is a very…" console.log(truncateByLocale('Eine sehr lange deutsche Beschreibung mit vielen Wörtern', 'de')); // Salida: "Eine sehr lange deutsche Beschreibung mit vi…" ``` ## Notas [#notes] * A diferencia del método de la clase GT, `locales` es opcional y su valor predeterminado es `en`. * Los resultados se almacenan en caché internamente para mejorar el rendimiento al repetir combinaciones de configuración regional y opciones. * La longitud del terminador (y del separador) se tiene en cuenta al calcular el límite de caracteres. * Los terminadores personalizados sustituyen los valores predeterminados específicos de la configuración regional. * Los separadores se ignoran cuando no hay terminador.