|Labs
Demo buchenPlattform
React (Lingo Compiler)
Alpha
React (MCP)React (i18n)Legacy CLI (v0)
Veraltet

Lingo.dev Compiler

  • So funktioniert's
  • Einrichtung
  • Compiler – Erste Schritte

Frameworks

  • Next.js-Integration
  • Vite + React

Leitfäden

  • Sprache wechseln
  • Automatische Pluralisierung
  • Manuelle Überschreibungen
  • Build-Modi
  • Projektstruktur
  • Übersetzungsanbieter
  • Benutzerdefinierte Sprache-Resolver
  • Entwicklungstools

Referenz

  • Best Practices
  • Konfigurationsreferenz
  • Fehlerbehebung
  • Migrationsleitfaden
  • Optimierung
  • Ausgabeformate

Migrationsleitfaden

Alpha

Der Lingo.dev Compiler befindet sich in der Alpha-Phase. Er ist instabil, nicht für den Produktiveinsatz empfohlen, und die APIs können sich zwischen Releases ändern.

Dieser Leitfaden zeigt, wie Sie vom bisherigen Compiler-Paket lingo.dev auf das aktuelle Paket @lingo.dev/compiler migrieren. Das neue Paket bringt einen npm-Scoped-Namen, eine vereinfachte API, eine pluginbasierte Vite-Integration und ein neues Verzeichnis .lingo/ für Metadaten mit.

Zusammenfassung der Änderungen#

BereichVorher (lingo.dev)Nachher (@lingo.dev/compiler)
Paketnamelingo.dev@lingo.dev/compiler
Next.js-IntegrationKonfiguration direkt anpassenAsynchroner Wrapper withLingo()
Vite-IntegrationManuelle EinrichtunglingoCompilerPlugin
LingoProviderProp loadDictionary erforderlichKeine Props erforderlich
Metadatenverzeichnislingo/.lingo/
Opt-in-Direktive'use i18n' erforderlichOptional (Standard: alles übersetzen)
Importsfrom "lingo.dev/react"from "@lingo.dev/compiler/react"

Schritt-für-Schritt-Migration#

1

Paket ersetzen

Entfernen Sie das alte Paket und installieren Sie das neue:

bash
npm uninstall lingo.dev
npm install @lingo.dev/compiler
2

Imports aktualisieren

Ersetzen Sie alle Importpfade:

ts
// Before
import { LingoProvider, useLingoContext } from "lingo.dev/react";

// After
import { LingoProvider, useLingoContext } from "@lingo.dev/compiler/react";
3

Next.js-Konfiguration aktualisieren (falls zutreffend)

Die Next.js-Konfiguration muss jetzt als asynchrone Funktion definiert sein:

ts
// Before
import { withLingo } from "lingo.dev/next";
const nextConfig = {};
export default withLingo(nextConfig, { /* options */ });

// After
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",
    sourceLocale: "en",
    targetLocales: ["es", "de", "fr"],
    models: "lingo.dev",
  });
}

Der asynchrone Funktions-Wrapper ist erforderlich. Ein synchroner Export führt dazu, dass der Build fehlschlägt. Weitere Details finden Sie unter Next.js Integration.

4

Vite-Konfiguration aktualisieren (falls zutreffend)

Ersetzen Sie jede manuelle Einrichtung durch lingoCompilerPlugin:

ts
// vite.config.ts
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { lingoCompilerPlugin } from "@lingo.dev/compiler/vite";

export default defineConfig({
  plugins: [
    lingoCompilerPlugin({
      sourceRoot: "src",
      sourceLocale: "en",
      targetLocales: ["es", "de", "fr"],
      models: "lingo.dev",
    }),
    react(), // Must come AFTER lingoCompilerPlugin
  ],
});
5

LingoProvider vereinfachen

Die Prop loadDictionary wird nicht mehr benötigt. Der Compiler übernimmt das Laden des Wörterbuchs automatisch:

tsx
// Before
import { LingoProvider } from "lingo.dev/react";

<LingoProvider loadDictionary={loadDictionary}>
  <App />
</LingoProvider>

// After
import { LingoProvider } from "@lingo.dev/compiler/react";

<LingoProvider>
  <App />
</LingoProvider>
6

Metadatenverzeichnis verschieben

Benennen Sie das Metadatenverzeichnis von lingo/ in .lingo/ um:

bash
mv lingo/ .lingo/

Aktualisieren Sie Ihre .gitignore, wenn sie noch auf den alten Verzeichnisnamen verweist. Das Verzeichnis .lingo/ sollte in die Versionskontrolle eingecheckt werden.

7

"use i18n"-Direktiven aktualisieren (optional)

Im neuen Paket ist 'use i18n' optional. Standardmäßig werden alle Dateien in sourceRoot übersetzt. Wenn Sie das Opt-in-Verhalten beibehalten möchten, setzen Sie useDirective: true in Ihrer Konfiguration:

ts
{
  useDirective: true, // Keep requiring 'use i18n' in each file
}

Wenn Sie useDirective entfernen (oder auf false setzen), können Sie auch die 'use i18n'-Direktiven aus Ihren Dateien entfernen – alle Dateien in sourceRoot werden dann automatisch übersetzt.

8

Neu bauen und prüfen

Starten Sie den Entwicklungsserver und vergewissern Sie sich, dass die Übersetzungen angezeigt werden:

bash
npm run dev

Prüfen Sie Folgendes:

  • Der Pseudotranslator erzeugt [!!! ... !!!]-Marker (falls aktiviert)
  • Alle zuvor übersetzten Strings funktionieren weiterhin
  • Die Datei .lingo/metadata.json wird erstellt oder aktualisiert

Nächste Schritte#

Setup
Vollständige Einrichtungsanleitung
Konfigurationsreferenz
Alle neuen Konfigurationsoptionen
Next.js Integration
Next.js-spezifische Details zur Migration
Vite + React
Vite-spezifische Details zur Migration

War diese Seite hilfreich?

Max PrilutskiyMax Prilutskiy·Aktualisiert vor 4 Monaten·3 Min. Lesezeit