Translation of All Hope Abandon into Czech

Greetings to all fans of text games. I like the TADS3 system very much, but there are only a minimum of games available in Czech language (of the bigger ones I can only see the translation of Heidi or the original game Zakladna na Asteroidu by Tomas Blaha or my small Exoter game port from ZX Spectrum). Therefore I would like to translate some of the quality titles from the English original into Czech language. I am interested in the game All Hope Abandon by Eric Eve:

https://www.ifwiki.org/All_Hope_Abandon

for which the source codes are available:

https://ifarchive.org/if-archive/games/source/tads/AllHopeAbandonSource.zip

Before translating, I tried to translate the game in Linux using the t3make command, renaming the AllHope.t3m file to Makefile.t3m. I have checked and edited the paths to the extensions directory, but I see two errors that I can’t deal with:

extensions/DupDobj.t(106): error: expected integer, string, symbol, '[', or '(', but found ">"
Errors: 1
Warnings: 0
symbol_export Agrath.t -> obj/Agrath.t3s
Agrath.t(4): error: cannot open include file "AHA.h"
Errors: 1
Warnings: 0

Directive AHA.h is included in most of the source files.

Am I making a translation error somewhere? I tested t3make from the frobtads package and Windows Workbench running with Wine with the same result. Can one of the forum users please test the compilation or point me to another version of the sources?

3 Likes

this thread about TADS translation may be useful for you. someone actually has a czech version of TADS if I read the thread right. showed up in recommended posts below this one

2 Likes

Oh dear. Surely the name of the file AHA.h stands for All Hope Abandon. So, I don’t know TADS specifically, but it looks like this is a game-specific header file, that was inadvertently omitted from the source distribution?

If so, I guess you’d be best off contacting the author @Eric_Eve directly, in the hope that he still has it, or at least remembers what sort of things it contained?

Yes, there is an excellent Czech translation at www.tads.cz. This one is fully functional, but in order to start translating the game I need to compile it, and so far that has not been possible. It is possible that I am using outdated source code or an incompatible version of TADS, I have tried contacting the author of the game directly.

1 Like

Yes, AHA.h will be the header file, but I can’t find it anywhere. When I create a TADS game, I always include the directives at the beginning:

#charset "utf-8"
#include <adv3.h>

and for Czech language support:

#include <cs_cz.h>

However, I cannot find the AHA.h file anywhere, so thank you for the recommendation, I will send the message directly to the author, it is possible that I am using outdated source code or an incompatible version of TADS.

1 Like

AHA.h contains the following

// AHA.h

#define gVerbName (gAction.getOrigTokenList[1][1].toLower())
#define gTokens (gAction.getOrigTokenList)
#define gTokensInclude(tok) (gAction.getOrigTokenList.indexWhich( \
        {x: x[1].toLower == tok.toLower } ) )
//#define gSetSeen(obj) (gPlayerChar.setHasSeen(obj))
#define gPostureName (gPlayerChar.posture.participle)
#define gTextOnly (!libGlobal.hasGreekLetters)
//#define gTopicText (gTopic.getTopicText.toLower())
#define gTopicObject (gTopic.getBestMatch())
//#define iobjMsg(msg) (gIobj == self ? msg : nil)
#define iobjMsgAlt(msg, altMsg) (gIobj == self ? msg : altMsg)

#define __MULTIROUTE


//Unthing template 'vocabWords' 'name' @location? 'notHereMsg'?;

ConditionalConnector template ->connector "addMsg"? @cond?;
4 Likes

Thanks, Eric !

after a little alteration of the .t3m (adding -Fs extensions) and copying the missing contrib library SpellingCorrector.t from the IFArchive into extensions, a major error happens:

	symbol_export extensions/DupDobj.t -> obj/DupDobj.t3s
extensions/DupDobj.t(106): error: expected integer, string, symbol, '[', or '(', but found ">"
Errors:   1
Warnings: 0

said line is:

for(obj = firstObj(MultiName) ; obj <> nil; obj = nextObj(obj, MultiName))

and looking (actually, ctrl+F) for the suspect <> in TADS3’s changelog indeed I found

The compiler is now strict about disallowing the old TADS 2 "<>" (unequal-to) operator. This variation was not documented, but has up to now been allowed. 

introduced in version 3.0.15.1, 7/19/2007, that is, after the 2005 vintage source of AHA (AHA ! indeed :smiley: )

after correcting that lone & minor legacy code issue, the compilation… SUCCEEDS !!! aside that the resulting .t3 file is named ncDebugAction.t3, the t3m file lacking an appropriate -o, but is a very minor issue, so I simply renamed it into:

-rw-r--r-- 1 pigi pigi 2015225 4 nov 09.02 aha24.t3

and feeding it to both frob and QTads, the opening scene, with that prolix professor looks working as in the original, of 2005 vintage.

so, I think that with this reporting on how to obtain a working english compilation, Krouziciorel can start his translation :slight_smile:

HTH and
Best regards from Italy,
dott. Piergiorgio.

2 Likes

Dear Eric,
many thanks for your quick answer. I added the content of the AHA.h file to the project (it was still necessary to add AHA.tl, which I created similarly to autosave.tl) and inserted the appropriate directive in Makefile.t3m. There is still a need one small modification of the DupDobj.t file according to Piergiorgio d’errico’s instructions and I finally managed to run the game. Great, thanks to your quick help I can start the translation now.

2 Likes

Dear Piergiorgio, many thanks for your quick and perfect answer. I modified the DupDobj.t file by replacing the deprecated <> syntax with != and adding the line “-o AHA.t3” to the Makefile.t3m file, now I get an executable file with a fully functional game in the project directory. It’s great that there are people on the forum who are so quick and happy to help, I’m looking forward to making this great game available to Czech users. Modified and working source codes are attached.
AHA_src.zip (397.9 KB)

2 Likes

Thank you so much for digging that out, Eric.

Would you mind if the version of the source archive on the IF Archive were replaced with one including this AHA.h file (and possibly the other tweaks noted in this thread, if forward-compatible)?

2 Likes

Concur with JTN. Eric, Let’s update the source…

Best regards from Italy,
dott. Piergiorgio.

I’ve now just uploaded a new version of the source to the IF Archive, as well as a corrected version of DupDobj.t. These may take a day or two to be processed by the Archive.

4 Likes

It’s interesting this topic came up… All Hope Abandon was one of the very next games I wanted to play…

Yes, there are a lot of great games for TADS like AHA (by the way, the interview with the demoness Agrath is great), it’s just that with text games it’s very important to play them in native language in my opinion. There is no need to create new games when there are very good ones waiting to be translated.

1 Like

If I knew any foreign languages well enough, I would probably be out there translating good text games as well :slight_smile:

He, he, I know a little Russian, a little German and a little English, that’s enough. I use ChatGPT for translation (it gives me better results than Deepl or Google translate) and I always correct the results a bit, but I am very satisfied. Only the free version has a few limitations, but it’s not something you can’t live without and I think I might have the translation done by the end of November.

1 Like