/** * Imports the data in the xliff string into an array representation * that fits to the given target translation id. * * @param string $xliff_string * @param int $target_translation_id * * @return WP_Error|array */ public function import($xliff_string, $target_translation_id) { $xliff_reader = $this->xliff_reader_factory->general_xliff_reader(); $job_data = $xliff_reader->get_data($xliff_string); if (is_wp_error($job_data)) { $job = $this->job_factory->job_by_translation_id($target_translation_id); if ($job && ($id_string = $xliff_reader->get_xliff_job_identifier($xliff_string)) !== false) { $job_data = $xliff_reader->get_data(str_replace($id_string, $job->get_id() . '-' . md5($job->get_id() . $job->get_original_element_id()), $xliff_string)); } } return $job_data; }
private function process_translated_string($translation_proxy_job_id, $language) { $project = TranslationProxy::get_current_project(); $translation = $project->fetch_translation($translation_proxy_job_id); $translation = apply_filters('icl_data_from_pro_translation', $translation); $ret = false; $translation = $this->xliff_reader_factory->string_xliff_reader()->get_data($translation); if ($translation) { $ret = icl_translation_add_string_translation($translation_proxy_job_id, $translation, $language); if ($ret) { $project->update_job($translation_proxy_job_id); } } return $ret; }