Integración con Vite
Lingo.dev Compiler se integra directamente con Vite para proporcionar localización en tiempo de compilación para aplicaciones React.
Sigue estos pasos para añadir soporte multilingüe a tu aplicación Vite + React.
Requisitos previos
- Vite 4+
- React 18+
- Node.js 18 o superior
Paso 1. Instalar el paquete
Instala el paquete lingo.dev:
npm install lingo.dev
Paso 2. Configurar Vite
Importa y configura el compilador en tu vite.config.ts
:
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import lingoCompiler from "lingo.dev/compiler";
const viteConfig = {
plugins: [react()],
// Tu configuración existente de Vite
};
export default defineConfig(() =>
lingoCompiler.vite({
sourceRoot: "src",
targetLocales: ["es", "fr", "de"],
models: {
"*:*": "groq:mistral-saba-24b",
},
})(viteConfig),
);
Paso 3. Configurar la autenticación
Crea una cuenta gratuita en groq.com y añade tu clave API:
# .env
GROQ_API_KEY=gsk_...
Paso 4. Añadir el proveedor
Importa el proveedor en tu archivo de entrada principal (src/main.tsx
):
import React from "react";
import ReactDOM from "react-dom/client";
import App from "./App.tsx";
import { LingoProviderWrapper, loadDictionary } from "lingo.dev/react/client";
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<LingoProviderWrapper loadDictionary={(locale) => loadDictionary(locale)}>
<App />
</LingoProviderWrapper>
</React.StrictMode>,
);
Paso 5. Opcional: Añadir selector de idioma
Crea un componente selector de idioma en tu App o Header:
import { LocaleSwitcher } from "lingo.dev/react/client";
function App() {
return (
<div className="App">
<header>
<LocaleSwitcher locales={["en", "es", "fr", "de"]} />
</header>
<main>
<h1>Welcome to our app</h1>
<p>This content is automatically translated</p>
</main>
</div>
);
}
export default App;
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á las claves de traducción
- Generará traducciones potenciadas por IA
- Creará archivos de traducción optimizados en el directorio
lingo/
Visita http://localhost:5173
para ver tu aplicación multilingüe en acción.
Opciones de configuración
Puedes personalizar el comportamiento del compilador:
export default defineConfig(() =>
lingoCompiler.vite({
sourceRoot: "src",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
lingoDir: "lingo",
debug: false,
})(viteConfig),
);
Características de desarrollo
Reemplazo de módulos en caliente
El compilador es compatible con el HMR de Vite para actualizaciones de traducciones:
// src/components/Welcome.tsx
export function Welcome() {
return (
<div>
<h1>Welcome to our app</h1>
<p>Edit this text and see translations update automatically</p>
</div>
);
}
Optimización de compilación
La optimización de compilación de Vite funciona perfectamente con el compilador:
- La división de código incluye paquetes de traducción
- La optimización de activos gestiona los archivos de traducción de manera eficiente
- El tree shaking elimina las traducciones no utilizadas
Estructura de proyecto de ejemplo
my-vite-app/
├── src/
│ ├── components/
│ │ └── Welcome.tsx
│ ├── App.tsx
│ ├── main.tsx
│ └── lingo/ # Archivos de traducción generados
│ ├── meta.json
│ └── dictionary.js
├── vite.config.ts
├── package.json
└── .env
Despliegue en producción
-
Compila tu aplicación:
npm run build
-
Confirma los archivos de traducción:
git add src/lingo/ git commit -m "Add translations"
-
Despliega utilizando tu plataforma preferida (Vercel, Netlify, etc.)
Tu aplicación Vite servirá contenido localizado automáticamente según las preferencias del usuario.
Solución de problemas
Problemas comunes
Las traducciones no se generan: Asegúrate de que tu GROQ_API_KEY
esté configurada correctamente en tu archivo .env
.
Errores de compilación: Asegúrate de que el directorio lingo/
esté incluido en tu control de versiones.
HMR no funciona: Reinicia el servidor de desarrollo después de añadir nuevo contenido traducible.
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