برگزیده های پرشین تولز

آموزش فارسي كردن قالب هاي phpBB

hyper

کاربر تازه وارد
تاریخ عضویت
7 اکتبر 2004
نوشته‌ها
59
لایک‌ها
3
سن
53
با سلام

در اين مقاله سعي خواهم كرد تا بزبان ساده و با ابزار موجود نحوه فارسي كردن قالب هاي phpBB رو توضيح بدم
لازم به توضيح است كه پيش از اين ، اساتيد بنده هم به نوعي در اين مورد سعي و تلاش كرده اند و بنده در اين مقوله سعي كرده ام كه چكيده مطالب مفيد آنها را هم لحاظ كنم ...

سطح اين آموزش متوسط است و شما به فرض داشتن آشنايي مختصري به phpBB ميتوانيد دستورالعمل هاي آن را بكار بسته و عملي كنيد

به عنوان مقدمه بهتر است به معرفي مراحل كار بپردازيم :

1. دريافت قالب مورد نظر
2. ايجاد تغييرات لازم در فايل هاي مربوطه و افزودن امكان فارسي نويسي
3. تغيير جهت و فارسي كردن كنترل پنل ادمين ( راست چين كردن )
4. طراحي و ايجاد موضوعات گرافيكي به زبان فارسي از قبيل كليدها و ...
5. تغيير فونت هاي مورد استفاده در قالب
6. نصب و استفاده از قالب مورد نظر


بسيار خوب كارمون رو شروع كنيم :

1. براي دريافت قابل بهترين منبعي كه ميتونم معرفي كنم و احتمالا خيلي ها هم به آن آشنايي دارند اين آدرس است : http://www.phpbbhacks.com/templates.php
شما ميتوانيد قالب مورد نظر خود را از آدرس فوق انتخاب و دريافت نماييد
خوشبختانه در اين مرجع قالب ها دسته بنده شده و همچنين امكان پيش نمايش رو هم دار خواهيد بود ، اين موضوع ميتونه در انتخابتون كمك بسزايي بكنه ...




2. فايل هاي قالب phpBB فايلهاي با پسوند tpl. و در فولدرهايي مجزا و هم نام با قالب و در شاخه templetes هستند

پيش از هركاري بايد امكان فارسي نويسي ( تعريف كليدها فارسي ) رو انجام بديم
براي اين كار نياز به كدهاي جاوا اسكريپت داريم
از آنجايي كه فايل overall_header.tpl در تمامي صفحات انجمن وجود دارد و تكرار ميشود ( قسمت بالاي صفحات ) ، بهترين محل براي قرار دادن كد هاي لازم است
كد زير رو ( در ابتداي فايل ) يافته
کد:
dir="{S_CONTENT_DIRECTION}"
و اين كد رو جايگزين آن كنيد :
کد:
dir="rtl"
حالا كافيست اين كد رو پيش از
کد:
</head>
اضافه كنيم :

کد:
<script language="javascript" type="text/javascript">
var lang = 1;	// 1: Farsi, 0: English

// Farsi keyboard map based on ISIRI-2901
var farsikey = [
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
   0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
   0x0038, 0x0039, 0x003A, 0x0643, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
   0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
   0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E ];


function changeLang() {
    if (lang == 0) {
    lang = 1;
    return true;
  }
  else {
    lang = 0;
    return true;
  }
}

function FKeyDown (txtFrm){
 var key = window.event.keyCode;
 if (key == 145){
    if (lang == 0) {
      lang = 1;
      return true;
    }
    else {
      lang = 0;
      return true;
    }

}
    
}
function FKeyPress(txtFrm) {
   var key = window.event.keyCode;

  if (key == 13) { window.event.keyCode = 13; return true; }
     if (key == 0x06cc) {   
        window.event.keyCode = 0x064a;
     }
            
   if (lang == 1) { // If Farsi
     if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
       window.event.keyCode = 0x200C;
     else
       window.event.keyCode = farsikey[key - 0x0020];
     if (farsikey[key - 0x0020] == 92) {   
        window.event.keyCode = 0x0698;
     }
     if (farsikey[key - 0x0020] == 8205) {   
        window.event.keyCode = 0x067E;
     }
   }
   return true;
}
</script>
با اين كار در واقع كليد ScrolLock رو براي تعويض بين حالت فارسي و انگليسي تعريف كرده ايم
نقشه صفحه كليد در اين حالت براساس استاندارد ISIRI-2901 است كه متداول ترين صفحه كليد مورد استفاده فارسي مي باشد
توجه كنيد كه طبق اين كد پيش فرض نگارش در فيلدهايي كه بعدا تغيير خواهيم داد ، فارسي خواهد بود
اگر تمايل به انگليسي كردن پيش فرض نگارش در فيلدها باشيد كافيست در قسمت
کد:
var lang = 1;	// 1: Farsi, 0: English
عدد 0 رو جايزگين 1 كنيد ، يعني :

