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

Spatenklopper

Well-Known Member
Jun 4, 2021
1,499
3,207
Super danke dir!

Vorerst letzte Sache.

1.PNG

Versucht mit ->
2.PNG

Funktioniert so allerdings nicht.
Denke es könnte am Zeilenumbruch liegen, aber hab keine Ahnung wie ich das machen soll.

p.s. Das fehlende ? in der Zeile drüber ist nun drin. ;)
 

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
Hat jemand A Man For All auf seinem Rechner?

Was ich nicht übersetzt bekomme, ist zu Beginn des Spiels, die Abfrage nach dem Namen. Ich finde die Zeile für die Abfrage einfach in keiner Datei. :rolleyes:

Hab das erste Kapitel jetzt fertig und wollte mal hören was ihr davon denkt und ob ihr eventuell eine Idee habt, wo die fehlenden Dinge stehen könnten.

Im Anhang mal das erste Kapitel in Deutsch, Rückmeldungen gerne erwünscht.

Edit:

An den noch nicht übersetzten Worten im Menü bin ich grade dran.
Hier hab ich noch was für dich die ganzen Namen im spiel die du dann noch übersetzen musst.
 

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
# game/scripts/core/screens.rpy:873
old "Language"
new "Language"

# game/scripts/core/screens.rpy:875
old "English"
new "English"

# game/scripts/core/screens.rpy:876
old "Deutsch"
new "Deutsch"

Hm da musst du die nummern mit angeben.

# game/scripts/core/screens.rpy:329
old "Return"
new "Zurück"

So muss das aussehen.
 
Last edited:

Spatenklopper

Well-Known Member
Jun 4, 2021
1,499
3,207
Hm da musst du die nummern mit angeben.

Kann man machen, muss man aber nicht.
Funktioniert nämlich genauso gut ohne die Nummern.;)

Ich glaub das könnte im "common" stehen aber sicher bin ich mir nicht
Die ganzen anderen "Anfragefensterchen" hab ich in die screens eingetragen und es funktioniert wunderbar.
Das Problem ist offensichtlich, dass der Text im Fenster in zwei Zeilen steht. (Ist irgendwo beim Laden oder Speichern auch noch mal).
Ich hab aber keine Ahnung wie das im Editor aussehen muss.
 

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
Kann man machen, muss man aber nicht.
Funktioniert nämlich genauso gut ohne die Nummern.;)



Die ganzen anderen "Anfragefensterchen" hab ich in die screens eingetragen und es funktioniert wunderbar.
Das Problem ist offensichtlich, dass der Text im Fenster in zwei Zeilen steht. (Ist irgendwo beim Laden oder Speichern auch noch mal).
Ich hab aber keine Ahnung wie das im Editor aussehen muss.
Hm im Editor muss das glaube so aussehen wie ich es gemacht habe mit den nummern.
Sonst weiß er ja nicht was er machen soll ohne die nummern.
Aber warte lieber auf andere Meinung soviel Ahnung habe ich auch nicht.
 
Last edited:

Spatenklopper

Well-Known Member
Jun 4, 2021
1,499
3,207
Es geht wirklich wunderbar ohne Nummern, auch im Editor.

Noch ne Frage:
Erika redet den MC im dem Spitznamen "Slick" an, wie würdet Ihr das übersetzen?
 
May 8, 2021
279
545
Hallo zusammen ,
Übersetze gerade zum Spaß ein Game, mit der /game/ti/deutsch ,ich hätte dazu mal eine frage da man wenn man über Renpy diese Übersetzen erstellt und man jetzt nicht alle gesprochenen Texte bekommt im script.rpy ,wie kann man genau diese dazu fügen ?? Habe mal ein Bild gemacht davon was ich meine ,wäre schön wenn mir da jemand weiter helfen könnte .

ScreenShot_20211007023026.png


Und was mich auch noch nicht wirklich verstehe ist diese Nummer bei zb: translate german start_2b16b069:
also um genau zu sein diese 2b16b069: wie man die dann einfügen muss wenn man texte hinzufügt ?
Danke schon mal im Voraus .

