/** * {@inheritdoc} */ function requestTranslation(JobInterface $job) { // Add a debug message. $job->addMessage('Test translator called.', array(), 'debug'); // Do something different based on the action, if defined. $action = $job->getSetting('action') ?: ''; switch ($action) { case 'submit': $job->submitted('Test submit.'); break; case 'reject': $job->rejected('This is not supported.'); break; case 'fail': // Target not reachable. $job->addMessage('Service not reachable.', array(), 'error'); break; case 'translate': default: // The dummy translation prefixes strings with the target language. $data = array_filter(\Drupal::service('tmgmt.data')->flatten($job->getData()), array(\Drupal::service('tmgmt.data'), 'filterData')); $tdata = array(); foreach ($data as $key => $value) { if ($job->getTargetLangcode() != $job->getRemoteTargetLanguage()) { $tdata[$key]['#text'] = $job->getTargetLangcode() . '(' . $job->getRemoteTargetLanguage() . '): ' . $value['#text']; } else { $tdata[$key]['#text'] = $job->getTargetLangcode() . ': ' . $value['#text']; } } $job->submitted('Test translation created.'); $job->addTranslatedData(\Drupal::service('tmgmt.data')->unflatten($tdata)); break; } }