http://GameProgrammer.Com

Programming

GP Mailing List
     Thread Index
     Date Index

ATXGPSIG List
     Thread Index
     Date Index

Google
>

Home

Wise2Food



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [multi-language support in games] (Was.. oh my, oh dear, etc.)



Well, from I what heard for multilingual Translators they usually use indirect
translation, which is :

Suppose u have something written in language A and need it in language B
U also have Language C of your choice where C is carefully choice and have a certain
number of properties like regularity and other linguistic properties I don't know.
Then u make the translation this way

A-> C -> B

because is easier than directly A->B (not to mention that the needed translators are
decrease from N*N to N where N is the number of languages).
I consider that is a huge project anyways and u need to know a lot about languages.

For  the game u are talking about I would consider to use command style interface
where u can have a table of translated commands(actions) and objects(Yes it is more
"indian" like speaking but much much much easier to do).

Then for this type of commands/messages, I would resolve it by using translation
tables for actions and objects or for words. The dynamic messages can be coded as an
string of references of words, actions or objects with some sort of escape codes for
dynamic data with or without formating (printf style or a like but not variable
parameters)

Obviously this limits the chatting posibilities, but u can still interact between
players and comunicate

Hope this helps

Fernando


laguna@fortress.ourmag.com wrote:

> Hi DoomAddict,
>
> Er.. *scratches head* Hmm... bear in mind that this is one of those
> "continous work" ideas which seems to populate the minds of people. :)
>
> I'm not in search of "string replacement" code, which sets aside space for
> different copies of the same message in different languages, at least not
> in the way MSVC is doing it. ^_^;
>
> Okay, let's assume there there is no given platform you will be on. (I'm
> programming on Linux systems and want the code to be non-SDK specific,
> that means DX7(etc) is out.) So the code can be in a game which is running
> on a Macintosh, a Linux box on a Mac, a PC, a super computer, WindowsXK
> running on a box, BeOS, BSD, etc etc.
>
> The only assumption I can make regarding the environment the game will be
> operating or interacting with a player in is the following:
>
> - The user can enter commands to the game interface in language X.
> - The program can display information (with or without formatting) to
>   the player in language X.
>
> So the game could be running over the internet with the users using a
> custom client, or it can be run on the user's workstation directly using
> the game program itself as the client.
>
> So the game will not be able to tell what language the host OS is using
> and in any case, it should be able to communicate in the language of
> choice with the user.
>
> My original post asked about a modular system where by a game can be made
> multi-lingual friendly. Your suggestion of using the MSVC's string table
> will work for static messages, but for dynamic messages and content, it
> becomes more complex. Not to mention it would lock my application into the
> MSVC platform; something I do not want to do. :)
>
> In hindsight, I'm getting the impression my question was, once again, too
> vague. :p But guess I'm learning. ;)
>
> Let's say that the system I want should not contain multiple "re-writes"
> of the same message to achieve the "multi-lingual" function and should be
> user selectable to determine the language of choice for the interface.
>
> Let's say that the program's messages and text are stored in a generalized
> language which can be parsed into a language of choice and then displayed
> accordingly. (Yes, I know this kinda goes beyond what my original question
> was asking for, but I'm kinda brainstorming outloud right now. :)
>
> So essentially, you can have a MUD or other online game which stores text
> and all essential data in a non-language specific format(XML?) which is
> then parsed out through a language filter to a specific target language
> with the general meaning/intent in the message being communicated.
>
> So you have a player in Japan who is playing on this MUD and his/her
> terminal is Japanese only, so all commands are entered into the system in
> Japanese, but he/she wants to buy that BIG SWORD OF SLAUGHTERING from
> someone else in the states who doesn't understand a word of Japanese. They
> can essentially communicate with each other in their own language,
> provided the... I'm talking about a translater now, aren't I? :| Ack.
>
> ^_^;; Okies.. look's that that pot is going back onto the backburned...
> too big to handle currently. :p
>
> Thanks for pointing out the MSVC code, DoomAddict. :) Though in my
> particular case, it will most likely not help as much as it would for a
> more MS oriented programmer. :)
>
> Wing. ( Hmm.. still, would be cool to do language to language
>         translations on a real-time mud.... )
>
> On Wed, 12 Apr 2000 DooMaDDiCT@aol.com wrote:
>
> > Ok, I think this solution is compiler specific but oh well. On MSVC, you have
> > a resource called a string table. In it you can have different sections that
> > correspond to different languages. I have seen this done in almost all of the
> > DX7(maybe even 6) SDK samples, with English and Japanese as the other
> > language. The way that works is that windows checks it's language flag, and
> > uses the appropriate section from the string table. Look this up on the MSDN
> > cd's or online as I'm not fully sure how to use it and stuff, but hey, it's a
> > start.
> >
> > Hope it helps,
> > DoomAddict
> >
> >
> > In a message dated 04/12/2000 6:18:14 PM Eastern Daylight Time,
> > laguna@fortress.ourmag.com writes:
> >
> > > Subj:  Re: [game question] RE: Oh dear, oh dear......
> > >  Date:    04/12/2000 6:18:14 PM Eastern Daylight Time
> > >  From:    laguna@fortress.ourmag.com
> > >  Sender:  gameprogrammer-owner@gameprogrammer.com
> > >  Reply-to:    <A HREF="mailto:gameprogrammer@gameprogrammer.com">gameprogram
> > mer@gameprogrammer.com</A>
> > >  To:  gameprogrammer@gameprogrammer.com
> > >
> > >  Hi Jeff,
> > >
> > >  Hmm... that would be the easy way, but it would be a bit unsuitable for
> > >  what I had in mind. ^_^; I was thinking more along the lines of
> > >  international with 2-4 byte alphabets to accomodate pictograph languages
> > >  like Chinese, Japanese, Korean, etc.. in addition to alphabet based
> > >  languages like English, French, Spanish, etc.
> > >
> > >  The current system that I think game console programs use is to create an
> > >  alphabet of 2-byte addresses which maps to a table which contains the
> > >  bitmaps for the letter/number/kanji/picture/etc.
> > >
> > >  When I was thinking modular, I kinda meant something along those lines,
> > >  but instead of a vector pointing to a simple bitmap, I was thinking of a
> > >  vector which points to an arbitrarily sized object which contains
> > >  information such as:
> > >
> > >  - type (bitmap, vector art, composite of other characters, etc)
> > >  - dimensions
> > >  - data
> > >  - [optional lexical/dictionary/definition tags]
> > >
> > >  My line of thought was that "words" normally just meaningless strings of
> > >  text in the english language(for example), would be then groupable into
> > >  objects which are comprised of letters, which as a whole has an intended
> > >  meaning, which in turn can be re-parsed in another language of choice
> > >  using that language's general ruleset.
> > >
> > >  So you would write the dialogue for the game once and have it parsed out
> > >  in the dialect/language(with slang/accent/etc) of your choice.
> > >
> > >  So saying "My name is Jack"/"I'm Jack" could likewise be parsed into:
> > >
> > >  - Japanese parse:
> > >  - Form 1:
> > >  - "Boku no namae wa Jack desu" (male)
> > >  - "Watashi no namae wa Jill desu" (female)
> > >  - Form 2:
> > >  - "Jack desu"
> > >
> > >  (Heh, sorry, only know minor translations of a small set of phrases, but
> > >  you get the idea.)
> > >
> > >  Thinking more like "intended" meaning parsing as opposed to "literal
> > >  word-for-word meaning parsing".
> > >
> > >  Wing. ^_^;
> > >
> > >  On Wed, 12 Apr 2000, jeff roth wrote:
> > >
> > >  > I don't think this is the best answer but since no one else has
> > answered...
> > >
> > >  > For a simple solution I would make a text file for each language,
> > possibly:
> > >
> > >  >
> > >  > english.txt
> > >  > string1: Hello
> > >  > string2: Push
> > >  > string3: Exit
> > >  > ...
> > >  >
> > >  > french.txt
> > >  > string1: Bonjour
> > >  > string2: Poussez
> > >  > string3: Sortir
> > >  >
> > >  > Then you could parse the file either at the beginning of your program
> > or,
> > > if
> > >  > you have a lot of strings, at intervals (possibly every level for a
> > game).
> > >  >
> > >  >
> > >  > --------------------------------------
> > >  > Game related question:
> > >  >
> > >  > For user interfaces, is there a simple.. more modular way which can be
> > >  > used so that a game can make use of multiple languages and easier
> > >  > translation between one country and another?  (Guess it's really more UI
> > >  > question than game question, but still pertinent. ^_^;;)
> > >  >
> > >  > Wing. ( Anime fan of Macross7, All El Hazzard Series, etc.. ^_^;; )
> > >  >
> > >  > =================================================================
> > >  > The GameProgrammer.Com mailing list is for the open discussion
> > >  > of any topic related to the art, science, and business of
> > >  > programming games. This list is especially tolerant of beginners.
> > >  > We were all beginners once
> > >  >
> > >  > To SUBSCRIBE or UNSUBSCRIBE please visit:
> > >  > http://gameprogrammer.com/mailinglist.html
> > >  >
> > >  > ______________________________________________________
> > >  > Get Your Private, Free Email at http://www.hotmail.com
> > >  >
> > >  > =================================================================
> > >  > The GameProgrammer.Com mailing list is for the open discussion
> > >  > of any topic related to the art, science, and business of
> > >  > programming games. This list is especially tolerant of beginners.
> > >  > We were all beginners once
> > >  >
> > >  > To SUBSCRIBE or UNSUBSCRIBE please visit:
> > >  > http://gameprogrammer.com/mailinglist.html
> > >  >
> > >
> > >  =================================================================
> > >  The GameProgrammer.Com mailing list is for the open discussion
> > >  of any topic related to the art, science, and business of
> > >  programming games. This list is especially tolerant of beginners.
> > >  We were all beginners once
> > >
> > >  To SUBSCRIBE or UNSUBSCRIBE please visit:
> > >  http://gameprogrammer.com/mailinglist.html
> > >
> > >
> > >  ----------------------- Headers --------------------------------
> > >  Return-Path: <gameprogrammer-owner@gameprogrammer.com>
> > >  Received: from  rly-zc02.mx.aol.com (rly-zc02.mail.aol.com [172.31.33.2])
> > by
> > > air-zc05.mail.aol.com (v70.20) with ESMTP; Wed, 12 Apr 2000 18:18:14 -0400
> > >  Received: from  mail11.jump.net (mail11.jump.net [207.8.124.20]) by
> > rly-zc02.
> > > mx.aol.com (v71.10) with ESMTP; Wed, 12 Apr 2000 18:17:31 -0400
> > >  Received: (from majordomo@localhost)
> > >   by mail11.jump.net (8.9.0/) id RAA20591
> > >   for gameprogrammer-out; Wed, 12 Apr 2000 17:16:01 -0500 (CDT)
> > >  Received: from mail.jump.net ([207.8.124.18])
> > >   by mail11.jump.net (8.9.0/) with ESMTP id RAA20582
> > >   for <gameprogrammer@majordomo.jump.net>; Wed, 12 Apr 2000 17:15:57 -0500 (
> > > CDT)
> > >  From: laguna@fortress.ourmag.com
> > >  Received: (from bobp@localhost)
> > >   by mail.jump.net (8.9.1/) id RAA28932
> > >   for gameprogrammer@jump.net; Wed, 12 Apr 2000 17:15:53 -0500 (CDT)
> > >  Received: from fortress.ourmag.com (adsl-63-193-155-132.dsl.lsan03.pacbell.
> > > net [63.193.155.132])
> > >   by mail.jump.net (8.9.1/) with ESMTP id RAA28923
> > >   for <gameprogrammer@gameprogrammer.com>; Wed, 12 Apr 2000 17:15:52 -0500 (
> > > CDT)
> > >  Received: from fortress.ourmag.com (adsl-63-193-155-132.dsl.lsan03.pacbell.
> > > net [63.193.155.132])
> > >   by mail.jump.net (8.9.1/) with ESMTP id RAA28923
> > >   for <gameprogrammer@gameprogrammer.com>; Wed, 12 Apr 2000 17:15:52 -0500 (
> > > CDT)
> > >  Received: from localhost (laguna@localhost)
> > >   by fortress.ourmag.com (8.9.3/8.9.3) with ESMTP id PAA31432
> > >   for <gameprogrammer@gameprogrammer.com>; Wed, 12 Apr 2000 15:15:07 -0700
> > >  Date: Wed, 12 Apr 2000 15:15:07 -0700 (PDT)
> > >  To: gameprogrammer@gameprogrammer.com
> > >  Subject: Re: [game question] RE: Oh dear, oh dear......
> > >  In-Reply-To: <20000412144036.78832.qmail@hotmail.com>
> > >  Message-ID: <Pine.LNX.4.10.10004121500190.31409-100000@fortress.ourmag.com>
> > >  MIME-Version: 1.0
> > >  Content-Type: TEXT/PLAIN; charset=US-ASCII
> > >  Sender: gameprogrammer-owner@gameprogrammer.com
> > >  Precedence: bulk
> > >  Reply-To: gameprogrammer@gameprogrammer.com
> > >
> > >
> > =================================================================
> > The GameProgrammer.Com mailing list is for the open discussion
> > of any topic related to the art, science, and business of
> > programming games. This list is especially tolerant of beginners.
> > We were all beginners once
> >
> > To SUBSCRIBE or UNSUBSCRIBE please visit:
> > http://gameprogrammer.com/mailinglist.html
> >
>
> =================================================================
> The GameProgrammer.Com mailing list is for the open discussion
> of any topic related to the art, science, and business of
> programming games. This list is especially tolerant of beginners.
> We were all beginners once
>
> To SUBSCRIBE or UNSUBSCRIBE please visit:
> http://gameprogrammer.com/mailinglist.html

=================================================================
The GameProgrammer.Com mailing list is for the open discussion
of any topic related to the art, science, and business of
programming games. This list is especially tolerant of beginners.
We were all beginners once

To SUBSCRIBE or UNSUBSCRIBE please visit:
http://gameprogrammer.com/mailinglist.html