Recibe notificaciones sobre los próximos lanzamientos de Intlayer
    Creación:2025-11-16Última actualización:2025-11-16

    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

    getPrefix(  locale: Locales,               // Requerido  options?: {                    // Opcional    defaultLocale?: Locales;    mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params';  }): GetPrefixResulttype 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
      • 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
        • 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

    import { getPrefix, Locales } from "intlayer";// Verificar prefijo para el locale inglésgetPrefix(Locales.ENGLISH, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-all",});// Devuelve: { prefix: 'en/', localePrefix: 'en' }// Verificar prefijo para el locale francésgetPrefix(Locales.FRENCH, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-no-default",});// Devuelve: { prefix: 'fr/', localePrefix: 'fr' }

    Modos Diferentes de Enrutamiento

    import { getPrefix, Locales } from "intlayer";// prefix-all: Siempre devuelve el prefijogetPrefix(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 predeterminadogetPrefix(Locales.ENGLISH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// Devuelve: { prefix: '', localePrefix: undefined }// prefix-no-default: Devuelve el prefijo cuando el locale difiere del predeterminadogetPrefix(Locales.FRENCH, {  mode: "prefix-no-default",  defaultLocale: Locales.ENGLISH,});// Devuelve: { prefix: 'fr/', localePrefix: 'fr' }// no-prefix & search-params: Nunca devuelve prefijogetPrefix(Locales.ENGLISH, { mode: "no-prefix" });// Devuelve: { prefix: '', localePrefix: undefined }getPrefix(Locales.ENGLISH, { mode: "search-params" });// Devuelve: { prefix: '', localePrefix: undefined }

    Ejemplo Práctico

    import { getPrefix, Locales } from "intlayer";// Construir URLs con el prefijo apropiado para un locale específicoconst locale = Locales.FRENCH;const { prefix, localePrefix } = getPrefix(locale, {  defaultLocale: Locales.ENGLISH,  mode: "prefix-no-default",});// Usando prefix para la construcción de rutasconst url1 = `/${prefix}about`.replace(/\/+/g, "/");// Resultado: "/fr/about"// Usando localePrefix para la identificación del localeconsole.log(`Current locale: ${localePrefix}`);// Salida: "Current locale: fr"

    Funciones Relacionadas


    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;
    Recibe notificaciones sobre los próximos lanzamientos de Intlayer