Version 27/081005 of Custom Library Messages by David Fisher begins here. "Enables the standard messages printed by the Inform library to be replaced with custom messages, including changes to tense, number, person and gender." [ Contents ... 1. Definitions 1.1. Library Message values 1.2. Defaults 1.3. Before and After rules 1.4. Altering Messages 2. Message rules 2.1. End of game messages 2.2. Descriptions 2.3. Prompts and Input 2.4. Undo 2.5. Oops 2.6. Again 2.7. Syntax Errors 2.8. Illegal Commands 2.9. Multiple Objects 2.10. Implicit Actions 2.11. Carrying Capacity 2.12. Disambiguation 2.13. Pronouns 2.14. Commanding People 2.15. File Operations 2.16. Transcripts 2.17. Scoring 2.18. Inventory 2.19. Darkness 2.20. Take 2.21. Remove 2.22. Drop 2.23. Insert 2.24. Put On 2.25. Give 2.26. Show 2.27. Enter 2.28. Exit, Get Off 2.29. Go 2.30. Brief, Super Brief, Verbose 2.31. Look 2.32. Examine 2.33. Search 2.34. Look Under 2.35. Open 2.36. Close 2.37. Lock 2.38. Unlock 2.39. Switch On 2.40. Switch Off 2.41. Wear 2.42. Take Off 2.43. Eating And Drinking, Senses 2.44. Touching 2.45. Rhetorical Commands 2.46. Body Movement 2.47. Physical Interaction 2.48. Push, Pull, Turn 2.49. Speech / Interpersonal Actions 2.50. Mental Actions 2.51. Sleep And Waiting 3. Implementation 3.1. Kinds 3.2. The current object 3.3. "Say object" rules 3.4. Decision rules 3.5. Grammatical tables 3.6. Table operations 3.7. "Say word" rules 3.8. "Say suffix" rules 3.9. Irregular verbs 3.10. "Say symbol" rules 3.11. Miscellaneous "say" rules 3.12. Miscellaneous decision rules 4. Inform 6 interface 5. Rule handling 5.1. Rule substitutions 5.2. Internal rules 5.3. LibraryMessages fix ] Part 1 - Definitions Section 1.1 - Library Message values Library message id is a kind of value. The library message ids are defined by the table of library messages. The main object is an object that varies. The secondary object is an object that varies. The numeric amount is a number that varies. The library-message-id is a library message id that varies. The before library messages rule is a rule that varies. The after library messages rule is a rule that varies. Tense is a kind of value. The tenses are past tense and present tense. Grammatical number is a kind of value. The grammatical numbers are singular and plural. Grammatical person is a kind of value. The grammatical persons are first person, second person and third person. Gender is a kind of value. The genders are gender masculine, gender feminine and gender neuter. The library message tense is a tense that varies. The library message grammatical number is a grammatical number that varies. The library message person is a grammatical person that varies. The library message gender is a gender that varies. Library_message_debug is a thing. Library_message_debug can be on or off. Section 1.2 - Defaults The library message tense is present tense. The library message grammatical number is singular. The library message person is second person. The library message gender is gender masculine. Library_message_debug is off. Table of custom library messages Message Id Message Text library message id text Section 1.3 - Before and After rules [ called just before and just after a library message is printed ] The before library messages rule is the empty rule. The after library messages rule is the empty rule. This is the empty rule: do nothing. Section 1.4 - Altering messages When play begins: init library messages; add the custom library messages. To add the custom library messages: repeat through the table of custom library messages begin; set the message id entry to the message text entry; end repeat. To set (id_ - library message id) to (msg_ - text): update the row with id of id_ to msg_. [ perform a binary search to quickly find the message id (table is guaranteed to be sorted) ] To update the row with id of (id_ - library message id) to (msg_ - text): let n1 be 1; let n2 be the number of rows in the table of library messages; while n1 <= n2 begin; let mid be n1 plus n2; change mid to mid divided by 2; choose row mid in the table of library messages; if the message id entry is id_ begin; change the message text entry to msg_; change n1 to n2 + 1; [ to force the loop to stop ] end if; if the message id entry < id_, change n1 to mid plus 1; if the message id entry > id_, change n2 to mid minus 1; end while. libmsg_3ps_changed is a number that varies. libmsg_3ps_changed is 0. To set the library message third person text to (name_ - text): set the library message third person text to name_ / name_ / name_. To set the library message third person text to (upper_ - text) / (lower_ - text): set the library message third person text to upper_ / lower_ / lower_. To restore the library message third person text: set the library message third person text to "He" / "he" / "him"; change libmsg_3ps_changed to 0. To set the library message third person text to (upper_ - text) / (lower_ - text) / (dobj_ - text): change libmsg_3ps_changed to 1; repeat through the table of 'you' forms begin; if Gramm Person entry is third person and Gramm Number entry is singular begin; if Case entry is upper-case, change Word entry to upper_; otherwise change Word entry to lower_; end if; end repeat; repeat through the table of 'you' dobj forms begin; if Gramm Person entry is third person and Gramm Number entry is singular then change Word entry to dobj_; end repeat. Part 2 - Messages Section 2.1 - End of game messages Table of library messages Message Id Message Text LibMsg " [You] [have+] died " LibMsg " You have won " Section 2.2 - Descriptions [ The following rule supercedes LibMsg (left in for backwards compatibility, but has no effect) ] Rule for printing the name of the player: say "[yourself]". Table of library messages (continued) Message Id Message Text LibMsg "[yourself]" LibMsg "[That's|they're] not something you need to refer to in the course of this game." [ Removed "LibMsg " - use "The description of the player is ..." instead. ] Section 2.3 - Prompts and Input Table of library messages (continued) Message Id Message Text LibMsg "I beg your pardon?" LibMsg "Are you sure you want to quit? " LibMsg "Please answer yes or no." LibMsg "Please give one of the answers above." LibMsg "[/n][bracket]Please press SPACE[dot][close bracket]" LibMsg "[/n]Type a number from 1 to [numeric amount], 0 to redisplay or press ENTER." LibMsg "[bracket]Comment recorded[dot][close bracket]" LibMsg "[bracket]Comment NOT recorded[dot][close bracket]" Section 2.4 - Undo Table of library messages (continued) Message Id Message Text LibMsg "[bracket]Previous turn undone[dot][close bracket]" LibMsg "[apostrophe]Undo[apostrophe] failed. [bracket]Not all interpreters provide it[dot][close bracket]" LibMsg "[bracket]Your interpreter does not provide [apostrophe]undo[apostrophe]. Sorry[ExMark][close bracket]" LibMsg "[bracket]You can't [apostrophe]undo[apostrophe] what hasn't been done[ExMark][close bracket]" LibMsg "[bracket]Can't [apostrophe]undo[apostrophe] twice in succession. Sorry[ExMark][close bracket]" LibMsg "The use of UNDO is forbidden in this game." Section 2.5 - Oops Table of library messages (continued) Message Id Message Text LibMsg "Sorry, that can't be corrected." LibMsg "[apostrophe]Oops[apostrophe] can only correct a single word." LibMsg "Think nothing of it." Section 2.6 - Again Table of library messages (continued) Message Id Message Text LibMsg "[You] [can] hardly repeat that." LibMsg "To repeat a command like [apostrophe]frog, jump[apostrophe], just say [apostrophe]again[apostrophe], not [apostrophe]frog, again[apostrophe]." Section 2.7 - Syntax Errors Table of library messages (continued) Message Id Message Text LibMsg "I didn't understand that sentence." LibMsg "I only understood you as far as wanting to " LibMsg "I didn't understand the way that finished." LibMsg "You seem to have said too little!" LibMsg "(Since something dramatic has happened, your list of commands has been cut short.)" LibMsg "I didn't understand that number." LibMsg "You can't begin with a comma." LibMsg "To talk to someone, try [apostrophe]someone, hello[apostrophe] or some such." Section 2.8 - Illegal Commands Table of library messages (continued) Message Id Message Text LibMsg "[You] [can't] see any such thing." LibMsg "[You] [aren't] holding that!" LibMsg "That's not a verb I [if using the American dialect option]recognize.[otherwise]recognise." LibMsg "[You] [can] only do that to something animate." LibMsg "You must supply a noun." LibMsg "You may not supply a noun." LibMsg "You must name an object." LibMsg "You may not name an object." LibMsg "You must name a second object." LibMsg "You may not name a second object." LibMsg "You must supply a second noun." LibMsg "You may not supply a second noun." LibMsg "You must name something more substantial." Section 2.9 - Multiple Objects Table of library messages (continued) Message Id Message Text LibMsg "You can't use multiple objects with that verb." LibMsg "You can only use multiple objects once on a line." LibMsg "[if the numeric amount is 0]None of those are[otherwise]Only [numeric amount in words] of those [is|are for numeric amount][end if] available." LibMsg "There are none at all available!" LibMsg "Nothing to do!" LibMsg "(considering the first sixteen objects only)" LibMsg "You excepted something not included anyway!" Section 2.10 - Implicit Actions To say entering|getting onto-into: if main object is not a supporter and main object is not a container, say "entering"; otherwise say "getting [onto|into]". Table of library messages (continued) Message Id Message Text LibMsg "(first taking [the % dobj])" LibMsg "([the actor] first taking [the % dobj])" LibMsg "(getting [off|out of] [the % dobj])" LibMsg "([entering|getting onto-into] [the % dobj])" LibMsg "(first taking [the % dobj] off)" LibMsg "(first taking [it|them] off)" LibMsg "(first taking [it|them] off)" Section 2.11 - Carrying Capacity Table of library messages (continued) Message Id Message Text LibMsg "[You're] carrying too many things already." LibMsg "(putting [the % dobj] into [the player's holdall] to make room)" LibMsg "There [is|was] no more room in [the % dobj]." LibMsg "There [is|was] no more room on [the % dobj]." Section 2.12 - Disambiguation Table of library messages (continued) Message Id Message Text LibMsg "Who [do] [you] mean, " LibMsg "Which [do] [you] mean, " LibMsg "Whom [do] [you] want[if main object is not the player] [the %][end if] to [the last command]?" LibMsg "What [do] [you] want[if main object is not the player] [the %][end if] to [the last command]?" LibMsg "Sorry, you can only have one item here. Which exactly?" Section 2.13 - Pronouns To say at the moment: if lm_present, say " at the moment" Table of library messages (continued) Message Id Message Text LibMsg "I'm not sure what [apostrophe][pronoun word][apostrophe] refers to." LibMsg "[You] [can't] see [apostrophe][pronoun word][apostrophe] ([the %])[ at the moment]." LibMsg "At the moment, " LibMsg "means" LibMsg "is unset" LibMsg "no pronouns are known to the game." Section 2.14 - Commanding People Table of library messages (continued) Message Id Message Text LibMsg "[The %] [has|have] better things to do." LibMsg "[You] seem[-s] to want to talk to someone, but I [can't] see whom." LibMsg "[You] [=> present tense][can't][=> default tense] talk to [the % dobj]." LibMsg "[The actor] [is|are] unable to do that." Section 2.15 - File Operations Table of library messages (continued) Message Id Message Text LibMsg "Are you sure you want to restart? " LibMsg "Failed." LibMsg "Restore failed." LibMsg "Ok." LibMsg "Save failed." LibMsg "Ok." LibMsg "The game file has verified as intact." LibMsg "The game file did not verify as intact, and may be corrupt." Section 2.16 - Transcripts Table of library messages (continued) Message Id Message Text LibMsg "Transcripting is already on." LibMsg "Transcripting is already off." LibMsg "Start of a transcript of" LibMsg "[/n]End of transcript." LibMsg "Attempt to begin transcript failed." LibMsg "Attempt to end transcript failed." Section 2.17 - Scoring Table of library messages (continued) Message Id Message Text LibMsg "[if game over]In that game you[otherwise]You have so far[end if] scored [the score] out of a possible [maximum score], in [turn count] turn[s]" LibMsg "Your score has just gone [if numeric amount >= 0]up by [the numeric amount in words][otherwise]down by [0 minus the numeric amount in words][end if] point[s]" LibMsg "Score notification on." LibMsg "Score notification off." LibMsg "There is no score in this story." LibMsg ", earning you the rank of " Section 2.18 - Inventory Table of library messages (continued) Message Id Message Text LibMsg "[The actor] look[-s] through [his] possessions." LibMsg "[You] [are] carrying" LibMsg "[You] [are] carrying nothing." Section 2.19 - Darkness Table of library messages (continued) Message Id Message Text LibMsg "[if lm_past]It suddenly became pitch dark.[otherwise]It is now pitch dark in here![end if]" LibMsg "It [is|was] pitch dark, and [you] [can't] see a thing." LibMsg "Darkness, noun. An absence of light to see by." LibMsg "But [it's] dark." LibMsg "But [it's] dark." LibMsg "Darkness" Section 2.20 - Take Table of library messages (continued) Message Id Message Text LibMsg "Taken." LibMsg "[The actor] pick[-s] up [the % dobj]." LibMsg "[You] [are] always self-possessed." LibMsg "I don't suppose [the %] would [if lm_past]have cared[otherwise]care[end if] for that." LibMsg "[You][apostrophe]d have to get [=> %][off|out of] [the % dobj] first." LibMsg "[You] already [have] [that|those]." LibMsg "[=> noun][That|those] seem[-s] to belong to [the % dobj]." LibMsg "[=> noun][That|those] seem[-s] to be a part of [the % dobj]." LibMsg