Der Martin: mehrfach verwendete Texte ändern

Beitrag lesen

Hi,

ich würde gerne die Sprache einer Webseite über javascript abändern ohne mehrere Seiten in verschiedenen Sprachen zu erstellen.

warum das?

Bei Einzeltexten funktioniert das auch sehr gut, aber ich habe auch Texte die ich mehrmals verwende und es muss doch einen einfachen Weg geben um diese Texte alle auf einmal zu verändern.

Ja. Wenn du schon den Ansatz mit Javascript versuchst, freunde dich mal mit Schleifen an. Die klassische for-Schleife hilft dir wahrscheinlich am besten.

// get all <label> Elements with name "t_days"
  var label_t_days = document.getElementsByName("t_days");

Der Kommentar ist nicht ganz korrekt: Diese Anweisung liefert dir eine Collection (sozusagen ein Array) aller Elemente mit dem Namen "t_days", egal ob es label, input, h1 oder form sind. Die spannende Frage ist nur: Darf das label-Element überhaupt ein name-Attribut haben? Nein, darf es nicht (ich wollte die DTD verlinken, bekomme aber einen 403er, also nehme ich eine beliebige Sekundärquelle, die ich gefunden habe).

Wozu sollte das label-Element auch ein name-Attribut brauchen, wenn man es bestimmungsgemäß nutzt?

if (language == 0) {
    label_t_days[1].data = "Tage"
    label_t_days[2].innerHTML = "Tage"
    label_t_days[3].firstChild.nodeValue = "Tage"
    label_t_days[4].value = "Tage"
  }

Dass Arrayindices normalerweise ab 0 zählen, ist dir nicht bewusst?
Und was bezweckst du mit den unterschiedlichen Zugriffsmethoden?

else if (language == 1)

Eine switch/case-Struktur wäre vielleicht eleganter.

// keine der hier versuchten Methoden funktioniert

Das könnte im ersten Moment schon daran liegen, dass getElementsByName() ein leeres Array liefert, weil die Browser das nicht erlaubte name-Attribut im label-Element ignorieren.

Alles was ich oben versucht habe hat nicht funktioniert, was ist falsch und wie könnte es gehen?

Ich empfehle dir trotz aller Bemühungen, separate Seiten für jede Sprache zu erstellen. Dann machst du die Funktion auch nicht von Javascript abhängig.

So long,
 Martin

--
Wenn man sieht, was der liebe Gott auf der Erde so alles zulässt, hat man das Gefühl, er experimentiert immer noch.
  (Sir Peter Ustinov, Charakterdarsteller, 2004 verstorben)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(