Turkish IF?

hello,

i love interactive fiction and i want to write some, but i’m from Turkey and i prefer to write it in Turkish. does anyone know if the IF codes available allow for the use of special characters? like in Turkish we have letters ş, ğ, ı, ü, ç, ö… another question related is that are there any non-English IF works in the IF database, even if not Turkish?

Hello!

Yes, and you can search by language. For instance, to exclude all the English games,

ifdb.tads.org/search?searchfor=- … %3AEnglish

What kind of IF are you interested in writing? If you’re thinking of parser IF, the problem is not as much the special characters but getting the parser to understand Turkish. I don’t know if there’s a Turkish library available for any system. If you’re interested in CYOA (Twine etc.) then it’s likely that the special characters work without problems regardless of what system you choose.

In the non-English games I’ve played, the (Inform) parser doesn’t always recognise accented/special characters, but it always recognises a simplification. á é ó becomes a e o, ç becomes c, ã becomes a.

I know it doesn’t look pretty, but is it possible to accept ş as s, ğ as g, ı as i, ü as u, ö as o? As far as player input is concerned, of course.

In terms of getting the characters displayed, I shouldn’t imagine there are issues, but I wouldn’t know for certain. There’s quite a difference between a simple accent (like the umlaut, the tilde, the accents) and letters like ç and ş.

For Inform 7, Andrew Plotkin has an extension which adds Unicode support to the parser, though making Unicode synonyms for objects and such is still quite difficult (and requires dipping into I6).

An easier way is, as Peter mentioned, have the game replace “special” characters before parsing: if I remember correctly Turkish doesn’t use the letter X, right? So you could make your game replace (say) “ş” with “sx” before parsing, then when the player types “taş” the game can work with it as “tasx”.

Inform and Tads support Unicode characters in strings - that means you can use letters like ş, ğ, ı, ü, ç, ö… in descriptions of objects (examine) or rooms (look). To use Turkish names (with special letters) for objects you will need to set the name in a string,

e.g. for Inform 7 (Turkish translation by a machine translater):

Garden is a room. The printed name is "Bahçe". "Bahçe parlak güneş ışığında parlıyor."

For Tads 3:

Garden: OutdoorRoom 'Bahçe' "Bahçe parlak güneş ışığında parlıyor." ;

You can write Turkish names in the source “Bahce is an outdoor room…” if you want but it may cause errors if you use special letters e.g. the special letters are not printed in the game.

You will need to provide Turkish commands for players to type. Try different interpreters (for Inform 7, e.g. Gargoyle, Quixe) to find one which works - you can recommend it. The interpreter Qtads accepts Unicode input (special letters) for tads games although old forum messages say t3run and tads workbench don’t work with Unicode (you can use t3make - it comes with tads).

You will also want to replace the parser messages with messages translated into Turkish.

I’d be happy to help anyone translating the Hugo library (and Roodylib) to another language, too.

But Hugo can’t display most of those characters, right?

Ah, yeah, you’re right. Looks like Hugo can’t do several of those letters.