Advertisement
SaNCaK

mIRC Translator

Feb 1st, 2014
610
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 8.53 KB | None | 0 0
  1. #TransTrigger on
  2. On $*:Text:/^(!|@)trans.*/Si:#: {
  3.   if ($timer($+(Gtrans,$network,$nick))) { return }
  4.   .timer $+ $+(Gtrans,$network,$nick) 1 4 noop
  5.   var %method $iif($regml(1) == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/),.msg $chan,.notice $nick))
  6.   if (help isin $1) { TransHelp %method | return }
  7.   if (!$3) { %method No text to Translate | TransHelp %method | return }
  8.   if (!$regex($left($2,3),/-|_/)) { %method $2- is unknown to me. | TransHelp %method | return }
  9.   if (!$regex($left($2,2),/en|fr|nl|ru|de|pt|it|es|sq|et|ca|hr|cs|da|et|tl|fi|gl|hu|id|lv|lt|mt|no|pl|ro|sk|sl|sv|tr/i)) {
  10.     %method $2- is unknown to me.
  11.     TransHelp %method
  12.     return
  13.   }
  14.   if (!$regex($right($2,2),/en|fr|nl|ru|de|pt|it|es|sq|et|ca|hr|cs|da|et|tl|fi|gl|hu|id|lv|lt|mt|no|pl|ro|sk|sl|sv|tr/i)) {
  15.     %method $2- is unknown to me.
  16.     TransHelp %method
  17.     return
  18.   }
  19.   trans %method $2 $strip($3-)
  20. }
  21. #TransTrigger end
  22. alias -l TransHelp {
  23.   $1-2 Syntax: !trans L1-L2 Text to translate. L1 = the language you are typing in. L2 = The language you want to translate to.
  24.   $1-2 Valid languages: en,fr,nl,ru,de,pt,it,es,sq,et,ca,hr,cs,da,et,tl,fi,gl,hu,id,lv,lt,mt,no,pl,ro,sk,sl,sv,tr $&
  25.     For a code explanation look here -->> http://code.google.com/apis/ajaxlanguage/documentation/reference.html#LangNameArray
  26. }
  27. alias -l trans {
  28.   var %sockname $+(GTrans,$network,$2,$ticks)
  29.   sockopen %sockname translate.google.com 80
  30.   sockmark %sockname $1-2 $+(/translate_t?langpair=,$lower($replace($3,-,|,_,|)),&ie=UTF-8&oe=UTF-8&text=,$fixurl($4-),#)
  31.  
  32. }
  33. on *:sockopen:GTrans*: {
  34.   if (!$sockerr) {
  35.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  36.     sockwrite -n $sockname Host: translate.google.com $+ $str($CRLF,2)
  37.   }
  38.   else { echo -st socket error $nopath($script) | sockclose $sockname | return }
  39. }
  40. on *:sockread:GTrans*: {
  41.   if ($sockerr) { echo -st socket error $nopath($script) | sockclose $sockname | return }
  42.   else {
  43.     sockread -fn &transvar
  44.     var %counter 1, %result
  45.     while ($bintween(&transvar,onmouseout="this.style.backgroundColor='#fff'">,</span>,%counter)) {
  46.       %result = $+(%result,$chr(32),$v1)
  47.       inc %counter
  48.     }
  49.     if ($bintween(&transvar,onmouseout="this.style.backgroundColor='#fff'">,</span>,1)) {
  50.       $gettok($sock($sockname).mark,1-2,32) $fixhtml(%result)
  51.     }
  52.   }
  53. }
  54. alias -l bintween {
  55.   var %count = 1, %mark = 0, %mark2 = 0
  56.   while (%count <= $4) {
  57.     if ($bfind($1, %mark2, $2).text) {
  58.       %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
  59.       if ($bfind($1, %mark, $3).text) {
  60.         %mark2 = $bfind($1, %mark, $3).text
  61.       }
  62.       else { return 0 }
  63.     }
  64.     else { return 0 }
  65.     inc %count
  66.   }
  67.   return $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
  68. }
  69. alias -l inputencode { return $regsubex($strip($1-),/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2)) }
  70. alias -l fixhtml { return $remove($regsubex($1-,/#([\d][\d][\d]?);/g,$chr(\t)),&amp;,gt;,lt;) }
  71.  
  72. dialog Translate {
  73.   title "Ford-Trans Basic"
  74.   size -1 -1 152 137
  75.   option dbu
  76.   combo 1, 8 8 60 10, drop
  77.   combo 2, 84 8 60 10, drop
  78.   edit "", 3, 8 32 136 82, multi autovs rich
  79.   button "Translate", 5, 56 115 38 12
  80.   combo 6, 84 21 60 10, drop
  81.   button "Close", 7, 104 115 38 12, cancel
  82.   button "Clear Screen", 8, 10 115 37 12
  83.   text "To", 9, 70 10 9 8, center
  84.   text "Translate this text to ------->", 10, 6 22 73 8, right
  85.   text "", 11, -2 128 153 8, center
  86. }
  87. On *:Dialog:Translate:Sclick:8: {
  88.   did -rf $dname 3
  89. }
  90. On *:Dialog:Translate:Sclick:5: {
  91.   if (!$did($dname,3).text) {
  92.     did -a $dname 11 Type some text in the box to translate
  93.     did -f $dname 3
  94.     .timer 1 3 did -a $dname 11
  95.     return
  96.   }
  97.   var %trans.text, %trans.lines = $did($dname,3).lines, %trans.count = 1
  98.   while (%trans.count <= %trans.lines) {
  99.     %trans.text = %trans.text $+ $did($dname,3,%trans.count).text
  100.     inc %trans.count
  101.   }
  102.   if ($did($dname,6).seltext == Echo Here) {
  103.     trans echo -a $langcode($+($did($dname,1).seltext,_,$did($dname,2).seltext)) %trans.text
  104.   }
  105.   else {
  106.     var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  107.     trans msg $did($dname,6).seltext %tlanguages %trans.text    
  108.   }
  109. }
  110. On *:Dialog:Translate:init:*: {
  111.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  112.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  113.   did -c $dname 1 1
  114.   did -c $dname 2 2
  115.   did -ac $dname 6 Echo Here
  116.   if ($chan(0)) {
  117.     var %chan.count = $chan(0)
  118.     while %chan.count {
  119.       did -a $dname 6 $chan(%chan.count)
  120.       dec %chan.count
  121.     }
  122.   }
  123.   if ($query(0)) {
  124.     var %pm.count = $query(0)
  125.     while (%pm.count) {
  126.       did -a $dname 6 $query(%pm.count)
  127.       dec %pm.count
  128.     }
  129.   }
  130. }
  131. alias Trans_Chan {
  132.   if ($dialog(Trans_Chan)) { dialog -v Trans_Chan Trans_Chan }
  133.   else { dialog -m Trans_Chan Trans_Chan }
  134. }
  135. dialog Trans_Chan {
  136.   title "Translate to Channel/Query"
  137.   size -1 -1 136 48
  138.   option dbu
  139.   combo 1, 0 0 60 10, drop
  140.   combo 2, 76 0 60 10, drop
  141.   text "To", 3, 64 2 9 8
  142.   edit "", 4, 0 15 135 10, autohs
  143.   button "Clear", 5, 2 32 37 12
  144.   button "Send", 6, 50 32 37 12
  145.   button "Cancel", 7, 96 32 37 12, cancel
  146. }
  147. On *:Dialog:Trans_Chan:Sclick:6: {
  148.   if (!$did($dname,4).text) { did -f $dname 4 | return }
  149.   else {
  150.     var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  151.     if ($active == status window) { trans echo -a %tlanguages $did($dname,4).text }
  152.     else { trans msg $active %tlanguages $did($dname,4).text }
  153.   }
  154. }
  155. On *:Dialog:Trans_Chan:Sclick:5: { did -rf Trans_Chan 4 }
  156. On *:Dialog:Trans_Chan:init:*: {
  157.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  158.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  159.   did -c $dname 1 1
  160.   did -c $dname 2 2
  161.   did -f $dname 4
  162. }
  163. dialog ClipTrans {
  164.   title "ClipTrans"
  165.   size -1 -1 64 48
  166.   option dbu
  167.   combo 1, 1 0 63 10, drop
  168.   combo 2, 1 20 63 10, drop
  169.   text "To", 3, 24 11 9 8, center
  170.   button "Translate", 4, 1 34 29 12
  171.   button "Close", 5, 34 34 29 12, cancel
  172. }
  173. alias -l ClipTrans {
  174.   if ($dialog(Cliptrans)) { dialog -v Cliptrans Cliptrans }
  175.   else { dialog -m Cliptrans Cliptrans }
  176. }
  177. On *:Dialog:ClipTrans:Sclick:4: {
  178.   var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  179.   if ($cb(0)) { TransClip %tlanguages }
  180.   else { echo -a clipboard is empty }
  181. }
  182. On *:Dialog:ClipTrans:init:*: {
  183.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  184.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  185.   did -c $dname 1 2
  186.   did -c $dname 2 1
  187. }
  188. alias -l httpstrip {
  189.   var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;,&#039;,&#039 ;)
  190.   return %x
  191. }
  192. alias  -l fixurl return $regsubex($utfdecode($utfencode($1-)),/([^a-z0-9\.])/ig,% $+ $base($asc(\t),10,16,2))
  193. alias -l transclip {
  194.   var %clip.count = $cb(0), %clip.counter = 1, %clip.time = 1
  195.   while (%clip.counter <= %clip.count) {
  196.     .timer 1 %clip.time trans echo -a $1 $remove($strip($cb(%clip.counter)),$chr(124))
  197.     inc %clip.counter
  198.     inc %clip.time 2
  199.   }
  200. }
  201. alias -l Ford-Trans {
  202.   if (!$dialog(Translate)) { dialog -m translate translate }
  203.   else { dialog -v translate translate }
  204. }
  205. alias -l langcode {
  206.   var %langcode = $replace($1,english,en,german,de,italian,it,spanish,es,portuguese,pt,french,fr,dutch,nl,albanian,sq,estonian,et,catalan,ca,croatian,hr,czech,cs,$&
  207.     danish,da,estonian,et,filipino,tl,finnish,fi,galician,gl,hungarian,hu,indonesian,id,latvian,lv,lithuanian,lt,maltese,mt,norwegian,no,polish,pl,romanian,ro,slovak,sk,$&
  208.     slovenian,sl,swedish,sv,turkish,tr,russian,ru)
  209.   return %langcode
  210. }
  211. ;****** End of Script....Start of Popups *******
  212. menu channel,status,menubar {
  213.   -
  214.   Translator
  215.   .Send to Channel/Query:Trans_Chan
  216.   .Translate Clipboard Contents:ClipTrans
  217.   .Use Dialogs:Ford-Trans
  218.   .-
  219.   .$iif($group(#TransTrigger) == On,$style(1)) TransTrigger
  220.   ..$iif($group(#TransTrigger) == On,$style(2)) On: .enable #TransTrigger
  221.   ..$iif($group(#TransTrigger) == Off,$style(2)) Off: .disable #TransTrigger
  222.   -
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement