2017-01-19 2 views
1

Ich verwende dieses Paket - https://github.com/mcamara/laravel-localization für die Lokalisierung. Und es funktioniert gut, wenn ich die URL manuell zu/en,/de usw. ändere ... Aber ist es möglich, URL zu ändern, wenn (html) Option ausgewählt ist. Zum Beispiel möchte ich dies mit meiner Navigationsleiste hinzuzufügen:Ändern Sie die Sprache (URL) mit der Option

<form action = "somePage" method = "POST"> 
    <select> 
     <option value = "en">English</option> 
     <option value = "de">Deutsch</option> 
         ... 
    </select> 
</form> 

Gibt es eine Option in Laravel hinzufügen „Wert“ auf den String?

EDIT

Mit diesem Code, ändert es URL, aber ich will einfach ersetzen zu/en und/en. Zum Beispiel ändert es http://localhost:8000/en/home zu http://localhost:8000/en ... Ich will es auf der gleichen Seite bleiben, nur um die Sprache zu ändern. Beispiel: http://localhost:8000/en/profile zu http://localhost/de/profile

<select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);"> 
<option value="">Select...</option> 
<option value={{ url('/en') }}>English</option> 
<option value="{{ url('/de') }}">Deutsch</option> 

+0

Führen Sie eine Umleitung auf "klicken" auf die richtige URL (mit dem richtigen Gebietsschema vor). – devk

+0

Aber wie wird dieses URL-Präfix beibehalten, wenn auf etwas anderes geklickt wird? Zum Beispiel, wenn Benutzer auf mein Profil klickt, und vorher wählte er/sie deutsche Sprache ... In diesem Paket ist in der Middleware definiert, dass es automatisch das URL-Präfix entsprechend dem 'locale'-Wert in config/app.php – harunB10

+1

hinzufügt das gleiche Paket in einem meiner Projekte. Haben Sie Ihre Routen so eingerichtet: http://pastebin.com/caK3GSpm Dies ist von meinem Projekt kopiert und es funktioniert gut für mich. Wenn ich an/en bin, sind alle Links (mit route()) korrekt und Sprache ist auch. – devk

Antwort

1

Sie so etwas wie dieses.

<form id="selectbox" name="" onchange="javascript:location.href = this.value;"> 
    <select> 
     <option value={{ url('/de') }}>Deutsch</option> 
     <option value={{ url('/en') }}>English</option> 
    </select> 
</form> 

refered I this und this Post für meine Antwort.

+0

Es schaltet http ::/localhost: 8000/de/home zu http ::/localnost: 8000/de/undefined – harunB10

+0

Ich habe meine Frage bearbeitet. Deine Antwort hat mir geholfen, aber immer noch nicht, was ich brauche. :/ – harunB10

+0

hast du es als '{{url ('/ de/home')}}' – Gayan

0

Es funktioniert jetzt. Thx everyone ...

<script type="text/javascript"> 
    $('#changeLang').change(function (e) { 
     var locAppend = $(this).find('option:selected').val(), 
      locSnip = window.location.href.split('/')[4]; 
     console.log(window.location.href = locAppend + "/" + locSnip) 
     //window.location.href = locAppend + locSnip; 
    }); 
</script> 
Verwandte Themen