ADRIFT Forum


The place to discuss the ADRIFT Interactive Fiction toolkit

Change language output?

This forum is the place to learn about and discuss ADRIFT 5. Feel free to mention any bugs you find here, but please also add these to the Bugs & Enhancements list.

Please also refer to the ADRIFT 5 Wiki for more information.

Change language output?

Postby Tubbadù » Sat Mar 17, 2018 5:28 pm

Hi everyone! I really like playing text adventures (is this their name? in Italian it's "avventura testuale"), and i also tried to build one by myself in c++ language, but it's a bit long, so I heard about adrift and, here I am! i installed adrift, but i'd like to change the output language of the game in italian ("You see no such thing" should be in italian). i went in file>settings>dictionary language and set it to 'Italian'; i read this guide but
a) in the list of downloadable dictionary there isn't the italian one
b) even if there was, if i click on it download doesn't start...
how can I do to change the language? :nerves:
thanks to everyone who will try to help me!

PS: I'm sorry for my English :blush:
Tubbadù
 
Posts: 2
Joined: Sat Mar 17, 2018 4:57 pm

Re: Change language output?

Postby ElliotM » Sun Mar 18, 2018 1:04 am

Welcome!

The Dictionary option is only for spell checking the text of the adventure you are writing in the Developer, it won't change the standard library which is written in English.

I don't know if anyone has done localization for the standard library to make it output a different language before. It can be done, but there are a lot of things in the standard library that output text and all of them would need to be changed from English to the new language.
ElliotM
 
Posts: 1227
Joined: Tue Apr 17, 2007 8:04 pm
Location: The Midwest in the USA
Points: 13

Re: Change language output?

Postby P/o Prune » Sun Mar 18, 2018 5:10 pm

I seem to remember that there was an Italian guy some years back who worked on a conversion of Adrift into Italian.
I can't remember, though, how far he got.
D-Day V.5 in progress 86Kb (On backburner)
Anno 1700 First beta test in progress.
User avatar
P/o Prune
Site Admin
 
Posts: 4146
Joined: Mon Jun 24, 2002 8:18 am
Location: Denmark
Points: 23

Re: Change language output?

Postby Tubbadù » Fri Mar 23, 2018 5:34 pm

Ok, thank you!
Tubbadù
 
Posts: 2
Joined: Sat Mar 17, 2018 4:57 pm

Re: Change language output?

Postby Mooswitz » Sat Mar 31, 2018 2:47 pm

Hi all!

I have a similat problem like Tubbadù...

I want to develop an IF in german. So all text out- and input must be exclusively in german. I don't want my players to translate english pieces into german...
So what I want to know is: Can I change the localization of the output respectively to german? And if yes - How do i do that?

I have already downloaded the german dictionary v2 - BUT i seems not to change anything at all... I have set the path properly, then rebuilded the game but I still don't get any german utput for events...

Example: Someone is inside the house: "Mutti is here" -> That's what the game says - BUT it should be "Mutti ist hier" - how can I change those text-bits?

Regards, Mooswitz
Mooswitz
 
Posts: 2
Joined: Sat Mar 31, 2018 2:26 pm
Location: Chemnitz, Germany

Re: Change language output?

Postby saabie » Sun Apr 01, 2018 12:48 pm

You would need to translate every task in the standard library into German, both the commands and all of the text in its output text box and all of its restrictions. A small number of text overrides would be needed as well for the remaining translations.
It would not be difficult but it would take quite a long time to do.
Then you could export the altered standard library as a new German standard library that anybody could use to make a game in German.
saabie
 
Posts: 886
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 10

Re: Change language output?

Postby Mooswitz » Sun Apr 01, 2018 1:10 pm

saabie wrote:You would need to translate every task in the standard library into German, both the commands and all of the text in its output text box and all of its restrictions. A small number of text overrides would be needed as well for the remaining translations.
It would not be difficult but it would take quite a long time to do.
Then you could export the altered standard library as a new German standard library that anybody could use to make a game in German.


Thanks saabie for your reply. I have already found it out by myself - but did'nt find the Checkbox for showing the Items in the StandardLibrary... Now I can edit the things. Problem is, that it takes a huge amount of time, like you said. I could make a git-repo for it to work with several people on it. Do you know, if I am allowed to do that? :anyone:

I think opening ADRIFT to several languages is a nice Idea for people of different nationalities to write games in their own languages.

- Mooswitz
Mooswitz
 
Posts: 2
Joined: Sat Mar 31, 2018 2:26 pm
Location: Chemnitz, Germany

Re: Change language output?

Postby ElliotM » Sun Apr 01, 2018 3:27 pm

Using git-repo would be an excellent idea but the standard library is still a single file. What you might do instead of working on one large standard library is break it apart into related functionality. I know some German as well so I would be able to help with testing.

Rewriting the standard library is a lot of work but no more than normal localization. Finding where things are located can be challenging but there is an alternative to doing all of that work in the Developer itself - export the library as a module and you can open it in a text editor to search for text, replace it, and then reimport it into the Developer.
ElliotM
 
Posts: 1227
Joined: Tue Apr 17, 2007 8:04 pm
Location: The Midwest in the USA
Points: 13

Re: Change language output?

Postby saabie » Mon Apr 02, 2018 12:40 am

You don't need to export it, just find the StandardLibrary.amf file on your system.
It is in C:\Program Files\Common Files\ADRIFT\Libraries on my system, and can also be found inside the latest ADRIFT5.zip update file.
Make a copy of it and call the copy Standardbibliothek.amf
It is an XML file that can be edited in any text editor, but you need to be careful not to change the tag names inside the angle brackets.
To test the changes, go to the "Libraries" tab of the developer "Settings", click the "Add new library" button and open Standardbibliothek.amf
Make sure that it is the only library with a tick and start a new game project.
saabie
 
Posts: 886
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 10

Re: Change language output?

Postby ElliotM » Mon Apr 02, 2018 2:39 am

I found that file later. From the Developer you can see the file paths for the libraries from the same place you can add new libraries.

I know a bit of Python, so I spent some time playing around with extracting text from the StandardLibrary.AMF. It should be possible to extract the text, give it to a translator, and then find a way to put it back in using a script rather than manually editing the file or doing it from the developer where you might risk missing something. While I mainly speak English and know some German, I'd be happy to help answer questions to anyone wanting to give localization a shot here regardless of the language in question.

Here are the most important text bits I extracted, to give you all a rough idea of how much there is to translate.

Commands: The part that would need translating is after the dash. One task can have different variations of its command and so tasks can have more than one Command tag. I don't know if references like %object% can be translated and still work. Its good to cover as many bases as possible, so you may have to add more Command tags depending on how your language of choice phrases things. A Bilingual game would add commands instead of replacing them - just make sure that the language you want showing up in the transcript has its command tags listed first.
adrift Code: Select all
 
Command - put %objects% on{to} {{the} top of} %object2%
Command - lie {up/down}
Command - lay {up/down}
Command - drink %object%
Command - say %text%
Command - stand {up/down}
Command - [stand/get/move/go] out {of} %object%
Command - exit %object%
Command - leave %object%
Command - [give/offer] %objects% to %character%
Command - [give/offer] %character% %objects%
Command - [get/take/pick up/remove] %objects% from %object2%
Command - pick %objects% up from %object2%
Command - open %object%
Command - [examine/exam/ex/x/look {at/in{side}/under}] %object%
Command - stand {up/down} [in/on] %object%
Command - get on %object%
Command - lie {up/down}
Command - lay {up/down}
Command - [push/shove/press] %object%
Command - {[go/walk/move/run] {to {the}}} %direction%
Command - put %objects% on{to} {{the} top of} %object2%
Command - put %objects% in{side/to} %object2%
Command - ask about %text%
Command - [examine/exam/ex/x/look {at}] %character%
Command - [stand/get/move] [out/off] {of} %object%
Command - exit %object%
Command - leave %object%
Command - # Unlock %object1% with %object2%
Command - sit {up/down} [in/on] %object%
Command - get on %object%
Command - [move/go/get] [in{to/side}] %object%
Command - enter %object%
Command - [stand/get/move] up {on {the} floor/ground}
Command - exit
Command - get off
Command - leave
Command - sit {up/down}
Command - ask %character% about %text%
Command - [drop/put down] %objects%
Command - put %objects% down
Command - say %text% to %character%
Command - unlock %object%
Command - stand {up/down}
Command - [eat] %object%
Command - [inventory/inv/i]
Command - put %objects% in{side/to} %object2%
Command - [look/l]{ room}
Command - [x/examine] room
Command - [drop/put down] %objects%
Command - put %objects% down
Command - read %object%
Command - [wear/put on/don] %objects%
Command - put %objects% on
Command - sit {up/down}
Command - [get/take/pick up] %objects%
Command - pick %objects% up
Command - [lie/lay] {up/down} [in/on] %object%
Command - get on %object%
Command - close %object%
Command - tell %character% about %text%
Command - [remove/take off] %objects%
Command - take %objects% off
Command - unlock %object1% with %object2%
Command - [pull/tug] {on} %object%
Command - [climb/clamber] {up/down/on} %object%
Command - [move/walk/go] [up/down/on] %object%
Command - open %object1% [with/using] %object2%
Command - say %text%
Command - [attack/hit/kick/kill] %character%
Command - [attack/hit/kick/kill] %character% [with/using] %object%
Command - ask about %text%
Command - # Lock %object1% [with/using] %object2%
Command - lock %object1% [with/using] %object2%
Command - lock %object%
Command - {[go/walk/move/run] {to {the}}} %direction%
Command - {[go/walk/move/run] {to {the}}} %direction%
Command - blow %object%
Command - burn %object%
Command - buy %object%
Command - cut %object%
Command - jump
Command - kiss %character%
Command - listen *
Command - [yes/no]
Command - rub %object%
Command - score
Command - search %object%
Command - set %object% to %text%
Command - show %object% to %character%
Command - sing
Command - whistle
Command - sleep
Command - smell %object%
Command - squeeze %object%
Command - [switch/turn/flick] %object% on
Command - [switch/turn/flick] on %object%
Command - [switch/turn/flick] %object% off
Command - [switch/turn/flick] off %object%
Command - [switch/turn/flick] %object%
Command - [switch/turn/flick] %object%
Command - think
Command - touch %object%
Command - [turn/flip] %object% {over/upside{-/ }down}
Command - {a}wake{n} {up}
Command - wave
Command - wave %object% {about/around} {in the air}


Keys: These can be left alone, though unlike references I think these could translated as long as you successfully found and replaced each of them perfectly. I would do this with a script or a Find/Replace that took each case one at a time. If the Author understands English they could leaves these alone. Some of these probably shouldn't be changed. Keys for Properties could get messy to change for instance but is possible with direct file editing or via scripting. Things the Author makes will have keys reflecting their chosen language however.
adrift Code: Select all
Key - ROOT
Key - Locations
Key - Objects
Key - Tasks
Key - Events
Key - Characters
Key - Groups
Key - Variables
Key - Text Overrides
Key - Hints
Key - Properties
Key - Synonyms
Key - User Functions
Key - LibraryFolder
Key - Folder2
Key - Folder3
Key - Folder4
Key - Folder5
Key - Folder6
Key - Folder7
Key - Folder8
Key - Folder9
Key - Folder11
Key - Folder12
Key - Folder14
Key - Folder1
Key - ListDescription
Key - InsideWhat
Key - Surface
Key - Openable
Key - CharacterAtLocation
Key - Capacity
Key - OnWhat
Key - Wearable
Key - CharOnWho
Key - CharOnWhat
Key - ListDescriptionDynamic
Key - StaticLocation
Key - Known
Key - StaticOrDynamic
Key - LockKey
Key - CharHereDesc
Key - ExplicitlyExclude
Key - PartOfWhat
Key - Readable
Key - Drinkable
Key - Edible
Key - InLocation
Key - ExplicitlyList
Key - CharacterLocation
Key - Lockable
Key - PartOfWho
Key - CharInsideWhat
Key - CharactersCanGoInOb
Key - HeldByWho
Key - CharExits
Key - Lieable
Key - Gender
Key - OpenStatus
Key - AtLocationGroup
Key - SurfaceHold
Key - CharEnters
Key - WornByWho
Key - AtLocation
Key - CharacterPosition
Key - Sittable
Key - Container
Key - Standable
Key - ReadText
Key - LockStatus
Key - DynamicLocation
Key - ShowEnterExit
Key - Weight
Key - Size
Key - MaxBulk
Key - MaxWeight
Key - ShortLocationDescription
Key - LongLocationDescription
Key - CharacterProperName
Key - CanBeTurnOffAndOn
Key - PutObjectsOnOthers
Key - LieOnFloor
Key - TakeObjectFromLocation
Key - None
Key - DrinkObject
Key - Say
Key - Stand
Key - MoveOutObject
Key - GiveObjectToChar
Key - TakeObjectsFromOthers
Key - OpenObjects
Key - ExamineObjects
Key - StandOnObject
Key - Lie
Key - PushObject
Key - PlayerMovement
Key - RemoveBeforePut
Key - Ask
Key - ExamineCharacter
Key - MoveOffObject
Key - UnlockObWithKey
Key - SitOnObject
Key - MoveInObject
Key - MoveOffCurrentObject
Key - SitOnFloor
Key - TakeObjectsFromOthersLazy
Key - None
Key - AskCharacter
Key - DropObjects
Key - SayToCharacter
Key - UnlockObjectLazy
Key - StandOnFloor
Key - EatObject
Key - Inventory
Key - PutObjectsInOther
Key - Look
Key - RemoveBeforeDrop
Key - ReadObjects
Key - WearObject
Key - Sit
Key - TakeObjects
Key - LieOnObject
Key - CloseObject
Key - TellCharacter
Key - RemoveObjects
Key - UnlockObject
Key - PullObjects
Key - ClimbObject
Key - OpenObjectsWithOthers
Key - SayLazy
Key - AttackCharacter
Key - AttackCharacterWithObject
Key - AskAboutLazy
Key - LockObWithKey
Key - LockObject
Key - LockObjectLazy
Key - GetOffBeforeMoving
Key - StandBeforeMoving
Key - jcw_Task1
Key - BurnObject
Key - BuyObject
Key - CutObject
Key - Jump
Key - KissCharacter
Key - Listen
Key - YesNo
Key - RubObject
Key - ScoreCommand
Key - SearchObject
Key - SetObjectTo
Key - ShowObjectToCharacter
Key - Sing
Key - Whistle
Key - Sleep
Key - SmellObject
Key - SqueezeObject
Key - SwitchObjectOn
Key - SwitchObjectOff
Key - SwitchObjectOnLazy
Key - SwitchObjectOffLazy
Key - Think
Key - TouchObject
Key - TurnObjectOver
Key - WakeUp
Key - Wave
Key - WaveObject
Key - Player
Key - Known
Key - Gender
Key - MaxBulk
Key - MaxWeight
Key - CharacterLocation
Key - Score
Key - MaxScore
Key - AllLocations
Key - DarkLocations
Key - ShortLocationDescription
Key - LightSources


Text: This is where most of the work needs to be done. There are some repeats, so I would probably replace them using a script so as to keep them uniform. This does highlight the importance of %references% as they are used all over the place in the standard library. <!-- --> are text comments that don't display when played but are a way for an author to leave themselves notes. They show in the debugger, which is handy for figuring out where text is coming from.
adrift Code: Select all
Text - Ok, %CharacterName% put[//s] %objects%.Name on top of %object2%.Name.
Text - %CharacterName% [am/are/is] not carrying %TheObject[%objects%]%!
Text - You cannot see %TheObject[%object2%]%!
Text - %CharacterName% can't can't put anything onto %TheObject[%object2%]%!
Text - %CharacterName% can't do that!
Text - %CharacterName% can't do that!
Text - %CharacterName% lie[//s] down.
Text - %CharacterName% [am/are/is] already lying down!
Text - Ok, %CharacterName% pick[//s] up %objects%.Name.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too heavy to carry.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too heavy to carry at the moment.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too bulky to carry.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too bulky to carry at the moment.
Text - As delicious as %TheObject[%object%]% looks, %CharacterName% [am/are/is] not thirsty right now.
Text - Sorry, I'm not sure which object you are trying to drink.
Text - Sorry, I'm not sure which object you are trying to drink.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't drink %TheObject[%object%]%!
Text - I'm not sure who you are referring to.
Text - <c>(on %TheObject[%ParentOf[%Player%]%]%)</c><!--
 
This task executes the 'Stand On Objects' task, giving it the parent of the player as a parameter
 
-->

 
Text - %CharacterName% [am/are/is] already standing on %TheObject[%ParentOf[%Player%]%]%!
Text - %CharacterName% get[//s] out of %TheObject[%object%]%.
Text - %CharacterName% [am/are/is] not inside %TheObject[%object%]%!
Text - %PCase[%TheObject[%object%]%]% is closed!
Text - %CharacterName[%character%, subject]% doesn't seem interested in %objects%.Name.
Text - Sorry, I'm not sure which character you're referring to.
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - Sorry, I'm not sure which object you're referring to.
Text - Sorry, I'm not sure which object you're referring to.
Text - %CharacterName% [am/are/is] not carrying %TheObjects[%objects%]%.
Text - There is nothing worth taking here.
Text - Ok, %CharacterName% take[//s] %objects%.Name from %object2%.Name.
Text - There is nothing worth taking here.
Text - Sorry, I'm not sure which object you are trying to take.
Text - Sorry, I'm not sure which object or character you are trying to take from.
Text - Sorry, I'm not sure which object you are trying to take.
Text - Sorry, I'm not sure which object or character you are trying to take from.
Text - %CharacterName% can't see %TheObjects[%objects%]%!
Text - %CharacterName% can't see %TheObject[%object2%]%!
Text - %CharacterName% can't take %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] wearing %TheObjects[%objects%]%!
Text - %PCase[%TheObject[%objects%]%]% is not on or inside %TheObject[%object2%]%!
Text - %PCase[%TheObject[%objects%]%]% is not on or inside %TheObject[%object2%]%!
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too heavy to carry.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too heavy to carry at the moment.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too bulky to carry.
Text - %TheObject[%objects%]% <#if(%objects%.Count > 1, "are", "is")#> too bulky to carry at the moment.
Text - %CharacterName% open[//s] %TheObject[%object%]%.
Text - Inside %TheObject[%object%]% is %ListObjectsIn[%object%]%.
Text - Open what?
Text - Open what?
Text - %CharacterName% can't see %TheObject[%object1%]%.
Text - %PCase[%TheObject[%object1%]%]% cannot be opened or closed!
Text - %CharacterName% can't open %TheObject[%object1%]% as it is locked!
Text - %pcase[%TheObject[%object%]%]% is already open!
Text - %object%.Description
Text - %PCase[%object%.Name]% is currently %LCase[%object%.OpenStatus]%.
Text - %ListObjectsOnAndIn[%object%]%
Text - %ListCharactersOnAndIn[%object%]%
Text - It is too dark to make anything out clearly.
Text - You see no such thing.
Text - You see no such thing.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% stand[//s] on %TheObject[%object%]%.
Text - Sorry, I'm not sure which object you are trying to stand on.
Text - Sorry, I'm not sure which object you are trying to stand on.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't stand on %TheObject[%object%]%!
Text - %CharacterName% can't stand on something that you're holding!
Text - %CharacterName% [am/are/is] already standing on %TheObject[%object%]%!
Text - <c>(on %TheObject[%ParentOf[%Player%]%]%)</c><!--
 
This task executes the 'Lie On Objects' task, giving it the parent of the player as a parameter
 
-->

 
Text - %CharacterName% [am/are/is] already lying on %TheObject[%ParentOf[%Player%]%]%!
Text - %CharacterName% push[//es] %TheObject[%object%]%, but nothing happens.
Text - Sorry, I'm not sure which object you are trying to push.
Text - Sorry, I'm not sure which object you are trying to push.
Text - %CharacterName% can't see %TheObject[%object%]%!
Text - %CharacterName% move[//s] %LCase[%direction%]%.
 
Text - There is no route <# IF(%direction% = "Up" OR %direction% = "Down" OR %direction% = "In" OR %direction% = "Out", "", "to the ") #>%LCase[%direction%]%<# IF(%Player%.Location.Exits.Count = 0, ".", ", only " + %Player%.Location.Exits.List + ".") #>
Text - <c>(removing %objects%.Name from %objects%.Parent.Name first)</c>
 
Text - I'm not sure who you are referring to.
Text - %DisplayCharacter[%character%]%
Text - %CharacterName[%character%]% [am/are/is] wearing %ListWorn[%character%]%, and [am/are/is] carrying %ListHeld[%character%]%.
Text - %CharacterName[%character%]% [am/are/is] wearing %ListWorn[%character%]%.
Text - %CharacterName[%character%]% [am/are/is] carrying %ListHeld[%character%]%.
Text - %CharacterName[%character%]% [am/are/is] sitting on %TheObject[%ParentOf[%character%]%]%.
Text - It is too dark to make anything out clearly.
Text - You see no such thing.
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - %CharacterName% get[//s] off of %TheObject[%object%]%.
Text - %CharacterName% [am/are/is] not on %TheObject[%object%]%!
Text - <c>(using %TheObject[%object2%]%)</c>
 
Text - Inside %TheObject[%object%]% is %ListObjectsIn[%object%]%.
Text - What do you want to unlock %TheObject[%object1%]% with?
Text - %CharacterName% sit[//s] on %TheObject[%object%]%.
Text - Sorry, I'm not sure which object you are trying to sit upon.
Text - Sorry, I'm not sure which object you are trying to sit upon.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't sit on %TheObject[%object%]%!
Text - %CharacterName% can't sit on something that %CharacterName% [am/are/is] holding!
Text - %CharacterName% [am/are/is] already sitting on %TheObject[%object%]%!
Text - %CharacterName% step[//s] inside %TheObject[%object%]%.
Text - Sorry, I'm not sure which object you are trying to enter.
Text - Sorry, I'm not sure which object you are trying to enter.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't go inside %TheObject[%object%]%!
Text - %PCase[%TheObject[%object%]%]% is closed!
Text - %CharacterName% can't go inside something that %CharacterName% [am/are/is] %CharacterName% can'tholding!
Text - %CharacterName% [am/are/is] already inside %TheObject[%object%]%!
Text - <c>(%TheObject[%ParentOf[%Player%]%]%)</c><!--
 
This task executes the 'Leave Object' task, giving it the parent of the player as a parameter
 
-->

 
Text - %CharacterName% [am/are/is] not sitting down!
Text - %CharacterName% [am/are/is] not lying down!
Text - %CharacterName% sit[//s] down.
Text - %CharacterName% sit[//s] up.
Text - %CharacterName% [am/are/is] already sitting down!
Text - <c>(from %objects%.Parent.Name)</c><!--
 
This task executes the 'Take objects from others' task, giving it the parent of the object as a parameter
 
-->

 
Text - %PCase[%TheObject[%objects%]%]% is not on or inside another object!
Text - %PCase[%TheObject[%objects%]%]% is not on or inside another object!
Text - Sorry, I'm not sure which character you're referring to. (characters must be seen)
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - You have nothing to drop.
Text - Ok, %CharacterName% put[//s] down %objects%.Name.
Text - You have nothing to drop.
Text - Sorry, I'm not sure which object you're referring to.
Text - %CharacterName% can't drop %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] not carrying %TheObjects[%objects%]%.
Text - Sorry, I'm not sure which character you're referring to. (characters must be seen)
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - None
Text - Inside %TheObject[%object%]% is %ListObjectsIn[%object%]%.
Text - Sorry, I'm not sure which object you're referring to.
Text - Unlock what?
Text - %CharacterName% can't see %TheObject[%object1%]%.
Text - %PCase[%TheObject[%object1%]%]% cannot be locked or unlocked.
Text - %CharacterName% can't unlock %TheObject[%object1%]% as it is not locked!
Text - %CharacterName% stand[//s] up.
Text - %CharacterName% [am/are/is] already standing!
Text - As tasty as %TheObject[%object%]% looks, %CharacterName% [am/are/is] not hungry right now.
Text - Sorry, I'm not sure which object you are trying to eat.
Text - Sorry, I'm not sure which object you are trying to eat.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't eat %TheObject[%object%]%!
Text - %CharacterName% [am/are/is] wearing %Player%.Worn(False).List(Indefinite, False), and [am/are/is] carrying %Player%.Held(False).List(Indefinite, False).
Text - %ListObjectsOnAndIn[%Player%.WornAndHeld]%
Text - %CharacterName% put[//s] %objects%.Name inside %object2%.Name.
Text - Sorry, I'm not sure which object you're referring to.
Text - Sorry, I'm not sure which object you're referring to.
Text - Sorry, I'm not sure which object you're referring to.
Text - You cannot see %TheObject[%object2%]%!
Text - %CharacterName% [am/are/is] not carrying %TheObjects[%objects%]%!
Text - %CharacterName% can't put anything inside %TheObject[%object2%]%!
Text - ** Object is not openable object **
Text - %PCase[%TheObject[%object2%]%]% is closed!
Text - %CharacterName% can't do that!
Text - %CharacterName% can't do that!
Text - %object%.Name is too big to fit inside %object2%.Name.
Text - %object%.Name can't fit inside %object2%.Name at the moment.
Text - %Player%.Location.Description
Text - It is too dark to make anything out clearly.
Text - <c>(removing %objects%.Name from %objects%.Parent.Name first)</c>
 
Text - <c>(removing %objects%.Name first)</c>
 
Text - %DisplayObject[%object%]%
Text - %DisplayObject[%object%]%
Text - %PropertyValue[%object%,ReadText]%
Text - Sorry, I'm not sure which object you are trying to read.
Text - Sorry, I'm not sure which object you are trying to read.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - There is nothing worth reading on %TheObject[%object%]%.
Text - %CharacterName% [am/are/is] holding nothing worth wearing.
Text - Ok, %CharacterName% put[//s] on %TheObjects[%objects%]%.
Text - %CharacterName% [am/are/is] holding nothing worth wearing.
Text - Sorry, I'm not sure which object you're referring to.
Text - Sorry, I'm not sure which object you're referring to.
Text - %CharacterName% can't see %TheObjects[%objects%]%!
Text - %CharacterName% can't wear %TheObjects[%objects%]%!
Text - %CharacterName% can't wear %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] already wearing %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] not carrying %TheObjects[%objects%]%!
Text - <c>(on %TheObject[%ParentOf[%Player%]%]%)</c><!--
 
This task executes the 'Sit On Objects' task, giving it the parent of the player as a parameter
 
-->

 
Text - %CharacterName% [am/are/is] already sitting on %TheObject[%ParentOf[%Player%]%]%!
Text - There is nothing worth taking here.
Text - There is nothing worth taking here.
Text - Sorry, I'm not sure which object you are trying to take.
Text - Sorry, I'm not sure which object you are trying to take.
Text - %CharacterName% can't see %TheObjects[%objects%]%!
Text - %CharacterName% can't take %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] already carrying %TheObjects[%objects%]%!
Text - %CharacterName% [am/are/is] wearing %TheObjects[%objects%]%!
Text - %CharacterName% lie[//s] on %TheObject[%object%]%.
Text - Sorry, I'm not sure which object you are trying to lie on.
Text - Sorry, I'm not sure which object you are trying to lie on.
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %CharacterName% can't lie on %TheObject[%object%]%!
Text - %CharacterName% can't lie on something that %CharacterName% [am/are/is] holding!
Text - %CharacterName% [am/are/is] already lying on %TheObject[%object%]%!
Text - %CharacterName% close[//s] %TheObject[%object%]%.
Text - Close what?
Text - Close what?
Text - %CharacterName% can't see %TheObject[%object%]%.
Text - %PCase[%TheObject[%object%]%]% cannot be opened or closed!
Text - %PCase[%TheObject[%object%]%]% is already closed!
Text - Sorry, I'm not sure which character you're referring to. (characters must be seen)
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - Ok, %CharacterName% remove[//s] %TheObjects[%objects%]%.
Text - Sorry, I'm not sure which object you're referring to.
Text - %CharacterName% [am/are/is] not wearing %TheObjects[%objects%]%.
Text - %CharacterName% unlock[//s] %TheObject[%object1%]% with %TheObject[%object2%]%.
Text - Inside %TheObject[%object%]% is %ListObjectsIn[%object%]%.
Text - Unlock what?
Text - %CharacterName% can't see %TheObject[%object1%]%.
Text - %PCase[%TheObject[%object1%]%]% cannot be locked or unlocked.
Text - %CharacterName% can't unlock %TheObject[%object1%]% as it is not locked!
Text - Unlock %TheObject[%object1%]% with what?
Text - %CharacterName% can't see %TheObject[%object2%]%.
Text - %CharacterName% can't unlock %TheObject[%object1%]% with %TheObject[%object2%]%.
Text - %CharacterName% pull[//s] %TheObject[%object%]%, but nothing happens.
Text - Sorry, I'm not sure which object you are trying to pull.
Text - Sorry, I'm not sure which object you are trying to pull.
Text - %CharacterName% can't see %TheObject[%object%]%!
Text - %CharacterName% can't climb %TheObject[%object%]%.
Text - Sorry, I'm not sure which object you are trying to climb.
Text - Sorry, I'm not sure which object you are trying to climb.
Text - %CharacterName% can't see %object%.Name.
Text - %CharacterName% can't climb %object%.Name.
Text - %CharacterName% can't open %TheObject[%object1%]% with %TheObject[%object2%]%.
Text - Open what?
Text - Open %TheObject[%object1%]% with what?
Text - %CharacterName% can't see %TheObject[%object1%]%.
Text - %CharacterName% can't see %TheObject[%object2%]%.
Text - %PCase[%TheObject[%object1%]%]% cannot be opened or closed!
Text - %CharacterName% can't open %TheObject[%object1%]% as it is locked!
Text - %pcase[%TheObject[%object%]%]% is already open!
Text - %CharacterName% [am/are/is] not carrying %TheObject[%object2%]%.
Text - <c>(to %CharacterName[%AloneWithChar%]%)</c><!--
 
This task runs the Say Something to Character task, passing %AloneWithChar% key as a parameter.
 
-->

 
Text - I don't think %CharacterName[%character%]% would appreciate that very much.
Text - Sorry, I'm not sure which character you're referring to.
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - I don't think %CharacterName[%character%]% would appreciate that very much.
Text - Sorry, I'm not sure which character you're referring to.
Text - %CharacterName% can't see %CharacterName[%character%]%!
Text - Sorry, I'm not sure which object you're referring to.
Text - Sorry, I'm not sure which object you're referring to.
Text - %CharacterName% [am/are/is] not carrying %TheObjects[%object%]%.
Text - <c>(%CharacterName[%AloneWithChar%]%)</c><!--
 
This task runs the Ask Character About Subject task, passing %AloneWithChar% key as a parameter.
 
-->

 
Text - <c>(using %object2%.Name)</c>
 
Text - What do you want to lock %object1%.Name with?
Text - %CharacterName% lock[//s] %object1%.Name with %object2%.Name.
Text - Lock what?
Text - %CharacterName% can't see %object1%.Name.
Text - %PCase[%object1%.Name]% cannot be locked or unlocked.
Text - %object1%.Name is already locked!
Text - %CharacterName% can't lock %object1%.Name as it is not closed!
Text - Lock %object1%.Name with what?
Text - %CharacterName% can't see %object2%.Name.
Text - %CharacterName% can't lock %object1%.Name with %object2%.Name.
Text - Sorry, I'm not sure which object you're referring to.
Text - Lock what?
Text - %CharacterName% can't see %object1%.Name.
Text - %PCase[%object1%.Name]% cannot be locked or unlocked.
Text - %object%.Name is already locked!
Text - %CharacterName% can't lock %object1%.Name as it is not closed!
Text - <c>(getting off %Player%.Parent.Name first)</c>
 
Text - <c>(standing up first)</c>
 
Text - %CharacterName% blow[//s] %object%.Name, but nothing happens.
Text - Sorry, I'm not sure which object you are trying to blow.
Text - Sorry, I'm not sure which object you are trying to blow.
Text - %CharacterName% can't see %object%.Name!
Text - Burning %object%.Name would not achieve very much.
Text - Sorry, I'm not sure which object you are trying to burn.
Text - Sorry, I'm not sure which object you are trying to burn.
Text - %CharacterName% can't see %object%.Name!
Text - I don't think %object%.Name is for sale.
Text - Sorry, I'm not sure which object you are trying to buy.
Text - Sorry, I'm not sure which object you are trying to buy.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% can't cut %object%.Name.
Text - Sorry, I'm not sure which object you are trying to cut.
Text - Sorry, I'm not sure which object you are trying to cut.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% jump[//s] on the spot.
Text - I'm not sure %character%.Name(Force) would appreciate that!
Text - Sorry, I'm not sure which character you are referring to.
Text - %CharacterName% can't see %character%.Name!
Text - %CharacterName% hear nothing out of the ordinary.
Text - That's interesting, but it doesn't mean much.
Text - %CharacterName% rub[//s] %object%.Name but nothing appears to happen.
Text - Sorry, I'm not sure which object you are trying to rub.
Text - Sorry, I'm not sure which object you are trying to rub.
Text - %CharacterName% can't see %object%.Name!
Text - Your score is %score% out of a maximum of %maxscore%. (<#%score%/%maxscore%#>%)
Text - %CharacterName% search[//es] %object%.Name but find[//s] nothing of interest.
Text - Sorry, I'm not sure which object you are trying to search.
Text - Sorry, I'm not sure which object you are trying to search.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% can't set %object%.Name to anything.
Text - Sorry, I'm not sure which object you are trying to set.
Text - Sorry, I'm not sure which object you are trying to set.
Text - %CharacterName% can't see %object%.Name!
Text - %character%.Name seems suitably unimpressed.
Text - Sorry, I'm not sure which object you are trying to show.
Text - Sorry, I'm not sure which object you are trying to show.
Text - %CharacterName% can't see %object%.Name!
Text - Sorry, I'm not sure which character you are referring to.
Text - %CharacterName% can't see %character%.Name!
Text - %CharacterName% [am/are/is] not carrying %object%.Name.
Text - %CharacterName% sing[//s] a little song.
Text - %CharacterName% whistle[//s] a little tune.
Text - %CharacterName% [am not/aren't/isn't] feeling tired at the moment.
Text - %object%.Name smells normal.
Text - Sorry, I'm not sure which object you are trying to smell.
Text - Sorry, I'm not sure which object you are trying to smell.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% squeeze[//s] %object%.Name but nothing happens.
Text - Sorry, I'm not sure which object you are trying to squeeze.
Text - Sorry, I'm not sure which object you are trying to squeeze.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% switch[//es] on %object%.Name.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - %CharacterName% can't see %object%.Name!
Text - %object%.Name can't be switched off or on.
Text - %object%.Name is already on!
Text - %CharacterName% switch[//es] off %object%.Name.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - %CharacterName% can't see %object%.Name!
Text - %object%.Name can't be switched off or on.
Text - %object%.Name is already off!
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - %CharacterName% can't see %object%.Name!
Text - %object%.Name can't be switched off or on.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - Sorry, I'm not sure which object you are trying to switch/turn/flick.
Text - %CharacterName% can't see %object%.Name!
Text - %object%.Name can't be switched off or on.
Text - %CharacterName% ponder[//s] for a while.
Text - %CharacterName% feel nothing unexpected.
Text - Sorry, I'm not sure which object you are trying to touch.
Text - Sorry, I'm not sure which object you are trying to touch.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% turn[//s] %object%.Name but nothing appears to happen.
Text - Sorry, I'm not sure which object you are trying to turn/flip.
Text - Sorry, I'm not sure which object you are trying to turn/flip.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% can't turn %object%.Name.
Text - %CharacterName% [am/are/is] not asleep!
Text - %CharacterName% wave[//s] cheerily.
Text - %CharacterName% wave[//s] %object%.Name about, cheerily.
Text - Sorry, I'm not sure which object you are trying to wave.
Text - Sorry, I'm not sure which object you are trying to wave.
Text - %CharacterName% can't see %object%.Name!
Text - %CharacterName% [am/are/is] not carrying %object%.Name.
Text - Everything is dark


The Description and ToolTip tags are for Authors, so I don't think players ever see the text in those tags.
ElliotM
 
Posts: 1227
Joined: Tue Apr 17, 2007 8:04 pm
Location: The Midwest in the USA
Points: 13

Re: Change language output?

Postby saabie » Mon Apr 02, 2018 5:44 am

ElliotM wrote:I don't know if references like %object% can be translated and still work.
No, all of the references and function names like %object% or %CharacterName% or %TheObject[%ParentOf[%Player%]%]% must be left as they are and not translated.
saabie
 
Posts: 886
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 10

Re: Change language output?

Postby ralphmerridew » Tue Apr 03, 2018 12:24 am

Be sure to deal with der/die/das/den/dem/des.
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
ralphmerridew
 
Posts: 2533
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10

Re: Change language output?

Postby ElliotM » Tue Apr 03, 2018 12:34 am

Yup, one of the major hurdles for supporting an non-English language are the language features that English doesn't have.
ElliotM
 
Posts: 1227
Joined: Tue Apr 17, 2007 8:04 pm
Location: The Midwest in the USA
Points: 13

Re: Change language output?

Postby ralphmerridew » Tue Apr 03, 2018 1:22 am

I think the toughest part might be the list writers; I think those are hard-coded to generate "the" and "and".
Bloodhounds can make you laugh and cuss in the same breath. They are endearing, faithful, and can sling drool ten feet in any direction. -- Virginia Lanier
User avatar
ralphmerridew
 
Posts: 2533
Joined: Fri Dec 13, 2002 11:56 pm
Location: Missouri
Points: 10

Re: Change language output?

Postby saabie » Tue Apr 03, 2018 3:58 am

Text overrides can do single word substitutions like and -> und
Alternate descriptions can be used to give more control over the substituted text.
English-specific functions like %TheObject[ ]% will need to be replaced with a user function.
The biggest problem is with languages that put the adjective after the noun, as ADRIFT does not have any way to do that yet (Bugs #5344 and #18750)
saabie
 
Posts: 886
Joined: Fri Aug 12, 2011 2:07 am
Location: Adelaide, South Australia
Points: 10


Return to ADRIFT 5.0

Who is online

Users browsing this forum: Google [Bot] and 3 guests