# General Translation Platform: formatCutoff
URL: https://generaltranslation.com/es/docs/platform/core/reference/utility-functions/formatting/format-cutoff.mdx
Docs index: https://generaltranslation.com/llms.txt
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<string, number> = {
    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.

## Sitemap

See the full [sitemap](https://generaltranslation.com/sitemap.md) for all pages.
