IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Übersetzung eines Spiels
AntwortenNeues ThemaNeue Umfrage

Übersetzung eines Spiels

Geschrieben um 14:45 am 01.02.2014 | Zitat | Editieren | Löschen
Mischa
Mitglied
Master Gumby
Beiträge: 107

Wie würdet ihr eine Übersetzung eines (Inform 6) Spiels angehen?

Den kompletten Source-Code kopieren und dann übersetzen?

(Hätte den Nachteil, dass man möglicherweise das gleiche Spiel zweimal parallel warten muss!)

Oder alle Texte in einem Spiel per Sprach-Switch unterbringen?

(Scheint mir recht komplex…)

Es gibt ja eine Compileroption, um Texte aus dem Spiel zu exportieren.

Gibt’s das auch in die andere Richtung? :-)

Geschrieben um 14:57 am 01.02.2014 | Zitat | Editieren | Löschen
Hannes
Avatar
Mitglied
Retired Gumby
Beiträge: 684

Ich habe das per Versionsverwaltungssystem gehandhabt: Zwei Branches, zwischen denen ich per eingebauter Merge-Funktion rein die Spiellogik betreffende Änderungen pflege, während Strings und Schlüsselworte natürlich unterschiedlich sind.

Martin empfiehlt auf seiner Seite dagegen ja die Pseudo-Präcompiler-Option.

Geschrieben um 20:53 am 02.02.2014 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Retired Gumby
Beiträge: 707
<td valign="top"><div class="post"><p><strong>Hannes:</strong></p> <blockquote> <p>Martin empfiehlt auf seiner Seite dagegen ja die Pseudo-Präcompiler-Option.</p> </blockquote> <p>Ach, ich <em>empfehle</em> die eigentlich nicht. Die Seiten über Übersetzung sind aus dieser unseligen und schon lange verschollenen Google-Gruppe Rakonto Interaktiva entstanden. Die Teilnehmer wollten das so und das durch die vielen Sprachdefinitionen extrem unübersichtliche Jade-Beispiel war eher ein Projekt, wo jeder mal was beitragen konnte. Bei zwei Sprachen geht&#8217;s aber vielleicht.</p> <p>Ich hatte mir einmal ein System, das ähnlich wie <a href="http://www.gnu.org/software/gettext/">gettext</a> arbeitet, überlegt, was aber eher kompliziert geworden wäre.</p> <p>Man hätte den Quelltext gescannt und daraus ein Skelett für die Spiellogik und eine Sprachdatei extrahiert. Die Sprachdatei wird übersetzt und dan in das Skelett zurückgeführt.</p> <p>Man kann allerdings nicht alle Texte einfach so übersetzen, weil durch die komische I6-Print-Syntax die Texte nicht schön gekapselt sind. Außerdem sollte man alle Properties, die mit der Eingabe und mit der Ausgabe des Objektnamens zu tun haben, zusammenfassen.</p> <p>Aus dem I6-Original</p> <p>&#8220;`Object black_book &#8220;schwarz@00 Buch&#8221;</p> <p>    has neuter</p> <p>    with name &#8216;schwarz&#8217; &#8216;buch&#8217;</p> <p>    with description</p> <p>        &#8220;Das schwarze Buch ist in einer dir unbekannten</p> <p>        Schrift geschrieben.&#8221;</p> <p>    with before &#91;;</p> <p>            Take, Remove&#58;</p> <p>                deadflag = 1;</p> <p>                print &#8220;Dich trifft der Blitz, als du das Buch</p> <p>                    aufheben willst.&#8221;;</p> <p>                rtrue;</p> <p>        &#93;</p> <p>    ;&#8220;`</p> <p>würden das Skelett</p> <p>&#8220;`Object black_book</p> <p>    $&#123;BLACK<em>BOOK</em>INPUT&#125;</p> <p>    $&#123;BLACK<em>BOOK</em>OUTPUT&#125;</p> <p>    $&#123;BLACK<em>BOOK</em>DESCRIPTION&#125;</p> <p>    with before &#91;;</p> <p>            Take, Remove&#58;</p> <p>                deadflag = 1;</p> <p>                $&#123;BLACK<em>BOOK</em>TEXT_1&#125;</p> <p>                rtrue;</p> <p>        &#93;</p> <p>    ;&#8220;`</p> <p>und die Sprachdatei</p> <p>&#8220;`$&#123;BLACK<em>BOOK</em>INPUT&#125;</p> <p>!   with name &#8216;schwarz&#8217; &#8216;buch&#8217;</p> <p>$&#123;BLACK<em>BOOK</em>OUTPUT&#125;</p> <p>!   &#8220;schwarz@00Buch&#8221;</p> <p>!   has neuter</p> <p>$&#123;BLACK<em>BOOK</em>DESCRIPTION&#125;</p> <p>!   with description</p> <p>!       &#8220;Das schwarze Buch ist in einer dir unbekannten</p> <p>!       Schrift geschrieben.&#8221;</p> <p>$&#123;BLACK<em>BOOK</em>TEXT_1&#125;</p> <p>!   print &#8220;Dich trifft der Blitz, als du das Buch</p> <p>!                   aufheben willst.&#8221;;&#8220;`</p> <p>extrahiert. Die Sprachdatei muss man dann übersetzen:</p> <p>&#8220;`$&#123;BLACK<em>BOOK</em>INPUT&#125;</p> <p>!   with name &#8216;schwarz&#8217; &#8216;buch&#8217;</p> <p>    with name &#8216;black&#8217; &#8216;book&#8217;</p> <p>$&#123;BLACK<em>BOOK</em>OUTPUT&#125;</p> <p>!   &#8220;schwarz@00Buch&#8221;</p> <p>!   has neuter</p> <p>    &#8220;black book&#8221;</p> <p>&#8220;`</p> <p>Wie gesagt, ich hatte das überlegt, mehr nicht, denn durch die nicht sehr einheitliche I6-Syntax wird das sehr verwirrend. Und ein Übersetzer muss auch I6 können. Und wenn sich die Spiellogik im Original ändert, braucht man eh wieder eine Versionskontrolle.</p> <p>Lange Rede, kurzer Sinn: Parallele Versionen, deren Logik dann abgeglichen wird, ist gewiss die einfachere Variante.</p> <p><strong>Mischa:</strong></p> <blockquote> <p>Es gibt ja eine Compileroption, um Texte aus dem Spiel zu exportieren. Gibt&#8217;s das auch in die andere Richtung? :-)</p> </blockquote> <p>Das wäre gar nicht so dumm, aber es hat dieselben Probleme wie oben beschrieben: Man muss bei Textadventures die Eingabe und die Ausgabe übersetzen und zur Ausgabe gehören halt auch Dinge wie Genus und besondere Artikel, und und und.</p> </div></td>
AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz