Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Due to spam on this forum, all posts now need moderator approval.
Entire forum
➜ MUDs
➜ General
➜ Multi-lingual MUD?
It is now over 60 days since the last post. This thread is closed.
Refresh page
Posted by
| Nick Gammon
Australia (23,132 posts) Bio
Forum Administrator |
Date
| Sat 05 Jul 2003 10:54 PM (UTC) |
Message
| I have been thinking about the idea of a MUD that could be played by people who speak different languages, which I initially explored in:
http://www.gammon.com.au/forum/bbshowpost.php?bbsubject_id=746
The basic idea is to have a way that people can play together, even if they don't all speak each others' language. I'm not aware of any MUDs that are specifically designed to do that.
It seems to me that the basics could be done easily enough. As soon as you connect the initial question could be (something like):
1. English
2. Deutsch
3. Espanol
4. Portuguele
5. Italiano
6. Français
After you make your select the next prompts would be in the selected language:
What is your name?
Was ist Ihr Name?
¿Cuál es su nombre?
Que é seu nome?
Che cosa è il vostro nome?
Quel est votre nom?
And so on ...
Commands
It would be straightforward enough for the command table to have a matching entry for each language (eg. "eat", "north", "get", "drop" and so on) so you could issue commands in your chosen language. Translating the commands would probably only take a day for each language. So far, so good.
Socials
Standard socials (like "smile", "wave") could be pre-translated. Thus when I type "smile", as the server iterates through everyone in the room it selects the appropriate message for the other player. Thus, you could communicate at a basic level by smiling and waving.
Room descriptions
This would be a lot of work, but you could conceivably store a description, per room, per language. The server would select the correct description for the player. However to get you started an alternative would be to have the room builders "tick the boxes" so basic room descriptions could be generated in any language.
eg.
Type: room [x] street [ ] field [ ]
Other: wide [ ] narrow [x]
Floor: grass [ ] carpet [ ] stone [x] moss [ ] dirt [ ]
Name: [Inn of Darkness]
Now, provided you had stock phrases for each check box, you could at least generate a description that would be adequate. eg.
You are in the Inn of Darkness. It is a narrow room. The floor is made of stone.
Usted está en el Inn of Darkness. Es un cuarto estrecho. El piso se hace de piedra.
Vous êtes dans l'Inn of Darkness. C'est une salle étroite. Le plancher est fait en pierre.
Sie sind im Inn of Darkness. Es ist ein schmaler Raum. Der Fußboden wird vom Stein gebildet.
You could then gradually get "fleshed out" descriptions by getting people (players) to submit a description in a language they speak. Once a "real" description was available in a particular language it would replace the automatically-generated one. You might encourage players to do this by providing experience points or other rewards for submitting suitable room translations.
The advantage of this is you could add a new language (eg. Swahili) in a day or so by simply providing translations for the stock phrases, even if the MUD had 30,000 rooms.
Talking to other players
This one had me stumped for a while, but now I see it. :) The problem is that chatting with other players would be difficult if you didn't speak their (RL) language, and automatic translations could be slow, expensive and unreliable.
However then it hit me - "this isn't a bug, it's a feature!" - as we programmers say. ;)
Thinking about it, the fantasy world is populated by different races, who presumably don't speak each others languages, why not make use of that? Thus we would assign a real-life language to each race you can choose, and a pre-requisite of choosing a (fantasy) race would be that you speak its assigned language.
eg.
- Human - speaks English
- Elf - speaks German
- Pixie - speaks Spanish
- Half-Elf - speaks Portugese
- Gith - speaks Italian
- Drow - speaks French
- Sea-Elf - speaks Swedish
- Gnome - speaks Greek
This actually makes everything more realistic - generally speaking, in the MUD, you will only be understood by your own race. This will tend to make the races do things together, which is what would really happen. Some people will speak multiple languages - fine - this can be indicated to the server so they would have a choice of races.
Adventuring with other races
However this doesn't mean you could only ever go on quests with people who speak your own language. Like the socials idea, various stock phrases could be implemented (like having a foreign language phrase book in your pocket) so you could communicate some ideas in any language. eg.
- Follow me
- Yes
- No
- Run away
- Join my group
- Let's go adventuring
- I must go now
- I am hurt
- Please cast a spell
- Can I help you?
So, I might type "followme" and a German speaker might see "Nick sagt folgt mir.".
(pardon the translations - I am using Google to do this - if I get them wrong let me know).
Conclusion
Technically, I think it could be done. It would be fun to MUD with people from all round the world, including other countries who may not necessarily speak our own languages.
Any comments?
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| BadBadtzMaru
(4 posts) Bio
|
Date
| Reply #1 on Thu 11 Sep 2003 03:19 PM (UTC) |
Message
| Back in the day, BBS systems like PCBoard had selectable languages for mutli-lingual use. (Often they were just used for silly 'languages' like valley-girl-ese...) I've thought about running a new-language-learning MUD - newbie areas use simple vocabulary, ?word looks up word in the dictionary, online help includes grammar notes, that sort of thing.
Don't underestimate the pain involved in moving text from the MUD code into string-tables. Just changing the 114 occurrences of "Huh?" in the Smaug code takes a while! Not even word-order is always the same, so many sprintf() statements will need to be redone. There are other headaches (like making score and other output line up in other languages where words are shorter or much longer, extending area-file syntax).
Still, it would be quite exciting to see it happen. I know that a fair percentage of MUDders don't speak English as a first language. Me, I just love the idea of German-speaking Elves rocking out to Rammstein... | Top |
|
Posted by
| Flannel
USA (1,230 posts) Bio
|
Date
| Reply #2 on Thu 11 Sep 2003 08:27 PM (UTC) |
Message
| Actually, Was looking for a German mud online (to play, and keep my german up) and ran across some Muds that were more teaching oriented, It was a while ago, I dont have the link, but do a search, there was a page with a whole lot of muds, classified as different things, and some of them were more 'teaching' type mud things. |
~Flannel
Messiah of Rose
Eternity's Trials.
Clones are people two. | Top |
|
Posted by
| cmonroy
Mexico (10 posts) Bio
|
Date
| Reply #3 on Sat 15 Dec 2007 01:55 AM (UTC) |
Message
| Sounds great. I was thinking about moving the words & phrases to a database and getting the prompt returned in the language spoken by the user. The code should use a number to the index of the database; when the interface has to display something, it sends a query to messages.db and retrieves the specific language field (depending on the profile v.g. 1=EN, 2=SP...) something like "select fieldN from messages where languageN=N"
Current databases can keep up with the expected demand, but maybe this could not be feasible for some other reasons I fail to see right now. And besides, as the previous post is more than 4 years ago, perhaps interest in the theme has died.
It would be great to know if somebody has done something or if you think it could be useful to do it now... | Top |
|
Posted by
| Nick Gammon
Australia (23,132 posts) Bio
Forum Administrator |
Date
| Reply #4 on Sat 15 Dec 2007 04:28 AM (UTC) |
Message
| My personal experience on this forum is that very few people respond to or comment on multi-lingual ideas.
I made it possible to localize MUSHclient a while ago, and suggested that if anyone had translated its message to another language they let me know, so far, nothing. |
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| Nick Gammon
Australia (23,132 posts) Bio
Forum Administrator |
Date
| Reply #5 on Sun 16 Dec 2007 05:11 AM (UTC) |
Message
| The other thing to consider is that simple substitutions are not always adequate.
It is OK to simply translate an entire fixed phrase, but stuff like "You give 20 <somethings> to <someone>" are going to run into problems.
For a start words like "the" in English will translate into "le" or "la" in French, depending on the noun following. Also, you will need to handle plurals, eg, "box / boxes", "dog / dogs".
It gets a lot more complex than that, of course. When I did the translation stuff for MUSHclient I basically passed a phrase to the translation function (implemented in Lua in this case) with variables, so that the translator might be able to pluralize more successfully, and even that probably didn't handle masculine/feminine gender properly.
|
- Nick Gammon
www.gammon.com.au, www.mushclient.com | Top |
|
Posted by
| David Haley
USA (3,881 posts) Bio
|
Date
| Reply #6 on Sun 16 Dec 2007 07:58 AM (UTC) |
Message
| Yeah. There are several posts on this forum that go into the complexity of supporting foreign languages, let alone multiple foreign languages. The short story is that it is a much harder problem than it appears to be at first glance. English has a relatively simple grammar and for the most part you only run into trouble with things like "a" vs. "an"; also, conjugation tends to be fairly simple (e.g., third person singular is typically conjugated merely by adding an 's'). But in French (or Spanish or Italian or German or ...) you need to look at gender and number much more carefully in several more places. |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | Top |
|
Posted by
| cmonroy
Mexico (10 posts) Bio
|
Date
| Reply #7 on Sun 16 Dec 2007 02:41 PM (UTC) |
Message
| Being a real newbie at muds, I might not have the slightest idea of what I'm talking about... I still have to examine the code and undestand how it works (not mentioning that I have to play the game for some time) before making an educated guess, BUT having experience in translations I could say that most gender arguments apply to the third person (the one you are talking about) and from objects used.
For instance, the phrase: "Thoric gives you his sword" when translated to spanish doesn't need to take into account Thoric's gender nor the gender of the object (sword if a female noun) to end like this: "Thoric te da su espada". The following description: "You take Thoric's sword" does indeed require the object's gender to form the correct spanish phrase: "Tomas la espada de Thoric".
I see two ways of solving this without extensive grammar checking, but the easiest way should include a listing of personnages, objects and actions, and then translate as much info as requiered.
The "sword" example used before should become "the sword" and be translated as "la espada"; the plural form should have another entry: "the swords", which would become "las espadas" (as the code already has a routine to make plurals by adding and extra "s" to the end of the word, it would probably need to be changed too); the action "gives you" should follow similar suit and end like "te da". Proper nouns remains the same, of course, but the point is that the scheme: <actor> <action> <object> should be easily translated into other romance languages without much fuss.
V.g.
Thoric <kills you> <with his sword>
Thoric <te mata> <con su espada>
| Top |
|
Posted by
| Isthiriel
(113 posts) Bio
|
Date
| Reply #8 on Sun 16 Dec 2007 08:27 PM (UTC) |
Message
| You really need to give each object methods that allow it to structure its own nounphrases. Some languages treat nouns differently if they are the object or the subject of a sentence, and all of the possible forms they can take (dative, genitive, accusative, nominative ...) and gender...
You also need a more general grammar structuring system that is given the verb, objects, subjects, prepositions and other modifiers and then turns it into a sentence. Since Latin, German and Japanese all put the verb at the end of the sentence, English can have it at either end (though the forms of the other phrases need to be changed to accomodate that) and I think most of the Scandinavian languages put the verb first. | Top |
|
Posted by
| cmonroy
Mexico (10 posts) Bio
|
Date
| Reply #9 on Sun 16 Dec 2007 09:18 PM (UTC) |
Message
| Yes, I recall that from AI classes and the matter hasn't been settled in 40+ years. IMHO the problem with automatic translators is that try to accomodate more syntactical rules than the average native speaker uses; that's why I'm proposing to use a statistical analysis. Besides, the universe of discourse is limited to the universe of the game and a usable interface wouldn't need to be 100% correct.
The original post made by Nick talked about a multilingual MUD in English and German (both from the Germanic branch) and also Spanish, Italian, Portugese and French (all from the Romanic branch). Differences DO occur, but a spanish speaking person can read easily some text written in italian or portugese and with some dificulty in french (comparable to an english speaker trying to read a german text) in which the word order is more or less the same. As the target language is more removed from the original branches (germanic and romanic) it should be harder to produce an inteligible output.
Case grammars (if strong in any language) are hard automate for the same reason an english phrase translated to russian and back to english changes its meaning (vg. The spirit is strong but the flesh is weak comes back as The Vodka is strong but the meat is rotten), but phrase tranliteration avoids completely this issue.
Another way to solve the multilingual issue could be using lexical trees in the form {WHO} {DOES WHAT} {TO WHOM/WHAT} {WHEN} You could even play with the order of the elements before sending them to the function in charge of displaying the text. To all purposes, you'll be creating a game grammar that the user needs to adopt if not a native english speaking (not too bad for a game in which you are bound to interact with other "races"). I visited a MUD called "Reinos de Leyenda" and even if their language use seems more like "spanglish" than real spanish, is usable... Too bad they removed the english part ;) | Top |
|
Posted by
| David Haley
USA (3,881 posts) Bio
|
Date
| Reply #10 on Sun 16 Dec 2007 09:55 PM (UTC) |
Message
| Right... the approach here should not at all be an attempt to machine translate the game, but rather to extend the sentence templates with the information needed to let the grammar module do its thing.
Consider:
%1 gives %2 the %3.
In English, this is easy: it will almost always work. Let's consider French:
%1 donne le %3 a %2.
Oops ... no good at all. For one, le might become la. Even worse, it might become l' in which case we need to remove the space. And the "a" doesn't work either: we might need to change it to "au" or "a la"...
My idea was to use annotations:
%1 donne %.da.3 %.prepto.2.
where:
da = direct article
prepto = preposition 'to' (well, 'a' in French)
and where %.da.3 means put a direct article in front of 3.
Now, the code that applies the substitutions has some extra work to do; it needs to create these articles and so forth. To do so, you need to pass in objects that have some form of semantic data. Usually this is as simple as number and gender. Other times it might include data on declensions of the noun (as in German or Latin, for instance).
For declensions, you would have extra annotations, namely the grammatical function of the word so that the grammar module picks the appropriate noun form.
I think this solution is a lot easier than trying to use an interlingua of sorts and then generate it into a full sentence. That's an theoretically unsolved problem AFAIK and so it'd be hopeless to try using it in a MUD. :-(
But, fortunately, in this solution, you don't need to worry about any of that, nor do you need to worry about verb placement or word order. You let the template take care of it; you just need to annotate the placeholders with grammatical information. (And of course every object must include grammatical information such as number.)
Incidentally, a system like this would make English work better, too: you occasionally see hacks having to do with a vs. an and related things (like dealing with plurals correctly) in SMAUG. If you had an annotation system like this and let the grammar module deal with it, all those hacks would go away. Granted, you would need to provide more information in the sentences... |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | Top |
|
Posted by
| Cameron
(2 posts) Bio
|
Date
| Reply #11 on Fri 14 Mar 2008 12:18 AM (UTC) |
Message
| I have an idea on how to fix this, coming from the Python programming language, although this could easily be implemented in Lua as well.
Instead of having a table of strings, like this:
tbl = {
"giveitem"={"give %1 to %2",
"bla %2 bi %1,
"di %1 bla %2"},
...
}
You could have a table of lambda functions:
tbl = {
"giveitem"={(lambda x,y:"give "+x+" to "+y),
(lambda x,y:"bla "+y+" to "+translate(x)),
(lambda x,y:"di "+translate(x)+" to "+y)},
...
}
Above examples in Python, of course, but you get the general picture.
Hope this helps,
Cheers guys! | Top |
|
Posted by
| Cameron
(2 posts) Bio
|
Date
| Reply #12 on Fri 14 Mar 2008 12:53 AM (UTC) |
Message
| Also, this may be a good idea - each race would have their own style of combat, special spells, etc, and the game could be made in such a way that it's difficult without speaking to/adventuring with other races.
Then, people can learn bits of other languages via a language tutor. A language tutor would be a player who knows bits of other languages, for example:
run away = bla bla
He could then charge a small amount for "teaching" this snippet of language to someone else. Teaching it would consist of placing the two pieces of text in the player's "phrase book", and the text will automatically get translated whenever he sees it.
No idea if this would work out or not, though... | Top |
|
Posted by
| David Haley
USA (3,881 posts) Bio
|
Date
| Reply #13 on Fri 14 Mar 2008 03:38 AM (UTC) |
Message
| Unfortunately the Lambda calculus idea doesn't address the core difficulty of multi-lingual (or even single-language for a sufficiently complex language) MUDs, which is handling grammar correctly. Although handling it programmatically does make things a little easier, you still have to solve the same problems in the end of the day, namely having the word change based on its grammatical function.
That said, doing it with lambda functions saves you from needing a potentially complex annotation scheme in the strings. It pushes the difficulty to the level of the lambda function, but now you have to deal with writing functions and doing the grammatical changes yourself in those functions (as opposed to having an annotation-parsing engine take care of it for you). I'm not really sure which is better. |
David Haley aka Ksilyan
Head Programmer,
Legends of the Darkstone
http://david.the-haleys.org | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
39,067 views.
It is now over 60 days since the last post. This thread is closed.
Refresh page
top