في تدوينة سابقة بعنوان هل تريد تعديل ألوان صورة أو سمة أو موقع ؟ تحدثت عن تعديل ألوان الصور وملفات السمات مثل css وسمات سطح المكتب.
في هذه التدوينة سأتحدث عن موضوع أهم وهو إصلاح سمات مواقع الويب مثل سمات wordpress أو VB أو phpBB وغيرها بحيث تعمل بالشكل الصحيح مع اللغة العربية.
الصورة أدناه توضح سمة wordpress بعد إصلاحها
تأمل كيف كانت السمة قبل إصلاحها
فقد تكون السمة تعالج الاتجاه الأيمن!
اكتب cd ثم اسحب المجلد من مدير الملفات إلى سطر الأوامر ثم ENTER
حدد أنواع الملفات التي يتوجب عليك تحريرها. مثلا: ملفات css و html وأحيانا يكون هناك ملف js أو ملفات قوالب لها اسم خاص أو ملفات php لكن عليك مراعاة ما يلي:
لهذا ان كنت تعلم الملفات المسؤولة عن الشكل دون غيرها فمررها بالاسم وليس عبر *.php
اكتب الأمر
find . -iname '*.css' -or -iname '*.htm*' -or -iname '*.js' -or -iname '*.php' | xargs perl -lwne 'for $i (/(\S*(?:left|right)\S*)/i){print $i;}' | sort | uniq | less
لاحظ طريقة حصر الملفات المطلوبة عبر -or ثم -iname ثم النمط الذي نبحث عنه إن كان هناك ملفات تريد إضافة أسمائها ضعها بعد أمر بيرل يعني قبل أنبوب sort. ومن الأخطاء الشائعة نسيان -or قبل -iname
أو لعرض أسطر أقل
find . -iname '*.css' -or -iname '*.htm*' -or -iname '*.js' -or -iname '*.php' | xargs perl -lwne 'for $i (/(\w*(?:left|right)\w*)/i){print $i;}' | sort | uniq
هذا الأمر الأخير كانت مخرجاته عند تجربة سمة ahimsa لوردبرس
alignleft alignright borderLeftWidth borderRadiusBottomleft bottomleft bottomright copyright Copyright left Left MozBorderRadiusBottomleft paddingLeft paddingRight right rightContext topleft topright webkitBorderBottomLeftRadius WebkitBorderTopLeftRadius
والمشكلة الآن في copyright و Copyright حيث ستقل إلى copyleft مما يعني أن علينا إصلاحها لاحقا.
تأكد من أن كلمة left و right غير مستخدمة في أسماء الملفات. لأنها إن كانت كذلك ربما يكون عليك قلب أسماء تلك الملفات يديويا مثلا قد يكون هناك صورة اسمها bg-left.png فتقلب إلى bg-right.png
لحصر تلك الملفات اكتب الأمر
find . -iname '*left*' -or -iname '*right*'
لقلب كل يمين ويسار في الملفات المحددة مع قلب الهوامش … وذلك بالأمر
find . -iname '*.css' -or -iname '*.htm*' -or -iname '*.js' -or -iname '*.php' | xargs perl -i -lwpe ' s/right/bogoight/gi;s/left/right/gi;s/bogoight/left/gi; s/(margin|padding)\s*:\s*(auto|inherit|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(auto|inherit|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(auto|inherit|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(auto|inherit|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)/${1}: ${2} ${5} ${4} ${3}/gi; s/((?:margin|border|padding)-width)\s*:\s*(thin|medium|thick|inherit|auto|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(thin|medium|thick|inherit|auto|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(thin|medium|thick|inherit|auto|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)\s+(thin|medium|thick|inherit|auto|[\.\d]+(?:em|ex|px|in|cm|mm|pt|pc|%)?)/${1}: ${2} ${5} ${4} ${3}/gi; s/((?:margin|border|padding)-style)\s*:\s*(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|auto)\s+(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|auto)\s+(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|auto)\s+(none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset|inherit|auto)/${1}: ${2} ${5} ${4} ${3}/gi;'
طبعا افضل أن تعمل على نسخة من السمة وليس على السمة الأصلية حتى تتمكن من إصلاحها.
حدد الصور التي تريد قلبها مثلا صورة زر التالي أو صورة بها فراغ …إلخ ثم اكتب
for i in FILES; do convert -flop "${i}" "${i/./.tmp.}" && mv "${i/./.tmp.}" "${i}"; done
مع وضع أسماء الصور مكان FILES يمكنك استعمال *.png لكن غالبا أنت لا تريد كل الصور مثلا في سمة pixel الأمر هو
for i in images/bgbody.jpg images/more.gif; do convert -flop "${i}" "${i/./.tmp.}" && mv "${i/./.tmp.}" "${i}"; done
سنأخذ المثال الذي كان فيه كلمتين بحاجة لقلب هما copyright و Copyright لذا نكتب
find . -iname '*.css' -or -iname '*.htm*' -or -iname '*.js' -or -iname '*.php' | xargs perl -i -lwpe 's/copyleft/copyright/g;s/Copyleft/Copyright/g;'
لحظ أني استعملت s/g وليس s/gi لأني أريده حساسا للحروف إن صغيرة أو كبيرة.
من المشاكل الشائعة (في wordpress) هو أن الموقع يستعمل نوع من الكاش لذلك قد تقوم بالإصلاح إلا أن النسخة الخبيئة عنده قديمة لذلك ربما يكون عليك تغيّر اسم المجلد أو اسم السمة أو عمل تحدث ما يحسب الموقع.
من المشاكل الشائعة (ليس في wordpress لكن بشكل عام) أن البرنامج لا يولد dir=rtl في ترويسة html وهذه حلها بسيط وهو أن نضيف direction:rtl في أي ملف css مثلا بالأمر التالي:
echo "body {direction:rtl;}" >> styles.css
كذلك التأكد من أن اتجاه الأكواد البرمجية هو لليسار
echo "code,pre {direction:ltr;}" >> styles.css