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 umfangreichem Content bietet die CLI parallele Verarbeitung und CI/CD-Integration, um Übersetzungen effizient im großen Maßstab zu bewältigen.
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 parallel verarbeitet und gleichzeitig Dateibeschädigungen verhindert:
- Aufgabenverteilung — Unterteilt die Lokalisierung in einzelne Aufgaben pro Sprache und Datei
- Worker-Zuweisung — Weist Aufgaben verfügbaren Workern mittels Lastausgleich zu
- Race-Condition-Prävention — Verwendet Dateisystem-Sperren, um Konflikte zu vermeiden, wenn mehrere Worker auf dieselben Dateien zugreifen
- Fortschrittsverfolgung — Meldet Echtzeit-Fortschritte über alle Worker hinweg
Beispiel für große Projekte:
// Projekt mit 50 Dateien in 10 Sprachen = 500 Übersetzungsaufgaben
{
"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 sie sequentiell zu verarbeiten.
Gezielte Verarbeitung
Für große Projekte können Sie spezifische Teile anstatt alles auf einmal verarbeiten:
Verarbeitung bestimmter Sprachen:
npx lingo.dev@latest run --locale es --locale fr
Verarbeitung bestimmter Dateitypen:
npx lingo.dev@latest run --bucket json
Verarbeitung bestimmter Dateien:
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 getrennt von der Entwicklung.
Branch-basierter Workflow
Für große Projekte sollten dedizierte Branches für die Übersetzungsarbeit verwendet werden:
Übersetzungs-Branch erstellen:
git checkout main
git checkout -b localize/content-update
# Inhaltsänderungen vornehmen
git push -u origin localize/content-update
Übersetzung über GitHub Actions auslösen:
- Navigieren Sie zum Repository-Actions-Tab
- Wählen Sie den "Lingo.dev Localization"-Workflow
- Führen Sie den Workflow auf Ihrem Übersetzungs-Branch aus
- Überprüfen und mergen Sie die übersetzten Inhalte
Dieser Ansatz bietet eine klare Trennung zwischen Inhaltsänderungen und Übersetzungsverarbeitung.
Leistungsüberlegungen
Systemressourcen:
- Parallele Verarbeitung nutzt mehr CPU und Arbeitsspeicher
- Überwachen Sie die Systemleistung bei hohen Nebenläufigkeitseinstellungen
- Cloud-CI/CD-Runner bewältigen parallele Workloads effizient
API-Ratenbegrenzungen:
- Höhere Nebenläufigkeit kann Ratenbegrenzungen auslösen
- Beginnen Sie mit Standardeinstellungen und passen Sie diese basierend auf der Leistung an
- Die Lingo.dev Engine handhabt Ratenbegrenzungen automatisch
Dateisystem:
- Große Projekte erzeugen viele Übersetzungsdateien
- Verwenden Sie .gitignore für temporäre Dateien, falls erforderlich
- Committen Sie die Datei
i18n.lock
für die Inhaltsverfolgung
Projektorganisation
Bucket-Trennung:
{
"buckets": {
"app": {
"include": ["src/locales/[locale].json"]
},
"marketing": {
"include": ["marketing/[locale]/*.json"]
},
"docs": {
"include": ["docs/[locale]/*.md"]
}
}
}
Separate Buckets ermöglichen eine gezielte Verarbeitung verschiedener Inhaltsbereiche.
Dateistruktur:
project/
src/locales/ # Anwendungsinhalte
marketing/ # Marketinginhalte
docs/ # Dokumentation
i18n.json # Konfiguration
i18n.lock # Inhalts-Tracking
Eine organisierte Struktur macht große Projekte handhabbar und ermöglicht selektive Verarbeitung.
Skalierungsstrategien
Inkrementelle Verarbeitung:
- Verwendung der Lockdatei zur Verarbeitung nur geänderter Inhalte
- Aktualisierung spezifischer Sprachen oder Buckets nach Bedarf
- Kombination mit CI/CD für automatisierte inkrementelle Updates
Team-Workflows:
- Verwendung von Branch-basierter Übersetzung für Zusammenarbeit
- Trennung von Inhaltsänderungen und Übersetzungsarbeit
- Überprüfung von Übersetzungen vor dem Zusammenführen in die Produktion
Ressourcenoptimierung:
- Anpassung der Nebenläufigkeit basierend auf Systemkapazitäten
- Verwendung von Cloud-Runnern für rechenintensive Verarbeitungsaufgaben
- Überwachung der Verarbeitungszeiten und Optimierung der Bucket-Konfigurationen