安装引导程序语言切换
This commit is contained in:
parent
7d40d7e6e0
commit
52fd9ce208
|
|
@ -54,7 +54,7 @@ class Kernel extends HttpKernel
|
|||
'installer' => [
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
\App\Http\Middleware\SetLocaleFromSession::class,
|
||||
\App\Http\Middleware\SetLocaleInstaller::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
],
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\App;
|
||||
|
||||
class SetLocaleInstaller
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$sessionLocale = session('locale');
|
||||
$languageDir = base_path('beike/Installer/Lang');
|
||||
$languages = array_values(array_diff(scandir($languageDir), array('..', '.')));
|
||||
|
||||
if ($sessionLocale && in_array($sessionLocale, $languages)) {
|
||||
App::setLocale($sessionLocale);
|
||||
} else {
|
||||
session(['locale' => 'en']);
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
|
|
@ -24,14 +24,22 @@ class WelcomeController extends Controller
|
|||
exit('Already installed');
|
||||
}
|
||||
|
||||
$data['languages'] = LanguageRepo::enabled();
|
||||
$languageDir = base_path('beike/Installer/Lang');
|
||||
$packages = array_values(array_diff(scandir($languageDir), array('..', '.')));
|
||||
$Languages = collect($packages)->filter(function ($package) {
|
||||
return file_exists(base_path("beike/Installer/Lang/{$package}"));
|
||||
})->toArray();
|
||||
$data['languages'] = array_values($Languages);
|
||||
$data['steps'] = 1;
|
||||
|
||||
return view('installer::welcome', $data);
|
||||
}
|
||||
|
||||
public function locale($lang)
|
||||
{
|
||||
if (in_array($lang, languages()->toArray())) {
|
||||
$languageDir = base_path('beike/Installer/Lang');
|
||||
$packages = array_values(array_diff(scandir($languageDir), array('..', '.')));
|
||||
if (in_array($lang, $packages)) {
|
||||
Session::put('locale', $lang);
|
||||
}
|
||||
return Redirect::back();
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ Route::prefix('installer')
|
|||
->middleware(['installer'])
|
||||
->group(function () {
|
||||
Route::get('/', [WelcomeController::class, 'index'])->name('welcome');
|
||||
Route::get('lang/{lang}', [WelcomeController::class, 'index'])->name('lang.switch');
|
||||
Route::get('lang/{lang}', [WelcomeController::class, 'locale'])->name('lang.switch');
|
||||
Route::get('requirements', [RequirementsController::class, 'index'])->name('requirements');
|
||||
Route::get('permissions', [PermissionsController::class, 'index'])->name('permissions');
|
||||
Route::get('environment', [EnvironmentController::class, 'index'])->name('environment');
|
||||
|
|
|
|||
Loading…
Reference in New Issue