nexpay

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

شروع موضوع توسط hyper ‏16 سپتامبر 2005 در انجمن phpBB - پی‌اچ‌پی بی‌بی

  1. hyper

    hyper کاربر تازه وارد

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

    در اين مقاله سعي خواهم كرد تا بزبان ساده و با ابزار موجود نحوه فارسي كردن قالب هاي 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 رو انتخاب كنيد
    . به صفحه اصلي بازگرديد و در قسمت مشخصات فردي قالب مورد نظر رو انتخاب كنيد

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

    ehsan Administrator

    تاریخ عضویت:
    ‏5 دسامبر 2002
    نوشته ها:
    7,915
    تشکر شده:
    3,503
    محل سکونت:
    Internet
  3. hyper

    hyper کاربر تازه وارد

    تاریخ عضویت:
    ‏7 اکتبر 2004
    نوشته ها:
    59
    تشکر شده:
    3
    خواهش میکنم احسان خان ...
     
  4. egit

    egit کاربر تازه وارد

    تاریخ عضویت:
    ‏12 فوریه 2006
    نوشته ها:
    21
    تشکر شده:
    0
    موفق باشيد
     
  5. egit

    egit کاربر تازه وارد

    تاریخ عضویت:
    ‏12 فوریه 2006
    نوشته ها:
    21
    تشکر شده:
    0
    مرسی دستت درد نکنه
     
  6. 1991i

    1991i کاربر تازه وارد

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