/**
 *
 * Return list of contexts for string translation
 *
 * @return mixed
 */
function wpml_ctt_st_contexts()
{
    return icl_st_get_contexts(false);
}
예제 #2
0
if (preg_match("#" . ICL_STRING_TRANSLATION_WAITING_FOR_TRANSLATOR . "-(.+)#", $status_filter_text, $matches)) {
    $status_filter = ICL_STRING_TRANSLATION_WAITING_FOR_TRANSLATOR;
    $status_filter_lang = $matches[1];
} else {
    $status_filter = filter_input(INPUT_GET, 'status', FILTER_SANITIZE_NUMBER_INT);
}
$status_filter = $status_filter !== null ? (int) $status_filter : null;
$context_filter = filter_input(INPUT_GET, 'context');
$search_filter = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$exact_match = filter_input(INPUT_GET, 'em', FILTER_VALIDATE_BOOLEAN);
$icl_string_translations = icl_get_string_translations();
if (!empty($icl_string_translations)) {
    $icl_strings_in_page = icl_get_strings_tracked_in_pages($icl_string_translations);
}
$active_languages = $sitepress->get_active_languages();
$icl_contexts = icl_st_get_contexts($status_filter);
$icl_st_translation_enabled = $sitepress->icl_account_configured() && $sitepress->get_icl_translation_enabled();
$available_contexts = array();
if (!empty($icl_contexts)) {
    foreach ($icl_contexts as $c) {
        if ($c) {
            $available_contexts[] = $c->context;
        }
    }
}
if (!empty($sitepress_settings['st']['theme_localization_domains']) && is_array($sitepress_settings['st']['theme_localization_domains'])) {
    foreach ($sitepress_settings['st']['theme_localization_domains'] as $c) {
        if ($c) {
            $available_contexts[] = 'theme ' . $c;
        }
    }
예제 #3
0
 public function get_links_for_menu_strings_translation()
 {
     $menu_links = array();
     $wpml_st_folder = $this->sitepress->get_wp_api()->constant('WPML_ST_FOLDER');
     if ($wpml_st_folder) {
         $wpml_st_contexts = icl_st_get_contexts(false);
         $wpml_st_contexts = wp_list_pluck($wpml_st_contexts, 'context');
         $menu_names = $this->get_menu_names();
         foreach ($menu_names as $k => $menu_name) {
             if (!in_array($menu_name . ' menu', $wpml_st_contexts, true)) {
                 unset($menu_names[$k]);
             }
         }
         if (!empty($menu_names)) {
             $menu_url_base = add_query_arg('page', urlencode($wpml_st_folder . '/menu/string-translation.php'), 'admin.php');
             foreach ($menu_names as $menu_name) {
                 $menu_url = add_query_arg('context', urlencode($menu_name . ' menu'), $menu_url_base);
                 $menu_links[$menu_name] = $menu_url;
             }
         }
     }
     $response = array();
     if ($menu_links) {
         $response = array('label' => esc_html__('Translate menu strings and URLs for:', 'sitepress'), 'items' => $menu_links);
     }
     return $response;
 }
예제 #4
0
$status_filter_text = $status_filter;
$status_filter_lang = false;
if (preg_match("#" . ICL_STRING_TRANSLATION_WAITING_FOR_TRANSLATOR . "-(.+)#", $status_filter_text, $matches)) {
    $status_filter = ICL_STRING_TRANSLATION_WAITING_FOR_TRANSLATOR;
    $status_filter_lang = $matches[1];
} else {
    $status_filter = filter_input(INPUT_GET, 'status', FILTER_SANITIZE_NUMBER_INT, FILTER_NULL_ON_FAILURE);
}
//$status_filter  = $status_filter !== false ? (int) $status_filter : null;
$context_filter = filter_input(INPUT_GET, 'context', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$search_filter = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_FULL_SPECIAL_CHARS);
$exact_match = filter_input(INPUT_GET, 'em', FILTER_VALIDATE_BOOLEAN);
$icl_string_translations = icl_get_string_translations();
$active_languages = $sitepress->get_active_languages();
$icl_contexts = icl_st_get_contexts($status_filter);
$unfiltered_context_counts = $status_filter !== false ? icl_st_get_contexts(false) : $icl_contexts;
function context_array($contexts)
{
    $count_array = array();
    $contexts = $contexts ? array_filter($contexts) : array();
    foreach ($contexts as $c) {
        $count_array[$c->context] = $c->c;
    }
    return $count_array;
}
$available_contexts = array_keys(context_array($icl_contexts));
$unfiltered_contexts = context_array($unfiltered_context_counts);
function _icl_string_translation_rtl_div($language)
{
    if (in_array($language, array('ar', 'he', 'fa'))) {
        echo ' dir="rtl" style="text-align:right;direction:rtl;"';
/**
*
* Popup for inserting a translatable string
*
* Since 1.4
*
*/
function wpv_ajax_wpv_translatable_string_popup()
{
    if (wp_verify_nonce($_GET['_wpnonce'], 'wpv_editor_callback')) {
        ?>
		<div class="wpv-dialog js-insert-translatable-string-dialog">
			<div class="wpv-dialog-header">
				<h2><?php 
        echo __('Insert translatable string', 'wpv-views');
        ?>
</h2>
			</div>
			<div class="wpv-dialog-content">
				<p>
					<label for="wpv-translatable-string-value"><?php 
        _e('String to translate', 'wpv-views');
        ?>
</label>
					<input id="wpv-translatable-string-value" type="text" placeholder="" class="js-wpv-translatable-string-value" />
				</p>
				<p>
				<?php 
        $icl_contexts = icl_st_get_contexts(false);
        if (count($icl_contexts) == 1) {
            foreach ($icl_contexts as $v) {
                $context_value = $v->context;
            }
        } else {
            $context_value = '';
        }
        ?>
					<label for="wpv-translatable-string-context"><?php 
        _e('WPML context', 'wpv-views');
        ?>
</label>
					<input id="wpv-translatable-string-context" type="text" placeholder="" value="<?php 
        echo $context_value;
        ?>
" class="js-wpv-translatable-string-context" />
				</p>
			</div>
			<div class="wpv-dialog-footer">
				<button class="button-secondary js-dialog-close"><?php 
        _e('Cancel', 'wpv-views');
        ?>
</button>
				<button class="button-primary js-wpv-insert-translatable-string-shortcode" onclick="wpv_insert_translatable_string_shortcode()"><?php 
        echo __('Insert shortcode', 'wpv-views');
        ?>
</button>
			</div>
			<script type="text/javascript">
				//<![CDATA[
				function wpv_insert_translatable_string_shortcode() {
					jQuery('.js-wpv-insert-translatable-string-shortcode').removeClass('button-primary').addClass('button-secondary').prop('disabled', true);
					var spinnerContainer = jQuery('<div class="spinner ajax-loader">').insertAfter(jQuery('.js-wpv-insert-translatable-string-shortcode')).show(),
					tsValue = jQuery('.js-wpv-translatable-string-value').val(),
					tsContext = jQuery('.js-wpv-translatable-string-context').val();
					window.icl_editor.insert('[wpml-string context="' + tsContext + '"]' + tsValue + '[/wpml-string]');
					jQuery.colorbox.close();
				}
				
				jQuery('.js-wpv-translatable-string-context').suggest(ajaxurl + '?action=wpv_suggest_wpml_contexts', {
					onSelect: function() {
						
					}
				});
				
				//]]>
			</script>
		</div> <!-- .js-insert-translatable-string-dialog -->
        <?php 
    }
    die;
}