2016-06-13 10 views
1

Ich arbeite derzeit an einer Navigationsleiste mit einer Schaltfläche, mit der Sie die Sprache der Seite ändern können.Multilangual Website - Holen Sie sich bestimmte URL Teil und verwenden Sie dies um die URL zu ändern - JQuery

Zunächst einmal, ich habe zwei Unterverzeichnisse für jede Sprachversion der Website:

[...]/en/*.html 
[...]/nl/*.html 

Mit * .html in dem Unterverzeichnis für jede Seite steht

ich die gleiche bin mit Navigationsleiste auf jeder Seite, so ist meine Frage: Wie kann ich den mittleren Teil der URL mit jquery/js tauschen?

Wenn es mit Jquery/js nicht möglich ist, wie kann ich dies ohne Jquery/js erreichen?

Zur Zeit habe ich nur die URL in einer Variablen gespeichert, es zu benutzen:

var pathname = window.location.pathname; 

die Ausgänge /en/home.html (zum Beispiel)

Der einfachste Weg, denke ich, ist das bekommen/en/Teil von der Variablen, speichern Sie eine andere Variable und tauschen Sie den aktuellen Teil mit der anderen Sprache. Ich weiß, dass es da draußen eine Menge ähnlicher Fragen gibt, aber ich kann keine Antwort auf meine Verwendung finden.

-Code Anforderungen:
- Needs zu überprüfen, ob es auf der En oder Nl Version ist.
- Ändern Sie die URL in das andere Verzeichnis mit intaktem * .html.

Antwort

1

Wenn Sie möchten, dass Ihre derzeitige Struktur halten, können Sie einfach überprüfen, ob Strompfad NL oder EN und der Schalter für das andere wie folgt aus:

var pathname = window.location.pathname; //Your page path 
var page = pathname.slice(4); //The page name 

if (pathname.indexOf("/nl/") >= 0){ //if current page is NL send to EN 
    window.location.href = '../en/'+page; 
} 
else{ //if current page is NOT NL send to NL 
    window.location.href = '../nl/'+page; 
} 
+0

Es funktionierte, aber könnten Sie den 'Pfad erklären .slice (4) '? so kann ich für die weitere Verwendung verstehen. (Ich weiß über die '.slice()', aber was ist mit den 4 innen?) –

+0

Grundsätzlich '.slice()' entfernt die _x_ Menge an Zeichen einer Zeichenfolge von Anfang an. In diesem Fall _4_. Das bedeutet, dass die Variable 'page' nur der Seitenname ohne'/en/'oder'/nl/'nach I' pfadname.slice (4) 'ist;' – GaijinJim

+0

Eigentlich ziemlich offensichtlich und ich fand die Erklärung in der API-Dokumentation . Ich sollte wirklich darüber nachdenken, es mehr zu verwenden. –