Browse Source
Added lang switcher on top nav
Added lang switcher on top nav
Save lang selection to session with middlware Restructure navbar on app layout to nav partialpull/3/head
7 changed files with 110 additions and 64 deletions
-
1app/Http/Kernel.php
-
24app/Http/Middleware/Lang.php
-
5resources/lang/en/app.php
-
5resources/lang/id/app.php
-
62resources/views/layouts/app.blade.php
-
59resources/views/layouts/partials/nav.blade.php
-
18resources/views/users/search.blade.php
@ -0,0 +1,24 @@ |
|||
<?php |
|||
|
|||
namespace App\Http\Middleware; |
|||
|
|||
use Closure; |
|||
|
|||
class Lang |
|||
{ |
|||
/** |
|||
* Handle an incoming request. |
|||
* |
|||
* @param \Illuminate\Http\Request $request |
|||
* @param \Closure $next |
|||
* @return mixed |
|||
*/ |
|||
public function handle($request, Closure $next) |
|||
{ |
|||
app()->setLocale(request('lang', session('lang'))); |
|||
if (request('lang')) { |
|||
session(['lang' => request('lang')]); |
|||
} |
|||
return $next($request); |
|||
} |
|||
} |
|||
@ -0,0 +1,59 @@ |
|||
<nav class="navbar navbar-default navbar-static-top"> |
|||
<div class="container"> |
|||
<div class="navbar-header"> |
|||
|
|||
<!-- Collapsed Hamburger --> |
|||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#app-navbar-collapse"> |
|||
<span class="sr-only">Toggle Navigation</span> |
|||
<span class="icon-bar"></span> |
|||
<span class="icon-bar"></span> |
|||
<span class="icon-bar"></span> |
|||
</button> |
|||
|
|||
<!-- Branding Image --> |
|||
<a class="navbar-brand" href="{{ url('/') }}"> |
|||
{{ config('app.name', 'Laravel') }} |
|||
</a> |
|||
</div> |
|||
|
|||
<div class="collapse navbar-collapse" id="app-navbar-collapse"> |
|||
<!-- Left Side Of Navbar --> |
|||
<ul class="nav navbar-nav"> |
|||
<li><a href="{{ route('users.search') }}">{{ trans('app.search_your_family') }}</a></li> |
|||
</ul> |
|||
|
|||
<!-- Right Side Of Navbar --> |
|||
<ul class="nav navbar-nav navbar-right"> |
|||
<!-- Authentication Links --> |
|||
<?php $mark = (preg_match('/\?/', url()->current())) ? '&' : '?'; ?>
|
|||
<li><a href="{{ url(url()->current() . $mark . 'lang=en') }}">en</a></li> |
|||
<li><a href="{{ url(url()->current() . $mark . 'lang=id') }}">id</a></li> |
|||
@if (Auth::guest()) |
|||
<li><a href="{{ route('login') }}">Login</a></li> |
|||
<li><a href="{{ route('register') }}">Register</a></li> |
|||
@else |
|||
<li class="dropdown"> |
|||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> |
|||
{{ Auth::user()->name }} <span class="caret"></span> |
|||
</a> |
|||
|
|||
<ul class="dropdown-menu" role="menu"> |
|||
<li><a href="{{ route('profile') }}">{{ trans('app.my_profile') }}</a></li> |
|||
<li> |
|||
<a href="{{ route('logout') }}" |
|||
onclick="event.preventDefault();
|
|||
document.getElementById('logout-form').submit();">
|
|||
Logout |
|||
</a> |
|||
|
|||
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> |
|||
{{ csrf_field() }} |
|||
</form> |
|||
</li> |
|||
</ul> |
|||
</li> |
|||
@endif |
|||
</ul> |
|||
</div> |
|||
</div> |
|||
</nav> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue