A German Translation of

INFORM

Inform (c) 1993-97 Graham Nelson
Translation (c) 1998 Toni Arnold
 
Lesen Sie dieses Dokument auf Deutsch

last modification: 28.8.98



Contents

Adventure in German!

Preface to the translation
A bit of german grammar
German umlauts
What about declination?
German articles
Adjectives
Postordinate word groups
Pronouns
Declination tables

Beginnings of a technical documentation

Download

Links
Inform homepage
interactive fiction archive


ADVENTURE in German!
 
This very first computer text adventure was published in 1977 by Don Woods and based on a present of Will Crowther to his childs which he wrote in 1972. The Inform version 6 of Graham Nelson made it possible to translate this game into German. For a little description how to download see the German version of this text.


Preface to the translation

During my first translating attempts it turned out quickly that the german language is a difficult language - a phenomenon that we as native speakers normally don't recognize. I begin with this remark to make clear that the present translation is not and doesn't want to be a final solution of the problem. Many phenomena are not considered of, many errors hide themselves in the depths of the program. The present library is contiuously actualized for that reason.
The game RUMMEL.Z5, a story about a funfair, is only thought as an example. I am still working on that story and a publication of the source code would destroy the gaming enjoiment.
 

German Umlautes

A special problem are the German umlauts. This has historical reasons:
The ASCII-charset, on which Inform is based, bears America in its initials. Since for Americans all languages except English are barbarous languages, they didn't think of integrating european accents into their system. We barbarians now have to carry the can for that thoughtlessness. In detail:

In printed text, therefore in printed names of objects and in descriptions, the following Inform special chars specified for German can be used (see also the next chapter about declination):
 
@:a ä
@:o ö
@:u ü
@:A Ä
@:O Ö
@:U Ü
@ss ß

To print the sentence "Der Löwe brüllt ängstlich." on the screen one has to write:

print "Der L@:owe br@:ullt @:angstlich.";

In the name-Property, where the names of an object which are recognized by the parser are typed, "umlauts" don't work. There are only a few Z-code-interpreters which support "umlauts". The "umlauts" are transcribed into their two letter equivalents whitout accent. With that, German games can be played with older interpreters or keyboards without umlauts, too. Upper case letters are changed to lowercase letters by the interpreters. Therefore the following equivalents have to be used:
 
ä ae
ö oe
ü ue
ß ss

The lion of the example above would have to be defined as (minimally):

Object -> loewe,
  has male,
  with short_name "L@:owe",
       dekl 6,
       name "Loewe";
 

A bit of German grammar

In contrast to English in German there are four inflected cases: nominative, accusative, dative, genitive. Furthermore there are three genders (male, female, neuter) and two numbers (singular, plural). According with its function in the sentence a noun phrase has to be set to a certain case: the direct object is in accusative, the indirect object in dative. The genitive normally expresses something like a possession.

An example:
 
"Give to the child a book of the sorcerer."

 Gib dem Kind ein Buch des Zauberers.
 \ /  \     / \      /  \          /
  -    -----   ------    ---------
  |      |       |           |
  |      |     NP[Akk]     NP[Gen]
  |      |       \           /
  |      |        -----------
  |      |               |
 Verb  NP[Dat]         NP[Akk]
   \     |              /
    --------------------
         |
      Sentence
    in imperative
 

The order of the accusative- and the dative-NP can be inverted. If the dative- and the genitive-NP are exchanged, the article in front of the dative-NP has to be omitted. "das Buch des Zauberers" becomes "des Zauberers Buch" - an expression not frequently used, but syntactically correct.
 
The cases in german are expressed using different articles and suffixes. But the assignment is ambiguous: "des Zauberers" in the example above is clearly genitive singular, "das Buch" on the other hand could be in nominative as well. This makes parsing very complicated. This is the reason why I did not yet implement the German case-number-system in the inform-parser. At the moment parsing functions as follows: every possible noun suffixes are split off until the word can be found in the lexicon. Cases are not recognized like that.
But the output printing is almost supported.

 
What about declination?

For the implementation of the printing routines I used the declination tables with 10 declination types for nouns in the grammar-Duden*. If a new object is declared in a game, the declination type has to be set as an inform-property. This looks with an adjective minimally as follows:

Object zauberer "Zauberer",
   has male,
   with
    dekl 4,
    adj "schlau";

The case of the article for printing objects is declared as follows (the example prints the sentence analysed above):

print "Gib ",(dem) kind," ",(ein) buch," ",(des) zauberer,".";

Because articles in their male form are not ambiguous they are declared always like that. If the word has a different gender, the article is adjusted automatically. Thanks to the declination tables the singular nouns are usually declinated
correct.
Because some of this articles appear in the verb library too, the file VERBLIB.M was modificated for the German translation, too.

An object can be declinated together with its adjectives in the DEBUG-mode. This is done by the metaverb dekliniere (or shortly dekl). The object must be in scope. With dekliniere komplett all defined pronouns are printed additionally. An example which demonstrates by the way that the german umlauts usually do not work on input: (exceptions)

>dekliniere maedchen

das Mädchen
das Mädchen
dem Mädchen
des Mädchens

ein Mädchen
ein Mädchen
einem Mädchen
eines Mädchens

An example with a plural-object:

>dekliniere leute

die lieben Leute
die lieben Leute
den lieben Leuten
der lieben Leute

liebe Leute
liebe Leute
lieben Leuten
lieber Leute

The plural forms function up to date limitated: If more than one inform-objects are put together in one plural it is always the form used that is given in the plural-property.
But if an object has the pluralname-attribute just as in the example above, the noun is correctly declinated in its plural form. This attribute defines a noun as a plural despite of the fact that it refers only to one singular inform-object. An example would be the object leute (= people) which denotates a singular group of human beings.

If the declination suffix begins with the same letters that the lemma ends with, they are deleted. For example "Auge-en" becomes "Augen." This and similar corrections in the German morphology work only if the name of the object ist given in its short_name-property. If there are no corrections requested, the name can be given in the object declaration line.
Furthermore the name is limitated to 254 chars - too long names produce a runtime-warning. If one would like to use longer names the size of the arrays ta_ArrayBuf* have to be adjusted.
 
* Bd. 4. Duden "Grammatik der deutschen Gegenwartssprache", 5. Aufl., Mannheim; Leipzig; Wien; Zürich: Dudenverl., 1995, S.220

 
German articles

There are eight new articles which represent the four cases in singular and plural. Uppercase is declared by a preceding "G". This German articles replace the inform-articles  (the) and (a):
 
Definite:
 
Nom Akk Dat Gen
(der) (den) (dem) (des)
(GDer) (GDen) (GDem) (GDes)
 
Indefinite:
 
Nom Akk Dat Gen
(ein) (einen) (einem) (eines)
(GEin) (GEinen) (GEinem) (GEines)
 
"Kein ..." (= engl. "no"):
 
Nom Akk Dat Gen
(kein) (keinen) (keinem) (keines)
(GKein) (GKeinen) (GKeinem) (GKeines)
 
No article (after prepositions):
 
Nom Akk Dat Gen
(_er) (_en) (_em) (_es)
 
The articles are given in their male form because this is not ambiguous. Missing articles after prepositions should be explicitely set as missing with the (_e*)-routines, otherwise the noun and the adjectives are not declinated.

The gender is defined for each object with the following attributes:
 
male female neuter 
 

Adjectives

Because adjectives are declinated specially in German, they must be declarated separately. For that reason there are the following 6 properties for maximally 6 adjectives:
 
adj adj2 adj3 adj4 adj5 adj6
The ascending order of the numbers is the same as the printing order. Not all adjectives must be set - empty adjectives are simply ignorated.
This adjectives don't affect the parsing. If they should be recognized by the parser they have to be declarated as "name"-properties, too.
 

Postordinate word groups

In German there is the possibillity to add a postordinate word group to a noun phrase, e.g. "der Körper des Drachens" for "dragon's body". On declination, it is not "Drachens" that ist declinated, but its "Körper". One must say "die Überreste des Körpers des Drachens". For that reason the postordinate word group has to be declarated separately. This ist done by the property
 
post
In the example the definition looks as follows:

Object DragonCorpse "K@:orper"
  with dekl 1,
       post "des Drachens",
       initial
            "Der K@:orper eines riesigen, gr@:unen, toten Drachens liegt
            auf einer Seite.",
       name "drachen" "koerper" "tot" "drachenkoerper",
  has  male static;
 

Pronouns

Pronouns are defined similarly like the articles:
 
Nom Akk Dat Gen
(er) (ihn) (ihm) (seiner)
(GEr) (GIhn) (GIhm) (GSeiner)
 

Demonstrative:
 
Nom Akk Dat Gen
(dieser) (diesen) (diesem) (dieses)
(GDieser) (GDiesen) (GDiesem) (GDieses)
 

With "is" or "are"

For "(GEr) ist" there is the short form:
 
GEristSiesind
 

Declination tables
 
The order of the cases confirms the Swiss traditions. Letters in [square brackets] are optional and are not generated by the system at present. Also not generated are the plural accents like in Apfel-Äpfel.

Declination type 1

Maskulinum Neutrum
Sing Nom der Tag das Jahr
Akk den Tag das Jahr
Dat dem Tag[-e] dem Jahr[-e]
Gen des Tag-[e]s des Jahr-[e]s
Plur Nom die Tag-e die Jahr-e
Akk die Tag-e die Jahr-e
Dat den Tag-en den Jahr-en
Gen der Tag-e der Jahr-e
 

Declination type 2

Maskulinum Neutrum
Sing Nom der Apfel das Segel
Akk den Apfel das Segel
Dat dem Apfel dem Segel
Gen des Apfel-s des Segel-s
Plur Nom die Äpfel die Segel
Akk die Äpfel die Segel
Dat den Äpfel-n den Segel-n
Gen der Äpfel der Segel
 

Declination type 3

Maskulinum Neutrum
Sing Nom der Staat das Auge
Akk den Staat das Auge
Dat dem Staat[-e] dem Auge
Gen des Staat-[e]s des Auge-s
Plur Nom die Staat-en die Auge-n
Akk die Staate-en die Auge-n
Dat den Staat-en den Auge-n
Gen der Staat-en die Auge-n
 

Declination type 4

Maskulinum Neutrum
Sing Nom der Wald das Bild
Akk den Wald das Bild
Dat dem Wald[-e] dem Bild[-e]
Gen des Wald-[e]s des Bild-[e]s
Plur Nom die Wäld-er die Bild-er
Akk die Wäld-er die Bild-er
Dat den Wäld-ern den Bild-ern
Gen der Wäld-er der Bild-er
 

Declination type 5

Maskulinum Neutrum
Sing Nom der Opa das Deck
Akk den Opa das Deck
Dat dem Opa dem Deck
Gen des Opa-s des Deck-s
Plur Nom die Opa-s die Deck-s
Akk die Opa-s die Deck-s
Dat den Opa-s den Deck-s
Gen der Opa-s der Deck-s
 

Declination type 6

Maskulinum
Sing Nom der Mensch
Akk den Mensch-en
Dat dem Mensch-en
Gen des Mensch-en
Plur Nom die Mensch-en
Akk die Mensch-en
Dat den Mensch-en
Gen der Mensch-en

Declination type 7

Femininum
Sing Nom die Kraft
Akk die Kraft
Dat der Kraft
Gen der Kraft
Plur Nom die Kräft-e
Akk die Kräft-e
Dat den Kräft-en
Gen der Kräft-e

Declination type 8

Femininum
Sing Nom die Mutter
Akk die Mutter
Dat der Mutter
Gen der Mutter
Plur Nom die Mütter
Akk die Mütter
Dat den Mütter-n
Gen der Mütter

Declination type 9

Femininum
Sing Nom die Frau
Akk die Frau
Dat der Frau
Gen der Frau
Plur Nom die Frau-en
Akk die Frau-en
Dat den Frau-en
Gen der Frau-en

Declination type 10

Femininum
Sing Nom die Oma
Akk die Oma
Dat der Oma
Gen der Oma
Plur Nom die Oma-s
Akk die Oma-s
Dat den Oma-s
Gen der Oma-s
 
 

Beginnings of a technical documentation

The first two of the following files are meant both for people who want to translate Inform into a new language not implemented yet, and for people who want to work with  this German version of Inform. For that reason they are written in English.

LIBR_97.TXT
"Logbook" of the first German translation of the Library, begun in 1997
ASCII, English

LIBR_98.TXT
Extensions since the first publication, especially "umlauts", grammar und bugs
ASCII, English

ABENT_98.TXT
Changes in the Abenteuer-source since the first publication.
DOS-ASCII (umlauts), German


Download

Index with date of the last modification

German Library 6/7
GERMAN.H
GERMANG.H
TGERMAN.H
VERBLIB.H
VERBLIBM.H
LINKLV.H
PARSER.H
PARSERM.H
LINKLPA.H



ABENTEUER(=ADVENTURE) game file
(executable with z-code-interpreters):
ABENT.Z5
ABENT.Z5.hqx (BinHex, esp. for Mac)
ABENT.Z5.gz (g-zipped)
ABENTEUER von ftp.gmd.de (usually older versions)

Source code af the classic game "Abenteuer" (Adventure)
ABENT.INFORM (source code of the game)
ABENT.ICL (regulates the compiler)

Batchdateien for DOS:
C_ABENT.BAT (compiles a game with Inform 6.15 in a DOS-Window)
P_ABENT.BAT (plays a game with a keystroke with DOS-Frotz)



(short) source of the beginning of  "funfair story"
("Rummelplatz" means something like "funfair" German)
RUMMEL.INFORM
RUMMEL.ICL

rummel-example-game file:
RUMMEL.Z5
RUMMEL.Z5.hqx
RUMMEL.Z5.ZIP

Batchfiles for DOS:
C_RUMMEL.BAT
P_RUMMEL.BAT



Inform-Compiler:
if-archive/.../executables/
./executables/Index (with short descriptions of all ports of the compiler)

Z-code-interpreters for the game file:
if-archive/.../zip
./zip/Index (with short descriptions of all interpreter versions)

Z-code-interpreters which support German umlauts (if-archive/...):
DOS-Frotz von Stefan Jokisch
ZIP Infinity 1.4 für Mac von Matthew T. Russotto


comments to: tarnold@cl.unizh.ch

Back to the beginning of the page

last modification: 15.4.98