نوب
4 سال پیش توسط نوب مطرح شد
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
@mohsenbostan 4 سال پیش مطرح شد
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.bayat 4 سال پیش مطرح شد
0

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


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

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


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش آپدیت شد
0

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


نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
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 که بودم و انگلیسی بشه دیگه


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

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

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