تخطي إلى المحتوى تخطي إلى الشريط الجانبي

تم حل هذا الموضوع. هنا وصف للمشكلة والحل.

Problem:
إذا كنت تواجه مشكلة في ظهور تكرار في اسم اللغة وبعض الرموز الغريبة في محول اللغات المضاف إلى القائمة، فقد يكون ذلك بسبب تعارض مع إضافة Unlimited Addons For Elementor أو Animation Addons for Elementor.
Solution:
أولاً، جرب إضافة محول اللغة مباشرة على الرأسية بدلاً من استخدام الطريقة القديمة. إذا كنت تستخدم Animation Addons for Elementor، قد تحتاج إلى تعديل الكود في الملف

walker-nav-menu.php

على السطر 250. قم بتغيير الكود من:

// Before (problematic):<br />$item_output .= $args->link_before .'<span class="menu-text" data-text="'.$title.'">'. $title .'</span>'. $args->link_after;

إلى:

// After (fixed):<br />$decoded_title = html_entity_decode($title, ENT_QUOTES | ENT_HTML5, 'UTF-8');<br />$item_output .= $args->link_before .'<span class="menu-text" data-text="'.$decoded_title.'">'. $title .'</span>'. $args->link_after;

إذا لم تحل هذه الخطوات المشكلة، فنحن نوصي بالتواصل مع فريق دعم Animation Addons for Elementor لمعالجة التعارض. كما نوصي بزيارة صفحة المشاكل المعروفة للتحقق من وجود مشاكل معروفة والتأكد من أنك تستخدم أحدث إصدارات الإضافات والقوالب. إذا استمرت المشكلة، يرجى فتح تذكرة دعم جديدة.

هنا منتدى الدعم الفني لـ WPML - ملحق WordPress متعدد اللغات.

يمكن للجميع قراءة المواضيع، ولكن عملاء WPML فقط هم من يمكنهم النشر هنا. يقوم فريق WPML بالرد على موضوعات المنتدى على مدار 6 أيام في الأسبوع، 22 ساعة في اليوم.

الوسوم: ,

يحتوي هذا الموضوع 0 واحد ، لديه 0 voices.

آخر تحديث بواسطة Ilyes قبل 1 أسبوع، 5 أيام.

يساعده: Ilyes.

الكاتب المشاركات
أغسطس 14, 2025 في 7:39 ص #17319997

mohamamdA

نبذة عن المشكلة:
اضفت محول اللغات الى القائمة ولكن يظهر بطريقة غريبة حيث يكون هنالك تكرار في اسم اللغة وبعض الرموز. انظر الى الصورة المرفقة من فضلك. Link to a page where the issue can be seen: الرابط المخفي

أعراض:
تكرار في اسم اللغة وظهور بعض الرموز في محول اللغات في القائمة.

أسئلة:
كيف يمكنني إزالة التكرار في اسم اللغة؟
كيف يمكنني التخلص من الرموز الغريبة في محول اللغات؟

أغسطس 14, 2025 في 4:24 م #17321639

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

مرحبًا،
أود أن أطلب منك الوصول المؤقت إلى wp-admin و FTP لموقعك ، مما سيسمح لي بالعثور على هذه المعلومات،

من المهم الانتباه إلى أنه يجب عليك نسخ موقعك وقاعدة بياناتك احتياطيًا قبل المتابعة، ويمكنك استخدام مكون إضافي مثل Duplicator لهذا الغرض.

لأسباب تتعلق بالخصوصية والأمان، تأكد من أن ردك خاص.

أغسطس 18, 2025 في 7:32 ص #17326362

mohamamdA

مرحبا هل من جديد من فضلك ؟

أغسطس 18, 2025 في 2:47 م #17328303

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

أنا أقوم حالياً بفحص موقعك، نحن لا نعمل خلال أيام العطلة الأسبوعية، ولهذا السبب لم نبدأ العمل على هذا الموقع لحد الآن.

أغسطس 18, 2025 في 3:26 م #17328443

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

السلام عليكم،

يبدو أن هذا يخص Unlimited Addons For Elementor (UAE) بشكل مباشر، فإذا أضفت مبدل اللغة إلى أسفل الصفحة، فإنه يعمل بشكل جيد: الرابط المخفي

لذا تحققت من كيفية إنشاء الرأسية ورأيت أنها جزء من رأسية قالب تم إنشاؤها باستخدام UAE

لذا كحل بديل، أضفت مبدل اللغة مباشرة على الرأسية كما يلي:

الرابط المخفي

أخبرني إذا كان هذا الحل بديلاً جيدًا، لأن UAE يتسبب في تعارض بسيط في كيفية تحميل أداة تبديل اللغة (يتم تحميلها مرتين)

أغسطس 25, 2025 في 7:24 ص #17343908

mohamamdA

اهلا ..

شكرا لك .. حل جيد ولكن المشكلة مستمرة على نسخة الموبايل

هل يمكنك التحقق

أغسطس 25, 2025 في 10:24 م #17346445

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

مرحبًا،

الحل البديل الذي قمت به لإصدار الموقع العادي لا ينطبق على إصدار الموقع للجوال، حيث لا يزال هذا الإصدار يستخدم الطريقة القديمة لاستدعاء المحوّل (وهي الطريقة الوحيدة الممكنة أيضًا).

ما اكتشفته: السبب الأساسي: كان أداة التنقل في قائمة التنقل الخاصة بمكوّن Animation Addons for Elementor الإضافي تأخذ العناوين التي تمت معالجتها بواسطة WPML (والتي تحتوي على كيانات HTML مثل >) وتضعها مباشرة في سمات نص البيانات دون فك تشفيرها أولاً.

المكوّن الإضافي: Animation Addons for Elementor
الملف: wp-content/plugins/-animation-addons-for-elementor/widgets/nav-menu/walker-nav-menu.php
السطر: 250

حل ممكن هو تغيير الكود
من

// Before (problematic):
$item_output .= $args->link_before .'<span class="menu-text" data-text="'.$title.'">'. $title .'</span>'. $args->link_after;

إلى

// After (fixed):
$decoded_title = html_entity_decode($title, ENT_QUOTES | ENT_HTML5, 'UTF-8');
$item_output .= $args->link_before .'<span class="menu-text" data-text="'.$decoded_title.'">'. $title .'</span>'. $args->link_after;

هذه مشكلة تتعلق بوجود تعارض، وأعتقد أنه من الأفضل أن يتولى فريق هذا المكون الإضافي Animation Addons for Elementor معالجتها، فهل يمكنك مشاركتهم النتائج التي توصلت إليها ؟

فهم يعرفون كودهم أفضل منا، ولديهم معرفة أكبر بكيفية إصلاح هذه المشكلة من جهتهم.

أغسطس 27, 2025 في 7:01 ص #17350169

mohamamdA

مرحبا,

قمت بالغاء تفعيل البلجن Animation Addons for Elementor

ولكن لم يتم حل المشكلة .واستمرت ..

هل يمكنك حلها من جهتك على الموبايل ..باي طريقة لان الدعم Animation Addons for Elementor تابع للثيم وانتهى السبورت الخاص بهم .

في انتظار السماع منك

أغسطس 27, 2025 في 2:32 م #17352318

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

في هذه الحالة، لتغيير الكود الخاص بك بأمان، أحتاج إلى وصول FTP وتأكيد منك بأن النسخة الاحتياطية قد تمت قبل إجراء أي تغييرات.

سبتمبر 1, 2025 في 8:04 م #17364021

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

مرحبًا،

وصول FTP يعمل بشكل جيد، سأعاود الاتصال بك بمجرد حل المشكلة.

سبتمبر 2, 2025 في 10:37 م #17367830

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

مرحبًا،

بعد عملية تصحيح أخطاء طويلة، تمكنت من حل هذه المشكلة فقط باستخدام كود مخصص في PHP،

أضفت هذا الكود إلى ملف functions.php الخاص بقالبك:

/**
 * Add WPML Language Switcher to WCF Mobile Menu (English & Arabic)
 */
