Ren'Py Newbie guide zum Thema RenPy Translation ----Anleitung ´s Sammlung--

Drussler

Active Member
Donor
Jan 8, 2018
809
1,047



Diese Anleitung ist nur für [Ren'Py] Spiele.

Hey ich Versuche mal hier kurz und bündig zu beschreiben wie man mit UnRen was übersetzten kann!
Wenn ihr Vorschläge Ideen habt... immer rein damit!


Da es mehrere wege gibt um eine Übersetzung zu erstellen sind hier 2 Anleitungen.
1
(Hiermit ersätzt ihr den Originaltext des Spiels und es gibt auswahl möglichkeit im Spiel)

Die UnRen.exe in das Spielverzeichnis (Spiel abc /game) legen und Starten!
Im Dos Fenster 1 drücken (Extract RPC)
Wenn er Fertig ist wieder 1 drücken.
Jetzt 2 Drücken zum Decompile rpyc.
Nun sind wir auch schon Fertig!
Im game Ordner einfach mal herrum schauen was man mit dem Windows Editor so öffnen und bearbeiten kann ,
kleiner tip ändere nur Texte die so zum beispiel sind:
"Alles was in der klammer ist!!!!"
Keine Spielfiguren namen!
Achte drauf das nach einer " kein anderes zeichen oder punkt kommte!
Nur den Text ändern!


2
( Hiermit bleibt der Originaltext des Spiels und es wird eine zusätzlich Übersetzung im Menü angeboten )


Diese Anleitung wurde von JBZ erstellt.

https://f95zone.to/threads/newbie-g...ation-anleitung-s-sammlung.43166/post-4609485


Anbei habe ich eine Tolle Anleitung angehängt!
 
Last edited:

Red Barock

New Member
Mar 29, 2018
13
10
Hi,
würde gerne das Spiel „Light of my Life“ übersetzen und habe folgendes Problem. Nachdem ich Unren.exe in den Game / Ordner kopiert habe lässt sich das Spiel nicht mehr starten. Habe mich genau an Deine Anweisung gehalten. Hast Du ne Idee was ich machen kann?
 
  • Thinking Face
Reactions: Drussler

Drussler

Active Member
Donor
Jan 8, 2018
809
1,047
Hi,
würde gerne das Spiel „Light of my Life“ übersetzen und habe folgendes Problem. Nachdem ich Unren.exe in den Game / Ordner kopiert habe lässt sich das Spiel nicht mehr starten. Habe mich genau an Deine Anweisung gehalten. Hast Du ne Idee was ich machen kann?
Stimmt bei mir ist der Fehler gerade auch aufgetreten! Glaube es liegt am Spiel selbst das es keine bearbeitung zu läst, habe das beim Spiel summertime-saga auch gehabt! Der Endwickler muss eine zusatzdatei geben das man es bearbeiten kann und das man im Spiel auch die Console öffnen kann. Bei Summertime gibt es die möglichkeit wieder vieleicht klappt es hier auch musst mal probieren! Das steht bei Summertime zum Thema Console
! Note: Messing around in the console can cause serious bugs, only enable console if you
know what you're doing and are happy to take the risk.

1) From the main game directory navigate to the renpy folder, then open the common folder
2) Find the 00console.rpy file and open with notepad++
3) Search for the line: # If true, the console is enabled despite config.developer being False.
4) Edit the line below from: config.console = False to config.console = True
5) Save and close the file

To open the console in game press: SHIFT + O

To close the console type in "exit" or right click

Teste mal ob das Spiel mit dieser Änderung startet!
 

Drussler

Active Member
Donor
Jan 8, 2018
809
1,047
Schade! Ich suche mal ob ich was finden kann! Denke mal das spiel wird es ja auf einer anderen Sprache bestimmt geben. und da können wir uns mal abschauen wie die es machen. ;):LOL:
 
  • Like
Reactions: Punto

Red Barock

New Member
Mar 29, 2018
13
10
Hi,

ich nochmal. Hab gelesen das Du Melody am übersetzten bist. Kannst Du mir bitte einmal genau erklären was ich machen muss um auf die Dialoge zu kommen. Danke
 

HappyRagnar

Member
Jun 20, 2020
128
53
Ich setze mich die Tage ran "The Deluca family zu übersetzen wenn da nicht schon jemand dran sitzt ;)

Vorausgesetzt das geht mit meinem Laptop da er KEIN Windows oder ähnliche Betriebssysteme drauf hat. Is so ein no Name Betriebssystem und hoffe das ich das Spiel da auch drauf bekomme.

Frage: Wenn ich jetzt speziell für Android spiele übersetzen möchte, muss ich das dann auch mit dem Android übersetzen? Weil es ja mehrere Arten gibt

Bsp. Windows, Mac, Linux etc.
 

HappyRagnar

Member
Jun 20, 2020
128
53
Ich fange gerade mit ScarletSpire an, das Script lässt sich bis jetzt ohne Probleme bearbeiten. Ersten Test habe ich auch schon gemacht und es LÄUFT wie es laufen soll. Alles was ich im Script geändert bzw übersetzt habe, wurde auch so übernommen. Ich mache nun mal weiter.

Bin gerade an einem Dialog, wo er doppelt im Script steht.... kann man den doppelscript löschen oder hat das dann auswirkungen auf das Spiel?

Hat sich erledigt, ist ja in verschiedenen Szenarien aufgebaut ... ( Entscheidungen )
 
Last edited:
  • Like
Reactions: Drussler

Deleted member 2919053

Engaged Member
Oct 3, 2020
2,485
3,267
Hey Drussler,
kann Du bitte mal bei dem Spiel "Dreams of Desire" schauen wo der Fehler ist in der Übersetzung.
Du hast da schon mehr Erfahrung
;)

Wenn ich das Spiel auf deutsch umstelle im Menü und auf eine Antwort klicke oder im Text weiter möchte, stürzt das Spiel ab nach der 1. Szene. Wenn ich es auf Englisch stelle im Menü, geht alles normal weiter. Wo ist der Fehler?

Update / wurde korrigiert

Deutsche Übersetzung: https://f95zone.to/threads/dreams-of-desire-german-translation-v1-0-3-lewdlab.65044/
 
Last edited:

JBZ

Active Member
Aug 1, 2020
636
1,578
Kann mir mal jemand helfen?! Bitte
Diese Datei kann auch nicht mit einem Editor bearbeitet werden. Das ist ein Archiv und muss erst einmal entpackt werden.
An paar Angaben sind in der Anleitung im ersten Post leider nicht ganz korrekt bezeichnet.
Das Programm was benötigt wird ist keine EXE, sondern eine BAT (UnRen-dev.bat). Diese ist aber richtig im Anhang enthalten.
Die Option 1 in der BAT entpackt die RPA-Datei (extract RPA packages).
Dann muss man schauen, welche Dateitypen in dem Archiv enthalten sind. Sind es RPYC-Dateien, dann müssen diese erst noch dekompiliert werden. Dafür ist die Option 2 in der BAT zuständig. Wenn gleich RPY-Dateien mit dabei sind, dann könnten diese direkt bearbeitet werden, z.B. mit Notepad++. Für Übersetzungen sollten aber nicht die Originalskripte verändert werden. Dafür gibt es den besseren Wege per TL-Dateien.


@Drussler
Diese Anleitung müsste überarbeitet werden. Vor allem sollten noch die Schritte für die Erstelllung des TL-Ordners aufgeführt werden. Damit Leute nicht immer direkt die Originaltexte zerstören, sondern die Übersetzung zusätzlich angeboten wird.
 
Last edited:

Drussler

Active Member
Donor
Jan 8, 2018
809
1,047
Diese Datei kann auch nicht mit einem Editor bearbeitet werden. Das ist ein Archiv und muss erst einmal entpackt werden.
An paar Angaben sind in der Anleitung im ersten Post leider nicht ganz korrekt bezeichnet.
Das Programm was benötigt wird ist keine EXE, sondern eine BAT (UnRen-dev.bat). Diese ist aber richtig im Anhang enthalten.
Die Option 1 in der BAT entpackt die RPA-Datei (extract RPA packages).
Dann muss man schauen, welche Dateitypen in dem Archiv enthalten sind. Sind es RPYC-Dateien, dann müssen diese erst noch dekompiliert werden. Dafür ist die Option 2 in der BAT zuständig. Wenn gleich RPY-Dateien mit dabei sind, dann könnten diese direkt bearbeitet werden, z.B. mit Notepad++. Für Übersetzungen sollten aber nicht die Originalskripte verändert werden. Dafür gibt es den besseren Wege per TL-Dateien.


@Drussler
Diese Anleitung müsste überarbeitet werden. Vor allem sollten noch die Schritte für die Erstelllung des TL-Ordners aufgeführt werden. Damit Leute nicht immer direkt die Originaltexte zerstören, sondern die Übersetzung zusätzlich angeboten wird.
Prima Idee und danke für den vorschlag! Zur Zeit fehlt mir die zeit es zu Überarbeiten.. Wenn du die Zeit hast, kannst du es gerne machen und ich übernehme es gleich mit ober rein!

Genau für deine Idee ist dieser Thread gedacht! :)(y)(y)
 

JBZ

Active Member
Aug 1, 2020
636
1,578
Anleitung für die Erstellung von Übersetzungen für Ren'Py Spielen
von JBZ


1. Einleitung
Ren'Py bietet die Möglichkeit zusätzliche Übersetzungen in ein bestehendes Spiel zu integriert. Dafür gibt es den Ordner "\game\tl". Dort befinden sich Texte und Grafiken, die per Sprachauswahl alternativ zum Original verwendet werden.

Wer mit Rechtschreib- und Grammatikfehlern leben kann, der kann in wenigen Minuten für ein Spiel eine maschinelle Übersetzung erstellen. Die wesentlich größere Arbeit ist es, diese Texte zu kontrollieren und zu korrigieren, denn auch die besten Online-Übersetzer, wie DeepL, sind nicht perfekt. Eine komplette Übersetzung inkl. Buttons oder Grafiken im Spiel bedeutet ebenfalls nochmal zusätzliche Arbeit.


2. Ren'Py Dateiformate
Für das Übersetzen von Ren'Py Spielen, sollte man sich zuallererst mit den verwendeten Dateiformaten vertraut machen.

.rpa
Das ist ein Archivformat von Ren'Py. Der Inhalt wird aber nicht komprimiert, sondern diese Datei ist sogar etwas größer als der reine Inhalt. Diese Archive bieten aber einen kleinen Geschwindigkeitsvorteil beim Laden von Spielelementen. Die .rpa Dateien können nicht mit einem Packprogramm wie WinRAR oder ähnlichem geöffnet werden. Was mit den .rpa Dateien zu tun ist, steht unter "3. Vorbereitungen".

.rpy
Diese Dateien bestehen aus reinem Textformat und können mit jedem beliebigen Texteditor bearbeitet werden. Dabei müssen natürlich die Regeln der RenPy-Programmierung beachtet werden. Da alle Übersetzungen in den Zusatzdateien stattfindet, muss nur in einem Originalskript der Programmcode für die Sprachauswahl angepasst werden. Siehe "7. Auswahlmenü für die Sprache".

.rpyc
Dies sind kompilierte .rpy Dateien. Bei jedem Start des Spiels werden die .rpy kompiliert, wenn die entsprechende .rpyc Datei noch nicht vorhanden ist oder die .rpy Datei verändert wurde. .rpyc Dateien beinhalten keine Kommentare. Wenn diese dekompiliert werden, dann ist nur noch der reine Code vorhanden.


3. Vorbereitungen
Nach der Installation des Spieles muss geschaut werden, welche von den o.g. Dateiformaten im Verzeichnis "game" vorliegen. Falls nur .rpa Dateien vorhanden sind, müssen diese als Erstes entpackt werden. Die einfachste Möglichkeit dafür, ist das Tool unren.bat. Die aktuelle Version gibt es hier: Link
Die BAT einfach in das Spieleverzeichnis ablegen (dort wo sich auch die .exe Datei vom Spiel befindet). Nach dem Start den Punk 1 auswählen (Extract RPA packages). Den entpackte Inhalt findet man dann im Verzeichnis "game". Falls nur .rpyc Dateien vorliegen, müssen diese mit dem Punk 2 dekompiliert werden (Decompile rpyc files)


4. Erstellung der Übersetzungsdateien
Als nächstes muss die Ren'Py SDK installiert werden. Aktuelle Version 7.4.11: Link
Den kompletten Spielordner kopiert ihr nun in das Verzeichnis "renpy-7.4.11-sdk" und startet dann die renpy.exe.

Im Ren'Py Launcher wird nun das Spiel unter Projects angezeigt. Als nächstes auf der rechten Seite den Punkt "Generate Translations" klicken.
Unter Language ein Sprachbezeichnung angeben, z.b. german
Mit Punkt "Generate empty strings for translations" kann definiert werden, wie die Übersetzungsdateien erstellt werden sollen. Ob der Originaltext nochmal wiederholt werden oder die Dialogzeile leere bleibt soll, hängt davon ab, wie diese Dateien später bearbeitet werden, sprich welche Programme eingesetzt werden. Beispielprogramme siehe "6. Programme zum Übersetzen". Bei den ersten beiden Programmen sollte besser "empty string" ausgeschaltet sein. Beim Programm "TranslateRenPy" muss "empty strings" wiederrum aktiv sein.
Um die Übersetzungsdateien zu erstellen, darüber auf "Generate Translations" klicken.
Ren'Py Launcher

Zu jedem Skript, in der übersetzbarer Text gefunden wird, wird eine Übersetzungsdatei erzeugt. Diese beinhalten dann die Zeichenfolgen die übersetzt werden müssen. Das Problem ist, das die RenPy SDK nicht alle Texte automatisch erkennt. Dialogzeilen sind kein Problem, aber Texte von Variablen schon. Diese müssen bei der Programmierung mit _( ) als übersetzbar kenntlich gemacht werden. Leider vergessen die meisten Entwickler das oder wissen es schlicht weg nicht. Bei VN-Spielen ist die Anzahl meist sehr überschaubar und somit kein Problem, bei Sandbox-Spielen kann das aber sehr nervig werden.
Beispiel:
Code:
    textbutton _("Window") action Preference("display", "window")
Der String "Window" ist mit der Angabe _( ) umschlossen und somit als übersetzbar definiert. Daher erscheint dieser String auch in der TL-Datei. "display" und "window" widerrum sind Variabelwerte und sind nicht mit der Angabe _( ) umschlossen, da sie nicht übersetzt werden sollen.

Wenn diese Angaben fehlen gibt es zwei Möglichkeiten: 1. Man trägt _( ) in den Skripten überall selber ein, damit die SDK die Texte bei der Generierung der TL-Dateien findet (kann danach auch wieder entfernt werden) oder 2. man schreibt selbst den entsprechenden Block in die TL-Datei in den Abschnitt strings. Für das Beispiel oben wäre dies:
Code:
    old "Window"
    new "Fenster"

5. Übersetzungsdateien
Unter "\game\tl" befindet sich nun ein Ordner mit der unter Language vorgegeben Bezeichnung. In diesem Order bzw. ggf. weiteren Unterverzeichnissen befinden sich alle Übersetzungsdateien (.rpy und .rpyc).
Beispiel  eines TL-Verzeichnisses

Im Prinzip können die .rpy Dateien nun direkt bearbeitet werden.

Beispiel mit aktivierter Option "empty strings"
Auszug aus einer Übersetzungsdatei

Geändert werden sollte nur der Text zwischen den Anführungsstrichen. Es dürfen keine Tabs verwendet werden.
Der Text von Entscheidungen und Variablen wird über old/new definiert. Diese Übersetzungen dürfen nur einmal angegeben werden, da sie für das ganze Projekt gültig sind.

Beispiel aus einer fertigen Übersetzungsdatei:
Python:
# game/ep01.rpy:605
translate german ep01_activities_09fee569:

    # pl "{i}([name_aunt] sounds desperate. I should at least meet her and see what the job is all about.){/i}"
    pl "{i}([name_aunt] klingt verzweifelt. Ich sollte sie zumindest treffen und sehen, worum es bei dem Job geht.){/i}"
{i}{/i} Zeigt die Schrift kursiv an (Italic).
[name_aunt] ist eine Variable. Später wird im Spiel an dieser Stelle im Dialog der Name der Tante angezeigt.

In den erstellten Übersetzungsdateien wird die Angabe der Dialogzeile und der Originaldialoge auskommentiert. Dies erfolgt durch das Zeichen #. Diese Angaben dienen nur als Hilfe, um z.B. die Dialogzeile im Original zu finden. Wenn der Dialog durch Updates in eine andere Zeile rutsch, dann hat dies keine Auswirkung auf die Übersetzung. Da für jede Dialogzeile eine Kennung vergeben wird und nur dieser ist wichtig. Die Kennung setzt sich aus einem Label und einem Hashwert zusammen. Im o.g. Beispiel wäre das "ep01_activities_09fee569". Wenn sich ein Dialog ändert, z.B der Satz wird umformuliert oder ein Rechtschreibfehler wird korrigiert, dann ändert sich auch die Kennung, und die Übersetzung muss an dieser Stelle angepasst werden. Übersetzungen von Variablen benötigen keine Kennung.
You don't have permission to view the spoiler content. Log in or register now.
Die common.rpy im TL-Verzeichnis ist eine spezielle Datei. Diese Datei beinhaltet Standardbegriffe und Text von renpy selbst. Das sind u.a. Hinweistexte für das Speichern und Laden oder auch die Namen der Wochentage und Monate. Also quasi eine Übersetzung für die Software RenPy selbst. Diese common.rpy wird bei jeder erstellten Übersetzung automatisch mit erstellt. Da der Inhalt aber für die jeweilige RenPy-Version immer der selbe ist, reicht es dafür eine Übersetzung zu erstellen und diese dann bei der nächsten Spieleübersetzung wieder zu nutzen.

Auch Grafiken können per TL-Dateien auf Deutsch angezeigt werden. Dazu müssen die fraglichen Grafiken wie In-Game-Bilder, Buttons usw. mit einem Bildbearbeitungsprogramm entsprechend bearbeitet werden. Das bearbeitete Bild danach mit der gleichen Verzeichnisstruktur wie das Originalbild in den TL-Ordner legen. Wenn das Ursprungsbild beispielsweise im Verzeichnis game\image\button liegt, dann muss die deutsche Version in das Verzeichnis game\tl\german\image\button


6. Programme zum Übersetzen
Beispiele:

Phoenix Community Beta 0.5
.rpy Datei im TL-Verzeichnis "german" auswählen und z.B. mit DeepL Satz für Satz übersetzen.
Vorteil: Funktioniert mit DeepL, dadurch können direkt die Sätze angepasst und verändert werden. Spezielle Formatierungsangaben können herausfiltert werden, z.B. {i}{/i}. Kommentare bleiben weiterhin bestehen.
Nachteil: Läuft nicht vollautomatisch, sondern nur Satz für Satz.
(Dieses Programm benutze ich persönlich momentan zum Übersetzen. Die kostenlose Version reicht völlig.)

Translator++ Ver. 3.9.30B
Nur die Dateien im TL-Verzeichnis "german" auswählen und übersetzen lassen (Batch).
Vorteil: Schnelle kostenlose maschinelle Übersetzung, z.b. mit Google, Kommentare bleiben weiterhin bestehen.
Nachteil: DeepL ist nur als Bezahl-Addon verfügbar.

TranslateRenPy 0.08
Automatische Übersetzung, benötigt aber ein Google Cloud Account.
Da ich kein Account besitze und dieses Programm daher selber nicht getestet habe, kann ich keine Einschätzung abgeben.


7. Auswahlmenü für die Sprache
Wichtiger Hinweis: Ein allgemeingültige Anleitung wie die vorhandene Programmierung geändert werden muss, um die Spachauswahl hinzufügen gibt es nicht. Jeder Programmierer hat sein Spiel ggf. individuell programmiert. Wenn man die Auswahl im Spiel unter Preferences/Optionen anbieten möchte, dann muss meist die "screen.rpy" modifiziert werden. Dort nach dem Abschnitt "Preferences screen" suchen. In diesem Abschnitt sind die Einstellmöglichkeiten aufgeführt, die im Spiel unter Preferences/Optionen auswählbar sind, z.B. Vollbild, Lautstärke usw. Die Programmierung kann wie erwähnt von Spiel zu Spiel unterschiedliche sein. Häufig ist der Aufbau aber Standard. Wichtig ist das Einrücken der Befehle (nur Leerzeichen, keine Tabs).

You don't have permission to view the spoiler content. Log in or register now.
You don't have permission to view the spoiler content. Log in or register now.

You don't have permission to view the spoiler content. Log in or register now.


8. Besonderheiten bei der Übersetzung
Texte in Variablen
Um übersetzte Texte aus Variablen anzuzeigen wird die Angabe !t benötigt. Dies nennt sich Translating Substitutions.
You don't have permission to view the spoiler content. Log in or register now.

