Zum Hauptinhalt springen

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:

champollion.config.json
{
"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:

BefehlWas es tut
syncÜbersetzt fehlende und veraltete Schlüssel (mit Verifizierung nach der Synchronisierung)
watchAutomatische Synchronisierung, wenn sich Ihre Quelldatei ändert
lintDurchsucht den Quellcode nach fest kodierten Zeichenketten
wrapUmschließt fest kodierte Zeichenketten automatisch in t()-Aufrufen
auditListet alle [EN]-Fallback-Markierungen aus früheren Durchläufen auf
verifyVerifiziert, dass Übersetzungen vorhanden und korrekt sind (CI-Gate)
integrityErkennt Platzhalter-Korruption, Kodierungsprobleme und ICU-Plural-Vollständigkeit
seoGeneriert hreflang-Tags, Sitemaps und JSON-LD-Schema
statusZeigt Paarkonfiguration, Plugins und Benchmark-Bewertungen an
provenancePrüft die Lizenzierung von Übersetzungsressourcen
pluginInstalliert, entfernt und listet Methoden-Plugins auf
fontsLädt Webfonts für PUA-Schriftkonverter herunter
tmVerwaltet den Translation-Memory-Cache (Statistiken, Leeren, pro Locale)
xliffExportiert/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:

AnsatzBeispiel
Gecoachtes LLMGrammatikregeln und Wörterbücher in den Prompt eines Frontier-Modells einfügen
Feinabgestimmtes ModellEin offenes Modell auf Paralleltext trainieren — nur nicht auf den Eval-Daten
FST-gesteuerte PipelineLLM generiert → endlicher Zustandsautomat validiert die Morphologie → erneuter Versuch
Verkettete ModelleModell A erstellt Entwurf → Modell B redigiert nach → Modell C bewertet
Wörterbuch + LLMBekannte Begriffe aus einem Wörterbuch erzwingen, den Rest dem LLM überlassen
EvolutionärKandidaten generieren, bewerten, die besten mutieren, wiederholen
TeilübersetzungEine 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.

→ Zur Bestenliste


Nächste Schritte

Erste Schritte:

Anpassen Ihrer Einrichtung:

Tiefer eintauchen: