Next Intl Blog Template
Next Intl Blog Template banner
Introducción
Recientemente actualicé este website, y como sabrás, es un website con contenido en Inglés y Español.
No estoy usando un plugin de traducción, en su lugar escribo cada palabra en ambos idiomas.
Gracias a Next.js y next-intl puedo lograr esto, renderizando rutas para cada idioma en el website, accediendo a un diccionario que contiene el contenido traducido por mí.
Para los archivos .mdx, creé un directorio para cada idioma, y dentro de esos directorios contiene el contenido en ambos idiomas también.
Cómo usar
Este template es una extensión de next-intl, revisa la guía de inicio para aprender lo básico, el propósito del template es crear un layout simple para futuras personalizaciones.
Agregar o quitar locales
Puedes agregar o remover locales en el archivo src/lang/locales.ts
.
Solo agrega o remueve un locale de la constante locales
, y agrega o remueve el locale de la lista.
El primer item en localesList
debe ser el locale por default.
La lista es usada para la generación de rutas estáticas en
src/app/[locale]/layout.tsx
.
Recuerda actualizar el matcher en src/middleware.ts
.
Y por supuesto, actualiza los archivos src/lang/[locale].json
.
Crear contenido
Usa src/content/[locale]
para crear contenido, en el directorio /[locale]/
crea un directorio para cada propósito, por ejemplo: /[locale]/blog
.
Dentro crea el archivo .mdx con un nombre único, el nombre será usado como slug para crear la página estática para ese post.
Para crear una sección de blog, usarás la función getAllContent en tu ruta, por ejemplo: src/app/[locale]/blog/[slug]/page.tsx
.
Esto creará una página estática para cada post de blog.
Puedes obtener la metadata del archivo .mdx
también.
Entonces, renderiza el contenido usando el componente Mdx.
Puedes hacer un fork de este template aquí
Contacto
Si te interesa trabajar juntos en un website con internacionalización con Next.js, envíame un correo a contact@juancman.dev
Publicado: 17 de Diciembre del 2023