You are here

class FileTranslator in Translation Management Tool 8

File translator.

Plugin annotation


@TranslatorPlugin(
  id = "file",
  label = @Translation("File exchange"),
  description = @Translation("Provider to export and import files."),
  ui = "Drupal\tmgmt_file\FileTranslatorUi"
)

Hierarchy

Expanded class hierarchy of FileTranslator

File

translators/tmgmt_file/src/Plugin/tmgmt/Translator/FileTranslator.php, line 21

Namespace

Drupal\tmgmt_file\Plugin\tmgmt\Translator
View source
class FileTranslator extends TranslatorPluginBase {

  /**
   * {@inheritdoc}
   */
  public function checkTranslatable(TranslatorInterface $translator, JobInterface $job) {

    // Anything can be exported.
    return TranslatableResult::yes();
  }

  /**
   * {@inheritdoc}
   */
  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,
      ]);
    }
  }

  /**
   * {@inheritdoc}
   */
  public function hasCheckoutSettings(JobInterface $job) {
    return $job
      ->getTranslator()
      ->getSetting('allow_override');
  }

  /**
   * {@inheritdoc}
   */
  public function defaultSettings() {
    return array(
      'export_format' => 'xlf',
      'allow_override' => TRUE,
      'scheme' => 'public',
      // Making this setting TRUE by default is more appropriate, however we
      // need to make it FALSE due to backwards compatibility.
      'xliff_processing' => FALSE,
      'xliff_cdata' => FALSE,
      'format_configuration' => [],
    );
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
FileTranslator::checkTranslatable public function Check whether this service can handle a particular translation job. Overrides TranslatorPluginBase::checkTranslatable
FileTranslator::defaultSettings public function Defines default settings. Overrides TranslatorPluginBase::defaultSettings
FileTranslator::hasCheckoutSettings public function Returns if the translator has any settings for the passed job. Overrides TranslatorPluginBase::hasCheckoutSettings
FileTranslator::requestTranslation public function @abstract Overrides TranslatorPluginInterface::requestTranslation
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TranslatorPluginBase::$escapeEnd protected property Characters that indicate the end of an escaped string. 1
TranslatorPluginBase::$escapeStart protected property Characters that indicate the beginning of an escaped string. 1
TranslatorPluginBase::abortTranslation public function Aborts a translation job. Overrides TranslatorPluginInterface::abortTranslation
TranslatorPluginBase::acceptedDataItem public function Accept a single data item. Overrides TranslatorPluginInterface::acceptedDataItem
TranslatorPluginBase::checkAvailable public function Checks whether a translator is available. Overrides TranslatorPluginInterface::checkAvailable 1
TranslatorPluginBase::escapeText public function Returns the escaped #text of a data item. Overrides TranslatorPluginInterface::escapeText
TranslatorPluginBase::getDefaultRemoteLanguagesMappings public function Specifies default mappings for local to remote language codes. Overrides TranslatorPluginInterface::getDefaultRemoteLanguagesMappings 1
TranslatorPluginBase::getEscapedString protected function Returns the escaped string.
TranslatorPluginBase::getSupportedLanguagePairs public function Default implementation that gets target languages for each remote language. This approach is ineffective and therefore it is advised that a plugin should provide own implementation. Overrides TranslatorPluginInterface::getSupportedLanguagePairs 1
TranslatorPluginBase::getSupportedRemoteLanguages public function Gets all supported languages of the translator. Overrides TranslatorPluginInterface::getSupportedRemoteLanguages
TranslatorPluginBase::getSupportedTargetLanguages public function Returns all available target languages that are supported by this service when given a source language. Overrides TranslatorPluginInterface::getSupportedTargetLanguages 2
TranslatorPluginBase::unescapeText public function Removes escape patterns from an escaped text. Overrides TranslatorPluginInterface::unescapeText