es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo gestionar el enrutamiento i18n en Next.js para usar una barra en lugar de un guión.

Tengo un sitio web que tiene múltiples países y cada país tiene más de una localización. Aquí está mi archivo next-i18next.config.js:

js
module.exports = {
i18n: {
defaultLocale: 'en-eg',
locales: ['en-br', 'en-eg', 'en-ke', 'pt-br', 'pt-eg', 'pt-ke', 'en', 'pt'],
localeDetection: false,
},
lowerCaseLng: true,
fallbackLng: {
'en-br': ['en'],
'en-eg': ['en'],
'en-ke': ['en'],
'pt-br': ['pt'],
'pt-eg': ['pt'],
'pt-ke': ['pt'],
},
};

En lugar del comportamiento deseado de /{language}-{country}/:path, ¿es posible lograr {country}/{language/:path?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible lograr el comportamiento deseado {country}/{language}/{path} en lugar de /{language}-{country}/{path}. Para lograr esto, puedes modificar el archivo next-i18next.config.js de la siguiente manera:

    module.exports = {
      i18n: {
        defaultLocale: 'en',
        locales: ['en', 'pt'],
        localeDetection: false,
      },
      localePath: './public/locales',
      localeStructure: '{{lng}}/{{ns}}',
      // Use localeSubpaths instead of the custom path structure
      // localeSubpaths: {
      //   en: 'en-eg',
      //   pt: 'pt-br',
      // },
      lowerCaseLng: true,
      fallbackLng: false,
    };
    

    Aquí, puedes usar las opciones localePath y localeStructure para definir la estructura de la ruta para tu contenido localizado. Puedes establecer la variable {{lng}} en el código de lenguaje y la variable {{ns}} en el espacio de nombres (opcional).

    Para cambiar al comportamiento deseado, puedes comentar la opción localeSubpaths y establecer la opción fallbackLng en false para desactivar los idiomas alternativos. De esta manera, la ubicación se determinará a partir de la ruta de URL {country}/{language}/{path}.

    Recuerda actualizar el código de tu servidor para manejar correctamente la estructura de URL modificada.

Comments are closed.