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:
- Aufgabenverteilung — Unterteilt die Lokalisierung in einzelne Aufgaben pro Locale und Datei
- Worker-Zuweisung — Weist Aufgaben verfügbaren Workern mittels Load Balancing zu
- Verhinderung von Race Conditions — Verwendet Dateisystem-Locks, um Konflikte zu vermeiden, wenn mehrere Worker auf dieselben Dateien zugreifen
- 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:
- Navigieren Sie zum Actions-Tab des Repositorys
- Wählen Sie den "Lingo.dev Localization" Workflow
- Führen Sie den Workflow auf Ihrem Übersetzungs-Branch aus
- Ü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.lockDatei 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