سایت چند زبانه با لاراول

سایت چند زبانه با لاراول

دسته : فریم ورک لاراول

کد محصول : 74

قیمت : رایگان

ایجاد سایت چند زبانه با لاراول یا laravel multi language ؟ با یک آموزش دیگر از فریم ورک قدرتمند لاراول در خدمت شما دوستان عزیز هستیم. در اغلب پروژه ها نیازمند پیاده سازی چند زبان مختلف برای پروژه خود داریم مثلا کارفرما درخواست زبان های فارسی، انگلیسی، عربی، آلمانی و ... را دارد که بدون مشکل و سریعا کل زبان سایت تغییر کند خوشبختانه در لاراول یک سری امکانات خوب وجود دارد برای تغییر زبان یا انتخاب زبان پیش فرض که به ما کمک می کند با کمی خلاقیت چند زبانه بودن سایت را به راحتی پیاده سازی کنیم این کار به دو روش می تواند انجام شود...


ایجاد سایت چند زبانه با لاراول یا laravel multi language ؟ با یک آموزش دیگر از فریم ورک قدرتمند لاراول در خدمت شما دوستان عزیز هستیم. در اغلب پروژه ها نیازمند پیاده سازی چند زبان مختلف برای پروژه خود داریم مثلا کارفرما درخواست زبان های فارسی، انگلیسی، عربی، آلمانی و ... را دارد که بدون مشکل و سریعا کل زبان سایت تغییر کند خوشبختانه در لاراول یک سری امکانات خوب وجود دارد برای تغییر زبان یا انتخاب زبان پیش فرض که به ما کمک می کند با کمی خلاقیت چند زبانه بودن سایت را به راحتی پیاده سازی کنیم این کار به دو روش می تواند انجام شود 

  • استفاده از پوشه lang در مسیر resource با آرایه های php
  • استفاده از پوشه lang در مسیر resource با آرایه های json

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

تنظیم زبان فارسی در لاراول بعنوان زبان پیش فرض

در مسیر اصلی پروژه فایل config/app.php را باز کنید و خطوط زیر را تغییر دهید

'locale' => 'fa', // زبان پیش فرض فارسی 
'fallback_locale' => 'en', //زبان دوم در صورت یافت نشدن زبان اول
'timezone' => 'Asia/Tehran', // منطقه زمانی برای ایران

 

ایجاد فایل های زبان های مختلف در لاراول

سپس از پوشه en در مسیر resource/lang یکی کپی با اسم fa ایجاد می کنیم و تمام فایل های داخل این پوشه را به فارسی ترجمه می کنیم خود لاراول پوشه fa را بعنوان زبان پیش فرض در نظر می گیرد چون در فایل config این تنظیمات را انجام دادیم. به صورت اتوماتیک نوشته های validation لاراول به زبان فارسی که ما درست کردیم ارجاع داده می شود.

شما می توانید فایل های بیشتری از روی یکی از فایل های موجود در پوشه fa درست کنید با اسم های متناسب با صفحه یا قسمت مورد نظر خود، به مثال ذیل توجه کنید فایلی با اسم container.php در مسیر یاد شده ایجاد کردیم

return [
   'System' => 'سیستم',
   'President' => 'مدیریت',
   'User' => 'کاربران',
   'text' => 'مطالب',
   'Calendar' => 'تقویم کاری',
  'Survey' => 'نظرسنجی ها',
   'Test' => 'آزمون ها',
];

 

برای استفاده از این ترجمه در هر جایی (blade , controller , model) می توانید به روش ذیل اقدام کنید

مثال در blade

{{ __('container.Calendar') }} 

مثال در داخل controller 

$title=__('container.Calendar');

 

تغییر زبان به صورت داینامیک در لاراول

با این کد شما می توانید زبان پیش فرض را تغییر دهید به یک زبان دیگر ، مثلا اگر زبان فارسی بود الان با کد زیر به انگلیسی تغییر می کند

App::setLocale('en');

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

App::getLocale();

اگر بخواهیم این قسمت را به صورت اتوماتیک توسط انتخاب کاربر سایت تغییر دهیم مراحل ذیل را انجام می دهیم

  • ساخت یک کنترلر با نام دلخواه (اینجا من LangController انتخاب کردم) و دوتا تابع به اسم en برای ست کردن زبان انگلیسی و fa برای زبان فارسی ساختم
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
class LangController extends Controller {
  public function en(){ // زبان انگلیسی
  App::setLocale('en');       
  return redirect()->back();
  }     
  public function fa(){  //زبان فارسی    
  App::setLocale('fa');
  return redirect()->back();
  }
}

 

  • ایجاد مسیر برای تغییر زبان Route در فایل web.php
Route::get('en','LangController@en')->name('en');    
Route::get('fa','LangController@fa')->name('fa');

 

این ساده ترین روش ممکن بود برای ساخت یک سایت چند زبانه با لاراول ولی چند نکته رو باید مد نظر قرار بدید که احتمالا هر سایتی شاید در دیتابیس در جدول مورد نظرشون امکان پست گذاری برای زبان های مختلف رو داشته باشند مثلا یک فیلد language داشته باشد که برابر با fa یا en باشد در هر کنترلری شما با کد ذیل می توانید مشخص کنید که زبان فعلی کدام است و کوئری خودتون رو براساس همین مقدار از دیتابیس واکشی کنید.

$lang=App::getLocale();
$query=Post::where('language',$lang)->get();

 

به همین راحتی می تونید یک سایت چند زبانه حرفه ای با لاراول درست کنید!!! لطفا سوالات خودتون رو در بخش پرسش و پاسخ بپرسید و این مطلب را با دیگران به اشتراک بگذارید.

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

کاربر behzadamin
1 ماه پیش

سلام خدمت شما دوست عزیز

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

کاربر synfatyma
1 ماه پیش

اگر چند زبانه بخوایم بکنیم چی؟

میشه با این روش؟

من تازه کارم برا همین می پرسم

 

کاربر synfatyma
1 ماه پیش

ممنون از شما


ثبت سوال/پاسخ
بهزاد میرزازاده
در مورد کاربر : همیشه سخت تلاش کردم و به موفقیت های خیلی زیادی رسیدم اما دلیل نشد که متوقف بشم من برای هر روز برنامه دارم و به امید موفقیت های بزرگتر قدم بر میدارم همیشه سخت ترین مسئله ها، ساده ترین راه حل رو دارند پس بهانه جویی نباید روش کار ما برنامه نویسان باشه!!! ما می توانیم آینده را تعیین کنیم
اشتراک گذاری این مطلب
{