Browserweiche nach Sprache

nonow schrieb am 14.01.2018 um 13:49 Uhr

Hi,

ich habe eine zweisprachige Website. Daher habe ich auf jeder Seite kleine Flaggen, die einen Wechsel zwischen deutschsprachiger und englischsprachiger Seite ermöglichen. Die deutschsprachige Seite befindet sich in dem Unterordner "de". Wenn der User die Startseite aufruft, soll er, wenn seine Browsersprache deutsch ist, auf die deutschsprachige Seite umgeleitet werden. Dies klappt mit folgender .htaccess-Datei:

RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R]

Nun läuft bei Magix leider alles über die index.htm. Ich habe nun den Effekt, dass wenn man von einer beliebigen HTML-Seite aus eine Flagge klickt, um die anderssprachige Seite zu erreichen, man wieder automatisch zurückgeleitet wird. Der User kann also nicht mehr frei entscheiden, welche Sprachversion er benutzen möchte.

Wie kann ich das ändern?

Vielen Dank und viele Grüße
nonow

PS: Ich habe auch mit verschiedenen Javascript-Versionen versucht eine Sprachweiche einzustellen, aber sie funktionierten alle nicht und bekanntlich kann der User in seinem Browser Javascript deaktivieren.

Kommentare

BeRo schrieb am 14.01.2018 um 20:21 Uhr

[...] wenn man von einer beliebigen HTML-Seite aus eine Flagge klickt, um die anderssprachige Seite zu erreichen, man wieder automatisch zurückgeleitet wird.[...]

Das kann nur von Dir so "verdrahtet" sein. Der WD generiert keinen HTML Code, der das automatisch macht...

Wenn Du 2 separate Sprachversionen online stellst, kannst Du von jeder Seite einer Sprache problemlos auf die entsprechende Seite der anderen Sprache verlinken, ohne dass der User zwangsweise "zurück geschickt" wird.
Es sind keinerlei Tricks nötig, um das so einzustellen.

Was also hast Du gemacht, dass die Besucher Deiner Site nicht auf der gewählten Sprachversion weiter surfen können?

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

nonow schrieb am 15.01.2018 um 10:20 Uhr

Hi Bero,

die Flaggenlinks funktionieren korrekt, wenn ich keine Browserweiche per htaccess oder Javascript einstelle. Am Wochenende ist es mir gelungen auch mit Javascript eine Browserweiche hinzubekommen. Ich habe den Code in der Indexseite über das Menü "Webeigenschaften/Seite/HTML-Code (head)" eingegeben. Klicke ich anschließend von der deutschsprachigen Seite auf die englische Flagge gelange ich nicht zur englischen Version, sondern komme zur deutschen Startseite. Nehme ich den Javascript-Code oder die htaccess-Datei wieder heraus, funktionieren die Links wieder korrekt.

Ich schätze, das kann daran liegen, dass bei Magix alles über die Index-Seite und mit den Ankern (#) läuft.

Viele Grüße
nonow

BeRo schrieb am 15.01.2018 um 11:15 Uhr

[...] Ich schätze, das kann daran liegen, dass bei Magix alles über die Index-Seite und mit den Ankern (#) läuft. [...]

Die Konstruktion Deiner 2-sprachigen Seite ist mir nicht so richtig klar geworden. Wenn Du aber beide Sprachen gemeinsam auf einer one Page Site hast, sind Probleme beim Umschalten nur schwer zu vermeiden.
In dem Fall wäre eine komplette Trennung der Sprachen sinnvoll. Du müsstest dann je einen one Pager für jede Sprache anlegen...

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓

nonow schrieb am 15.01.2018 um 11:25 Uhr

Hi Bero,

ich habe mit Magix zwei Projekte angelegt, für jede Sprache ein Projekt. Die en-Version kommt ins Hauptverzeichnis. Die de-Version kopiere ich in den Unterordner "de". Die Weiterleitungen leiten mit deutscher Sprache eingestellte Browser auf das de-Verzeichnis weiter:

htaccess-Datei:
RewriteEngine on
RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ /de/ [L,R]

Javascript:
<script type="text/javascript">
var Destination = new Array();

Destination["de"] = "http://www.domain.de/de/#xl_xr_page_index";

var DefaultDestination = "http://www.domain.de/#xl_xr_page_index";

var lang = navigator.language ? navigator.language :
           navigator.browserlanguage ? navigator.browserlanguage :
           navigator.systemLanguage ? navigator.systemLanguage :
           navigator.userLanguage ? navigator.userLanguage :
           '---';
lang = lang.toLowerCase();
var dest = new String();
for( var t in Destination ) {
   if( t == lang ) {
      dest = Destination[t];
      break;
      }
   }
if( dest.length == 0 ) {
   lang = lang.substr(0,2);
   for( var t in Destination ) {
      if( t == lang ) {
         dest = Destination[t];
         break;
         }
      }
   }
if( dest.length == 0 ) { dest = DefaultDestination; }
if( dest.length > 0 ) { location.href = dest; }
</script>

Dennoch gibt es Probleme.

Gruß
nonow

 

marboe schrieb am 15.01.2018 um 12:48 Uhr

Also bei mir funktioniert alles wie gewünscht. Ich nutze den neuesten Firefox.

Ich sehe auch keinen Onepager, sondern eine Seiteneffektseite. Wenn du das rausnimmst, dann entstehen "übliche URLs" - vielleicht löst das dein Problem 😉
Auf dem Smartphone ist der Effekt eh sonderbar dargestellt.

Gruß Marboe

nonow schrieb am 15.01.2018 um 14:39 Uhr

Hi marboe,

ich habe die Seiteneffekt-Website entfernt und die Links neu gesetzt und jetzt funktioniert es mit der htaccess-Datei wie gewünscht. Nun habe ich auch auf dem Webserver die einzelnen Seiten als HTML-Dateien vorliegen und ich denke, da lag das Problem.

Vielen lieben Dank
nonow

ms-aht schrieb am 27.09.2018 um 11:52 Uhr

Ich bin auch gerade dabei eine weitere Sprachversion für meine deutsche Seite zu erstellen. Bis dato habe ich keine Vorkehrungen dafür getroffen. Wenn ich BeRo's Hinweis oben richtig verstehe, dass macht es am meisten Sinn, auf dem Server ein Verzeichnis (z.B. "en") anzulegen. Nachdem ich die bestehende, deutsche Seite kopiert und übersetzt habe, kopiere ich die 1:1 ins Verzeichnis "en" auf den Server und mache mich dann ans Verlinken der einzelnen Seiten. Richtig? (Auf das "Coden" wie oben beschrieben habe ich keine Lust, ist mir zu kompliziert.)

BeRo schrieb am 27.09.2018 um 12:19 Uhr

@ms-aht

[...] Nachdem ich die bestehende, deutsche Seite kopiert und übersetzt habe, [...] mache mich dann ans Verlinken der einzelnen Seiten [...]

Wenn Du damit meinst, dass Du über einen entsprechenden Button von jeder Seite einer Sprachversion auf die korrespondierende Seite der jeweils anderen Sprachversion verlinkst, dann ist das für den Besucher eine komfortable Lösung...

Du könntest natürlich auch eine allgemeine Seite ("index.htm") vorschalten, auf der dem Besucher ein Link zu den möglichen Sprachvarianten angeboten werden. Dann benötigst Du lediglich die einzelnen Sprachversionen Deiner Site, die dann nicht mehr untereinander verlinkt sein müssen.
Der "Home" Button in der Navigationsleiste dieser Seiten sollte dann in allen Sprachvarianten auf die Sprach Auswahlseite ("index.htm") zeigen.

Nachteil:
Benutzt ein Besucher eine direkte URL, z. B. "www.meinesite/ueber_mich.htm", landet er in einer Sprachversion, die er dann nicht mehr ändern kann, wenn er nicht über den "Home" Button die Auswahlseite findet... 😒

Auf den Tag genau gehen heute, am 14.08.2021, 10 Jahre online Support für die Community zu Ende.
Ich freue mich auf eine neue, berufliche Herausforderung, die sich gerade ergeben hat. Leider bleibt dann keine Zeit mehr für die Community übrig, aber Ihr seid bei den aktiven Mitgliedern in besten Händen.
Sicher schaue ich auch ab und zu nochmal rein... 🤓