React Router / Remix Integration
Lingo.dev Compiler arbeitet nahtlos mit React Router und dem neuesten Remix (welches jetzt React Router v7 ist) zusammen, um Lokalisierung zur Build-Zeit bereitzustellen.
Befolgе diese Schritte, um mehrsprachige Unterstützung zu deiner React Router oder Remix Anwendung hinzuzufügen.
Oder erkunde das React Router / Remix Demo-Projekt, um den Compiler in Aktion zu erleben.
Voraussetzungen
- React Router v6+ oder Remix
- Vite als Build-Tool
- React 18+
- Node.js 18 oder höher
Schritt 1. Paket installieren
Installieren Sie das lingo.dev Paket:
npm install lingo.dev
Schritt 2. Vite konfigurieren
Importieren und konfigurieren Sie den Compiler in Ihrer vite.config.ts
:
import { defineConfig } from "vite";
import lingoCompiler from "lingo.dev/compiler";
const viteConfig = {
// Ihre bestehende Vite-Konfiguration
};
export default defineConfig(() =>
lingoCompiler.vite({
sourceRoot: "app",
targetLocales: ["es", "fr", "de"],
models: {
"*:*": "groq:mistral-saba-24b",
},
})(viteConfig),
);
Schritt 3. Authentifizierung einrichten
Erstellen Sie ein kostenloses Konto bei groq.com und fügen Sie Ihren API-Schlüssel hinzu:
# .env
GROQ_API_KEY=gsk_...
Schritt 4. Provider hinzufügen
Für React Router
Importieren Sie den Provider in Ihrer Root-Komponente (app/root.tsx
):
import { LingoProvider } from "lingo.dev/react/client";
import { loadDictionary } from "lingo.dev/react/react-router";
import type { LoaderFunctionArgs } from "react-router";
import { useLoaderData } from "react-router";
// Für React Router mit Daten-Loadern
export async function loader(args: LoaderFunctionArgs) {
return {
lingoDictionary: await loadDictionary(args.request),
};
}
export default function Root() {
const { lingoDictionary } = useLoaderData<typeof loader>();
return (
<LingoProvider dictionary={lingoDictionary}>
<html>
<body>
<Outlet />
</body>
</html>
</LingoProvider>
);
}
Für Remix
Importieren Sie den Provider in Ihrer Root-Route (app/root.tsx
):
import { LingoProvider } from "lingo.dev/react/client";
import { loadDictionary } from "lingo.dev/react/react-router";
import type { LoaderFunctionArgs } from "react-router";
import { useLoaderData } from "react-router";
export async function loader(args: LoaderFunctionArgs) {
return json({
lingoDictionary: await loadDictionary(args.request),
});
}
export default function App() {
const { lingoDictionary } = useLoaderData<typeof loader>();
return (
<LingoProvider dictionary={lingoDictionary}>
<html>
<head>
<Meta />
<Links />
</head>
<body>
<Outlet />
<ScrollRestoration />
<Scripts />
</body>
</html>
</LingoProvider>
);
}
Schritt 5. Optional: Sprachumschalter hinzufügen
Erstellen Sie eine Sprachumschalter-Komponente:
import { LocaleSwitcher } from "lingo.dev/react/client";
export function Header() {
return (
<header>
<nav>
<LocaleSwitcher locales={["en", "es", "fr", "de"]} />
</nav>
</header>
);
}
Schritt 6. Bauen und Testen
Starten Sie Ihren Entwicklungsserver:
npm run dev
Der Compiler wird automatisch:
- Ihre React-Komponenten nach übersetzbaren Inhalten durchsuchen
- Übersetzungsschlüssel extrahieren
- KI-gestützte Übersetzungen generieren
- Optimierte Übersetzungsdateien im Verzeichnis
lingo/
erstellen
Besuchen Sie http://localhost:5173
, um Ihre mehrsprachige Anwendung in Aktion zu sehen.
Konfigurationsoptionen
Sie können das Compiler-Verhalten anpassen:
export default defineConfig(() =>
lingoCompiler.vite({
sourceRoot: "src",
sourceLocale: "en",
targetLocales: ["es", "fr", "de", "ja"],
lingoDir: "lingo",
debug: false,
})(viteConfig),
);
Server-Side Rendering
Der Compiler funktioniert sowohl mit clientseitigem als auch mit serverseitigem Rendering:
Client-Komponenten
// src/components/Welcome.tsx
export function Welcome() {
return (
<div>
<h1>Welcome to our app</h1>
<p>This content is automatically translated</p>
</div>
);
}
Route-Komponenten
// app/routes/about.tsx
export default function About() {
return (
<div>
<h1>About Us</h1>
<p>Learn more about our company</p>
</div>
);
}
Produktionsdeployment
-
Bauen Sie Ihre Anwendung:
npm run build
-
Übersetzungsdateien committen:
git add lingo/ git commit -m "Add translations"
-
Deployment über Ihre bevorzugte Plattform
Ihre React Router- oder Remix-Anwendung wird lokalisierte Inhalte automatisch basierend auf Benutzereinstellungen oder URL-Mustern bereitstellen.
Nächste Schritte
- Erweiterte Konfiguration: Anpassungsoptionen
- FAQ: Häufige Fragen und Fehlerbehebung
- Funktionsweise: Den Build-Prozess verstehen