למשתמשים ב-GoogleTranslate החינמי
-
למשתמשים ב-GoogleTranslate החינמי, לאחרונה שמתי לב שמידי פעם זה לא מתרגם, והיום זה הפסיק לגמרי.
אני משתמש בgoogle-translate-php בשביל PHP.
לאחר בדיקה נראה שגוגל הפסיקו לתמוך בשליחת המחרוזת לתרגום כBody ב POST.
עדיין הם מאפשרים POST אבל צריך לשלוח את הפרמטר q בURL.מה שצריך לעשות בחבילה הנ"ל, למצוא את השורות הבאות בקובץ
/vendor/stichoza/google-translate-php/src/Stichoza/GoogleTranslate/TranslateClient.php$tokenData = is_array($data) ? implode('', $data) : $data; $queryArray = array_merge($this->urlParams, [ 'sl' => $this->sourceLanguage, 'tl' => $this->targetLanguage, 'tk' => $this->tokenProvider->generateToken($this->sourceLanguage, $this->targetLanguage, $tokenData), ]); $queryUrl = preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', http_build_query($queryArray));
ולהוסיף את הפרמטר q:
$tokenData = is_array($data) ? implode('', $data) : $data; $queryArray = array_merge($this->urlParams, [ 'sl' => $this->sourceLanguage, 'tl' => $this->targetLanguage, 'tk' => $this->tokenProvider->generateToken($this->sourceLanguage, $this->targetLanguage, $tokenData), 'q' => $data, ]); $queryUrl = preg_replace('/%5B(?:[0-9]|[1-9][0-9]+)%5D=/', '=', http_build_query($queryArray));
בהצלחה!