# generaltranslation: General Translation Core SDK: formatCutoff URL: https://generaltranslation.com/es/docs/core/class/methods/formatting/format-cutoff.mdx --- title: formatCutoff description: Referencia de la API del método formatCutoff de GT --- ## Resumen El método `formatCutoff` trunca cadenas con terminadores según la configuración regional, aplicando los puntos suspensivos y el espaciado adecuados en función de la configuración regional de destino. Este método es esencial para la truncación de texto en la interfaz de usuario, ya que respeta las convenciones de los distintos idiomas para indicar texto truncado. ```typescript const gt = new GT({ sourceLocale: 'en', targetLocale: 'fr-FR' }); const formatted = gt.formatCutoff('Hello, world!', { maxChars: 8 }); // Devuelve: "Hello, w\u202F…" (con espacio estrecho en francés) ``` *** ## Referencia ### Parámetros ### Objeto de opciones | Propiedad | Tipo | Opcional | Descripción | | ------------ | ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `locales` | `string \| string[]` | ✓ | locales que se usarán para seleccionar el terminador (sobrescribe los valores predeterminados de la instancia) | | `maxChars` | `number` | ✓ | Número máximo de caracteres que se mostrarán. Undefined significa que no hay recorte. Los valores negativos recortan desde el final | | `style` | `'ellipsis' \| 'none'` | ✓ | Estilo del terminador. El valor predeterminado es `'ellipsis'` | | `terminator` | `string` | ✓ | Terminador personalizado para sobrescribir los valores predeterminados de la configuración regional | | `separator` | `string` | ✓ | Separador personalizado entre el terminador y el texto | ### Tipo CutoffFormatOptions ```typescript interface CutoffFormatOptions { maxChars?: number; style?: 'ellipsis' | 'none'; terminator?: string; separator?: string; } ``` ### Devuelve `string` - La cadena truncada con el terminador adecuado según las convenciones de la configuración regional. *** ## Comportamiento ### Resolución de la configuración regional * Usa `_renderingLocales` de la instancia por defecto (incluye `sourceLocale`, `targetLocale` y la alternativa) * Se puede sobrescribir con la opción `locales` explícita * Recurre a la configuración regional predeterminada de la biblioteca si la resolución falla ### Procesamiento del límite 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` indefinido**: No se aplica ningún truncamiento y devuelve la cadena original ### Comportamiento específico de la configuración regional El método selecciona automáticamente los terminadores adecuados según el idioma: * **francés (`fr`)**: `…` con espacio de no separación estrecho (`\u202F`) * **chino (`zh`)**: puntos suspensivos dobles `……` sin separador * **japonés (`ja`)**: puntos suspensivos dobles `……` sin separador * **Predeterminado**: puntos suspensivos simples `…` sin separador *** ## Ejemplos ### Uso básico de los locales de la instancia ```typescript const gt = new GT({ targetLocale: 'en-US' }); const truncated = gt.formatCutoff('Hello, world!', { maxChars: 8 }); console.log(truncated); // "Hello, w…" ``` ### Sobrescribir la configuración regional ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Sobrescribir la configuración regional de la instancia const french = gt.formatCutoff('Bonjour le monde', { locales: 'fr-FR', maxChars: 10 }); console.log(french); // "Bonjour\u202F…" ``` ### Límites de caracteres negativos ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Recortar desde el final const fromEnd = gt.formatCutoff('JavaScript Framework', { maxChars: -9 }); console.log(fromEnd); // "…Framework" // Recorte negativo más grande const moreFromEnd = gt.formatCutoff('Hello, world!', { maxChars: -3 }); console.log(moreFromEnd); // "…ld!" ``` ### Opciones de personalización de estilo ```typescript const gt = new GT({ targetLocale: 'en-US' }); // Terminador personalizado const custom = gt.formatCutoff('Long description text', { maxChars: 12, terminator: '...' }); console.log(custom); // "Long desc..." // Terminador personalizado con separador const customSep = gt.formatCutoff('Another example', { maxChars: 10, terminator: '[...]', separator: ' ' }); console.log(customSep); // "Anot [...]" // Sin terminador const none = gt.formatCutoff('Clean cut text', { maxChars: 5, style: 'none' }); console.log(none); // "Clean" ``` ### Aplicación multilingüe ```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)); // Salida: "Very Long Engl…" console.log(chineseUI.truncateTitle('很长的中文标题在这里', 8)); // Salida: "很长的中文标题……" ``` ### Gestión dinámica de la configuración regional ```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 }); } // Uso en la aplicación 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')}`); }); ``` *** ## Notas * El método usa `_renderingLocales` de la instancia de GT para detectar automáticamente la configuración regional * La longitud del terminador y del separador se tiene en cuenta en los cálculos del límite de caracteres * Si la longitud combinada del terminador y el separador supera `maxChars`, devuelve una cadena vacía * Los terminadores personalizados sobrescriben por completo los valores predeterminados específicos de la configuración regional * El rendimiento está optimizado mediante el almacenamiento en caché interno de instancias del formateador ## Siguientes pasos * Usa [`formatCutoff`](/docs/core/functions/formatting/format-cutoff) de forma independiente, sin una instancia de GT * Da formato a los mensajes con [`formatMessage`](/docs/core/class/methods/formatting/format-message) * Da formato a los números con [`formatNum`](/docs/core/class/methods/formatting/format-num) * Más información sobre las [propiedades de la configuración regional](/docs/core/class/methods/locales/get-locale-properties)