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