Jonnah: Mehrsprachigkeit innerhalb einer Seite

Hallo,
eine HTML-Seite soll durch alternative Textabschnitte mittels "lang=" zweisprachig sein, z.B.

----------
<h1 lang="de">Deutsche Seite</h1>
<h1 lang="en">English Site</h1>
<h2>Dr. Alfred Meier</h2>
----------

Mit Hilfe von CSS und (vermutlich am besten) Javascript, soll nun je nach dem, ob der Link <a href="#" onMouseOver="de(lang)">Deutsch</a> oder <a href="#" onMouseOver="en(lang)">English</a> angeklickt wird, NUR die, mit der entsprechenden Sprache ausgezeichneten Elemente PLUS solche, die gar keine Sprachauszeichnung beinhalten, angezeigt werden (im Bsp. oben h2).

Leider bin ich in Javascript nicht besonders bewandert, weshalb ich nicht weiß, wie man alle mit lang ausgezeichneten Elemente ansprechen kann. Gemeint ist jedenfalls sowas wie:

----------
var lang;
function de(lang)
{document.getElementByLang(en).style.visibility="hidden";}
function en(lang)
{document.getElementByLang(de).style.visibility="hidden";}
----------

Die Erstansicht sollte schließlich (mit .htaccess?) der jeweiligen Browsereinstellung des Nutzers entsprechen.

Über hilfreiche Hinweise wäre ich ziemlich dankbar!

Viele Grüße
Jonnah

  1. @@Jonnah:

    eine HTML-Seite soll durch alternative Textabschnitte mittels "lang=" zweisprachig sein, z.B.
    <h1 lang="de">Deutsche Seite</h1>
    <h1 lang="en">English Site</h1>
    <h2>Dr. Alfred Meier</h2>

    Besser wären wohl getrennte Dateien für die deutsche und englische Version.

    Mit Hilfe von CSS und (vermutlich am besten) Javascript,

    Nein. Auf clientseitige Techniken sollte man sich dabei nicht verlassen. Also keinesfalls auf JavaScript. Nicht einmal auf CSS.

    Über hilfreiche Hinweise wäre ich ziemlich dankbar!

    Wann es angebracht ist, Sprachvereinbarung (language negotiation) einzusetzen

    Live long and prosper,
    Gunnar

    --
    Flughafen in Tempelhof
    findet jeder Hempel doof.
    1. Mahlzeit,

      Wann es angebracht ist, Sprachvereinbarung (language negotiation) einzusetzen

      Ach, DESHALB hast Du Dir die Mühe gemacht: um diesen Link Deiner Copy'n'Paste-Sammlung hinzufügen zu können ... ;-)

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. @@EKKi:

        Ach, DESHALB hast Du Dir die Mühe gemacht: um diesen Link Deiner Copy'n'Paste-Sammlung hinzufügen zu können ... ;-)

        Ach was, den hatte ich schon länger in der Sammlung. ;-)

        Eher DESHALB.

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.
    2. Besser wären wohl getrennte Dateien für die deutsche und englische Version.

      Warum denn - es ist doch weniger Pflegeaufwand? (eine DB-basierte Lösung wäre sicher noch besser, steht aber jetzt noch nicht zur Debatte)

      Was für einen Weg würdest Du denn vorschlagen?

      Grüße
      Jonnah

      1. Hi,

        Besser wären wohl getrennte Dateien für die deutsche und englische Version.
        Warum denn

        weil es nur mit erheblichem Aufwand - und sinkender Sicherheit - möglich ist, die jeweils korrekten Daten zur Anzeige auszuwählen. Darüber hinaus beläuft sich der Traffic für n Sprachen auf m*n+p anstatt m+p bzw., wenn jemand die Sprache umschaltet, einmalig auf 2*m+p.

        es ist doch weniger Pflegeaufwand?

        Der Pflegeaufwand wäre orthogonal, aber nicht weniger (oder mehr).

        (eine DB-basierte Lösung wäre sicher noch besser, steht aber jetzt noch nicht zur Debatte)

        Wo die Daten gespeichert werden, ist irrelevant. Ein Template-basiertes System wäre passend.

        Was für einen Weg würdest Du denn vorschlagen?

        Content-Negotiation.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
      2. @@Jonnah:

        Besser wären wohl getrennte Dateien für die deutsche und englische Version.

        Warum denn - es ist doch weniger Pflegeaufwand?

        Je nachdem.

        Was ist, wenn mehrere Übersetzer gleichzeitig in verschiede Sprachen übersetzen sollen?

        Nach deiner Methode ginge das ja nur nacheinander oder es müsste noch zusätzlicher Aufwand betrieben werden, um die parallel angefertigten Übersetzungen in die eine Datei einzupflegen.

        Wenn es denn eine Date sein soll: Serverseitig die vom Nutzer bevorzugte Sprache ermitteln (aus dem 'Accept-Language'-Header)und in einer Variblen 'lang' speichern und dann nur die jeweils benötigten Teile in die generierte HTML-Ressource einbinden, z.B. mit SSI:

        <!--#if expr="$lang='de'" -->  
        <h1 lang="de">Deutsche Seite</h1>  
        <!--#elif expr="$lang='en'" -->  
        <h1 lang="en">English Site</h1>  
        <!--#endif -->  
        <h2>Dr. Alfred Meier</h2>
        

        PHP dürfte aber hierfür geeigneter sein, da es damit einfacher ist, den 'Accept-Language'-Header zu parsen (https://forum.selfhtml.org/?t=169429&m=1106697).

        Live long and prosper,
        Gunnar

        --
        Flughafen in Tempelhof
        findet jeder Hempel doof.