← Zurück zu den Artikeln
Web 2026-04-17 · rev. 2026-05-10 ProtoMedia

Eine Website, die Dutzende von Sprachen spricht, ohne Übersetzer

Automatisch aus dem Italienischen übersetzt · Original lesen

Wie wir das Übersetzungssystem aufgebaut haben, das unter diesen Seiten läuft: KI bei Bedarf, immer Cache, null wahrgenommene Wartezeit.

Das Problem der traditionellen I18n

Die Internationalisierung einer Website war jahrelang eine kleine Odyssee von Workflows: .po-Dateien, menschliche Übersetzer, vergessene Schlüssel, verzögerte Deployments, weil "das Deutsche fehlt noch". Das Hinzufügen einer Sprache kostete Zeit und Geld; das Hinzufügen von zehn war für jedes kleine Unternehmen undenkbar.

Mit den LLMs der neuesten Generation hat die Qualität der automatischen Übersetzung einen Punkt erreicht, an dem sie – für eine Unternehmenswebsite, nicht für Literatur – ausreichend ist. Die Frage ist nicht mehr "können wir es automatisch übersetzen", sondern "wie integrieren wir es, ohne die Benutzererfahrung zu beeinträchtigen".

Die Architektur, kurz gesagt

Die Website wird statisch auf Italienisch bereitgestellt. Wenn ein Benutzer eine andere Sprache auswählt, kommt eine kleine Engine mit drei MongoDB-Sammlungen ins Spiel:

  • i18n_base: Die Quelltexte in der gewählten Sprache (heute Italienisch), jeweils mit der Angabe der eigenen Sprache, einer Beschreibung, wo und warum sie auf der Website vorkommen (essenziell für die Übersetzungsqualität), Ton und Zeichenbegrenzung. Diese Beschreibung wird Teil des Prompts an das LLM, das so weiß, ob es einen Button oder einen Absatz übersetzt.
  • i18n_human: Die von Hand gepflegten Übersetzungen, wenn wir für einige Seiten redaktionelle Qualität anstelle der LLM-Ausgabe wünschen. Sie haben Vorrang vor dem automatischen Cache und werden automatisch "entmarkiert", wenn sich der Quelltext ändert.
  • i18n_cache: Die bereits generierten Übersetzungen, indiziert nach (Feld, Sprache). Jeder Eintrag speichert den Zeitstempel des Basistextes zum Zeitpunkt der Generierung.
  • articoli_i18n: Gleiche Logik, angewendet auf längere Inhalte, wie diesen Artikel.

Beim ersten Zugriff in einer neuen Sprache fragt das System das LLM nur nach den tatsächlich fehlenden Feldern, speichert die Antwort im Cache und gibt sie an den Browser zurück. Bei nachfolgenden Besuchen erfolgt die gleiche Sprache sofort, ohne weitere KI-Aufrufe.

Die Invalidierung, die funktioniert

Ein Cache ist eine geordnete Lüge: Er sagt "Meine Wahrheit ist diese", bis jemand ihn widerlegt. Der Mechanismus zur Widerlegung ist hier einfach: Jede gecachte Übersetzung speichert den Zeitstempel des Basistextes, der sie generiert hat. Wenn Sie den italienischen Text ändern und seinen updated_at Wert erhöhen, werden alle Übersetzungen dieses Feldes in allen Sprachen automatisch als veraltet markiert und bei Bedarf neu generiert. Keine manuellen Kaskaden, kein Cache, den man leeren muss.

Der ungeduldige Benutzer

Das Interessanteste ist nicht die Übersetzung – es ist, wie sie angezeigt wird. Beim Wechsel der Sprache sieht der Browser eine italienische Seite mit kleinen Ladeanzeigen neben jedem Textblock, der aktualisiert werden muss. Die Versuchung ist, einen einzigen Aufruf zu tätigen, der alles zusammen übersetzt: einfach, sauber und verurteilt den Benutzer dazu, zu warten, bis das LLM alles erledigt hat, bevor er überhaupt eine Änderung sieht.

Wir haben den gegenteiligen Weg eingeschlagen. Die Texte werden nach Abschnitt (Navigationsleiste, Hauptteil, Fußzeile) gruppiert und in Mikro-Batches von je drei Feldern aufgeteilt. Die Aufrufe erfolgen nacheinander: Zuerst die wenigen Felder der Navigationsleiste, die in Sekundenschnelle erscheinen – der Benutzer sieht, dass etwas passiert und beginnt zu lesen. Während er liest, kommt das erste Stück des Hauptteils, dann das zweite und schließlich die Fußzeile.

Die Lektion in Kürze: Die wahrgenommene Geschwindigkeit ist nicht die Gesamtgeschwindigkeit. Es zählt mehr, ein Stück nach dem anderen, in sichtbarer Reihenfolge zu übersetzen, als zuerst fertig zu werden.

Die Nachtschicht

Ein Cache hat nur einen wahren Feind: den ersten Besuch. Der erste deutsche Nutzer zahlt den Preis für alle zukünftigen Übersetzungen, und seine Erfahrung ist die, die ihm im Gedächtnis bleibt. Um das Problem (oder zumindest fast) zu beseitigen, wacht eine Hintergrundaufgabe jede Minute auf, wählt die am meisten erwartete Sprache aus den noch unvollständigen aus, nimmt einen nicht übersetzten Text und lässt ihn vom LLM bearbeiten. In der nächsten Minute der nächste. Innerhalb weniger Tage sind die am weitesten verbreiteten Sprachen bereits „warm“.

Die Nachtaufgabe erledigt auch einen zweiten Job: Sie überprüft automatisch Übersetzungen von zweifelhafter Qualität und versucht sie mit einem anderen KI-Modell erneut. Wenn die Ausrichtung zwischen den Sprachen wichtig ist, bleibt eine mittelmäßige Übersetzung nicht solche.

Wenn Sie der erste Deutsche des Tages sind und ankommen, während das System noch den Cache fertigstellt, hält Sie zumindest das progressive Laden beschäftigt. Wenn Sie der Zweite sind, merken Sie es nicht einmal.

Was man mitnimmt

Eine mehrsprachige Website ohne Übersetzer, ohne zu verwaltende Dateien, ohne Deployments zum Hinzufügen einer Sprache. Der Benutzer gibt einen Code ein – ja, ca, eu, was immer er möchte – und die Seite wird übersetzt. Beim zweiten Mal ist es sofort. Beim dritten Mal sind wir wahrscheinlich schon da, übersetzt zur richtigen Zeit von einer Aufgabe, die niemals schläft.

Diese Seite, wenn Sie sie auf Deutsch, Spanisch oder Koreanisch lesen, wurde noch nie von einem Übersetzer geschrieben. Sie wurde einmal von einem LLM übersetzt und wird seitdem aus dem Cache bedient. Das Einzige, was von Hand geschrieben wurde, ist das, was Sie gerade lesen, wenn es auf Italienisch ist.

Interessiert daran, diese Architektur auf Ihre Website zu bringen? Sprechen wir darüber.

Contattaci

Eine Anmerkung? Schreiben Sie uns

Die Nachricht erreichen nur wir. Wenn Ihr Kommentar interessant ist, können wir ihn am Ende des Artikels veröffentlichen, jedoch erst nach Prüfung.

Während du schreibst, löst dein Browser ein kleines Rechenproblem – unsere Methode, automatische Nachrichten auszusperren, ohne Drittanbieter oder Semafore-Erkennung. Du wirst nicht aufgefordert, etwas zu tun, und keine Daten verlassen diese Seite.