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

JBZ

Active Member
Aug 1, 2020
636
1,560
Moin, wollte man den Phoenix Translate V4 testen und habe die .-ini Dateien angepasst aber es kommt immer en Fehler, kann mal einer drüberschauen?

Im Ordner Lang sind ja auch noch ini Dateien, wie muss ich die Deutsche anpassen oder macht er das dann automatisch?
Die Datei Settings.ini bleibt wie sie ist, dort muss nichts geändert werden. Der Eintrag Language ist für die Sprache der Oberfläche vom Tool. Deutsch gibt es aber nicht, also auf Englisch belassen.

Settings_Translators.ini kannst du direkt ändern oder im Tool unter Optionen die Änderungen vornehmen.
Bei DeepL müsstest du hinschreiben:
Code:
[DeepL]
Name_Translator = DeepL
Adresse_Translator = https://www.deepl.com/translator#en/de/
Xpath_Translator = /html/body/div[2]/div[1]/div[4]/div[4]/div[3]/div[3]/div[1]/textarea
Der Xpath ändert sich aber leider von Zeit zu Zeit. Wenn die Übersetzungen nicht mehr übernommen werden, dann brauch man einen neuen.
 
  • Like
Reactions: mtmes

mtmes

Member
Mar 16, 2019
152
99
Du musst das suchen old "Antworten Sie sarkastisch!" in "game/tl/german/ch13_fri.rpy", line 5590.
Und einfach ein punkt oder was auch immer da hin tun weil es doppelt ist.
old "Antworten Sie sarkastisch!." so das müsste reichen.
Aber ich würde dir raten alles was old "Antworten Sie sarkastisch!" in englisch zu machen sonst sind die Auswahl Möglichkeiten in englisch im spiel.
Jetzt habe ich aber doch noch eine Frage dazu und zwar habe ich das so gemacht wie du geschrieben hast aber mir ist natürlich aufgefallen das alle old und new gleich sind:

# game/chapter8.rpy:1305
old "Kommentar zum Outfit"
new "Kommentar zum Outfit"

# game/chapter8.rpy:1305
old "Einfach zu Abend essen"
new "Einfach zu Abend essen"

# game/chapter8.rpy:1357
old "Triff dich mit Damien"
new "Triff dich mit Damien"

# game/chapter8.rpy:1357
old "Treffen Sie die Swinger-Nachbarn"
new "Treffen Sie die Swinger-Nachbarn"

# game/chapter8.rpy:1357
old "Schaue fern!:"
new "Schaue fern!"

# game/chapter8.rpy:1357
old "Besuchen Sie Donny und Phil"
new "Besuchen Sie Donny und Phil"

# game/chapter8.rpy:1470
old "Die Einladung akzeptieren."
new "Die Einladung akzeptieren."

# game/chapter8.rpy:1470
old "Lehnen Sie die Einladung ab."
new "Lehnen Sie die Einladung ab."

# game/chapter8.rpy:1548
old "Lass Anne antworten"
new "Lass Anne antworten"

Ist alles falsch?
 

Drussler

Active Member
Donor
Jan 8, 2018
794
1,024
Jetzt habe ich aber doch noch eine Frage dazu und zwar habe ich das so gemacht wie du geschrieben hast aber mir ist natürlich aufgefallen das alle old und new gleich sind:

# game/chapter8.rpy:1305
old "Kommentar zum Outfit"
new "Kommentar zum Outfit"

# game/chapter8.rpy:1305
old "Einfach zu Abend essen"
new "Einfach zu Abend essen"

# game/chapter8.rpy:1357
old "Triff dich mit Damien"
new "Triff dich mit Damien"

# game/chapter8.rpy:1357
old "Treffen Sie die Swinger-Nachbarn"
new "Treffen Sie die Swinger-Nachbarn"

# game/chapter8.rpy:1357
old "Schaue fern!:"
new "Schaue fern!"

# game/chapter8.rpy:1357
old "Besuchen Sie Donny und Phil"
new "Besuchen Sie Donny und Phil"

# game/chapter8.rpy:1470
old "Die Einladung akzeptieren."
new "Die Einladung akzeptieren."

# game/chapter8.rpy:1470
old "Lehnen Sie die Einladung ab."
new "Lehnen Sie die Einladung ab."

# game/chapter8.rpy:1548
old "Lass Anne antworten"
new "Lass Anne antworten"

Ist alles falsch?
Bei old muss immer das Original sein, also das auf Englisch.
 
  • Like
Reactions: mtmes

mtmes

Member
Mar 16, 2019
152
99
Hab ich mir schon gedacht und auch gemerkt das Translator++ und renpy Spiele sich gegensetig nicht mögen! Ich würde gerne mal Phoenix v5 aber ich scheine echt zu dämlich dafür zu sein (bin Fachinformatiker für Systemintegration und proggen war nie mein Ding). Wenn ich Phoenix v5 und auf das Game gehe habe ich irgendwie keinerlei Auswahl , also tl/german sehe ich überhaupt nicht.

Ich sollte bei meinen Server bleiben:rolleyes:
 
  • Like
Reactions: Drussler

mtmes

Member
Mar 16, 2019
152
99
mtmes
Versuch mal dein Glück mit der neuen Version: Phoenix Community Beta 0.5. *Daumendrück*
Hab mir die neue Version gerade mal angeschaut und das sieht richtig gut aus! Werde es mal in Ruhe testen!

Nachtrag: Es kommt öfter die Meldung: ist not present in the list of Substitute you want to add it?

Was soll ich dann dort eingeben?
 
Last edited:

mtmes

Member
Mar 16, 2019
152
99
JBZ nochmals danke für den Tip und die Beta Version ist echt nicht schlecht! Ich habe jetzt auch mal eni wenig probiert und mir aber gedacht bevor ich jetzt weitermache will ich das mit den Einstellungen hinbekommen denn das ist immer mein wunder Punkt. Ich habe es auch so wie in der Anleitungemacht aber leider sehe ich die Einstellungen nicht, was habe ich den vergessen oder was mache ich falsch?

Code:
screen preferences():
    tag menu


    use game_menu(_("Preferences"), scroll="viewport"):

        vbox:

            hbox:
                box_wrap True

                if renpy.variant("pc") or renpy.variant("web"):

                    vbox:
                        style_prefix "radio"
                        label _("Display")
                        textbutton _("Window") action Preference("display", "window")
                        textbutton _("Fullscreen") action Preference("display", "fullscreen")

                vbox:
                    style_prefix "radio"
                    label _("Rollback Side")
                    textbutton _("Disable") action Preference("rollback side", "disable")
                    textbutton _("Left") action Preference("rollback side", "left")
                    textbutton _("Right") action Preference("rollback side", "right")

                vbox:
                    style_prefix "check"
                    label _("Skip")
                    textbutton _("Unseen Text") action Preference("skip", "toggle")
                    textbutton _("After Choices") action Preference("after choices", "toggle")
                    textbutton _("Transitions") action InvertSelected(Preference("transitions", "toggle")

                vbox
                    style_prefix "pref"
                    label _("Language")
                    textbutton _("English") action Language(None)
                    textbutton _("German") action Language(german))

            null height (4 * gui.pref_spacing)

            hbox:
                style_prefix "slider"
                box_wrap True

                vbox:

                    label _("Text Speed")

                    bar value Preference("text speed")

                    label _("Auto-Forward Time")

                    bar value Preference("auto-forward time")

                vbox:

                    if config.has_music:
                        label _("Music Volume")

                        hbox:
                            bar value Preference("music volume")

                    if config.has_sound:

                        label _("Sound Volume")

                        hbox:
                            bar value Preference("sound volume")

                            if config.sample_sound:
                                textbutton _("Test") action Play("sound", config.sample_sound)


                    if config.has_voice:
                        label _("Voice Volume")

                        hbox:
                            bar value Preference("voice volume")

                            if config.sample_voice:
                                textbutton _("Test") action Play("voice", config.sample_voice)

                    if config.has_music or config.has_sound or config.has_voice:
                        null height gui.pref_spacing

                        textbutton _("Mute All"):
                            action Preference("all mute", "toggle")
                            style "mute_all_button"
 

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
JBZ nochmals danke für den Tip und die Beta Version ist echt nicht schlecht! Ich habe jetzt auch mal eni wenig probiert und mir aber gedacht bevor ich jetzt weitermache will ich das mit den Einstellungen hinbekommen denn das ist immer mein wunder Punkt. Ich habe es auch so wie in der Anleitungemacht aber leider sehe ich die Einstellungen nicht, was habe ich den vergessen oder was mache ich falsch?

Code:
screen preferences():
    tag menu


    use game_menu(_("Preferences"), scroll="viewport"):

        vbox:

            hbox:
                box_wrap True

                if renpy.variant("pc") or renpy.variant("web"):

                    vbox:
                        style_prefix "radio"
                        label _("Display")
                        textbutton _("Window") action Preference("display", "window")
                        textbutton _("Fullscreen") action Preference("display", "fullscreen")

                vbox:
                    style_prefix "radio"
                    label _("Rollback Side")
                    textbutton _("Disable") action Preference("rollback side", "disable")
                    textbutton _("Left") action Preference("rollback side", "left")
                    textbutton _("Right") action Preference("rollback side", "right")

                vbox:
                    style_prefix "check"
                    label _("Skip")
                    textbutton _("Unseen Text") action Preference("skip", "toggle")
                    textbutton _("After Choices") action Preference("after choices", "toggle")
                    textbutton _("Transitions") action InvertSelected(Preference("transitions", "toggle")

                vbox
                    style_prefix "pref"
                    label _("Language")
                    textbutton _("English") action Language(None)
                    textbutton _("German") action Language(german))

            null height (4 * gui.pref_spacing)

            hbox:
                style_prefix "slider"
                box_wrap True

                vbox:

                    label _("Text Speed")

                    bar value Preference("text speed")

                    label _("Auto-Forward Time")

                    bar value Preference("auto-forward time")

                vbox:

                    if config.has_music:
                        label _("Music Volume")

                        hbox:
                            bar value Preference("music volume")

                    if config.has_sound:

                        label _("Sound Volume")

                        hbox:
                            bar value Preference("sound volume")

                            if config.sample_sound:
                                textbutton _("Test") action Play("sound", config.sample_sound)


                    if config.has_voice:
                        label _("Voice Volume")

                        hbox:
                            bar value Preference("voice volume")

                            if config.sample_voice:
                                textbutton _("Test") action Play("voice", config.sample_voice)

                    if config.has_music or config.has_sound or config.has_voice:
                        null height gui.pref_spacing

                        textbutton _("Mute All"):
                            action Preference("all mute", "toggle")
                            style "mute_all_button"
So muss das aussehen.
vbox:
style_prefix "radio"
label _("Language")
# Real languages should go alphabetical order by English name.
textbutton _("English") action Language(None)
textbutton _("Deutsch") action Language("german")
 

JBZ

Active Member
Aug 1, 2020
636
1,560
mtmes
Schlicht und ergreifend fehlen dir da die Doppeltpunkte hinter der Anweisung vbox. :)
Du müsstest auch eine entsprechende Fehlermeldung bekommen, dass die vbox nicht korrekt ist.


Schubi791
Wenn du Programmcode posten möchtest, dann ist es sinnvoll diesen entsprechend anzugeben, sonst geht die Formatierung verloren. Entweder oben unter Einfügen Code und dann am besten noch Phyton auswählen oder einfach direkt hinschreiben:

[cdoe=python]
... Programmtext ...
[/code]
 
Last edited:

Schubi791

Engaged Member
Modder
Nov 23, 2020
3,051
4,832
mtmes
Schlicht und ergreifend fehlen dir da die Doppeltpunkte hinter der Anweisung vbox. :)
Du müsstest auch eine entsprechende Fehlermeldung bekommen, dass die vbox nicht korrekt ist.


Schubi791
Wenn du Programmcode posten möchtest, dann ist es sinnvoll diesen entsprechend anzugeben, sonst geht die Formatierung verloren. Entweder oben unter Einfügen Code und dann am besten noch Phyton auswählen oder einfach direkt hinschreiben:

[cdoe=python]
... Programmtext ...
[/code]
Ja darum hatte ich dann auch ein Bild geschickt weil das komisch aus sah.
 

mtmes

Member
Mar 16, 2019
152
99
Moin zusammen,

erstmal danke für die vorherigen Tips. Nun aber noch ein paar Fragen (Ich hoffe ich nerve euch nicht) ich bin dabei das Game Jessica's Life zu übersetzen und habe alles mit unren und renpy sdk vorbereitet und zu 50% übersetzt.

Ich habe dann die script.rpy gespeichert und screens.rpy angepasst und nun meine Fragen:

