¿Cómo configuro el enrutamiento basado en dominios con Intlayer en lugar de rutas /[locale]/?
Respuesta corta
El enrutamiento basado en dominios es más sencillo que el enrutamiento basado en rutas (example.com/[locale]/) porque puedes omitir todo el middleware y la configuración de enrutamiento. Solo despliega tu aplicación en cada dominio de idioma y configura una variable de entorno por dominio.
Paso a paso
- Despliega una vez por dominio (
example.com,exemple.fr,ejemplo.es, …). - Para cada despliegue, configura
LOCALE(y las variables de entorno habituales de Intlayer) al idioma que ese dominio debe servir. - Referencia esa variable como
defaultLocaleen tu archivointlayer.config.[ts|js].
Copiar el código al portapapeles
Eso es todo-funciona igual para Next.js, Vite + React, Vite + Vue, etc.
¿Qué pasa si todos los dominios apuntan al mismo despliegue?
Si todos los dominios apuntan al mismo paquete de la aplicación, necesitarás detectar el host en tiempo de ejecución y pasar el idioma manualmente a través del proveedor.
Para Next.js
Copiar el código al portapapeles
Para Vue
Copiar el código al portapapeles
Reemplaza getLocaleFromHostname() con tu propia lógica de búsqueda.
Actualiza tu selector de idioma
Cuando usas enrutamiento basado en dominios, cambiar de idioma significa navegar a otro dominio:
Copiar el código al portapapeles
Beneficios del enrutamiento basado en dominios
- Configuración más sencilla: No es necesario configurar
intlayerProxy,generateStaticParams,react-routerovue-router - Mejor SEO: Cada idioma tiene su propio dominio
- URLs más limpias: No hay prefijo de idioma en la ruta
- Mantenimiento más sencillo: Cada despliegue de idioma es independiente