Gunnar Bittersmann: Sprachen innerhalb einer HTML Seite wechseln

Beitrag lesen

@@Kalle_B:

nuqneH

<div class='de'>... deutsche Beschreibung ... </div>
<div class='en'>... english description ... </div>
...
<div class='de'>... deutscher Fusstext ... </div>
<div class='en'>... english footer ... </div>

Wie suit schon sagte: Zur Kennzeichnung der Sprache eines Abschnitts dient @lang (@xml:lang):

<div lang='de'>... deutsche Beschreibung ... </div>  
<div lang='en'>... english description ... </div>  
...  
<div lang='de'>... deutscher Fusstext ... </div>  
<div lang='en'>... english footer ... </div>

In Javascript durchläuft Opera mit

for ( i=0; i<document.getElementsByClassName('fr').length; i++ )

document.getElementsByClassName('de')[i].style.display = 'inline';


> die Tags einer Klasse.  
  
Wozu??  
  
Den Nachfahrenselektor kennst du?  
  
Also schaltest du mit JavaScript lediglich die Klasse des body um: `document.body.className = 'de';`{:.language-javascript}  
  
(Wenn body noch andere Klassenzugehörigkeiten als die Sprachangabe hat, ist etwas mehr Gehirnschmalz reinzustecken, damit diese erhalten bleiben.)  
  
  
Im Stylesheet dann:  
  
~~~css
body.de div:not([lang|='de']) { display: none }  
body.en div:not([lang|='en']) { display: none }

Zu schön um wahr zu sein. Für Browser, die :not() nicht verstehen, eben so:

div[lang] { display: none }  
body.de div[lang|='de'] { display: block }  
body.en div[lang|='en'] { display: block }

IE6 kann das nicht

Der kann auch keine Attributselektoren. So what? Dann wird eben alles angezeigt. Willst du für die allerletzten IE-6-Nutzer noch großartig Aufwand betreiben? IE 6 ist so gut wie tot.

Qapla'

--
Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
(Mark Twain)