Что нового

Переводчик Google

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
Как от гугла или mymemory.translated.net получить список поддерживаемых языков? В таком варианте ru|Русский и тд.

CreatoR

делал это с помощью StringRegExp и длинющего паттерна, что не есть хорошо, потому что ответ гугла не всегда будет одинаков. Я пробую пощупать это с помощью IE Managment:
Код:
Local $sUrl, $oHTTP, $sResponse, $JSONData, $sOutput = "", $aData
    $sUrl  = 'https://translate.google.com/?hl=ru'
    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET", $sUrl)
    $oHTTP.Send()
    $sResponse = $oHTTP.ResponseText
    Local $oHTML = ObjCreate("HTMLFILE")
    $oHTML.Write($sResponse)
    $aData = _IETagNameGetCollection($oHTML, 'script')
    For $oElement In $aData
        If $oElement.id = '_ij' Then
   
                MsgBox($MB_SYSTEMMODAL, "Element Info", "Tagname: " & $oElement.tagname & @CRLF & "id: " & $oElement.id & @CRLF & "innerText: " & $oElement.innerText)

            ExitLoop
        EndIf
    Next


Нас интересует данная строка из ответа:
HTML:
initAft()</script><script id="_ij" nonce="4yDHP_r0rw-pqOulC-d5Rw">window.IJ_values = ['https:\/\/translate.google.com\/about\/?hl\x3dru', true ,[null,null,"",false,null,null,null,false],'0', true ,'https:\/\/translate.google.com\/', null ,'boq_translate-webserver_20230301.07_p0','translate.google.com', 300.0 , false , 0.0 ,'','4yDHP_r0rw-pqOulC-d5Rw','6qmsELr-WxSax3p_nycqWg','DEFAULT','', 2023.0 ,'https:\/\/translate.google.com\/', null ,[["af","ar","az","be","bg","ca","cs","da","de","en","eo","es","eu","fa","fi","fr","gl","gu","hi","hy","id","is","it","iw","ja","ka","kn","ky","mk","ml","mn","ms","ne","nl","no","pa","pl","pt","ru","sk","sq","sr","sv","sw","te","th","tl","uk","ur","uz","zu"],[["af",[["en"]]],["ar",[["en","fr"]]],["as",[["en"]]],["az",[["en"]]],["be",[["en"]]],["bg",[["en"]]],["bn",[["en"]]],["br",[["en"]]],["bs",[["en"]]],["ca",[["en"]]],["ceb",[["en"]]],["cs",[["de","en"]]],["cy",[["en"]]],["da",[["en"]]],["de",[["cs","en","es","pl","ru","tr"]]],["el",[["en"]]],["en",[["af","ar","as","az","be","bg","bn","br","bs","ca","ceb","cs","cy","da","de","el","es","et","eu","fa","fi","fj","fo","fr","fy","ga","gl","gu","ha","hi","hmn","hr","ht","hu","hy","id","ig","is","it","iw","ja","jw","ka","kk","km","kn","ko","ku","la","lah","lo","lt","lv","mi","mk","ml","mn","mr","ms","mt","my","ne","nl","no","ny","pl","pt","ro","ru","sk","sl","so","sq","sr","su","sv","sw","ta","te","tg","th","tl","tr","uk","ur","uz","vi","yi","yo","zh-CN","zh-TW","zu"]]],["es",[["de","en"]]],["et",[["en"]]],["eu",[["en"]]],["fa",[["en"]]],["fi",[["en"]]],["fj",[["en"]]],["fo",[["en"]]],["fr",[["ar","en","pl","ru"]]],["fy",[["en"]]],["ga",[["en"]]],["gl",[["en"]]],["gu",[["en"]]],["ha",[["en"]]],["hi",[["en"]]],["hmn",[["en"]]],["hr",[["en"]]],["ht",[["en"]]],["hu",[["en"]]],["hy",[["en"]]],["id",[["en"]]],["ig",[["en"]]],["is",[["en"]]],["it",[["en"]]],["iw",[["en","ru"]]],["ja",[["en"]]],["jw",[["en"]]],["ka",[["en"]]],["kk",[["en"]]],["km",[["en"]]],["kn",[["en"]]],["ko",[["en"]]],["ku",[["en"]]],["la",[["en"]]],["lah",[["en"]]],["lo",[["en"]]],["lt",[["en"]]],["lv",[["en"]]],["mi",[["en"]]],["mk",[["en"]]],["ml",[["en"]]],["mn",[["en"]]],["mr",[["en"]]],["ms",[["en"]]],["mt",[["en"]]],["my",[["en"]]],["ne",[["en"]]],["nl",[["en"]]],["no",[["en"]]],["ny",[["en"]]],["pl",[["de","en","fr"]]],["pt",[["en"]]],["ro",[["en"]]],["ru",[["de","en","fr","iw"]]],["sk",[["en"]]],["sl",[["en"]]],["so",[["en"]]],["sq",[["en"]]],["sr",[["en"]]],["su",[["en"]]],["sv",[["en"]]],["sw",[["en"]]],["ta",[["en"]]],["te",[["en"]]],["tg",[["en"]]],["th",[["en"]]],["tl",[["en"]]],["tr",[["de","en"]]],["uk",[["en"]]],["ur",[["en"]]],["uz",[["en"]]],["vi",[["en"]]],["yi",[["en"]]],["yo",[["en"]]],["zh-CN",[["en"]]],["zh-TW",[["en"]]],["zu",[["en"]]]]],'ltr', true , false , true , true , true , false , true , false , true , true , false , true , false , true , false , true ,'application\/pdf, application\/vnd.openxmlformats-officedocument.presentationml.presentation, application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application\/vnd.openxmlformats-officedocument.wordprocessingml.document, .pdf, .pptx, .xlsx, .docx','http:\/\/go\/file-tw-dogfood-bug-desktop', false , true ,'https:\/\/accounts.google.com\/AccountChooser?continue\x3dhttps:\/\/translate.google.com\/?hl%3DRU\x26hl\x3dru','https:\/\/accounts.google.com\/ServiceLogin?hl\x3dru\x26continue\x3dhttps:\/\/translate.google.com\/?hl%3DRU','https:\/\/accounts.google.com\/SignOutOptions?continue\x3dhttps:\/\/translate.google.com\/?hl%3DRU','image\/jpeg, image\/png, .jpeg, .jpg, .png', true , false , false , false , false ,'ru','ru', true ,'ru', 3.0 , 3.0 ,'https:\/\/goto2.corp.google.com\/mdtredirect?data_id_filter\x3dtranslate.google.com\x26system_name\x3dtranslate-webserver',[],'https:\/\/myactivity.google.com\/product\/google_translate?utm_source\x3dtranslate_web', null , 10.0 ,'https:\/\/myaccount.google.com\/privacypolicy?hl\x3dru', false ,["Обратный перевод (Ctrl + Shift + S)"], false , false ,'','https:\/\/myaccount.google.com\/termsofservice?hl\x3dru', 5000.0 , null , false , null ,]; window.IJ_valuesCb && window.IJ_valuesCb();</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:0', hash: '1', data:[null,null,true,null,null,1,null,true,true], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:6', hash: '2', data:[[["af",200],["ar",200],["bg",200],["bn",200],["bs",200],["ca",200],["cs",200],["da",200],["de",200],["el",200],["en",200],["es",200],["et",200],["fi",200],["fr",200],["gu",200],["hi",200],["hr",200],["hu",200],["id",200],["is",200],["it",200],["iw",200],["ja",200],["jw",200],["km",200],["kn",200],["ko",200],["la",200],["lv",200],["ml",200],["mr",200],["ms",200],["my",200],["ne",200],["nl",200],["no",200],["pl",200],["pt",200],["ro",200],["ru",200],["si",200],["sk",200],["sq",200],["sr",200],["su",200],["sv",200],["sw",200],["ta",200],["te",200],["th",200],["tl",200],["tr",200],["uk",200],["ur",200],["vi",200],["zh",200],["zh-CN",200],["zh-TW",200]]], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:7', hash: '3', data:[null,[["af",["af-ZA",false]],["am",["am-ET",false]],["ar",["ar-EG",true]],["az",["az-AZ",false]],["bg",["bg-BG",false]],["bn",["bn-BD",true]],["ca",["ca-ES",true]],["cs",["cs-CZ",true]],["da",["da-DK",true]],["de",["de-DE",true]],["el",["el-GR",true]],["en",["en-US",true]],["es",["es-US",true]],["et",["et-EE",false]],["eu",["eu-ES",false]],["fa",["fa-IR",true]],["fi",["fi-FI",true]],["fr",["fr-FR",true]],["gl",["gl-ES",false]],["gu",["gu-IN",true]],["hi",["hi-IN",true]],["hr",["hr-HR",true]],["hu",["hu-HU",true]],["hy",["hy-AM",false]],["id",["id-ID",true]],["is",["is-IS",false]],["it",["it-IT",true]],["iw",["he-IL",true]],["ja",["ja-JP",true]],["jw",["jv-ID",false]],["ka",["ka-GE",false]],["kk",["kk-KZ",false]],["km",["km-KH",false]],["kn",["kn-IN",true]],["ko",["ko-KR",true]],["lo",["lo-LA",false]],["lt",["lt-LT",false]],["lv",["lv-LV",false]],["mk",["mk-MK",false]],["ml",["ml-IN",true]],["mn",["mn-MN",false]],["mr",["mr-IN",true]],["ms",["ms-MY",true]],["my",["my-MM",false]],["ne",["ne-NP",false]],["nl",["nl-NL",true]],["no",["nb-NO",true]],["pa",["pa-Guru-IN",false]],["pl",["pl-PL",true]],["pt",["pt-BR",true]],["ro",["ro-RO",true]],["ru",["ru-RU",true]],["si",["si-LK",false]],["sk",["sk-SK",true]],["sl",["sl-SI",true]],["sq",["sq-AL",false]],["sr",["sr-RS",true]],["su",["su-ID",false]],["sv",["sv-SE",true]],["sw",["sw",false]],["ta",["ta-IN",true]],["te",["te-IN",true]],["th",["th-TH",true]],["tl",["fil-PH",true]],["tr",["tr-TR",true]],["uk",["uk-UA",true]],["ur",["ur-PK",true]],["uz",["uz-UZ",false]],["vi",["vi-VN",true]],["zh-CN",["cmn-Hans-CN",true]],["zh-TW",["cmn-Hant-TW",true]],["zu",["zu-ZA",true]]]], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:4', hash: '4', data:[[],[]], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:2', hash: '5', data:[["ru","en","de","es","fr"],["ru","en","uk"]], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:1', hash: '6', data:["auto","ru"], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:5', hash: '7', data:[["auto","az","ay","sq","am","en","ar","hy","as","af","bm","eu","be","bn","my","bg","bs","bho","cy","hu","vi","haw","gl","el","ka","gn","gu","da","doi","zu","iw","ig","yi","ilo","id","ga","is","es","it","yo","kk","kn","ca","qu","ky","zh-TW","zh-CN","gom","ko","co","xh","ht","kri","ku","ckb","km","lo","la","lv","ln","lt","lg","lb","mai","mk","mg","ms","ml","dv","mt","mi","mr","mni-Mtei","lus","mn","de","ne","nl","no","or","om","pa","fa","pl","pt","ps","rw","ro","ru","sm","sa","ceb","nso","sr","st","si","sd","sk","sl","so","sw","su","tg","th","ta","tt","te","ti","ts","tr","tk","uz","ug","uk","ur","tl","fi","fr","fy","ha","hi","hmn","hr","ak","ny","cs","sv","sn","gd","ee","eo","et","jw","ja"],["az","ay","sq","am","en","ar","hy","as","af","bm","eu","be","bn","my","bg","bs","bho","cy","hu","vi","haw","gl","el","ka","gn","gu","da","doi","zu","iw","ig","yi","ilo","id","ga","is","es","it","yo","kk","kn","ca","qu","ky","zh-TW","zh-CN","gom","ko","co","xh","ht","kri","ku","ckb","km","lo","la","lv","ln","lt","lg","lb","mai","mk","mg","ms","ml","dv","mt","mi","mr","mni-Mtei","lus","mn","de","ne","nl","no","or","om","pa","fa","pl","pt","ps","rw","ro","ru","sm","sa","ceb","nso","sr","st","si","sd","sk","sl","so","sw","su","tg","th","ta","tt","te","ti","ts","tr","tk","uz","ug","uk","ur","tl","fi","fr","fy","ha","hi","hmn","hr","ak","ny","cs","sv","sn","gd","ee","eo","et","jw","ja"]], sideChannel: {}});</script><script nonce="4yDHP_r0rw-pqOulC-d5Rw">AF_initDataCallback({key: 'ds:3', hash: '8', data:[[["auto","Определить язык"],["az","азербайджанский"],["ay","аймара"],["sq","албанский"],["am","амхарский"],["en","английский"],["ar","арабский"],["hy","армянский"],["as","ассамский"],["af","африкаанс"],["bm","бамбара"],["eu","баскский"],["be","белорусский"],["bn","бенгальский"],["my","бирманский"],["bg","болгарский"],["bs","боснийский"],["bho","бходжпури"],["cy","валлийский"],["hu","венгерский"],["vi","вьетнамский"],["haw","гавайский"],["gl","галисийский"],["el","греческий"],["ka","грузинский"],["gn","гуарани"],["gu","гуджарати"],["da","датский"],["doi","догри"],["zu","зулу"],["iw","иврит"],["ig","игбо"],["yi","идиш"],["ilo","илоканский"],["id","индонезийский"],["ga","ирландский"],["is","исландский"],["es","испанский"],["it","итальянский"],["yo","йоруба"],["kk","казахский"],["kn","каннада"],["ca","каталанский"],["qu","кечуа"],["ky","киргизский"],["zh-TW","китайский (традиционный)"],["zh-CN","китайский (упрощенный)"],["gom","конкани"],["ko","корейский"],["co","корсиканский"],["xh","коса"],["ht","креольский (гаити)"],["kri","крио"],["ku","курдский (курманджи)"],["ckb","курдский (сорани)"],["km","кхмерский"],["lo","лаосский"],["la","латинский"],["lv","латышский"],["ln","лингала"],["lt","литовский"],["lg","луганда"],["lb","люксембургский"],["mai","майтхили"],["mk","македонский"],["mg","малагасийский"],["ms","малайский"],["ml","малаялам"],["dv","мальдивский"],["mt","мальтийский"],["mi","маори"],["mr","маратхи"],["mni-Mtei","мейтейлон (манипури)"],["lus","мизо"],["mn","монгольский"],["de","немецкий"],["ne","непальский"],["nl","нидерландский"],["no","норвежский"],["or","ория"],["om","оромо"],["pa","панджаби"],["fa","персидский"],["pl","польский"],["pt","португальский"],["ps","пушту"],["rw","руанда"],["ro","румынский"],["ru","русский"],["sm","самоанский"],["sa","санскрит"],["ceb","себуанский"],["nso","сепеди"],["sr","сербский"],["st","сесото"],["si","сингальский"],["sd","синдхи"],["sk","словацкий"],["sl","словенский"],["so","сомалийский"],["sw","суахили"],["su","сунданский"],["tg","таджикский"],["th","тайский"],["ta","тамильский"],["tt","татарский"],["te","телугу"],["ti","тигринья"],["ts","тсонга"],["tr","турецкий"],["tk","туркменский"],["uz","узбекский"],["ug","уйгурский"],["uk","украинский"],["ur","урду"],["tl","филиппинский"],["fi","финский"],["fr","французский"],["fy","фризский"],["ha","хауса"],["hi","хинди"],["hmn","хмонг"],["hr","хорватский"],["ak","чви"],["ny","чева"],["cs","чешский"],["sv","шведский"],["sn","шона"],["gd","шотландский (гэльский)"],["ee","эве"],["eo","эсперанто"],["et","эстонский"],["jw","яванский"],["ja","японский"]],[["az","азербайджанский"],["ay","аймара"],["sq","албанский"],["am","амхарский"],["en","английский"],["ar","арабский"],["hy","армянский"],["as","ассамский"],["af","африкаанс"],["bm","бамбара"],["eu","баскский"],["be","белорусский"],["bn","бенгальский"],["my","бирманский"],["bg","болгарский"],["bs","боснийский"],["bho","бходжпури"],["cy","валлийский"],["hu","венгерский"],["vi","вьетнамский"],["haw","гавайский"],["gl","галисийский"],["el","греческий"],["ka","грузинский"],["gn","гуарани"],["gu","гуджарати"],["da","датский"],["doi","догри"],["zu","зулу"],["iw","иврит"],["ig","игбо"],["yi","идиш"],["ilo","илоканский"],["id","индонезийский"],["ga","ирландский"],["is","исландский"],["es","испанский"],["it","итальянский"],["yo","йоруба"],["kk","казахский"],["kn","каннада"],["ca","каталанский"],["qu","кечуа"],["ky","киргизский"],["zh-TW","китайский (традиционный)"],["zh-CN","китайский (упрощенный)"],["gom","конкани"],["ko","корейский"],["co","корсиканский"],["xh","коса"],["ht","креольский (гаити)"],["kri","крио"],["ku","курдский (курманджи)"],["ckb","курдский (сорани)"],["km","кхмерский"],["lo","лаосский"],["la","латинский"],["lv","латышский"],["ln","лингала"],["lt","литовский"],["lg","луганда"],["lb","люксембургский"],["mai","майтхили"],["mk","македонский"],["mg","малагасийский"],["ms","малайский"],["ml","малаялам"],["dv","мальдивский"],["mt","мальтийский"],["mi","маори"],["mr","маратхи"],["mni-Mtei","мейтейлон (манипури)"],["lus","мизо"],["mn","монгольский"],["de","немецкий"],["ne","непальский"],["nl","нидерландский"],["no","норвежский"],["or","ория"],["om","оромо"],["pa","панджаби"],["fa","персидский"],["pl","польский"],["pt","португальский"],["ps","пушту"],["rw","руанда"],["ro","румынский"],["ru","русский"],["sm","самоанский"],["sa","санскрит"],["ceb","себуанский"],["nso","сепеди"],["sr","сербский"],["st","сесото"],["si","сингальский"],["sd","синдхи"],["sk","словацкий"],["sl","словенский"],["so","сомалийский"],["sw","суахили"],["su","сунданский"],["tg","таджикский"],["th","тайский"],["ta","тамильский"],["tt","татарский"],["te","телугу"],["ti","тигринья"],["ts","тсонга"],["tr","турецкий"],["tk","туркменский"],["uz","узбекский"],["ug","уйгурский"],["uk","украинский"],["ur","урду"],["tl","филиппинский"],["fi","финский"],["fr","французский"],["fy","фризский"],["ha","хауса"],["hi","хинди"],["hmn","хмонг"],["hr","хорватский"],["ak","чви"],["ny","чева"],["cs","чешский"],["sv","шведский"],["sn","шона"],["gd","шотландский (гэльский)"],["ee","эве"],["eo","эсперанто"],["et","эстонский"],["jw","яванский"],["ja","японский"]]], sideChannel: {}});</script><script id="wiz_jd" nonce="4yDHP_r0rw-pqOulC-d5Rw">if (window['_wjdc']) {const wjd = {}; window['_wjdc'](wjd); delete window['_wjdc'];}</script><script aria-hidden="true" id="WIZ-footer" nonce="4yDHP_r0rw-pqOulC-d5Rw">window.wiz_progress&&window.wiz_progress(); window.stopScanForCss&&window.stopScanForCss(); ccTick('bl');</script></body></html><script nonce="4yDHP_r0rw-pqOulC-d5Rw">this.gbar_=this.gbar_||{};(function(_){var window=this;
Если вам нужно получать только аббревиатуру, то тогда можно сделать просто
Код:
#include <Array.au3>
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "https://translate.google.com")
$oHTTP.Send('')
$lg = StringRegExp($oHTTP.ResponseText, 'data:\[\["auto",(.*?)\]', 3)
if IsArray($lg) then
    $test = StringReplace($lg[0], '",', @CR)
    $test = StringReplace($test, '"', '')
    MsgBox(0,"",$test)
EndIf
 
Последнее редактирование:

musicstashall

Знающий
Сообщения
322
Репутация
7
Если вам нужно получать только аббревиатуру
Нет же, нужно двухмерный массив такого содержания:
Код:
Local $aData = [["auto","Определить язык"],["az","азербайджанский"],["ay","аймара"],["sq","албанский"],["am","амхарский"],["en","английский"],["ar","арабский"]] ;  и тд...
 

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
Нет же, нужно двухмерный массив такого содержания:
Код:
Local $aData = [["auto","Определить язык"],["az","азербайджанский"],["ay","аймара"],["sq","албанский"],["am","амхарский"],["en","английский"],["ar","арабский"]] ;  и тд...
Код:
#include <Array.au3>
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "https://translate.google.com")
$oHTTP.Send('')

$lg = StringRegExp($oHTTP.ResponseText, 'data:\[\[\["auto","Detect language"\],(.*?])\],', 3)
$lg = StringRegExp($lg[0], '"(.*?)"', 3)
$lg = _Array1DTo2D($lg, 2, 0, 0, 0)
_ArrayDisplay($lg, "2D Array")

Func _Array1DTo2D($avArray, $iCols, $iStart = 0, $iEnd = 0, $iFlag = 0)

    If $iStart = Default OR $iStart < 0 Then $iStart = 0
    If $iEnd = Default Then $iEnd = 0

    If NOT IsArray($avArray) Then Return SetError(1, 0, 0)
    If UBound($avArray, 0) <> 1 Then Return SetError(3, 0, 0)

    Local $iUBound = UBound($avArray) - 1

    If $iEnd < 1 Then $iEnd = $iUBound
    If $iEnd > $iUBound Then $iEnd = $iUBound
    If $iStart > $iEnd Then Return SetError(2, 0, 0)

    Local $iNbRows = ($iEnd - $iStart + 1) / $iCols
    If $iFlag AND IsFloat($iNbRows) Then Return SetError(2, 0, 0)

    Local $aRet[ Ceiling($iNbRows) ][$iCols]
    Local $iCol = 0, $iRow = 0
    For $i = $iStart To $iEnd
        If $iCol = $iCols Then
            $iCol = 0
            $iRow += 1
        EndIf
        $aRet[$iRow][$iCol] = $avArray[$i]
        $iCol += 1
    Next

    Return $aRet
EndFunc
 

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
Код:
"https://translate.google.com/?hl=ru"
"https://translate.google.com/?hl=en"

:acute:
Код:
#include <Array.au3>
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "https://translate.google.com/?hl=ru")
$oHTTP.Send('')

$lg = StringRegExp($oHTTP.ResponseText, 'data:\[\[\["auto","Определить язык"\],(.*?])\],', 3)
$lg = StringRegExp($lg[0], '"(.*?)"', 3)
$lg = _Array1DTo2D($lg, 2, 0, 0, 0)
_ArrayDisplay($lg, "2D Array")

Func _Array1DTo2D($avArray, $iCols, $iStart = 0, $iEnd = 0, $iFlag = 0)

    If $iStart = Default OR $iStart < 0 Then $iStart = 0
    If $iEnd = Default Then $iEnd = 0

    If NOT IsArray($avArray) Then Return SetError(1, 0, 0)
    If UBound($avArray, 0) <> 1 Then Return SetError(3, 0, 0)

    Local $iUBound = UBound($avArray) - 1

    If $iEnd < 1 Then $iEnd = $iUBound
    If $iEnd > $iUBound Then $iEnd = $iUBound
    If $iStart > $iEnd Then Return SetError(2, 0, 0)

    Local $iNbRows = ($iEnd - $iStart + 1) / $iCols
    If $iFlag AND IsFloat($iNbRows) Then Return SetError(2, 0, 0)

    Local $aRet[ Ceiling($iNbRows) ][$iCols]
    Local $iCol = 0, $iRow = 0
    For $i = $iStart To $iEnd
        If $iCol = $iCols Then
            $iCol = 0
            $iRow += 1
        EndIf
        $aRet[$iRow][$iCol] = $avArray[$i]
        $iCol += 1
    Next

    Return $aRet
EndFunc
 

musicstashall

Знающий
Сообщения
322
Репутация
7
auto","Определить язык
Вот эти строки могут быть на любом языке. Как угадать??
Сообщение автоматически объединено:

Я вот так грубо сделал:
Код:
Func _GoogleAPILang($sGoogleMain_Server, $LangSource)
    Local $sUrl, $oHTTP, $sResponse, $JSONData, $sOutput = "", $aData
    $sUrl  = 'https://' & $sGoogleMain_Server & '/?hl=' & $LangSource
    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET", $sUrl)
    $oHTTP.Send()
    $sResponse = $oHTTP.ResponseText
    ;ConsoleWrite($sResponse & @CR)
    Local $Int = StringInStr($sResponse, "[[[", 0, 1, StringInStr($sResponse, "AF_initDataCallback({key: 'ds:3'"))
    Local $sString = StringMid($sResponse, $Int + 3, StringInStr($sResponse, "]]]", 0, 1, $Int) - $Int -3)
    Local $aSplit = StringSplit($sString, '],[', 1)
    Dim $aData[1][2] = [[$aSplit[0]]]
    For $i = 1 To $aSplit[0]
        _ArrayAdd($aData, StringReplace(StringReplace($aSplit[$i], '"', ''), ',', '|'))
    Next
    Return $aData
EndFunc
 

SealAlbinos

Продвинутый
Сообщения
154
Репутация
57
Вот эти строки могут быть на любом языке. Как угадать??
Сообщение автоматически объединено:

Я вот так грубо сделал:
Код:
Func _GoogleAPILang($sGoogleMain_Server, $LangSource)
    Local $sUrl, $oHTTP, $sResponse, $JSONData, $sOutput = "", $aData
    $sUrl  = 'https://' & $sGoogleMain_Server & '/?hl=' & $LangSource
    $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
    $oHTTP.Open("GET", $sUrl)
    $oHTTP.Send()
    $sResponse = $oHTTP.ResponseText
    ;ConsoleWrite($sResponse & @CR)
    Local $Int = StringInStr($sResponse, "[[[", 0, 1, StringInStr($sResponse, "AF_initDataCallback({key: 'ds:3'"))
    Local $sString = StringMid($sResponse, $Int + 3, StringInStr($sResponse, "]]]", 0, 1, $Int) - $Int -3)
    Local $aSplit = StringSplit($sString, '],[', 1)
    Dim $aData[1][2] = [[$aSplit[0]]]
    For $i = 1 To $aSplit[0]
        _ArrayAdd($aData, StringReplace(StringReplace($aSplit[$i], '"', ''), ',', '|'))
    Next
    Return $aData
EndFunc
В целом так должно быть на всех языках нормально
Код:
#include <Array.au3>
$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
$oHTTP.Open("GET", "https://translate.google.com/?hl=ru")
$oHTTP.Send('')

$lg = StringRegExp($oHTTP.ResponseText, 'data:\[\[\["auto",".*?"\],(.*?])\],', 3)
$lg = StringRegExp($lg[0], '"(.*?)"', 3)
$lg = _Array1DTo2D($lg, 2, 0, 0, 0)
_ArrayDisplay($lg, "2D Array")

Func _Array1DTo2D($avArray, $iCols, $iStart = 0, $iEnd = 0, $iFlag = 0)

    If $iStart = Default OR $iStart < 0 Then $iStart = 0
    If $iEnd = Default Then $iEnd = 0

    If NOT IsArray($avArray) Then Return SetError(1, 0, 0)
    If UBound($avArray, 0) <> 1 Then Return SetError(3, 0, 0)

    Local $iUBound = UBound($avArray) - 1

    If $iEnd < 1 Then $iEnd = $iUBound
    If $iEnd > $iUBound Then $iEnd = $iUBound
    If $iStart > $iEnd Then Return SetError(2, 0, 0)

    Local $iNbRows = ($iEnd - $iStart + 1) / $iCols
    If $iFlag AND IsFloat($iNbRows) Then Return SetError(2, 0, 0)

    Local $aRet[ Ceiling($iNbRows) ][$iCols]
    Local $iCol = 0, $iRow = 0
    For $i = $iStart To $iEnd
        If $iCol = $iCols Then
            $iCol = 0
            $iRow += 1
        EndIf
        $aRet[$iRow][$iCol] = $avArray[$i]
        $iCol += 1
    Next

    Return $aRet
EndFunc
 
Верх