Changeset 3245291
- Timestamp:
- 02/23/2025 07:39:22 PM (5 weeks ago)
- Location:
- fluentc-translation
- Files:
-
- 372 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
fluentc-translation/trunk/fluentc_wordpress_plugin.php
r3215464 r3245291 7 7 * Plugin URI: https://www.fluentc.ai 8 8 * Description: A plugin that enables website owners to easily install the FluentC Translation on their WordPress site. 9 * Version: 2. 1.19 * Version: 2.2 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', "2. 1.1" );19 define( 'FLUENTC_TRANSLATION_VERSION', "2.2" ); 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
r3215464 r3245291 5 5 Requires at least: 4.6 6 6 Tested up to: 6.6.2 7 Stable tag: 2. 1.17 Stable tag: 2.2 8 8 Requires PHP: 7.3 9 9 License: GPLv2 or later -
fluentc-translation/trunk/src/actions/class-links.php
r3210041 r3245291 65 65 add_filter('query_vars', array( $this, 'language_var' ), 10, 3); 66 66 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); 68 68 } 69 69 … … 276 276 public function fluentc_rewrite_rules_new($rules) { 277 277 $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'); 280 281 if (!$widget_id) { 281 282 return $rules; 282 283 } 283 284 284 285 $regex_lang = $this->fluentc_connect->get_language_list_string($widget_id); 285 286 if (!$regex_lang) { 286 287 return $rules; 287 288 } 288 289 289 290 $languages = $this->fluentc_connect->get_language_list($widget_id); 290 291 $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 293 297 foreach ($languages as $language) { 294 298 if ($language === $source_language) { … … 305 309 ]; 306 310 } 307 311 308 312 // Add base language rule 309 313 $new_rules['(?:' . $regex_lang . ')/?$'] = 'index.php'; 310 314 311 315 $translations_updated = false; 312 316 313 317 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; 334 321 } 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; 335 343 } 344 336 345 // Keep original rule 337 346 $new_rules[$key] = $val; 338 347 } 339 348 340 349 // Only update transients if we added new translations 341 350 if ($translations_updated) { 342 351 $this->save_translations(); 343 352 } 344 353 345 354 return $new_rules; 346 355 }
Note: See TracChangeset
for help on using the changeset viewer.