IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Explicit error messages in der German-Erweiterung
AntwortenNeues ThemaNeue Umfrage

Explicit error messages in der German-Erweiterung

Geschrieben um 16:50 am 11.02.2011 | Zitat | Editieren | Löschen
Tim Z.
Mitglied
Bachelor Gumby
Beiträge: 47

Und wieder ich ...


Include German by Team Gerx.

Use explicit error messages.

The chamber is a room.

The starship is a room.

Spock is a thing in the starship.

Zitat:

x dfma

Ich kenne das Wort "dfma" nicht.

x spock

Ich verstehe das Wort "spock" in diesem Zusammenhang nicht.

Die erste Antwort ist m. E. viel besser, als wenn explicit error messages ausgeschaltet ist.

Nur die zweite verwirrt mich irgendwie. Wäre in so einem Fall: "So etwas kannst du hier nicht sehen?" nicht wesentlich klarer?

Gruß,

T. R. Z.

Geschrieben um 17:05 am 11.02.2011 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Tim Z.:

Nur die zweite verwirrt mich irgendwie. Wäre in so einem Fall: "So etwas kannst du hier nicht sehen?" nicht wesentlich klarer?

Die zweite Antwort wird bei Vokabeln, die dem Spiel bekannt sind, ausgegeben. Der Parser "kennt" das Wort, es macht aber in diesem Zusammenhang keinen Sinn. "So etwas kannst du hier nicht sehen" ist weniger explizit, und explizit sollen die expliziten Fehlermeldungen ja sein.

Wenn Du die Meldung abändern möchtest, kannst Du die Erweiterung German Default Messages einbinden und folgende Tabelle mit einer geänderten Meldung definieren:



library-action   library-message-id   library-message-text

--   98   "Du siehst '[original word]' hier nicht."```

([original word] gibt die angemeckerte Vokabel aus.)

Viele Grüße,

Christian
Geschrieben um 18:54 am 11.02.2011 | Zitat | Editieren | Löschen
Tim Z.
Mitglied
Bachelor Gumby
Beiträge: 47
<td valign="top"><div class="post"><p><strong>Zitat:</strong></p> <blockquote> <p>&quot;So etwas kannst du hier nicht sehen&quot; ist weniger explizit, und explizit sollen die expliziten Fehlermeldungen ja sein.</p> </blockquote> <p>Ok, ich finde die Fehlermeldung mit dem Zusammenhang eher verwirrend, aber ist wohl Ansichtssache.</p> <p><strong>Zitat:</strong></p> <blockquote> <pre><code class="language-Table"></code></pre> </blockquote> <p>library-action   library-message-id   library-message-text</p> <p>--   98   &quot;Du siehst '&#91;original word&#93;' hier nicht.&quot;```</p> <p>Ach so! Das ist ja mal wirklich genial!</p> <p>Gruß,</p> <p>T. R. Z.</p></div></td>
Geschrieben um 19:12 am 11.02.2011 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Bei den geänderten Library Messages muss man nur aufpassen, dass im Spiel nicht nach der Meldung eine zusätzliche Leerzeile eingefügt wird. Sollte das passieren, müsstest Du die geänderte Meldung nach dem Satzende, aber vor den schließenden Anführungszeichen, folgendermaßen ergänzen:

blue

Geschrieben um 20:55 am 12.02.2011 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Tim Z.:

Ok, ich finde die Fehlermeldung mit dem Zusammenhang eher verwirrend, aber ist wohl Ansichtssache.

Der Satz mit dem Zusamenhang ist zugegebenermaßen nicht sehr schön, hat aber den Vorteil, dass er das nicht verstandene Wort erwähnt und allgemein gültig ist.

Natürlich wäre es in Deinem Beispiel schöner, wenn es hieße "Du siehst hier keinen Spock", oder noch besser "Du siehst Spock hier nicht", aber das ist mit dem Parser von I6, der mit deform ja auch die Satzanalyse für I7 und GerX macht, nicht ohne weiteres möglich: Der Parser untersucht immer nur die Objekte, die momentan sichtbar (bzw. im Inform-Jargon "in scope") sind. Ob Spock sich also auf ein Objekt außerhalb des Sichtfelds des Spielers bezieht, ist dem Parser nicht bekannt. Daher die generische Fehlermeldung.

Inform überprüft nur das Vokabular der sichtbaren Objekte, damit es schneller geht. Wenn man immer alle Objekte untersuchte, würde der Parser gewiss schon bei einem mittelgroßen Spiel länger brauchen, was am wenig effizienten Prüf-Algorithmus liegt: In einer Schleife über alle sichtbaren Objekte wird zu jedem Objekt das Vokabular geprüft. Das ist ein wenig so, als ob das Telefonbuch nach Nummern, nicht nach Namen sortiert wäre.

Man könnte natürlich, wenn die explizite Fehlermeldung ausgegeben wird, prüfen, ob das nicht erkannte Wort die Vokabel irgendeines Objekts ist und nicht etwa ein Artikel, eine Präposition oder ein Verb. Aber auch da bekommt man Probleme, zum Beispiel mit Adjektiven, wenn es dann hieße "Du siehst hier kein Groß." oder so.

Von der Fehlermeldung "Du siehst so etwas hier nicht" halte ich nicht so viel, weil sie bei zwei (oder mittlerweile ja drei!) Objekten oder bei einem Objekt, das mit mehreren Wörtern beschrieben wird, nicht genau sagt, wo der Fehler ist.

Der I6-Parser, und damit auch deform, ist gewiss nicht ideal. Aber es war mein Ziel, als ich die Übersetzung der 6/11 zu deform gemacht habe, möglichst nahe am englischen Original-Parser zu sein. Und der erlaubt es immerhin, Fehlermeldungen zu ersetzen, wenn sie einem nicht gefallen. :-)

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz