TADS3 in french language

Hello,

I am a french user of TADS3. I am writing a game for my children so I would like my children can use french word to play (for example, I would like they can use REGARDER instead of LOOK, PRENDRE instead of TAKE).

How can I do ? Should have define all action for each object ? Can I modify a library file ?

Is somebody start a game in french and can advise me ?

TADS3 is very well prepared to be translated into foreign language, but it’s a huge task to fully translate it. If you would like to give it a try, look into the folders, where TADS is installed. You should find lib folder somewhere, in which adv3 subfolder is located. In this subfolder is Adv3 library, which implements world model of a game. Language dependent parts of Adv3 library are isolated in the en_us subfolder. Every translator should probably start with copying whole en_us into lets say fr_fr (and rename en_us.t file into fr_fr.t and so on). Then start modifying language parts of the library. If you want to translate command grammar, look into en_us.t around line 9240. To use another language in your game you should modify Makefile for your game (-DLANGUAGE=fr_fr but Workbench probably have some clicky way to doing the same) and include correct header files at the start of every source file (#include <fr_fr.h>).

Beyond translating the input command strings and the library messages, you’ll want to look at the way parameter substitutions are handled. The library messages make very extensive use of this type of thing. For instance, here’s a line from msg_neu.t:

cannotPutOnSelfMsg = '{You/he} {can’t} put {the dobj/him} on {itself}. ’

In English, the definite article ‘the’ has only one form, but in some languages it has two or more forms, which depend on the gender of the noun. Thus you would need to write new code for {the dobj/him} that would allow it to check the gender of the printed name of the direct object of the command. You would need to modify the Thing class to add a default gender (in case you forget to specify it for some object) and then change the gender assignment on objects that require a different one.

I don’t speak French, so I don’t know whether this particular case applies to French. Really, I’m just mentioning that all of these parameter substitutions will need to be dealt with. If you’re only planning to write one game, and you know it will be in second person, present tense, you can eliminate the first two of the four substitutions in the example above; you’ll only have to deal with the last two. But if you think you may want to write another game later (or make your library files available to other authors) you’d be better off designing a French parameter substitution module that handles everything needed.

TADS 3 translation is really hard work, esp. for highly flected languages (so all but English). There is a well working German library G-TADS that solved some hard problems such as gender issues in adjectives or nouns. You may get some hints from the translator Mikawa or from the G-TADS forum moderated by him.

Thank you for all your answers.

I have started by translating action verb, and I do a test with my children. It is easier for them, even if the grammar is not very good.

I will try to translate gradually more of the library.

Some people on ifwiki.org/index.php/FrITES but it’s abandonned now.

Maybe I still have the archive of what was done?