Integración con Next.js
Lingo.dev Compiler se integra perfectamente con Next.js App Router para proporcionar localización en tiempo de compilación sin modificar tus componentes de React.
Sigue estos pasos para añadir soporte multilingüe a tu aplicación Next.js.
O explora el proyecto demo de Next.js para probar el Compiler en acción.
Requisitos previos
- Next.js 13+ con App Router
- React 18+
- Node.js 18 o superior
Paso 1. Instalar el paquete
Instala el paquete lingo.dev:
npm install lingo.dev
Paso 2. Configurar Next.js
Importa y configura el compilador en tu archivo next.config.js
:
import lingoCompiler from "lingo.dev/compiler";
/** @type {import('next').NextConfig} */
const nextConfig = {
// Tu configuración existente de Next.js
};
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de"],
})(nextConfig);
Paso 3. Configurar la autenticación
Lingo.dev Compiler envía tu contenido a motores de traducción de IA para la localización, por lo que necesitas autenticarte primero.
Opción 1. Motor de Lingo.dev
Lingo.dev Compiler puede utilizar el Motor de Lingo.dev como tu motor de traducción de IA. Proporciona selección dinámica de modelos, enrutamiento automático, memoria de traducción y soporte de glosario. Hay opciones gratuitas y de pago disponibles.
Para autenticarte, ejecuta:
npx lingo.dev@latest login
Si tienes problemas con el flujo del navegador, puedes añadir manualmente una clave LINGODOTDEV_API_KEY
a tu archivo .env.local
:
# .env.local
LINGODOTDEV_API_KEY=...
Encontrarás el token en la Configuración de Proyecto de tu Motor Lingo.dev.
Opción 2. Proveedor LLM alternativo
Alternativamente, puedes utilizar modelos de proveedores de LLM compatibles:
Añade tu(s) clave(s) API a tu archivo .env.local
:
# .env.local
GROQ_API_KEY=gsk_...
GOOGLE_API_KEY=...
OPENROUTER_API_KEY=...
MISTRAL_API_KEY=...
Nota: Asegúrate de activar tu cuenta con el proveedor de LLM y aceptar sus términos de servicio antes de utilizarlo en Compiler.
Paso 4. Añadir proveedor
Importa el proveedor en tu layout raíz (app/layout.tsx
):
import { LingoProvider, loadDictionary } from "lingo.dev/react/rsc";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<LingoProvider loadDictionary={(locale) => loadDictionary(locale)}>
<html>
<body>{children}</body>
</html>
</LingoProvider>
);
}
Paso 5. Opcional: Añadir selector de idioma
Crea un componente selector de idioma:
import { LocaleSwitcher } from "lingo.dev/react/client";
export function Header() {
return (
<header>
<nav>
<LocaleSwitcher locales={["en", "es", "fr", "de"]} />
</nav>
</header>
);
}
Paso 6. Compilar y probar
Inicia tu servidor de desarrollo:
npm run dev
El compilador automáticamente:
- Escaneará tus componentes React para encontrar contenido traducible
- Extraerá claves de traducción
- Generará traducciones potenciadas por IA
- Creará archivos de traducción optimizados en el directorio
lingo/
Visita http://localhost:3000
para ver tu aplicación multilingüe en acción.
Opciones de configuración
Puedes personalizar el comportamiento del compilador:
export default lingoCompiler.next({
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
sourceRoot: "app", // Predeterminado para Next.js
lingoDir: "lingo", // Directorio de archivos de traducción
rsc: true, // Habilitar soporte para React Server Components
debug: false, // Habilitar registro de depuración
})(nextConfig);
Componentes de servidor y cliente
Lingo.dev Compiler funciona tanto con componentes de servidor como de cliente:
Componentes de servidor
Los componentes de servidor se procesan durante la compilación con soporte completo de traducción:
// app/page.tsx
export default function HomePage() {
return (
<div>
<h1>Bienvenido a nuestra aplicación</h1>
<p>Este contenido se traduce automáticamente</p>
</div>
);
}
Componentes de cliente
Los componentes de cliente reciben paquetes de traducción optimizados:
"use client";
import { useState } from "react";
export function InteractiveComponent() {
const [count, setCount] = useState(0);
return (
<div>
<p>Has hecho clic {count} veces</p>
<button onClick={() => setCount(count + 1)}>Haz clic aquí</button>
</div>
);
}
Despliegue en producción
-
Compila tu aplicación:
npm run build
-
Confirma los archivos de traducción:
git add lingo/ git commit -m "Añadir traducciones"
-
Despliega usando tu plataforma preferida (Vercel, Netlify, etc.)
Tu aplicación Next.js servirá contenido localizado automáticamente según las preferencias del usuario o los patrones de URL.
Próximos pasos
- Configuración avanzada: Opciones de personalización
- FAQ: Preguntas frecuentes y solución de problemas
- Cómo funciona: Entendiendo el proceso de compilación