File manager - Edit - /home/rangceb/diohome.com/wp-content468461/updraft/plugins-old/lingotek-translation/include/group-string.php
Back
<?php /* * Translations groups for strings * * @since 0.2 */ class Lingotek_Group_String extends Lingotek_Group { /* * assigns this object properties from the underlying term * * @since 0.2 * * @param object $term term translation object */ protected function load( $term ) { parent::load( $term ); $this->name = $term->name; $this->md5 = &$this->desc_array['lingotek']['md5']; } /* * updates the translation term in DB * * @since 0.2 */ public function save() { wp_update_term( (int) $this->term_id, $this->taxonomy, array( 'slug' => $this->document_id, 'name' => $this->name, 'description' => serialize( $this->desc_array ), ) ); } /* * set a translation term for a strings group * * @since 0.2 * * @param string string group name * @param object $language * @param string $document_id translation term name (Lingotek document id) */ public static function create( $name, $language, $document_id ) { $desc = array( 'lingotek' => array( 'type' => 'string', 'md5' => md5( self::get_content( $name ) ), 'source' => $language->mo_id, 'status' => 'importing', 'translations' => array(), ), ); $terms = wp_get_object_terms( $language->mo_id, 'post_translations' ); // the translation already exists but was previously disassociated if ( $key = array_search( $name, wp_list_pluck( $terms, 'name' ) ) ) { wp_update_term( (int) $terms[ $key ]->term_id, 'post_translations', array( 'slug' => $document_id, 'name' => $name, 'description' => serialize( $desc ), ) ); } else { wp_insert_term( $name, 'post_translations', array( 'slug' => $document_id, 'description' => serialize( $desc ), ) ); }//end if // Add terms. wp_set_object_terms( $language->mo_id, $document_id, 'post_translations', true ); } /* * uploads a modified source * * @since 0.2 * * @param string $group group name * @param string $empty used for compatibility with parent class */ public function patch( $params, $group = '', $content = null ) { $client = new Lingotek_API(); $res = $client->patch_document( $this->document_id, $params, $group ); if ( $res !== false ) { $this->md5 = md5( $content ); $this->status = 'importing'; $this->translations = array_fill_keys( array_keys( $this->translations ), 'pending' ); $this->save(); } } /* * returns the content to translate * * @since 0.2 * * @param object $group string group name * @return string json encoded content to translate */ public static function get_content( $group ) { foreach ( PLL_Admin_Strings::get_strings() as $string ) { if ( $string['context'] == $group ) { $arr[ $string['string'] ] = $string['string']; } } return json_encode( $arr ); } /* * requests translations to Lingotek TMS * * @since 0.2 */ public function request_translations() { if ( isset( $this->source ) ) { $this->_request_translations( $this->get_source_language() ); } } /* * create a translation downloaded from Lingotek TMS * * @since 0.2 * @uses Lingotek_Group::safe_translation_status_update() as the status can be automatically set by the TMS callback * * @param string $locale */ public function create_translation( $locale ) { $client = new Lingotek_API(); if ( false === ( $translation = $client->get_translation( $this->document_id, $locale, $this->name ) ) ) { return; } // Get the strings name for the filter. $strings = wp_list_pluck( PLL_Admin_Strings::get_strings(), 'name', 'string' ); // wp_insert_post expects array. $translations = json_decode( $translation, true ); $language = $this->pllm->get_language( $locale ); $mo = new PLL_MO(); $mo->import_from_db( $language ); foreach ( $translations as $key => $translation ) { $translation = apply_filters( 'pll_sanitize_string_translation', $translation, $strings[ $key ], $this->name ); $mo->add_entry( $mo->make_entry( $key, $translation ) ); } $mo->export_to_db( $language ); $this->safe_translation_status_update( $locale, 'current' ); } /* * checks if content should be automatically uploaded * * @since 0.2 * * @return bool */ public function is_automatic_upload() { return 'automatic' == Lingotek_Model::get_profile_option( 'upload', 'string', $this->get_source_language() ) && parent::is_automatic_upload(); } /* * get the the language of the source string (always the default language) * * @since 0.2 * * @return object */ public function get_source_language() { return $this->pllm->get_language( $this->pllm->options['default_lang'] ); } }
| ver. 1.4 |
Github
|
.
| PHP 8.4.10 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings