/** * @param int[] $strings * @param string $lang * * @return array */ public function change_language_of_strings($strings, $lang) { $package_translation = new WPML_Package_Helper(); $response = $package_translation->change_language_of_strings($strings, $lang); if ($response['success']) { $strings_in = implode(',', $strings); $update_query = "UPDATE {$this->wpdb->prefix}icl_strings SET language=%s WHERE id IN ({$strings_in})"; $update_prepare = $this->wpdb->prepare($update_query, $lang); $this->wpdb->query($update_prepare); $response['success'] = true; foreach ($strings as $string) { icl_update_string_status($string); } } return $response; }
function loaded() { parent::loaded(); if ($this->passed_dependencies()) { if (icl_get_setting('setup_complete')) { $this->add_admin_hooks(); $this->add_global_hooks(); if (is_admin()) { $this->run_db_update(); if (get_option('wpml-package-translation-refresh-required', true)) { add_action('init', array($this, 'refresh_packages'), 999, 0); update_option('wpml-package-translation-refresh-required', false); } } $this->package_translation_active = true; } } }
/** * @param $source_language * @param $target_language * * @throws WPML_Package_Exception */ public function send_package_to_basket($source_language, $target_language) { global $sitepress, $iclTranslationManagement; $package = $this->package; $package_id = $package->ID; $basket = TranslationProxy_Basket::get_basket(); $language_name = $sitepress->get_display_language_name($target_language); $send_to_basket = true; $package_helper = new WPML_Package_Helper(); $post = $package_helper->get_translatable_item(null, $package_id); $post_title = esc_html($post->title); $element_type = $package->get_element_type_prefix() . '_' . $post->kind_slug; $trid = $sitepress->get_element_trid($package_id, $element_type); $job_id = $iclTranslationManagement->get_translation_job_id($trid, $target_language); if ($job_id) { $job_details = $iclTranslationManagement->get_translation_job($job_id); $send_to_basket = $this->validate_package_status($job_details, $post_title, $language_name); } if ($send_to_basket) { $basket['package'][$package_id]['from_lang'] = $source_language; $basket['package'][$package_id]['to_langs'][$target_language] = 1; // set basket language if not already set if (!isset($basket['source_language'])) { $basket['source_language'] = $source_language; } } TranslationProxy_Basket::update_basket($basket); }
public function change_language_of_strings($domain, $langs, $to_lang, $set_as_default) { $package_translation = new WPML_Package_Helper(); $package_translation->change_language_of_strings_in_domain($domain, $langs, $to_lang); if (!empty($langs)) { foreach ($langs as &$lang) { $lang = "'" . $lang . "'"; } $langs = implode(',', $langs); $string_ids = $this->wpdb->get_col($this->wpdb->prepare("SELECT id FROM {$this->wpdb->prefix}icl_strings WHERE context=%s AND language IN ({$langs})", $domain)); foreach ($string_ids as $str_id) { $this->string_factory->find_by_id($str_id)->set_language($to_lang); } } if ($set_as_default) { $lang_of_domain = new WPML_Language_Of_Domain($this->sitepress); $lang_of_domain->set_language($domain, $to_lang); } $string_ids = $this->wpdb->get_col($this->wpdb->prepare("SELECT id FROM {$this->wpdb->prefix}icl_strings WHERE context = %s", $domain)); foreach ($string_ids as $strid) { $this->string_factory->find_by_id($strid)->update_status(); } return array('success' => true); }
/** * @param object $cat * * @return string */ private function get_category_string_context($cat) { $package_helper = new WPML_Package_Helper(); return $package_helper->get_string_context_from_package($this->lm_helper->get_package($cat->term_id, 'category')); }