تحديث آخر نسخة 1.8.37

تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
طرقة تعريب المجلة للغة العربية
#1
بسم الله الرحمن الرحيم

تعريب مجلة النيوك : هل فكرت يوماً بالقيام بتعريب آخر الإصدارات من مجلة النيوك بنفسك حتى تقوم باستخدامها في موقعك أو حتى نشرها حتى يستفيد منها الجميع ؟؟!! .. كثير منا يتسائل عن كيفية تعريب مجلة النيوك .. والكثير أيضاً يود معرفة ما هي الملفات التي يتم التعديل عليها حتى يتم توافقها وقبولها للغة العربية بدون مشاكل مثلاً عند الأتجاه ، والتاريخ الهجري ، والتسجيل بالعربي وبفراغات وغيرها .. أذن تابع هذا الدرس حتى تتعلم كيفية تعريب مجلة النيوك حتى تقوم بتعريبها بنسفك ..

_____________
سنذكر هنا أهم الأمور أو التعديلات التي سوف نقوم بها عند تعريب مجلة النيوك ( على اعتبار أن النسخة التي لدينا إنجليزية وليس فيها لغة عربية ، مع العلم أن الموقع الرسمي لمجلة النيوك قد اعتمد اللغة العربية من ضمن لغات البرنامج ) .. والتعديلات الأساسية المطلوبة هي :

1-ملفات اللغة الأساسية في عملية التعريب .

2-قلب اتجاه المجلة من اليمين إلى اليسار .

3-قبول المجلة لتسجيل أسم الموقع بالعربي .

4-تحويل التاريخ من الميلادي إلى الهجري .

5-تسجيل الأعضاء بالعربي وبوجود فراغات .

6-تسجيل أسم المشرف بالعربي وبالفراغات أيضاً .

7-قلب اتجاه صفحة الطباعة من اليمين إلى اليسار .
___________________________________________________________
أولاً : ملفات اللغة الأساسية في عملية التعريب .

لا بد عند عمل تعريب للمجلة أن نقوم بتعريب ملفات اللغة من اللغة الإنجليزية إلى العربية ( طبعاً لا بد أن يكون لدينا إلمام باللغة الإنجليزية حتى نقوم بالتعريب بطريقة صحيحة ) ، وتوجد هذه الملفات في المجلدات التالية :

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>\n";
إلى هذا السطر :
كود :
echo "<html dir=\"rtl\">\n";
_______

ثالثاً : قبول المجلة لتسجيل أسم الموقع بالعربي .

قد تلاحظ عند تسجيل أسم الموقع باللغة العربية عدم ظهوره في شريط العنوان في المتصفح بصورة مقروءة وإنما رموز .. لذلك سوف نقوم بتعديل بسيط حتى يتم قبول المجلة تسجيل أسم الموقع باللغة العربية .. أفتح الملف [ 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 2002 BY KHALED MAMDOUH www.vbzoom.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 2002 BY KHALED MAMDOUH www.vbzoom.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 = "<center>"._NICKNOSPACES."</center>";

وقم بتعطيله بهذه الطريقة عن طريق وضع علامتين // .. بهذه الصورة :

كود :
//  if (strrpos($username,' ') > 0) $stop = "<center>"._NICKNOSPACES."</center>";

سادساًًً : تسجيل أسم المشرف بالعربي وبالفراغات أيضاً .

حتى تتمكن من تسجيل أسم المشرف للمجلة أيضاً بالعربي وبوجود فراغات لا بد لك من القيام بهذا التعديل البسيط .. وهو كالتالي :
أفتح ملف [ 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>
وقم بتعديله إلى :
كود :
echo "<html dir=\"rtl\">
انتها التعريب ان شاء الله يفيدكم
الرد
شكر من طرف :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 2 ) ضيف كريم