Я сделал эту локализацию раньше в другом проекте, но этот проект я изменил в промежуточном программном обеспечении администратора, чтобы сделать разрешения для пользователей на панели управления. этот проект предназначен для двух языков: арабского и английского. Он отлично работает в админке веб-сайта, но в админке я не знаю, в чем проблема в моем коде.
сейчас локализация не работает
это мой маршрут:
Route::namespace('admin')->group(function (){
Route::group(['middleware'=> ['web','admin']], function (){
Route::prefix('admin-123')->group(function (){
Route::get('locale/{locale}', function ($locale){
\Illuminate\Support\Facades\Session::put('locale', $locale);
return redirect()->back();
});
и это мое промежуточное ПО:
<?php
namespace App\Http\Middleware;
use App\user_permission_group;
use Closure;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\DB;
use \Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Auth;
class admin
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!auth()->check()){
return redirect('login');
}
if(Auth::user()->admin > 2)
{
return redirect('/');
}
$url = Request::fullUrl();
$lang = explode('admin-123/locale/', $url);
// dd($lang[1]);
if (isset($lang[1]) && $lang[1] !='')
{
App::setLocale($lang[1]);
// Session::put('locale', $lang[1]);
}
$admin = explode('admin-123', $url);
$permission = explode('/', $admin[1]);
if (isset($permission[1]) && $permission[1] !='' && $permission[1] != 'locale')
{
if (Request::is('admin-123/' . $permission[1] .'/*')) {
$permissions = DB::table('permission_group_details')->select('group_id')->where('permission', $permission[1])->get();
if ($permissions->count() > 0)
{
foreach ($permissions as $per)
{
$gr_id[] = $per->group_id;
}
$grid = collect($gr_id);
$users = user_permission_group::where('user_id', Auth::user()->id)->whereIn('group_id', $grid)->first();
if (!isset($users)){ return redirect()->back(); }
$permission_route = DB::table('permission_group_details')->select('permission')->where('group_id' , $users->group_id)->first();
if (!isset($permission_route) && $permission_route =='')
{
return redirect()->back();
}
}
else{
return redirect()->back();
}
}
}
return $next($request);
}
}
а это мой клинок:
@if(\Illuminate\Support\Facades\App::isLocale('en'))
@php
$lang = 'English';
$pull_right = '';
$pull_left = 'pull-right';
$rtl ='';
$title = 'title';
$currency = 'EGP';
$pull = 'pull-left';
@endphp
@else
@php
$lang = 'العربية';
$pull_right = 'pull-right';
$pull_left = 'pull-left';
$rtl ='rtl';
$title = 'title_ar';
$currency = 'جنيه';
$pull = 'pull-right';
@endphp
@endif
<li class="dropdown dropdown-small">
<a href="#" class="dropdown-toggle" data-hover="dropdown" data-toggle="dropdown"><span class="value">{{ $lang }} </span><b class="caret"></b></a>
<ul class="dropdown-menu" style="padding: 0.5rem 1.5rem !important; margin: 0.125rem 5px 0 !important;">
<li><a href="{{ url('admin-123/locale/en') }}">English</a></li>
<li><a href="{{ url('admin-123/locale/ar') }}">العربية</a></li>
</ul>
</li>
помогите пожалуйста .. спасибо за все