....................................../////.===Shadow-Here===./////................................................ > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < > < ------------------------------------------------------------------------------------------------------------------- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// RIFF¤ WEBPVP8 ˜ ðÑ *ôô>‘HŸK¥¤"§£±¨àð enü¹%½_F‘åè¿2ºQú³íªú`N¿­3ÿƒügµJžaÿ¯ÿ°~¼ÎùnúîÞÖô•òíôÁÉß®Sm¥Ü/ ‡ó˜f£Ùà<˜„xëJ¢Ù€SO3x<ªÔ©4¿+ç¶A`q@Ì“Úñè™ÍÿJÌ´ª-˜ÆtÊÛL]Ïq*‘Ý”ì#ŸÌÏãY]@ê`¿ /ªfkØB4·®£ó z—Üw¥Pxù–ÞLШKÇN¾AkÙTf½è'‰g gÆv›Øuh~ a˜Z— ïj*á¥t d£“uÒ ¨`K˜¹ßþ]b>˜]_ÏÔ6W—è2r4x•íÖ…"ƒÖNîä!¦å Ú}ýxGøÌ —@ ;ÆÚŠ=ɾ1ý8lªË¥ô ^yf®Œ¢u&2©nÙÇ›ñÂñŒ³ aPo['½»øFùà­+4ê“$!lövlüÞ=;N®3ð‚õ›DÉKòÞ>ÄÍ ¥ˆuߤ#ˆ$6ù™¥îЇy’ÍB¼ çxÛ;X"WL£R÷͝*ó-¶Zu}º.s¸sšXqù–DþÿvªhüïwyŸ ¯é³lÀ:KCûÄ£Ëá\…­ ~—ýóî ¼ûûÜTÓüÇy…ŽÆvc»¾×U ñ¸žþоP÷¦ó:Ò¨¨5;Ð#&#ÖúñläÿÁœ GxÉ­/ñ‡áQðìYÉtÒw޼GÔ´zàÒò ð*ëzƒ•4~H]Ø‹f ñÓÈñ`NåWçs'ÆÏW^ø¹!XžµmQ5ÃËoLœÎ: ÞËÍ¥J ù…î èo£ßPÎñ¶ž8.Œ]ʵ~5›ÙË-ù*8ÙÖß±~ ©¹rÓê‚j¶d¸{^Q'˜±Crß ÚH—#¥¥QlÀ×ëã‡DÜ«èî þ&Çæžî;ŽÏºò6ÒLÃXy&ZŒ'j‚¢Ù€IßÚù+–MGi‰*jE€‘JcÜ ÓÌ EÏÚj]o˜ Þr <¾U ûŪæÍ/šÝH¥˜b”¼ ÁñßX GP›ï2›4WŠÏà×£…íÓk†¦H·ÅíMh–*nó÷à]ÁjCº€b7<ب‹¨5車bp2:Á[UªM„QŒçiNMa#<5›áËó¸HýÊ"…×Éw¹¦ì2º–x<›»a±¸3Weü®FÝ⑱ö–î–³|LPÈ~çð~Çå‡|º kD¢µÏàÆAI %1À% ¹Ò – ”ϝS¦‰4&¶£°à Öý”û_Ò Áw°A«Å€?mÇÛgHÉ/8)á¾ÛìáöŽP í¨PŸNÙµº¦‡§Ùš"ÿ«>+ªÕ`Ê÷‡‚ß Õû˜þãÇ-PÍ.¾XV‘€ dÜ"þ4¹ ±Oú‘©t¥¦FªÄÃÄ•b‚znýu½—#cDs˜ÃiÑOˆñ×QO=*IAÊ,¶ŽZƒ;‡wøXè%EÐk:F±Ú” .Ѽ+Áu&Ç`."pÈÉw o&¿dE6‘’EqTuK@Ì¥ã™À(Êk(h‰,H}RÀIXÛš3µ1©_OqÚÒJAñ$ÊÙÜ;D3çŒ[þùœh¬Ã³™ö6ç†NY".Ú‰ï[ªŸŒ '²Ð öø_¨ÂÉ9ué¶³ÒŠõTàîMØ#û¯gN‡bÙ놚X„ö …ÉeüÌ^J ‹€.œ$Æ)βÄeæW#óüßĺŸ€ ÀzwV 9oä»f4V*uB «Ë†¹ì¯žR霓æHXa=&“I4K;¯ç‹h×·"UŠ~<•╪Vêª&ÍSÃÆÅ?ÔqÎ*mTM ˜›µwêd#[C¡©§‘D<©àb†–ÁœøvH/,í:¯( ²£|4-„Æövv„Yͼ™^Á$ˆ„¢Û[6yB.åH*V¨æ?$=˜Ñ€•ñ·­(VlŸ‘ nÀt8W÷´Bûba?q9ú¶Xƒl«ÿ\ù¶’þòUÐj/õ¢Ìµ³g$ƒÎR!¸»|Oߍë’BhîÚÑ¢ñåŒJ„®„£2Ð3•ô02Nt…!£Í]Ïc½Qÿ?ˆ<&ÃA¾Ú,JˆijÌ#5yz„‰Î|ÊŽ5QÏ:‹ÐaóVÔxW—CpeÏzÐïíçôÿÅ_[hãsÐ_/ŽTÝ?BîˆííV$<¿i>²F¬_Eß¿ †bÊŒº­ÿ®Z H“C}”¬,Mp ý/Bá£w>˜YV°aƒúh+cŠ- r/[%|üUMHäQ°X»|û/@|°¥Ð !BÔ Ç¢Ä©š+Õì D«7ìN¶ŽðÔ " ƶ’ÖçtA‰Û×}{tþz­¾GÍ›k¹OEJR$ Â׃ «ëÁ"oÉôž$oUK(Ä)Ãz³Ê-‹êN[Ò3Œñbï8P 4ƒ×q¢bo|?<ÛX¬òÄͰL–±›(™ûG?ýË©ÚÄ–ÂDØÐ_Ç¡ô ¾–ÄÏø ×e8Ë©$ÄF¹Å‹ì[©óìl:F¾f´‹‹Xì²ï®\¬ôùƒ ÿat¥óèÒùHß0äe‚;ü×h:ÆWðHž=Ã8骣"kœ'Y?³}Tûè€>?0l›e1Lòñ„aæKÆw…hÖŠùW…ÈÆÄ0ši·›[pcwËþñiêíY/~-Á5˜!¿†A›™Mÿþ(±“t@â“ö2­´TG5yé]çå僳 .·ÍïçÝ7UÚ±Ð/Nè»,_Ï ùdj7\ï Wì4›„»c¸àešg#ÒÊ⥭áØo5‘?ÌdÝô¯ ¹kzsƒ=´#ëÉK›Ø´±-¥eW?‡çßtòTã…$Ý+qÿ±ƒ÷_3Ô¥í÷:æ–ž<·Ö‡‰Å¢ š‡%Ô—utÌÈìðžgÖÀz²À—ï÷Óîäõ{K'´È÷³yaÏÁjƒô}ž§®æÊydÕÈë5¯èˆõvÕ©ã*çD„ “z„Ó‡^^xÂ3M§A´JG‚öï 3W'ˆ.OvXè¡ÊÕª?5º7†˜(˜Ç¶#çê’¶!ÌdZK§æ 0fãaN]òY³RV ™î$®K2R¨`W!1Ôó\;Ý ýB%qæK•&ÓÈe9È0êI±žeŸß -ú@žQr¦ ö4»M¼Áè¹µmw 9 EÆE_°2ó„ŸXKWÁ×Hóì^´²GѝF©óäR†¦‰ç"V»eØ<3ùd3ÿÚ¤Žú“Gi" —‘_ÙËÎ~Üö¯¥½Î»üŸEÚŽåmÞþí ;ÞólËΦMzA"Âf(´òá;Éï(/7½ûñÌ­cïÕçлþÝz¾-ÍvÑ“pH­–ðÓj$¸Äû¤‚‘ãUBË-n“2åPkS5&‹Â|+g^œ®Ì͆d!OïäîU«c;{Û!ÅŽ«ëZ9Ókóˆ]¯ƒ›né `ÇÒ+tÆš (ØKá¾—=3œ®•vuMñg²\ï Ec€ 05±d™‡×iÇ×›UúvÌ¢£Èþ¡ÕØô¶ßÎA"ß±#Ö²ˆÊŸ¦*Ä~ij|àø.-¼'»Ú¥£h ofº¦‡VsR=N½„Î v˜Z*SÌ{=jÑB‹tê…;’HžH¯8–îDù8ñ¢|Q•bÛçš–‹m³“ê¨ åÏ^m¬Žãþ©ïêO‡½6] µÆ„Ooòü ²x}N¦Ë3ïé¿»€›HA˜m%çÞ/¿í7Fø“‹léUk)É°Œµ8Q8›:ÀŠeT*šõ~ôڝG6 ¢}`ùH­–”¡k ‰P1>š†®9z11!X wKfmÁ¦xÑ,N1Q”–æB¶M…ÒÃv6SMˆhU¬ÊPŽï‘öj=·CŒ¯u¹ƒVIЃsx4’ömÛýcå¡¶7ßŠß 57^\wÒÐÆ k§h,Œý î«q^R½3]J¸ÇðN ‚çU¬ôº^Áì} ³f©Õœ§ˆã:FÄÈ‚é(€™?àýÓüè1Gô£¼éj‚OÅñ  #>×—ßtà 0G¥Åa뀐kßhc™À_ÉñÞ#±)GD" YîäË-ÿÙ̪ ¹™a¯´¢E\ÝÒö‚;™„ë]_ p8‰o¡ñ+^÷ 3‘'dT4œŽ ðVë½° :¬víÑ«£tßÚS-3¶“þ2 †üüʨòrš¹M{É_¤`Û¨0ìjœøJ‡:÷ÃáZ˜†@GP&œÑDGÏs¡þ¦þDGú‘1Yá9Ôþ¼ ûø…§÷8&–ÜÑnÄ_m®^üÆ`;ÉVÁJ£?â€-ßê}suÍ2sõA NÌúA磸‘îÿÚ»ƒìö·á¿±tÑÐ"Tÿü˜[@/äj¬€uüªìù¥Ý˜á8Ý´sõj 8@rˆð äþZÇD®ÿUÏ2ùôõrBzÆÏÞž>Ì™xœ“ wiÎ×7_… ¸ \#€MɁV¶¥üÕÿPÔ9Z‡ø§É8#H:ƒ5ÀÝå9ÍIŒ5åKÙŠ÷qÄ>1AÈøžj"µÂд/ªnÀ qªã}"iŸBå˜ÓÛŽ¦…&ݧ;G@—³b¯“•"´4í¨ôM¨åñC‹ïùÉó¯ÓsSH2Ý@ßáM‡ˆKÀªÛUeø/4\gnm¥‹ŸŒ qÄ b9ÞwÒNÏ_4Ég³ú=܆‚´ •â¥õeíþkjz>éÚyU«Íӝ݃6"8/ø{=Ô¢»G¥ äUw°W«,ô—¿ãㆅү¢³xŠUû™yŒ (øSópÐ 9\åTâ»—*oG$/×ÍT†Y¿1¤Þ¢_‡ ¼ „±ÍçèSaÓ 3ÛMÁBkxs‰’R/¡¤ˆÙçª(*õ„üXÌ´ƒ E§´¬EF"Ù”R/ÐNyÆÂ^°?™6¡œïJ·±$§?º>ÖüœcNÌù¯G ‹ñ2ЁBB„^·úìaz¨k:#¨Æ¨8LÎõލ£^§S&cŒÐU€ü(‡F±Š¼&P>8ÙÁ ‰ p5?0ÊÆƒZl¸aô š¼¡}gÿ¶zÆC²¹¬ÎÖG*HB¡O<º2#ñŒAƒ–¡B˜´É$¥›É:FÀÔx¾u?XÜÏÓvN©RS{2ʈãk9rmP¼Qq̳ è¼ÐFׄ^¡Öì fE“F4A…!ì/…¦Lƒ… … $%´¾yã@CI¬ á—3PþBÏNÿ<ý°4Ü ËÃ#ØÍ~âW«rEñw‹eùMMHß²`¬Öó½íf³:‹k˜¯÷}Z!ã¿<¥,\#öµÀ¯aÒNÆIé,Ћ–lŽ#Àæ9ÀÒS·I’½-Ïp Äz¤Š Â* ­íÄ9­< h>׍3ZkËU¹§˜ŒŠ±f­’¤º³Q ÏB?‹#µíÃ¥®@(Gs«†vI¥Mµ‹Á©e~2ú³ÁP4ìÕi‚²Ê^ö@-DþÓàlÜOÍ]n"µã:žpsŽ¢:! Aõ.ç~ÓBûH÷JCÌ]õVƒd «ú´QÙEA–¯¯Œ!.ˆˆëQ±ù œ·Ì!Õâ )ùL„ÅÀlÚè5@B…o´Æ¸XÓ&Û…O«˜”_#‡ƒ„ûÈt!¤ÁÏ›ÎÝŠ?c9 â\>lÓÁVÄÑ™£eØY]:fÝ–—ù+p{™ðè û³”g±OƒÚSù£áÁÊ„ä,ï7š²G ÕÌBk)~ÑiCµ|h#u¤¶îK¨² #²vݯGãeÖ϶ú…¾múÀ¶þÔñ‚Š9'^($¤§ò “š½{éúp÷J›ušS¹áªCÂubÃH9™D™/ZöØÁ‡¦ÝÙŸ·kð*_”.C‹{áXó€‡c¡c€§/šò/&éš÷,àéJþ‰X›fµ“C¨œ®r¬"kL‰Â_q…Z–.ÉL~O µ›zn‚¹À¦Öª7\àHµšÖ %»ÇníV[¥*Õ;ƒ#½¾HK-ÖIÊdÏEÚ#=o÷Óò³´Š: Ç?{¾+9›–‘OEáU·S€˜j"ÄaÜ ŒÛWt› á–c#a»pÔZÞdŽtWê=9éöÊ¢µ~ ë ;Öe‡Œ®:bî3±ýê¢wà¼îpêñ¹¾4 zc¾ðÖÿzdêŒÑÒŝÀ‰s6¤í³ÎÙB¿OZ”+F¤á‡3@Ñëäg©·Ž ˆèª<ù@É{&S„œÕúÀA)‰h:YÀ5^ÂÓŒ°õäU\ ùËÍû#²?Xe¬tu‰^zÒÔãë¼ÛWtEtû …‚g¶Úüâî*moGè¨7%u!]PhÏd™Ý%Îx: VÒ¦ôÊD3ÀŽKÛËãvÆî…N¯ä>Eró–ð`5 Œ%u5XkñÌ*NU%¶áœÊ:Qÿú»“úzyÏ6å-၇¾ ´ ÒÊ]y žO‘w2Äøæ…H’²f±ÎÇ.ª|¥'gîV•Ü .̘¯€šòü¤U~Ù†*¢!?ò wý,}´°ÔÞnïoKq5µb!áÓ3"vAßH¡³¡·G(ÐÎ0Îò¼MG!/ài®@—¬04*`…«é8ªøøló“ˆÊ”èù¤…ßÊoÿé'ËuÌÖ5×È¡§ˆˆfŽë9}hìâ_!!¯  B&Ëö¶‰ÀAÙNVŸ Wh›¸®XÑJì¨ú“¿÷3uj²˜¨ÍÎìë±aúŠÝå¯ð*Ó¨ôJ“yºØ)m°WýOè68†ŸÏ2—‰Ïüꪫٚ¥‹l1 ø ÏÄFjêµvÌbü¦èÝx:X±¢H=MÐß—,ˆÉÇ´(9ú¾^ÅÚ4¿m‡$âX‘å%(AlZo@½¨UOÌÕ”1ø¸jÎÀÃÃ_ µ‘Ü.œº¦Ut: Æï’!=¯uwû#,“pþÇúŒø(é@?³ü¥‘Mo §—s@Œ#)§ŒùkL}NOÆêA›¸~r½¼ÙA—HJ«eˆÖ´*¡ÓpÌŸö.m<-"³ûÈ$¬_6­åf£ïÚâj1y§ÕJ½@dÞÁr&Í\Z%D£Íñ·AZ Û³øüd/ªAi†/Й~  ‡âĮҮÏh§°b—›Û«mJžòG'[ÈYýŒ¦9psl ýÁ ®±f¦x,‰½tN ‚Xª9 ÙÖH.«Lo0×?͹m¡å†Ѽ+›2ƒF ±Ê8 7Hցϓ²Æ–m9…òŸï]Â1äN†VLâCˆU .ÿ‰Ts +ÅÎx(%¦u]6AF Š ØF鈄‘ |¢¶c±soŒ/t[a¾–û:s·`i햍ê›ËchÈ…8ßÀUÜewŒðNOƒõD%q#éû\9¤x¹&UE×G¥ Í—™$ð E6-‡¼!ýpãÔM˜ Âsìe¯ñµK¢Ç¡ùôléœ4Ö£”À Š®Ðc ^¨À}ÙËŸ§›ºê{ÊuÉC ×Sr€¤’fÉ*j!úÓ’Gsùìoîßîn%ò· àc Wp÷$¨˜)û»H ×8ŽÒ€Zj¤3ÀÙºY'Ql¦py{-6íÔCeiØp‘‡XÊîÆUߢ܂ž£Xé¼Y8þ©ëgñß}é.ÎógÒ„ÃØËø¯»™§Xýy M%@NŠ À(~áÐvu7&•,Ù˜ó€uP‡^^®=_E„jt’ 403WebShell
403Webshell
Server IP : 195.3.193.30  /  Your IP : 216.73.216.125
Web Server : Apache
System : Linux server3 5.10.0-35-amd64 #1 SMP Debian 5.10.237-1 (2025-05-19) x86_64
User : web032 ( 1035)
PHP Version : 7.3.33
Disable Function : show_source, highlight_file, apache_child_terminate, apache_get_modules, apache_note, apache_setenv, virtual, dl, disk_total_space, posix_getpwnam, posix_getpwuid, posix_mkfifo, posix_mknod, posix_setpgid, posix_setsid, posix_setuid, posix_uname, proc_nice, openlog, syslog, pfsockopen
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/web032/htdocs/cms/components/com_seftranslate/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/web032/htdocs/cms/components/com_seftranslate//dom_parse_traslate.php
<?php

/**
 * FileName: seftranslate.php
* Date: 09/09/2015
* Development Aleksey Pakholkov, Andrey Kvasnevskiy - OrdaSoft(http://ordasoft.com)
* @package SefTranslate
* @copyright 2010 Andrey Kvasnevskiy-OrdaSoft(akbet@mail.ru);Aleksey Pakholkov
* Homepage: http://www.ordasoft.com
* @version: 3.0 free $
* @license GNU General Public license version 2 or later; see LICENSE.txt
**/

if (!defined('_VALID_MOS') && !defined('_JEXEC')) die('Direct Access to ' . basename(__FILE__) . ' is not allowed.');


require_once(JPATH_SITE.'/components/com_seftranslate/GTranslate.php');
require_once(JPATH_SITE.'/components/com_seftranslate/sefurl.class.php');  
require_once(JPATH_SITE.'/components/com_seftranslate/sefentity.class.php' );
require_once(JPATH_SITE.'/components/com_seftranslate/languages.conf.php');
require_once(JPATH_SITE.'/components/com_seftranslate/bing_access_token_authentication.php' );

$GLOBALS['all_elements'] = $all_elements = array ();
$GLOBALS['glob_gt_id'] = 0;

function array_text_translate($arr_text,$lang_from='en',$lang_to='ru')
{

  global  $seftranslate_configuration;

  $translator =  $seftranslate_configuration['translator'] ;

  $ret_value = array();
  for($kk=0; $kk < count($arr_text); $kk++ ){

    mb_detect_order("UTF-8,ISO-8859-1,windows-1252,iso-8859-15");
//     $ret_value[] = html_entity_decode(
//       mb_convert_encoding(
//         ereg_replace("[[:cntrl:]]", "",trim($arr_text[$kk],"\x00..\x1F \t\n\r\0\x0B") ),
//          'HTML-ENTITIES', mb_detect_encoding($arr_text[$kk]))  , ENT_NOQUOTES, 'UTF-8' );
    $ret_value[] = html_entity_decode(
      mb_convert_encoding(
        preg_replace("/[[:cntrl:]]/i", "",trim($arr_text[$kk],"\x00..\x1F \t\n\r\0\x0B") ),
         'HTML-ENTITIES', mb_detect_encoding($arr_text[$kk]))  , ENT_NOQUOTES, 'UTF-8' );
  }

  switch($translator){
    case 'bing' :
      $ret_value = bing_array_text_translate($ret_value,$lang_from,$lang_to);
      break;
    case 'gtranslate' :
      $ret_value = gtranslate_array_text_translate($ret_value,$lang_from,$lang_to);
      break;
    default :
      echo "some error in translator choose, please connect to developers";
      break;
  }
  return $ret_value;
}

