Wie es funktioniert und was es noch nicht kann
BetterTranslator führt ein Übersetzungsmodell auf Ihrem eigenen Rechner aus. Diese Seite beschreibt, was die Anwendung heute leistet, und markiert, was gebaut, aber nicht fertig ist.
Was es ist
Eine Windows-Desktopanwendung für Übersetzungen, gemacht für Softwareteams. Sie übersetzt Wörter, Sätze und ganze Dokumente und indiziert das Projekt, auf das Sie sie richten, sodass eingeführte Formulierungen erhalten bleiben. Die Modelle laufen lokal.
Eine WPF-Anwendung auf .NET 10, ausgeliefert als eigenständige ausführbare Datei. Die Untergrenze ist Windows 10 Build 19041 oder neuer, und das einzige Buildziel ist win-x64.
Drei Wege hinein, eine Engine
Das Fenster, die Kommandozeile und die Werkzeugoberfläche für Agenten sind keine drei Implementierungen. Alle drei bauen den Auftrag über dieselbe Factory, führen dieselben Prüfungen aus und schreiben in denselben Chatverlauf.
- Das Fenster, also die Anwendung selbst.
- Die Kommandozeile bt, kopflos und für Skripte gemacht. Die Befehlsreferenz lesen
- Die Werkzeugoberfläche für Agenten, gesprochen über das Model Context Protocol. Die Agentendokumentation lesen
Was zurückkommt
Jedes Format trägt seine eigene Zusage darüber, was den Hin- und Rückweg übersteht. Nichts wird aus einem Syntaxbaum neu gerendert.
| Format | Was zugesichert ist |
|---|---|
| JSON | Wert für Wert übersetzt, nie als ein Block. Schlüssel werden nie an das Modell gesendet. Jede Antwort wird über die Bytes zurückgespleißt, die der Wert belegt hat, sodass der Rest der Datei unverändert zurückkommt. |
| Markdown | Wird geparst, gesendet wird nur die Prosa, und jede Antwort wird über den ersetzten Text gespleißt. Überschriften, Listen, Tabellen, Zitate, Codeblöcke, Link- und Bildziele, rohes HTML und Front Matter bleiben Byte für Byte gleich. Linktext und Alternativtext von Bildern werden übersetzt. |
| Jede andere Textdatei | Behält seine Zeilenzahl. |
| PDF, DOCX | Wird mit denselben Readern gelesen, die das Fenster benutzt, und als Text zurückgeschrieben, weil sich beides nicht an Ort und Stelle zurückschreiben lässt. Aus einer Datei namens terms.pdf wird terms.pdf.cs.txt. |
Platzhalter werden vor dem Senden hinter nummerierten Sentinels herausgehoben und danach zurückgesetzt. Das gilt für geschweifte Klammern, Tokens im printf-Stil, HTML-artige Tags, URLs, Hexfarben und Zeilenumbrüche. Ein Stapel, der falsch zurückkommt, wird Wert für Wert wiederholt.
Ein Format ohne Leser wird namentlich abgewiesen statt verstümmelt, und Office-Sperrdateien werden übersprungen.
Sprachen
Ein Register mit 51 Sprachen speist die Auswahl im Fenster und die Sprachliste, die ein Agent liest. Das ist die Menge der Sprachen, die angefragt werden können, nicht die Menge, die ein bestimmtes Modell unterstützt.
Jede Zeile trägt für das gewählte Modell eine Verfügbarkeit: unterstützt, ungeprüft oder nicht unterstützt. EuroLLM veröffentlicht eine Sprachliste in der Modelldatei, seine Zeilen entscheiden sich also so oder so. TranslateGemma veröffentlicht keine solche Liste, deshalb liest dort jede Zeile ungeprüft, und eine ungeprüfte Zeile bleibt wählbar.
Eine Auswahl der Quellsprache gibt es noch nicht, eingehender Text wird also als Englisch angenommen.
Aufwand und Modelle
Die Aufwandssteuerung wählt das Modell und sein Tokenbudget zusammen. Fast fährt EuroLLM mit kleinerem Budget, Thinking fährt TranslateGemma 4B GGUF mit größerem.
Der Aufwand geht der Modellauswahl in den Einstellungen vor, die nur einspringt, wenn das Modell des Aufwands nicht installiert ist. Beide Modelle werden über den Dateinamen gefunden, nie über einen aus einer Katalogkennung zusammengesetzten Pfad.
Kostenloser Kontext, und der eine Schalter, der das ändert
Standardmäßig ist der Kontext eines Chats kostenlos. Jedes Senden baut seinen ganzen Prompt aus dem eigenen Text. Ein langer Chat kostet nicht mehr als ein neuer, und kein Chat kann in einen anderen durchsickern. Gegen das echte Modell geprüft: derselbe Satz, kalt gesendet und nach achtzig unabhängigen Sendungen erneut, kommt Byte für Byte gleich zurück.
Der Memory-Chip im Plus-Menü ist der einzige Schalter, der Projektwissen hinzufügt. Er steuert die früheren Paare dieses Chats bei, Passagen aus dem indizierten Projekt oder Ordner und das Projektglossar, begrenzt auf 3000 Zeichen.
Das tschechische Glossar, das mit der Anwendung ausgeliefert wird, ist ein ausgearbeitetes Beispiel, keine Voreinstellung. Nichts wird angewendet, bis Sie in den Einstellungen ein eigenes speichern.
Die anderen beiden Oberflächen zeigen dieselbe Idee anders. Auf der Agentenoberfläche ist das Gedächtnis nur beim Textwerkzeug eine Option und bleibt aus, solange es nicht angefordert wird. Auf der Kommandozeile wird es für Text ausdrücklich eingeschaltet, während eine Datei oder ein Ordner immer mit eingeschaltetem Gedächtnis übersetzt wird.
Wenn die Engine ablehnt
Über jedem Senden läuft ein Stapel von Prüfungen, der eine Antwort ablehnen kann. Der Eintrag sagt das dann, nennt die Prüfung, die ihn gestoppt hat, und bietet einen erneuten Versuch an.
Eine Nachricht mit mehr als einer Zeile geht Einheit für Einheit durch den Dokumentpfad. Eine Prüfung, die eine Zeile ablehnt, kostet diese Zeile, nicht die ganze Nachricht. Ein erneuter Versuch ist ein neuer Wurf mit einem anderen Sampling-Seed. Die Laufzeit seedet deterministisch, eine identische Anfrage gibt also identische Bytes zurück.
Die Prüfungen können falsch liegen, und wenn sie es tun, zahlt der Leser. Zwei solche Fehler sind aktenkundig, beide beim Übersetzen echt eingefügten Textes gefunden und beide in dem korrigiert, was die Prüfung misst.
Wo es läuft, wo es gespeichert wird
Die Inferenz läuft über BetterRuntime, eine flache C-Schnittstelle über llama.cpp, mit einer eigenständigen Bibliothek je Backend. Das Modell lädt in einem überwachten Kindprozess, weil die native Laufzeit auf eine Weise abbrechen kann, die kein verwalteter Handler abfängt. Ein Senden, das darauf trifft, startet ein frisches Kind und versucht es erneut.
Die Laufzeitdaten liegen unter Ihrem Profil: %LOCALAPPDATA%\BetterTranslator
Was die Anwendung sendet und was nicht, hat eine eigene Seite. Die Sicherheitsseite lesen
Was nicht fertig ist
Eine übertreibende Beschreibung ist schlechter als eine kurze. Jeder Punkt ist zu einem gewissen Grad gebaut, und auf keinen ist bisher Verlass.
- Alle drei Laufzeitvarianten sind gebaut, gemessen und verdrahtet, und jede lässt sich aus dem Installer oder ihrer Karte in den Einstellungen laden. Gelaufen ist nur der CPU-Pfad. Kein GPU-Offload-Pfad wurde auf echter Hardware erprobt.
- Der Dokumentpfad wurde mit einem echten Modell über vier Markdown-Dokumente von der Kommandozeile aus gefahren. Die Schaltfläche Datei übersetzen im Fenster wurde noch nicht mit einem Modell dahinter beobachtet.
- Der Arbeitsmodus Memory ist gebaut und gesperrt. Die Bereiche Projekt und Ordner tragen je ein Schloss, und ihre Auswahl bewirkt nichts.
- Die Abrufkarte ist noch nicht gebaut.
- Eine Auswahl der Quellsprache gibt es nicht.
- Es wurde noch kein Build veröffentlicht, von dieser Website gibt es also nichts zu installieren.