champollion
Ein vollständig anpassbares Internationalisierungs-Framework. Ein Befehl übersetzt Ihre Locale-Dateien. Eine Konfiguration steuert jede Methode, jedes Modell und jedes Sprachpaar. Und falls die integrierten Methoden nicht ausreichen — entwickeln Sie Ihre eigene, beweisen Sie, dass sie funktioniert, und setzen Sie sie ein.
npx champollion sync
champollion erkennt Ihre Locale-Dateien, das Format und die Zielsprachen automatisch. Es übersetzt, was fehlt, überspringt, was bereits erledigt ist, validiert jedes Ergebnis und schreibt eine saubere Ausgabe. Das ist die Startlinie.
Warum nicht einfach selbst skripten?
Sie könnten eine schnelle Schleife schreiben, die Google Translate für jeden Schlüssel aufruft. Die meisten Entwickler tun das — es dauert etwa 30 Zeilen. Hier ist der Punkt, an dem es scheitert:
- Keine Änderungserkennung. Aktualisieren Sie eine englische Zeichenkette — die Übersetzung bleibt für immer veraltet. champollion verfolgt jeden Quellwert mit SHA-256-Hashes und übersetzt nur das neu, was sich geändert hat.
- Kein Batching. Ein API-Aufruf pro Schlüssel bedeutet, dass 200 Schlüssel = 200 Round-Trips. champollion bündelt intelligent (konfigurierbar, Standard 80 Schlüssel/Batch für LLM, 128 für Google).
- Kein Caching. Jede Synchronisierung übersetzt alles neu. Der Translation Memory von champollion speichert Übersetzungen nach Quelltext + Locale + Methode zwischen — eine erneute Synchronisierung nach einer einzelnen Schlüsseländerung übersetzt nur diesen einen Schlüssel, nicht die gesamte Datei.
- Kein Qualitätsgate. Maschinelle Übersetzung halluziniert, gibt die Quelle zurück oder gibt sie im falschen Schriftsystem aus. champollion validiert jede Übersetzung, bevor sie geschrieben wird — falsches Schriftsystem, Längeninflation und Quellenwiederholungen werden erkannt und abgelehnt.
- Kein Formatbewusstsein. Fest auf JSON kodiert? champollion verarbeitet JSON, TOML, YAML und Hugo Markdown (Frontmatter + Body) mit automatischer Erkennung.
- Keine Methodenkontrolle. Jedes Paar erhält dieselbe Methode. champollion ermöglicht es Ihnen, Google Translate für Französisch, ein LLM für Japanisch und eine benutzerdefinierte, von der Community gehostete Pipeline für Cree zu verwenden — in derselben Konfigurationsdatei.
champollion ist die Produktionsversion dieses Skripts.
Was es unterscheidet
Jede Methode ist ein Plugin
Die Übersetzungsmethode ist pro Sprachpaar konfigurierbar. Kombinieren Sie Google Translate, LLMs, gecoachte Prompts und benutzerdefinierte APIs im selben Projekt:
{
"version": 3,
"pairs": {
"en:fr": { "method": "google-translate" },
"en:ja": { "method": "llm", "model": "google/gemini-2.5-pro" },
"en:crk": { "methodPlugin": "crk-coached-v1" }
}
}
Französisch erhält Google Translate (schnell, günstig). Japanisch erhält ein Premium-LLM (nuanciert). Plains Cree erhält ein gecoachtes Plugin mit Grammatikregeln, Wörterbüchern und morphologischer Validierung. Derselbe sync-Befehl. Dasselbe Qualitätsgate. Dieselbe CLI.
Beweisen Sie es
Glauben Sie, Ihre Methode kann Englisch ins Spanische übersetzen? Türkisch ins Aserbaidschanische? Englisch ins Cree?
Beweisen Sie es. Das begleitende Eval-Harness misst jede Übersetzungsmethode mit reproduzierbarer, fingerabdruckbasierter Bewertung. Die Bestenliste verfolgt jede Einreichung.
Das Eval-Harness und die Produktions-CLI teilen sich dieselbe Plugin-Schnittstelle. Eine Methode, die im Harness gut abschneidet, kann in der Produktion verwendet werden — sofern die Community, deren Sprache sie bedient, ihre Zustimmung gibt. Für indigene und ressourcenarme Sprachen ist diese Zustimmung von Bedeutung. Siehe Datensouveränität.
# Benchmark your method (in the eval harness repo)
cd arena
python eval/baseline_experiment.py --dataset data/edtekla-dev-v1.json --submit
# Use it locally
npx champollion sync
Dasselbe Plugin. Plug and Test.
Das vollständige Toolkit
champollion ist nicht nur sync. Es ist eine vollständige i18n-Pipeline:
| Befehl | Was es tut |
|---|---|
sync | Übersetzt fehlende und veraltete Schlüssel (mit Verifizierung nach der Synchronisierung) |
watch | Automatische Synchronisierung, wenn sich Ihre Quelldatei ändert |
lint | Durchsucht den Quellcode nach fest kodierten Zeichenketten |
wrap | Umschließt fest kodierte Zeichenketten automatisch in t()-Aufrufen |
audit | Listet alle [EN]-Fallback-Markierungen aus früheren Durchläufen auf |
verify | Verifiziert, dass Übersetzungen vorhanden und korrekt sind (CI-Gate) |
integrity | Erkennt Platzhalter-Korruption, Kodierungsprobleme und ICU-Plural-Vollständigkeit |
seo | Generiert hreflang-Tags, Sitemaps und JSON-LD-Schema |
status | Zeigt Paarkonfiguration, Plugins und Benchmark-Bewertungen an |
provenance | Prüft die Lizenzierung von Übersetzungsressourcen |
plugin | Installiert, entfernt und listet Methoden-Plugins auf |
fonts | Lädt Webfonts für PUA-Schriftkonverter herunter |
tm | Verwaltet den Translation-Memory-Cache (Statistiken, Leeren, pro Locale) |
xliff | Exportiert/importiert XLIFF 1.2 zur Überprüfung durch professionelle Übersetzer |
Vier davon — lint, sync, verify, audit — bilden eine CI-Pipeline, die fest kodierte Zeichenketten erkennt, sie übersetzt, die Korrektheit verifiziert und den Build fehlschlagen lässt, falls eine Locale unvollständig ist.
Die Arena
Die Methoden-Bestenliste ist die Anzeigetafel. Jede Einreichung wird per Fingerabdruck einem Git-Commit zugeordnet, auf einen bestimmten Datensatz versioniert und vom selben Harness bewertet. Jeder kann etwas einreichen.
Was können Sie beweisen? Das Harness nimmt JSON. Plugins nehmen JSON. Jede Methode, die JSON erzeugt, kann getestet werden:
| Ansatz | Beispiel |
|---|---|
| Gecoachtes LLM | Grammatikregeln und Wörterbücher in den Prompt eines Frontier-Modells einfügen |
| Feinabgestimmtes Modell | Ein offenes Modell auf Paralleltext trainieren — nur nicht auf den Eval-Daten |
| FST-gesteuerte Pipeline | LLM generiert → endlicher Zustandsautomat validiert die Morphologie → erneuter Versuch |
| Verkettete Modelle | Modell A erstellt Entwurf → Modell B redigiert nach → Modell C bewertet |
| Wörterbuch + LLM | Bekannte Begriffe aus einem Wörterbuch erzwingen, den Rest dem LLM überlassen |
| Evolutionär | Kandidaten generieren, bewerten, die besten mutieren, wiederholen |
| Teilübersetzung | Eine Stichprobe von Hand übersetzen, beweisen, dass Ihr LLM übereinstimmt, den Rest automatisch übersetzen |
Modelle feinabstimmen. Evolutionäre Algorithmen einsetzen. Schülerantworten in Sprachprüfungen testen. Lookup-Tabellen erstellen. Drei Modelle miteinander verketten. Solange Ihre Methode JSON erzeugt, bewertet das Harness sie und das Framework führt sie aus.
:::danger Die eine Regel Trainieren Sie nicht auf den Evaluierungsdaten. Methoden, die dem Benchmark-Datensatz ausgesetzt waren, werden disqualifiziert. Stimmen Sie fein ab, worauf Sie wollen. Nur nicht auf dem Testset. :::
Dies ist eine offene Einladung. Wenn Sie mit einer ressourcenarmen Sprache arbeiten — als Forscher, Community-Mitglied, Student oder einfach als jemand, dem es am Herzen liegt — entwickeln Sie eine Methode, führen Sie das Harness aus und beanspruchen Sie die Spitzenbewertung. Das Problem ist ungelöst. Die Infrastruktur ist da.
Nächste Schritte
Erste Schritte:
- Installation — Einrichtung in 2 Minuten
- Schnellstart — Führen Sie Ihre erste Synchronisierung durch
- Unterstützte Sprachen — Was standardmäßig verfügbar ist
Anpassen Ihrer Einrichtung:
- Übersetzungsmethoden — Wählen Sie die richtige Methode pro Paar
- Translation Memory — Wie Caching Ihnen Geld spart
- Konfiguration — Vollständige Konfigurationsreferenz
- Mehrsprachige Hugo-Website — Übersetzung von Markdown-Inhalten
Tiefer eintauchen:
- Zusammenarbeit mit professionellen Übersetzern — XLIFF-Export/-Import-Workflow
- Datensouveränität — Prinzipien von OCAP, CARE und Māori Data Sovereignty
- Unterstützen Sie eine ressourcenarme Sprache — Die Herausforderung, mit der alles begann
- Cookbook: FST-gesteuerte Pipeline — Erstellen Sie eine Dekompositions-Pipeline
- MT-Evaluierung — Wie das Harness und die Bestenliste funktionieren
- Methoden-Bestenliste — Live-Bewertungen und Einreichungen