Changeset 3147335
- Timestamp:
- 09/06/2024 04:04:59 AM (7 months ago)
- Location:
- fluentc-translation
- Files:
-
- 363 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
fluentc-translation/trunk/fluentc_wordpress_plugin.php
r3144460 r3147335 7 7 * Plugin URI: https://github.com/fluentc/wordpress-plugin 8 8 * Description: A plugin that enables website owners to easily install the FluentC Translation on their WordPress site. 9 * Version: 1.7. 29 * Version: 1.7.3 10 10 * Author: FluentC 11 11 * Author URI: https://www.fluentc.ai … … 17 17 define( 'FLUENTC_DIR', __DIR__ ); 18 18 define( 'FLUENTC_SLUG', 'fluentc_translation' ); 19 define( 'FLUENTC_TRANSLATION_VERSION', "1.7. 1" );19 define( 'FLUENTC_TRANSLATION_VERSION', "1.7.3" ); 20 20 define( 'FLUENTC_TRANSLATION_PLUGIN_DIR', plugin_dir_path(__FILE__) ); 21 21 define( 'FLUENTC_TRANSLATION_PLUGIN_URL', plugin_dir_url(__FILE__) ); -
fluentc-translation/trunk/readme.txt
r3144460 r3147335 5 5 Requires at least: 4.6 6 6 Tested up to: 6.6.1 7 Stable tag: 1.7. 27 Stable tag: 1.7.3 8 8 Requires PHP: 7.3 9 9 License: GPLv2 or later -
fluentc-translation/trunk/src/actions/class-aioseo.php
r3144460 r3147335 74 74 $language_code = $this->fluentc_language->get_fluentc_language(); 75 75 $widgetapikey = get_option( 'fluentc_api_key' ); 76 $site_language = get_bloginfo( 'language');76 $site_language = $this->fluentc_language->fluentc_site_language(); 77 77 if ( $language_code ) { 78 78 // If language code is set, modify the output accordingly. -
fluentc-translation/trunk/src/actions/class-insert.php
r3144460 r3147335 180 180 <meta name="generator" content="<?php echo esc_attr( 'FluentC v' . FLUENTC_TRANSLATION_VERSION ); ?>" > 181 181 <?php 182 $explodelang = explode( '-', get_bloginfo( 'language' ) ); 183 184 if ( $explodelang ) { 185 $bloglanguage = $explodelang[0]; 186 } else { 187 $bloglanguage = get_bloginfo( 'language' ); 188 } 189 182 $bloglanguage = $this->fluentc_language->fluentc_site_language(); 190 183 foreach ( $languages as $language ) { 191 184 192 185 if ( $bloglanguage === $language ) { 193 $set = 'set'; 186 ?> 187 <link rel="alternate" hreflang="<?php echo esc_attr( $language ); ?>" href="<?php echo esc_url( $this->fluentc_url->get_canonical_url( $current_url, $widgetapikey ) ) ?>" > 188 <?php 194 189 } else { 195 190 ?> -
fluentc-translation/trunk/src/actions/class-rankmath.php
r3122693 r3147335 75 75 $language_code = $this->fluentc_language->get_fluentc_language(); 76 76 $widgetapikey = get_option( 'fluentc_api_key' ); 77 $site_language = get_bloginfo( 'language');77 $site_language = $this->fluentc_language->fluentc_site_language(); 78 78 if ( $language_code ) { 79 79 // If language code is set, modify the output accordingly. … … 95 95 $language_code = $this->fluentc_language->get_fluentc_language(); 96 96 $widgetapikey = get_option( 'fluentc_api_key' ); 97 $site_language = get_bloginfo( 'language');97 $site_language = $this->fluentc_language->fluentc_site_language(); 98 98 if ( $language_code ) { 99 99 // If language code is set, modify the output accordingly. … … 115 115 $language_code = $this->fluentc_language->get_fluentc_language(); 116 116 $widgetapikey = get_option( 'fluentc_api_key' ); 117 $site_language = get_bloginfo( 'language');117 $site_language = $this->fluentc_language->fluentc_site_language(); 118 118 if ( $language_code ) { 119 119 // If language code is set, modify the output accordingly. -
fluentc-translation/trunk/src/actions/class-wordpress.php
r3140944 r3147335 106 106 $this->language_code = $this->fluentc_language->get_fluentc_language(); 107 107 $this->widgetapikey = get_option( 'fluentc_api_key' ); 108 $this->site_language = substr( get_bloginfo( 'language' ), 0, 2);108 $this->site_language = $this->fluentc_language->fluentc_site_language(); 109 109 110 110 } … … 162 162 $entry_skip_map = []; 163 163 164 $elements = $dom->find('*:not(script):not(style):not(code):not( pre):not(noscript):not(iframe):not(object):not(embed):not(svg):not(math):not(canvas)');164 $elements = $dom->find('*:not(script):not(style):not(code):not(figure):not(pre):not(noscript):not(iframe):not(object):not(embed):not(svg):not(math):not(canvas)'); 165 165 foreach ($elements as $element) { 166 166 $nodes = ($element instanceof \PHPHtmlParser\Dom\Node\HtmlNode) ? $element->getChildren() : [$element]; … … 220 220 221 221 private function applyTranslations($entry_map, $translated_texts, $language_code) { 222 foreach ($translated_texts as $index => $translatedText) { 223 if (isset($entry_map[$index])) { 224 $node = $entry_map[$index]; 225 $original_text = $node->text(); 226 $translated_text = $translatedText->translatedText; 227 228 if ($translated_text !== null && $translated_text !== '') { 222 foreach ($translated_texts as $translatedText) { 223 $original_text = $translatedText->originalText; 224 $translated_text = $translatedText->translatedText; 225 226 if (isset($entry_map[$original_text]) && $translated_text !== null && $translated_text !== '') { 227 foreach ($entry_map[$original_text] as $node) { 229 228 $node->setText($translated_text); 230 $key = hash('md5', $original_text); 231 $translated_key = hash('md5', $translated_text); 232 $this->translated_text[$key] = $translated_text; 233 $this->translated_text[$translated_key] = $translated_text; 234 $cache_key = $this->site_language . $language_code . $key; 235 $this->fluentc_cache->set($cache_key, json_encode([ 236 'data' => ['translateSite' => ['body' => $translatedText]] 237 ])); 238 } else { 239 do_action( 'qm/info', 'No Translated Text' ); 240 } 241 } 242 243 } 244 229 } 230 231 $key = hash('md5', $original_text); 232 $translated_key = hash('md5', $translated_text); 233 234 do_action('qm/info', 'applyTranslations $translated_text ' . $translated_key . ' text' . $translated_text); 235 236 $this->translated_text[$key] = $translated_text; 237 $this->translated_text[$translated_key] = $translated_text; 238 239 $cache_key = $this->site_language . $language_code . $key; 240 $this->fluentc_cache->set($cache_key, json_encode([ 241 'data' => ['translateSite' => ['body' => ['translatedText' => $translated_text]]] 242 ])); 243 } else { 244 do_action('qm/info', 'No Translated Text or No Matching Nodes'); 245 } 246 } 245 247 } 246 248 … … 257 259 } 258 260 259 261 private function processNode($node, &$texts_to_translate, &$entry_map, &$entry_skip_map) { 260 262 if (!($node instanceof \PHPHtmlParser\Dom\Node\TextNode)) { 261 263 return; 262 264 } 263 265 264 if (preg_match($this->fluentc_htmltags->regex_only_whitespace, $node->text()) || 265 preg_match($this->fluentc_htmltags->regex_only_digits_whitespace_punctuation, $node->text())) { 266 $text = $node->text(); 267 268 if (preg_match($this->fluentc_htmltags->regex_only_whitespace, $text) || 269 preg_match($this->fluentc_htmltags->regex_only_digits_whitespace_punctuation, $text)) { 266 270 return; 267 271 } 268 269 //Eliminate already translated text. 270 $key = hash('md5', $node->text()); 271 272 if (array_key_exists($key, $this->translated_text)) { 273 return; 274 } 275 272 273 $key = hash('md5', $text); 274 275 // Check if the text has already been translated 276 if (array_key_exists($key, $this->translated_text)) { 277 $node->setText($this->translated_text[$key]); 278 $entry_skip_map[] = $node; 279 return; 280 } 281 276 282 $cache_key = $this->site_language . $this->language_code . $key; 277 283 $cached_translation = $this->fluentc_cache->get($cache_key); 284 278 285 if ($cached_translation) { 279 286 $json_cache = json_decode($cached_translation); 280 if (isset($json_cache->data->translateSite->body)) { 281 $node->setText($json_cache->data->translateSite->body->translatedText); 282 $translated_key = hash('md5', $json_cache->data->translateSite->body->translatedText); 283 $this->translated_text[$translated_key] = $json_cache->data->translateSite->body->translatedText; 287 if (isset($json_cache->data->translateSite->body->translatedText)) { 288 $translated_text = $json_cache->data->translateSite->body->translatedText; 289 $node->setText($translated_text); 290 $translated_key = hash('md5', $translated_text); 291 $this->translated_text[$key] = $translated_text; 292 $this->translated_text[$translated_key] = $translated_text; 284 293 $entry_skip_map[] = $node; 285 294 return; 286 295 } 287 } 288 289 $texts_to_translate[] = $node->text(); 290 $entry_map[] = $node; 296 } 297 298 // If we reach here, the text needs translation 299 if (!in_array($text, $texts_to_translate)) { 300 $texts_to_translate[] = $text; 301 } 302 303 if (!isset($entry_map[$text])) { 304 $entry_map[$text] = []; 305 } 306 $entry_map[$text][] = $node; 291 307 } 292 308 … … 324 340 $entry_skip_map = []; 325 341 326 $elements = $dom->find('*:not(script):not(style):not(code):not( pre):not(noscript):not(iframe):not(object):not(embed):not(svg):not(math):not(canvas)');342 $elements = $dom->find('*:not(script):not(style):not(code):not(figure):not(pre):not(noscript):not(iframe):not(object):not(embed):not(svg):not(math):not(canvas)'); 327 343 foreach ($elements as $element) { 328 344 $nodes = ($element instanceof \PHPHtmlParser\Dom\Node\HtmlNode) ? $element->getChildren() : [$element]; … … 390 406 $language_code = $this->fluentc_language->get_fluentc_language(); 391 407 $widgetapikey = get_option('fluentc_api_key'); 392 $site_language = get_bloginfo('language');408 393 409 394 410 if (!$language_code) { … … 408 424 $translated_data = $this->fluentc_connenct->get_translation_text( 409 425 $widgetapikey, 410 substr($site_language, 0, 2),426 $this->site_language, 411 427 $language_code, 412 428 $title, … … 439 455 $language_code = $this->fluentc_language->get_fluentc_language(); 440 456 $widgetapikey = get_option( 'fluentc_api_key' ); 441 $site_language = get_bloginfo( 'language' );457 442 458 if ( function_exists( 'wc_get_page_id' ) ) { 443 459 if ( is_page( wc_get_page_id( 'checkout' ) ) || is_page( wc_get_page_id( 'cart' ) ) ) { … … 447 463 if ( $language_code ) { 448 464 // If language code is set, modify the output accordingly. 449 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $content );465 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $content ); 450 466 return $this->fluentc_html->find_and_replace( html_entity_decode( $content ), $text, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 451 467 } else { … … 465 481 $language_code = $this->fluentc_language->get_fluentc_language(); 466 482 $widgetapikey = get_option( 'fluentc_api_key' ); 467 $site_language = get_bloginfo( 'language' );483 468 484 if ( $language_code ) { 469 485 // If language code is set, modify the output accordingly. 470 $html = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $text );486 $html = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $text ); 471 487 return $this->fluentc_html->find_and_replace( $text, $html, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 472 488 } else { … … 485 501 $language_code = $this->fluentc_language->get_fluentc_language(); 486 502 $widgetapikey = get_option( 'fluentc_api_key' ); 487 $site_language = get_bloginfo( 'language' );503 488 504 if ( $language_code ) { 489 505 // If language code is set, modify the output accordingly. 490 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $content );506 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $content ); 491 507 return $this->fluentc_html->find_and_replace( $content, $text, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 492 508 } else { … … 507 523 $language_code = $this->fluentc_language->get_fluentc_language(); 508 524 $widgetapikey = get_option( 'fluentc_api_key' ); 509 $site_language = get_bloginfo( 'language' );525 510 526 if ( $language_code ) { 511 527 // If language code is set, modify the output accordingly. 512 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $output );528 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $output ); 513 529 return $this->fluentc_html->find_and_replace( $output, $text, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 514 530 } else { … … 527 543 $language_code = $this->fluentc_language->get_fluentc_language(); 528 544 $widgetapikey = get_option( 'fluentc_api_key' ); 529 $site_language = get_bloginfo( 'language' );545 530 546 if ( $language_code ) { 531 547 // If language code is set, modify the output accordingly. 532 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $content );548 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $content ); 533 549 return $this->fluentc_html->find_and_replace( $content, $text, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 534 550 } else { … … 547 563 $language_code = $this->fluentc_language->get_fluentc_language(); 548 564 $widgetapikey = get_option( 'fluentc_api_key' ); 549 $site_language = get_bloginfo( 'language' );565 550 566 if ( $language_code ) { 551 567 // If language code is set, modify the output accordingly. 552 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, substr( $site_language, 0, 2 ), $language_code, $content );568 $text = $this->fluentc_connenct->get_translation_content( $widgetapikey, $this->site_language, $language_code, $content ); 553 569 return $this->fluentc_html->find_and_replace( $content, $text, $language_code, $this->fluentc_connenct->get_language_list_string( $widgetapikey ) ); 554 570 } else { -
fluentc-translation/trunk/src/actions/class-yoast.php
r3080561 r3147335 66 66 $language_code = $this->fluentc_language->get_fluentc_language(); 67 67 $widgetapikey = get_option( 'fluentc_api_key' ); 68 $site_language = get_bloginfo( 'language');68 $site_language = $this->fluentc_language->fluentc_site_language(); 69 69 if ( $language_code ) { 70 70 // If language code is set, modify the output accordingly. -
fluentc-translation/trunk/src/services/class-html.php
r3140944 r3147335 244 244 */ 245 245 public function find_and_replace($html, $json, $language_code, $regex_lang) { 246 // Create Options object and set the necessary options 246 // Create Options object and set the necessary options. 247 247 $options = new Options(); 248 248 $options->setCleanupInput(false); … … 262 262 $is_relative_path = empty($parsed_url['host']); 263 263 $root_url = home_url(); 264 264 265 265 // Conditions to skip modification. 266 266 if (!empty($current_language_code) || 267 267 $is_relative_path || 268 268 (isset($parsed_url['host']) && wp_parse_url($root_url, PHP_URL_HOST) !== $parsed_url['host']) || 269 substr($url, -3, 1) === '/' && in_array(substr($url, -2), array($regex_lang, strtoupper($regex_lang)))) { 269 substr($url, -3, 1) === '/' && in_array(substr($url, -2), array($regex_lang, strtoupper($regex_lang))) || 270 strpos($url, '/wp-admin/') !== false) { // New condition to skip wp-admin links 270 271 // Do nothing 271 272 continue; -
fluentc-translation/trunk/src/utils/class-language.php
r3135855 r3147335 32 32 protected $fluentc_connenct; 33 33 /** 34 * FluentC connectionclass34 * FluentC lang list class 35 35 * 36 36 * @var object 37 37 */ 38 38 protected $regex_lang; 39 /** 40 * FluentC lang list class 41 * 42 * @var object 43 */ 44 protected $fetch_widget_options; 39 45 /** 40 46 * Constructor. … … 48 54 if ( $widget_id ) { 49 55 $this->regex_lang = $this->fluentc_connenct->get_language_list_string( $widget_id ); 56 $this->fetch_widget_options = $this->fluentc_connenct->fetch_widget_options( $widget_id ); 50 57 } else { 51 58 $this->regex_lang = ''; 52 59 } 60 53 61 } 54 62 … … 60 68 */ 61 69 public function fluentc_site_language() { 62 $site_language = get_bloginfo( 'language' );63 $site_language = substr( $site_language, 0, 2 );70 $site_language = $this->fetch_widget_options->data->fetchSiteOptions->sourceLanguage; 71 $site_language = substr($site_language , 0, 2 ); 64 72 return $site_language; 65 73 }
Note: See TracChangeset
for help on using the changeset viewer.