コード例 #1
0
 /**
  * @param WPML_WP_API $wpml_wp_api
  */
 public function load_pro_translation($wpml_wp_api)
 {
     global $ICL_Pro_Translation;
     if (!isset($ICL_Pro_Translation) && ($wpml_wp_api->is_admin() || defined('XMLRPC_REQUEST'))) {
         $job_factory = wpml_tm_load_job_factory();
         $ICL_Pro_Translation = new WPML_Pro_Translation($job_factory);
     }
 }
コード例 #2
0
 /**
  * Creates the polling status object for a given Translation Proxy Project
  *
  * @param TranslationProxy_Project $project
  *
  * @return WPML_TP_Polling_Status
  */
 public function polling_status($project)
 {
     $job_factory = wpml_tm_load_job_factory();
     $wpdb = $this->sitepress->wpdb();
     $wpml_tm_records = new WPML_TM_Records($wpdb);
     $cms_id_helper = new WPML_TM_CMS_ID($wpml_tm_records, $job_factory);
     return new WPML_TP_Polling_Status($project, $this->sitepress, $cms_id_helper);
 }
コード例 #3
0
function icl_pickup_translations()
{
    if (!wpml_is_action_authenticated('icl_pickup_translations')) {
        die('Wrong Nonce');
    }
    global $ICL_Pro_Translation, $wpdb;
    $job_factory = wpml_tm_load_job_factory();
    $wpml_tm_records = new WPML_TM_Records($wpdb);
    $cms_id_helper = new WPML_TM_CMS_ID($wpml_tm_records, $job_factory);
    $pickup = new WPML_TP_Polling_Pickup($ICL_Pro_Translation, $cms_id_helper);
    wp_send_json_success($pickup->poll_job($_POST));
}
コード例 #4
0
ファイル: ajax.php プロジェクト: studiopengpeng/ASCOMETAL
function icl_pickup_translations()
{
    if (!wpml_is_action_authenticated('icl_pickup_translations')) {
        die('Wrong Nonce');
    }
    global $ICL_Pro_Translation, $wpdb, $wpml_post_translations, $wpml_term_translations;
    $job_factory = wpml_tm_load_job_factory();
    $wpml_tm_records = new WPML_TM_Records($wpdb, $wpml_post_translations, $wpml_term_translations);
    $cms_id_helper = new WPML_TM_CMS_ID($wpml_tm_records, $job_factory);
    $project = TranslationProxy::get_current_project();
    $remote_sync_factory = new WPML_TP_Remote_Sync_Factory($project, $ICL_Pro_Translation, $cms_id_helper);
    $pickup = new WPML_TP_Polling_Pickup($ICL_Pro_Translation, $remote_sync_factory);
    wp_send_json_success($pickup->poll_job($_POST));
}
コード例 #5
0
 public function get_job_element_data($job, $job_data)
 {
     $job_data['pickup:id'] = $job['id'];
     $job_data['pickup:cms_id'] = $job['cms_id'];
     $job_data['pickup:job_state'] = $job['job_state'];
     $job_data['pickup:source_language'] = $job['source_language'];
     $job_data['pickup:target_language'] = $job['target_language'];
     $job_data['pickup:batch_id'] = isset($job['batch']['id']) ? $job['batch']['id'] : null;
     $translation_id = $this->pro_translation->get_cms_id_helper()->get_translation_id($job['cms_id']);
     if ($translation_id) {
         $tm_load_job_factory = wpml_tm_load_job_factory();
         $job_element = $tm_load_job_factory->job_by_translation_id($translation_id);
         if (is_object($job_element)) {
             $job_data = $this->get_job_data_to_log($job_data, $job_element);
             $job_data = $this->get_document_data_to_log($job_data, $job_element->get_original_document());
         }
     } else {
         $job_data['message'] = "Couldn't find a translation ID for cms_id " . $job['cms_id'];
     }
     return $job_data;
 }
コード例 #6
0
/**
 * @return WPML_TM_Xliff_Frontend
 */
function setup_xliff_frontend()
{
    global $sitepress;
    $job_factory = wpml_tm_load_job_factory();
    $xliff_frontend = new WPML_TM_Xliff_Frontend($job_factory, $sitepress);
    add_action('init', array($xliff_frontend, 'init'), isset($_POST['xliff_upload']) || isset($_GET['wpml_xliff_action']) && $_GET['wpml_xliff_action'] === 'download' ? 1501 : 10);
    return $xliff_frontend;
}
コード例 #7
0
/**
 * @return WPML_TM_Xliff_Frontend
 */
function setup_xliff_frontend()
{
    global $sitepress;
    $job_factory = wpml_tm_load_job_factory();
    $xliff_frontend = new WPML_TM_Xliff_Frontend($job_factory, $sitepress);
    add_action('init', array($xliff_frontend, 'init'), $xliff_frontend->get_init_priority());
    return $xliff_frontend;
}
コード例 #8
0
 /**
  * Get information about translators from current project. Works only for ICL as a Translation Service
  *
  * @param bool $force
  *
  * @return array|bool
  */
 public static function get_icl_translator_status($force = false)
 {
     /** @var SitePress $sitepress */
     /** @var WPML_Pro_Translation $ICL_Pro_Translation */
     global $sitepress, $ICL_Pro_Translation;
     if (!$ICL_Pro_Translation) {
         $job_factory = wpml_tm_load_job_factory();
         $ICL_Pro_Translation = new WPML_Pro_Translation($job_factory);
     }
     if (!TranslationProxy::translator_selection_available()) {
         return array();
     }
     $project = TranslationProxy::get_current_project();
     if (!$project) {
         return array();
     }
     $cache_key = md5(serialize($project));
     $cache_group = 'get_icl_translator_status';
     $found = false;
     $result = wp_cache_get($cache_key, $cache_group, false, $found);
     if ($found) {
         return $result;
     }
     $translator_status = array();
     $website_details = self::get_website_details(new TranslationProxy_Project(TranslationProxy::get_current_service()), $force);
     if (false === (bool) $website_details) {
         return array();
     }
     $language_pairs = array();
     if (isset($website_details['translation_languages']['translation_language'])) {
         $translation_languages = $website_details['translation_languages']['translation_language'];
         if (!isset($translation_languages[0])) {
             $buf = $translation_languages;
             $translation_languages = array(0 => $buf);
         }
         foreach ($translation_languages as $lang) {
             $translators = $_tr = array();
             $max_rate = false;
             if (isset($lang['translators'], $lang['translators']['translator']) && !empty($lang['translators'])) {
                 if (!isset($lang['translators']['translator'][0])) {
                     $_tr[0] = $lang['translators']['translator'];
                 } else {
                     $_tr = $lang['translators']['translator'];
                 }
                 foreach ($_tr as $t) {
                     if (false === $max_rate || $t['attr']['amount'] > $max_rate) {
                         $max_rate = $t['attr']['amount'];
                     }
                     $translators[] = array('id' => $t['attr']['id'], 'nickname' => $t['attr']['nickname'], 'contract_id' => $t['attr']['contract_id']);
                 }
             }
             $language_pairs[] = array('from' => $sitepress->get_language_code($ICL_Pro_Translation->server_languages_map($lang['attr']['from_language_name'], true)), 'to' => $sitepress->get_language_code($ICL_Pro_Translation->server_languages_map($lang['attr']['to_language_name'], true)), 'have_translators' => $lang['attr']['have_translators'], 'available_translators' => $lang['attr']['available_translators'], 'applications' => $lang['attr']['applications'], 'contract_id' => $lang['attr']['contract_id'], 'id' => $lang['attr']['id'], 'translators' => $translators, 'max_rate' => $max_rate);
         }
     }
     $translator_status['icl_lang_status'] = $language_pairs;
     if (isset($res['client']['attr'])) {
         $translator_status['icl_balance'] = $res['client']['attr']['balance'];
         $translator_status['icl_anonymous_user'] = $res['client']['attr']['anon'];
     }
     if (isset($res['html_status']['value'])) {
         $translator_status['icl_html_status'] = html_entity_decode($res['html_status']['value']);
         $translator_status['icl_html_status'] = preg_replace_callback('#<a([^>]*)href="([^"]+)"([^>]*)>#i', create_function('$matches', 'global $sitepress; return TranslationProxy_Popup::get_link($matches[2]);'), $translator_status['icl_html_status']);
     }
     if (isset($res['translators_management_info']['value'])) {
         $translator_status['translators_management_info'] = html_entity_decode($res['translators_management_info']['value']);
         $translator_status['translators_management_info'] = preg_replace_callback('#<a([^>]*)href="([^"]+)"([^>]*)>#i', create_function('$matches', 'global $sitepress; return TranslationProxy_Popup::get_link($matches[2]);'), $translator_status['translators_management_info']);
     }
     $translator_status['icl_support_ticket_id'] = null;
     if (isset($res['attr']['support_ticket_id'])) {
         $translator_status['icl_support_ticket_id'] = (int) $res['attr']['support_ticket_id'];
     }
     wp_cache_set($cache_key, $translator_status, $cache_group);
     return $translator_status;
 }