Satzlänge
Wenn Texte ins Deutsche übersetzt werden, dann sind dieser meist länger als der englische Originaltext. Falls es Schwierigkeiten mit der Darstellung im Spiel geben sollte, gibt es zwei Möglichkeiten. 1. Eine Veränderung der Schriftgröße und der Zeilenlänge. Diese Angaben können in der "gui.rpy" modifiziert werden. Dort unter dem Abschnitt "Fonts and Font Size" kann z.B. die Schriftgröße verändert werden. Im Abschnitt "Dialogue" kann wiederum die Platzierung der Texte verändert werden. Ebenfalls kann dort auch noch die Zeilenlänge angepasst werden. Möglichkeit 2. besteht darin den Dialog zu splitten.
You don't have permission to view the spoiler content. Log in or register now.
Bei der Variante 1 könnte es Probleme bei der Darstellung geben, wenn der Entwickler seinem Spiel ein speziales Design verpasst hat. Bei Variante 2 muss der Spieler einen zusätzlichen Klick ausführen.


9. Spätere Updates des Spiels
Wenn eine neue Version vom Spiel veröffentlicht wird, kommt nicht nur neuer Text hinzu, sondern ggf. hat der Entwickler alte Texte verändert. Dies Veränderungen werden von der Ren'Py SDK automatisch erkannt, wenn eine neue Übersetzung angefertigt wird.
Die neue Spielversion wieder in das Verzeichnis "renpy-7.4.11-sdk" ablegen. Zusätzlich die TL-Dateien aus der alten Übersetzung hinzufügen. Somit sind die Originalscripte neu und das TL-Verzeichnis beinhaltet die alte Übersetzung. Dann wie immer das Programm starten und die Übersetzung anfertigen. Die neue Zeilen die übersetzt werden müssen, werden am Ende von der alten Übersetzung angefügt.

Beispiel wo dies bereits zum zweiten Mal geschehen ist:
08_Update.png

Der nachfolgende Hinweis hat nichts mit dem Übersetzen direkt zu tun: Um Änderungen an den Skripten selber zu prüfen ist die Compare-Funktion in Notepad++ eine gute Möglichkeit. Diese Funktion ist im Standard aber nicht aktiv. Es muss erst unter Erweiterungen -> Plugins Admin aktiviert werden. Dann können zwei Dateien (z.B. altes und neues Script) geöffnet und verglichen werden.


10. Abweichungen bei Übersetzungen
Wieweit man sich an den Originaltext beim Übersetzen hält, muss jeder individuell entscheiden.
Eine sinnvolle Abweichung wäre z.B. das Datumsformat im Lade/Speichermenü:
Python:
    # game/screens.rpy:715
    old "{#file_time}%A, %B %d %Y, %H:%M"
    new "{#file_time}%A, %d. %B %Y, %H:%M"
Statt "Wochentag, Monat Tag Jahr, Stunde:Minute" würde in diesem Beispiel "Wochentag, Tag. Monat Jahr Stunde:Minute" angezeigt werden. Das wäre die in Deutschland übliche Darstellung.

Ebenfalls könnte theoretisch auch ein Walkthrough in der Übersetzung mit integriert werden.
You don't have permission to view the spoiler content. Log in or register now.
Das funktioniert aber nur solange die Variablentexte einmalig sind, da diese immer für das gesamte Projekt gültig sind. Ein Walkthrough ist z.B. so nicht umsetzbar für Auswahltexte die nur Ja und Nein beinhalten.


11. Weitere Dokumentation
Eine ausführliche Doku zum Thema Übersetzung gibt es natürlich von Ren'Py selbst: (engl.) Und wer tiefer in die Materie der Programmierung mit Ren'Py einsteigen möchte, die Dokumentation ist sehr ausführlich und umfangreich.

Des Weiteren ist im Anhang eine ausführliche Anleitung von moskyx. Diese wurde von Keks_Keks erst einmal nur automatisch übersetzt. Die englisch und spanische Version dieser Anleitung gibt es hier: Link
Leider bin ich erst vor kurzem über diese Anleitung gestolpert. Damit hätte ich mir einiges an Recherche sparen können.
 
Last edited:

JBZ

Active Member
Aug 1, 2020
636
1,578
Feedback erwünscht.
Kommt man mit dieser Anleitung schon klar oder auf welche Punkte müsste ich noch genauer eingehen?

Ich hab erst kürzlich selber angefangen mich in die Materie etwas einzuarbeiten und hab bis jetzt auch nur ein Spiel übersetzt. Bin also auch kein Profi. Tipps sind daher gerne willkommen.

PS: Schade das in diesem Forum nicht alle BB-Codes unterstützt werden. Hätte ich die Anleitung etwas besser machen können.
 
Last edited:
  • Like
Reactions: HappyRagnar

Drussler

Active Member
Donor
Jan 8, 2018
809
1,047
Erster Grobentwurf


