/**
  * {@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;
     }
 }