Plugin Directory

Changeset 3153653


Ignore:
Timestamp:
09/18/2024 04:32:09 AM (19 months ago)
Author:
mvpis
Message:

updates and improvements

Location:
fluentc-translation
Files:
365 added
9 edited

Legend:

Unmodified
Added
Removed
  • fluentc-translation/trunk/fluentc_wordpress_plugin.php

    r3153412 r3153653  
    77 * Plugin URI: https://github.com/fluentc/wordpress-plugin
    88 * Description: A plugin that enables website owners to easily install the FluentC Translation on their WordPress site.
    9  * Version: 1.8.5
     9 * Version: 1.8.6
    1010 * Author: FluentC
    1111 * Author URI: https://www.fluentc.ai
     
    1717define( 'FLUENTC_DIR', __DIR__ );
    1818define( 'FLUENTC_SLUG', 'fluentc_translation' );
    19 define( 'FLUENTC_TRANSLATION_VERSION', "1.8.5" );
     19define( 'FLUENTC_TRANSLATION_VERSION', "1.8.6" );
    2020define( 'FLUENTC_TRANSLATION_PLUGIN_DIR', plugin_dir_path(__FILE__) );
    2121define( 'FLUENTC_TRANSLATION_PLUGIN_URL', plugin_dir_url(__FILE__) );
  • fluentc-translation/trunk/readme.txt

    r3153412 r3153653  
    55Requires at least: 4.6
    66Tested up to: 6.6.2
    7 Stable tag: 1.8.5
     7Stable tag: 1.8.6
    88Requires PHP: 7.3
    99License: GPLv2 or later
  • fluentc-translation/trunk/src/actions/class-aioseo.php

    r3147335 r3153653  
    1717use FluentC\Services\Connect;
    1818use FluentC\Utils\Language;
     19use FluentC\Services\Cache;
    1920
    2021/**
     
    3839
    3940    /**
     41     * FluentC cache class
     42     *
     43     * @var object
     44     */
     45    protected $fluentc_cache;
     46
     47    /**
    4048     * Constructor.
    4149     *
     
    4553        $this->fluentc_connenct = new Connect();
    4654        $this->fluentc_language = new Language();
     55        $this->fluentc_cache = new Cache();
    4756    }
    4857    /**
     
    7584        $widgetapikey  = get_option( 'fluentc_api_key' );
    7685        $site_language = $this->fluentc_language->fluentc_site_language();
    77         if ( $language_code ) {
    78             // If language code is set, modify the output accordingly.
    79             $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, substr( $site_language, 0, 2 ), $language_code,  $description );
    80             if(isset($text->data->translateSite->body[0]) && isset($text->data->translateSite->body[0]->translatedText)) {
    81                 return $text->data->translateSite->body[0]->translatedText;
    82             }
    83             else {
    84             // If no translation , return the default output.
    85             return $description;   
    86             }
    87         } else {
     86        if (!$language_code) {
    8887            // If no language code, return the default output.
     88            return $description;
     89        }
     90
     91        $key = hash('md5', $description);
     92        $cache_key = $site_language . $language_code . $key;
     93        $cached_translation = $this->fluentc_cache->get($cache_key);
     94
     95        if ($cached_translation) {
     96            $json_cache = json_decode($cached_translation);
     97                if (isset($json_cache->data->translateSite->body)) {
     98                   
     99                    return $json_cache->data->translateSite->body->translatedText;
     100                }
     101            }
     102
     103        $translated_data = $this->fluentc_connenct->get_translation_text(
     104            $widgetapikey,
     105            $site_language,
     106            $language_code,
     107            $description
     108        );
     109       
     110        if (isset($translated_data->data->translateSite->body)) {
     111           
     112            $translated_text = $translated_data->data->translateSite->body[0]->translatedText;
     113           
     114            $cache_key = $site_language . $language_code . $key;
     115            $this->fluentc_cache->set($cache_key, json_encode([
     116                'data' => ['translateSite' => ['body' => ['sourceLanguage' => $site_language, 'targetLanguage' => $language_code, 'translatedText' => $translated_text, 'originalText' => $description ]]]
     117            ]));
     118            return $translated_text;
     119
     120        } else {   
     121            do_action('qm/error', 'Translation failed for title: ' . $description);
    89122            return $description;
    90123        }
  • fluentc-translation/trunk/src/actions/class-rankmath.php

    r3147335 r3153653  
    1717use FluentC\Services\Connect;
    1818use FluentC\Utils\Language;
     19use FluentC\Services\Cache;
    1920
    2021/**
     
    3839
    3940    /**
     41     * FluentC cache class
     42     *
     43     * @var object
     44     */
     45    protected $fluentc_cache;
     46
     47    /**
    4048     * Constructor.
    4149     *
     
    4553        $this->fluentc_connenct = new Connect();
    4654        $this->fluentc_language = new Language();
     55        $this->fluentc_cache = new Cache();
     56       
    4757    }
    4858    /**
     
    7686        $widgetapikey  = get_option( 'fluentc_api_key' );
    7787        $site_language = $this->fluentc_language->fluentc_site_language();
    78         if ( $language_code ) {
    79             // If language code is set, modify the output accordingly.
    80             $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, substr( $site_language, 0, 2 ), $language_code,  $description );
    81             return $text->data->translateSite->body[0]->translatedText;
    82         } else {
     88        if (!$language_code) {
    8389            // If no language code, return the default output.
     90            return $description;
     91        }
     92
     93        $key = hash('md5', $description);
     94        $cache_key = $site_language . $language_code . $key;
     95        $cached_translation = $this->fluentc_cache->get($cache_key);
     96
     97        if ($cached_translation) {
     98            $json_cache = json_decode($cached_translation);
     99                if (isset($json_cache->data->translateSite->body)) {
     100                   
     101                    return $json_cache->data->translateSite->body->translatedText;
     102                }
     103            }
     104
     105        $translated_data = $this->fluentc_connenct->get_translation_text(
     106            $widgetapikey,
     107            $site_language,
     108            $language_code,
     109            $description
     110        );
     111       
     112        if (isset($translated_data->data->translateSite->body)) {
     113           
     114            $translated_text = $translated_data->data->translateSite->body[0]->translatedText;
     115           
     116            $cache_key = $site_language . $language_code . $key;
     117            $this->fluentc_cache->set($cache_key, json_encode([
     118                'data' => ['translateSite' => ['body' => ['sourceLanguage' => $site_language, 'targetLanguage' => $language_code, 'translatedText' => $translated_text, 'originalText' => $description ]]]
     119            ]));
     120            return $translated_text;
     121
     122        } else {   
     123            do_action('qm/error', 'Translation failed for title: ' . $description);
    84124            return $description;
    85125        }
     
    96136        $widgetapikey  = get_option( 'fluentc_api_key' );
    97137        $site_language = $this->fluentc_language->fluentc_site_language();
    98         if ( $language_code ) {
    99             // If language code is set, modify the output accordingly.
    100             $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, substr( $site_language, 0, 2 ), $language_code,  $title );
    101             return $text->data->translateSite->body[0]->translatedText;
    102         } else {
     138        if (!$language_code) {
    103139            // If no language code, return the default output.
     140            return $title;
     141        }
     142
     143        $key = hash('md5', $title);
     144        $cache_key = $site_language . $language_code . $key;
     145        $cached_translation = $this->fluentc_cache->get($cache_key);
     146
     147        if ($cached_translation) {
     148            $json_cache = json_decode($cached_translation);
     149                if (isset($json_cache->data->translateSite->body)) {
     150                   
     151                    return $json_cache->data->translateSite->body->translatedText;
     152                }
     153            }
     154
     155        $translated_data = $this->fluentc_connenct->get_translation_text(
     156            $widgetapikey,
     157            $site_language,
     158            $language_code,
     159            $title
     160        );
     161       
     162        if (isset($translated_data->data->translateSite->body)) {
     163           
     164            $translated_text = $translated_data->data->translateSite->body[0]->translatedText;
     165           
     166            $cache_key = $site_language . $language_code . $key;
     167            $this->fluentc_cache->set($cache_key, json_encode([
     168                'data' => ['translateSite' => ['body' => ['sourceLanguage' => $site_language, 'targetLanguage' => $language_code, 'translatedText' => $translated_text, 'originalText' => $title ]]]
     169            ]));
     170            return $translated_text;
     171
     172        } else {   
     173            do_action('qm/error', 'Translation failed for title: ' . $title);
    104174            return $title;
    105175        }
     
    116186        $widgetapikey  = get_option( 'fluentc_api_key' );
    117187        $site_language = $this->fluentc_language->fluentc_site_language();
    118         if ( $language_code ) {
    119             // If language code is set, modify the output accordingly.
    120             $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, substr( $site_language, 0, 2 ), $language_code,  $keywords );
    121             return $text->data->translateSite->body[0]->translatedText;
    122         } else {
     188        if (!$language_code) {
    123189            // If no language code, return the default output.
    124190            return $keywords;
    125191        }
     192
     193        $key = hash('md5', $keywords);
     194        $cache_key = $site_language . $language_code . $key;
     195        $cached_translation = $this->fluentc_cache->get($cache_key);
     196
     197        if ($cached_translation) {
     198            $json_cache = json_decode($cached_translation);
     199                if (isset($json_cache->data->translateSite->body)) {
     200                   
     201                    return $json_cache->data->translateSite->body->translatedText;
     202                }
     203            }
     204
     205        $translated_data = $this->fluentc_connenct->get_translation_text(
     206            $widgetapikey,
     207            $site_language,
     208            $language_code,
     209            $keywords
     210        );
     211       
     212        if (isset($translated_data->data->translateSite->body)) {
     213           
     214            $translated_text = $translated_data->data->translateSite->body[0]->translatedText;
     215           
     216            $cache_key = $site_language . $language_code . $key;
     217            $this->fluentc_cache->set($cache_key, json_encode([
     218                'data' => ['translateSite' => ['body' => ['sourceLanguage' => $site_language, 'targetLanguage' => $language_code, 'translatedText' => $translated_text, 'originalText' => $keywords ]]]
     219            ]));
     220            return $translated_text;
     221
     222        } else {   
     223            do_action('qm/error', 'Translation failed for title: ' . $keywords);
     224            return $keywords;
     225        }
    126226    }
    127227}
  • fluentc-translation/trunk/src/actions/class-siteorigin.php

    r3151087 r3153653  
    1616use FluentC\Models\Hooks;
    1717use FluentC\Services\Connect;
    18 
     18use FluentC\Services\Cache;
    1919use FluentC\Utils\Language;
    2020
     
    4545    protected $fluentc_html;
    4646
     47/**
     48     * FluentC cache class
     49     *
     50     * @var object
     51     */
     52    protected $fluentc_cache;
    4753    /**
    4854     * Constructor.
     
    5359        $this->fluentc_connenct = new Connect();
    5460        $this->fluentc_language = new Language();
     61        $this->fluentc_cache = new Cache();
    5562    }
    5663    /**
     
    97104        // if Language is set, translate description if not return description.
    98105        $widgetapikey  = get_option( 'fluentc_api_key' );
    99         if ( !$widgetapikey ) {
     106        $language_code = $this->fluentc_language->get_fluentc_language();
     107        $site_language = $this->fluentc_language->fluentc_site_language();
     108
     109        if ( !$widgetapikey || !$language_code ) {
    100110            return $instance;
    101111        }
    102         $language_code = $this->fluentc_language->get_fluentc_language();
    103         $site_language = $this->fluentc_language->fluentc_site_language();
    104112       
    105         if ( $language_code ) {
    106             if (is_array($instance))  {
    107                 $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, $site_language, $language_code,  $instance['text'] );
     113       
     114       
     115        if (is_array($instance))  {
     116               
     117            $key = hash('md5', $instance['text']);
     118            $cache_key = $site_language . $language_code . $key;
     119            $cached_translation_text = $this->fluentc_cache->get($cache_key);
     120               
     121                if ($cached_translation_text) {
     122                    $json_cache = json_decode($cached_translation_text);
     123                        if (isset($json_cache->data->translateSite->body)) {
     124                           
     125                            $instance['text'] =  $json_cache->data->translateSite->body->translatedText;
     126                        }
     127                }
     128                else {
     129                    $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, $site_language, $language_code,  $instance['text'] );
    108130           
    109                 if(isset($text->data->translateSite->body[0]) && isset($text->data->translateSite->body[0]->translatedText)) {
    110                     $instance['text'] = $text->data->translateSite->body[0]->translatedText;
     131                        if(isset($text->data->translateSite->body[0]) && isset($text->data->translateSite->body[0]->translatedText)) {
     132                           
     133                            $instance['text'] = $text->data->translateSite->body[0]->translatedText;
     134       
     135                        }
    111136                }
    112                 $title = $this->fluentc_connenct->get_translation_text( $widgetapikey, $site_language, $language_code,  $instance['title'] );
    113                 if(isset($title->data->translateSite->body[0]) && isset($title->data->translateSite->body[0]->translatedText)) {
    114                     $instance['title'] = $title->data->translateSite->body[0]->translatedText;
     137
     138                $key = hash('md5', $instance['title']);
     139                $cache_key = $site_language . $language_code . $key;
     140                $cached_translation_title = $this->fluentc_cache->get($cache_key);
     141               
     142                if ($cached_translation_title) {
     143                    $json_cache = json_decode($cached_translation_title);
     144                        if (isset($json_cache->data->translateSite->body)) {
     145                           
     146                            $instance['title'] = $json_cache->data->translateSite->body->translatedText;
     147                        }
    115148                }
    116             return $instance;
     149                else { 
     150                        $title = $this->fluentc_connenct->get_translation_text( $widgetapikey, $site_language, $language_code,  $instance['title'] );
     151                       
     152                        if(isset($title->data->translateSite->body[0]) && isset($title->data->translateSite->body[0]->translatedText)) {
     153                            $instance['title'] = $title->data->translateSite->body[0]->translatedText;
     154                        }
     155                    }
     156                return $instance;
     157               
     158
     159               
     160           
    117161        } else {
    118162            // If no language code, return the default output.
     
    121165    }
    122166}
    123 
    124 }
  • fluentc-translation/trunk/src/actions/class-wordpress.php

    r3153412 r3153653  
    9999    public function __construct() {
    100100        $this->fluentc_connenct = new Connect();
    101         $this->fluentc_html     = new Html();
    102101        $this->fluentc_language = new Language();
    103102        $this->fluentc_htmltags = new Htmltags();
     
    107106        $this->widgetapikey  = get_option( 'fluentc_api_key' );
    108107        $this->site_language = $this->fluentc_language->fluentc_site_language();
     108        $this->fluentc_html     = new Html($this->site_language);
    109109
    110110    }
  • fluentc-translation/trunk/src/actions/class-yoast.php

    r3147335 r3153653  
    1717use FluentC\Services\Connect;
    1818use FluentC\Utils\Language;
     19use FluentC\Services\Cache;
    1920
    2021/**
     
    3839
    3940    /**
     41     * FluentC cache class
     42     *
     43     * @var object
     44     */
     45    protected $fluentc_cache;
     46
     47    /**
    4048     * Constructor.
    4149     *
     
    4553        $this->fluentc_connenct = new Connect();
    4654        $this->fluentc_language = new Language();
     55        $this->fluentc_cache = new Cache();
    4756    }
    4857    /**
     
    5463
    5564        add_filter( 'wpseo_metadesc', array( $this, 'yoast_filter_description' ), 10, 1 );
     65        add_filter( 'wpseo_title', array( $this, 'yoast_filter_description' ), 10, 1 );
    5666       
    5767    }
     
    6777        $widgetapikey  = get_option( 'fluentc_api_key' );
    6878        $site_language = $this->fluentc_language->fluentc_site_language();
    69         if ( $language_code ) {
    70             // If language code is set, modify the output accordingly.
    71             $text = $this->fluentc_connenct->get_translation_text( $widgetapikey, substr( $site_language, 0, 2 ), $language_code,  $description );
    72             return $text->data->translateSite->body[0]->translatedText;
    73         } else {
     79        if (!$language_code) {
    7480            // If no language code, return the default output.
     81            return $description;
     82        }
     83
     84        $key = hash('md5', $description);
     85
     86        $cache_key = $site_language . $language_code . $key;
     87        $cached_translation = $this->fluentc_cache->get($cache_key);
     88
     89        if ($cached_translation) {
     90            $json_cache = json_decode($cached_translation);
     91                if (isset($json_cache->data->translateSite->body)) {
     92                   
     93                    return $json_cache->data->translateSite->body->translatedText;
     94                }
     95            }
     96
     97        $translated_data = $this->fluentc_connenct->get_translation_text(
     98            $widgetapikey,
     99            $site_language,
     100            $language_code,
     101            $description
     102        );
     103       
     104        if (isset($translated_data->data->translateSite->body)) {
     105           
     106            $translated_text = $translated_data->data->translateSite->body[0]->translatedText;
     107           
     108            $cache_key = $site_language . $language_code . $key;
     109            $this->fluentc_cache->set($cache_key, json_encode([
     110                'data' => ['translateSite' => ['body' => ['sourceLanguage' => $site_language, 'targetLanguage' => $language_code, 'translatedText' => $translated_text, 'originalText' => $description ]]]
     111            ]));
     112            return $translated_text;
     113
     114        } else {   
     115            do_action('qm/error', 'Translation failed for title: ' . $description);
    75116            return $description;
    76117        }
  • fluentc-translation/trunk/src/services/class-connect.php

    r3148988 r3153653  
    3939     */
    4040    protected $fluentc_cache;
    41     /**
    42      * FluentC Html class
    43      *
    44      * @var object
    45      */
    46     protected $fluentc_html;
    47 
     41   
    4842    /**
    4943     * FluentC remote url
     
    6054    public function __construct() {
    6155        $this->fluentc_cache      = new Cache();
    62         $this->fluentc_html       = new Html();
    6356        $this->fluentc_remote_url = 'https://dashboard.fluentc.ai/graphql';
    6457    }
  • fluentc-translation/trunk/src/services/class-html.php

    r3152094 r3153653  
    9393     * @since 1.2
    9494     */
    95     public function __construct() {
     95    public function __construct( $site_lang) {
    9696        $this->htmltag                                  = new Htmltags();
    9797        $this->regex_only_whitespace                    = $this->htmltag->regex_only_whitespace;
     
    100100        $this->fluentc_cache = new Cache();
    101101        $this->widgetapikey  = get_option( 'fluentc_api_key' );
    102         $this->site_language = substr( get_bloginfo( 'language' ), 0, 2 );
     102        $this->site_language = $site_lang;
    103103
    104104    }
Note: See TracChangeset for help on using the changeset viewer.