/**
  * Creates the message that is shown before committing a batch.
  *
  * @see \WPML_Basket_Tab_Ajax::begin_basket_commit
  *
  * @param string $basket_name
  *
  * @return array
  */
 private function create_remote_batch_message($basket_name)
 {
     if ($basket_name) {
         $this->basket->set_name($basket_name);
     }
     $basket = $this->basket->get_basket();
     $basket_items_types = $this->basket->get_item_types();
     if (!$basket) {
         $message_content = __('No items found in basket', 'sitepress');
     } else {
         $total_count = 0;
         $message_content_details = '';
         foreach ($basket_items_types as $item_type_name => $item_type) {
             if (isset($basket[$item_type_name])) {
                 $count_item_type = count($basket[$item_type_name]);
                 $total_count += $count_item_type;
                 $message_content_details .= '<br/>';
                 $message_content_details .= '- ' . $item_type_name . '(s): ' . $count_item_type;
             }
         }
         $message_content = sprintf(__('%s items in basket:', 'sitepress'), $total_count);
         $message_content .= $message_content_details;
     }
     $container = $message_content;
     return array('message' => $container, 'basket' => $basket, 'allowed_item_types' => array_keys($basket_items_types));
 }
 /**
  * @param array $translators
  * @param array $valid_jobs
  *
  * @return array
  */
 private function generate_remote_target_langs(array $translators, array $valid_jobs)
 {
     $remote_target_languages = array();
     $basket_items_types = $this->basket->get_item_types();
     foreach ($basket_items_types as $item_type_name => $item_type) {
         // check target languages for strings
         if (!empty($valid_jobs[$item_type_name])) {
             foreach ($valid_jobs[$item_type_name] as $value) {
                 foreach ($value['to_langs'] as $target_language => $target_language_selected) {
                     //for remote strings
                     if ($value['from_lang'] != $target_language && !is_numeric($translators[$target_language]) && $target_language_selected && !in_array($target_language, $remote_target_languages)) {
                         $remote_target_languages[] = $target_language;
                     }
                 }
             }
         }
     }
     return $remote_target_languages;
 }