Anleitung für die Erstellung von Übersetzungen für Ren'Py Spielen
von JBZ - 2020

1. Einleitung
Ren'Py bietet die Möglichkeit zusätzliche Übersetzungen in ein bestehendes Spiel zu integriert. Dafür gibt es den Ordner "\game\tl". Dort befinden sich Texte oder Grafiken, die per Sprachauswahl alternativ zum Original verwendet werden.

Wer mit Rechtschreib- und Grammatikfehlern leben kann, der kann in wenigen Minuten für ein Spiel eine maschinelle Übersetzung erstellen. Die wesentlich größere Arbeit ist es diese Texte zu kontrollieren und zu korrigieren, denn auch die besten Online-Übersetzer, wie DeepL, sind nicht perfekt. Eine komplette Übersetzung inkl. Buttons oder Spielegrafik bedeutet ebenfalls nochmal zusätzliche Arbeit.


2. Ren'Py Dateiformate
Für das Übersetzen von Ren'Py Spielen, sollte man sich zuallererst mit den verwendeten Dateiformaten vertraut machen.

.rpa
Das ist ein Archivformat von Ren'Py. Der Inhalt wird aber nicht komprimiert, sondern diese Datei ist sogar etwas größer als der reine Inhalt. Diese Archive bieten aber einen kleinen Geschwindigkeitsvorteil beim Laden von Spielelementen.
.rpa können nicht mit einem Packprogramm wie WinRAR oder ähnlichem geöffnet werden. Was mit den .rpa Dateien zu tun ist, steht unter "3. Vorbereitungen".

.rpyc
Dies sind kompilierte .rpy Dateien. Bei jedem Start des Spiels werden die .rpy kompiliert, wenn die entsprechende .rpyc Datei noch nicht vorhanden ist oder die .rpy Datei verändert wurde.

.rpy
Diese Dateien bestehen aus reinem Textformat und können mit einem entsprechenden Programm bearbeitet werden. Dabei müssen natürlich die Regeln der Programmierung beachtet werden.
Da alle Übersetzungen in den Zusatzdateien stattfindet, muss nur in einem Originalskript der Programmcode für die Spachauswahl angepasst werden. Siehe "7. Auswahlmenü für die Sprache".



3. Vorbereitungen
Nach der Installation des Spieles muss geschaut werden, welche von den o.g. Dateiformaten im Verzeichnis "game" vorliegen. Falls nur .rpa Dateien vorhanden sind, müssen diese entpackt werden. Die einfachste Möglichkeit dafür, ist das Tool unren.bat. Die aktuelle Version gibt es hier: Link
Die BAT einfach in das Spieleverzeichnis ablegen (dort wo sich auch die .exe Datei vom Spiel befindet). Nach dem Start den Punk 1 auswählen (Extract RPA packages). Den entpackte Inhalt findet man dann im Verzeichnis "game". Falls nur .rpyc Dateien vorliegen, müssen diese mit dem Punk 2 dekompiliert werden (Decompile rpyc files)


4. Erstellung der Überstzungsdateien
Als nächstes muss das Ren'Py Programm instaliert werden. Aktuelle Version 7.3.5: Link
Das Spiel kopiert ihr nun in das Verzeichnis "renpy-7.3.5-sdk" und startet dann die renpy.exe.

Im Ren'Py Launcher wird nun das Spiel unter Projects angezeigt. Als nächstes auf der rechten Seite den Punkt "Generate Translations" klicken.
Unter Language ein Sprachbezeichnung angeben, z.b. german
Mit Punkt "Generate empty strings for translations" kann definiert werden, wie die Übersetzungdateien erstellt werden sollen.
Darüber dann auf "Generate Translations" klicken.
View attachment 913073


5. Übersetzung
Unter "\game\tl" befindet sich nun ein Ordner mit der unter Language vorgegeben Bezeichnung. In diesem Order bzw. ggf. weiteren Unterverzeichnissen befinden sich alle Übersetzungsdateien (.rpy).
Im Prinzip können diese nun direkt bearbeitet werden.
View attachment 913074

Geändert werden sollte nur der Text zwischen den Anführungsstrichen. Es dürfen keine Tabs verwendet werden.
Der Text von Variablen wird über old/new definiert. Die Übersetzungen von Variablen können nur einmal vorgegeben werden, da sie für das ganze Projekt gültig sind.

View attachment 913075

