ساخت صفحات چند زبانه با php

  • آپدیت شده در تاریخ

ساخت صفحات چند زبانه با php

ساخت صفحات چند زبانه با php بسیار آسان است و به راحتی می توانید حالت چند زبانه را به سایت و پروژه ای که می نویسید اضافه کنید . سایت های چند زبانه به منظور افزایش حجم ترافیک کاربران سایت و انتشار مقالات و ارایه خدمات با وسعت وسیع تر انجام می شود .

ساخت صفحات چند زبانه با php یا localization (محلی سازی) به روش های مختلفی قابل انجام است .

در مقاله قبلی ساخت سایت چند زبانه با php به روش استفاده از نرم افزار poedit (ساخت فایل های جدا برای هر زبان که این روش بسیار قابل توسعه است و در ساخت پلاگین ها و قالب CMS های معروف مانند وردپرس استفاده می شود) و همجنین تعریف آن بصورت آرایه ای را معرفی کردیم .

ساخت صفحات چند زبانه با php به روش های زیر نیز ممکن اسن :

  1. کپی همان صفحات و تغییر زبان آنها و فراخوانی آن ها بصورت جداگانه
  2. افزودن فایل پیکربندی برای تغییر متن های آن به زبان های مختلف

در این آموزش از ساخت صفحات چند زبانه با php به جای کپی کردن هر صفحه , قصد استفاده از آپشن دوم را داریم . خب در اینجا یک سری ساختار فایل معمول و محتویات پیش فرض برای فایل زبان و دیتابیس در نظر گرفتیم.

ساخت صفحات چند زبانه با php

در این آموزش , تصمیم داریم که یک صفحه وب چندزبانه بسازیم که دو نوع ساختار داده پویا(dynamic) و ثابت (static) را داریم .داده های ثابت بر اساس فایل پیکربندی زبان تغییر پیدا می کند .

داده های داینامیک بر اساس اطلاعات ستون دیتابیس که با پیشوند کد زبان مشخص شده اند , مدیریت می شوند . در اینجا از زبان فارسی و انگلیسی استفاده میکنم . بنابراین نام ستون های دیتابیس بصورت en_column_name و fa_column_name خواهد بود .

ساخت صفحات چند زبانه با php

صفحه HTML چند زبانه

این صفحه HTML شامل یک هدر است که عنوان (title) صفحه را نشان میدهد و به ‘Farsi’ و ‘English’ برای تغییر زبان بین فارسی و انگلیسی لینک شده اند . همچنین این صفحه اطلاعات داینامیک را از دیتابیس نمایش می دهد . تمام اطلاعات این صفحه شامل برچسب های استاتیک است و نتایج داینامیک دیتابیس برا اساس زبان انتخابی تغییر پیدا می کند.

تغییر اطلاعات صفحه بر اساس زبان با PHP

در این مثال , دو نوع داده داریم . یکی , متن های ثابت مانند متن هدینگ (سرتیتر) یا متن اعلان های  بدون نتیجه .  نوع دیگر از داده ها نیز از دیتابیس خوانده می شود . در این بخش از ساخت صفحات چند زبانه با php , قصد داریم کدهای مربوط به تغییر نوع داده ها بر اساس زبان انتخاب شده را داریم

با کلیک بر روی لینک زبان , کد زبان انتخابی رو به querystring (رشته پارامتر url) پاس میدیم . یک فایل پیکربندی برای زبان انگلیسی و فارسی (lang.en.php , lang.fa.php) می سازیم . که شامل آرایه ای از متن های استفاده شده در فایل HTML است . بر اساس زبان انتخابی فایل موردنظر زبان با تابع require فراخوانی میشود.

کد php بصورت زیر است :

در کد php , ما به دیتابیس متصل و نتیجه آن را می خوانیم (fetch) . دیتابیس شامل دو نوع اطلاعات عنوان (title) و توضیحات (description) است. برای ذخیره اطلاعات چند زبانه , ستون های جدا از هم را داریم .

ساختار دیتابیس بصورت زیر است ؛

ساخت صفحات چند زبانه با php

این قسمت از مثال به شما در درک نحوه استفاده از دیتابیس برای محلی سازی یا ساخت صفحات چند زبانه با php کمک می کند .

نام ستون ها با کد زبان en_ , fa_ برای ذخیره متن های زبان فارسی و انگلیسی مشخص شده است .

در اسکریپت php , ما از کد زبان برای نمایش عنوان و توضیحات استفاده می کنیم . کد بصورت زیر است:

خب کار ما به پایان رسید . دیدید که به چه راحتی توانستیم نحوه ساخت صفحات چند زبانه با php را پیاده سازی کنیم و این مورد با روش های بسیار مختلفی قابل انجام است که برای پروژه های کوچک توصیه می شود از روش های آرایه ای که در مقاله قبلی ساخت سایت چند زبانه با php اشاره شد استفاده کنید و در ساخت ربات تلگرام هم برای compact شدن پروژه معمولا از این روش بسیار استفاده میکنیم تا کل دکمه ها و متن ها را بصورت داینامیک مدیریت کنیم .

برای پروژه های شخصی و یا شرکتی بسیار بهتر است که از روش ذخیره در دیتابیس برای ساخت صفحات چند زبانه با php استفاده کنید ولی برای پروژه های بزرگ تر تیمی و تجاری بهتر است از روش localization با poedit و ساخت فایل های po استفاده کنید تا قدرت توسعه پذیری آن به طرز خوبی افزایش پیدا کند.

امیدوارم از آموزش ساخت صفحات چند زبانه با php لذت برده باشید و در پروژه هایی که می نویسید از این روش ها بهره ببرید.

 

برای دانلود سورس کد کامل ساخت صفحات چند زبانه با php همراه با دیتابس از دانلود باکس استفاده کنید

هر سوالی داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید.

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۶)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. 3m ۲۳ تیر ۱۳۹۹

    سلام ببخشید چطور باید این سورس کد ها رو اجرا کنیم
    ممنون

    پاسخ
    1. حسن شفیعی ۲۳ تیر ۱۳۹۹

      سلام.
      در این صفحه
      https://netparadis.com/install-wordpress-on-localhost/
      ویدیو آموزش نصب لوکال هاست قرار داده شده که طبق آن نرم افزار رو دانلود و نصب کنید و بعد سورس رو از باکس دانلود دریافت و کپی و اجرا کنید

      موفق باشید.

      پاسخ
  2. dorgoo ۱ مرداد ۱۳۹۸

    سلام. یه اسکریپت php اشتراک ویدئو دارم که با بوتسرپ و اسمارتی قالبش طراحی شده و از زبان های راست چین و چپ چین پشتیبانی میکنه البته فقط متن ها رو ترجمه می کنه و در هنگام نمایش زبان عربی و انگلیسی همه المان ها و متون چپ چین هستند. حالا اگه بخوایم وقتی زبان مثلا عربی انتخاب شد همه عناصر و المان ها هم راست چین بشن و در هنگام انتخاب انگلیسی چپ چین چکار باید کرد؟
    بوتسترپ راستچین یا افزودن فایل rtl.css ؟ یا باید جایی قطعه کدی ویرایش یا اضافه بشه که با انتخاب نوع زبان rtl یا ltr کل سایت رو راست چین یا چپ چین کنه. با تشکر

    پاسخ
    1. حسن شفیعی ۲ مرداد ۱۳۹۸

      سلام. کار راحتی است و بستگی به نوع کدنویسی این اسکریپت شما دارد و نمیشه گفت باید به چه صورت در کدام فایل یا کد این تغییر را لحاظ کنید.
      موفق باشید.

      پاسخ
      1. dorgoo ۷ مرداد ۱۳۹۸

        ممنون بابت پاسخگویی. واسه شما البته که راحته واسه مایی که از php سر رشته ای نداریم تقریبا غیر ممکنه. اگه دسترسی هاست بدم میتونین یه نگاه به اسکریپته بندازین و اگر امکان داشت یه راهنمایی بکنین؟

        پاسخ
      2. حسن شفیعی ۷ مرداد ۱۳۹۸

        چون از php سر رشته ندارید پس با راهنمایی نمیتونید کاری از پیش ببرید. میتونید تغییرات مورد نیاز رو سفارش بدید براتون انجام بدند.

        پاسخ
دوره های آموزشی