Advertisement
Ford

Easy google translator mIRC script

Sep 6th, 2012
1,118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 9.60 KB | None | 0 0
  1. ;***
  2. ;***
  3. ;Easy mIRC Translator by Ford_Lawnmower irc.GeekShed.net #Script-Help
  4. ;This script gets a translation from Google Translator
  5. ;There are 4 options for how to use this translator
  6. ;1.) Basic Bot trigger w/on|off switch. Syntax: !trans L1-L2 text or !trans L1_L2 text. Result: Sent to the channel.
  7. ;2.) Send to Channel/Query Dialog - Select languages, enter text. Result: Sent to Active Channel/Query | echo to Status.
  8. ;3.) Translate Clipboard Contents Dialog - Copy text to clipboard,Click translate. Result: Echo to active screen.
  9. ;4.) Use Dialogs - Select languages,Enter text,Select destination,Click translate. Result: Your choice.
  10. ;Translates 28 languages. All translations come from Google,therefore the accuracy has nothing to do with this script.
  11. ;***
  12. ;***
  13. #TransTrigger off
  14. On $*:Text:/^(!|@)trans.*/Si:#: {
  15.   if ($timer($+(Gtrans,$network,$nick))) { return }
  16.   .timer $+ $+(Gtrans,$network,$nick) 1 4 noop
  17.   var %method $iif($regml(1) == !,.notice $nick,$iif($regex($nick($chan,$nick).pnick,/(!|~|&|@|%)/),.msg $chan,.notice $nick))
  18.   if (help isin $1) { TransHelp %method | return }
  19.   if (!$3) { %method No text to Translate | TransHelp %method | return }
  20.   if (!$regex($left($2,3),/-|_/)) { %method $2- is unknown to me. | TransHelp %method | return }
  21.   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)) {
  22.     %method $2- is unknown to me.
  23.     TransHelp %method
  24.     return
  25.   }
  26.   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)) {
  27.     %method $2- is unknown to me.
  28.     TransHelp %method
  29.     return
  30.   }
  31.   trans %method $2 $strip($3-)
  32. }
  33. #TransTrigger end
  34. alias -l TransHelp {
  35.   $1-2 Syntax: !trans L1-L2 Text to translate. L1 = the language you are typing in. L2 = The language you want to translate to.
  36.   $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 $&
  37.     For a code explanation look here -->> http://code.google.com/apis/ajaxlanguage/documentation/reference.html#LangNameArray
  38. }
  39. alias -l trans {
  40.   var %sockname $+(GTrans,$network,$2,$ticks)
  41.   sockopen %sockname translate.google.com 80
  42.   sockmark %sockname $1-2 $+(/translate_t?langpair=,$lower($replace($3,-,|,_,|)),&ie=UTF-8&oe=UTF-8&text=,$fixurl($4-),#)
  43.  
  44. }
  45. on *:sockopen:GTrans*: {
  46.   if (!$sockerr) {
  47.     sockwrite -nt $sockname GET $gettok($sock($sockname).mark,3,32) HTTP/1.0
  48.     sockwrite -n $sockname Host: translate.google.com $+ $str($CRLF,2)
  49.   }
  50.   else { echo -st socket error $nopath($script) | sockclose $sockname | return }
  51. }
  52. on *:sockread:GTrans*: {
  53.   if ($sockerr) { echo -st socket error $nopath($script) | sockclose $sockname | return }
  54.   else {
  55.     sockread -fn &transvar
  56.     var %counter 1, %result
  57.     while ($bintween(&transvar,onmouseout="this.style.backgroundColor='#fff'">,</span>,%counter)) {
  58.       %result = $+(%result,$chr(32),$v1)
  59.       inc %counter
  60.     }
  61.     if ($bintween(&transvar,onmouseout="this.style.backgroundColor='#fff'">,</span>,1)) {
  62.       $gettok($sock($sockname).mark,1-2,32) $fixhtml(%result)
  63.     }
  64.   }
  65. }
  66. alias -l bintween {
  67.   var %count = 1, %mark = 0, %mark2 = 0
  68.   while (%count <= $4) {
  69.     if ($bfind($1, %mark2, $2).text) {
  70.       %mark = $calc($bfind($1, %mark2, $2).text + $len($2))
  71.       if ($bfind($1, %mark, $3).text) {
  72.         %mark2 = $bfind($1, %mark, $3).text
  73.       }
  74.       else { return 0 }
  75.     }
  76.     else { return 0 }
  77.     inc %count
  78.   }
  79.   return $bvar($1, $iif(%mark > 0,%mark,1), $calc(%mark2 - %mark)).text
  80. }
  81. alias -l inputencode { return $regsubex($strip($1-),/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2)) }
  82. alias -l fixhtml { return $remove($regsubex($1-,/#([\d][\d][\d]?);/g,$chr(\t)),&amp;,gt;,lt;) }
  83. ON *:Start:{
  84.   Echo -a 4 6You have just loaded 3F4o5r6d7-9T3r4a5n6s7l9a3t4o5r 4 6English Version.
  85.   Echo -a 4 6By Ford_Lawnmower
  86.   Echo -a 4 6Questions and comments,  You can find me in #Script-Help on irc.geekshed.net
  87.   Echo -a 4 6irc://irc.geekshed.net
  88. }
  89. dialog Translate {
  90.   title "Ford-Trans Basic"
  91.   size -1 -1 152 137
  92.   option dbu
  93.   combo 1, 8 8 60 10, drop
  94.   combo 2, 84 8 60 10, drop
  95.   edit "", 3, 8 32 136 82, multi autovs rich
  96.   button "Translate", 5, 56 115 38 12
  97.   combo 6, 84 21 60 10, drop
  98.   button "Close", 7, 104 115 38 12, cancel
  99.   button "Clear Screen", 8, 10 115 37 12
  100.   text "To", 9, 70 10 9 8, center
  101.   text "Translate this text to ------->", 10, 6 22 73 8, right
  102.   text "", 11, -2 128 153 8, center
  103. }
  104. On *:Dialog:Translate:Sclick:8: {
  105.   did -rf $dname 3
  106. }
  107. On *:Dialog:Translate:Sclick:5: {
  108.   if (!$did($dname,3).text) {
  109.     did -a $dname 11 Type some text in the box to translate
  110.     did -f $dname 3
  111.     .timer 1 3 did -a $dname 11
  112.     return
  113.   }
  114.   var %trans.text, %trans.lines = $did($dname,3).lines, %trans.count = 1
  115.   while (%trans.count <= %trans.lines) {
  116.     %trans.text = %trans.text $+ $did($dname,3,%trans.count).text
  117.     inc %trans.count
  118.   }
  119.   if ($did($dname,6).seltext == Echo Here) {
  120.     trans echo -a $langcode($+($did($dname,1).seltext,_,$did($dname,2).seltext)) %trans.text
  121.   }
  122.   else {
  123.     var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  124.     trans msg $did($dname,6).seltext %tlanguages %trans.text    
  125.   }
  126. }
  127. On *:Dialog:Translate:init:*: {
  128.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  129.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  130.   did -c $dname 1 1
  131.   did -c $dname 2 2
  132.   did -ac $dname 6 Echo Here
  133.   if ($chan(0)) {
  134.     var %chan.count = $chan(0)
  135.     while %chan.count {
  136.       did -a $dname 6 $chan(%chan.count)
  137.       dec %chan.count
  138.     }
  139.   }
  140.   if ($query(0)) {
  141.     var %pm.count = $query(0)
  142.     while (%pm.count) {
  143.       did -a $dname 6 $query(%pm.count)
  144.       dec %pm.count
  145.     }
  146.   }
  147. }
  148. alias Trans_Chan {
  149.   if ($dialog(Trans_Chan)) { dialog -v Trans_Chan Trans_Chan }
  150.   else { dialog -m Trans_Chan Trans_Chan }
  151. }
  152. dialog Trans_Chan {
  153.   title "Translate to Channel/Query"
  154.   size -1 -1 136 48
  155.   option dbu
  156.   combo 1, 0 0 60 10, drop
  157.   combo 2, 76 0 60 10, drop
  158.   text "To", 3, 64 2 9 8
  159.   edit "", 4, 0 15 135 10, autohs
  160.   button "Clear", 5, 2 32 37 12
  161.   button "Send", 6, 50 32 37 12
  162.   button "Cancel", 7, 96 32 37 12, cancel
  163. }
  164. On *:Dialog:Trans_Chan:Sclick:6: {
  165.   if (!$did($dname,4).text) { did -f $dname 4 | return }
  166.   else {
  167.     var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  168.     if ($active == status window) { trans echo -a %tlanguages $did($dname,4).text }
  169.     else { trans msg $active %tlanguages $did($dname,4).text }
  170.   }
  171. }
  172. On *:Dialog:Trans_Chan:Sclick:5: { did -rf Trans_Chan 4 }
  173. On *:Dialog:Trans_Chan:init:*: {
  174.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  175.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  176.   did -c $dname 1 1
  177.   did -c $dname 2 2
  178.   did -f $dname 4
  179. }
  180. dialog ClipTrans {
  181.   title "ClipTrans"
  182.   size -1 -1 64 48
  183.   option dbu
  184.   combo 1, 1 0 63 10, drop
  185.   combo 2, 1 20 63 10, drop
  186.   text "To", 3, 24 11 9 8, center
  187.   button "Translate", 4, 1 34 29 12
  188.   button "Close", 5, 34 34 29 12, cancel
  189. }
  190. alias -l ClipTrans {
  191.   if ($dialog(Cliptrans)) { dialog -v Cliptrans Cliptrans }
  192.   else { dialog -m Cliptrans Cliptrans }
  193. }
  194. On *:Dialog:ClipTrans:Sclick:4: {
  195.   var %tlanguages = $langcode($+($did($dname,1).seltext,|,$did($dname,2).seltext))
  196.   if ($cb(0)) { TransClip %tlanguages }
  197.   else { echo -a clipboard is empty }
  198. }
  199. On *:Dialog:ClipTrans:init:*: {
  200.   didtok $dname 1,2 44 English,German,Italian,Russian,Spanish,Portuguese,French,Dutch,Albanian,Estonian,Catalan,Croatian,Czech,Danish,Estonian,Filipino
  201.   didtok $dname 1,2 44 Galician,Hungarian,Indonesian,Latvian,Lithuanian,Maltese,Norwegian,Polish,Romanian,Slovak,Slovenian,Swedish,Turkish
  202.   did -c $dname 1 2
  203.   did -c $dname 2 1
  204. }
  205. alias -l httpstrip {
  206.   var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;,&#039;,&#039 ;)
  207.   return %x
  208. }
  209. alias  -l fixurl return $regsubex($utfdecode($utfencode($1-)),/([^a-z0-9\.])/ig,% $+ $base($asc(\t),10,16,2))
  210. alias -l transclip {
  211.   var %clip.count = $cb(0), %clip.counter = 1, %clip.time = 1
  212.   while (%clip.counter <= %clip.count) {
  213.     .timer 1 %clip.time trans echo -a $1 $remove($strip($cb(%clip.counter)),$chr(124))
  214.     inc %clip.counter
  215.     inc %clip.time 2
  216.   }
  217. }
  218. alias -l Ford-Trans {
  219.   if (!$dialog(Translate)) { dialog -m translate translate }
  220.   else { dialog -v translate translate }
  221. }
  222. alias -l langcode {
  223.   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,$&
  224.     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,$&
  225.     slovenian,sl,swedish,sv,turkish,tr,russian,ru)
  226.   return %langcode
  227. }
  228. ;****** End of Script....Start of Popups *******
  229. menu channel,status,menubar {
  230.   -
  231.   Utilities
  232.   .Google Translator
  233.   ..Send to Channel/Query:Trans_Chan
  234.   ..Translate Clipboard Contents:ClipTrans
  235.   ..Use Dialogs:Ford-Trans
  236.   ..$iif($group(#TransTrigger) == On,$style(1)) TransTrigger
  237.   ...$iif($group(#TransTrigger) == On,$style(2)) On: .enable #TransTrigger
  238.   ...$iif($group(#TransTrigger) == Off,$style(2)) Off: .disable #TransTrigger
  239.   -
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement