Dynamic Translator by aca20031
Uses google translator to translate lines double clicked in channel or query windows
Use constantly updated list of languages from translate.google.com
This script only translates what's being said to give you a general idea, do not rely on it heavily.
It is not meant to allow you to reply.
Put Translator.mrc into your mIRC directory (//run $mircdir) (usually Documnents > AppData > Roaming > mIRC)
Type in mIRC, /load -rs Translator.mrc
Right click, enable the translator, update the language list if it was not done on load, and then select the languages to translate from and to.
Usually you can use Detect Language as the from language and google will decide what language it is, even if you don't know!
Once set up, simply double click any line in a query or channel window. Disable when not in use so you can click on channels and URLs
Contact aca20031 at ben@st0rm.net and irc.quakenet.org #help.script
C:\Users\Ben\AppData\Roaming\mIRC\
NOT MINE CODE NOT MINE lol just so you lot do not slag me off :) Here is the origanel Link to it http://www.mircscripts.org/comments.php?cid=4297
; Dynamic Translator by Aca20031
on *:LOAD:updatelist
alias -l updatelist {
set %dt.status Updating
sockopen dtlangupdate $+ $ticks translate.google.com 80
message Updating translation language options
}
on *:SOCKOPEN:dtlangupdate*: {
sockwrite -n $sockname GET / HTTP/1.1
sockwrite -n $sockname Host: translate.google.com
sockwrite -n $sockname Connection: Close
sockwrite -n $sockname
}
on *:SOCKREAD:dtlangupdate*: {
if ($sockerr) {
message Error updating language list
set %dt.status Error
}
sockread -f &tmp
bwrite $sockname -1 -1 &tmp
while ($sockbr > 0) {
sockread -f &tmp
if ($sockbr > 0) {
bwrite $sockname -1 -1 &tmp
}
}
}
on *:SOCKCLOSE:dtlangupdate*: {
bread $sockname 1 $file($sockname).size &bvar
.remove $sockname
if ($hget(dt.sl)) {
hfree dt.sl
}
if ($hget(dt.tl)) {
hfree dt.tl
}
hmake dt.sl 1
hmake dt.tl 1
var %sl_start = $bfind(&bvar,1,<select name=sl).text
var %tl_start = $bfind(&bvar,1,<select name=tl).text
var %end = $bfind(&bvar,1,<span class=langselect id=tl_select>).text
var %from = %sl_start
while (%from < %tl_start) {
var %value_start = $calc($bfind(&bvar,%from,60 111 112 116 105 111 110 32 32 118 97 108 117 101 61 34) +16)
var %value_end = $bfind(&bvar,%value_start,").text
var %value = $bvar(&bvar,%value_start,$calc(%value_end - %value_start)).text
var %text_start = $calc($bfind(&bvar,%value_end,>).text +1)
var %text_end = $bfind(&bvar,%text_start,<).text
var %text = $bvar(&bvar,%text_start,$calc(%text_end - %text_start)).text
if (%value != separator) {
if (%value == sv) { hadd dt.sl es Spanish }
hadd dt.sl %value %text
}
var %from = %text_end
}
var %from = %tl_start
while (%from < %end) {
var %value_start = $calc($bfind(&bvar,%from,60 111 112 116 105 111 110 32 32 118 97 108 117 101 61 34) +16)
var %value_end = $bfind(&bvar,%value_start,").text
var %value = $bvar(&bvar,%value_start,$calc(%value_end - %value_start)).text
var %text_start = $calc($bfind(&bvar,%value_end,>).text +1)
var %text_end = $bfind(&bvar,%text_start,<).text
var %text = $bvar(&bvar,%text_start,$calc(%text_end - %text_start)).text
if (%value != separator) {
if ($hget(dt.tl,%value) || Date isin %value) {
break
}
if (%value == et) { hadd dt.tl en English }
hadd dt.tl %value %text
}
var %from = %text_end
}
message Updated list of languages
set %dt.status Ready
}
alias -l message {
echo -atg Translator: $$1-
}
menu channel,query {
Translator
.$submenu($enabled($1))
.Update Language List:updatelist
.Translate From
..$submenu($from($1))
.Translate To
..$submenu($to($1))
}
alias -l enabled {
if $1 == 1 { return $iif(%dt.enabled,Disable:set % $+ dt.enabled 0,Enable:set % $+ dt.enabled 1) }
}
alias -l from {
if (!%dt.enabled || %dt.status != Ready || $1 == Begin || $1 == End) { return }
if ($hget(dt.sl,$calc($hget(dt.sl,0).item - $1 +1)).item) {
var %v = $ifmatch
if (%dt.from == %v) {
return $style(1) $hget(dt.sl,%v) $+ : $+ message Language already selected
}
else {
return $hget(dt.sl,%v) $+ : $+ select_from %v
}
}
}
alias -l to {
if (!%dt.enabled || %dt.status != Ready || $1 == Begin || $1 == End) { return }
if ($hget(dt.tl,$calc($hget(dt.tl,0).item - $1 +1)).item) {
var %v = $ifmatch
if (%dt.to == %v) {
return $style(1) $hget(dt.tl,%v) $+ : $+ message Language already selected
}
else {
return $hget(dt.sl,%v) $+ : $+ select_to %v
}
}
}
alias -l select_from {
set %dt.from $1
}
alias -l select_to {
set %dt.to $1
}
on ^*:HOTLINK:*:*:if (!%dt.enabled || %dt.status != Ready || !%dt.to || !%dt.from || ($active !ischan && !$query($active))) { halt }
on *:HOTLINK:*:*: {
if (!%dt.enabled || %dt.status != Ready || !%dt.to || !%dt.from) { halt }
/*
var %from_window = $active
var %w = @window $+ $ticks $+ $rand(1,99999)
window %w
filter -wwz %from_window %w *
iline %w $hotlinepos Test.
; clear %from_window
echo -atg filter -dza %w testing
*/
translate_and_append $activecid $active $strip($hotline)
}
alias -l translate_and_append {
var %s = dt. $+ $ticks $+ $rand(1,9999)
sockopen %s translate.google.com 80
sockmark %s $1-
}
on *:SOCKOPEN:dt.*: {
var %request = $+(text=,$gettok($sock($sockname).mark,3-,32),&sl=,%dt.from,&tl=,%dt.to)
sockwrite -n $sockname POST /translate_t HTTP/1.1
sockwrite -n $sockname Host: translate.google.com
sockwrite -n $sockname Accept-Encoding: gzip,deflate
sockwrite -n $sockname Connection: close
sockwrite -n $sockname Content-Length: $len(%request)
sockwrite -n $sockname
sockwrite -n $sockname %request
sockwrite -n $sockname
}
on *:SOCKREAD:dt.*: {
if ($sockerr) {
message Error downloading translation response
}
sockread -f &tmp
bwrite $sockname -1 -1 &tmp
while ($sockbr > 0) {
sockread -f &tmp
if ($sockbr > 0) {
bwrite $sockname -1 -1 &tmp
}
}
}
on *:SOCKCLOSE:dt.*: {
bread $sockname 1 $file($sockname).size &bvar
.remove $sockname
var %start = $calc($bfind(&bvar,1,<div id=result_box dir="ltr">).text + $len(<div id=result_box dir="ltr">))
var %end = $bfind(&bvar,%start,</div>)
scid $gettok($sock($sockname).mark,1,32) echo $gettok($sock($sockname).mark,2,32) 3Translation: $html($bvar(&bvar,%start,$calc(%end - %start)).text)
}
alias -l html {
return $regsubex($replacex($1-,<,<,>,>,","),&#(\d+);,$chr(\1))
}