diff --git a/app/Http/Middleware/Language.php b/app/Http/Middleware/Language.php new file mode 100644 index 00000000..0ab67ba1 --- /dev/null +++ b/app/Http/Middleware/Language.php @@ -0,0 +1,29 @@ +has('locale') AND array_key_exists(Session()->get('locale'), LanguageRepo::all()->where('status', true)->pluck('code'))) { + App::setLocale(Session()->get('locale')); + } + else { // This is optional as Laravel will automatically set the fallback language if there is none specified + App::setLocale(system_setting('base.locale')); + } + return $next($request); + } +} diff --git a/beike/Shop/Http/Controllers/LanguageController.php b/beike/Shop/Http/Controllers/LanguageController.php new file mode 100644 index 00000000..0dce85a0 --- /dev/null +++ b/beike/Shop/Http/Controllers/LanguageController.php @@ -0,0 +1,25 @@ + + * @created 2022-07-28 16:21:14 + * @modified 2022-07-28 16:21:14 + */ + +namespace Beike\Shop\Http\Controllers; + +use Beike\Repositories\LanguageRepo; + +class LanguageController extends Controller +{ + public function index($lang) + { + if (array_key_exists($lang, LanguageRepo::all()->where('status', true)->pluck('code'))) { + Session::put('locale', $lang); + } + return Redirect::back(); + } +} diff --git a/beike/Shop/Routes/shop.php b/beike/Shop/Routes/shop.php index 08b09a23..3967104c 100644 --- a/beike/Shop/Routes/shop.php +++ b/beike/Shop/Routes/shop.php @@ -3,6 +3,8 @@ use Beike\Models\Customer; use Beike\Shop\Http\Controllers\Account\WishlistController; use Beike\Shop\Http\Controllers\BrandController; +use Beike\Shop\Http\Controllers\CurrencyController; +use Beike\Shop\Http\Controllers\LanguageController; use Illuminate\Support\Facades\Route; use Beike\Shop\Http\Controllers\ZoneController; use Beike\Shop\Http\Controllers\CartController; @@ -41,10 +43,14 @@ Route::prefix('/') Route::get('countries/{id}/zones', [ZoneController::class, 'index'])->name('countries.zones.index'); + Route::get('currency/{currency}', [CurrencyController::class, 'index'])->name('currency.switch'); + Route::get('forgotten', [ForgottenController::class, 'index'])->name('forgotten.index'); Route::post('forgotten/send_code', [ForgottenController::class, 'sendVerifyCode'])->name('forgotten.send_code'); Route::post('forgotten/password', [ForgottenController::class, 'changePassword'])->name('forgotten.password'); + Route::get('lang/{lang}', [LanguageController::class, 'index'])->name('lang.switch'); + Route::get('login', [LoginController::class, 'index'])->name('login.index'); Route::post('login', [LoginController::class, 'store'])->name('login.store'); Route::get('logout', [LogoutController::class, 'index'])->name('logout');