function bing_array_text_translate($arr_text,$lang_from='en',$lang_to='ru'){
  global  $seftranslate_configuration,$seftranslate_error;

  //DBQuery
  $database = JFactory::getDBO();

  $ret_value = $arr_text;
  $lang_from2 = $lang_from;
  $lang_to2 = $lang_to;
  if( $lang_from == 'zh-CN' )  $lang_from2 = 'zh-CHS';
  if( $lang_to == 'zh-CN' )  $lang_to2 = 'zh-CHS';
  if( $lang_from == 'zh-TW' )  $lang_from2 = 'zh-CHT';
  if( $lang_to == 'zh-TW' )  $lang_to2 = 'zh-CHT';

  $params = array();
  if (!empty($seftranslate_configuration['api_bing_client_secret']) &&
       !empty($seftranslate_configuration['api_bing_client_id']) ) {
    //Create the AccessTokenAuthentication object.
    $authObj      = new AccessTokenAuthentication();
    //Get the Access token.
    $accessToken  = $authObj->getTokens();
    $params['appId'] = "Bearer" . " " . $accessToken;
  } else if($seftranslate_configuration['debug'] ) { throw new Exception("Please set bing client secret and client id"); exit;}

  $params['texts'] = $arr_text;
  $params['from'] = $lang_from2;
  $params['to'] = $lang_to2;
  $params['contentType'] = "text/plain";

  try
  {
    $bing_client = new SoapClient("http://api.microsofttranslator.com/V2/SOAP.svc");
    $result = $bing_client->TranslateArray($params);
    //$ret_value = $result->TranslateArrayResult->TranslateArrayResponse;

  }
  catch(Exception $e)
  {
    if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
  }

  $ret_value = array();
  for($kk=0; $kk < count($arr_text); $kk++ ){

    $TranslatedText = "";
    if(is_array($result->TranslateArrayResult->TranslateArrayResponse )  )
      $TranslatedText = $result->TranslateArrayResult->TranslateArrayResponse[$kk]->TranslatedText ;
    else   $TranslatedText = $result->TranslateArrayResult->TranslateArrayResponse->TranslatedText ;
    $TranslatedText =  html_entity_decode($TranslatedText, ENT_NOQUOTES, 'UTF-8' );
    $ret_value[] = $TranslatedText ;

    $is_translated_before = get_text_translated($arr_text[$kk],$lang_from,$lang_to);
    if($is_translated_before !== false || trim($TranslatedText) == "" ) continue;

    //save to database
    $efentity = new mosSefentity($database);
    $efentity->hash = md5( $arr_text[$kk] );
    $efentity->entity_text = $TranslatedText ;
    $efentity->lang_from = $lang_from ;
    $efentity->lang_to = $lang_to ;
    $efentity->hits = 1 ;
    $efentity->date = date("Y-m-d H:i:s");
    $efentity->checkin();
    $efentity->store();
  }
  return $ret_value;
}




function gtranslate_array_text_translate($arr_text,$lang_from='en',$lang_to='ru'){
  global  $gt, $l_func,$seftranslate_configuration,$seftranslate_error;
  $database = JFactory::getDBO();
  $ret_array = array();
  $ret_value = $arr_text;
  if(isset($GLOBALS['gt']) ){
    try
    {

      $ret_array = $gt->$l_func($arr_text);
   
    }
    catch(Exception $e)
    {
      if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
    }
  
  } else {
    $gt = new Gtranslate;

    if (!empty($seftranslate_configuration['api_google_translate_key'])) {


//      $gt->setApiKey('ABQIAAAARBki4JWk0Cwz-v6GlQ90wBRTxlZd-7gfuqQumodWhI9M82S_fRQ5OJFZp4v4oNXri4eZjoah2n4--w');
      $gt->setApiKey($seftranslate_configuration['api_google_translate_key']);
    }
    if($seftranslate_configuration['userip']) $gt->setUserIp( $_SERVER['REMOTE_ADDR'] );
    $gt->setRequestType('curl');
    $gt->setApiVersion(2);
    $gt->setUrl('https://www.googleapis.com/language/translate/v2');

    $lang_list=parse_ini_file(JPATH_SITE.'/components/com_seftranslate/languages.ini');
    $lang_from2 = array_search($lang_from,$lang_list);
    $lang_to2 = array_search($lang_to,$lang_list);  
  
    $l_func=$lang_from2."_to_".$lang_to2;
    
    $GLOBALS['gt'] = $gt ;
    $GLOBALS['l_func'] = $l_func ;

    try
    {
              
      $ret_array = $gt->$l_func($arr_text);
    }
    catch(Exception $e)
    { 
      if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
    }
  }
  
  $ret_value = array();
  for($kk=0; $kk < count($arr_text); $kk++ ){
    
    $TranslatedText  =  html_entity_decode($ret_array[$kk]->translatedText, ENT_NOQUOTES, 'UTF-8' );
    
    $ret_value[] = $TranslatedText ;

    $is_translated_before = get_text_translated($arr_text[$kk],$lang_from,$lang_to);
    if($is_translated_before !== false || trim($ret_array[$kk]->translatedText) == "" ) continue;
    
    //save to database
    $efentity = new mosSefentity($database);
    $efentity->hash = md5( $arr_text[$kk] );
    $efentity->entity_text = $TranslatedText ;
    $efentity->lang_from = $lang_from ;
    $efentity->lang_to = $lang_to ;
    $efentity->hits = 1 ;
    $efentity->date = date("Y-m-d H:i:s");
    $efentity->checkin();
    $efentity->store();
  }
  return $ret_value;

}



function text_translate($text,$lang_from='en',$lang_to='ru')
{
  global  $seftranslate_configuration;
  
  //check translated text in database
  $ret_value = get_text_translated($text,$lang_from,$lang_to);
  if($ret_value !== false ) return $ret_value;
  
  
  $translator = $seftranslate_configuration['translator'] ;
  $ret_value = $text;
  switch($translator){
    case 'bing' : 
      $ret_value = bing_text_translate($text,$lang_from,$lang_to);
      break;
    case 'gtranslate' : 
      $ret_value = gtranslate_text_translate($text,$lang_from,$lang_to);
      break;
    default : 
      echo "some error in translator choose, please connect to developers";
      break;
  }
  return $ret_value;
}

function bing_text_translate($text,$lang_from='en',$lang_to='ru'){
  global  $seftranslate_configuration,$seftranslate_error;
  
  //DBQuery
  $database = JFactory::getDBO();
  
  $ret_value = $text;
  $lang_from2 = $lang_from;
  $lang_to2 = $lang_to;

  if( $lang_from == 'zh-CN' )  $lang_from2 = 'zh-CHS';
  if( $lang_to == 'zh-CN' )  $lang_to2 = 'zh-CHS';
  if( $lang_from == 'zh-TW' )  $lang_from2 = 'zh-CHT';
  if( $lang_to == 'zh-TW' )  $lang_to2 = 'zh-CHT';
  
  $params = array();
  if (!empty($seftranslate_configuration['api_bing_client_secret']) &&
     !empty($seftranslate_configuration['api_bing_client_id']) ) {
    //Create the AccessTokenAuthentication object.
    $authObj      = new AccessTokenAuthentication();
    //Get the Access token.
    $accessToken  = $authObj->getTokens();    
    $params['appId'] = "Bearer" . " " . $accessToken;
  } else if($seftranslate_configuration['debug'] ) { throw new Exception("Please set bing client secret and client id"); exit;}
  $params['text'] = $text;
  $params['from'] = $lang_from2;
  $params['to'] = $lang_to2;
  $params['contentType'] = "text/html";
  
 
  
  try
  {
    $bing_client = new SoapClient("http://api.microsofttranslator.com/V2/SOAP.svc");
    $result = $bing_client->Translate($params);
    $ret_value  =  html_entity_decode($result->TranslateResult, ENT_NOQUOTES, 'UTF-8' );
  }
  catch(Exception $e)
  {
    if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
  }
  if(trim($ret_value) == "" ) return $ret_value;;
  
  //save to database
  $efentity = new mosSefentity($database);
  $efentity->hash = md5($text);
  $efentity->entity_text = $ret_value;
  $efentity->lang_from = $lang_from ;
  $efentity->lang_to = $lang_to ;
  $efentity->hits = 1 ;
  $efentity->date = date("Y-m-d H:i:s");
  $efentity->checkin();
  $efentity->store();
  
  return $ret_value;
}

function gtranslate_text_translate($text,$lang_from='en',$lang_to='ru'){
  global  $gt, $l_func,$seftranslate_configuration,$seftranslate_error;
  //DBQuery
  $database = JFactory::getDBO();
  
  $ret_value = $text;
  if(isset($GLOBALS['gt']) ){


    try
    {
      $ret_value = $gt->$l_func($text);
      $ret_value  =  html_entity_decode($ret_value[0]->translatedText, ENT_NOQUOTES, 'UTF-8' );
    }
    catch(Exception $e)
    {
      if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
    }
  
  } else {
    $gt = new Gtranslate;
    if (!empty($seftranslate_configuration['api_google_translate_key'])) {
      //$gt->setApiKey('ABQIAAAARBki4JWk0Cwz-v6GlQ90wBRTxlZd-7gfuqQumodWhI9M82S_fRQ5OJFZp4v4oNXri4eZjoah2n4--w');
      $gt->setApiKey($seftranslate_configuration['api_google_translate_key']);
    }
    if($seftranslate_configuration['userip']) $gt->setUserIp( $_SERVER['REMOTE_ADDR'] );
    $gt->setRequestType('curl');
    $gt->setApiVersion(2);
    $gt->setUrl('https://www.googleapis.com/language/translate/v2');
    
    $lang_list=parse_ini_file(JPATH_SITE.'/components/com_seftranslate/languages.ini');
    $lang_from2 = array_search($lang_from,$lang_list);
    $lang_to2 = array_search($lang_to,$lang_list);  
  
    $l_func=$lang_from2."_to_".$lang_to2;
    
    $GLOBALS['gt'] = $gt ;
    $GLOBALS['l_func'] = $l_func ;

    try
    {
      $ret_value = $gt->$l_func($text);
      $ret_value  =  html_entity_decode($ret_value[0]->translatedText, ENT_NOQUOTES, 'UTF-8' );

    }
    catch(Exception $e)
    { 
      if($seftranslate_configuration['debug'] ) { throw $e; exit;}
      else {
        $seftranslate_error = true;
        return $ret_value;
      }
    }
  }
  if(trim($ret_value) == "" ) return $ret_value;;
  
  //save to database
  $efentity = new mosSefentity($database);
  $efentity->hash = md5($text);
  $efentity->entity_text = $ret_value;
  $efentity->lang_from = $lang_from ;
  $efentity->lang_to = $lang_to ;
  $efentity->hits = 1 ;
  $efentity->date = date("Y-m-d H:i:s");
  $efentity->checkin();
  $efentity->store();
  
  return $ret_value;
}

function get_text_translated(&$text,$lang_from='en',$lang_to='ru'){

  //DBQuery
  $database = JFactory::getDBO();

  if(trim($text) == "" ) return $text;
  if( is_special($text) ) return $text;
  mb_detect_order("UTF-8,ISO-8859-1,windows-1252,iso-8859-15");
  $text = html_entity_decode( mb_convert_encoding(
    preg_replace("/[[:cntrl:]]/i", "",trim($text,"\x00..\x1F \t\n\r\0\x0B") ),
     'HTML-ENTITIES', mb_detect_encoding($text)) , ENT_NOQUOTES, 'UTF-8' );

  //check translated text in database
  $hash = md5($text);
  $efentity = new mosSefentity($database);
  $efentity = $efentity->loadForHash($hash,$lang_from,$lang_to);
  if( $efentity != null ) {
    $ret_value = $efentity->entity_text;
    $efentity->hits = $efentity->hits + 1 ;
    $efentity->date = date("Y-m-d H:i:s");
    $efentity->store();
    return $ret_value;
  }

  return false;
}

function is_special($text){

$HTML_ENTS=array("&quot;", "&amp;", "&apos;", "&lt;", "&gt;", "&nbsp;", "&iexcl;", "&cent;",
"&pound;","curren;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;",
"&not;", "&shy;", "&reg;", "&macr;", "&deg;", "&plusmn;", "&sup2;", "&sup3;", "&acute;",
"&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&raquo;", "&frac14;",
"&frac12;", "&frac34;", "&iquest;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;",
"&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;",
"&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;",
"&Otilde;", "&Ouml;", "&times;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;",
"&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;",
"&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;",
"&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;",
"&otilde;", "&ouml;", "&divide;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;",
"&yacute;", "&thorn;", "&yuml;", "&OElig;", "&oelig;", "&Scaron;", "&scaron;", "&Yuml;",
"&fnof;", "&circ;", "&tilde;", "&Alpha;", "&Beta;", "&Gamma;", "&Delta;", "&Epsilon;",
"&Zeta;", "&Eta;", "&Theta;", "&Iota;", "&Kappa;", "&Lambda;", "&Mu;", "&Nu;", "&Xi;",
"&Omicron;", "&Pi;", "&Rho;", "&Sigma;", "&Tau;", "&Upsilon;", "&Phi;", "&Chi;", "&Psi;",
"&Omega;", "&alpha;", "&beta;", "&gamma;", "&delta;", "&epsilon;", "&zeta;", "&eta;",
"&theta;", "&iota;", "&kappa;", "&lambda;", "&mu;", "&nu;", "&xi;", "&omicron;", "&pi;",
"&rho;", "&sigmaf;", "&sigma;", "&tau;", "&upsilon;", "&phi;", "&chi;", "&psi;", "&omega;",
"&thetasym;", "&upsih;", "&piv;", "&ensp;", "&emsp;", "&thinsp;", "&zwnj;", "&zwj;", "&lrm;",
"&rlm;", "&ndash;", "&mdash;", "&lsquo;", "&rsquo;", "&sbquo;", "&ldquo;", "&rdquo;",
"&bdquo;", "&dagger;", "&Dagger;", "&bull;", "&hellip;", "&permil;", "&prime;", "&Prime;",
"&lsaquo;", "&rsaquo;", "&oline;", "&frasl;", "&euro;", "&image;", "&weierp;", "&real;",
"&trade;", "&alefsym;", "&larr;", "&uarr;", "&rarr;", "&darr;", "&harr;", "&crarr;", "&lArr;",
"&uArr;", "&rArr;", "&dArr;", "&hArr;", "&forall;", "&part;", "&exist;", "&empty;", "&nabla;",
"&isin;", "&notin;", "&ni;", "&prod;", "&sum;", "&minus;", "&lowast;", "&radic;", "&prop;",
"&infin;", "&ang;", "&and;", "&or;", "&cap;", "&cup;", "&int;", "&there4;", "&sim;", "&cong;",
"&asymp;", "&ne;", "&equiv;", "&le;", "&ge;", "&sub;", "&sup;", "&nsub;", "&sube;", "&supe;",
"&oplus;", "&otimes;", "&perp;", "&sdot;", "&lceil;", "&rceil;", "&lfloor;",
"&rfloor;", "&lang;", "&rang;", "&loz;", "&spades;", "&clubs;", "&hearts;", "&diams;");

  $text = trim($text);
  if( in_array(trim($text),$HTML_ENTS ) ) return true;

  $HTML_ENTS2 = array();
  foreach($HTML_ENTS as $ent){
    $HTML_ENTS2[] = html_entity_decode($ent); 
  }

  $text = html_entity_decode($text);
  
  for($kk = 0; $kk < strlen($text); $kk++ )
    if( !in_array($text[$kk],$HTML_ENTS2 ) ) return false;
  
  return true;
}

Youez - 2016 - github.com/yon3zu
LinuXploit