1) Create a cube, resize it to 0.010x0.200x0.200, name it "Fantasy Translator"
2) drop in the script, pick it up, attach it to your hud
3) click on it for instructions ( /55 WhatYouWantToSay - or - /56 WhatYouWantToShout )
---------------------
Fantasy translator
---------------------
// If you are curious to know from where I've taken the "fantasy
// language" lines to "crypt" the user's messages, take a look at this
// page:
// http://en.wikipedia.org/wiki/Botorrita_plaque
default
{
changed(integer change)
{
if (change & CHANGED_OWNER)
{
llOwnerSay("/me owner is changed, script resetted." );
llResetScript();
}
}
// If the object's owner is changed then a message is sent and the
// script is resetted to its default values (state_entry section).
attach(key id)
{
if(id)
{
llOwnerSay("/me ready. Touch hud for instructions."

}
// On attach event, ready message is sent and the quick
// instructions are given.
else
{
llOwnerSay("/me detached."

}
// On detach event, warning message is sent.
}
touch_start(integer num_detected)
{
llGetOwner();
llOwnerSay("Greetings " + llDetectedName(0));
llOwnerSay("To Say something use /55 WhatYouWantToSay."

llOwnerSay("To Shout something, /56 WhatYouWantToShout."

}
// When touched, quick use instructions are given.
state_entry()
{
llListen(55, "", llGetOwner(), ""

// Listens on channel 55 for owner's message to be said.
// For example:
// /55 Hello!
llListen(56, "", llGetOwner(), ""

// Listens on channel 56 for owner's message to be shout.
// For example:
// /56 Hello!
llListen(-1, "Fantasy Translator", "", ""

// Listens on channel -1 for messages sent via other translators.
// Change the channel and object's name as you wish.
// Channel's number can be any valid integer from -2147483648
// through 2147483647.
}
listen(integer channel, string transmitter, key ID, string text)
{
if (channel == 55)
{
llSay(-1, transmitter + " - " + text);
// If the owner says something on channel 55, then the message is
// said on channel -1.
integer randLine = (integer)llFrand(20);
// Assignes to randLine a random integer number.
if(randLine == 0)
{
llSay(0, "/me > " + transmitter + ": Tirikantam bercunetacam
tocoitoscue sarnicio cue sua combalcez nelitom."

llOwnerSay("/me > " + transmitter + ": " + text);
// If the value assigned to randLine is 0 then the corresponding
// "fantasy language" (it is Celtiberian) message will be said on
// the main chat, while the "unencrypted" text will be displayed
// only to the owner (and to other Fantasy Translator's users).
//
// It will look like this:
// [00:00]Fantasy Translator > Katerina Morgwain: Tirikantam
// bercunetacam tocoitoscue sarnicio cue sua combalcez nelitom.
// [00:01] Fantasy Translator > Katerina Morgwain: Hello!
}
if(randLine == 1)
{
llSay(0, "/me > " + transmitter + ": Necue uertaunei litom necue
taunei litom necue masnai tizaunei litom soz aucu."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 2)
{
llSay(0, "/me > " + transmitter + ": Arestaio tamai uta oscues
stena uerzoniti silabur sleitom conscilitom cabizeti."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 3)
{
llSay(0, "/me > " + transmitter + ": Cantom sancilistara otanaum
tocoitei eni: uta oscuez boustomue coruinomue."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 4)
{
llSay(0, "/me > " + transmitter + ": Macasiamue ailamue
ambitiseti camanom usabituz ozas sues sailo custa bizetuz
iom."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 5)
{
llSay(0, "/me > " + transmitter + ": Asecati ambitincounei stena
es uertai entara tiris matus tinbituz neito tiricantam?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 6)
{
llSay(0, "/me > " + transmitter + ": Eni onsatuz iomui listas
titas zizonti somui iom arznas bionti iom custaicos?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 7)
{
llSay(0, "/me > " + transmitter + ": Arznas cuati ias ozias
uertatosue temeiue robiseti saum tecametinas tatuz
somei?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine ==

{
llSay(0, "/me > " + transmitter + ": Enitouzei iste ancios iste
esancios uze areitena sarniciei acainacubos?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 9)
{
llSay(0, "/me > " + transmitter + ": Nebintor tocoitei ios ur
antiomue auzeti aratimue tecametam tatuz iom
tocoitoscue?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 10)
{
llSay(0, "/me > " + transmitter + ": Sarniciocue aiuizas
combalcores aleites iste icues ruzimuz abulu ubocum!"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 11)
{
llSay(0, "/me > " + transmitter + ": Lubos counesicum melnunos
bintis letontu litocum!"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 12)
{
llSay(0, "/me > " + transmitter + ": Abulos bintis melmu
barauzanco lesunos bintis!"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 13)
{
llSay(0, "/me > " + transmitter + ": Letontu ubocum turo bintis
lubinaz aiu bercanticum!"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 14)
{
llSay(0, "/me > " + transmitter + ": Abulos bintis tirtu aiancum
abulos bintis abulu louzocum!"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 15)
{
llSay(0, "/me > " + transmitter + ": Uzeisunos bintis acainaz
letontu uicanocum suostunos..."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 16)
{
llSay(0, "/me > " + transmitter + ": Bintis tirtanos statulicum
lesunos bintis nouantutaz?"

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 17)
{
llSay(0, "/me > " + transmitter + ": Letontu aiancum melmunos
bintis useizu aiancum tauro bintis..."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 1

{
llSay(0, "/me > " + transmitter + ": Abulu aiancum tauro bintis
letontu leticum abulos bintis..."

llOwnerSay("/me > " + transmitter + ": " + text);
}
if(randLine == 19)
{
llSay(0, "/me > " + transmitter + ": Ucontaz letontu esocum
abulos bintis..."

llOwnerSay("/me > " + transmitter + ": " + text);
}
}
else if (channel == 56)
{
llShout(-1, transmitter + " - " + text);
// If the owner says something on channel 56, then the message is
// shout on channel -1.
integer randLine = (integer)llFrand(20);
// Assignes to randLine a random integer number.
if(randLine == 0)
{
llShout(0, "/me > " + transmitter + " shouts: Tirikantam
bercunetacam tocoitoscue sarnicio cue sua combalcez
nelitom."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
// If the value assigned to randLine is 0 then the corresponding
// "fantasy language" (it is Celtiberian) message will be shout
// on the main chat, while the "unencrypted" text will be
// displayed only to the owner (and to other Fantasy Translator's
// users).
//
// It will look like this:
// [00:00]Fantasy Translator > Katerina Morgwain shouts:
// Tirikantam bercunetacam tocoitoscue sarnicio cue sua combalcez
// nelitom.
// [00:01] Fantasy Translator > Katerina Morgwain shouts: Hello!
if(randLine == 1)
{
llShout(0, "/me > " + transmitter + " shouts: Necue uertaunei
litom necue taunei litom necue masnai tizaunei litom soz
aucu."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 2)
{
llShout(0, "/me > " + transmitter + " shouts: Arestaio tamai uta
oscues stena uerzoniti silabur sleitom conscilitom
cabizeti."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 3)
{
llShout(0, "/me > " + transmitter + " shouts: Cantom sancilistara
otanaum tocoitei eni: uta oscuez boustomue coruinomue."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 4)
{
llShout(0, "/me > " + transmitter + " shouts: Macasiamue ailamue
ambitiseti camanom usabituz ozas sues sailo custa bizetuz
iom."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 5)
{
llShout(0, "/me > " + transmitter + " shouts: Asecati
ambitincounei stena es uertai entara tiris matus
tinbituz neito tiricantam?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 6)
{
llShout(0, "/me > " + transmitter + " shouts: Eni onsatuz iomui
listas titas zizonti somui iom arznas bionti iom
custaicos?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 7)
{
llShout(0, "/me > " + transmitter + " shouts: Arznas cuati ias
ozias uertatosue temeiue robiseti saum tecametinas tatuz
somei?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine ==

{
llShout(0, "/me > " + transmitter + " shouts: Enitouzei iste
ancios iste esancios uze areitena sarniciei
acainacubos?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 9)
{
llShout(0, "/me > " + transmitter + " shouts: Nebintor tocoitei
ios ur antiomue auzeti aratimue tecametam tatuz iom
tocoitoscue?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 10)
{
llShout(0, "/me > " + transmitter + " shouts: Sarniciocue aiuizas
combalcores aleites iste icues ruzimuz abulu ubocum!"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 11)
{
llShout(0, "/me > " + transmitter + " shouts: Lubos counesicum
melnunos bintis letontu litocum!"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 12)
{
llShout(0, "/me > " + transmitter + " shouts: Abulos bintis melmu
barauzanco lesunos bintis!"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 13)
{
llShout(0, "/me > " + transmitter + " shouts: Letontu ubocum turo
bintis lubinaz aiu bercanticum!"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 14)
{
llShout(0, "/me > " + transmitter + " shouts: Abulos bintis tirtu
aiancum abulos bintis abulu louzocum!"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 15)
{
llShout(0, "/me > " + transmitter + " shouts: Uzeisunos bintis
acainaz letontu uicanocum suostunos..."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 16)
{
llShout(0, "/me > " + transmitter + " shouts: Bintis tirtanos
statulicum lesunos bintis nouantutaz?"

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 17)
{
llShout(0, "/me > " + transmitter + " shouts: Letontu aiancum
melmunos bintis useizu aiancum tauro bintis..."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 1

{
llShout(0, "/me > " + transmitter + " shouts: Abulu aiancum tauro
bintis letontu leticum abulos bintis..."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
if(randLine == 19)
{
llShout(0, "/me > " + transmitter + " shouts: Ucontaz letontu
esocum abulos bintis..."

llOwnerSay("/me > " + transmitter + " shouts: " + text);
}
}
else if (channel == -1)
{
llOwnerSay(text);
}
// If a message will be heard on channel -1, the corresponding
// "unecrypted" text will be shown to the owner.
//
// It will look like this:
// [00:00] Fantasy Translator > Katerina Morgwain: Tirikantam
// bercunetacam tocoitoscue sarnicio cue sua combalcez nelitom.
// [00:02] Fantasy Translator > Katerina Morgwain: Hello!
}
}