function icl_get_blog_users_not_translators() { $translator_drop_down_options = array(); $nonce = filter_input(INPUT_POST, 'get_users_not_trans_nonce'); if (!wp_verify_nonce($nonce, 'get_users_not_trans_nonce')) { die('Wrong Nonce'); } $blog_users_nt = TranslationManagement::get_blog_not_translators(); foreach ((array) $blog_users_nt as $u) { $label = $u->display_name . ' (' . $u->user_login . ')'; $value = esc_attr($u->display_name); $translator_drop_down_options[] = array('label' => $label, 'value' => $value, 'id' => $u->ID); } wp_send_json_success($translator_drop_down_options); }
/** * Add/edit local translator form * * @param string $action add|edit * @param int|object $selected_translator * * @global object $sitepress * @return mixed */ private function icl_local_edit_translator_form($action = 'add', $selected_translator = 0) { global $sitepress; $blog_users_nt = TranslationManagement::get_blog_not_translators(); $output = ''; $return['name'] = __('Local', 'wpml-translation-management'); $return['description'] = __('Your own translators', 'wpml-translation-management'); if ($action == 'add' && empty($blog_users_nt)) { $alert_message = '<p>'; $alert_message .= __('All WordPress users are already translators. To add more translators, first create accounts for them.', 'wpml-translation-management'); $alert_message .= '</p>'; $return['content'] = ''; $return['messages'] = ICL_AdminNotifier::display_instant_message($alert_message, 'information', false, true); return $return; } $output .= '<div id="icl_tm_add_user_errors"> <span class="icl_tm_no_to">' . __('Select user.', 'wpml-translation-management') . '</span> </div> <input type="hidden" name="icl_tm_action" value="' . $action . '_translator" />' . wp_nonce_field($action . '_translator', $action . '_translator_nonce', true, false); if (!$selected_translator) { $output .= '<input type="hidden" id="icl_tm_selected_user" name="user_id" />'; $output .= '<input type="text" id="icl_quick_src_users" placeholder="' . esc_attr__('search', 'wpml-translation-management') . '" />'; $output .= ' <span id="icl_user_src_nf"></span>'; $output .= '<img style="display:none;margin-left:3px;" src="' . esc_url(admin_url('images/wpspin_light.gif')) . '" class="waiting" alt="" />'; $output .= '<p>' . __('To add translators, they must first have accounts in WordPress. Translators can have any editing privileges, including subscriber.') . '</p>'; } else { $output .= '<span class="updated fade" style="padding:4px">' . sprintf(__('Editing language pairs for <strong>%s</strong>', 'wpml-translation-management'), esc_html($selected_translator->display_name) . ' (' . $selected_translator->user_login . ')') . '</span>'; $output .= '<input type="hidden" name="user_id" value="' . $selected_translator->ID . '" />'; } if ($selected_translator) { $output .= '<br /> <div class="icl_tm_lang_pairs"'; if ($selected_translator) { $output .= ' style="display:block"'; } $output .= '> <ul>'; $languages = $sitepress->get_active_languages(); foreach ($languages as $from_lang) { $lang_from_selected = false; if ($selected_translator && 0 < @count($selected_translator->language_pairs[$from_lang['code']])) { $lang_from_selected = true; } $output .= '<li class="js-icl-tm-lang-from'; if ($lang_from_selected) { $output .= ' js-lang-from-selected'; } $output .= '">'; $output .= '<label><input class="icl_tm_from_lang" type="checkbox"'; if ($lang_from_selected) { $output .= ' checked="checked"'; } $output .= ' /> '; $output .= sprintf(__('From %s', 'wpml-translation-management'), $from_lang['display_name']) . '</label> <div class="icl_tm_lang_pairs_to"'; if ($selected_translator && 0 < @count($selected_translator->language_pairs[$from_lang['code']])) { $output .= ' style="display:block"'; } $output .= '> <small>' . __('to', 'wpml-translation-management') . '</small> <ul>'; foreach ($sitepress->get_active_languages() as $to_lang) { if ($from_lang['code'] == $to_lang['code']) { continue; } $lang_selected = false; if ($selected_translator->ID && isset($selected_translator->language_pairs[$from_lang['code']][$to_lang['code']])) { $lang_selected = true; } $output .= '<li class="js-icl-tm-lang-pair'; if ($lang_selected) { $output .= ' js-lang-pair-selected'; } $output .= '"> <label><input class="icl_tm_to_lang" type="checkbox" name="lang_pairs[' . $from_lang['code'] . '][' . $to_lang['code'] . ']" value="1"'; if ($lang_selected) { $output .= ' checked="checked"'; } $output .= ' /> '; $output .= $to_lang['display_name'] . '</label> </li>'; } $output .= '</ul> </div> </li>'; } $output .= '</ul>'; $output .= ' <input class="button-primary" type="submit" value="'; $output .= $selected_translator ? esc_attr(__('Update', 'wpml-translation-management')) : esc_attr(__('Add as translator', 'wpml-translation-management')); $output .= '" /> <input type="submit" value="' . __('Cancel', 'wpml-translation-management') . '" name="cancel" class="button-secondary" onclick="history.go(-1); return false;" />'; } $return['content'] = $output; return $action == 'edit' ? $output : $return; }
/** * Add/edit local translator form * * @global object $sitepress * @param string $action add|edit * @param object $selected_translator * @return mixed */ function icl_local_edit_translator_form($action = 'add', $selected_translator = 0) { global $sitepress, $iclTranslationManagement, $sitepress_settings; $blog_users_nt = TranslationManagement::get_blog_not_translators(); $blog_users_t = TranslationManagement::get_blog_translators(); $output = ''; $return['name'] = __('Local', 'wpml-translation-management'); $return['description'] = __('Your own translators', 'wpml-translation-management'); if ($action == 'add' && empty($blog_users_nt)) { $output .= '<span class="updated fade" style="padding:4px">' . __('All WordPress users are already translators. To add more translators, first create accounts for them.', 'wpml-translation-management') . '</span>'; $return['content'] = $output; return $return; } $output .= '<div id="icl_tm_add_user_errors"> <span class="icl_tm_no_to">' . __('Select user.', 'wpml-translation-management') . '</span> </div> <input type="hidden" name="icl_tm_action" value="' . $action . '_translator" />' . wp_nonce_field($action . '_translator', $action . '_translator_nonce', true, false); if (!$selected_translator) { $output .= '<input type="hidden" id="icl_tm_selected_user" name="user_id" />'; $output .= '<input type="text" id="icl_quick_src_users" placeholder="' . esc_attr__('search', 'sitepress') . '" />'; $output .= '<img style="display:none;margin-left:3px;" src="' . esc_url(admin_url('images/wpspin_light.gif')) . '" class="waiting" alt="" />'; if (count($blog_users_nt) <= 10) { $cssheight = 20 * count($blog_users_nt) + 5; $output .= '<select size="10" class="icl_tm_auto_suggest_dd" style="visibility:hidden;height:' . $cssheight . 'px">'; foreach ($blog_users_nt as $u) { $output .= '<option value="' . $u->ID . '|' . esc_attr($u->display_name) . '">' . $u->display_name . ' (' . $u->user_login . ')' . '</option>'; } $output .= '</select>'; } $output .= '<p>' . __('To add translators, they must first have accounts in WordPress. Translators can have any editing privileges, including subscriber.') . '</p>'; } else { $output .= '<span class="updated fade" style="padding:4px">' . sprintf(__('Editing language pairs for <strong>%s</strong>', 'wpml-translation-management'), esc_html($selected_translator->display_name) . ' (' . $selected_translator->user_login . ')') . '</span>'; $output .= '<input type="hidden" name="user_id" value="' . $selected_translator->ID . '" />'; } if ($selected_translator) { $output .= '<br /> <div class="icl_tm_lang_pairs"'; if ($selected_translator) { $output .= ' style="display:block"'; } $output .= '> <ul>'; $languages = $sitepress->get_active_languages(); if (defined('WPML_ST_VERSION') && isset($sitepress_settings['st']['strings_language']) && !isset($languages[$sitepress_settings['st']['strings_language']])) { $languages[$sitepress_settings['st']['strings_language']] = $sitepress->get_language_details($sitepress_settings['st']['strings_language']); $languages[$sitepress_settings['st']['strings_language']]['display_name'] .= ' ' . __('(only for strings)', 'wpml-translation-management'); } foreach ($languages as $from_lang) { $output .= '<li> <label><input class="icl_tm_from_lang" type="checkbox"'; if ($selected_translator && 0 < @count($selected_translator->language_pairs[$from_lang['code']])) { $output .= ' checked="checked"'; } $output .= ' /> '; $output .= sprintf(__('From %s', 'wpml-translation-management'), $from_lang['display_name']) . '</label> <div class="icl_tm_lang_pairs_to"'; if ($selected_translator && 0 < @count($selected_translator->language_pairs[$from_lang['code']])) { $output .= ' style="display:block"'; } $output .= '> <small>' . __('to', 'wpml-translation-management') . '</small> <ul>'; foreach ($sitepress->get_active_languages() as $to_lang) { if ($from_lang['code'] == $to_lang['code']) { continue; } $output .= '<li> <label><input class="icl_tm_to_lang" type="checkbox" name="lang_pairs[' . $from_lang['code'] . '][' . $to_lang['code'] . ']" value="1"'; if ($selected_translator->ID && isset($selected_translator->language_pairs[$from_lang['code']][$to_lang['code']])) { $output .= ' checked="checked"'; } $output .= ' /> '; $output .= $to_lang['display_name'] . '</label> </li>'; } $output .= '</ul> </div> </li>'; } $output .= '</ul>'; $output .= ' <input class="button-primary" type="submit" value="'; $output .= $selected_translator ? esc_attr(__('Update', 'wpml-translation-management')) : esc_attr(__('Add as translator', 'wpml-translation-management')); $output .= '" /> <input type="submit" value="' . __('Cancel', 'wpml-translation-management') . '" name="cancel" class="button-secondary" onclick="history.go(-1); return false;" />'; } $return['content'] = $output; return $action == 'edit' ? $output : $return; }
if (isset($button['setup_url'])) { echo '<input type="hidden" id="' . $service . '_setup_url" name="' . $service . '_setup_url" value="' . $button['setup_url'] . '" />' . "\r\n"; } echo '</div>'; } echo '<br style="clear:both;" />'; echo '<input id="icl_add_translator_submit" class="button-primary" type="submit" value="' . esc_attr(__('Add translator', 'wpml-translation-management')) . '" />' . "\r\n"; echo '</form>' . "\r\n"; echo '</div>' . "\r\n"; } else { _e('No add translator interface available', 'wpml-translation-management'); } } // Translators lists // Local translators $blog_users_nt = TranslationManagement::get_blog_not_translators(); $blog_users_t = TranslationManagement::get_blog_translators(); $other_service_translators = TranslationManagement::icanlocalize_translators_list(); ?> <?php if (!empty($blog_users_t) || !empty($other_service_translators)) { ?> <h3><?php _e('Current translators', 'wpml-translation-management'); ?> </h3> <table class="widefat fixed" cellspacing="0"> <thead> <tr class="thead"> <th><?php