Beispiel aus einer Übersetzungsdatei:
Python:
# game/ep01.rpy:605
translate german ep01_activities_09fee569:

    # pl "{i}([name_aunt] sounds desperate. I should at least meet her and see what the job is all about.){/i}"
    pl "{i}([name_aunt] klingt verzweifelt. Ich sollte sie zumindest treffen und sehen, worum es bei dem Job geht.){/i}"
{i}{/i} Zeigt die Schrift kursiv an (Italic).
[name_aunt] ist eine Variable. Später wird im Spiel an dieser Stelle im Dialog der Name der Tante angezeigt.

In den erstellten Übersetzungsdateien wird die Angabe der Dialogzeile und der Originaldialoge auskommentiert. Dies erfolgt durch das Zeichen #. Diese Angaben dienen nur als Hilfe, um z.B. die Dialogzeile im Original zu finden. Wenn der Dialog durch Updates in eine andere Zeile rutsch, dann hat dies keine Auswirkung auf die Übersetzung. Da für jede Dialogzeile eine ID gebildet wird und nur dieser ist wichtig. Im o.g. Beispiel "ep01_activities_09fee569". Wenn sich ein Dialog ändert, z.B der Satz wird umformuliert oder ein Rechtschreibfehler wird korrigiert, dann ändert sich auch die ID und die Übersetzung muss an dieser Stelle angepasst werden. Übersetzungen von Variablen benötigen keine ID.



6. Programme zum Übersetzen
Beispiele:

Translator++2.9.29
Nur die Dateien im TL-Verzeichnis "german" auswählen und übersetzen lassen (Batch).
Vorteil: Schnelle kostenlose maschinelle Übersetzung, z.b. mit Google
Nachteile: Leider kein DeepL möglich. Alle Kommentare werden in der fertigen Datei entfernt.


Translator Renpy games Phoenix translate V4
.rpy Datei im TL-Verzeichnis "german" auswählen und z.B. mit DeepL Satz für Satz übersetzen.
Vorteil: Funktioniert mit DeepL, wo man direkt die Sätze verändern kann. Spezielle Formatierungsangaben können herausfiltert werden, z.B. {i}{/i}. Kommentare bleiben weiterhin bestehen.
Nachteil: Läuft nicht vollautomatisch, sondern nur Satz für Satz.


TranslateRenPy 0.07
Automatische Übersetzung, benötigt aber ein Google Cloud account.



7. Auswahlmenü für die Sprache
Wichtiger Hinweis: Ein allgemeingültige Anleitung wie die vorhandene Programmierung geändert werden muss, um die Spachauswahl hinzufügen gibt es nicht. Jeder Programmierer hat sein Spiel ggf. individuell programmiert. Wenn man die Auswahl im Spiel unter Preferences/Optionen anbieten möchte, dann muss meist die "screen.rpy" modifiziert werden.
Dort nach dem Abschnitt "Preferences screen" suchen. In diesem Abschnitt sind die Einstellmöglichkeiten aufgeführt, die im Spiel unter Preferences/Optionen auswählbar sind, z.B. Vollbild, Lautstärke usw.
Die Programmierung kann wie erwähnt von Spiel zu Spiel unterschiedliche sein. Häufig ist der Aufbau aber Standard.

You don't have permission to view the spoiler content. Log in or register now.

Wichtig sind die Einrückung der Befehle (nur Leerzeichen, keine Tabs). In Notepad++ wird dies sehr gut dargestellt.
View attachment 913076

You don't have permission to view the spoiler content. Log in or register now.


8. Spätere Updates des Spiels
Eine gute Möglichkeit um ein altes Skript mit einer neuen Version zu vergleichen, ist die Compare-Funktion in Notepad++.
Ist im Standard aber nicht aktiv. Muss unter Erweiterungen -> Plugins Admin erst aktiviert werden.
Wie bereits beschrieben, sollten alle Texte weiterhin übersetzt werden, wenn sich am Dialog nichts verändert hat, auch wenn z.B. eine Dialogzeile dazugekommen sein sollte. Für neue Dialoge oder Änderungen wird die entsprechende ID benötigt. Diese dann in die Übersetzungsdateien einpflegen.
Das ist mal sehr ausführlich geworden!(y) So kann man Übersetzten und die Orginale Datei beibehalten. Werde es 1 zu 1 oben mit übernehmen! Tolle Arbeit!!
 
  • Like
Reactions: HappyRagnar