Now in German | NetHack auf deutsch

45 views
Skip to first unread message

Tony Crawford

unread,
Jan 21, 2008, 7:23:00 AM1/21/08
to
Hi gang!

A long time in the works, and still not finished of course, but playable:

We call it NetzHack (note the 'z'), the German translation of NetHack
3.4.3.

See http://www.netzhack.de/

Tony

--
When we dance around drunk in our underwear,
we don't ask ourselves any questions.
--Sawaki Kôdô roshi

Janis

unread,
Jan 21, 2008, 9:12:51 AM1/21/08
to
On 21 Jan., 13:23, "Tony Crawford" <t...@kuerbis.dnsalias.net> wrote:
> A long time in the works, and still not finished of course, but playable:
>
> We call it NetzHack (note the 'z'), the German translation of NetHack  
> 3.4.3.

I'd be interested to know about how you've implemented the grammer
part, and your experiences (differences in the approach compared to
the English version, any inherent difficulties, open points, etc.).
Would
you mind to tell us a bit about it?

Janis

Ohle Claussen

unread,
Jan 21, 2008, 5:07:52 PM1/21/08
to
On 2008-01-21, Janis wrote:
> On 21 Jan., 13:23, "Tony Crawford" <t...@kuerbis.dnsalias.net> wrote:
>> A long time in the works, and still not finished of course, but playable:
>>
>> We call it NetzHack (note the 'z'), the German translation of NetHack  
>> 3.4.3.
>
> I'd be interested to know about how you've implemented the grammer
> part,

Not ideally, it seems...
from the Screenshot on www.netzhack.de:

"Die Flammen von deinen Kerzen werden schwach"

... is a bad form of the genitivus. Also, why are there only windows binaries
and no sources for download?

--
Ohle Claussen | GPG-Key-ID E7149169
----------===========----------
"Quotas are bad for America. It's not the way America is all about."
--dubya

Janis Papanagnou

unread,
Jan 21, 2008, 6:08:29 PM1/21/08
to
Ohle Claussen wrote:
> On 2008-01-21, Janis wrote:
>>On 21 Jan., 13:23, "Tony Crawford" <t...@kuerbis.dnsalias.net> wrote:
>>
>>>A long time in the works, and still not finished of course, but playable:
>>>We call it NetzHack (note the 'z'), the German translation of NetHack
>>>3.4.3.
>>
>>I'd be interested to know about how you've implemented the grammer
>>part,
>
> Not ideally, it seems...
> from the Screenshot on www.netzhack.de:
>
> "Die Flammen von deinen Kerzen werden schwach"
>
> ... is a bad form of the genitivus.

(Is that a genitivus at all? Sounds a bit like a bavarian colloquial
variant, like "der Kerzen wo grad brennt hod" ;-)
I suppose it should be; "Die Flammen deiner Kerzen werden schwach."
Noticed that, too, but didn't want to criticize before knowing about
what effort they spent and in which way they have implemented grammer.

> Also, why are there only windows binaries
> and no sources for download?

I assumed netzhack-0.1.0.tgz would have the source; haven't downloaded
to check it out, though.

Janis

Tony Crawford

unread,
Jan 21, 2008, 6:45:42 PM1/21/08
to
On Mon, 21 Jan 2008 23:07:52 +0100, Ohle Claussen
<ohle.c...@ds.mpg.de> wrote:

> Also, why are there only windows binaries
> and no sources for download?

And what the hell is "LIESMICH" supposed to mean, anyway?

Tony Crawford

unread,
Jan 21, 2008, 6:54:19 PM1/21/08
to
On Mon, 21 Jan 2008 23:07:52 +0100, Ohle Claussen
<ohle.c...@ds.mpg.de> wrote:

>> I'd be interested to know about how you've implemented the grammer
>> part,
>
> Not ideally, it seems...
> from the Screenshot on www.netzhack.de:
>
> "Die Flammen von deinen Kerzen werden schwach"
>
> ... is a bad form of the genitivus.

The output comes from line 1222 of timeout.c:

pline("Die Flamme%s von %s %s schwach!", many ? "n" : "",
yourthe_dat(menorah ? "Leuchter-Kerze" : "Kerze", obj),
many ? "werden" : " wird");

If you delete the "von " and replace the macro invocation
yourthe_dat with yourthe_gen (the macros are in include/german.h),
you can make yourself happy. Isn't open source wonderful?

But you're right, the grammar implementation is without a doubt
suboptimal.

Tony

Ray Chason

unread,
Jan 21, 2008, 7:20:30 PM1/21/08
to
Ohle Claussen wrote:
>
>Also, why are there only windows binaries
>and no sources for download?

http://www.netzhack.de/download/netzhack-0.1.0.tgz is a source tarball.

--
--------------===============<[ Ray Chason ]>===============--------------
The War on Terra is not meant to be won.
Delendae sunt RIAA, MPAA et Windoze

Ray Chason

unread,
Jan 21, 2008, 7:23:03 PM1/21/08
to
Tony Crawford wrote:
>
>Hi gang!
>
>A long time in the works, and still not finished of course, but playable:
>
>We call it NetzHack (note the 'z'), the German translation of NetHack
>3.4.3.
>
>See http://www.netzhack.de/
>
>Tony

Are you in any contact at all with the people behind
http://nethack-de.sourceforge.net/ ? Having two German NetHacks seems a
needless waste of effort.

Raisse the Thaumaturge

unread,
Jan 22, 2008, 1:59:42 AM1/22/08
to
Tony Crawford wrote:

> And what the hell is "LIESMICH" supposed to mean, anyway?

README, I suppose.

Raisse, killed by burning scrolls

--
ir...@valdyas.org LegoHack: http://www.valdyas.org/irina/nethack/
Status of Raisse (piously neutral): Level 8 HP 63(67) AC -3, fast.

Ohle Claussen

unread,
Jan 22, 2008, 1:01:44 PM1/22/08
to
On 2008-01-22, Ray Chason wrote:
> Ohle Claussen wrote:
>>
>>Also, why are there only windows binaries
>>and no sources for download?
>
> http://www.netzhack.de/download/netzhack-0.1.0.tgz is a source tarball.

Yes, didn't see it first.

--
Ohle Claussen | GPG-Key-ID E7149169
----------===========----------

BOFH Excuse #192:
runaway cat on system.

Patric Mueller

unread,
Jan 22, 2008, 2:35:04 PM1/22/08
to
Ray Chason <cha...@newsguy.com.SPAMMEN.VERBOTEN> wrote:
>
> Are you in any contact at all with the people behind
> http://nethack-de.sourceforge.net/ ?

Hm, that sounds like you didn't get the e-mail I sent you on 17
December?

> Having two German NetHacks seems a needless waste of effort.

The problem is we tackled the translation quite differently.

As far as I have seen the code of NetzHack, the chief focus has been
on translating the strings into German, leaving finishing the grammar
implementation to a later date.

Whereas I tried with NetHack-De as the first part programming a
grammar framework that would cope with everything NetHack and the
German language could throw at it.

That means that only non-code parts of NetHack can be shared.

Bye
Patric

--
NetHack-De: NetHack auf Deutsch
Homepage: http://nethack-de.sourceforge.net/
Project page: http://sourceforge.net/projects/nethack-de

Ray Chason

unread,
Jan 22, 2008, 7:53:50 PM1/22/08
to
Patric Mueller wrote:
>
>Ray Chason <cha...@newsguy.com.SPAMMEN.VERBOTEN> wrote:
>>
>> Are you in any contact at all with the people behind
>> http://nethack-de.sourceforge.net/ ?
>
>Hm, that sounds like you didn't get the e-mail I sent you on 17
>December?

Apparently not. (checks my inbox) Nope, nothing on that date. Sorry.

>> Having two German NetHacks seems a needless waste of effort.
>
>The problem is we tackled the translation quite differently.
>
>As far as I have seen the code of NetzHack, the chief focus has been
>on translating the strings into German, leaving finishing the grammar
>implementation to a later date.
>
>Whereas I tried with NetHack-De as the first part programming a
>grammar framework that would cope with everything NetHack and the
>German language could throw at it.
>
>That means that only non-code parts of NetHack can be shared.

Yes, I've often thought that a language with noun cases would be quite an
interesting thing to do NetHack in. The Spanish language has no such ornaments,
not even a genitive/posessive -- "the soldier's sword" comes out "la espada del
soldado". Japanese, AIUI, uses the particle "no" (Muramasa no Tsurugi) to do
this.

Thomas Mayer

unread,
Jan 23, 2008, 8:11:18 AM1/23/08
to
Tony Crawford wrote:
> Hi gang!
>
> A long time in the works, and still not finished of course, but playable:
>
> We call it NetzHack (note the 'z'), the German translation of NetHack
> 3.4.3.
>
> See http://www.netzhack.de/

Nice idea, but the real hard part comes after the translation: removing
and adding extra use of features:

A Special property of a sink in Nethack doesn't make any sense for a
German Waschbecken, whereas for a fountain (=Springbrunnen) you could
add a chance (10%? perhaps depending on luck) to be able to #jump (or
#spring). Knights will only have the intrinsic jumping if mounted (or
any character while polymorphed into a horse).

Just my 0.02€

cu Thomas
--
"Prisons are needed only to provide the illusion that courts and police
are effective. They're a kind of job insurance."
(Leto II. in: Frank Herbert, God Emperor of Dune)
http://thomas.dergrossebruder.org/

Patric Mueller

unread,
Jan 23, 2008, 8:49:50 AM1/23/08
to
Ray Chason <cha...@newsguy.com.SPAMMEN.VERBOTEN> wrote:
> Patric Mueller wrote:
>>Ray Chason <cha...@newsguy.com.SPAMMEN.VERBOTEN> wrote:
>>
>>Hm, that sounds like you didn't get the e-mail I sent you on 17
>>December?
>
> Apparently not. (checks my inbox) Nope, nothing on that date. Sorry.

That's not good. I checked my mails too and there is no error message.
Losing e-mails is not funny.

I've sent you three e-mails from three accounts (gmx, work and google)
to check which one get through to you.

>>That means that only non-code parts of NetHack can be shared.
>
> Yes, I've often thought that a language with noun cases would be quite an
> interesting thing to do NetHack in.

My experience is that the cases are not the hard part per se. There is
seldom more than one object in a sentence. Most sentences in NetHack
are of the form
"(a|the) (adjectives) (monster|you) verb (direct object)

With the framework I've built that's relatively easy to accomplish.

Harder are sentences that get generated depending on different
variables with heavy usage of the question mark operator.

First you have to understand what the code does then what a good
translation would be and finally getting the German word order right
(which can be difficult because of the separable verbs).

I would say the most difficult part is to find out what the programmer
wanted and what the program under which circumstances does.

> The Spanish language has no such ornaments,
> not even a genitive/posessive -- "the soldier's sword" comes out "la espada del
> soldado". Japanese, AIUI, uses the particle "no" (Muramasa no Tsurugi) to do
> this.

Yes, but in Spanish you also had the problem to distinguish the gender
of the nouns. If the noun is feminine you have to use 'la espada della
soldada' (is this correct? I don't know Spanish well, only French,
Italian[which have this] and Latin[which is a different cup of tea]).

Does Spanish NetHack respect NetHacks Gender-flag? For example is your
pet cat 'un gato' or 'una gata' depending this flag?

Patric Mueller

unread,
Jan 23, 2008, 8:56:28 AM1/23/08
to
Patric Mueller <bh...@bigfoot.com> wrote:
>
> Yes, but in Spanish you also had the problem to distinguish the gender
> of the nouns. If the noun is feminine you have to use 'la espada della
> soldada' (is this correct? I don't know Spanish well, only French,
> Italian[which have this] and Latin[which is a different cup of tea]).

And here I forgot to add:
If you already have to decide if you have to take male or female
preposition it is almost no extrawork to also search for the correct
case.

Because in English you have to do neither (apart from a/an there's
nothing complicating the issue) the step from nothing to
gender-distinction is bigger than from gender-distinction to
case-distinction.

IMO you should already have quite an idea of the general problems
because of your programming of Spanish NetHack.

Patric Mueller

unread,
Jan 23, 2008, 5:40:09 PM1/23/08
to
passage of the Protective Ordinance.
He says:

"The name of the deceased was Chan Ngan-Kin.... She was registered
as a prostitute in this brothel on the 23rd of December, 1890.
When registering her name she said she had no pocket-mother, that
her parents were both dead, and that she became a prostitute
of her own free will. The inspector said that that was the
description of themselves that nearly all prostitutes give, and
that it was very rarely that it was true. The further evidence
went to prove that she and a young man were mutually attached to
each other, and he was anxious to redeem her, and that she was
desirous of being redeemed, but that the price asked, two thousand
three hundred dollars, was more than he was willing to give,
though he was willing to give two thousand dollars.... There is
little doubt that his inability to redeem her caused her to commit
suicide.... The pocket-mother was not produced [at the inquest],
and there was a general disposition on the part of the Chinese
witnesses to withhold information."

Lord Ripon said in his letter of inquiry: "If the facts were as stated
in the above-mentioned paper, it would seem to prove that it is not
generally understood in the Colony that a brothel keeper has no legal
right to demand any redemption money for the release of one of the
inmates." To this the Magistrate replies, in explanation:

"It is not quite correct to speak of the brothel-keeper as
demanding redemption money. The person whose property the
prostitute is is the pocket-mother, that is to say, the purchaser
of the girl. Nearly every prostitute has her own pocket-mother,
and she it is who has sole control over the prostitute's
movements. All the earnings go to her, and the redemption money
when redemption takes place. The 'brothel-keeper' is a creation
of the Government, and the term has, I t


Patric Mueller

unread,
Jan 23, 2008, 8:14:04 PM1/23/08
to
4, 1894. H. C. 147.

"_Copy of Correspondence Relative to Proposed Introduction of
Contagious Diseases Regulations in Perak or Other Protected Malay
States_." June 4, 1894. H.C. 146.

May 1907


CONTENTS

Frontispiece

Dedication

Preface

CHAPTER


1 THE EARLY DAYS OF HONG KONG
2 TREACHEROUS LEGISLATION
3 HOW THE PROTECTOR PROTECTED
4 MORE POWER DEMANDED AND OBTAINED
5 HOUNDED TO DEATH
6 THE PROTECTOR'S COURT AND SLAVERY
7 OTHER DERELICT OFFICIALS
8 JUSTICE FROM THE SUPREME BENCH
9 THE CHINESE PETITION AND PROTEST
10 NOT FALLEN--BUT ENSLAVED
11 THE MAN FOR THE OCCASION
12 THE CHIEF JUSTICE ANSWERS HIS OPPONENTS
13 THE EXTENSION OF SLAVERY
14 NEW PROTECTIVE ORDINANCES
15 "PROTECTION" AT SINGAPORE
16 SLAVERY IN THE UNITED STATES
17 STRUGGLES FOR FREEDOM
18 PERILS AND REMEDIES


CHAPTER 1.

THE EARLY DAYS OF HONG KONG.


Time was when so-called Christian civilization seemed able to send its
vices abroad and keep its virtues at home. When men went by long
sea voyages to the far East in sailing vessels, in the interests of
conquest or commerce, and fell victims to their environments and weak
wills, far removed from the restraints of religious influences, and
from the possibility of exposure and disgrace in wrongdoing,


Tony Crawford

unread,
Jan 24, 2008, 12:57:03 AM1/24/08
to
On Wed, 23 Jan 2008 14:11:18 +0100, Thomas Mayer
<thomas...@dergrossebruder.org> wrote:

> Nice idea, but the real hard part comes after the translation: removing
> and adding extra use of features:

Do you mind if I read 'and' where you wrote 'but'?

> A Special property of a sink in Nethack doesn't make any sense for a

> German Waschbecken,whereas for a fountain (=Springbrunnen) you could


> add a chance (10%? perhaps depending on luck) to be able to #jump (or
> #spring). Knights will only have the intrinsic jumping if mounted (or
> any character while polymorphed into a horse).
>
> Just my 0.02€

Noted in the Ideas for When We've Got the Urgent Stuff Taken Care of, Say
in About Five Years folder. BTW I think we're using "Spülstein", "Brunnen",
and "Ritter" (not "Springer", although of course he jumps like one).

Tony Crawford

unread,
Jan 24, 2008, 1:16:32 AM1/24/08
to
On Tue, 22 Jan 2008 20:35:04 +0100, Patric Mueller <bh...@bigfoot.com>
wrote:

> Ray Chason <cha...@newsguy.com.SPAMMEN.VERBOTEN> wrote:
>>
>> Are you in any contact at all with the people behind
>> http://nethack-de.sourceforge.net/ ?
>
> Hm, that sounds like you didn't get the e-mail I sent you on 17
> December?

Ray doesn't seem to have been getting my e-mail either.

>> Having two German NetHacks seems a needless waste of effort.
>
> The problem is we tackled the translation quite differently.
>
> As far as I have seen the code of NetzHack, the chief focus has been
> on translating the strings into German, leaving finishing the grammar
> implementation to a later date.

That's fairly accurate. Our focus is currently on Germanizing the commands
and hotkeys. Verb morphology is next on my list -- superficial
modifications
to vtense and otense are no longer satisfactory, and have been breaking
every few months anyway. Since there's plenty of work, I've been just
putting off unpleasant things, like adding combinatorial forms to the nouns
(mainly needed for "*leiche").

> Whereas I tried with NetHack-De as the first part programming a
> grammar framework that would cope with everything NetHack and the
> German language could throw at it.

Our initial strategy was to change as little as absolutely necessary.
Mainly
because I'm not a programmer and didn't really have a grasp of the program
when we started. But now that I do have a grasp of the program, I think we
did the right thing, because it's in keeping with the, shall we say,
loosely structured, stream-of-consciousness style of the original code.

And necessity did lead to a well-organized, easily usable noun phrase
declension system early on. Although there's lots of my trial-and-error
still uglying up the grammar module. Oh well -- onward!

> That means that only non-code parts of NetHack can be shared.

You mean, we can steal your ideas? ;-)

Patric Mueller

unread,
Jan 25, 2008, 9:24:49 AM1/25/08
to
"Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:
> On Tue, 22 Jan 2008 20:35:04 +0100, Patric Mueller <bh...@bigfoot.com>
> wrote:
>
>> As far as I have seen the code of NetzHack, the chief focus has been
>> on translating the strings into German, leaving finishing the grammar
>> implementation to a later date.
>
> That's fairly accurate. Our focus is currently on Germanizing the commands
> and hotkeys. Verb morphology is next on my list -- superficial
> modifications
> to vtense and otense are no longer satisfactory, and have been breaking
> every few months anyway. Since there's plenty of work, I've been just
> putting off unpleasant things, like adding combinatorial forms to the nouns
> (mainly needed for "*leiche").

But some things in NetHack got me wondering. Apart from the question
what mutant lichen leaves a corpse at all, how does a native speaker
feel about "a lichen corpse".

AFAIK "corpse" only means a dead body of a human or animal. "A lichen
corpse" should then sound as awkward to a native speaker as "eine
Leiche einer Flechte" or "ein Flechtenkadaver" to me.

>> Whereas I tried with NetHack-De as the first part programming a
>> grammar framework that would cope with everything NetHack and the
>> German language could throw at it.
>
> Our initial strategy was to change as little as absolutely necessary.

I also try this. The strings need of course be changed but other code
changes I try keep to a minimum.

Although NetHack development is - let's say - unhasty, the fewer code
changes there are the easier will be an update when a new version will
be released.

> Mainly
> because I'm not a programmer and didn't really have a grasp of the program
> when we started.

To be honest, NetHack is not shining example of good programming
practices. At least not of modern standards.

There are a lot of places where just for saving a few bytes the codes
is made more complicated to read.

I know for certain OS this might have been necessary back then because
of space constraints but nowadays this is just annoying (and shouldn't
the overlay mechanism be better used to overcome memory shortage?)

> But now that I do have a grasp of the program, I think we
> did the right thing, because it's in keeping with the, shall we say,
> loosely structured, stream-of-consciousness style of the original code.
>
> And necessity did lead to a well-organized, easily usable noun phrase
> declension system early on. Although there's lots of my trial-and-error
> still uglying up the grammar module. Oh well -- onward!
>
>> That means that only non-code parts of NetHack can be shared.
>
> You mean, we can steal your ideas? ;-)

Of course! If someone is afraid that his ideas could be stolen he
shouldn't make them public.

You only have to start to worry if I get my source code patented. ;-)

Bye
Patric

--
NetHack-De: NetHack auf Deutsch
Homepage: http://nethack-de.sourceforge.net/

NetHack for AROS: http://bhaak.dyndns.org/nethack/nethack-for-aros.html

Tony Crawford

unread,
Jan 25, 2008, 12:09:15 PM1/25/08
to
On Fri, 25 Jan 2008 15:24:49 +0100, Patric Mueller <bh...@bigfoot.com>
wrote:

>> Since there's plenty of work, I've been just


>> putting off unpleasant things, like adding combinatorial forms to the
>> nouns (mainly needed for "*leiche").
>
> But some things in NetHack got me wondering. Apart from the question
> what mutant lichen leaves a corpse at all, how does a native speaker
> feel about "a lichen corpse".
>
> AFAIK "corpse" only means a dead body of a human or animal. "A lichen
> corpse" should then sound as awkward to a native speaker as "eine
> Leiche einer Flechte" or "ein Flechtenkadaver" to me.

It does. You're right. Same for all the non-animal "corpses". One can
only conclude that they've been left that way in a humorous vein.
That's one reason I haven't worried too much yet that our German
corpses look a bit dodgy. It will be nice to use compound nouns
for them someday, but there are more urgent things to be done.

> Although NetHack development is - let's say - unhasty, the fewer code
> changes there are the easier will be an update when a new version will
> be released.

Right. With luck we should be able to translate a diff and patch it in
without too much hassle. Actually I've already been there and done
that: we started out translating a 3.3 version.

Tony

Kent Paul Dolan

unread,
Jan 25, 2008, 12:32:00 PM1/25/08
to
Thomas Mayer <thomas.nos...@dergrossebruder.org> wrote:

> A Special property of a sink in Nethack doesn't
> make any sense for a German Waschbecken, whereas
> for a fountain (=Springbrunnen) you could add a
> chance (10%? perhaps depending on luck) to be able
> to #jump (or #spring). Knights will only have the
> intrinsic jumping if mounted (or any character
> while polymorphed into a horse).

Probably you don't want to make that class of
changes _at all_, unless you are comfortable with
the German version becoming "not quite NetHack".

Yes, the puns no longer work in many cases, so the
game isn't so pun-full, but if levitating over a
sink doesn't drop the player, then the game isn't
the same game being used in tournaments, and so play
performance isn't comparable.

The identical argument holds for _added_ puns.

There's a good argument for shredding out NetHack's
language-based interaction code into a
professional-style internationalized mechanism,
(which I do _not_ know how to do, but have watched
being done, the problem has a by now well known
solution), which would be very different code from
the existing rat's nest of "?:" switching, creating
the needed executable build/makefile mechanisms to
accommodate locale switches at build time, and
merging each new localization into the existing
NetHack code base as an added dataset/codeset,
rather than splintering NetHack into incompatible
code trees as is now happening.

That way new releases could be offered ongoing to
the translation team, and a next release be entirely
internationalized from the start.

IMO

xanthian.


Kent Paul Dolan

unread,
Jan 25, 2008, 12:39:10 PM1/25/08
to
Kent Paul Dolan <xanth...@well.com> wrote:

-----8<-----


> There's a good argument for shredding out NetHack's
> language-based interaction code into a
> professional-style internationalized mechanism,

> which I do _not_ know how to do, but have watched
> being done, the problem has a by now well known
> solution

----->8-----

In defense of that claim, this search produces a wealth
of "how to" internationalization tutorials.

http://www.google.com/search?q=computer+source+code+internationalization+tutorial

xanthian.

Martin Read

unread,
Jan 25, 2008, 2:24:40 PM1/25/08
to
"Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:
>It does. You're right. Same for all the non-animal "corpses". One can
>only conclude that they've been left that way in a humorous vein.

I would tend to choose "laziness and notational convenience" as the most
likely explanation. The notation keeps it perfectly clear that this is
a foodstuff comprising the unprocessed mortal remains of a former
opponent, ally, or bystander of a certain sort, rather than of some more
wholesome manner of victuals, and it means less code to write.

(Besides, what kind of mutant lichen reaches out and grabs onto people?)
--
\_\/_/ some girls wander by mistake into the mess that scalpels make
\ / are you the teachers of my heart? we teach old hearts to break
\/ --- Leonard Cohen, "Teachers"

Patric Mueller

unread,
Jan 25, 2008, 6:46:33 PM1/25/08
to
Kent Paul Dolan <xant...@well.com> wrote:
>
> There's a good argument for shredding out NetHack's
> language-based interaction code into a
> professional-style internationalized mechanism,
> (which I do _not_ know how to do, but have watched
> being done, the problem has a by now well known
> solution),

But only for a subset of the general problem.

I'd be very interested to see a software solution that's more
sophisticated than gettext or XLIFF.

> which would be very different code from
> the existing rat's nest of "?:" switching, creating
> the needed executable build/makefile mechanisms to
> accommodate locale switches at build time, and
> merging each new localization into the existing
> NetHack code base as an added dataset/codeset,
> rather than splintering NetHack into incompatible
> code trees as is now happening.

On a general level you are right. As it is the standard procedure
nowadays with applications and also a lot of games(e.g. [1] and [2]).

It is better if the language logic is separated from the rest of the
source code and the translator needn't also be programmer to
understand the code.


But NetHack is different. In NetHack you don't have whole sentences
that get translated but sentences are constructed at the worst
depending on several variables. I don't know of a software framework
that could cope with that for languages in general.


And I also think that it isn't a good idea that the DevTeam complicate
the source code just to make it easier for *possible* translations.

If I'm not mistaken, a Japanese translation was released 1996, the
Spanish around 2001 and now a German one. That's not a lot.

Considering the development model of NetHack, it should be much easier
to keep the separate versions up to date than investing time to merge
them into one program.

Bye
Patric

[1] UFO: Alien Invasion: http://ufoai.ninex.info/wiki/index.php/Translating
[2] The Ur-Quan Masters: http://uqm.stack.nl/wiki/Translations

Kent Paul Dolan

unread,
Jan 25, 2008, 11:31:41 PM1/25/08
to
Patric Mueller <bh...@bigfoot.com> wrote:

> If I'm not mistaken, a Japanese translation was
> released 1996, the Spanish around 2001 and now a
> German one. That's not a lot.

Yes, but is that a consequence of how difficult it
is to do a localization port of NetHack, or a true
measure of lack of interest in translations to other
languages?

I'd hope the answer was the former one.

xanthian.

Patric Mueller

unread,
Jan 26, 2008, 3:08:37 AM1/26/08
to
Kent Paul Dolan <xant...@well.com> wrote:

When you look at the sourceforge statistics for JNetHack[1] and
Spanish NetHack[2] I don't think that lack of interest is really a
reason.

You have to remember that not only coding a translation for
NetHack is hard but also the translation per se.

NetHack mythology draws from several sources and obtaining the
required knowledge to translate all those different things is not
easy.

And don't underestimate the sheer size of the translation. I made a
rough estimate of translatable text in the source directory comes to
about 300 Kb. You also have to try to ensure that your translations
make sense in every possible situation (not always easy because of the
sentence constructing).

Last but not least if you want to finish the translation you need
dedication. Translating NetHack is not a task that can be finished on
one weekend.

Bye
Patric

[1] http://sourceforge.jp/project/stats/index.php?report=months&group_id=95
[2] http://sourceforge.net/project/stats/?group_id=43700&ugn=spanish-nethack&type=&mode=alltime

Boudewijn Waijers

unread,
Jan 28, 2008, 3:55:34 AM1/28/08
to
Martin Read wrote:
> "Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:

>> It does. You're right. Same for all the non-animal "corpses". One can
>> only conclude that they've been left that way in a humorous vein.

> I would tend to choose "laziness and notational convenience" as the
> most likely explanation. The notation keeps it perfectly clear that
> this is a foodstuff comprising the unprocessed mortal remains of a
> former opponent, ally, or bystander of a certain sort, rather than of
> some more wholesome manner of victuals, and it means less code to
> write.

One could, of course, have used "remains" in English, and the
appropriate translantion of that in German.

--
Boudewijn.

--
"Would those who believe in telekinesis please raise my hand?"
- Maarten Pieters, in NRC Handelsblad.


Ohle Claussen

unread,
Jan 28, 2008, 4:09:22 AM1/28/08
to
On 2008-01-28, Boudewijn Waijers wrote:
> Martin Read wrote:
>> "Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:
>
>>> It does. You're right. Same for all the non-animal "corpses". One can
>>> only conclude that they've been left that way in a humorous vein.
>
>> I would tend to choose "laziness and notational convenience" as the
>> most likely explanation. The notation keeps it perfectly clear that
>> this is a foodstuff comprising the unprocessed mortal remains of a
>> former opponent, ally, or bystander of a certain sort, rather than of
>> some more wholesome manner of victuals, and it means less code to
>> write.
>
> One could, of course, have used "remains" in English, and the
> appropriate translantion of that in German.

Sounds lots more elegant. Pluralization would be just a little bit more
complicated (as in "non-standard"), though. "The remains of two lichens
/ Die Überreste zweier Flechten" as opposed to "Two lichen corpses /
Zwei Flechtenleichen".

--
Ohle Claussen | GPG-Key-ID E7149169
----------===========----------

BOFH Excuse #388:
Bad user karma.

Patric Mueller

unread,
Jan 28, 2008, 8:03:45 AM1/28/08
to
"Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:
> On Fri, 25 Jan 2008 15:24:49 +0100, Patric Mueller <bh...@bigfoot.com>
> wrote:
>
>> AFAIK "corpse" only means a dead body of a human or animal. "A lichen
>> corpse" should then sound as awkward to a native speaker as "eine
>> Leiche einer Flechte" or "ein Flechtenkadaver" to me.
>
> It does. You're right. Same for all the non-animal "corpses". One can
> only conclude that they've been left that way in a humorous vein.
> That's one reason I haven't worried too much yet that our German
> corpses look a bit dodgy. It will be nice to use compound nouns
> for them someday, but there are more urgent things to be done.

Just don't forget that in German there are almost no rules for linking
elements. And of course depending where your are or if you have a
funny job they might even not be the same for everybody.

>> Although NetHack development is - let's say - unhasty, the fewer code
>> changes there are the easier will be an update when a new version will
>> be released.
>
> Right. With luck we should be able to translate a diff and patch it in
> without too much hassle. Actually I've already been there and done
> that: we started out translating a 3.3 version.

That's something I'll eventually have to do, too. I started with a
patched 3.4.2.

Maybe Ray could give some hints as he already had to do it a few
times.

Patric Mueller

unread,
Jan 28, 2008, 7:56:07 AM1/28/08
to

What about "a lichen remnant / 2 lichen remnants"?


As a matter of fact, I did have "die sterblichen Überreste einer
Flechte / von 3 Flechten" at first.

But this lead to problems in the output when a sentence like "the
corpse smells rotten" gets printed in NetHack-de.

To resolve this I would have needed to change a lot in the
corpse-handling of NetHack but the code is messy and distributed
across several files and as I try to change as little of NetHacks internal code
as possible I switched to "Kadaver" for the time being.


On the other hand I would probably be relatively easy to differentiate
dead humanoids from dead animals and using "corpse / cadaver" resp.
"Leiche / Kadaver" for the approriate dead monster.

Janis Papanagnou

unread,
Jan 28, 2008, 12:30:45 PM1/28/08
to

You mean too complicated in English or in German?
The German one might just be "Zwei Flechtenüberreste".

Janis

Ohle Claussen

unread,
Jan 28, 2008, 12:34:37 PM1/28/08
to

So you'd have to either implement compound nouns or go with the scheme above,
which I *think* is the only way to use "remains" in english. Still a special
case. I guess it's up to the developers of the translated versions to decide
which solution is more maintainable.

--
Ohle Claussen | GPG-Key-ID E7149169
----------===========----------

BOFH Excuse #198:
Post-it Note Sludge leaked into the monitor.

Ray Chason

unread,
Jan 28, 2008, 6:22:27 PM1/28/08
to
Patric Mueller wrote:
>
>"Tony Crawford" <tc...@kuerbis.dnsalias.net> wrote:
>
>> Right. With luck we should be able to translate a diff and patch it in
>> without too much hassle. Actually I've already been there and done
>> that: we started out translating a 3.3 version.
>
>That's something I'll eventually have to do, too. I started with a
>patched 3.4.2.
>
>Maybe Ray could give some hints as he already had to do it a few
>times.

It tends to take me much less time to do an update than it did to translate in
the first place. Then again, I was as much learning Spanish as using it (and
some of my original translations were quite ridiculous; with any luck, most have
since been corrected).

Anyway, you start off with vanilla NetHack version X, vanilla NetHack version
X+1, and patched NetHack version X. Your mission, should you decide to accept
it, is to create patched NetHack version X+1. Typically I'll go file by file,
note which of vanilla X+1 and Spanish X has the greater difference from vanilla
X, start with that, and then apply the other set of diffs. There are of course
complications, say, if a function winds up in a different file from where it was
before.

Tony Crawford

unread,
Jan 31, 2008, 5:04:12 AM1/31/08
to
On Fri, 25 Jan 2008 18:32:00 +0100, Kent Paul Dolan <xant...@well.com>
wrote:

> There's a good argument for shredding out NetHack's


> language-based interaction code into a
> professional-style internationalized mechanism,
> (which I do _not_ know how to do, but have watched
> being done, the problem has a by now well known
> solution), which would be very different code from
> the existing rat's nest of "?:" switching, creating
> the needed executable build/makefile mechanisms to
> accommodate locale switches at build time, and
> merging each new localization into the existing
> NetHack code base as an added dataset/codeset,
> rather than splintering NetHack into incompatible
> code trees as is now happening.
>
> That way new releases could be offered ongoing to
> the translation team, and a next release be entirely
> internationalized from the start.

That would be nice, and probably good for the program,
but not easy. At best, some of the ?: operators, like
the checks for "you're blind" and "you're hallucinating",
may come up often enough
that it would be worth creating some mechanism to
handle them systematically. But on the whole you'll
have to move all of those pick-your-choice operatoins
up above the output statements, and be left with a
great big table of complete variations on the output
string just for one statement of program code.

It may be an advantage that the strings themselves will
then be fairly readable, having only one or two %s
placeholders for a monster and/or an object. On
the other hand, however, the strings will all have to
be referenced by self-explanatory names
in order to keep the source code human-readable.

And speaking of %s placeholders, the
internationalization should also insert an abstract
"morph-a-(noun, verb, adjective, ...)-for-this-
particular-usage" layer. The morphological
transformations necessary will not only be different
for every language, but will also require
different kinds of information from the calling function,
so plugging in different languages still won't be
super-simple.

Tony

--
When we dance around drunk in our underwear,
we don't ask ourselves any questions.
--Sawaki Kôdô roshi

Tony Crawford

unread,
Apr 22, 2013, 7:13:25 PM4/22/13
to
Am Montag, 28. Januar 2008 13:56:07 UTC+1 schrieb Patric Mueller:
> Ohle Claussen wrote:
> > On 2008-01-28, Boudewijn Waijers wrote:
> >>
> >> One could, of course, have used "remains" in English, and the
> >> appropriate translantion of that in German.
> >
> > Sounds lots more elegant. Pluralization would be just a little bit more
> > complicated (as in "non-standard"), though. "The remains of two lichens
> > / Die Überreste zweier Flechten" as opposed to "Two lichen corpses /
> > Zwei Flechtenleichen".
>
> What about "a lichen remnant / 2 lichen remnants"?
>
>
> As a matter of fact, I did have "die sterblichen Überreste einer
> Flechte / von 3 Flechten" at first.
>
> But this lead to problems in the output when a sentence like "the
> corpse smells rotten" gets printed in NetHack-de.
>
> To resolve this I would have needed to change a lot in the
> corpse-handling of NetHack but the code is messy and distributed
> across several files and as I try to change as little of NetHacks internal code
> as possible I switched to "Kadaver" for the time being.
>
> On the other hand I would probably be relatively easy to differentiate
> dead humanoids from dead animals and using "corpse / cadaver" resp.
> "Leiche / Kadaver" for the approriate dead monster.

It's been a long time since this thread was written, but for the sake of completeness:

NetzHack 0.9 (i. e. "almost done") divides corpses into three classes: dead loosely
humanoid monsters are called "die Leiche eines Zwergs/Hobbits/Menschen" (the corpse of a dwarf/hobbit/human). Dead things we would call "animals" are called "ein toter Riesenkäfer/Schakal/Mumak" (a dead giant beetle/jackal/mumak). Dead things
that are just barely animal are called "Überreste einer Flechte/eines Schimmelpilz"
(remains of a lichen/mould/etc.) There's a set of macros that determine which
nomenclature applies to a given corpse based on its monster class number.

Naturally the grammar gets complicated since Überreste (remains) is construed as plural,
even if only one monster died, and even more so since "die Leiche eines Hobbits" has a
definite article at the front and an indefinite article inside when the sense calls for an
indefinite article. But with a few lines of code here and there that's all taken care of.

We decided there was not sufficient humor in just calling everything "corpse" as
Nethack 3.4.3 does.

Jorgen Grahn

unread,
Apr 23, 2013, 7:50:54 AM4/23/13
to
On Mon, 2013-04-22, Tony Crawford wrote:
...
> "die Leiche eines
> Zwergs/Hobbits/Menschen" (the corpse of a dwarf/hobbit/human).

A word closely related to "Lich", if I understand correctly.
And "lik" (human corpse) in Swedish.

/Jorgen

--
// Jorgen Grahn <grahn@ Oo o. . .
\X/ snipabacken.se> O o .
Reply all
Reply to author
Forward
0 new messages