"Translate German characters" not working with aliases

Posted by Hve on Mon 10 May 2004 12:18 PM — 5 posts, 22,387 views.

Germany #0
In a german MUD (which doesn't like umlauts, though), the
"Translate German characters" option allows me to type, for example

öffne tüte

and this will be sent to the MUD as

oeffne tuete

With a trigger like
<alias
script="OnVerkaufe"
match="verkaufe *"
enabled="y"
sequence="100"
>
</alias>
where the OnVerkaufe skript essentially does something like
World.queue "give "&something&" to salesperson",
german character translation does not take place, i.e.
typing
verkaufe tüte
results in the command
give tüte to salesperson
sent to the mud instead of
give tuete to salesperson

I must admit that now when I come to think of it, I'm unsure as well where in the process to place the umlaut translation. Maybe the best place would be immediately before sending, maybe immediately after typing...
Greece #1
Maybe you could do a World.Execute instead of a World.Send?
Australia Forum Administrator #2
Hmm - looks like a bug, I'll look into it.
Australia Forum Administrator #3
Hmm - I am now sharing your doubt as to where this translation should go, if anywhere.

At present the "translate German characters" option is honoured for "send to":

  • world (ie. to the MUD)
  • command queue (ie. to the MUD after the speedwalk delay)
  • immediate (ie. to the MUD, bypassing the speedwalk queue)


However it is *not* done for:

  • command window (you may well want the text "as is", and in any case it would be translated when you sent the command)
  • status line
  • notepad (new, append, replace)
  • output window
  • log file
  • variable
  • execute (it would be translated when the command is re-evaluated)
  • speedwalk (you would not expect umlauts in speedwalks)
  • script (the script can decide what to do with it)


Basically the ones it does *not* translate are generally ones that are not sent back (directly) to the MUD, and are thus considered to be "safe".

However in your case your script is indirectly sending the umlauts back to the MUD (via Send or Queue or whatever).

For maximum flexibility I have added a new script routine (in version 3.50) called TranslateGerman. This will apply those translations to a string of your choosing.

Thus you could do, in your script:


World.queue "give " & TranslateGerman (something) & " to salesperson"





The more I think about it, the more I'm not sure about this. The new routine will be handy, but perhaps the best place for the translation is just before sending, not just after typing. It was added into the "input" configuration box, but is really an "output" configuration. What do you think?

Amended on Wed 26 May 2004 12:29 AM by Nick Gammon
Australia Forum Administrator #4
OK, I have changed my mind. I will leave in the new script routine, which is very small, but have changed the way it works to translate the umlauts just *before* sending to the MUD, rather than just *after* you type something.

After all, if you want them translated you always want them translated, right? Even if they come from a script, a speedwalk, a disk file, or whatever.