سلام دوستان
من دارم یک سایت دوزبانه ایجاد میکنم مشکلی که دارم اینکه یک دکمه درست کردم برای تغییر زبان ولی کار نمیکنه
کد view
@if (app()->getLocale()=='fa')
<form action="{{route('lang.en')}}" method="get">
<button class="btn
btn-success font-14">English</button>
</form>
@else
<form action="{{route('lang.fa')}}" method="get">
<button class="btn btn-primary font-14">فارسی</button>
</form>
@endif
کد Route
Route::get('/lang-fa', 'BlogController@langFa')->name('lang.fa');
Route::get('/lang-en', 'BlogController@langEn')->name('lang.en');
کد Controller
public function langFa()
{
App::setLocale('fa');
return redirect()->back();
}
public function langEn()
{ App::setLocale('en');
return redirect()->back();
}
سلام تو بلید من از این کد استفاده کرده بودم پیدا کردم گذاشتم گفتم شاید به کارتون بیاد:
<div class="languages">
<select class="form-control badge-light" onchange="location=this.value">
<option value="/en" {{ app()->getLocale()=='en'? 'selected' :'' }}>EN</option>
<option value="/fa" {{ app()->getLocale()=='fa'? 'selected' :'' }}>FA</option>
</select>
</div>
این هلیپر فاکشن رو از کجا اوردی؟! تویی blade میشه استفاده کرد؟!!
app()->getLocale()
من معمولا از سمت کنترلر زبان رو میریزم تویی یک متغییر یا سشن بعدش تویی ویو ازش استفاده میکنم
session()->put('locale', $locale);
یک راهنمایی شما وقتی داری از Localization لاراول استفاده میکنی نیازی نیست تویی view اینجور کد بزنی
طبق مستندات لاراول شما میتونی برای هر زبان یک فایل php با اطلاعات بازگشتی جیسون بسازی و استفاده بکنی (نمونه اش بصورت پیش فرض هست برای en که فایل های auth.php, pagination.php, passwords.php, validation.php هستند خودتون هم میتونین بسازین)
/resources
/lang
/en
messages.php
/fa
messages.php
فایل messages.php
?php
// resources/lang/en/messages.php
return [
'btnEng' => 'English'
];
که تویی روت وقتی کاربر زبانش رو انتخاب کرده
Route::get('welcome/{locale}', function ($locale) {
App::setLocale($locale);
//
});
براش setLocale رو ست میکنی و جیسون رو طبق زبان دریافت میکنی
<button class="btn btn-primary font-14">@lang('messages.btnEng')</button>
سلام تو بلید من از این کد استفاده کرده بودم پیدا کردم گذاشتم گفتم شاید به کارتون بیاد:
<div class="languages">
<select class="form-control badge-light" onchange="location=this.value">
<option value="/en" {{ app()->getLocale()=='en'? 'selected' :'' }}>EN</option>
<option value="/fa" {{ app()->getLocale()=='fa'? 'selected' :'' }}>FA</option>
</select>
</div>
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