PDA

View Full Version : سایت دو زبانه



دانیال دزفولی
یک شنبه 05 مرداد 1393, 14:57 عصر
سلام
میخوام سایت static رو دو زبانه کنم.
پیشنهاد شما چیه؟

css و تگ های html سر جاشون بمونن فقط متن ها عوض شه

* با آپدیت کردن قالب نیاز نباشه که دو تا سایت رو ویرایش کنم

.fatemeh
یک شنبه 05 مرداد 1393, 16:11 عصر
سلام
من یه سایت داینامیک دو زبانه ، به این شکل کار کردم.
فرض کنید زبان من fa بود و en
دوتا صفحه داشتم به نام fa.php و en.php
بالای صفحه index گذاشتم

$_SESSION['lang']=$lan;
$page='content/'.$lan.'.php';
include_once($page);

و
صفحه en.php

///////small menu
define("top_menu1","Home");
define("top_menu2","Contact Us");
define("top_menu3","About Us");
define("top_menu4","Site Map");
///////top menu
define("top_menu7","Report");
define("top_menu6","Articles");
define("top_menu5","register");
///////lan

define("lan1","Persian");
define("lan2","English");
define("lan3","Arabic");
define("lan4","French");

توی صفحه fa هم دقیقا همین ها هست.(البته با متن فارسی)
مثلا:

define("lan1","فارسی");
define("lan2","انگلیسی");
define("lan3","عربی");
define("lan4","فرانسوی");


بعد توی سایت مثلا اگه می خواستم بنویسم "خانه" می نوشتم : top_menu1 یا برای فارسی می گذاشتم :lan1
براساس صفحه ای که include میشه top_menu1 , lan1 هم مقدار میگیره.
این برای قسمت ها استاتیک. برای css هم دوتا css طراحی کن یکی برای فارسی و یکی برای بقیه زبانها.
براساس شرط بگو کدوم فراخوانی بشه.

vahidqara
یک شنبه 05 مرداد 1393, 16:24 عصر
سلام
من یه سایت داینامیک دو زبانه ، به این شکل کار کردم.
فرض کنید زبان من fa بود و en
دوتا صفحه داشتم به نام fa.php و en.php
بالای صفحه index گذاشتم

$_SESSION['lang']=$lan;
$page='content/'.$lan.'.php';
include_once($page);

و
صفحه en.php

///////small menu
define("top_menu1","Home");
define("top_menu2","Contact Us");
define("top_menu3","About Us");
define("top_menu4","Site Map");
///////top menu
define("top_menu7","Report");
define("top_menu6","Articles");
define("top_menu5","register");
///////lan

define("lan1","Persian");
define("lan2","English");
define("lan3","Arabic");
define("lan4","French");

توی صفحه fa هم دقیقا همین ها هست.(البته با متن فارسی)
مثلا:

define("lan1","فارسی");
define("lan2","انگلیسی");
define("lan3","عربی");
define("lan4","فرانسوی");


بعد توی سایت مثلا اگه می خواستم بنویسم "خانه" می نوشتم : top_menu1 یا برای فارسی می گذاشتم :lan1
براساس صفحه ای که include میشه top_menu1 , lan1 هم مقدار میگیره.
این برای قسمت ها استاتیک. برای css هم دوتا css طراحی کن یکی برای فارسی و یکی برای بقیه زبانها.
براساس شرط بگو کدوم فراخوانی بشه.

درود ..
به نظر شما این کار وقت گیر نیست؟!!! من خودم کار نکردم ولی فک کنم باید یه component یا کلاسی باشه که کارای تبدیل رو انجام بده تا اینکه دستی این کارو انجام بدیم..؟!

دانیال دزفولی
یک شنبه 05 مرداد 1393, 16:42 عصر
ازتون ممنونم میشه نمونه ای که کار شده رو نشون بدید
من php خیلی وارد نیستم

مهرداد سیف زاده
یک شنبه 05 مرداد 1393, 16:43 عصر
روش ایشون تقریبا درسته
البته در مورد چند زبانه استانداردی هست بنام i18n (http://fa.wikipedia.org/wiki/%D8%A8%DB%8C%D9%86%E2%80%8C%D8%A7%D9%84%D9%85%D9%8 4%D9%84%DB%8C%E2%80%8C%D8%B3%D8%A7%D8%B2%DB%8C_%D9 %88_%D9%85%D8%AD%D9%84%DB%8C%E2%80%8C%D8%B3%D8%A7% D8%B2%DB%8C)که در مورد چند زبانه بودن استانداردها و روشهایی رو داره. معمولا نرم افزارهایی که در اون ها این استاندارد رعایت شده باشه براحتی میشه فایل زبان دلخواه رو براش نوشته و به پروژه اضافه کرد.
اگر شما قصد دارید در پروژه تون طوری کار کنید که هم استاندارد رو رعایت کرده باشید و هم از پکیج های آماده استفاده کنید میتونید از ماژول i18n برای php استفاده کنید
https://github.com/gamespree/i18n
البته composer این ماژول هم هست
در بعضی سایتها اگر دقت کرده باشید با قرارگیری یک en بعد از سایت زبان سایت به انگلیسی بر میگرده. شما به کمک این ماژول میتونید همچین کاری کنید.
همچنین فریم ورک های پیشرفته مثل yii بصورت توکار درونشون i18n قرار داده شده و شما براحتی میتونید با فراخوانی چند کانفیگ ساده این تغییرات رو اعمال کنید.

دانیال دزفولی
یک شنبه 05 مرداد 1393, 16:53 عصر
i18n



آموزشش رو سراغ دارید ؟

واقعا ممنونم

Mohammadsgh
یک شنبه 05 مرداد 1393, 19:16 عصر
اگر اشتباه نکنم از xml هم برای اینکار میشه استفاده کرد:متفکر:

دانیال دزفولی
دوشنبه 06 مرداد 1393, 13:09 عصر
سایت استایتکه ولی پنل جدا هم داره برای نمایش پیام های دریافتی

در آخر باید چیکار کنم

abolfazl-z
دوشنبه 06 مرداد 1393, 22:02 عصر
از نظر من دو پوشه جداگانه چون شما با هیچ زبانی سرو کار ندارید.

ولی اگر سئوی سایت براتون مهم نباشه با جاوا اسکریپت و جیکوئری میشه.