---
createdAt: 2025-11-16
updatedAt: 2025-11-16
title: Documentación de la función getPrefix | intlayer
description: Vea cómo usar la función getPrefix para el paquete intlayer
keywords:
  - getPrefix
  - prefijo
  - Intlayer
  - intlayer
  - Internacionalización
  - Documentación
  - Next.js
  - JavaScript
  - React
slugs:
  - doc
  - packages
  - intlayer
  - getPrefix
history:
  - version: 7.1.0
    date: 2025-11-16
    changes: "Documentación inicial"
---

# Documentación: Función `getPrefix` en `intlayer`

## Descripción

La función `getPrefix` determina el prefijo de URL para un locale dado basado en la configuración del modo de enrutamiento. Compara el locale con el locale por defecto y devuelve un objeto que contiene tres formatos diferentes de prefijo para una construcción flexible de URLs.

**Características clave:**

- Toma un locale como primer parámetro (requerido)
- Objeto `options` opcional con `defaultLocale` y `mode`
- Devuelve un objeto con las propiedades `prefix` y `localePrefix`
- Soporta todos los modos de enrutamiento: `prefix-no-default`, `prefix-all`, `no-prefix` y `search-params`
- Utilidad ligera para determinar cuándo agregar prefijos de locale

---

## Firma de la función

```typescript
getPrefix(
  locale: Locales,               // Requerido
  options?: {                    // Opcional
    defaultLocale?: Locales;
    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';
  }
): GetPrefixResult

type GetPrefixResult = {
  prefix: string;   // p. ej., 'fr/' o ''
  localePrefix?: Locale; // p. ej., 'fr' o undefined
}
```

---

## Parámetros

- `locale: Locales`
  - **Descripción**: El locale para el cual se generará el prefijo. Si el valor es falsy (undefined, null, cadena vacía), la función devuelve una cadena vacía.
  - **Tipo**: `Locales`
  - **Requerido**: Sí

- `options?: object`
  - **Descripción**: Objeto de configuración para la determinación del prefijo.
  - **Tipo**: `object`
  - **Requerido**: No (Opcional)

  - `options.defaultLocale?: Locales`
    - **Descripción**: El locale por defecto para la aplicación. Si no se proporciona, se usa el locale por defecto configurado en la configuración de tu proyecto.
    - **Tipo**: `Locales`
    - **Por defecto**: [`Configuración del Proyecto`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md#middleware)

  - `options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
    - **Descripción**: El modo de enrutamiento de URL para el manejo del locale. Si no se proporciona, usa el modo configurado en la configuración de tu proyecto.
    - **Tipo**: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
    - **Por defecto**: [`Configuración del Proyecto`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/configuration.md#middleware)
    - **Modos**:
      - `prefix-no-default`: Devuelve cadenas vacías cuando el locale coincide con el locale por defecto
      - `prefix-all`: Devuelve prefijo para todos los locales incluyendo el por defecto
      - `no-prefix`: Devuelve cadenas vacías (sin prefijo en las URLs)
      - `search-params`: Devuelve cadenas vacías (locale en parámetros de consulta)

### Retorna

- **Tipo**: `GetPrefixResult`
- **Descripción**: Un objeto que contiene tres formatos diferentes de prefijo:
  - `prefix`: El prefijo de la ruta con barra diagonal al final (por ejemplo, `'fr/'`, `''`)
  - `localePrefix`: El identificador del locale sin barras diagonales (por ejemplo, `'fr'`, `undefined`)

---

## Ejemplo de Uso

### Uso Básico

```typescript codeFormat={["typescript", "esm", "commonjs"]}
import { getPrefix, Locales } from "intlayer";

// Verificar prefijo para el locale inglés
getPrefix(Locales.ENGLISH, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-all",
});
// Devuelve: { prefix: 'en/', localePrefix: 'en' }

// Verificar prefijo para el locale francés
getPrefix(Locales.FRENCH, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-no-default",
});
// Devuelve: { prefix: 'fr/', localePrefix: 'fr' }
```

### Modos Diferentes de Enrutamiento

```typescript
import { getPrefix, Locales } from "intlayer";

// prefix-all: Siempre devuelve el prefijo
getPrefix(Locales.ENGLISH, {
  mode: "prefix-all",
  defaultLocale: Locales.ENGLISH,
});
// Devuelve: { prefix: '/en', localePrefix: 'en' }

// prefix-no-default: No hay prefijo cuando el locale coincide con el predeterminado
getPrefix(Locales.ENGLISH, {
  mode: "prefix-no-default",
  defaultLocale: Locales.ENGLISH,
});
// Devuelve: { prefix: '', localePrefix: undefined }

// prefix-no-default: Devuelve el prefijo cuando el locale difiere del predeterminado
getPrefix(Locales.FRENCH, {
  mode: "prefix-no-default",
  defaultLocale: Locales.ENGLISH,
});
// Devuelve: { prefix: 'fr/', localePrefix: 'fr' }

// no-prefix & search-params: Nunca devuelve prefijo
getPrefix(Locales.ENGLISH, { mode: "no-prefix" });
// Devuelve: { prefix: '', localePrefix: undefined }

getPrefix(Locales.ENGLISH, { mode: "search-params" });
// Devuelve: { prefix: '', localePrefix: undefined }
```

### Ejemplo Práctico

```typescript
import { getPrefix, Locales } from "intlayer";

// Construir URLs con el prefijo apropiado para un locale específico
const locale = Locales.FRENCH;
const { prefix, localePrefix } = getPrefix(locale, {
  defaultLocale: Locales.ENGLISH,
  mode: "prefix-no-default",
});

// Usando prefix para la construcción de rutas
const url1 = `/${prefix}about`.replace(/\/+/g, "/");
// Resultado: "/fr/about"

// Usando localePrefix para la identificación del locale
console.log(`Current locale: ${localePrefix}`);
// Salida: "Current locale: fr"
```

---

## Funciones Relacionadas

- [`getLocalizedUrl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/intlayer/getLocalizedUrl.md): Genera una URL localizada para un locale específico
- [`getMultilingualUrls`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/packages/intlayer/getMultilingualUrls.md): Genera URLs para todos los locales configurados

---

## TypeScript

```typescript
type GetPrefixResult = {
  prefix: string; // El prefijo de la ruta con barra final (ej., 'fr/' o '')
  localePrefix?: Locale; // El identificador de locale sin barras (por ejemplo, 'fr' o indefinido)
};

function getPrefix(
  locale: Locales,
  options?: {
    defaultLocale?: Locales;
    mode?: "prefix-no-default" | "prefix-all" | "no-prefix" | "search-params";
  }
): GetPrefixResult;
```
