# generaltranslation: General Translation Core SDK: formatCutoff URL: https://generaltranslation.com/es/docs/core/functions/formatting/format-cutoff.mdx --- title: formatCutoff description: Función autónoma para truncar cadenas con terminadores según la configuración regional --- ## Descripción general La función autónoma `formatCutoff` trunca cadenas con los terminadores adecuados para cada configuración regional, sin necesidad de una instancia de GT. Proporciona truncación de texto adaptado a la configuración regional y respeta las convenciones de cada idioma sobre el uso de los puntos suspensivos y el espaciado. ```typescript import { formatCutoff } from 'generaltranslation'; const formatted = formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8 }); // Devuelve: "Hello, w…" ``` ## Referencia ### Parámetros | Nombre | Tipo | Descripción | | --------- | -------------------------------------------------------- | ------------------------------ | | `value` | `string` | La cadena que se truncará | | `options` | `CutoffFormatOptions & { locales?: string \| string[] }` | Configuración de la truncación | ### CutoffFormatOptions | Name | Type | Description | | ------------- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `locales?` | `string \| string[]` | Configuraciones regionales para seleccionar el terminador | | `maxChars?` | `number` | Número máximo de caracteres que se mostrarán. Undefined significa que no se aplica ningún corte. Los valores negativos recortan desde el final | | `style?` | `'ellipsis' \| 'none'` | Estilo del terminador. El valor predeterminado es `'ellipsis'` | | `terminator?` | `string` | Terminador personalizado para reemplazar los valores predeterminados de la configuración regional | | `separator?` | `string` | Separador personalizado entre el terminador y el texto | ### Devuelve `cadena` - La cadena truncada con el terminador adecuado. *** ## Funcionamiento ### Límites de caracteres * **`maxChars` positivo**: Trunca desde el inicio y añade el terminador * **`maxChars` negativo**: Recorta desde el final y antepone el terminador * **`maxChars` cero**: Devuelve una cadena vacía * **`maxChars` no definido**: No se aplica truncación ### Terminadores específicos según la configuración regional Las distintas configuraciones regionales usan convenciones diferentes para los puntos suspensivos: * **Francés**: `…` con espacio fino de no separación (`\u202F`) * **Chino/Japonés**: puntos suspensivos dobles `……` sin separador * **Predeterminado**: un solo punto suspensivo `…` sin separador ### Casos límite * Si la longitud del terminador + separador supera `maxChars`, devuelve una cadena vacía * Si la cadena original es más corta que `maxChars`, se devuelve sin cambios * El estilo `'none'` trunca sin ningún terminador *** ## Ejemplos ### Uso básico ```typescript import { formatCutoff } from 'generaltranslation'; // Truncación básica console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: 8 })); // Salida: "Hello, w…" // Sin truncación necesaria console.log(formatCutoff('Short', { locales: 'en-US', maxChars: 10 })); // Salida: "Short" ``` ### Límites de caracteres con valor negativo ```typescript // Cortar desde el final console.log(formatCutoff('Hello, world!', { locales: 'en-US', maxChars: -3 })); // Salida: "…ld!" // Corte negativo mayor console.log(formatCutoff('JavaScript', { locales: 'en-US', maxChars: -6 })); // Salida: "…Script" ``` ### Terminadores específicos según la configuración regional ```typescript // Formato francés console.log(formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10 })); // Salida: "Bonjour\u202F…" (espacio estrecho antes del punto suspensivo) // Formato chino console.log(formatCutoff('你好世界', { locales: 'zh-CN', maxChars: 3 })); // Salida: "你好……" // Formato japonés console.log(formatCutoff('こんにちは', { locales: 'ja-JP', maxChars: 4 })); // Salida: "こん……" ``` ### Terminadores personalizados ```typescript // 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" ``` ### Funciones utilitarias ```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 por configuración regional function truncateByLocale(text: string, locale: string) { const limits = { '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 ve…" console.log(truncateByLocale('Eine sehr lange deutsche Beschreibung', 'de')); // Salida: "Eine sehr lange deutsche Besch…" ``` *** ## Notas * A diferencia del método de la clase GT, el parámetro `locales` es opcional y su valor predeterminado es `'en'` * Los resultados se almacenan en caché internamente para mejorar el rendimiento cuando se repiten las combinaciones de configuración regional y opciones * La longitud del terminador 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 ## Próximos pasos * Usa la clase GT [`formatCutoff`](/docs/core/class/methods/formatting/format-cutoff) para usarla con instancias * Consulta otras funciones de formato, como [`formatMessage`](/docs/core/functions/formatting/format-message) * Consulta [`formatNum`](/docs/core/functions/formatting/format-num) para formatear números