pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش ساخت سایت چند زبانه با PHP
12-09-2013, 02:30 PM
ارسال: #1
آموزش ساخت سایت چند زبانه با PHP
سلام

برای این پست تصمیم گرفتم بنا به درخواست یکی از دوستان آموزش ساخت سایتهای چندزبانه رو براتون آموزش بدم.

برای این کار چند روش وجود داره که من یکی از روشها رو براتون توضیح میدم.

در این روش از چند فایل برای نگهداری ترجمه ها استفاده میکنیم.به عنوان مثال ما میخوایم سایتی داشته باشیم که هم با زبان انگلیسی و هم زبان فارسی رو پشتیبانی کنه.

برای این کار دو فایل با نام fa.php برای ذخیره ترجمه های زبان فارسی و یک فایل با نام en.php برای زبان انگلیسی میسازیم.

در واقع این دو فایل حاوی یک آرایه است که یک کلید برای کلمه مورد نظر و یک مقدار برای ترجمه است.

فایل fa.php

کد php:
<?php
$lang
['hello'] = 'سلام';
$lang['goodbye'] = 'خدانگهدار';
$lang['home'] = 'خانه';
$lang['about'] = 'درباره ما';
$lang['contact'] = 'تماس با ما';
$lang['links'] = 'لینکهای مفید';
$lang['news'] = 'اخبار'

و محتویات فایل en.php :

کد php:
<?php
$lang
['hello'] = 'Hello';
$lang['goodbye'] = 'GoodBye';
$lang['home'] = 'Home';
$lang['about'] = 'About us';
$lang['contact'] = 'Contact with us';
$lang['links'] = 'Link';
$lang['news'] = 'News'

همینطور که میبینید باید نام کلید های آرایه توی دوتا فایل یکسان باشه .

خوب حالا دو تا لینک به صورت زیر میذاریم تا کاربر زبان مورد نیازخودش رو انتخاب کنه :

کد php:
<a href="http://phpro.ir/?lang=fa" >
Farsi
</a>
<
a href="http://phpro.ir/?lang=en" >
English
</a

توی این دو تالینک در URL مقدار lang رو برابر با زبان مورد نظر قرار دادیم.حالا برای دسترسی به زبان میتونیم از آرایه $_GET استفاده کنیم :

کد php:
if(isset($_GET['lang']))
{
    include 
$_GET['lang'].'.php';
}else 
{
    include 
'fa.php'];


ابتدا چک میکنیم که آیا مقدار lang در url ست شده یا نه. اگر مقدار داشت فایل مربوط به همون زبان رو include میکنیم اگر مقدار نداشت به فایل fa.php رو include میکنیم که به این معنیه که سایت ما به صورت پیش فرض از زبان فارسی استفاده میکنه.

تقریبا کار ما تمومه و باید از متغیر $lang در جایی که میخوایم استفاده کنیم.

به عنوان مثال :

کد php:
echo $lang['hello']; 

حالا اگر زبان سایت ما فارسی باشه عبارت ” سلام ” و اگر انگلیسی باشه کلمه Hello نمایش داده میشه.

میتونیم کارمون رو یه کم راحت تر کنیم تا لازم نباشه همه جا از دستور echo استفاده کنیم .

برای این کار یک تابع با نام _e میسازیم :

کد php:
function _e($key){
    echo 
$lang[$key];


حالا به جای دستور بالا میتونیم برای ترجمه از این تابع استفاده کنیم :
کد php:
_e('hello'); 

تا اینجا کار ما تمومه اما ممکنه گاهی اوقات ما کلیدی رو فراخوانی کنیم که در متغیر $lang وجود نداشته باشه.برای رفع این مشکل یک پارامتر دوم هم برای تابع _e میذاریم که در صورتی که کلید ما در آرایه وجود نداشته باشه مقدار پیش فرض نمایش داده بشه :

کد php:
function _e($key $def ''){
    if(isset(
$lang[$key]))
          echo 
$lang[$key];
    else
        echo 
$def;


این تابع نیاز به توضیح زیادی نداره فقط در ابتدا چک کردیم که مقدار $key در آرایه وجود داره یا خیر اگر وجود نداشت مقدار $def رو به کاربر نمایش میدیم :

کد php:
_e('site_news' 'اخبار سایت'); 

این روش به خاطر اینکه از آرایه $_GET استفاده میکنه باید از لحاظ امنیتی هم بررسی بشه که اینکار رو به خودتون واگذار میکنم.در ضمن این یک مثال کامل نیست باید بیشتر روش کار کنید هدف فقط این بود که با این روش آشنا بشید.
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition