Translator
Platform: mIRC
Published Mar 04, 2008
Updated Jun 25, 2008
This is a translator script that I made, it uses
Google Translator. It translates English, Spanish, French, Italian, Portuguese, Dutch, and German. But most languages only translate into English.
Syntax: [!translate|/translate] [from-to] [words]
Examples:
/translate fr-en au revoir
!translate es-en Tengo un script muy interesante!
Also, there's a dialog. Right click on any window and click "Translator". You click the original language from the left, and then click the language you want to translate to on the right. Type what you want to translate in the edit box, and click "Translate". The translation will show up in the read-only edit box below it.
Screens
Enjoy
;~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
; Translator *
; Made by MountainDew ~
; IRC.DeltaAnime.Net » #Lindrian #mIRC-Scripting *
; US.UnderNet.Org » #Hawkee.com #mircscripting ~
;*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*
menu * {
Translator: trans_dialog
}
alias trans_dialog dialog $iif($dialog(trans),-v,-m) trans trans
dialog trans {
title "Translator"
size -1 -1 99 137
option dbu
list 1, 8 22 35 49, size
list 2, 56 22 35 49, size
box "To", 3, 53 13 41 61
box "From", 4, 5 13 41 61
text "Translator", 5, 37 3 29 8
edit "", 6, 9 79 83 10, multi autohs autovs
button "OK", 7, 40 126 20 9, ok cancel
button "Translate", 8, 36 91 28 9, disable
box "Translation", 9, 5 103 89 20
edit "", 10, 8 111 83 10, read multi autovs
}
on *:dialog:trans:*:*:{
if ($devent == init) {
didtok trans 1,2 32 English Spanish French Portuguese German Dutch Italian
}
if ($devent == sclick) {
if ($did isnum 1-2) {
if ($did(trans,2).seltext) && ($did(trans,1).seltext) && ($did(trans,6).text) did -e trans 8
did -r trans 10
}
if ($did == 8) {
if ($did(trans,1).seltext == $did(trans,2).seltext) {
noop $input(You can't translate to the same language!,ho,Error!)
did -b trans 8
halt
}
did -b trans 8
did -r trans 10
set %t.d 1
sockopen trans translate.google.com 80
sockmark trans $+($lang($did(trans,1).seltext),~,$lang($did(trans,2).seltext),~,$did(trans,6))
}
}
if ($devent == edit) {
did $iif($did(trans,6).text && $did(Trans,2).seltext,-e,-b) trans 8
did -r trans 10
}
}
alias translate {
if ($sock(trans)) {
%t.msg There's already a translation in progress.
halt
}
set %t.msg $iif(%t.chan,msg $v1,echo -a)
if (!$regex($$1,/^(?:it|pt|es|nl|de|fr|en)-(?:it|pt|es|nl|de|fr|en)\b/i)) {
%t.msg Syntax: $iif(%t.chan,!,/) $+ translate from-to [words]
%t.msg Languages: English (en) French (fr) Spanish (es) Italian (it) Portuguese (pt) German (de) Dutch (nl)
halt
}
elseif (!$2) {
%t.msg Syntax: $iif(%t.chan,!,/) $+ translate from-to [words]
halt
}
if ($left($1,2) == $right($1,2)) {
%t.msg You can't translate into the same language!
halt
}
sockopen trans translate.google.com 80
sockmark trans $+($left($1,2),~,$right($1,2),~,$2-)
$iif(%t.chan,describe $v1 translates,echo -a Translating) $qt($2-) from $replace($1,-,$chr(32) to $chr(32),es,Spanish,en,English,fr,French,it,Italian,pt,Portuguese,nl,Dutch,de,German) $+ ...
}
on *:sockopen:trans:{
sockwrite -nt $sockname GET $+(/translate_t?langpair=,$gm($sockname,1,126),$chr(124),$gm($sockname,2,126),&text=,$replace($gm($sockname,3,126),$chr(32),+)) HTTP/1.1
sockwrite -nt $sockname Host: translate.google.com
sockwrite -nt $sockname $crlf
}
on *:sockread:trans:{
sockread &x
if ($bfind(&x,1,<div id=result_box)) {
sockmark $sockname $+($sock($sockname).mark,~,$replace($bvar(&x,$calc($v1 + 29),$calc($bfind(&x,$v1,</div>)- $v1 -29)).text,','))
if (%t.d) {
did -a trans 10 $gm($sockname,4,126)
did -e trans 8
}
else %t.msg 4Translation: $gm($sockname,4,126)
sockclose $sockname
unset %t.*
}
}
alias lang return $replace($1,Spanish,es,English,en,French,fr,Portuguese,pt,Italian,it,Dutch,nl,German,de)
alias gm return $gettok($sock($1).mark,$2,$3)
alias trans translate $1-
on $*:text:/^[!@.]trans(lat(e|ion))?\b/Si:#:{
set %t.chan $chan
translate $2-
}