قمت بترجمة موقع للغة العربية باستخدام اطار reacti18nextوbrowser language detectorوhttp backend
عندما يتحول الموقع للغة العربية بالفعل يتغير الاتجاه من ltr إلي rtl وتكون معظم العناصر قد تحولت ولكن بطبيعة الأمر يتبقي بعض العناصر التي تحتاج إلي تعديلها بشكل فردي.
كيف أقوم بهذا الأمر؟ هل هذا الكود في الصورة صحيح؟ لقد تغير العنصر في المرة الأولي بطريقة صحيحة ولكن بعد التحويل مرة أخري لا يعطي النتيجة بشكل صحيح.
يمكنك التحكم بالعناصر التي لا تستجيب تلقائياً لتغير إتجاه الصفحة بأكثر من إستراتيجية سواء كان إختيارك أسلوب معين في كتابة css أو من خلال التعديل على خصائص تلك العناصر بإستعمال javascript (في حالتك React).
أن إستعمالك ل flex في css قد يساعدك كثيراً في مثل هذه المشكلات. لاحظ المثال التالي
.container{
display:flex;
flex-direction:row; /* العرض بهيئة صف */
justify-content:flex-start
/* يقوم هذا السطر بسحب العناصر بإتجاه الصفحة الحالي سواء يمين أو يسار*/
}
أيضا يمكنك إستعمال خصائص العناصر class و style للتحكم المباشر بأي element. على سبيل المثال تستفيد من التحكم في style عندما يكون العنصر أو الحاوية الرئيسية container في مكون ما component في وضع absolute , عندها نتحكم في موقعه من خلال التعديل على الخاصيتين left و right كما يلي:
...
let style={}
if(dir==="rtl"){
// هنا نقوم بالتحقق من أتجاه الصفحة ومن ثم تعيين الإنحراف يميناً أو يساراً حسب ما لديك
style.right="100px"
} else {
style.left="100px"
}
return(
{/* نطبق قيمة الستايل التي تم تحقيقها أعلاه */}
<div style={style} className="absolute-container" >
...
</div>
)
...
التعليقات