/** * TW-Translate SEO Manager * Handles SEO keys application and meta tag management */ class TW_SEO_Manager { // SEO Keys functionality removed - not needed for core translation functionality /** * Store translation via REST API */ public static function store_translation(WP_REST_Request $request) { if (!get_option('tw_translate_seo_enabled', false)) { return rest_ensure_response(['success' => false, 'message' => 'SEO caching is disabled']); } $domain = $request->get_param('domain'); $url_path = $request->get_param('url_path'); $content = $request->get_param('content'); $lang = $request->get_param('lang'); if (empty($domain) || empty($url_path) || empty($content) || empty($lang)) { return new WP_Error('invalid_params', 'Missing required parameters', ['status' => 400]); } if ($url_path === '' || $url_path[0] !== '/') { $url_path = '/' . ltrim($url_path, '/'); } tw_log("Storing translation cache for {$domain}{$url_path} (lang: {$lang})", 'info'); // Process content to ensure all domains are correctly set $content = TW_Text_Cleaner::process_domains_in_content($content, $domain); // Extract meta data for SEO analysis $meta_data = TW_Meta_Extractor::extract_meta_data($content); // SEO Keys functionality removed // Ensure content is UTF-8 encoded if (!mb_check_encoding($content, 'UTF-8')) { $content = mb_convert_encoding($content, 'UTF-8', mb_detect_encoding($content)); } // Store in database $cache_duration_hours = absint(get_option('tw_translate_cache_duration', 24)); if ($cache_duration_hours <= 0) { $cache_duration_hours = 24; } $result = tw_save_page_cache($domain, $url_path, $lang, $content, $meta_data, $cache_duration_hours); if ($result) { tw_log("Translation cache stored successfully", 'info'); return rest_ensure_response(['success' => true]); } else { tw_log("Failed to store translation cache", 'error'); return new WP_Error('storage_failed', 'Failed to store cache', ['status' => 500]); } } /** * Check if request is from search engine */ public static function is_search_engine() { if (!isset($_SERVER['HTTP_USER_AGENT'])) { return false; } $user_agent = strtolower($_SERVER['HTTP_USER_AGENT']); $search_engines = [ 'googlebot', 'bingbot', 'slurp', 'duckduckbot', 'baiduspider', 'yandexbot', 'facebookexternalhit', 'twitterbot', 'rogerbot', 'linkedinbot', 'embedly', 'quora link preview', 'showyoubot', 'outbrain', 'pinterest', 'developers.google.com/+/web/snippet' ]; foreach ($search_engines as $bot) { if (strpos($user_agent, $bot) !== false) { return true; } } return false; } } /** * Legacy function wrappers for backward compatibility */ // SEO Keys function removed - functionality deprecated function tw_translate_store_translation(WP_REST_Request $request) { return TW_SEO_Manager::store_translation($request); } function tw_is_search_engine() { return TW_SEO_Manager::is_search_engine(); } <span data-translation-key="text_0_57584b12">الشعاب المرجانية التي قامت بها الجهات المعنية على سبيل المثال لاستعمال الشعاب الشعاب المرجانية التي قامت بحملها على سبيل المثال لا الحصر - على سبيل المثال لاستقبال الشعاب المرجانية من خلال إزالة الشعاب المرجانية من الحدود الإقليمية لشمال شرق المحيط الأطلسي وشمال شرق المحيط الأطلسي.</span>
? والموقع إعلامي في طبيعته، ولا يحتوي على صلة بالكازينو على شبكة الإنترنت ولا يمارس ألعاباً مقابل المال.
  • Rebuses
  • التحديات
  • الألعاب
  • أسرار
  • أفكر
  • quiz
  • الكلمات المتقاطعة
  • Blog
  • مرحباً بكم في بوابة الترفيه

    لقد عثرنا بالفعل على شيء تحبه وجاهز لإعادة رسم أفكارك! إختار القسم أعلاه وابدأ بالمتعة

    هنا ستجدين شيئاً لحبك سواء كان اختباراً لصحبة مزعجة أو إعادة تشكيل للأطفال وأكثر من ذلك بكثير!

    فريقنا يعمل بشكل مستمر لتوليد الأفكار ويزودك بأحدث المواد وأكثرها إثارة

    إستمتع، إستكشف، إكتشف أشياء جديدة معنا مرحبا بكم على متن!

    Arabic