Text Übersetzung worauf muss ich hier achten:

Ein text Block zum Übersetzen hat am anfang immer 6 Zeilen am ende sind es nur noch 4-xy zeilen jenachdem wie oft der Text in einem Block getrennt werden muss am ende an jedem "." damit dieser eben immer wieder in die Textbox im Spiel passt!

Diese Beispiele sind aus der tl/german/script.rpy

1. Beispiel Original Text + Formatierung:

1. #TODO:......
2.
3. # game/script.rpy:369
4. translate german intro_402a59b9:
5.
6. # yg "Today, the hard work over these past few decades will finally pay off. I have big plans, and you girls will be the first thing customers see."
7. yg "Today, the hard work over these past few decades will finally pay off. I have big plans, and you girls will be the first thing customers see."
8.
...

Translation Formatierung erklärt

    1. Der Text hinter der 1. "#" Zeile nach "# TODO:" sagt an welche zeile in der Original *.rpy gemeint ist

    2. Diese Zeile enthät denn Zeilencode in diesem Beispiel eben "intro_402a59b9". Jeder Code sagt dem Spiel welche zeile mit der übersetzung ersetzt werden soll.

    3. Die folgende Leerzeile ist wichtig und darft nie entfernt werden.

    4. Der Text hinter der 2. "#" enthält die zu üerbersetzende Textzeile im Original und dient während der Übersetzungsphase eines Events immer wieder als korrkturzeile womit sich der Orginalzustand der Übersetzung immer wieder herstellen lässt.

    5. Dieses ist die Zeile die am ende übersetzt wird zwischen denn [""] bzw. eben die Übersetzung beinhalten wird.

    6. Die Letze blockzeile ist wieder eine Leerzeile die nie entfernt werden darf.

2. Beispiel Original German Text +Formatierung:

1. # TODO:......
2.
3. # game/script.rpy:369
4. translate german intro_402a59b9:
5.
6. # yg "Today, the hard work over these past few decades will finally pay off. I have big plans, and you girls will be the first thing customers see."
7. yg "Heute zahlt sich die harte Arbeit der letzten Jahrezehnte endlich aus. Ich habe große Pläne und ihr Mädels werdet das erste sein, was die Kunden sehen werden."
8.
...

Translation Formatierung erklärt

    1. Der Text hinter der 1. "#" Zeile nach "# TODO:" sagt an welche zeile in der Original *.rpy gemeint ist

    2. Diese Zeile enthät denn Zeilencode in diesem Beispiel eben "intro_402a59b9". Jeder Code sagt dem Spiel welche zeile mit der übersetzung ersetzt werden soll.

    3. Die folgende Leerzeile ist wichtig und darft nie entfernt werden.

    4. Der Text hinter der 2. "#" enthält die zu üerbersetzende Textzeile im Original und dient während der Übersetzungsphase eines Events immer wieder als korrkturzeile womit sich der Orginalzustand der Übersetzung immer wieder herstellen lässt.

    5. Dieses ist die Zeile die am ende übersetzt wird zwischen denn [""] bzw. eben die Übersetzung beinhalten wird.

    6. Die Letze blockzeile ist wieder eine Leerzeile die nie entfernt werden darf.

3. Beispiel modifizierte Text Formatierung German:

1. # TODO:......
2.
3. # game/script.rpy:369
4. translate german intro_402a59b9:
5.
6. # yg "Today, the hard work over these past few decades will finally pay off. I have big plans, and you girls will be the first thing customers see."
7. yg "Heute zahlt sich die harte Arbeit der letzten Jahre endlich aus."
8. yg "Ich habe große Pläne und ihr Mädels werdet das erste sein, was die Kunden sehen werden."
9.
...

Translation Formatierung erklärt

    1. Der Text hinter der 1. "#" Zeile nach "# TODO:" sagt an welche zeile in der Original *.rpy gemeint ist

    2. Diese Zeile enthät denn Zeilencode in diesem Beispiel eben "intro_402a59b9". Jeder Code sagt dem Spiel welche zeile mit der übersetzung ersetzt werden soll.

    3. Die folgende Leerzeile ist wichtig und darft nie entfernt werden.

    4. Der Text hinter der 2. "#" enthält die zu üerbersetzende Textzeile im Original und dient während der Übersetzungsphase eines Events immer wieder als korrkturzeile womit sich der Orginalzustand der Übersetzung immer wieder herstellen lässt.

    5. Dieses ist die Zeile die am ende übersetzt wird zwischen denn [""] bzw. eben die Übersetzung beinhalten wird. Diese kann wie man aber hier sieht auch geteilt werden, solange sich der nächste Teil der Zeile im selben Block befindet

      yg "Zeile Teil 1"

      yg "Zeile Teil 2"

      etc.

    x+1. Die Letze blockzeile ist wieder eine Leerzeile die nie entfernt werden darf.

4. Beispiel Modifizierte und gereinigte Text Formatierung German:

1. # TODO:......
2.
3. translate german intro_402a59b9:
4.
5. yg "Heute zahlt sich die harte Arbeit der letzten Jahre endlich aus."
6. yg "Ich habe große Pläne und ihr Mädels werdet das erste sein, was die Kunden sehen werden."
7.
...

Translation Formatierung erklärt

    So sieht die fertig formatierte und gereinigte Übersetzung eines Textblocks aus.

    Warum eigendlich die ferige Übersetzung Cleanen fragt ihr euch bestimmt. Die Antwort ist einfach: Speicherplatz sparen am Ende!

    Jedes Überflüssige Zeichen welches am ende vom Spiel nicht benötigt wird, da es ignoriert wie im Fall der "#" Zeilen belegt auf der Festplatte und im RAM trotzdem 1Byte.

    Jetzt Belegt jede dieser 2 Zeilen mindestens einmal bei (# game/script.rpy:x) = 19Byte und bei der (# "text") mindestens 5Byte das mach in einem Textblock also gute 24Byte im Minimum.

    Dies hört sich zuerst nach nicht viel an aber bedenkt das jede Text script datei davon Zwischen 5000 und 20000 (# game/scriptname.rpy:xy) Zeilen hat und auch somit nochmal genau soviele (# "text") Zeilen und wenn man dies nun ausrechnet kommt man am ende auf eine Ersparnis von ~0,11444MiB (2*5000 Zeilen) bis ~0,45776MiB (2*20000 Zeilen).

    Dies hört sich pro Datei nicht nach sehr viel an, dabei muss aber bedacht werden da dies Minimum Werte sind und diese eben Meist deutlich Größer sind von 1,1444MiB - 4,5776MiB pro Datei da die (# "text") Zeilen meist viel um ein vielfaches länger sind als eben nur 5Byte.

    Und bei etwa alleine 11 Events enhaltenden Dateien sind das dann eben Minimum 11,444MiB - 45,776MiB Speicherplatz der gespart wird und in der Übersetzung für andere Sachen verwendet werden kann.

Charakternamen im Script durch Variablen ersetzen

Bestimmte Namen nachfolgend aufgelistet werden beim Übersetzen gleich durch entsprechende Variablen [...name] ersetzt:

    Lin = [linname]

    Kali = [kaliname]

    Ashley = [ashname]

    Maria = [marname]

    Felicity = [felname]

    Emma = [emname]

    ... = [...name]

    Hotel name = [hotelname]

Warum ersetzen wir also genau die Namen in denn Texten der oben gelisteten Charaktere durch ihre bereits im Spiel hinterlegten [Variablen]?

Dies hat mehere gründe, zum einen übersetzt ein übersetzer kleine Variablen im Text, zweitens kennt das spiel bspw denn standart Namen von "Lin" welcher eben "Lin" ist, was ja auch logisch ist, denn dieser ist für [linname] ja bereits Festgelegt worden.

Jetzt kommst du an dem Punkt im Spiel an wo du "Lin" einen Kosenamen (Petname) geben kannst und tust dies auch indem du sie also bspw. "Black Linette" nennst, und würdest sie so auch gerne im event usw so ansprechen.
Was aber eben nicht geht wenn im Text "Lin" steht und nicht [linname].

Und genau hier greift die variable bspw. [linname] ein.
Überall wo eben ihre variable "[linname]" anstatt von "Lin" steht wird automatisch im spiel entweder wenn ein Kosename noch nicht gesetzt wurde Ihr normaler Name "Lin" eingesetzt oder wenn du ihr einen Kosename bereits gegeben hast eben ab diesem Zeitpunkt dieser benutzt.

Wer jetzt aufgepast hat denk zuerst: "Hmm Lin(3Byte) ist doch viel kürzer/kleiner als [linname](9Byte)".

Dieser Platzverbrauch ist aber durchs Breinigen der scripte wieder Mehrfach reingeholt worden, Alleine die (# yg "text") zeile belegte vor dem entfernen 148Byte Speicherplatz welches bei 10(10Byte) stelligen Variablen eben ca. 14,8 Variablen entspricht, somit ist das entfernen einer "wertlosen" Zeile ausreichend um eine bestimmte anzahl von [...name] nutzen zu können.

Allein die reinigung der script.rpy reichte am ende aus um alle gelisteten Namen durch ihre entsprechende [...name] Variable zu ersetzen, und das in "allen" script dateien ohne auch am Ende auch nur ein Byte Mehr Speicherplatz verbraucht zu haben.

Und wem es jetzt vielleicht aufgefallen ist bei "Felicity" geht die rechnung sogar beinahe auf, Ihre Variable ist nur 1Byte größer wie ihr darunter hinterlegter Standartname.

Strings Übersetzung worauf muss ich hier achten:

Strings sind bspw. Menü alle Einträge und auch Knöpfe im Spiel aber auch Textpassagen bzw. Zeilen im die sich eben mehr wie einmal im Spiel wiederholen.

Wiederholende Textpassagen sind bspw. die Shop Zeilen wie: "Dafür haben wir noch nicht genug Geld" oder "Du hast diesen Artikel schon Gekauft" usw.. Deren Übersetzung Übernimmt in dem Fall die strings.rpy wo alle strings des spiels eingetragen sind.

Wenn man sich ein wenig mit dem Codieren Beschäftigt so ist es möglich bestimmte Text Bereiche im Spiel um zu Formatieren ohne das eben dabei die Original spiel script Dateien verändert werden.

Alle Optischen änderungen finden nur in der Übersetzung statt aber eben nicht in der Original Spiel Sprache (eng).

1. Textsample Original Gameversion formatting:

1. # TODO:......
2.
3. # game/script.rpy:880
4. old "Sleep with Felicity"
5. new "Sleep with Felicity"
6.
...

Formatierung erklärt

    1. Die # Zeile nach der # TOTO:...... Zeile gibt an, in welcher Zeile die zu übersetzende Zeile in der jeweiligen originalen *.rpy steht.

    2. Die Zeile mit "old" am anfang ist für das spiel der Hinweis was ersetzt werden soll.

    3. Die Zeile mit "new" am anfang ist für das spiel der Hinweis mit was "old" ersetzt werden soll.

    4. Diese letzte Zeile ist eine Leerzeile.
wird diese entfernt, erscheint im Spiel zu 100% eine Fehlermeldung, da das Skriptformat nicht mehr korrekt ist.

2. Textsample original Translat German Gameversion formatting:

1. # TODO:......
2.
3. # game/script.rpy:880
4. old "Sleep with Felicity"
5. new "Schlafe mit Felicity"
6.
...

Formatierung erklärt

    1. Die # Zeile nach der # TOTO:...... Zeile gibt an, in welcher Zeile die zu übersetzende Zeile in der jeweiligen originalen *.rpy steht.

    2. Die Zeile mit "old" am anfang ist für das spiel der Hinweis was ersetzt werden soll.

    3. Die Zeile mit "new" am anfang ist für das spiel der Hinweis mit was "old" ersetzt werden soll.

    4. Diese letzte Zeile ist eine Leerzeile.
wird diese entfernt, erscheint im Spiel zu 100% eine Fehlermeldung, da das Skriptformat nicht mehr korrekt ist.

3. Textsample modified Translat German modified formatting:

1. # TODO:......
2.
3. # game/script.rpy:880
4. old "Sleep with Felicity"
5. new "Schlafe diese Nacht mit {color=#27fe6c}[felname]{/color} {color=#FF0000}(Zuneigung +1){/color}"
6.
...

Formatierung erklärt

    1. Die # Zeile nach der # TOTO:...... Zeile gibt an, in welcher Zeile die zu übersetzende Zeile in der jeweiligen originalen *.rpy steht.

    2. Die Zeile mit "old" am anfang ist für das spiel der Hinweis was ersetzt werden soll.

    3. Die Zeile mit "new" am anfang ist für das spiel der Hinweis mit was "old" ersetzt werden soll.

    4. Diese letzte Zeile ist eine Leerzeile.
wird diese entfernt, erscheint im Spiel zu 100% eine Fehlermeldung, da das Skriptformat nicht mehr korrekt ist.

Der unterschied bei Bsp. 3 zu bsp. 2 ist das im Spiel Felicity's Name in Ihrer Farbe (Hellgrün) angezeigt wird und dahinter in Leuchtendem Rot Zuneigung +1 steht. Somit weiß man das ihre Zuneigung zum Spieler nach der nacht um 1 steigt. bei Lin und Android wären es ihr Gehorsam eben der nach der Nacht um 1 steigt.

4. String modifiziert und gereinigt German:

1. # TODO:......
2.
3.old "Save"
4.new "Speichern"
5.
6.old "Sleep with Felicity"
7.new "Schlafe diese Nacht mit {color=#27fe6c}[felname]{/color} {color=#FF0000}(Zuneigung +1){/color}"
8.
9.old "back"
10.new "zurück"
12.
...

Formatierung erklärt

    e. Die Reinigung besteht darin alle Spiel nicht relevanten Zeilen eben zu entfernen. Da # Zeilen aber Erlärungen für denn ersteller im script bedeuten und das spiel diese später ignoriert belegen diese am Ende nur unnötig Speicherplatz im Spiel. und können gefahrlos entfernt werden nach dem Übersetzen solange die Struktur der String auflistung am Ende erhalten bleibt.

    Wie aber gesagt die Letze zeile eines Scripts ist dabei "IMMER" eine "LEERZEILE"!!!

    1. Die Zeile mit "old" am anfang ist für das spiel der Hinweis was ersetzt werden soll.

    2. Die Zeile mit "new" am anfang ist für das spiel der Hinweis mit was "old" ersetzt werden soll.

    3. Die letzte Zeile ist immer eine Leerzeile danach geht es von vorne los, Also immer wieder "old-zeile""new-zeile""leerzeile" bis eben alle vorhandenen Strings übersetzt sind.