@@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)