Große Projekte

Lingo.dev CLI bietet Leistungsoptimierungen und Workflow-Strategien für umfangreiche Lokalisierungsprojekte mit Hunderttausenden von Übersetzungsschlüsseln, mehreren Sprachen und komplexen Inhaltsstrukturen.

Für Projekte mit umfangreichen Inhalten bietet die CLI parallele Verarbeitung und CI/CD-Integration, um Übersetzungen im großen Maßstab effizient zu handhaben.

Parallele Verarbeitung

Lingo.dev CLI verarbeitet große Projekte schneller durch parallele Worker, die mehrere Übersetzungsaufgaben gleichzeitig bearbeiten.

Parallele Verarbeitung aktivieren:

npx lingo.dev@latest run

Dies verteilt Übersetzungsaufgaben auf mehrere Worker und reduziert die Verarbeitungszeit für große Projekte erheblich.

Worker-Parallelität steuern:

npx lingo.dev@latest run --concurrency 16

Die Standard-Parallelität beträgt 10 Worker. Höhere Werte verarbeiten mehr Aufgaben gleichzeitig, können jedoch API-Ratenlimits erreichen.

Funktionsweise der parallelen Verarbeitung

Die CLI erstellt einen Worker-Pool, der Übersetzungsaufgaben gleichzeitig verarbeitet und dabei Dateibeschädigungen verhindert:

  1. Aufgabenverteilung — Unterteilt die Lokalisierung in einzelne Aufgaben pro Locale und Datei
  2. Worker-Zuweisung — Weist Aufgaben verfügbaren Workern mittels Load Balancing zu
  3. Verhinderung von Race Conditions — Verwendet Dateisystem-Locks, um Konflikte zu vermeiden, wenn mehrere Worker auf dieselben Dateien zugreifen
  4. Fortschrittsverfolgung — Meldet Echtzeit-Fortschritt über alle Worker hinweg

Beispiel für große Projekte:

// Project with 50 files across 10 languages = 500 translation tasks
{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de", "ja", "zh", "ko", "pt", "it", "ru", "ar"]
  },
  "buckets": {
    "json": {
      "include": ["src/locales/[locale]/*.json"]
    },
    "markdown": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}

Mit paralleler Verarbeitung werden diese 500 Aufgaben auf Worker verteilt, anstatt sequenziell verarbeitet zu werden.

Gezielte Verarbeitung

Bei großen Projekten können Sie spezifische Teile verarbeiten, anstatt alles auf einmal:

Spezifische Sprachen verarbeiten:

npx lingo.dev@latest run --target-locale es --target-locale fr

Spezifische Dateitypen verarbeiten:

npx lingo.dev@latest run --bucket json

Spezifische Dateien verarbeiten:

npx lingo.dev@latest run --file components/header

Diese selektive Verarbeitung ist nützlich für inkrementelle Updates während der Entwicklung.

CI/CD-Integration

Große Projekte profitieren von automatisierten Übersetzungs-Workflows mit GitHub Actions oder anderen CI/CD-Systemen.

GitHub Actions Workflow:

name: Lingo.dev Localization
on:
  workflow_dispatch:
permissions:
  contents: write
  pull-requests: write
jobs:
  localize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: lingodotdev/lingo.dev@main
        with:
          api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

Dieser Workflow verarbeitet Übersetzungen auf dedizierten Branches und hält die Übersetzungsarbeit von der Entwicklung getrennt.

Branch-basierter Workflow

Verwenden Sie für große Projekte dedizierte Branches für die Übersetzungsarbeit:

Übersetzungs-Branch erstellen:

git checkout main
git checkout -b localize/content-update
# Make content changes
git push -u origin localize/content-update

Übersetzung über GitHub Actions auslösen:

  1. Navigieren Sie zum Actions-Tab des Repositorys
  2. Wählen Sie den "Lingo.dev Localization" Workflow
  3. Führen Sie den Workflow auf Ihrem Übersetzungs-Branch aus
  4. Überprüfen und mergen Sie den übersetzten Content

Dieser Ansatz bietet eine klare Trennung zwischen Content-Änderungen und Übersetzungsverarbeitung.

Performance-Überlegungen

Systemressourcen:

  • Parallele Verarbeitung nutzt mehr CPU und Arbeitsspeicher
  • Überwachen Sie die Systemperformance bei hohen Concurrency-Einstellungen
  • Cloud-CI/CD-Runner bewältigen parallele Workloads effizient

API-Rate-Limits:

  • Höhere Concurrency kann Rate-Limiting auslösen
  • Beginnen Sie mit den Standardeinstellungen und passen Sie basierend auf der Performance an
  • Lingo.dev Engine handhabt Rate-Limiting automatisch

Dateisystem:

  • Große Projekte generieren viele Übersetzungsdateien
  • Verwenden Sie .gitignore für temporäre Dateien bei Bedarf
  • Committen Sie die i18n.lock Datei für Content-Tracking

Projektorganisation

Bucket-Trennung:

{
  "buckets": {
    "app": {
      "include": ["src/locales/[locale].json"]
    },
    "marketing": {
      "include": ["marketing/[locale]/*.json"]
    },
    "docs": {
      "include": ["docs/[locale]/*.md"]
    }
  }
}

Separate Buckets ermöglichen die gezielte Verarbeitung verschiedener Content-Bereiche.

Dateistruktur:

project/
  src/locales/           # Application content
  marketing/             # Marketing content
  docs/                  # Documentation
  i18n.json             # Configuration
  i18n.lock             # Content tracking

Eine organisierte Struktur macht große Projekte handhabbar und ermöglicht die selektive Verarbeitung.

Skalierungsstrategien

Inkrementelle Verarbeitung:

  • Lockfile verwenden, um nur geänderte Inhalte zu verarbeiten
  • Spezifische Sprachen oder Buckets nach Bedarf aktualisieren
  • Mit CI/CD für automatisierte inkrementelle Updates kombinieren

Team-Workflows:

  • Branch-basierte Übersetzung für Zusammenarbeit verwenden
  • Inhaltsänderungen von Übersetzungsarbeit trennen
  • Übersetzungen vor dem Merge in die Produktion überprüfen

Ressourcenoptimierung:

  • Parallelität basierend auf Systemkapazitäten anpassen
  • Cloud-Runner für rechenintensive Verarbeitungslasten verwenden
  • Verarbeitungszeiten überwachen und Bucket-Konfigurationen optimieren