Gruß Playazclubmember
 

JBZ

Active Member
Aug 1, 2020
636
1,560
Ok, dann arbeiten wir mal die ganzen Fragen ab...

1.
Die ganzen anderen "Anfragefensterchen" hab ich in die screens eingetragen und es funktioniert wunderbar.
Das Problem ist offensichtlich, dass der Text im Fenster in zwei Zeilen steht. (Ist irgendwo beim Laden oder Speichern auch noch mal).
Ich hab aber keine Ahnung wie das im Editor aussehen muss.
So was sind alles RenPy-Meldungen und somit sind diese in der common.rpy zu finden, wenn man die Übersetzung mit der SDK erstellt.
Python:
    old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
    new "Möchtest du wirklich zum Hauptmenü zurückkehren?\nDadurch geht nicht gespeicherter Fortschritt verloren."
Der Zeilenumbruch wird mit \n angegeben.

PS:
Übersetzung für den Spitznamen "Slick", kommt auf den Kontext an. Gibt da anscheint eine gewisse Bandbreite.



2.
Hm da musst du die nummern mit angeben.
Die Nummern bei der Auflistung der strings sind irrelevant. Beispiel:
Python:
# game/scripts/core/screens.rpy:876
Diese Zeilen dienen nur als Information und ist daher auch mit dem Zeichen # auskommentiert. Es hilft einem den string im Originalskript schneller zu finden, aber benötigt wird es halt nicht. Im o.g. Beispiel wäre der string in der screen.rpy bei Zeile 876. Diese Angaben kann man aber auch weglassen. Wenn ich z.B. strings händisch nachtrage, schreib ich das fast nie dazu.


3.
Hallo zusammen ,
Übersetze gerade zum Spaß ein Game, mit der /game/ti/deutsch ,ich hätte dazu mal eine frage da man wenn man über Renpy diese Übersetzen erstellt und man jetzt nicht alle gesprochenen Texte bekommt im script.rpy ,wie kann man genau diese dazu fügen ?? Habe mal ein Bild gemacht davon was ich meine ,wäre schön wenn mir da jemand weiter helfen könnte .

ScreenShot_20211007023026.png


Und was mich auch noch nicht wirklich verstehe ist diese Nummer bei zb: translate german start_2b16b069:
also um genau zu sein diese 2b16b069: wie man die dann einfügen muss wenn man texte hinzufügt ?
Danke schon mal im Voraus .

Gruß Playazclubmember
RenPy unterschiedet Texte in zwei Arten: Dialoge und Strings. Wenn man TL-Dateien mit der SDK erstellen lässt, dann werden als erstes in der TL-Datei die Dialogzeilen aufgeführt. RenPy ordnet die Übersetzung von Dialogzeilen mittels Kennung zu. Ein Kennung setzt sich aus dem Label und dem Hashwert zusammen. Der Hashwert wird aus dem Text errechnet. Darum musst du dich aber nicht kümmern, macht alles die SDK.
Die strings werden nach den Dialogzeilen aufgelistet. Dazu gehören z.B. die Texte die bei Gesprächsoptionen erscheinen.
Die Übersetzung von strings benötigen keine Kennung, sondern diese Zuordnung wird von RenPy direkt mit dem Textinhalt ermittelt (old/new). Die Übersetzung eines strings darf nur einmal in den TL-Dateien vorkommen.

-----
Ich glaub das waren alle Fragen. Wenn noch was unklar ist, einfach Bescheid geben.
 
May 8, 2021
279
545
Hi JBS,

Also wenn ich das ganze jetzt Richtig verstehe von meinem Beispiel jetzt muss es so eingefügt werden:

# "What do you do?"
"Und was machen Du?"

so in die Ti Eintragen und denn Rest macht dann RenPy von selber ?

Danke schön für Die Hilfe ,dann ist es ja ganz leicht das ganze :) und ich habe wieder was dazu gelernt!

mfg
 

JBZ

