Alpha
Der Lingo.dev Compiler befindet sich in der Alpha-Phase. Er ist instabil, für den Produktionseinsatz nicht empfohlen, und APIs können sich zwischen Releases ändern.
Das Konfigurationsobjekt des Lingo.dev Compiler steuert, wie Ihre React-Anwendung während des Builds übersetzt wird. Diese Seite dokumentiert jede verfügbare Option mit Typen, Standardwerten und Anwendungsbeispielen.
Grundoptionen#
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
sourceRoot | string | "src" | Verzeichnis mit übersetzbaren Komponenten. Relativ zum Projektstamm. |
lingoDir | string | ".lingo" | Verzeichnis für Übersetzungsmetadaten und Cache-Dateien. |
sourceLocale | string | erforderlich | Sprachcode Ihrer Ausgangsinhalte (z. B. "en"). |
targetLocales | string[] | erforderlich | Array mit Zielsprachcodes (z. B. ["es", "de", "fr"]). |
useDirective | boolean | false | Wenn true, werden nur Dateien mit der Direktive 'use i18n' übersetzt. Wenn false, werden alle Dateien in sourceRoot übersetzt. |
models | string | object | "lingo.dev" | Konfiguration des Übersetzungsanbieters. Ein String setzt den Standard für alle Sprachpaare. Ein Objekt ordnet Sprachpaare bestimmten Anbietern zu. |
prompt | string | undefined | Benutzerdefinierter System-Prompt für das Übersetzungs-LLM. Unterstützt die Platzhalter {SOURCE_LOCALE} und {TARGET_LOCALE}. |
buildMode | "translate" | "cache-only" | "translate" | Steuert, ob der Compiler neue Übersetzungen generiert oder ausschließlich zwischengespeicherte Übersetzungen verwendet. |
Dev-Optionen#
Optionen unter dem Schlüssel dev steuern das Verhalten während der Entwicklung:
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
dev.usePseudotranslator | boolean | false | Erzeugt sofort Pseudo-Übersetzungen (z. B. [!!! Welcome !!!]), statt ein LLM aufzurufen. Kein API-Schlüssel erforderlich. |
dev.translationServerStartPort | number | 60000 | Startport für den lokalen Übersetzungsserver. Der Compiler findet automatisch einen verfügbaren Port im Bereich 60000-60099. |
dev.translationServerUrl | string | undefined | Überschreibt die URL des Übersetzungsservers. Nützlich für benutzerdefinierte Setups oder Remote-Übersetzungsserver. |
Sprache-Persistenz#
Optionen unter localePersistence steuern, wie die vom Benutzer ausgewählte Sprache gespeichert und abgerufen wird:
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
localePersistence.type | string | "cookie" | Persistenzmechanismus. Aktuell wird "cookie" unterstützt. |
localePersistence.config.name | string | "locale" | Name des Cookies, in dem die Sprache gespeichert wird. |
localePersistence.config.maxAge | number | 31536000 | Max-Age des Cookies in Sekunden (Standard: 1 Jahr). |
Für benutzerdefinierte Persistenzlogik (localStorage, URL-basiert, Header) siehe Benutzerdefinierte Sprache-Resolver.
Pluralisierung#
Optionen unter pluralization steuern die automatische Erkennung und Generierung von Pluralformen:
| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
pluralization.enabled | boolean | true | Aktiviert oder deaktiviert die automatische Erkennung von Pluralformen. |
pluralization.model | string | "groq:llama-3.1-8b-instant" | LLM-Modell zur Erkennung von Pluralformen im Ausgangstext. Ein kleineres, schnelleres Modell ist empfehlenswert, da die Erkennung einfacher ist als die Übersetzung. |
Unter Automatische Pluralisierung erfahren Sie im Detail, wie die Pluralerkennung funktioniert.
Umgebungsvariablen#
Umgebungsvariablen überschreiben die Konfiguration oder ergänzen sie:
| Variable | Wann erforderlich | Beschreibung |
|---|---|---|
LINGO_BUILD_MODE | Optional | Überschreibt die Konfigurationsoption buildMode. Auf "translate" oder "cache-only" setzen. |
LINGODOTDEV_API_KEY | Bei Verwendung von "lingo.dev"-Modellen | API-Schlüssel für die Lingo.dev Lokalisierungs-Engine. Erhältlich über npx lingo.dev@latest login. |
OPENAI_API_KEY | Bei Verwendung von "openai:*"-Modellen | OpenAI-API-Schlüssel. |
ANTHROPIC_API_KEY | Bei Verwendung von "anthropic:*"-Modellen | Anthropic-API-Schlüssel. |
GOOGLE_API_KEY | Bei Verwendung von "google:*"-Modellen | Google-AI-API-Schlüssel. |
GROQ_API_KEY | Bei Verwendung von "groq:*"-Modellen | Groq-API-Schlüssel. |
MISTRAL_API_KEY | Bei Verwendung von "mistral:*"-Modellen | Mistral-API-Schlüssel. |
OPENROUTER_API_KEY | Bei Verwendung von "openrouter:*"-Modellen | OpenRouter-API-Schlüssel. |
Vollständiges Beispiel#
// next.config.ts
import type { NextConfig } from "next";
import { withLingo } from "@lingo.dev/compiler/next";
const nextConfig: NextConfig = {};
export default async function (): Promise<NextConfig> {
return await withLingo(nextConfig, {
sourceRoot: "./app",
lingoDir: ".lingo",
sourceLocale: "en",
targetLocales: ["es", "de", "fr", "ja"],
useDirective: false,
models: {
"*:*": "lingo.dev",
"*:ja": "anthropic:claude-3-5-sonnet",
},
prompt: "Translate UI text from {SOURCE_LOCALE} to {TARGET_LOCALE}. Keep it concise.",
buildMode: "translate",
dev: {
usePseudotranslator: true,
translationServerStartPort: 60000,
},
localePersistence: {
type: "cookie",
config: {
name: "locale",
maxAge: 31536000,
},
},
pluralization: {
enabled: true,
model: "groq:llama-3.1-8b-instant",
},
});
}