سلام دوستان
من دارم یه پروژه دو زبانه مینویسم ولی کار نمیکنه . کدهامو میزارم لطفا راهنمایی کنین
اول از همه از پوشه en توی lang یه کپی گرفتم و اسمشو کردم fa
ترجمه هامو توش انجام دادم بر اساس قواعد خود لاراول
توی فایل config/app.php به اینصورت عمل کردم
'locale' => 'fa',
'fallback_locale' => 'en',
یه controller هم ساختم به اینصورت
<?php
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 ساختم به اینصورت
Route::get('en','LangController@en')->name('en');
Route::get('fa','LangController@fa')->name('fa');
حالا متون را به اینصورت توی view ها نمایش میدم
{{ __('auth.Register') }}
حالا مشکل اینه که توی آدرس بار سایت هرچی en میزنم زبان انگلیسیم اعمال نمیشه ولی ریدایرکت کنترلرم عمل میکنه
@yk5742g
سلام.
در لاراول کانفیگ ها کش میشن، به خاطر همین هست که تغییرات اعمال نمیشه. شما باید کش رو بعد از هر تغییری پاک کنید.
متد هاتون رو به صورت زیر آپدیت کنید :
public function en(){ // زبان انگلیسی
App::setLocale('en');
Artisan::call('config:clear');
Artisan::call('config:cache');
return redirect()->back();
}
public function fa(){ //زبان فارسی
App::setLocale('fa');
Artisan::call('config:clear');
Artisan::call('config:cache');
return redirect()->back();
}
@mohsenbostan
با این کدهایی که دادید وقتی en را صدا میزنم کلا میره تو localhost و از پروژه خارج میشه
@mohsenbostan سلام محسن جان
اینجوری زدم دیگه
APP_URL=http://127.0.0.1:8000
ولی وقتی مثلا توی لینک زیر هستم
http://127.0.0.1:8000/login
و فعلا به صورت دستی میزنم
http://127.0.0.1:8000/en
برمیگرده دوباره به صفحه اصلی پروژه ولی زبان انگلیسی نمیشه . در صورتی که وقتی en را صدا میزنم قاعدتا باید برگرده توی همون login که بودم و انگلیسی بشه دیگه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