Active Member
Aug 1, 2020
636
1,560
Playazclubmember
Du erstellst mit der SDK die TL-Dateien. Es gibt Texte die kenntlich gemacht werden müssen, damit die von der SDK erkannt werden, aber die Dialogzeilen und die strings von den Auswahloptionen werden ohne Probleme automatisch erkannt. Da musst du nichts zusätzlich einfügen.

Die Texte "What do you do?" und "Try and sweet talk her" sollten bei dir unter strings aufgeführt sein. Bei old sollte dann der Orginaltext stehen und bei new schreibst du deine Übersetzung hin.
 
  • Like
Reactions: Playazclubmember

Spatenklopper

Well-Known Member
Jun 4, 2021
1,499
3,207
Ok, dann arbeiten wir mal die ganzen Fragen ab...

1.
So was sind alles RenPy-Meldungen und somit sind diese in der common.rpy zu finden, wenn man die Übersetzung mit der SDK erstellt.
Ja das war das, was ich noch in Erinnerung hatte.
Hier in diesem Spiel allerdings nicht so, denn es gibt schlicht keine common.rpy
Im game/tl/None Verzeichnis findet sich eine common.rpym, da drin steht allerdings nichts, was die Auswahlfenster betrifft.
Habs jetzt in die screens geschrieben und es funktioniert nun.
 

JBZ

Active Member
Aug 1, 2020
636
1,560
Ja das war das, was ich noch in Erinnerung hatte.
Hier in diesem Spiel allerdings nicht so, denn es gibt schlicht keine common.rpy
Im game/tl/None Verzeichnis findet sich eine common.rpym, da drin steht allerdings nichts, was die Auswahlfenster betrifft.
Habs jetzt in die screens geschrieben und es funktioniert nun.
Hab mir auch mal die TL-Dateien für das Spiel "A Man for All" erstellt. Die common.rpy ist genau dort, wo sie sein sollte. Die common.rpy wird auf Grundlage der verwendeten RenPy Version erstellt (Verzeichnis renpy), das Spiel hat damit nichts zu tun. So lange sich an der RenPy Version nichts ändert, kannst du die übersetzte common.rpy immer wieder verwenden.
 

Spatenklopper

Well-Known Member
Jun 4, 2021
1,499
3,207
Moin nochmal zusammen.

Hab nochmal eine Frage zur "Sprachauswahl", denn ich bin da auf ein Problem gestoßen, dass man nicht hat wenn man die Übersetzung selbst schreibt, aber sehr wohl, wenn man sie einfach nur ins Spiel kopiert.

Die Sprachauswahl wird ja in die originale screens.rpy nachträglich geschrieben, allerdings liegt diese bei dem Spiel in der archive.rpa implementiert.
Ich hab sie zwar, da ich per Unren diese extrahiert habe um an die script Dateien zu kommen, aber jeder andere "Normale" hat eben nur die archive.rpa im Game Verzeichnis.
Wenn ich nun in die Originalfassung den "german" Ordner in das TL Verzeichnis kopiere, startet das Spiel sofort auf Deutsch, die Sprachauswahl ist nicht vorhanden.
Englisch ist nur verfügbar, wenn man den german Ordner wieder aus dem TL-Verzeichnis löscht.

Kann ich eine Sprachauswahl zur Verfügung stellen, ohne das jeder vorher die archive.rpa extrahieren müsste?


Edit:
Hat sich erledigt.

Hätte gedacht, dass es dort zu Problemen kommen würde, da das Spiel dann quasi zwei screens.rpy zur Verfügung hat,
aber wenn man die extrahierte und bearbeitete Screens ins TL Verzeichnis kopiert, funktioniert die Sprachauswahl wieder.
 
Last edited:
May 8, 2021
279
545
Hallo zusammen, ich hätte da ein Game übersetzt und habe mich da mehrere Stunden hingesetzt um dies zu machen mit Ti Ordner . Aber leider Startet das Game nicht mit der Deutschen Ti Datei ,könnte mir da jemand Helfen würde das Game ja auch gerne hier zu Verfügung stellen wenn es dann alles klappt. Es handelt sich um das Game Danke schon mal für die Hilfe ;)

Gruß Playazclubmember

Slave High [v0.32] [SecondClass]

Mir ist jetzt was aufgefallen die Sprach Auswahlgibt es wenn ich im /game/ti denn german ordner wieder rausnehme startet das Game auch ,nur wenn ich denn Ordner wieder reinmache stürzt das Game ab und ich bekomme denn Fehler :


I'm sorry, but an uncaught exception occurred.

After loading the script.
error: Out of memory

-- Full Traceback ------------------------------------------------------------

Full traceback:
File "renpy/bootstrap.py", line 326, in bootstrap
renpy.main.main()
File "renpy/main.py", line 505, in main
if renpy.parser.report_parse_errors():
File "renpy/parser.py", line 3015, in report_parse_errors
renpy.display.error.report_parse_errors(full_text, error_fn)
File "renpy/display/error.py", line 194, in report_parse_errors
error_fn=error_fn,
File "renpy/game.py", line 284, in invoke_in_new_context
return callable(*args, **kwargs)
File "renpy/display/error.py", line 46, in call_exception_screen
return renpy.ui.interact(mouse="screen", type="screen", suppress_overlay=True, suppress_underlay=True)
File "renpy/ui.py", line 298, in interact
rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
File "renpy/display/core.py", line 3276, in interact
repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
File "renpy/display/core.py", line 3790, in interact_core
self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
File "renpy/display/core.py", line 2521, in draw_screen
renpy.config.screen_height,
File "render.pyx", line 492, in renpy.display.render.render_screen
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 814, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 814, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 814, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/screen.py", line 681, in render
child = renpy.display.render.render(self.child, w, h, st, at)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 814, in render
surf = render(child, width, height, cst, cat)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 1238, in render
st, at)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 1733, in render
cwidth, cheight = sizeit('c', width, height, 0, 0)
File "renpy/display/layout.py", line 1730, in sizeit
rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
File "render.pyx", line 315, in renpy.display.render.render_for_size
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 1733, in render
cwidth, cheight = sizeit('c', width, height, 0, 0)
File "renpy/display/layout.py", line 1730, in sizeit
rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
File "render.pyx", line 315, in renpy.display.render.render_for_size
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/viewport.py", line 249, in render
surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/display/layout.py", line 1017, in render
surf = render(d, width - x, rh, cst, cat)
File "render.pyx", line 170, in renpy.display.render.render
File "render.pyx", line 263, in renpy.display.render.render
File "renpy/text/text.py", line 2070, in render
layout = Layout(self, width, height, renders, splits_from=virtual_layout)
File "renpy/text/text.py", line 821, in __init__
surf = renpy.display.pgrender.surface((tw, th), True)
File "renpy/display/pgrender.py", line 119, in surface
surf = Surface((width + 4, height + 4), 0, sample)
File "src/pygame_sdl2/surface.pyx", line 164, in pygame_sdl2.surface.Surface.__init__
error: Out of memory

Windows-10-10.0.19041
Ren'Py 7.4.7.1862

Slave High 0.31
Sat Oct 16 02:40:17 2021


Blick da nicht ganz durch was da Schief gelaufen ist .Weil an der Datei kann es ja nicht liegen oder doch ?

gruß Playazclubmember
 
Last edited:

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
Hm das habe ich auch mal gehabt und habe die alte Version gelöscht und habe die neue wieder entpackt.
Und es ging wieder aber lösche deine Übersetzung nicht.
 
  • Like
Reactions: Playazclubmember
May 8, 2021
279
545
Hm das habe ich auch mal gehabt und habe die alte Version gelöscht und habe die neue wieder entpackt.
Und es ging wieder aber lösche deine Übersetzung nicht.
Also heißt das, das ich jetzt auf eine neue Version von dem Game warten muss ?? Oder wie muss man das verstehen ??

Gruß Playazclubmember
 

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
Also heißt das, das ich jetzt auf eine neue Version von dem Game warten muss ?? Oder wie muss man das verstehen ??

Gruß Playazclubmember
Einfach die Version nochmal runter laden oder es sei den du hast die gepackte auf dein Rechner rum liegen.