You are here

function tmgmt_i18n_string_translate_form_submit in Translation Management Tool 7

1 string reference to 'tmgmt_i18n_string_translate_form_submit'
tmgmt_i18n_string_form_i18n_string_translate_page_overview_form_alter in sources/i18n_string/tmgmt_i18n_string.module
Implements hook_form_ID_alter().

File

sources/i18n_string/tmgmt_i18n_string.module, line 173
Source plugin for the Translation Management system that handles i18n strings.

Code

function tmgmt_i18n_string_translate_form_submit($form, &$form_state) {
  $items = array_filter($form_state['values']['languages']);
  $type = $form_state['values']['object']
    ->get_type();
  $source_lang = variable_get_value('i18n_string_source_language');
  $jobs = array();
  $target_lang_registry = array();

  // Loop through entities and create individual jobs for each source language.
  foreach ($items as $item) {
    $item_parts = explode(':', $item);
    $target_lang = array_pop($item_parts);
    $key = implode(':', $item_parts);

    // For given source lang no job exists yet.
    if (!isset($target_lang_registry[$target_lang])) {

      // Create new job.
      $job = tmgmt_job_create($source_lang, $target_lang, $GLOBALS['user']->uid);

      // Add initial job item.
      $job
        ->addItem('i18n_string', $type, $key);

      // Add job identifier into registry
      $target_lang_registry[$target_lang] = $job->tjid;

      // Add newly created job into jobs queue.
      $jobs[$job->tjid] = $job;
    }
    else {
      $jobs[$target_lang_registry[$target_lang]]
        ->addItem('i18n_string', $type, $key);
    }
  }
  tmgmt_ui_job_checkout_and_redirect($form_state, $jobs);
}