public function FileTranslator::requestTranslation in Translation Management Tool 8
@abstract
Submits the translation request and sends it to the translation provider.
During the translation process, Job::getItems() will only return job items that are not already fully translated.
Parameters
\Drupal\tmgmt\JobInterface $job: The job that should be submitted.
Overrides TranslatorPluginInterface::requestTranslation
See also
hook_tmgmt_job_before_request_translation()
hook_tmgmt_job_after_request_translation()
File
- translators/
tmgmt_file/ src/ Plugin/ tmgmt/ Translator/ FileTranslator.php, line 34
Class
- FileTranslator
- File translator.
Namespace
Drupal\tmgmt_file\Plugin\tmgmt\TranslatorCode
public function requestTranslation(JobInterface $job) {
$name = "JobID" . $job
->id() . '_' . $job
->getSourceLangcode() . '_' . $job
->getTargetLangcode();
$export = \Drupal::service('plugin.manager.tmgmt_file.format')
->createInstance($job
->getSetting('export_format'), $job
->getSetting('format_configuration'));
$path = $job
->getSetting('scheme') . '://tmgmt_file/' . $name . '.' . $job
->getSetting('export_format');
$dirname = dirname($path);
if (\Drupal::service('file_system')
->prepareDirectory($dirname, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS)) {
$file = file_save_data($export
->export($job), $path, FileSystemInterface::EXISTS_REPLACE);
\Drupal::service('file.usage')
->add($file, 'tmgmt_file', 'tmgmt_job', $job
->id());
$job
->submitted('Exported file can be downloaded <a href="@link" download>here</a>.', array(
'@link' => file_create_url($path),
));
}
else {
$job
->rejected('Failed to create writable directory @dirname, check file system permissions.', [
'@dirname' => $dirname,
]);
}
}