Daniel Hahn: Sprache wechseln

Hallo!

Ich suche nach einer Möglichkeit, auf einer Seite elegant die Sprache zu wechseln (deutsch/englisch/französisch). Anstatt jede Seite einzeln zu verlinken, dachte ich daran, ein JavaScript einzusetzen. Ich schreibe also die Seite für jede Sprache, nenne sie "test_d" und "test_e" und ersetze per script das "d" in der Adresse durch ein "e".

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function lang_change( lang )
 {
 document.location.href=document.location.href.replace( /(.*)_[e].html/, "$1_"+lang+".htm");
 }
//-->
</script>
</head>
<body>

<a onClick="lang_change('e');">Englisch</a><br>
<br>
deutscher Text

</body>
</html>

Klappt nur leider nicht.

Ich muss hinzufügen: Ich bin blutiger Anfänger, was JavaScript betrifft. Das Script habe ich auch nicht selbst geschrieben, ich weiß nur nicht mehr wo ich es herhabe.

Danke.

Daniel

  1. Hi,
    denke daran, dass viele Anwender Javascript (zurecht oder zuunrecht)
    deaktiviert haben!
    Gruß von Gaston

  2. n'abend,

    aus der Angabe der Dateinamen-Konvention [dateiname + "_" + sprache] schliesse ich, dass du dich auf datei_d.htm befindest, da du in deinem Beispiel ja von deutschem Text sprichst.

    document.location.href=document.location.href.replace( /(.*)_[e].html/, "$1_"+lang+".htm");

    Diese Abfrage prüft aber nur auf [e]nglische Dateien.
    [ed]{1} << (aus dem Zeichenvorrat "e" und "d" ist genau ein Zeichen vorhanden)

    location.href = location.href.replace( /(.*)_[e]\.html/, "$1_"+lang+".htm");

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  3. Hell-O!

    Ich suche nach einer Möglichkeit, auf einer Seite elegant die Sprache zu wechseln (deutsch/englisch/französisch).

    Was spricht gegen entsprechende Links? Mit ein bisschen CSS können die durchaus nett aussehen.

    Anstatt jede Seite einzeln zu verlinken, dachte ich daran, ein JavaScript einzusetzen.

    Wozu? Dein Code erfordert ebenfalls ein separates Element pro Sprache. Es besteht kein Unterschied zwischen:

    <a href="test_d.html">deutsch</a>  
    <a href="test_e.html">englisch</a>
    

    und

    <a href="" onclick="lang_change('d')">deutsch</a>  
    <a href="" onclick="lang_change('e')">englisch</a>
    

    beide Varianten zeigen sich als zwei Links.

    Ich schreibe also die Seite für jede Sprache, nenne sie "test_d" und "test_e" und ersetze per script das "d" in der Adresse durch ein "e".

    Du muss das Ergebnis deiner Ersetzung auch einer Variablen zuweisen, diese wiederum weist du location.href zu. Aber wie gesagt, m.E. ist die Javascript-Variante die schlechteste, für das manuelle Umschalten der Sprache genügen HTML-Verweise allemal.

    Siechfred

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.
    1. Du muss das Ergebnis deiner Ersetzung auch einer Variablen zuweisen, diese wiederum weist du location.href zu.

      Watt'n Blödsinn. Diesen Satz bitte streichen :-/

      Siechfred

      --
      Ich bin strenggenommen auch nur interessierter Laie. (molily)
      Siechfreds Tagebuch || Falle Aufteilungsbescheid || RT 221 Erfurt-Altstadt i.V.