function add_wpml_to_wcf_mobile_menu() {
	?>
	<script type="text/javascript">
	document.addEventListener('DOMContentLoaded', function() {
		// Find both English and Arabic mobile menus
		const wcfMenu = document.querySelector('ul#menu-main-menu-mob') ||                    // English menu
		               document.querySelector('ul#menu-primary-menu-mobile-arabic') ||        // Arabic menu
		               document.querySelector('ul.wcf-nav-menu-nav') ||                       // Generic fallback
		               document.querySelector('.wcf-nav-menu-container ul');                  // Container fallback
		
		if (wcfMenu) {
			console.log('WPML Debug: Menu found:', wcfMenu.id || wcfMenu.className);
			
			// Create language switcher element
			const languageSwitcher = document.createElement('li');
			languageSwitcher.className = 'menu-item wcf-mobile-language-switcher';
			languageSwitcher.style.cssText = 'border-top: 1px solid #eee; padding: 10px 0; margin-top: 10px;';
			
			// Generate language switcher content
			<?php 
			$language_switcher_html = '';
			
			// Try WPML action first
			if ( has_action( 'wpml_add_language_selector' ) ) {
				ob_start();
				do_action( 'wpml_add_language_selector' );
				$wpml_output = ob_get_clean();
				if ( ! empty( trim( $wpml_output ) ) ) {
					// Properly escape for JavaScript
					$language_switcher_html = str_replace( array( "\r", "\n", "\t" ), ' ', $wpml_output );
					$language_switcher_html = str_replace( "'", "\\'", $language_switcher_html );
					$language_switcher_html = str_replace( '"', '\\"', $language_switcher_html );
				}
			}
			
			// Fallback to direct WPML function
			if ( empty( $language_switcher_html ) && function_exists( 'icl_get_languages' ) ) {
				$languages = icl_get_languages( 'skip_missing=0&orderby=code' );
				if ( ! empty( $languages ) && count( $languages ) > 1 ) {
					$html = '<div class="wpml-mobile-language-switcher" style="text-align: center; padding: 5px;">';
					foreach( $languages as $l ) {
						$flag = $l['country_flag_url'] ? '<img src="' . esc_url( $l['country_flag_url'] ) . '" alt="' . esc_attr( $l['native_name'] ) . '" style="width: 16px; height: 12px; margin-right: 5px; vertical-align: middle;" />' : '';
						$active_class = $l['active'] ? 'font-weight: bold; color: #007cba;' : 'color: #666;';
						$html .= '<a href="' . esc_url( $l['url'] ) . '" style="text-decoration: none; margin: 0 8px; display: inline-block; ' . $active_class . '">';
						$html .= $flag . esc_html( $l['native_name'] );
						$html .= '</a>';
					}
					$html .= '</div>';
					// Properly escape for JavaScript
					$language_switcher_html = str_replace( array( "\r", "\n", "\t" ), ' ', $html );
					$language_switcher_html = str_replace( "'", "\\'", $language_switcher_html );
					$language_switcher_html = str_replace( '"', '\\"', $language_switcher_html );
				}
			}
			
			if ( ! empty( $language_switcher_html ) ) {
				echo "languageSwitcher.innerHTML = '" . $language_switcher_html . "';";
			} else {
				echo "languageSwitcher.innerHTML = '<div style=\"text-align: center; padding: 5px;\"><a href=\"#\" style=\"color: #007cba; text-decoration: none;\">🌐 Language Switcher</a><br><small style=\"color: #666;\">WPML needs configuration</small></div>';";
			}
			?>
			
			wcfMenu.appendChild(languageSwitcher);
			console.log('WPML Debug: Language switcher added successfully!');
		} else {
			console.log('WPML Debug: No mobile menu found');
		}
	});
	</script>
	<?php
}
add_action( 'wp_footer', 'add_wpml_to_wcf_mobile_menu' );
سبتمبر 3, 2025 في 5:59 ص #17368111

mohamamdA

مرحبا,

شكرا لمساعدتك ,

هل هذا الحل يختفي مع تحديث القالب ؟

هل يجب استخدام بلجن مثل wp code لاضافته لكي لا يختفي عند التحديث

انا استخدم ثيم hello النسخة المجانية ولا اعتقد انه يوجد نسخة child منه .

وهل يمكن جعل اللغة الاصلية تظهر فقط وليس بشكل متكرر من فضلك

شكرا لردك

يييبيب.jpg
سبتمبر 5, 2025 في 2:04 م #17379779

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

لقد أزلت الترجمة المزدوجة للغة، ويظهر الآن المبدل اسم اللغة باللغة الأصلية.

وأنت على حق، بما أنك لا تستخدم سمة فرعية، يجب إضافة الكود أعلاه على مقتطف أو كمكوّن إضافي مخصص لفصله عن تحديثات السمة.

سبتمبر 7, 2025 في 6:22 ص #17381487

mohamamdA

شكرا لك ,

هل يمكنك تزويدي بالكود كاملا بعد الاصلاح الخاص بالموبايل واين يمكن اضيفها في اداة WPCode من فضلكم؟

ارفقت لك سكرين شوت للننظر في الطريقة التي استخدمتها ولكنها عملت على نسخة الديسكتوب وليس على الموبايل.

screencapture-shop-itaap-me-wp-admin-admin-php-2025-09-07-09_21_32.png
سبتمبر 10, 2025 في 6:55 م #17392078

Ilyes
مؤيد، مشجع، داعم

اللغات: الإنجليزية (English ) الفرنسية (Français ) العربية (العربية )

وحدة زمنية: Pacific/Easter (GMT-05:00)

مرحبًا،

الطريقة التي أضفتها صحيحة على WPcode، أما بالنسبة للجوال فهناك شيء آخر يجب تغييره في أداة التبديل.

من WPML > اللغات، قمت بحذف جميع أدوات تبديل لغة القائمة واستخدمت أداة التبديل المخصصة بدلاً من ذلك للجوال: الرابط المخفي

ولكن بخلاف ذلك، يبدو أن الكود صحيح، وإليك نسخة أخرى احتياطياً:

/**
 * Add WPML Language Switcher to WCF Mobile Menu (English & Arabic)
 */
function add_wpml_to_wcf_mobile_menu() {
	?>
	<script type="text/javascript">
	document.addEventListener('DOMContentLoaded', function() {
		// Find both English and Arabic mobile menus
		const wcfMenu = document.querySelector('ul#menu-main-menu-mob') ||                    // English menu
		               document.querySelector('ul#menu-primary-menu-mobile-arabic') ||        // Arabic menu
		               document.querySelector('ul.wcf-nav-menu-nav') ||                       // Generic fallback
		               document.querySelector('.wcf-nav-menu-container ul');                  // Container fallback
		
		if (wcfMenu) {
			console.log('WPML Debug: Menu found:', wcfMenu.id || wcfMenu.className);
			
			// Create language switcher element
			const languageSwitcher = document.createElement('li');
			languageSwitcher.className = 'menu-item wcf-mobile-language-switcher';
			languageSwitcher.style.cssText = 'border-top: 1px solid #eee; padding: 10px 0; margin-top: 10px;';
			
			// Generate language switcher content
			<?php 
			$language_switcher_html = '';
			
			// Try WPML action first
			if ( has_action( 'wpml_add_language_selector' ) ) {
				ob_start();
				do_action( 'wpml_add_language_selector' );
				$wpml_output = ob_get_clean();
				if ( ! empty( trim( $wpml_output ) ) ) {
					// Properly escape for JavaScript
					$language_switcher_html = str_replace( array( "\r", "\n", "\t" ), ' ', $wpml_output );
					$language_switcher_html = str_replace( "'", "\\'", $language_switcher_html );
					$language_switcher_html = str_replace( '"', '\\"', $language_switcher_html );
				}
			}
			
			// Fallback to direct WPML function
			if ( empty( $language_switcher_html ) && function_exists( 'icl_get_languages' ) ) {
				$languages = icl_get_languages( 'skip_missing=0&orderby=code' );
				if ( ! empty( $languages ) && count( $languages ) > 1 ) {
					$html = '<div class="wpml-mobile-language-switcher" style="text-align: center; padding: 5px;">';
					foreach( $languages as $l ) {
						$flag = $l['country_flag_url'] ? '<img src="' . esc_url( $l['country_flag_url'] ) . '" alt="' . esc_attr( $l['native_name'] ) . '" style="width: 16px; height: 12px; margin-right: 5px; vertical-align: middle;" />' : '';
						$active_class = $l['active'] ? 'font-weight: bold; color: #007cba;' : 'color: #666;';
						$html .= '<a href="' . esc_url( $l['url'] ) . '" style="text-decoration: none; margin: 0 8px; display: inline-block; ' . $active_class . '">';
						$html .= $flag . esc_html( $l['native_name'] );
						$html .= '</a>';
					}
					$html .= '</div>';
					// Properly escape for JavaScript
					$language_switcher_html = str_replace( array( "\r", "\n", "\t" ), ' ', $html );
					$language_switcher_html = str_replace( "'", "\\'", $language_switcher_html );
					$language_switcher_html = str_replace( '"', '\\"', $language_switcher_html );
				}
			}
			
			if ( ! empty( $language_switcher_html ) ) {
				echo "languageSwitcher.innerHTML = '" . $language_switcher_html . "';";
			} else {
				echo "languageSwitcher.innerHTML = '<div style=\"text-align: center; padding: 5px;\"><a href=\"#\" style=\"color: #007cba; text-decoration: none;\">🌐 Language Switcher</a><br><small style=\"color: #666;\">WPML needs configuration</small></div>';";
			}
			?>
			
			wcfMenu.appendChild(languageSwitcher);
			console.log('WPML Debug: Language switcher added successfully!');
		} else {
			console.log('WPML Debug: No mobile menu found');
		}
	});
	</script>
	<?php
}
add_action( 'wp_footer', 'add_wpml_to_wcf_mobile_menu' );