Plugin Directory

Changeset 3245291


Ignore:
Timestamp:
02/23/2025 07:39:22 PM (5 weeks ago)
Author:
mvpis
Message:

Updates with improvements

Location:
fluentc-translation
Files:
372 added
3 edited

Legend:

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

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

    r3215464 r3245291  
    55Requires at least: 4.6
    66Tested up to: 6.6.2
    7 Stable tag: 2.1.1
     7Stable tag: 2.2
    88Requires PHP: 7.3
    99License: GPLv2 or later
  • fluentc-translation/trunk/src/actions/class-links.php

    r3210041 r3245291  
    6565        add_filter('query_vars', array( $this, 'language_var' ), 10, 3);
    6666        add_action('init', array( $this, 'flush_rewrite' ), 1000);
    67         add_filter('rewrite_rules_array', array( $this, 'fluentc_rewrite_rules' ), 100);
     67        add_filter('rewrite_rules_array', array( $this, 'fluentc_rewrite_rules_new' ), 100);
    6868    }
    6969
     
    276276    public function fluentc_rewrite_rules_new($rules) {
    277277        $new_rules = [];
    278         $widget_id = get_option('fluentc_api_key');
    279        
     278       
     279        // Ensure correct API key retrieval in multisite
     280        $widget_id = is_multisite() ? get_blog_option(get_current_blog_id(), 'fluentc_api_key') : get_option('fluentc_api_key');
    280281        if (!$widget_id) {
    281282            return $rules;
    282283        }
    283 
     284   
    284285        $regex_lang = $this->fluentc_connect->get_language_list_string($widget_id);
    285286        if (!$regex_lang) {
    286287            return $rules;
    287288        }
    288 
     289   
    289290        $languages = $this->fluentc_connect->get_language_list($widget_id);
    290291        $source_language = $this->fluentc_language->fluentc_site_language();
    291 
    292         // Load all language translations upfront - one transient get per language
     292       
     293        // Retrieve all registered post types
     294        $post_types = get_post_types(['public' => true], 'names');
     295       
     296        // Load all language translations upfront
    293297        foreach ($languages as $language) {
    294298            if ($language === $source_language) {
     
    305309            ];
    306310        }
    307 
     311       
    308312        // Add base language rule
    309313        $new_rules['(?:' . $regex_lang . ')/?$'] = 'index.php';
    310 
     314       
    311315        $translations_updated = false;
    312 
     316       
    313317        foreach ($rules as $key => $val) {
    314             if ($languages) {
    315                 foreach ($languages as $language) {
    316                     if ($language === $source_language) {
    317                         continue;
    318                     }
    319 
    320                     // Look up translation from memory
    321                     if (isset($this->translations_by_language[$language]['translations'][$key])) {
    322                         $translated_pattern = $this->translations_by_language[$language]['translations'][$key];
    323                     } else {
    324                         // Translate and store in memory
    325                         $translated_pattern = $this->translate_url_pattern($key, $source_language, $language);
    326                         $this->translations_by_language[$language]['translations'][$key] = $translated_pattern;
    327                         $this->translations_by_language[$language]['metadata']['total_translations']++;
    328                         $translations_updated = true;
    329                     }
    330 
    331                     // Create the new rule with language prefix
    332                     $language_rule = '(?:' . $language . ')/?' . ltrim($translated_pattern, '^');
    333                     $new_rules[$language_rule] = $val;
     318            foreach ($languages as $language) {
     319                if ($language === $source_language) {
     320                    continue;
    334321                }
     322               
     323                // Look up translation from memory
     324                if (isset($this->translations_by_language[$language]['translations'][$key])) {
     325                    $translated_pattern = $this->translations_by_language[$language]['translations'][$key];
     326                } else {
     327                    // Translate and store in memory
     328                    $translated_pattern = $this->translate_url_pattern($key, $source_language, $language);
     329                    $this->translations_by_language[$language]['translations'][$key] = $translated_pattern;
     330                    $this->translations_by_language[$language]['metadata']['total_translations']++;
     331                    $translations_updated = true;
     332                }
     333               
     334                // Create rule for each post type
     335                foreach ($post_types as $post_type) {
     336                    $post_type_rule = "(?:{$language})/{$post_type}/?" . ltrim($translated_pattern, '^');
     337                    $new_rules[$post_type_rule] = $val;
     338                }
     339               
     340                // Create the new rule with language prefix
     341                $language_rule = "(?:{$language})/?" . ltrim($translated_pattern, '^');
     342                $new_rules[$language_rule] = $val;
    335343            }
     344           
    336345            // Keep original rule
    337346            $new_rules[$key] = $val;
    338347        }
    339 
     348       
    340349        // Only update transients if we added new translations
    341350        if ($translations_updated) {
    342351            $this->save_translations();
    343352        }
    344 
     353       
    345354        return $new_rules;
    346355    }
Note: See TracChangeset for help on using the changeset viewer.