NScripter- / ONScripter-Visual-Novels übersetzen
RuneTranslate übersetzt NScripter- und ONScripter-Visual-Novels ins Englische und über 30 Sprachen — es dekodiert die XOR-obfuskierte nscript.dat, handhabt Shift-JIS / CP932 und exportiert eine startklare Kopie. Neu; melde alles, was nicht lädt.
RuneTranslate liest eine der ältesten Engine-Familien japanischer Visual Novels: NScripter und seinen quelloffenen Zwilling ONScripter. Diese klassischen Doujin-VNs — die, die als Ordner voller kryptischer .dat-Dateien und Shift-JIS-Skripte ausgeliefert werden — waren historisch die schmerzhaftesten, von Hand zu öffnen, und die, die Werkzeuge für maschinelle Übersetzung meist überspringen. RuneTranslate erkennt die Engine, liest den Skripttext und kann sogar das in den Titelbildschirm und die Menüschaltflächen gemalte Japanisch übersetzen.
Diese Engine-Unterstützung ist neu hinzugefügt und noch nicht spielverifiziert, wenn du RuneTranslate also auf ein NScripter- / ONScripter-Spiel richtest und es nicht erkennt oder lädt, sag uns bitte Bescheid — mehr dazu am Ende.
Was NScripter und ONScripter eigentlich sind
NScripter ist eine quellgeschlossene Windows-VN-Skripting-Engine von Naoki Takahashi, in Japan ab den frühen 2000ern weit verbreitet. Ihre lizenzfreie Nutzung für private und kommerzielle Zwecke, der eingebaute Archiv-Packer und die berüchtigt hardwarenahe Skriptsprache machten sie zum Grundpfeiler der Doujin-Szene; Studios wie Nekonekosoft setzten fast ausschließlich auf sie.
ONScripter ist eine separate, quelloffene (GPL) Neuimplementierung der NScripter-Laufzeit von einem Programmierer, bekannt als Ogapee. Auf SDL aufgebaut und drop-in-kompatibel, läuft sie dort, wo NScripter nicht kann — Linux, macOS, Android und mehr —, sodass die Lokalisierungs-Community sie (und Forks wie ONScripter-EN und Ponscripter für proportionale Unicode-Schriften) als De-facto-Laufzeit zum Ausliefern übersetzter Builds übernommen hat.
Kurzfassung: NScripter ist die ursprüngliche geschlossene Windows-Engine, auf der die Spiele geschrieben wurden; ONScripter ist die offene, plattformübergreifende Laufzeit, auf der Fan-Übersetzer ihre Builds laufen lassen. RuneTranslate arbeitet aus den Skripten und Assets des Spiels, sodass es Titel aus beiden Lagern abdeckt.
Warum diese Spiele so schwer zu übersetzen waren
Verglichen mit einer modernen Engine wie Ren'Py oder Kirikiri ist NScripter / ONScripter ein Minenfeld aus Eigenheiten seiner Engine-Ära. Vier davon haben es sowohl Handübersetzern als auch naiven MT-Werkzeugen zur Mauer gemacht:
- Shift-JIS / CP932-Kodierung. Ältere Skripte sind Shift-JIS (CP932). Dekodiere es falsch, und du bekommst Mojibake; kodiere es unachtsam neu, und manche älteren Laufzeiten beschädigen den Speicher und stürzen ab. Moderne native Skripte können UTF-8 sein, aber der Backkatalog ist CP932.
- Die XOR-`0x84`-obfuskierte `nscript.dat`. Das kompilierte Skript lebt meist in
nscript.dat(oderpscript.datin Ponscripter), jedes Byte gegen die Konstante0x84ge-XOR-t. Es ist keine Verschlüsselung — nur ein Schutz gegen versehentliche Spoiler —, aber man kann es trotzdem nicht in einem Texteditor öffnen. Klartext-Spiele liefern das Skript stattdessen als0.utf/0.utf.txt(UTF-8) oder0.txt/00.txt(Shift-JIS) aus. - In Bildmaterial eingebrannter Text. Titelbildschirme, Menüs und Schaltflächen sind häufig vorgerenderte Bitmaps, sodass das Japanische darauf Pixel ist, keine Strings — ein String-Extraktor kann sie nicht berühren.
- Die subtile: Zeilen mit lateinischem Anfang werden als Befehle neu geparst. Der Parser von NScripter startet jede Zeile im Befehls-Modus. Das war sicher, als die Engine nur zwei-Byte-Japanisch akzeptierte, aber eine Zeile, die mit einem ein-Byte-lateinischen Buchstaben beginnt, sieht genau wie ein Befehl aus, und die Engine versucht, sie auszuführen. Die Community-Lösung ist ein reservierter Text-Marker (der Backtick `
`im älteren ONScripter;^` in Ponscripter), der den Textmodus erzwingt — den ein naives Suchen-und-Ersetzen nicht hinzufügt.
Was RuneTranslate jetzt macht
RuneTranslate behandelt NScripter / ONScripter als erstklassige Engine und erledigt beide Hälften des Problems:
- Der Skripttext. Es liest das Skript des Spiels — eine lose Klartextdatei oder eine mit XOR
0x84obfuskiertenscript.dat—, dekodiert den Shift-JIS / CP932-Dialog, listet jede übersetzbare Zeile im Editor auf und schreibt beim Export das Skript in der Form zurück, die die Engine erwartet, wobei das XOR erneut angewandt wird, wenn das Original es nutzte. Es fügt außerdem automatisch den ein-Byte-Text-Marker ein, sodass übersetztes Englisch nicht als Befehl fehlgelesen wird. (Ein Skript, das nur in einem.nsa/.sar-Archiv lebt, ohne lose Kopie, wird noch nicht gelesen — siehe Einschränkungen.) - Der eingebrannte Bildtext. Das Japanische auf Titelbildschirmen und Menüs wird von der Bildtext-Übersetzung gehandhabt: Umrahme die Wörter, erkenne sie, übersetze mit deinem eigenen Anbieter und backe das Ergebnis wieder ein, sodass das Spiel deine übersetzte Grafik lädt.
Japanisch → Englisch ist der Sweet Spot — darum dreht sich die Fan-Übersetzungsgeschichte dieser Engine —, aber du kannst über 30 Sprachen ansteuern. Bei älteren Shift-JIS-Skripten ist ein nicht-lateinisches Ziel durch die Schriften begrenzt, die die Engine darstellen kann.
Was du brauchst
- RuneTranslate für Windows — kostenlos, jede Engine und jeder Anbieter freigeschaltet.
- Einen NScripter- oder ONScripter-Spielordner — das Verzeichnis mit der
.exedes Spiels (oder einem ONScripter-Binary), seinem Skript (nscript.datoder einer losen0.txt/0.utf) und etwaigen.nsa/.sar-Archiven. - Eine Zielsprache — Englisch, Spanisch, Französisch, Deutsch, Chinesisch und über 30 weitere.
- Einen Anbieter. Das kostenlose Google Translate funktioniert sofort; DeepL hat eine kostenlose Stufe; OpenAI, Anthropic, ein lokales Modell und jede OpenAI-kompatible API laufen mit deinem eigenen Schlüssel. Diese Spiele sind dialoglastig, also liest ein LLM oder DeepL am besten.
Schritt 1: Den Spielordner öffnen
Starte RuneTranslate, klicke auf Neues Projekt und richte es auf das Spielverzeichnis. Die Erkennung läuft automatisch: Eine nscript.dat / pscript.dat oder eine Klartext-0.utf / 0.utf.txt genügt für sich. Eine bloße Shift-JIS-0.txt oder ein einzelnes .nsa-Archiv wird nur neben einem bestätigenden Signal erkannt — einem ONScripter-Binary, einer Spielschrift oder einem begleitenden Archiv —, um Fehltreffer zu vermeiden. Dein Original-Spielordner wird nie verändert.
Schritt 2: Wie das Skript gelesen wird
RuneTranslate liest das Skript, das das Spiel lose in seinem Stammverzeichnis ausliefert, und dekodiert es für dich:
- Obfuskierte `nscript.dat` — gegen
0x84ent-XOR-t und als Shift-JIS gelesen, sodass du einen separatennsdec-Schritt überspringst. - Klartext-Skripte —
0.utf/0.utf.txt(UTF-8) oder0.txt/00.txt(Shift-JIS), direkt gelesen. - Archivierte Bilder — aus den
.nsa/.sar-Archiven des Spiels für den Bildtext-Schritt gezogen. (Das Skript selbst wird aus den losen Stammdateien gelesen; ein nur in einem Archiv gepacktes Skript wird noch nicht gelesen.)
Dialog und angezeigter Text werden im Editor aufgelistet, gruppiert nach Datei. Engine-Markup und Befehls-Tokens werden hinter numerischen Platzhaltern maskiert, bevor sie den Anbieter erreichen, und dann auf dem Rückweg wiederhergestellt — und der ein-Byte-Text-Marker wird dort angewandt, wo er nötig ist, sodass die Engine eine übersetzte Zeile nicht für einen Befehl hält.
Schritt 3: Übersetzen
Wähle einen Anbieter und starte. Ein LLM (OpenAI / Anthropic) ist am besten für Figurenstimme, DeepL ist schnell und sauber für Erzähltext, und das kostenlose Google Translate reicht für kurze Menü-Strings. Glossariere deine Besetzung vorab, damit Namen einheitlich erscheinen — siehe Glossar 101. Wenn du fertig bist, liest ein optionaler Durchgang mit dem KI-Refiner jede Zeile im Kontext erneut und strafft die steifen, wörtlichen Formulierungen, die MT gern hinterlässt.
Schritt 4: Den Text in den Bildern übersetzen
Weil so viel NScripter-UI vorgerenderte Grafik ist, zählt dieser Schritt hier mehr als bei den meisten Engines. Öffne ein Titel- oder Menübild, umrahme jedes Stück Japanisch, erkenne es, übersetze es mit demselben Anbieter, und beim Export backt RuneTranslate die Übersetzung wieder ein und schreibt sie lose in die exportierte Kopie, sodass die Engine deine übersetzte Grafik über dem archivierten Original lädt. (Dein Originalordner bleibt unangetastet; SPB-komprimierte Grafik und ein paar exotische Bildvarianten werden noch robust gemacht.) Vollständige Anleitung: Bildtext-Übersetzung.
Schritt 5: Eine startklare Kopie exportieren
Klicke auf Exportieren. RuneTranslate schreibt eine übersetzte Kopie des Spiels — das Skript neu nach Shift-JIS / CP932 kodiert und mit XOR 0x84 neu obfuskiert, falls das Original es nutzte, geschrieben als loses Skript, das die Engine über jeder archivierten Kopie lädt, plus etwaige übersetzte Bilder daneben. Starte es, und es spielt in deiner Zielsprache, ob auf der originalen NScripter-Laufzeit oder auf ONScripter / ONScripter-EN.
Bekannte Einschränkungen
- Die XOR-
0x84-Obfuskation wird gehandhabt, aber ein Spiel mit echter eigener Verschlüsselung öffnet sich vielleicht nicht. - Ein Skript, das nur in einem
.nsa/.sar-Archiv gepackt ist, ohne losenscript.dat/0.txtim Stammverzeichnis, wird noch nicht extrahiert — die meisten Spiele liefern es lose aus, aber ein paar nicht. - Bildtext-Übersetzung erreicht gemalte Menüs, Titel und Schaltflächen, aber SPB-komprimierte Grafik und stark stilisierte Logos wollen vielleicht eine manuelle Nachbesserung.
- Die genaue Engine kann sich je Veröffentlichung unterscheiden — manche mit NScripter assoziierten Titel wurden für bestimmte Steam- / Konsolen-Neuveröffentlichungen neu entwickelt. Verifiziere an deiner Kopie.
Es ist brandneu — sag uns, was kaputtgeht
Diese Engine ist eine frische Ergänzung, noch nicht kampferprobt. NScripter / ONScripter hat Jahrzehnte an Varianten, Forks und pro-Studio-Eigenheiten, die wir nicht alle gesehen haben. Wenn du RuneTranslate also auf eines richtest und es nicht erkennt, nicht lädt oder etwas exportiert, das die Laufzeit nicht öffnet, melde es bitte — der Name des Spiels und wie es gepackt ist (lose 0.txt, nscript.dat, .nsa-Archive), hilft uns, es am schnellsten robust zu machen.
Lade RuneTranslate herunter, richte es auf jenen klassischen VN, den du schon lesen wolltest, und probiere es aus. Für eine modernere VN-Engine lies die Ren'Py-Anleitung.
Bereit, RuneTranslate auszuprobieren?
Der Free-Tarif schaltet jede Engine + jeden Übersetzungsanbieter frei. Supporter ($3/Mon.) schaltet volle Geschwindigkeit frei.
Für Windows herunterladen
