public static function get_job_status_string($status_id, $needs_update = false)
 {
     $job_status_text = TranslationManagement::status2text($status_id);
     if ($needs_update) {
         $job_status_text .= __(' - (needs update)', 'wpml-translation-management');
     }
     return $job_status_text;
 }
    ?>
><?php 
    echo TranslationManagement::status2text(ICL_TM_COMPLETE);
    ?>
</option>
                            <option value="<?php 
    echo ICL_TM_IN_PROGRESS;
    ?>
" <?php 
    if (@intval($icl_translation_filter['status']) == ICL_TM_IN_PROGRESS) {
        ?>
selected="selected"<?php 
    }
    ?>
><?php 
    echo TranslationManagement::status2text(ICL_TM_IN_PROGRESS);
    ?>
</option>
                            <option value="<?php 
    echo ICL_TM_WAITING_FOR_TRANSLATOR;
    ?>
" <?php 
    if (@intval($icl_translation_filter['status']) && $icl_translation_filter['status'] == ICL_TM_WAITING_FOR_TRANSLATOR) {
        ?>
selected="selected"<?php 
    }
    ?>
><?php 
    _e('Available to translate', 'wpml-translation-management');
    ?>
</option>                                    
    function translation_queue_after_display()
    {
        $export_label = esc_html__('Export all jobs:', 'wpml-translation-management');
        if (isset($_SESSION['translation_ujobs_filter'])) {
            if (!empty($_SESSION['translation_ujobs_filter']['type'])) {
                $post_slug = preg_replace('/^post_/', '', $_SESSION['translation_ujobs_filter']['type'], 1);
                $post_type = get_post_type_object($post_slug);
                $type = $post_type->label;
            } else {
                $type = __('All types', 'wpml-translation-management');
            }
            $from = !empty($_SESSION['translation_ujobs_filter']['from']) ? $this->sitepress->get_display_language_name($_SESSION['translation_ujobs_filter']['from']) : __('Any language', 'wpml-translation-management');
            $to = !empty($_SESSION['translation_ujobs_filter']['to']) ? $this->sitepress->get_display_language_name($_SESSION['translation_ujobs_filter']['to']) : __('Any language', 'wpml-translation-management');
            $status = !empty($_SESSION['translation_ujobs_filter']['status']) && (int) $_SESSION['translation_ujobs_filter']['status'] !== ICL_TM_WAITING_FOR_TRANSLATOR ? TranslationManagement::status2text($_SESSION['translation_ujobs_filter']['status']) : (!empty($_SESSION['translation_ujobs_filter']['status']) ? __('Available to translate', 'wpml-translation-management') : 'All statuses');
            $export_label = sprintf(esc_html__('Export all filtered jobs of %1$s from %2$s to %3$s in %4$s:', 'wpml-translation-management'), '<b>' . $type . '</b>', '<b>' . $from . '</b>', '<b>' . $to . '</b>', '<b>' . $status . '</b>');
        }
        ?>

		<br />
		<table class="widefat">
			<thead><tr><th><?php 
        esc_html_e('Import / Export XLIFF', 'wpml-translation-management');
        ?>
</th></tr></thead>
			<tbody><tr><td>
				<form method="post" id="translation-xliff-export-all-filtered" action="">
					<label for="wpml_xliff_export_all_filtered"><?php 
        echo $export_label;
        ?>
</label>
					<select name="xliff_version" class="select"><?php 
        echo $this->get_xliff_version_select_options();
        ?>
</select>
					<input type="submit" value="<?php 
        esc_attr_e('Export', 'wpml-translation-management');
        ?>
" name="wpml_xliff_export_all_filtered" id="xliff_download" class="button-secondary action" />
					<input type="hidden" value="<?php 
        echo wp_create_nonce('xliff-export-all-filtered');
        ?>
" name="nonce">
				</form>
				<hr>
				<form enctype="multipart/form-data" method="post" id="translation-xliff-upload" action="">
					<label for="upload-xliff-file"><?php 
        _e('Select the xliff file or zip file to upload from your computer:&nbsp;', 'wpml-translation-management');
        ?>
</label>
					<input type="file" id="upload-xliff-file" name="import" /><input type="submit" value="<?php 
        _e('Upload', 'wpml-translation-management');
        ?>
" name="xliff_upload" id="xliff_upload" class="button-secondary action" />
				</form>
			</td></tr></tbody>
		</table>
		<?php 
    }
    /**
     * @param array     $icl_translation_filter
     */
    public function display($icl_translation_filter = array())
    {
        /**
         * @var TranslationManagement $iclTranslationManagement
         * @var WPML_Translation_Job_Factory $wpml_translation_job_factory
         */
        global $iclTranslationManagement, $current_user, $wpml_translation_job_factory, $wpdb;
        if (isset($_GET['job_id']) && $_GET['job_id'] > 0 || isset($_GET['trid']) && $_GET['trid'] > 0) {
            $job_id = $this->get_job_id_from_request();
            $job_object = $wpml_translation_job_factory->get_translation_job($job_id, false, 0, true);
            if ($job_object && $job_object->user_can_translate($current_user)) {
                $translation_editor_ui = new WPML_Translation_Editor_UI($wpdb, $this->sitepress, $iclTranslationManagement, $job_object, new WPML_TM_Job_Action_Factory($wpml_translation_job_factory), new WPML_TM_Job_Layout($wpdb, $this->sitepress->get_wp_api()));
                $translation_editor_ui->render();
                return;
            }
        }
        if (!empty($_GET['resigned'])) {
            $iclTranslationManagement->add_message(array('type' => 'updated', 'text' => __("You've resigned from this job.", 'wpml-translation-management')));
        }
        if (isset($_SESSION['translation_ujobs_filter'])) {
            $icl_translation_filter = $_SESSION['translation_ujobs_filter'];
        }
        $current_translator = $iclTranslationManagement->get_current_translator();
        $can_translate = $current_translator && $current_translator->ID > 0 && $current_translator->language_pairs;
        $post_link_factory = new WPML_TM_Post_Link_Factory($this->sitepress);
        if ($can_translate) {
            $icl_translation_filter['translator_id'] = $current_translator->ID;
            $icl_translation_filter['include_unassigned'] = true;
            $element_type_prefix = isset($_GET['element_type']) ? $_GET['element_type'] : 'post';
            if (isset($_GET['updated']) && $_GET['updated']) {
                $tm_post_link_updated = $post_link_factory->view_link($_GET['updated']);
                if ($iclTranslationManagement->is_external_type($element_type_prefix)) {
                    $tm_post_link_updated = apply_filters('wpml_external_item_link', $tm_post_link_updated, $_GET['updated'], false);
                }
                $user_message = __('Translation updated: ', 'wpml-translation-management') . $tm_post_link_updated;
                $iclTranslationManagement->add_message(array('type' => 'updated', 'text' => $user_message));
            } elseif (isset($_GET['added']) && $_GET['added']) {
                $tm_post_link_added = $post_link_factory->view_link($_GET['added']);
                if ($iclTranslationManagement->is_external_type($element_type_prefix)) {
                    $tm_post_link_added = apply_filters('wpml_external_item_link', $tm_post_link_added, $_GET['added'], false);
                }
                $user_message = __('Translation added: ', 'wpml-translation-management') . $tm_post_link_added;
                $iclTranslationManagement->add_message(array('type' => 'updated', 'text' => $user_message));
            } elseif (isset($_GET['job-cancelled'])) {
                $user_message = __('Translation has been removed by admin', 'wpml-translation-management');
                $iclTranslationManagement->add_message(array('type' => 'error', 'text' => $user_message));
            }
            $translation_jobs = array();
            if (!empty($current_translator->language_pairs)) {
                $_langs_to = array();
                if (1 < count($current_translator->language_pairs)) {
                    foreach ($current_translator->language_pairs as $lang => $to) {
                        $langs_from[] = $this->sitepress->get_language_details($lang);
                        $_langs_to = array_merge((array) $_langs_to, array_keys($to));
                    }
                    $_langs_to = array_unique($_langs_to);
                } else {
                    $_langs_to = array_keys(current($current_translator->language_pairs));
                    $lang_from = $this->sitepress->get_language_details(key($current_translator->language_pairs));
                    $icl_translation_filter['from'] = $lang_from['code'];
                }
                if (1 < count($_langs_to)) {
                    foreach ($_langs_to as $lang) {
                        $langs_to[] = $this->sitepress->get_language_details($lang);
                    }
                } else {
                    $lang_to = $this->sitepress->get_language_details(current($_langs_to));
                    $icl_translation_filter['to'] = $lang_to['code'];
                }
                $job_types = $wpml_translation_job_factory->get_translation_job_types_filter(array(), array('translator_id' => $current_translator->ID, 'include_unassigned' => true));
                $translation_jobs = $wpml_translation_job_factory->get_translation_jobs((array) $icl_translation_filter);
            }
        }
        ?>
		<div class="wrap">
			<h2><?php 
        echo __('Translations queue', 'wpml-translation-management');
        ?>
</h2>

			<?php 
        if (empty($current_translator->language_pairs)) {
            ?>
			<div class="error below-h2"><p><?php 
            _e("No translation languages configured for this user.", 'wpml-translation-management');
            ?>
</p></div>
			<?php 
        }
        ?>
			<?php 
        do_action('icl_tm_messages');
        ?>
			
			<?php 
        if (!empty($current_translator->language_pairs)) {
            ?>

			<div class="alignright">
				<form method="post" name="translation-jobs-filter" id="tm-queue-filter" action="admin.php?page=<?php 
            echo WPML_TM_FOLDER;
            ?>
/menu/translations-queue.php">
				<input type="hidden" name="icl_tm_action" value="ujobs_filter" />
				<table class="">
					<tbody>
						<tr valign="top">
							<td>
								<select name="filter[type]">
									<option value=""><?php 
            _e('All types', 'wpml-translation-management');
            ?>
</option>
									<?php 
            foreach ($job_types as $job_type => $job_type_name) {
                ?>
									<option value="<?php 
                echo $job_type;
                ?>
" <?php 
                if (!empty($icl_translation_filter['type']) && $icl_translation_filter['type'] == $job_type) {
                    ?>
selected="selected"<?php 
                }
                ?>
><?php 
                echo $job_type_name;
                ?>
</option>
									<?php 
            }
            ?>
								</select>&nbsp;
								<label>
									<strong><?php 
            _e('From', 'wpml-translation-management');
            ?>
</strong>
										<?php 
            if (1 < count($current_translator->language_pairs)) {
                $from_select = new WPML_Simple_Language_Selector($this->sitepress);
                echo $from_select->render(array('name' => 'filter[from]', 'please_select_text' => __('Any language', 'wpml-translation-management'), 'style' => '', 'languages' => $langs_from, 'selected' => isset($icl_translation_filter['from']) ? $icl_translation_filter['from'] : ''));
            } else {
                ?>
											<input type="hidden" name="filter[from]" value="<?php 
                echo esc_attr($lang_from['code']);
                ?>
" />
											<?php 
                echo $this->sitepress->get_flag_img($lang_from['code']) . ' ' . $lang_from['display_name'];
                ?>
										<?php 
            }
            ?>
								</label>&nbsp;
								<label>
									<strong><?php 
            _e('To', 'wpml-translation-management');
            ?>
</strong>
										<?php 
            if (1 < @count($langs_to)) {
                $to_select = new WPML_Simple_Language_Selector($this->sitepress);
                echo $to_select->render(array('name' => 'filter[to]', 'please_select_text' => __('Any language', 'wpml-translation-management'), 'style' => '', 'languages' => $langs_to, 'selected' => isset($icl_translation_filter['to']) ? $icl_translation_filter['to'] : ''));
            } else {
                ?>
											<input type="hidden" name="filter[to]" value="<?php 
                echo esc_attr($lang_to['code']);
                ?>
" />
											<?php 
                echo $this->sitepress->get_flag_img($lang_to['code']) . ' ' . $lang_to['display_name'];
                ?>
										<?php 
            }
            ?>
								</label>
								&nbsp;
								<select name="filter[status]">
									<option value=""><?php 
            _e('All statuses', 'wpml-translation-management');
            ?>
</option>
									<option value="<?php 
            echo ICL_TM_COMPLETE;
            ?>
" <?php 
            if (@intval($icl_translation_filter['status']) == ICL_TM_COMPLETE) {
                ?>
selected="selected"<?php 
            }
            ?>
><?php 
            echo TranslationManagement::status2text(ICL_TM_COMPLETE);
            ?>
</option>
									<option value="<?php 
            echo ICL_TM_IN_PROGRESS;
            ?>
" <?php 
            if (@intval($icl_translation_filter['status']) == ICL_TM_IN_PROGRESS) {
                ?>
selected="selected"<?php 
            }
            ?>
><?php 
            echo TranslationManagement::status2text(ICL_TM_IN_PROGRESS);
            ?>
</option>
									<option value="<?php 
            echo ICL_TM_WAITING_FOR_TRANSLATOR;
            ?>
" <?php 
            if (@intval($icl_translation_filter['status']) && $icl_translation_filter['status'] == ICL_TM_WAITING_FOR_TRANSLATOR) {
                ?>
selected="selected"<?php 
            }
            ?>
><?php 
            _e('Available to translate', 'wpml-translation-management');
            ?>
</option>
								</select>
								&nbsp;
								<input class="button-secondary" type="submit" value="<?php 
            _e('Filter', 'wpml-translation-management');
            ?>
" />
							</td>
						</tr>
					</tbody>
				</table>
				</form>
			</div>
			<?php 
            $actions = apply_filters('wpml_translation_queue_actions', array());
            /**
             * @deprecated Use 'wpml_translation_queue_actions' instead
             */
            $actions = apply_filters('WPML_translation_queue_actions', $actions);
            ?>
			<?php 
            if (sizeof($actions) > 0) {
                ?>
			<form method="post" name="translation-jobs-action" action="admin.php?page=<?php 
                echo WPML_TM_FOLDER;
                ?>
/menu/translations-queue.php">
			<?php 
            }
            ?>

				<?php 
            do_action('wpml_xliff_select_actions', $actions, 'action');
            /**
             * @deprecated Use 'wpml_xliff_select_actions' instead
             */
            do_action('WPML_xliff_select_actions', $actions, 'action');
            ?>

				<?php 
            $translation_queue_pagination = new WPML_Translations_Queue_Pagination_UI($translation_jobs, $this->screen_options->get_items_per_page());
            $translation_jobs = $translation_queue_pagination->get_paged_jobs();
            ?>
				<?php 
            // pagination - end
            ?>

				<?php 
            $blog_translators = wpml_tm_load_blog_translators();
            $tm_api = new WPML_TM_API($blog_translators, $iclTranslationManagement);
            $translation_queue_jobs_model = new WPML_Translations_Queue_Jobs_Model($this->sitepress, $iclTranslationManagement, $tm_api, $post_link_factory, $translation_jobs);
            $translation_jobs = $translation_queue_jobs_model->get();
            $this->show_table($translation_jobs, sizeof($actions) > 0);
            ?>

				<div id="tm-queue-pagination" class="tablenav">
					<?php 
            $translation_queue_pagination->show();
            ?>

					<?php 
            do_action('wpml_xliff_select_actions', $actions, 'action2');
            /**
             * @deprecated Use 'wpml_xliff_select_actions' instead
             */
            do_action('WPML_xliff_select_actions', $actions, 'action2');
            ?>
				</div>
				<?php 
            // pagination - end
            ?>

			<?php 
            if (sizeof($actions) > 0) {
                ?>
			</form>
			<?php 
            }
            ?>

			<?php 
            do_action('wpml_translation_queue_after_display');
            ?>

		<?php 
        }
        ?>
		</div>

		<?php 
        // Check for any bulk actions
        if (isset($_POST['action']) || isset($_POST["action2"])) {
            $xliff_version = isset($_POST['doaction']) ? $_POST['action'] : $_POST['action2'];
            do_action('wpml_translation_queue_do_actions_export_xliff', $_POST, $xliff_version);
            /**
             * @deprecated Use 'wpml_translation_queue_do_actions_export_xliff' instead
             */
            do_action('WPML_translation_queue_do_actions_export_xliff', $_POST, $xliff_version);
        }
    }
"><?php 
echo TranslationManagement::status2text(ICL_TM_WAITING_FOR_TRANSLATOR);
?>
</option>
		<option value="<?php 
echo ICL_TM_IN_PROGRESS;
?>
"><?php 
echo TranslationManagement::status2text(ICL_TM_IN_PROGRESS);
?>
</option>
		<option value="<?php 
echo ICL_TM_COMPLETE;
?>
"><?php 
echo TranslationManagement::status2text(ICL_TM_COMPLETE);
?>
</option>
		<option value="<?php 
echo ICL_TM_DUPLICATE;
?>
"><?php 
_e('Content duplication', 'wpml-translation-management');
?>
</option>
	</select>	&nbsp;	<label for="filter-job-lang-from">
		<?php 
_e('From', 'wpml-translation-management');
?>
</label>		<select id="filter-job-lang-from" name="filter[from]">
		<option value=""><?php