اگر شما هم دستی در ویرایش اسکریپت های وب داشته باشید، بی شک یکی از سختی هایی که در این کار میبینید پارسی سازی اسکریپت یا بطور کلی افزودن زبان های دیگر به یک اسکریپت است؛ در ادامه این نوشته آموزش میدهیم که چگونه میشود چند زبان گوناگون را به یک اسکریپت PHP افزود!
این آموزش را با پایه ای ترین روشن سازی ها پیش میبریم تا کوچکترین جای پرسشی برای شما نماند! اگر چه همیشه آماده پاسخگویی به پرسش های شما هستیم!
در این روش تنها از یک فایل که ما نامش را common.php میگذاریم و تنها چند تکه کد بهره میگیریم!
در آغاز نیاز است تا چند فایل بسازیم که هر کدام برای یک زبان مشخص باشد، برای نمونه ما میخواهیم دو زبان پارسی و انگلیسی را به یک اسکریپت بی افزاییم!
اسکریپیتی که برای نمونه روی آن کار میکنیم اسکریپت بسیار ساده ” Random Password Generator” است، بی شک شما میتوانید هر اسسکریپت دیگری رو انتخاب کنید و اون رو پارسی کنید.
اسکریپیتی که برای نمونه انتخاب کردیم امکان پشتیبانی از هیچگونه زبانی رو نداره و تنها زبان آن انگلیسی هست و حتی به خودی خود امکان اضافه کردن زبانی رو هم نداره ولی ما با روشی بسیار ساده، علاوه بر زبان انگلیسی زبان پارسی رو هم به این اسکریپت اضافه میکنیم و امکان انتخاب زبان رو هم برای کاربر فراهم میکنیم.
پیش نیاز ها
برای ان کار همین بس هست که کمی در مورد زبان HTML و CSS و همچنین PHP بدونید، گرچه تمام کار ها با جایگذاری کد ها انجام میشه و نیازی به نوشتن کد از سمت خودتون نیست.
افزودن قابلیت ترجمه به اسکریپت PHP
برای اینکار کد زیر رو در Notepad و یا هر نرم افزار ویرایشگر متن دیگری جایگذاری کنید و Encoding رو UTF-8 قرار بدید و با نام common.php در مسیر فایل های اسکریپت مورد نظر ذخیره کنید.
کد:
<?php session_start(); header('Cache-control: private'); // IE 6 FIX if(isSet($_GET['lang'])) { $lang = $_GET['lang']; // register the session and set the cookie $_SESSION['lang'] = $lang; setcookie('lang', $lang, time() + (3600 * 24 * 30)); } else if(isSet($_SESSION['lang'])) { $lang = $_SESSION['lang']; } else if(isSet($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } switch ($lang) { case 'en': $lang_file = 'en.php'; break; case 'pe': $lang_file = 'pe.php'; break; default: $lang_file = 'lang.en.php'; } include_once 'Masir-File-Haye_Zaban/'.$lang_file; ?>
در کد بالا باید چند تکه تغییر کنند!
وابسته به اینکه قرار هست چند زبان به اسکریپت شما اضافه بشود، باید کد زیر را به همان تعداد به کد های این فایل اضافه کنید.
case 'en': $lang_file = 'en.php'; break;
چون همانگونه که پیش از این هم گفتم قرار هست دو زبان انگلیسی و پارسی رو برای نمونه به اسکریپت اضافه کنم به همین دلیل، از این کد فقط دوبار در این فایل موجود هست که البته کد دیگری برای زبان پارسی هست و با شناسه pe و با نام فایل pe.php مشخص شده است.
نکته: pe کوتاه شده persian به معنای پارسی است و برای زبان های دیگر میتوانید هر نام دیگری انتخاب کنید.
اما در انتهای کد بالا به جای عبارت Masir-File-Haye_Zaban باید آدرس مسیری رو که فایل های زبانتون رو میخواین در اونجا قرار بدید رو جایگزین کنید؛ همانگونه که در تصویر بالا هم مشخص هست برای نمونه ما فایل های زبان رو در پوشه ای بنام lang قرار دادیم بنابراین اگر بخوایم کد فایل common.php رو برای نمونه ای که انتخاب کردیم تغییر بدیم به شکل زیر هست.
<?php session_start(); header('Cache-control: private'); // IE 6 FIX if(isSet($_GET['lang'])) { $lang = $_GET['lang']; // register the session and set the cookie $_SESSION['lang'] = $lang; setcookie('lang', $lang, time() + (3600 * 24 * 30)); } else if(isSet($_SESSION['lang'])) { $lang = $_SESSION['lang']; } else if(isSet($_COOKIE['lang'])) { $lang = $_COOKIE['lang']; } else { $lang = 'en'; } switch ($lang) { case 'en': $lang_file = 'en.php'; break; case 'pe': $lang_file = 'pe.php'; break; default: $lang_file = 'pe.php'; } include_once 'lang/'.$lang_file; ?>
اما یک نکته دیگر هم در کد بالا هست و اون هم اینکه در تکه کد
default: $lang_file = 'pe.php';
زبان پیشفرض رو زبان پارسی که در ادامه میخواهیم اضافه کنیم قرار دادیم، به این معنی که اگر مشکلی در بارگذاری زبان های دیگر پیش اومد، زبان پارسی بصورت پیشفرض بارگذاری میشود.
شناساندن فایل common.php به اسکریپت
تا اینجای کار خوب پیش رفتیم ولی یک مشکل تا به اینجا هست و اون هم این است که اسکریپت ما خبر نداره که یک فایل common.php به فایل های دور و برش اضافه شده! بنابراین باید به اسکریپت بفهمانیم که پیش از هر چیز کد های درون فایل common.php رو پردازش کند و پس از اون مانند پیش از اضافه کردن این فایل کد های دیگر را پردازش کند.
بی شک هر اسکریپت به زبان PHP یک فایل index.php دارد، این فایل را باز کنید و کد زیر را به نسختین خط آن اضافه کنید.
<?php include_once 'common.php'; ?>
با اینکار پیش از اینکه کد های اسکریپت پردازش بشود، کد های درون فایل common.php پردازش میشود و کار این فایل هم انتخاب بین زبان هایی است که درون آن، تعریف شده اند!
نکته: اگر فایل common.php را در جای بجز مسیر اصلی اسکریپت و در یک مسیر فرعی ذخیره کرده اید باید پیش از عبارت common.php در کد بالا آدرس مسیر را وارد کنید.
حالا بخش بزرگی از کار تمام شده است!
به مسیری که میخواهید فایل های زبان را در آنجا بسازید و نشانی آن را هم در فایل common.php داده اید، بروید و برای نمونه که میخواهیم دو زبان انگلیسی و پارسی را بیافزایم دو فایل بنام های en.php و pe.php با Encoding برابر با UTF-8 بسازید.
نکته: فایل های en.php و pe.php نمونه هستند! و چون در اسکریپت نمونه و همچنین فایل common.php این نام ها را اضافه کردیم بنابراین باید از همین نام ها بهره بگیریم، در غیر اینصورت باید در فایل common.php هم نام های دیگری را انتخاب کنیم.
بعد از اینکه فایل های زبان را ساختید، هم اکنون تک تک فایل های اسکریپت را بگردیم و هر کجا که قرار است نوشته ای چاپ شود را با یک عبارت جایگزین کنیم.
این عبارت به چاپ یک نوشته همیشگی در ابدا بررسی میکند که چه زبانی توسط کاربر انتخاب شده و نسبت به جمله ای که در ان فایل زبان تعیین شده است عبارتی را چاپ میکند!
به عنوان نمونه فایل index.php اسکریپت نمونه را باز میکنیم و به دنبال نوشته های ثابت میگردیم، بخشی ابتدایی کد های فایل index.php اسکریپت نمونه در زیر آمده است.
<html> <head> <title>Random Password Generator</title> <link rel="stylesheet" type="text/css" href="style.css"> <script src='jquery.js'></script> <script type='text/javascript'>
در همین جا میبینیم که یک جمله ثابت بکار رفته که باید در زبان های گوناگون جمله ی دیگری نمایش داده شود! آن جمله ثابت Random Password Generator است که باید با کد زیر آن را جایگزین کنید.
<?php echo $lang['page_title']; ?>
به جای page_title میتوانید هر نام دلخواه دیگری را وارد کنید، حالا با اینکار سرنام و یا Title برگه اصلی این اسکریپت را به جای ثابت تبدیل به متغیر کردید! هم اکنون دیگر به عنوان سرنام برگه اصلی وبسایت عبارت Random Password Generator نمایش داده نمیشود بلکه جمله نمایش داده میشود که قرار است کمی بعد در فایل های en.php و pe.php آن را مشخص کنید!
در واقع تا اینجای کار به عنوان نتیجه گیری ما زبان انگلیسی را به عنوان تنها زبان قابل نمایش این اسکریپت حذف کردیم و در ادامه میخواهیم این زبان را به عنوان تنها یکی از چند انتخاب در زبان های گوناگون داشته باشیم.
هم اکنون بهتر است با فایل en.php کار را آغاز کتیم، این فایل را باز کنید و تکه کد زیر را به آن بیافزایید
<?php $lang = array(); $lang['page_title'] = 'Random Password Generator'; ?>
همانگونه که در کد بالا میبینید تصمیم داریم برای شناسه Page_Title که آن را برای سر نام برگه اصلی اسکریپت در نظر گرفتیم یک جمله در زبان انگلیسی انتخاب کنیم.
اما جمله ای که میخواهیم هنگامی که کاربر زبان انگلیسی را انتخاب میکند به آن نمایش داده شود همان جمله ای است که در ابتدا هم در فایل index.php وجود داشت.
به همین روش به فایل pe.php هم همین کد را اضافه میکنیم با این تفاوت که به جای عبارت Randdom Password Generator برابر پارسی آن را مینویسیم.
<?php $lang = array(); $lang['page_title'] = 'سازنده کلمه عبور تصادفی'; ?>
به همین روش جملات ثابت دیگر اسکریپت را با کدی که در چندی پیش گفته شد جایگزین میکنیم و در هر دو فایل زبان برابر آن را اضافه میکنیم.
تنها تا پایین کار یک سختی دیگر وجود دارد! حالا کاربر چگونه زبان مورد نظر خود را انتخاب کند؟!
برای این کار باید پیوند هایی را در هر جای اسکریپت که معمول آن برگه اصلی و همان index.php است اضافه کنیم که به آدرسی اشاره دارد که فایل زبان مورد نظر از آن آدرس قابل دسترسی باشد، برای بارگذاری اسکریپت در زبان دلخواه باید آدرس به گونه زیر در مرورگر وب وارد شود.
http://your-domain.com/index.php?lang=YOUR-LANGUAGE-NAME
در ساختار بالا your-domain همان نام دامنه و آدرس اینترنتی اسکریپت شماست و نکته مهم آن عبارت YOUR-LANGUAGE-NAME است که باید با نام زبان دلخواه شما جایگزین شود، برای نمونه اگر میخواهید اسکریپت را در زبان پارسی ببینید باید آدرس را به گونه زیر وارد کنید.
http://your-domain.com/index.php?lang=pe
که در آن pe همان شناسه ای است که برای زبان پارسی در نظر گرفته بودیم.
هم اکنون کار کمابیش تمام است! در پیش نیاز ا گفتیم آشنایی با HTML+CSS نیاز است، به همین دلیل بود که پیوند های مربوط به هر زبان را در برگه اصلی اسکریپت جایگذاری کنید تا کاربر با کلیک بروی آن ها زبان خود را انتخاب کند برای نمونه میتوانید کد زیر را در فایل اسکریپت خود در جایی مناسب قرار دهید.
<div id="Lang"> <a href="index.php?lang=en"><img src="England.png" width="48" height="48" title="English" alt="English" /></a><a href="index.php?lang=pe"><img src="Persian.png" width="48" height="48" title="پارسی" alt="پارسی" /></a> </div>
نکته: دوباره تکرار میکنیم که در تمام این آموزش اسکریپت نام برده و زبان های نام برده پیشفرض ما هستند! اگر میخواهید زبان های دیگری بجز پارسی و انگلیسی اضافه کنید باید تک تک کد هایی را که در بالا گذاشته ایم را نسبت به انتخاب خود تغییر بدید.
تنها برای آخرین سختی! ? یک کار دیگر هم برای حرفه ای تر شدن کار باید انجام شود!
اگر با راستچین یا چپ چین بودن زبان ها آشنا باشید، بی شک میدانید که زبان پارسی زبان از راست به چپ است برخلاف بیششتر زبان های رایج مانند انگلیسی که از چپ به راست نوشته میشوند! بنابراین مشکل اینجاست که بی شک اسکریپت مورد نظر شما جوری استایل نویسی و طراحی شده است که جملات انگلیسی را نمایش دهد، یعنی از چپ به راست! بنابراین برای نمایش زبان پارسی مشکل ایجاد میشود!
راستچین کردن اسکریپت
برای اینکه اسکریپت تنها زمانی بصورت راستچین نمایش داده شود که زبان پارسی انتخاب شده باشید این بس است که فایل pe.php را باز کنید و در ابتدای آن کد زیر را وارد و ذخیره کنید.
<style> body{direction:rtl;} </style>
با اضافه کردن کد بالا هنگامی که قرار است این فایل بکار گرفته شود یک استایل هم همراه آن اجرا میشود و آن همه راستچین شدن تمام المنت های موجود در body پوسته اسکریپت است.
این آموزش جای توضیح و گفتگوی زیاد دارد که آن را به شما میسپاریم! دیدگاه ها و پرسش های خود را در این باره باما در میان بگذارید!
- کد خبر 277
- 266 بازدید
- بدون نظر
اخبار زردیس | جدیدترین اخبار ایران و جهان
تمامی حقوق مطالب برای "اخبار زردیس"محفوظ است و هرگونه کپی برداری بدون ذکر منبع ممنوع می باشد.
طبق ماده 12 فصل سوم قانون جرائم رایانه ای کپی برداری از قالب و محتوا پیگرد قانونی خواهد داشت.