1. Muss ich dann noch was kompilieren oder ähnliches oder wäre das Game dann so sofort spielbereit? Wir gehen mal davon aus ich hätte die screens.rpy richtig angepasst :sneaky::rolleyes:

2. Ich habe die screens jetzt so angepasst wir ihr mir das gesagt habt und es startet auch aber sobald ich auf Preferences gehe kommt diese Fehlermeldung:

Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/screens.rpy", line 1142, in execute
    screen preferences():
  File "game/screens.rpy", line 1142, in execute
    screen preferences():
  File "game/screens.rpy", line 1146, in execute
    use game_menu(_("Preferences"), scroll="viewport"):
  File "game/screens.rpy", line 847, in execute
    screen game_menu(title, scroll=None, yinitial=0.0):
  File "game/screens.rpy", line 847, in execute
    screen game_menu(title, scroll=None, yinitial=0.0):
  File "game/screens.rpy", line 856, in execute
    frame:
  File "game/screens.rpy", line 859, in execute
    has hbox
  File "game/screens.rpy", line 865, in execute
    frame:
  File "game/screens.rpy", line 868, in execute
    if scroll == "viewport":
  File "game/screens.rpy", line 870, in execute
    viewport:
  File "game/screens.rpy", line 879, in execute
    has vbox
  File "game/screens.rpy", line 880, in execute
    transclude
  File "game/screens.rpy", line 1146, in execute
    use game_menu(_("Preferences"), scroll="viewport"):
  File "game/screens.rpy", line 1148, in execute
    vbox:
  File "game/screens.rpy", line 1150, in execute
    hbox:
  File "game/screens.rpy", line 1175, in execute
    vbox:
  File "game/screens.rpy", line 1180, in execute
    textbutton _("Deutsch") action Language(german)
  File "game/screens.rpy", line 1180, in keywords
    textbutton _("Deutsch") action Language(german)
  File "game/screens.rpy", line 1180, in <module>
    textbutton _("Deutsch") action Language(german)
NameError: name 'german' is not defined

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

Full traceback:
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in script
    python hide:
  File "renpy/ast.py", line 922, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "renpy/python.py", line 2218, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "renpy/common/_layout/screen_main_menu.rpym", line 28, in <module>
    python hide:
  File "renpy/common/_layout/screen_main_menu.rpym", line 35, in _execute_python_hide
    ui.interact()
  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 3693, in interact_core
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/core.py", line 567, in visit_all
    d.visit_all(callback, seen)
  File "renpy/display/screen.py", line 432, in visit_all
    callback(self)
  File "renpy/display/core.py", line 3693, in <lambda>
    root_widget.visit_all(lambda i : i.per_interact())
  File "renpy/display/screen.py", line 443, in per_interact
    self.update()
  File "renpy/display/screen.py", line 631, in update
    self.screen.function(**self.scope)
  File "game/screens.rpy", line 1142, in execute
    screen preferences():
  File "game/screens.rpy", line 1142, in execute
    screen preferences():
  File "game/screens.rpy", line 1146, in execute
    use game_menu(_("Preferences"), scroll="viewport"):
  File "game/screens.rpy", line 847, in execute
    screen game_menu(title, scroll=None, yinitial=0.0):
  File "game/screens.rpy", line 847, in execute
    screen game_menu(title, scroll=None, yinitial=0.0):
  File "game/screens.rpy", line 856, in execute
    frame:
  File "game/screens.rpy", line 859, in execute
    has hbox
  File "game/screens.rpy", line 865, in execute
    frame:
  File "game/screens.rpy", line 868, in execute
    if scroll == "viewport":
  File "game/screens.rpy", line 870, in execute
    viewport:
  File "game/screens.rpy", line 879, in execute
    has vbox
  File "game/screens.rpy", line 880, in execute
    transclude
  File "game/screens.rpy", line 1146, in execute
    use game_menu(_("Preferences"), scroll="viewport"):
  File "game/screens.rpy", line 1148, in execute
    vbox:
  File "game/screens.rpy", line 1150, in execute
    hbox:
  File "game/screens.rpy", line 1175, in execute
    vbox:
  File "game/screens.rpy", line 1180, in execute
    textbutton _("Deutsch") action Language(german)
  File "game/screens.rpy", line 1180, in keywords
    textbutton _("Deutsch") action Language(german)
  File "game/screens.rpy", line 1180, in <module>
    textbutton _("Deutsch") action Language(german)
NameError: name 'german' is not defined

Windows-10-10.0.19041
Ren'Py 7.4.6.1693
Jessica's Life 0.6.1
Sat Oct 30 10:56:58 2021
Wenn ich ganz unten lese hat er wohl Probleme mit der Bezeichnung german aber tl/german ist vorhanden.

Ich glaube ich muss euch mal ein Bier ausgeben. View attachment screens.rpy
 

JBZ

Active Member
Aug 1, 2020
636
1,560
1. Du musst nichts selber kompilieren. Das Kompilieren übernimmt RenPy wenn man das Spiel startet.

2. Da fehlen die Hochkommatas.
textbutton _("Deutsch") action Language("german")
 
  • Like
Reactions: mtmes

mtmes

Member
Mar 16, 2019
152
99
1. Du musst nichts selber kompilieren. Das Kompilieren übernimmt RenPy wenn man das Spiel startet.

2. Da fehlen die Hochkommatas.
textbutton _("Deutsch") action Language("german")
Oh man das war eine schwierige Geburt! Ich glaube ich habe den Wald vor lauter Bäumen nicht mehr gesehen.
 

mtmes

Member
Mar 16, 2019
152
99
Hat alles richtig gut geklappt und habe es auch erfolgreich getestet aber ich habe noch ne Frage und zwar welche rpy Datei ist es wo die Aktion Button, also wenn ich mich zwischen einer Action oder einer Frage entscheiden muss wie Ja oder Nein muss editiert werden.
 
Last edited:

JBZ

Active Member
Aug 1, 2020
636
1,560
Die Texte mit den Entscheidungen stehen unter strings am Ende der TL-Dateien. In welcher TL-Datei es eingetragen wird, hänght davon ab, in welchem Skript die SDK den string als erstes findet, falls es mehrere gleiche gibt.

Wenn du irgendwas nicht findest, dann z.B. mit Notepad++ die Funktion "In Datein suchen..." nutzen. Filter am besten auf *.rpy setzen und dann einfach alles in dem Spieleverzeichnis einmal durchsuchen lassen. Zu den Ergebnissen kannst du direkt hinspringen.
 

mtmes

Member
Mar 16, 2019
152
99
Die Texte mit den Entscheidungen stehen unter strings am Ende der TL-Dateien. In welcher TL-Datei es eingetragen wird, hänght davon ab, in welchem Skript die SDK den string als erstes findet, falls es mehrere gleiche gibt.

Wenn du irgendwas nicht findest, dann z.B. mit Notepad++ die Funktion "In Datein suchen..." nutzen. Filter am besten auf *.rpy setzen und dann einfach alles in dem Spieleverzeichnis einmal durchsuchen lassen. Zu den Ergebnissen kannst du direkt hinspringen.
Dank dir, ich habe gerade mal flüchtig geschaut aber noch nicht wirklich viel gefunden! Die Funktion in Notepad++ ist echt gut.
 

JBZ

Active Member
Aug 1, 2020
636
1,560
mtmes
Falls du spezielle Fragen hast oder ich mir dein Meisterwerk mal anschauen soll, dann meld dich einfach per PN.
 

mtmes

Member
Mar 16, 2019
152
99
mtmes
Falls du spezielle Fragen hast oder ich mir dein Meisterwerk mal anschauen soll, dann meld dich einfach per PN.
Finde ich richtig Klasse von dir, hast eine PN mit einem download von Dropbox.

Übersetze gerade noch, bzw.habe es fertig, und teste gerade das Spiel Sweet Dreams
 

mtmes

Member
Mar 16, 2019
152
99
Ich überarbeite gerade nochmal die Datei da bei der Überstzungen immer Fehler mit den Tags passiert sind, schaut hier:

B1.jpg

Wie ihr sehen könnt hat er die Tags nicht richtig übenommen und so muss ich das jetzt noch nacharbeiten, noch kein Problem da die rpy nicht so groß ist aber könnte schon nerven wenn man größere Sachen macht. Added ihr die Tags dann hinzu, gab bei mir fette Fehler, oder überarbeitet ihr das alles händisch nach?

Hier macht er z.B. alles doppelt

{i}{i}Ich folgte Mia in die Küche. Sie schien von etwas überrascht zu sein.{/i}{/i}