Mehrere Text gleichzeitig wechseln

Madden

Grünschnabel
Guten Morgen,

mit diesen Funktionen:
Code:
function SetLangUs()
{
document.getElementById("langus").style.display='inline';
document.getElementById("langger").style.display='none';
document.getElementById("langfr").style.display='none';
document.getElementById("langit").style.display='none';
document.getElementById("langesp").style.display='none';
document.getElementById("langru").style.display='none';
document.getElementById("langnl").style.display='none';
return;
}

function SetLangGer()
{
document.getElementById("langus").style.display='none';
document.getElementById("langger").style.display='inline';
document.getElementById("langfr").style.display='none';
document.getElementById("langit").style.display='none';
document.getElementById("langesp").style.display='none';
document.getElementById("langru").style.display='none';
document.getElementById("langnl").style.display='none';
return;
}

Habe ich versucht meine Webseite ohne Neuladen mehrsprachig zu machen. Leider wird nur der erste Text auf der Seite sofort gewechselt, der Rest bleibt unverändert.
Weiß jemand, wie man auf einen Schlag den gesamten Inhalt der Seite (Menüpunkte, Inhalt, evtl noch Copyright, ....) wechseln kann?

weihnachtliche Grüße,
 
Eigentlich müsste es so gehen wie du's gemacht hast. Am besten du postetst mal einen Link auf deine Seite, vielleicht hast du ja einfach nur einen dummen Fehler übersehen.
 
http://test.msxstudios.de/login/setup.php, habe aber die anderen Texte die noch geändert werden sollen ausgeklammert, sodass sich nur die Sprache ändert. Wenn ich aber z.b. da wo "welcome to the installation" steht folgendes schreibe:

Code:
<span id="langus" style="display:inline" > Welcome to installation ..... </span>
<span id="langger" style="display:none" >Willkommen bei der Installation von Advanced Login </span>
<span id="langfr" style="display:none" >?</span>
<span id="langit" style="display:none" >?</span>
<span id="langesp" style="display:none">?</span>
<span id="langru" style="display:none" >?</span>
<span id="langnl" style="display:none" >?</span>


wird wenn man als sprache deutsch auswählt zwar "wilkommen bei der..." angezeigt, jedoch steht unten bei selected language: immer noch english.
D.h. es ändert sich immer nur ein Textblock.
 
Oh, mann, wenn du Nase in die JS-Konsole deines Browsers geschaut hättest wäre da etwas wie "Id must be unique" gesanden. Dein Problem hat den einfachen Grund, dass die id per Definition Dokumentweit eindeutig zu sein hat. Mit anderen Worten: Es können keine zwei Elemente eine Id haben. Alles ander verursacht je nach Browser mehr oder weniger massive Fehler und da viele relativ tollerant sind, nehemn sie halt das erste Element mit der Id und ignorieren die anderen.

Du würdest dir übrigens eine Menge Code erstparen, wenn du nicht für jede Sprache eine Funktion schriebst, sondern ihr einfach einen Parameter übergibst. Mein Vorschlag wäre insgesamt, da es ein lang-Attribut schon gibt folgendes:
Code:
<head>
  
  <script type="text/javascript">
  <!--
  function setLanguage(lang){
  	var arr = document.getElementsByTagName('span');
  	for(var i=0; i<arr.length; i++)
  		if(!!arr[i].lang)
  			if(arr[i].lang!=lang)
  				arr[i].style.display='none';
  			else
  				arr[i].style.display='inline';
  }
  -->
  </script>
  
  </head><body>
  
  	<span class="Stil2" lang="de" style="display:none" >Deutsch 1</span><br />
 	<span class="Stil2" lang="fr" style="display:none" >Fran&ccedil;ais 1</span><br />
  	<span class="Stil2" lang="it" style="display:none" >Italiano 1</span><br />
  	<span class="Stil2" lang="de" style="display:none" >Deutsch 2</span><br />
 	<span class="Stil2" lang="fr" style="display:none" >Fran&ccedil;ais 2</span><br />
  	<span class="Stil2" lang="it" style="display:none" >Italiano 2</span><br />
  	<span onclick="alert(!!this.lang)">bla</span>
  
  	<input name="lang" type="radio" onClick="setLanguage('de')" value="de">
  	<input name="lang" type="radio" onClick="setLanguage('fr')" value="fr">
  	<input name="lang" type="radio" onClick="setLanguage('it')" value="it">
  
 </body></html>
Ud da du relativ neu hier bist führe dir doch bitte noch folgeden Thread vollständig und gewissenhaft zu Gemüte: http://www.tutorials.de/tutorials215197.html
 
jo, hatte ich nach dem posten auch gemerkt, aber mein script versuch sah dann so aus:

Code:
function SetLang(id) {
    if(id == "us") {
	  noid1 = "ger";
	  noid2 = "fr";
	  noid3 = "it";
	  noid4 = "esp";
	  noid5 = "ru";
	  noid6 = "nl";
}

[.............]

for(i=1;i<7;i++) {
	document.getElementById("lang" + id + "" + i).style.display = 'inline';
}
for(i=1;i<7;i++) {
	document.getElementById("lang" + noid1 + "" + i).style.display = 'none';			
}
[.............]

deswegen hab ichs mal uneditiert gelassen. Grüße
 
Bitte noch den Thread als erledigt markieren. Ganz nebenbei finde ich meine Loesung allerdings deutlich konsistenter unter platzsparender.
 

Neue Beiträge

Zurück