/*
I did have the language list here, but this forum doesn't like the alt+255 I used to keep the spacing.
*/
;~~~~~~~~~~~~~~~
alias -l urlencode {
return $replace($regsubex($1,/(\W)/g,% $+ $base($asc(\1),10,16,2)),$chr(32),+)
}
alias _trans {
if ($sock(trans)) {
.sockclose trans
}
sockopen trans translate.google.ca 80
sockmark trans $urlencode($$1-)
}
on *:sockopen:trans: {
if ($sockerr) {
echo 4 -s * /_trans: sockopen error: $v1
}
else {
set %trans.lang $gettok($readini(languages\settings.ini,selected, [ $+ [ $ini(languages\settings.ini,selected,1) ] ] ),1,44)
sockwrite -n trans GET $+(/translate_a/t?client=t&text=,$sock(trans).mark,&sl=en&tl= [ $+ [ %trans.lang ] ] ) HTTP/1.0
sockwrite trans Host: translate.google.ca $str($crlf,2)
sockmark trans
}
}
on *:sockread:trans: {
if ($sockerr) {
echo 4 -s * /_trans: sockread error: $v1
}
var %a
sockread -f %a
if ($sock(trans).mark) {
tokenize 44 $remove(%a,],[,")
echo -a Translation of $qt($2) from English to $ini(languages\settings.ini,selected,1) is $qt($regsubex($1,/\\u([^\\]+)/g,$chr($base(\1,16,10))))
}
elseif (!%a) {
sockmark trans 1
}
}
;~~~~~~~~~~~~~~~
alias langfull {
if ($1 == Auto) { return Auto }
elseif ($1 == af) { return Afrikaans }
elseif ($1 == sq) { return Albanian }
elseif ($1 == ar) { return Arabic }
elseif ($1 == hy) { return Armenian }
elseif ($1 == az) { return Azerbaijani }
elseif ($1 == eu) { return Basque }
elseif ($1 == be) { return Belarusian }
elseif ($1 == bn) { return Bengali }
elseif ($1 == bg) { return Bulgarian }
elseif ($1 == ca) { return Catalan }
elseif ($1 == zh-TW) { return Chinese (Tradiditonal) }
elseif ($1 == zh-CN) { return Chinese (Simplified) }
elseif ($1 == hr) { return Croatian }
elseif ($1 == cs) { return Czech }
elseif ($1 == da) { return Danish }
elseif ($1 == nl) { return Dutch }
elseif ($1 == en) { return English }
elseif ($1 == ct) { return Estonian }
elseif ($1 == tl) { return Filipino }
elseif ($1 == fi) { return Finnish }
elseif ($1 == fr) { return French }
elseif ($1 == gl) { return Galician }
elseif ($1 == ka) { return Georgian }
elseif ($1 == de) { return German }
elseif ($1 == el) { return Greek }
elseif ($1 == gu) { return Gujarati }
elseif ($1 == ht) { return Hatian Creole }
elseif ($1 == iw) { return Hebrew }
elseif ($1 == hi) { return Hindi }
elseif ($1 == hu) { return Hungarian }
elseif ($1 == is) { return Icelandic }
elseif ($1 == id) { return Indonesian }
elseif ($1 == ga) { return Irish }
elseif ($1 == it) { return Italian }
elseif ($1 == ja) { return Japanese }
elseif ($1 == kn) { return Kannada }
elseif ($1 == ko) { return Korean }
elseif ($1 == la) { return Latin }
elseif ($1 == lv) { return Latvian }
elseif ($1 == lt) { return Lithuanian }
elseif ($1 == mk) { return Macedonian }
elseif ($1 == ma) { return Malay }
elseif ($1 == mt) { return Maltese }
elseif ($1 == no) { return Norwegian }
elseif ($1 == fa) { return Persian }
elseif ($1 == pl) { return Polish }
elseif ($1 == pt) { return Portuguese }
elseif ($1 == ro) { return Romanian }
elseif ($1 == ru) { return Russian }
elseif ($1 == sr) { return Serbian }
elseif ($1 == sk) { return Slovak }
elseif ($1 == sl) { return Slovenian }
elseif ($1 == es) { return Spanish }
elseif ($1 == sw) { return Swahili }
elseif ($1 == sv) { return Swedish }
elseif ($1 == ta) { return Tamil }
elseif ($1 == te) { return Teluga }
elseif ($1 == th) { return Thai }
elseif ($1 == tr) { return Turkish }
elseif ($1 == uk) { return Ukrainian }
elseif ($1 == ur) { return Urdu }
elseif ($1 == vi) { return Vietnamese }
elseif ($1 == cy) { return Welsh }
elseif ($1 == yi) { return Yiddish }
}
menu menubar {
Language $+($chr(40),$ini(languages\settings.ini,selected,1),$chr(41))
.Dialog: dialog -m lang lang
.-
.Select your language [1-32]
..Select your language [32-64]
...Irish: $w_lan(irish ga)
...Italian: $w_lan(italian it)
...Japanese: $w_lan(japanese ja)
...Kannada: $w_lan(kannada kn)
...Korean: $w_lan(korean ko)
...Latin: $w_lan(latin la)
...Latvian: $w_lan(latvian lv)
...Lithuanian: $w_lan(lithuanian lt)
...Macedonian: $w_lan(macedonian mk)
...Malay: $w_lan(malay ms)
...Maltese: $w_lan(maltese mt)
...Norwegian: $w_lan(norwegian no)
...Persian: $w_lan(persian fa)
...Polish: $w_lan(polish pl)
...Portuguese: $w_lan(portuguese pt)
...Romanian: $w_lan(romanian ro)
...Russian: $w_lan(russian ru)
...Serbian: $w_lan(serbian sr)
...Slovak: $w_lan(slovak sk)
...Slovenian: $w_lan(slovenian sl)
...Spanish: $w_lan(spanish es)
...Swahili: $w_lan(swahili sw)
...Swedish: $w_lan(swedish sv)
...Tamil: $w_lan(tamil ta)
...Telugu: $w_lan(telugu te)
...Thai: $w_lan(thai th)
...Turkish: $w_lan(turkish tr)
...Ukrainian: $w_lan(ukrainian uk)
...Urdu: $w_lan(urdu ur)
...Vietnamese: $w_lan(vietnamese vi)
...Welsh: $w_lan(welsh cy)
...Yiddish: $w_lan(yiddish yi)
..-
..Afrikaans: $w_lan(afrikaans af)
..Albanian: $w_lan(albanian sq)
..Arabic: $w_lan(arabic ar)
..Armenian: $w_lan(armenian hy)
..Azerbaijani: $w_lan(azerbaijani az)
..Basque: $w_lan(basque eu)
..Belarusian: $w_lan(belarusian be)
..Bengali: $w_lan(bengali bn)
..Bulgarian: $w_lan(bulgarian bg)
..Catalan: $w_lan(catalan ca)
..Chinese: (simple) $w_lan(chinese1 zh-CN)
..Chinese: (Traditional) $w_lan(chinese2 zh-TW)
..Croatian: $w_lan(croatian hr)
..Czech: $w_lan(czech cs)
..Danish: $w_lan(danish da)
..Dutch: $w_lan(dutch nl)
..English: $w_lan(english en)
..Estonian: $w_lan(estonian ct)
..Filipino: $w_lan(filipino tl)
..Finnish: $w_lan(finnish fi)
..French: $w_lan(french fr)
..Galician: $w_lan(galician gl)
..Georgian: $w_lan(georgian ka)
..German: $w_lan(german de)
..Greek: $w_lan(greek el)
..Gujarati: $w_lan(gujarati gu)
..Haitian: Creole $w_lan(haitian_creole ht)
..Hebrew: $w_lan(hebrew iw)
..Hindi: $w_lan(hindi hi)
..Hungarian: $w_lan(hungarian hu)
..Icelandic: $w_lan(icelandic is)
..Indonesian: $w_lan(indonesian id)
}
dialog lang {
size -1 -1 100 110
option dbu
box "Languages", 1, 0 0 100 100
list 2, 2 8 96 90, size
button "Set", 3, 0 100 100 10
}
on *:dialog:*:*:*: {
if ($dname == lang) {
if ($devent == init) {
dialog -t $dname Language Selector
did -a $dname 1 Languages
var %a 1
while (%a <= $ini(languages\settings.ini,langs,0)) {
did -a $dname 2 $ini(languages\settings.ini,langs,%a)
inc %a
}
did -a $dname 3 Set
}
if ($devent == sclick) {
if ($did == 3) {
remini languages\settings.ini selected
writeini languages\settings.ini selected $ini(languages\settings.ini,langs,$did(2).sel) $readini(languages\settings.ini,langs,$did(2).seltext)
echo -a check!
}
}
}
}
alias ff {
if (!%ff. [ $+ [ $1- ] ]) || (!$exists(%ff. [ $+ [ $1- ] ])) {
set %ff. [ $+ [ $1- ] ] $qt($longfn($findfile($nofile($mircexe),$1-,1)))
}
return %ff. [ $+ [ $1- ] ]
unset %ff.*
}
alias w_lan {
if ($ff(languages.ini) == $null) {
writeini languages\settings.ini creation date $date(dddd $+ $chr(44) mmmm dd $+ $chr(44) yyyy)
writeini languages\settings.ini creation time $time(hh:nn:ss TT)
writeini languages\settings.ini default English en
}
remini languages\settings.ini selected $ini(languages\settings.ini,selected,1)
writeini languages\settings.ini selected $1-
;translate this line...
echo -s Language has been switched to $langfull($readini(languages\settings.ini,langs,selected, [ $+ [ $ini(languages\settings.ini,selected,1) ] ] ))
}
/*
need on input event to translate outgoing messages
need on text event to translate incoming messages