HTML Sprachweiterleitung

  • Antworten:19
  • Bentwortet
Marius
  • Forum-Beiträge: 424

19.03.2014, 16:54:21 via App

Hallo zusammen,
ist zwar ein Problem mit HTML, aber weiß hier sicher einer :)
Ich würde gerne, dass wenn man meine Webseite unter name.com/index.html aufruft, die Browsersprache erkannt wird und dann je nach Sprache weitergeleitet wird zu name.com/de/index.html oder bei allen andern zu name.com/en/index.html
Ich hab echt gefühlt das halbe Internet durchsucht, finde aber nichts gescheites. Wobei das ja schon Standard ist. Hoffe jemand weiß das, egal ob PHP, HTML oder JavaScript.
Danke :)

Antworten
Michele
  • Forum-Beiträge: 1.525

19.03.2014, 17:00:39 via Website

Hallo Marius.

Ich würde es so machen.

Gucke dir die Ordner:
values und vaules_de an.

Da setzt du z.B deine Links in die string.xml.
Und je nach Handysprache wird dann der String/Link aufgerufen.

values = english = standard = name.com/en/index.html
values_de = deutsch = name.com/de/index.html


LG

— geändert am 19.03.2014, 17:10:20

Antworten
Haakon T.
  • Forum-Beiträge: 375

19.03.2014, 17:00:41 via Website

Marius
Ich hab echt gefühlt das halbe Internet durchsucht, finde aber nichts gescheites.
Das hier findet sich in der anderen Hälfte des Internets.

impjor

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

19.03.2014, 17:00:41 via Website

Hi,

das machst du über Javascript.

var browserSprache = window.navigator.userLanguage || window.navigator.language;

Grüße Dima

— geändert am 19.03.2014, 17:02:18

impjor

Antworten
Michele
  • Forum-Beiträge: 1.525

19.03.2014, 17:02:44 via Website

Oder so kann man es auch machen.


LG

Antworten
Marius
  • Forum-Beiträge: 424

19.03.2014, 17:40:32 via App

Dietrich Gebert

das machst du über Javascript.

var browserSprache = window.navigator.userLanguage || window.navigator.language;

Danke an alle für die schnellen Antworten.
Bis jetzt hab ich JS nur ungern verwendet :) Könnt auch daran liegen, dass ich es nicht sehr kann. Wo genau kommt dieser Code rein und wo sind denn Pfade zu den Index seiten?

Antworten
Marius
  • Forum-Beiträge: 424

19.03.2014, 17:42:02 via App

Oder gibt es nicht einfach schon fertige Scripts zum einbauen? (Ja, ich bin faul :) )

Sorry, war nicht mit Absicht :D

— geändert am 19.03.2014, 17:47:07

Antworten
Michele
  • Forum-Beiträge: 1.525

19.03.2014, 17:43:39 via Website

Hallo Marius.

Bitte nicht Puschen. :D
Für das nächste mal, bearbeite immer deine vorige Antwort und füge das hinzu.:D


LG

— geändert am 19.03.2014, 17:44:19

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

19.03.2014, 18:35:16 via App

Marius
Oder gibt es nicht einfach schon fertige Scripts zum einbauen? (Ja, ich bin faul :) )

Sorry, war nicht mit Absicht :D
Hi das geht ganz einfach. Das was du machen willst, nennt man eine landing page wenn ich zu Hause bin so in etwa einer Stunde Code ich kurz was für dich und poste es rein.

Achja Michelle, seit wann bist du Mod?

— geändert am 19.03.2014, 18:36:09

Antworten
Marius
  • Forum-Beiträge: 424

19.03.2014, 19:40:43 via App

Das wär echt der Hammer! Danke

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

19.03.2014, 20:09:24 via Website

So bitteschön.
Der Code macht nichts anderes wie beim öffnen der Webseite hollt er sich die
Browsersprache, wenn die Sprache deutsch ist, dann wird androidpit aufgerufen,
ansonsten google.

1<html>
2<head>
3<title>test</title>
4<script type="text/javascript">
5var browserSprache = window.navigator.userLanguage || window.navigator.language;
6if(browserSprache == 'de')
7{
8window.location = 'https://www.nextpit.de';
9}
10else
11{
12window.location = 'http://google.de';
13}
14</script>
15</head>
16
17<body>
18</body>
19</html>

— geändert am 19.03.2014, 20:09:47

Antworten
Marius
  • Forum-Beiträge: 424

19.03.2014, 21:27:10 via App

Perfekt! Danke dir vielmals, hat alles wunderbar geklappt und alles in HTML :) Hab ich das in der Schule richtig verstanden, dass ich in die if-Bedingung noch mehr schreiben kann also noch anderen Sprachbedingungen? Mein Java ist leider noch sehr bescheiden :D
Vielen Dank an alle für die schnelle und gute Hilfe.
Edit: Geht das ganze auch mit Weiterleitung auf Desktop oder Mobil?

— geändert am 19.03.2014, 21:44:30

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

20.03.2014, 09:31:24 via Website

Hi,

ja man kann so viele Bedingungen schreiben wie man will.

Hier mal die Länderkürzel für dich.
http://de.selfhtml.org/diverses/sprachenlaenderkuerzel.htm

Und hier ein paar Beispiele.
1// Wenn Sprache Deutsch oder Englisch ansonsten
2If(sprache == 'de' || sprache == 'en-US')
3{
4//Dein Code
5}
6else
7{
8//Dein Code
9}

1// Wenn Sprache Deutsch und Englisch ansonsten, was in deinem Fall keinen Sinn machen würde,
2//da ein Browser nicht zwei Sprachen gleichzeitig haben kann.
3If(sprache == 'de' && sprache == 'en-US')
4{
5//Dein Code
6}
7else
8{
9//Dein Code
10}

1// Wenn Sprache Deutsch oder Englisch oder Taiwan-Chinesisch ansonsten
2// Bei dieser Schreibweise bestimmst du nach dem Prinziep (entweder oder).
3//Heißt also es kann nur eine Bedingung zutreffen, entweder Deutsch oder Englisch
4//oder Taiwan-Chinesisch oder alle anderen Sprachen.
5
6If(sprache == 'de')
7{
8//Dein Code
9}
10else if(sprache == 'en-US')
11{
12//Dein Code
13}
14else if(sprache == 'zh-TW)
15{
16//Dein Code
17}
18else
19{
20//Dein Code
21}


Bedenke, das else ist optional, du kannst es auch weglassen würde dann so aussehen.

1If(sprache == 'de')
2{
3//Dein Code
4}

Aber in deinem Fall brauchst du das else da du alle anderen Sprachen z.B auf die englische Webseite weiterleiten willst.

Was genau meinst du mit.
"Geht das ganze auch mit Weiterleitung auf Desktop oder Mobil?"

Grüße
Dima

— geändert am 20.03.2014, 09:33:02

Antworten
Gertrud K.
  • Forum-Beiträge: 536

20.03.2014, 10:18:59 via App

Die Unterscheidung zwischen Desktop und Mobil (und Drucker) macht man per CSS.

Java gibt es hier übrigens nicht, nur Javascript. Die beiden haben nichts miteinander zu tun.

— geändert am 20.03.2014, 10:20:47

Antworten
Marius
  • Forum-Beiträge: 424

20.03.2014, 14:14:23 via App

Danke Dima für die ausführlichen Vorschläge.
Ja, ich mein halt, dass alle PCs/Laptops auf die Desktopseite kommen und wenn ein Mobilgerät erkannt wird, wird auf eine angepasste Mobilseite weitergeleitet.
Worin liegt der Unterschied zwischen Java und JavaScript? Außer das das eine ne reine Programmiersprache ist. Aber genau so sieht es grad in der Schule auch bei Java aus mit if/else. Sind noch ganz am Anfang, aber bis jetzt erkenne ich noch keine Unterschiede.

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

20.03.2014, 14:56:12 via Website

Marius
Danke Dima für die ausführlichen Vorschläge.
Ja, ich mein halt, dass alle PCs/Laptops auf die Desktopseite kommen und wenn ein Mobilgerät erkannt wird, wird auf eine angepasste Mobilseite weitergeleitet.
Worin liegt der Unterschied zwischen Java und JavaScript? Außer das das eine ne reine Programmiersprache ist. Aber genau so sieht es grad in der Schule auch bei Java aus mit if/else. Sind noch ganz am Anfang, aber bis jetzt erkenne ich noch keine Unterschiede.

Klar kannst mobile Geräte erkennen.
So sollte es eigentlich funktionieren.
Ist zwar nicht die schönste Lösung, über jQuery könnte man es besser
lösen aber du müsstest dann erstmal jQuery einbinden.

1if( navigator.userAgent.match(/Android/i)
2 || navigator.userAgent.match(/webOS/i)
3 || navigator.userAgent.match(/iPhone/i)
4 || navigator.userAgent.match(/iPad/i)
5 || navigator.userAgent.match(/iPod/i)
6 || navigator.userAgent.match(/BlackBerry/i)
7 || navigator.userAgent.match(/Windows Phone/i)
8 ){
9 // Mobile Webseite aufrufen
10 }
11 else {
12 // Desktop Seite aufrufen
13 }

Achja.
Java ist eine Object Orientierte Programmiersprache die kompiliert werden muss.
Javascript ist eine reine Interpretersprache und wird vom Browser Interpretiert.

Auserdem läuft Javascript Clientseitig und Java Serverseitig.
Man kann auch mit Java Webseiten Programmieren, aber dafür benötigt man speziele Frameworks.

Grüße
Dima

Antworten
Marius
  • Forum-Beiträge: 424

20.03.2014, 18:06:30 via Website

Hallo Dima,
habe mir das jetzt so zusammengebastelt, aber irgendwie funzt das nicht wie es soll :grin:
wenn du den Fehler siehst wäre das echt eine große Hilfe

1<script type="text/javascript">
2
3var browserSprache = window.navigator.userLanguage || window.navigator.language;
4if(browserSprache == 'de')
5 {
6 if( navigator.userAgent.match(/Android/i)
7 navigator.userAgent.match(/webOS/i)
8 navigator.userAgent.match(/iPhone/i)
9 navigator.userAgent.match(/iPad/i)
10 navigator.userAgent.match(/iPod/i)
11 navigator.userAgent.match(/BlackBerry/i)
12 navigator.userAgent.match(/Windows Phone/i))
13 {window.location = 'de/mobile';}
14 else {window.location = 'de';}
15 }
16
17else {
18 if( navigator.userAgent.match(/Android/i)
19 navigator.userAgent.match(/webOS/i)
20 navigator.userAgent.match(/iPhone/i)
21 navigator.userAgent.match(/iPad/i)
22 navigator.userAgent.match(/iPod/i)
23 navigator.userAgent.match(/BlackBerry/i)
24 navigator.userAgent.match(/Windows Phone/i))
25 {window.location = 'en/mobile';}
26 else {window.location = 'en';}
27 }
28
29</script>

Antworten
Dietrich Gebert
  • Forum-Beiträge: 245

20.03.2014, 19:39:59 via Website

Hi,

ja du hast die Pipes vergessen(die vertikalen Striche).

1var browserSprache = window.navigator.userLanguage || window.navigator.language;
2if(browserSprache == 'de')
3 {
4 if( navigator.userAgent.match(/Android/i) ||
5 navigator.userAgent.match(/webOS/i) ||
6 navigator.userAgent.match(/iPhone/i) ||
7 navigator.userAgent.match(/iPad/i) ||
8 navigator.userAgent.match(/iPod/i) ||
9 navigator.userAgent.match(/BlackBerry/i) ||
10 navigator.userAgent.match(/Windows Phone/i))
11 {
12 window.location = 'de/mobile';
13 }
14 else
15 {
16 window.location = 'de';
17 }
18 }
19else {
20 if( navigator.userAgent.match(/Android/i) ||
21 navigator.userAgent.match(/webOS/i) ||
22 navigator.userAgent.match(/iPhone/i) ||
23 navigator.userAgent.match(/iPad/i) ||
24 navigator.userAgent.match(/iPod/i) ||
25 navigator.userAgent.match(/BlackBerry/i) ||
26 navigator.userAgent.match(/Windows Phone/i))
27 {window.location = 'en/mobile';}
28 else {window.location = 'en';}
29 }

Antworten
Marius
  • Forum-Beiträge: 424

21.03.2014, 17:20:25 via App

Habs jetzt so eingebaut. Wenn ich übers Smartphone die Website aufrufe, stimmt alles und ich kann auch auf Desktop umschalten, aber am Laptop werde ich auf die Englische Version geleitet, trotz dass die Browser auf Deutsch sind. Kann es sein, dass das Script keine Sprache findet und dann eben auf else umsteigt? Bei Google Analytic wird jedenfalls auch nur ein deutscher Besucher angezeigt.

— geändert am 21.03.2014, 17:22:48

Antworten