سيف الشهابي
عدد الرسائل : 86 العمر : 40 البلد : العراب الهواية : ممتاز تاريخ التسجيل : 22/10/2007
| موضوع: طريقة تعريب مجلة نيوك من الالف الى الياء 27/10/2007, 5:15 pm | |
| السلام عليكم اتفضلوا هذا الدرس !! ===== تعريب مجلة النيوك : هل فكرت يوماً بالقيام بتعريب آخر الإصدارات من مجلة النيوك بنفسك حتى تقوم باستخدامها في موقعك أو حتى نشرها حتى يستفيد منها الجميع ؟؟!! .. كثير منا يتسائل عن كيفية تعريب مجلة النيوك .. والكثير أيضاً يود معرفة ما هي الملفات التي يتم التعديل عليها حتى يتم توافقها وقبولها للغة العربية بدون مشاكل مثلاً عند الأتجاه ، والتاريخ الهجري ، والتسجيل بالعربي وبفراغات وغيرها .. أذن تابع هذا الدرس حتى تتعلم كيفية تعريب مجلة النيوك حتى تقوم بتعريبها بنسفك ..
--------------------------------------------------------------------------------
سنذكر هنا أهم الأمور أو التعديلات التي سوف نقوم بها عند تعريب مجلة النيوك ( على اعتبار أن النسخة التي لدينا إنجليزية وليس فيها لغة عربية ، مع العلم أن الموقع الرسمي لمجلة النيوك قد اعتمد اللغة العربية من ضمن لغات البرنامج ) .. والتعديلات الأساسية المطلوبة هي :
ملفات اللغة الأساسية في عملية التعريب .
قلب اتجاه المجلة من اليمين إلى اليسار .
قبول المجلة لتسجيل أسم الموقع بالعربي .
تحويل التاريخ من الميلادي إلى الهجري .
تسجيل الأعضاء بالعربي وبوجود فراغات .
تسجيل أسم المشرف بالعربي وبالفراغات أيضاً .
قلب اتجاه صفحة الطباعة من اليمين إلى اليسار .
--------------------------------------------------------------------------------
أولاً : ملفات اللغة الأساسية في عملية التعريب .
لا بد عند عمل تعريب للمجلة أن نقوم بتعريب ملفات اللغة من اللغة الإنجليزية إلى العربية ( طبعاً لا بد أن يكون لدينا إلمام باللغة الإنجليزية حتى نقوم بالتعريب بطريقة صحيحة ) ، وتوجد هذه الملفات في المجلدات التالية :
html/language html/admin/language modules/module_name/language
كيفية التعامل مع هذه المجلدات وتعديلها :
نقوم بفتح مجلد [ html/language ] ، وإن لم يكن هناك ملف بأسم lang-arabic.php نقوم بإنشاء نسخة من الملف الأصلي لهذا الملف وهو [ lang-english.php ] ونسميها [ lang-arabic.php ] ثم نقوم بتعريب كل سطر فيه بالإنجليزية إلى العربية مع التأكد من دقة وصحة التعريب .. وأيضاً نقوم باستبدال السطر التالي ( تقريباً في السطر 23 ) :
define("_CHARSET","ISO-8859-1");
إلى هذا السطر :
define("_CHARSET","windows-1256");
--------------------------------------------------------------------------------
نقوم بفتح مجلد [ html/admin/language ] ، وأيضاً إن لم يكن هناك ملف بأسم lang-arabic.php نقوم بإنشاء نسخة من الملف الأصلي لهذا الملف وهو [ lang-english.php ] ونسميها [ lang-arabic.php ] ثم نقوم بتعريب كل سطر فيه بالإنجليزية إلى العربية مع التأكد من دقة وصحة التعريب أيضاً .
نقوم بفتح كل مجلدات اللغة في كل موديول موجود أو يتم أضافته لاحقاً وهي على هذا المسار
[ modules/module_name/language ] ، ونقصد بـ module_name هنا هو كل موديول أو برنامج مستقل موجود أو يتم إضافته لاحقاً إلى المجلة إلى هذا الدليل [ html/modules ] .. ولا بد من التأكد أولاً من وجود مجلد language في مجلد كل موديول .. وأيضاً لا بد من التأكد من وجود ملف بأسم lang-arabic.php في هذه المجلدات ، وأن لم يكن مجلد اللغات وملفات اللغة أو أحدهما موجوداً نقوم بأنشاء مجلد اللغة language ، وأيضاً ملف اللغة lang-arabic.php في كل مجلدات اللغة أو نقوم بإنشاء نسخة من ملف اللغة الأصلي لكل موديول من كل ملف [ lang-english.php ] ونسميها [ lang-arabic.php ] ثم نقوم بتعريب كل سطر فيه بالإنجليزية إلى العربية مع التأكد من دقة وصحة التعريب أيضاً .
--------------------------------------------------------------------------------
ثانياُ : قلب اتجاه المجلة من اليمين إلى اليسار .
لقلب اتجاه المجلة من اليمين إلى اليسار .. قم بفتح الملف التالي [ header.php ] والموجود ضمن الدليل الرئيسي للمجلة .. ثم قم بتغيير السطر التالي ( تقريباً في السطر 33 ) :
echo "<html> ";
إلى هذا السطر :
echo "<html> ";
--------------------------------------------------------------------------------
ثالثاً : قبول المجلة لتسجيل أسم الموقع بالعربي .
قد تلاحظ عند تسجيل أسم الموقع باللغة العربية عدم ظهوره في شريط العنوان في المتصفح بصورة مقروءة وإنما رموز .. لذلك سوف نقوم بتعديل بسيط حتى يتم قبول المجلة تسجيل أسم الموقع باللغة العربية .. أفتح الملف [ settings.php ] والموجود ضمن هذا المسار [ admin/modules/settings.php ] .. ثم أتجه إلى هذا السطر ( تقريباً في السطر 450 ) :
function ConfigSave $xsitename = htmlentities($xsitename, ENT_QUOTES); $xslogan = htmlentities($xslogan, ENT_QUOTES); $xbackend_title = htmlentities($xbackend_title, ENT_QUOTES); $xnotify_subject = htmlentities($xnotify_subject, ENT_QUOTES); $xsingleaccountname = htmlentities($xsingleaccountname, ENT_QUOTES);
وقم بتعطيل الأسطر الخمسة الأخيرة بعلامة // بحيث تكون بهذا الشكل :
function ConfigSave // $xsitename = htmlentities($xsitename, ENT_QUOTES); // $xslogan = htmlentities($xslogan, ENT_QUOTES); // $xbackend_title = htmlentities($xbackend_title, ENT_QUOTES); // $xnotify_subject = htmlentities($xnotify_subject, ENT_QUOTES); // $xsingleaccountname = htmlentities($xsingleaccountname, ENT_QUOTES);
--------------------------------------------------------------------------------
رابعاًً : تحويل التاريخ من الميلادي إلى الهجري .
طبعاً النسخة الأصلية من مجلة النيوك يأتي فيها التاريخ بالميلادي .. فبإمكانك الآن أن تظهر جميع التواريخ في المقالات وغيرها بالتاريخ الهجري إذا أردت .. والشكر موصول للأخ خالد ممدوح كاتب السكربت ، وأيضاً لقهوة نت لتعديله وإضافته للنيوك .. كل ما عليك هو عمل الآتي : أفتح ملف [ mainfile.php ] والموجود ضمن الدليل الرئيسي للمجلة وأبحث عن هذا السطر ( تقريباً في السطر 782 ) :
function formatTimestamp($time) { global $datetime, $locale; setlocale ("LC_TIME", "$locale"); ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2})[0-9]{1,2})[0-9]{1,2})", $time, $datetime); $datetime = strftime(""._DATESTRING."", mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1])); $datetime = ucfirst($datetime); return($datetime); }
واستبدله بالتالي :
function formatTimestamp($time) { global $datetime, $locale; ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2})[0-9]{1,2})[0-9]{1,2})", $time, $datetime); $time = mktime($datetime[4],$datetime[5],$datetime[6],$datetime[2],$datetime[3],$datetime[1]); // COPYRIGHT 2005 pronile.comhttp://www.pronile.com/ // $TDays=round($time/(60*60*24)); $HYear=round($TDays/354.37419); $Remain=$TDays-($HYear*354.37419); $HMonths=round($Remain/29.531182); $HDays=$Remain-($HMonths*29.531182); $HYear=$HYear+1389; $HMonths=$HMonths+10;$HDays=$HDays+23; if ($HDays>29.531188 and round($HDays)!=30){ $HMonths=$HMonths+1;$HDays=Round($HDays-29.531182); }else{ $HDays=Round($HDays); } // COPYRIGHT 2005 BY pronile.com http://www.pronile.com/ // if ($HMonths>12) { $HMonths=$HMonths-12; $HYear = $HYear+1; }
$datetime = "$HDays-$HMonths-$HYear هـ"; return($datetime); }
ثم بعد ذلك أفتح ملف اللغة [ lang-arabic.php ] الموجود في هذا المسار [ html/languages ] واذهب إلى آخر الملف وستجد التالي :
function translate($phrase) { switch($phrase) { case "xdatestring": $tmp = "%A, %B %d @ %T %Z"; break; case "linksdatestring": $tmp = "%d-%b-%Y"; break; case "xdatestring2": $tmp = "%A, %B %d"; break; default: $tmp = "$phrase"; break; } return $tmp; }
واستبدله بالتالي :
function translate($phrase) { switch($phrase) { case "xdatestring": $tmp = "%d-%b-%Y"; break; case "linksdatestring": $tmp = "%d-%b-%Y"; break; case "xdatestring2": $tmp = "%d-%b-%Y"; break; default: $tmp = "$phrase"; break; } return $tmp; }
--------------------------------------------------------------------------------
خامساًًً : تسجيل الأعضاء بالعربي وبوجود فراغات .
تعديل بسيط تقوم به حتى تسمح للأعضاء بالتسجيل في موقعك بالحروف العربية ، وأيضاً بوجود فراغات في الاسم مثال : الواحة العربية .. وكل ما عليك هو عمل التالي : أفتح ملف [ index.php ] والموجود ضمن هذا المجلد [ modules/Your_Account ] .. وابحث عن هذا السطر ( تقريباً في السطر 30 ) :
if ((!$username) || ($username=="") || (ereg("[^a-zA-Z0-9_-]",$username))) $stop = "
"._ERRORINVNICK."
";
واستبدله بالسطر التالي :
if ((!$username) || ($username=="") || (ereg("[^ء-يa-zA-Z0-9[[:space:]]_-]",$username))) $stop = "
"._ERRORINVNICK."
";
أيضاً في نفس الملف .. أبحث عن هذا السطر ( تقريباً في السطر 33 ) :
if (strrpos($username,' ') > 0) $stop = " "._NICKNOSPACES." ";
وقم بتعطيله بهذه الطريقة عن طريق وضع علامتين // .. بهذه الصورة :
// if (strrpos($username,' ') > 0) $stop = " "._NICKNOSPACES." ";
--------------------------------------------------------------------------------
سادساًًً : تسجيل أسم المشرف بالعربي وبالفراغات أيضاً .
حتى تتمكن من تسجيل أسم المشرف للمجلة أيضاً بالعربي وبوجود فراغات لا بد لك من القيام بهذا التعديل البسيط .. وهو كالتالي : أفتح ملف [ auth.php ] والموجود ضمن المجلد الرئيسي للمجلة .. وابحث عن هذا السطر ( تقريباً في السطر 21 ) : ملاحظة مهمة : في الإصدارات الجديدة من النيوك 7.5 فما فوق تم إلغاء ملف auther.php بالكامل بسبب وجود ثغرة فيه تسمح باختراق المجلة وتم نقل معلوماته إلى ملف admin.php .. وتجد هذا السطر في ملف[ admin.php ] ( في السطر 77 تقريباً ) .
if (ereg("[^a-zA-Z0-9_-]",trim($aid))) { die("Begone"); }
واستبدله بالسطر التالي :
if (ereg("[^ء-يa-zA-Z0-9[[:space:]]_-]",trim($aid))) { die("Begone"); }
سابعا : قلب اتجاه صفحة الطباعة من اليمين إلى اليسار .
تلاحظ عند طباعة مقال ما فإن اتجاه الطباعة تكون من اليسار إلى اليمين وبالتالي تكون غير مرتبة وواضحة لذلك للقضاء على هذه المشكلة ، أفتح ملف [ print.php ] والموجود ضمن هذا المجلد [ modules/News ] .. وابحث عن هذا السطر ( تقريباً في السطر 43 ) :
echo "<html>
وقم بتعديله إلى :
| |
|