I use Translate extension (MLEB 2017.07, MW 1.28.2) and as reported on https://www.mediawiki.org/wiki/Topic:U0aqil7xblkca33b the function YandexWebService::getQuery needs to be fixed like so:
protected function getQuery( $text, $from, $to ) { if ( !isset( $this->config['key'] ) ) { throw new TranslationWebServiceConfigurationException( 'API key is not set' ); } # https://tech.yandex.com/translate/doc/dg/reference/translate-docpage/ if ( strlen( $text ) > 10000 ) { throw new TranslationWebServiceInvalidInputException( 'Source text too long' ); } $text = trim( $text ); $text = $this->wrapUntranslatable( $text ); return TranslationQuery::factory( $this->config['url'] ) ->timeout( $this->config['timeout'] ) ->queryParamaters( [ 'key' => $this->config['key'], 'text' => $text, 'lang' => "$from-$to", 'format' => 'html', ] ); }
The bug is that in the TranslationQueryResponse Object the query:body is set but no query:parameters. There is also a misspelled typo but none of importance (paramater instead of parameter: TranslationQuery::queryParamaters)