301

Re: AHK: Переводчик онлайн

Похоже, они решили прикрыть лавочку. Отправляю «Это запрещено правилами форума» — получаю «This allowed the forum rules».

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

302 (изменено: Malcev, 2019-10-20 00:52:42)

Re: AHK: Переводчик онлайн

У тебя пост запрос неправильный или устарел.
С client=webapp работает, но и другие параметры, наверное, стоит поправить.
https://github.com/Stichoza/google-tran … nslate.php
Кстати, а зачем держать в теме "AHK: Онлайн переводчик" 3 варианта, 2 из которых не работают?

303

Re: AHK: Переводчик онлайн

О, спасибо! А то у меня уже на офф-форуме спрашивают.
Да, надо поудалять лишнее оттуда.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

304

Re: AHK: Переводчик онлайн

teadrinker, не было ли варианта основной части скрипта для возможности перевода HTML-кода, как это происходит по кнопке из браузера? — https://i.imgur.com/SZ3jSmC.png

305

Re: AHK: Переводчик онлайн

Нет, я этим не интересовался.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

306

Re: AHK: Переводчик онлайн

Опять вроде алгоритм поменялся.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

307

Re: AHK: Переводчик онлайн

У меня вроде нормально работает.

308

Re: AHK: Переводчик онлайн

Не, стало криво переводить, не так, как на сайте Google Translate.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

309

Re: AHK: Переводчик онлайн

А пример можешь привести?

310

Re: AHK: Переводчик онлайн

https://i.imgur.com/aX5qX7B.png

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

311

Re: AHK: Переводчик онлайн

Либо так:

https://translate.googleapis.com/translate_a/single?client=gtx

Либо так:

https://clients5.google.com/translate_a/t?client=dict-chrome-ex

312

Re: AHK: Переводчик онлайн

Спасибо, работает! Но не даёт вариантов:
https://translate.googleapis.com/transl … amp;q=test

[[["тест","test",null,null,10]
]
,null,"en",null,null,null,null,[]
]

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

313

Re: AHK: Переводчик онлайн

А, нет, второй вариант вроде даёт! Надо потестить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

314

Re: AHK: Переводчик онлайн

Первый у меня тоже дает:

MsgBox, % GoogleTranslate("test", "en", "ru")

GoogleTranslate(str, from := "auto", to := "en")  {
   static JS := CreateScriptObj(), _ := JS.( GetJScript() ) := JS.("delete ActiveXObject; delete GetObject;")
   
   json := SendRequest(JS, str, to, from, proxy := "")
   oJSON := JS.("(" . json . ")")

   if !IsObject(oJSON[1])  {
      Loop % oJSON[0].length
         trans .= oJSON[0][A_Index - 1][0]
   }
   else  {
      MainTransText := oJSON[0][0][0]
      Loop % oJSON[1].length  {
         trans .= "`n+"
         obj := oJSON[1][A_Index-1][1]
         Loop % obj.length  {
            txt := obj[A_Index - 1]
            trans .= (MainTransText = txt ? "" : "`n" txt)
         }
      }
   }
   if !IsObject(oJSON[1])
      MainTransText := trans := Trim(trans, ",+`n ")
   else
      trans := MainTransText . "`n+`n" . Trim(trans, ",+`n ")

   from := oJSON[2]
   trans := Trim(trans, ",+`n ")
   Return trans
}

SendRequest(JS, str, tl, sl, proxy) {
   static http
   ComObjError(false)
   if !http
   {
      http := ComObjCreate("WinHttp.WinHttpRequest.5.1")
      ( proxy && http.SetProxy(2, proxy) )
      http.open( "get", "https://translate.google.com", 1 )
      http.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
      http.send()
      http.WaitForResponse(-1)
   }

   http.open( "POST", "https://translate.googleapis.com/translate_a/single?client=gtx&sl="
      . sl . "&tl=" . tl . "&hl=" . tl
      . "&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&otf=0&ssel=0&tsel=0&pc=1&kc=1"
      . "&tk=" . JS.("tk").(str), 1 )

   http.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8")
   http.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0")
   http.send("q=" . URIEncode(str))
   http.WaitForResponse(-1)
msgbox % http.responsetext
   Return http.responsetext
}

URIEncode(str, encoding := "UTF-8")  {
   VarSetCapacity(var, StrPut(str, encoding))
   StrPut(str, &var, encoding)

   While code := NumGet(Var, A_Index - 1, "UChar")  {
      bool := (code > 0x7F || code < 0x30 || code = 0x3D)
      UrlStr .= bool ? "%" . Format("{:02X}", code) : Chr(code)
   }
   Return UrlStr
}

GetJScript()
{
   script =
   (
      var TKK = ((function() {
        var a = 561666268;
        var b = 1526272306;
        return 406398 + '.' + (a + b);
      })());

      function b(a, b) {
        for (var d = 0; d < b.length - 2; d += 3) {
            var c = b.charAt(d + 2),
                c = "a" <= c ? c.charCodeAt(0) - 87 : Number(c),
                c = "+" == b.charAt(d + 1) ? a >>> c : a << c;
            a = "+" == b.charAt(d) ? a + c & 4294967295 : a ^ c
        }
        return a
      }

      function tk(a) {
          for (var e = TKK.split("."), h = Number(e[0]) || 0, g = [], d = 0, f = 0; f < a.length; f++) {
              var c = a.charCodeAt(f);
              128 > c ? g[d++] = c : (2048 > c ? g[d++] = c >> 6 | 192 : (55296 == (c & 64512) && f + 1 < a.length && 56320 == (a.charCodeAt(f + 1) & 64512) ?
              (c = 65536 + ((c & 1023) << 10) + (a.charCodeAt(++f) & 1023), g[d++] = c >> 18 | 240,
              g[d++] = c >> 12 & 63 | 128) : g[d++] = c >> 12 | 224, g[d++] = c >> 6 & 63 | 128), g[d++] = c & 63 | 128)
          }
          a = h;
          for (d = 0; d < g.length; d++) a += g[d], a = b(a, "+-a^+6");
          a = b(a, "+-3^+b+-f");
          a ^= Number(e[1]) || 0;
          0 > a && (a = (a & 2147483647) + 2147483648);
          a `%= 1E6;
          return a.toString() + "." + (a ^ h)
      }
   )
   Return script
}

CreateScriptObj() {
   static doc
   doc := ComObjCreate("htmlfile")
   doc.write("<meta http-equiv='X-UA-Compatible' content='IE=9'>")
   Return ObjBindMethod(doc.parentWindow, "eval")
}

315

Re: AHK: Переводчик онлайн

Ага, класс, я был уверен, что ты что-то нагуглишь!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

316

Re: AHK: Переводчик онлайн

Обновил пост в Коллекции.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

317

Re: AHK: Переводчик онлайн

Приветствую! На мой взгляд не хватает функции/кнопки быстрого копирования переведенного текста. Можно добавить эту кнопку рядом с кнопкой плей\стоп воспроизведения текста, либо сделать чекбокс, включающий возможность автокопирования в буфер уже переведенного текста.

318

Re: AHK: Переводчик онлайн

elektrovenik, согласен, добавлю, как руки дойдут.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

319

Re: AHK: Переводчик онлайн

robert
Причём тут сайт? У нас форум для программистов.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101