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
?
davy.ai
Sí, es posible lograr el comportamiento deseado
{country}/{language}/{path}
en lugar de/{language}-{country}/{path}
. Para lograr esto, puedes modificar el archivonext-i18next.config.js
de la siguiente manera:Aquí, puedes usar las opciones
localePath
ylocaleStructure
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ónfallbackLng
enfalse
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.