راکت
نوب
نوب
توسط نوب مطرح شد
6 پاسخ

کار نکردن 2 زبانه در لاراول 7

سلام دوستان
من دارم یه پروژه دو زبانه مینویسم ولی کار نمیکنه . کدهامو میزارم لطفا راهنمایی کنین

اول از همه از پوشه 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 میزنم زبان انگلیسیم اعمال نمیشه ولی ریدایرکت کنترلرم عمل میکنه


ثبت پرسش جدید
محسن بستان
محسن بستان
تخصص :Senior Backend Developer
@mohsenbostan6 سال پیشمطرح شد
0

@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();
    }

علی بیات
علی بیات
تخصص :توسعه دهنده ارشد وب
@ali.bayat6 سال پیشمطرح شد
0

همونطور که دوستمون اشاره کردند باید کش رو پاک کنید


نوب
نوب
تخصص :کدنویس نوب :)
@yk5742g6 سال پیشمطرح شد
0

@mohsenbostan
با این کدهایی که دادید وقتی en را صدا میزنم کلا میره تو localhost و از پروژه خارج میشه


محسن بستان
محسن بستان
تخصص :Senior Backend Developer
@mohsenbostan6 سال پیشمطرح شد
0

@yk5742g
به خاطر اینه که داخل env آدرس پروژه رو درست مشخص نکردید.


نوب
نوب
تخصص :کدنویس نوب :)
@yk5742g6 سال پیشمطرح شد
0

@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 که بودم و انگلیسی بشه دیگه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام