/** * {@inheritdoc} */ public function getSupportedRemoteLanguages(TranslatorInterface $translator) { $languages = array(); // Prevent access if the translator isn't configured yet. if (!$translator->getSetting('client_id')) { // @todo should be implemented by an Exception. return $languages; } try { $request = $this->doRequest($translator, 'GetLanguagesForTranslate'); if ($request) { $dom = new \DOMDocument(); $dom->loadXML($request->getBody()->getContents()); foreach ($dom->getElementsByTagName('string') as $item) { $languages[$item->nodeValue] = $item->nodeValue; } } } catch (\Exception $e) { drupal_set_message($e->getMessage(), 'Cannot get languages from the translator'); return $languages; } return $languages; }
/** * {@inheritdoc} */ function checkAvailable(TranslatorInterface $translator) { if ($translator->getSetting('action') == 'not_available') { return AvailableResult::no(t('@translator is not available. Make sure it is properly <a href=:configured>configured</a>.', ['@translator' => $translator->label(), ':configured' => $translator->url()])); } return parent::checkAvailable($translator); }
/** * Overrides TMGMTDefaultTranslatorPluginController::getSupportedRemoteLanguages(). */ public function getSupportedRemoteLanguages(TranslatorInterface $translator) { $languages = array(); // Prevent access if the translator isn't configured yet. if (!$translator->getSetting('api_key')) { return $languages; } try { $request = $this->doRequest($translator, 'languages'); if (isset($request['data'])) { foreach ($request['data']['languages'] as $language) { $languages[$language['language']] = $language['language']; } } } catch (\Exception $e) { drupal_set_message($e->getMessage(), 'error'); return $languages; } return $languages; }