کد:
var lang = 0;	// 1: Farsi, 0: English

حالا بايد بريم سراغ جداول ( tables )
در تمامي فايل هاي قالب ( فايل هاي با پسوند tpl. ) به دنبال خطوطي كه حاوي اين كد هستند ميگرديم :
کد:
<table ...................
و در كنار آن عبارت زير رو اضافه ميكنيم :

کد:
dir="rtl"

يعني به عبارتي اگر كدي مثلا به اين شكل داشته باشيم :

کد:
<table class="forumline" width="95%" cellspacing="1" cellpadding="4" border="0">

بايد به اين شكل تغيير يابد :

کد:
<table dir="rtl" class="forumline" width="95%" cellspacing="1" cellpadding="4" border="0">

مرحله بعدي تعويض كدهاي left و right است
باز هم در تمامي فايل هاي قالب ، كدهاي
کد:
align="left"
رو يافته و كد رو به
کد:
align="right"
تغيير ميديم


همچنين همه كدهاي
کد:
align="right"
رو يافته و به كد
کد:
align="left"
تغيير ميديم

اين قسمت شايد مهمترين قسمت كار باشه
چرا كه تنيجه عملكرد فوق اينجا خودش رو نشون ميده ...

در اين قسمت بايد امكان نوشتن فارسي در فيلد ها رو ايجاد كنيم
عمده فيلد هاي مورد استفاده جهت نگارش input و textarea هستند
در تمامي فايل هاي قالب ، عبارات textarea و input رو يافته و كدهاي
کد:
onKeyDown="FKeyDown();" onkeypress="FKeyPress();"
رو به اون اضافه ميكنيم

به عنوان مثال اگر در مورد input كدي مشابه اين داشته باشيم
کد:
<input class="post" type="text" name="username" size="10"/>
به اين شكل تغيير ميكنه :
کد:
<input class="post" type="text" name="username" size="10" onKeyDown="FKeyDown();" onkeypress="FKeyPress();"/>

ويا در مورد textarea اگر كدي شبيه اين داشته باشم

کد:
<textarea name="message" rows="15" cols="35" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" >
به اين شكل تغيير ميكنه :

کد:
<textarea name="message" rows="15" cols="35" style="width:450px" tabindex="3" class="post" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onKeyDown="FKeyDown();" onkeypress="FKeyPress();">

(( لازم به ذكر است كه كدهاي مذكور رو به شكلي ديگري هم ميتوان بكاربرد كه به دليل جلوگيري از پيچيده گي موضوع و عدم ضرورت به آن نمي پردازم ... ))

نكته مهم :
در تمامي مودهايي كه در phpBB افزوده ميشود ، نحوه فارسي كردن فيلدهاي موجود در آنها به همين ترتيب فوق است
به اين معني كه ميتوانيد براي فارسي كردن فيلدهاي مورد اشاره در مودي كه نصب ميكنيد با افزودن كدهاي
کد:
onKeyDown="FKeyDown();" onkeypress="FKeyPress();"
به فيلدهاي نوشتاري آن ، به راحتي امكان فارسي نوشتن را به آنها بيافزايد ...

اخطار :
هرگز كدهاي فوق رو در مورد فيلدهايي نظير فيلدهاي دريافت آدرس ايميل و آدرس وب سايت و مخصوصا فيلد دريافت كلمه رمز كاربران ، بكار نبريد
عدم توجه به اين مورد قطعا شما رو با مشكلات جدي مواجه خواهد كرد ...




3. براي فارسي كردن كنترل پنل مدير phpBB هم روندي مشابه موارد فوق را اجرا ميكنيم ، با اين تفاوت كه بجاي فايل overall_header.tpl فايل page_header.tpl در فولدر admin قالب رو ويرايش و كدهاي لازم رو به اون اضافه ميكنيم
همچنين امكان نگارش فارسي رو هم - مطابق موارد فوق - به فيلدهاي مورد نظر در فايل هاي متفاوت فولدر admin اضافه ميكنيم

و اما تغيير جهت كنترل پنل مديريت :

در فولدر admin فايل index_frameset رو يافته و ويرايش ميكنيم

كد زير رو پيدا كرده
کد:
<frameset cols="170,*" rows="*" border="2" framespacing="0" frameborder="yes"> 
  <frame src="{S_FRAME_NAV}" name="nav" marginwidth="3" marginheight="3" scrolling="auto"> 
  <frame src="{S_FRAME_MAIN}" name="main" marginwidth="10" marginheight="10" scrolling="auto"> 
</frameset>
و كد
کد:
 cols="*,170"
رو جايگزين
کد:
cols="170,*"
ميكنيم
يعني در نهايت كداصلي به اين شكل در خواهد آمد :

کد:
<frameset cols="*,170" rows="*" border="2" framespacing="0" frameborder="yes"> 
  <frame src="{S_FRAME_NAV}" name="nav" marginwidth="3" marginheight="3" scrolling="auto"> 
  <frame src="{S_FRAME_MAIN}" name="main" marginwidth="10" marginheight="10" scrolling="auto"> 
</frameset>

سپس كدهاي زير رو يافته
کد:
<frame src="{S_FRAME_NAV}" name="nav" marginwidth="3" marginheight="3" scrolling="auto"> 
<frame src="{S_FRAME_MAIN}" name="main" marginwidth="10" marginheight="10" scrolling="auto">
و جاي خط اول و دوم رو با هم عوض ميكنيم

يعني در نهايت اين :

کد:
<frame src="{S_FRAME_MAIN}" name="main" marginwidth="10" marginheight="10" scrolling="auto"> 
<frame src="{S_FRAME_NAV}" name="nav" marginwidth="3" marginheight="3" scrolling="auto">




4. براي فارسي كردن كليدها و نمادهاي گرافيكي در شاخه قالب ، فولدري بنام lang_farsi بسازيد
فايل هاي تصويري موجود در شاخه lang_english رو درون آن كپي كرده و توسط نرم افزار گرافيكي مثل PhotoShop يا هر نرم افزار ديگري كه تمايل داريد ، متون رو به فارسي تغيير دهيد
همچنين در صورت تمايل ميتونيد از نمادهاي گرافيكي كه قبلا فارسي شده اند و در دسترس ميباشند استفاده كنيد
توجه كنيد كه اين كار به سليقه خودتان بستگي دارد و البته از كليدهاي انگيليسي هم ميتونيد استفاده كنيد و در اين صورت اشكالي در روند استفاده از قالب ايجاد وجود نخواهد داشت ...




5. فونت هاي مورد استفاده در قالب در فايلي همنام با قالب و با پسوند css. تعريف شده اند
فايل رو ويرايش كرده و فونتهايي نظير Arial و Courier و Courier New و ... را به Tahoma تغيير دهيد



6. براي نصب و استفاده از قالب ها از دستور العمل زير استفاده كنيد :

. فولدر حاوي قالب رو در شاخه templates فروم كپي كنيد
. وارد بخش مديريت phpBB شده و در قسمت مديريت استايل ها ، گزينه اضافه كردن رو انتخاب كنيد
. در صفحه مربوطه گزينه نصب در مقابل نام template رو انتخاب كنيد
. به صفحه اصلي بازگرديد و در قسمت مشخصات فردي قالب مورد نظر رو انتخاب كنيد

نكته مهم :
در صورتي كه در تنظيمات مديريت > پيكربندي سيستم > آيا همه كاربران نيز اجبارا از اين استيل استفاده كنند ؟
گزينه بله انتخاب شده باشد ، علارغم اينكه قالب هاي متعددي نصب كرده باشيد ، كاربران امكان استفاده از آنها را نخواهند داشت
و تنها قالبي كه در همان قسمت به عنوان پيش فرض تعيين شده است قابل دسترسي خواهد بود
 

ehsan

Administrator
مدیر انجمن
Administrator
تاریخ عضویت
5 دسامبر 2002
نوشته‌ها
7,949
لایک‌ها
3,918
محل سکونت
Internet

hyper

کاربر تازه وارد
تاریخ عضویت
7 اکتبر 2004
نوشته‌ها
59
لایک‌ها
3
سن
53
خواهش میکنم احسان خان ...
 

egit

کاربر تازه وارد
تاریخ عضویت
12 فوریه 2006
نوشته‌ها
21
لایک‌ها
0
موفق باشيد
 

egit

کاربر تازه وارد
تاریخ عضویت
12 فوریه 2006
نوشته‌ها
21
لایک‌ها
0
مرسی دستت درد نکنه
 

1991i

کاربر تازه وارد
تاریخ عضویت
1 اکتبر 2010
نوشته‌ها
3
لایک‌ها
0
ببخشید من از یه سیستم انگلیسی فروم رایگان استفاده می‌کنم (freeforum.org) و پنل مدیریتی اون انگلیسیه. نمی‌دونم باید کجا قالب خودم رو آپلود کنم. اصلاً امکان‌ش هست که قالب رو روی فروم‌های رایگان آپلود کرد.
و اینکه کسی می‌تونه سرویس‌دهنده فروم فارسی معرفی کنه. بجز از پارس‌برد که فعلاً کار نمی‌کنه.
ممنون!
 
بالا