Mit Hilfe von Javascript die Sprache der Webseite ändern

Arbeite ich an einem GUI-website, die mehrere Sprachen. Die ursprünglichen HTML-Dateien, die ich bekam, mit zu arbeiten, war Total statisch. Also falls eine übersetzung nötig war, ich hatte zu durchsuchen, alle Dateien, beachten Sie, wo einige Wörter oder Begriffe waren, sammeln Sie Sie alle mit der hand auf der übersetzungs-Abteilung und geben Sie diese übersetzungen in die neue Sprache-Dateien.

Da diese Dateien waren völlig statisch, es gemeint hat, zu übersetzen, ganze Abschnitte mehrmals. Nicht sehr effictient.

So, jetzt arbeite ich an eine Art Wörterbuch in Javascript, um den Austausch nur die in Bezug auf diese websites. Meist funktioniert das so:

var dicEnglish = {
term 1: "This is the English text"
Ref: "Another English text"
}
var dicFrench = {
term 1: "This is the French text"
Ref: "Another French text"   
}

Enthält alle möglichen Inhalte, die geändert werden muss. Jeder Kandidat in den HTML-code bekommt ein class="dicRef" id="l_dicTag_#"wie die Bezeichner, die ich die Scheibe hinunter, um die Wörterbuch-tag " und Austausch mit folgendem code:

var imgSrc = "en";
var ActiveDic;
var langSel;
if(window.name){
    langSel=window.name;
    }
else{langSel="English";
}

function LangChange(){
langClass = document.getElementsByClassName("dicRef");
var i = langClass.length;
var Start, Stop, idSrc, idDic;
var navText;

switch(langSel){
    case "French":
        langSel="French";
        imgSrc = "en";
        navText="Anglais";
        break;
    case "English":
    case "Anglais":
    default:
        langSel="English";
        imgSrc = "fr";
        navText="French";
        break;
    }
ActiveDic="dic"+langSel;
window.name=langSel;

while(i--){
    idSrc = langClass[i].id;
    Start=idSrc.indexOf("_")+1;
    Stop=idSrc.lastIndexOf("_");
    idDic=idSrc.slice(Start,Stop);
    if(window[ActiveDic][idDic]){
        document.getElementById(idSrc).innerHTML=window[ActiveDic][idDic];}
    else{
        document.getElementById(idSrc).innerHTML="N/A";
    }
}
if(document.getElementById("imgSel")){
    document.getElementById("imgSel").src="../../img/"+imgSrc+".gif";
}
if (document.getElementById("l_SelLang1_1")){
    document.getElementById("l_SelLang1_1").innerHTML=navText;
}
}

Das problem liegt in der Einzigartigkeit der id-Tags. Da einige Begriffe, die häufiger als einmal vorkommen können und einige generiert werden, die Theke ist gebraucht. Am Liebsten würde ich ommit der Theke, aber nicht finden können, jede andere id zu Sortieren, alle Ziel Begriffe und Ihren Inhalt ändern.

Da möchte ich sicher sein für die Zukunft würde ich lieber eine Lösung, die es möglich macht, Griff eine Dritte Sprache. Arbeit mit dem inneren HTML-müssten tag der gleiche Begriff mehrfach, einmal für jede Sprache.

Also gibt es irgendeine Möglichkeit den Gegner alle Bedingungen ausgetauscht werden, mehr effizient und leicht, oder einen besseren Weg, es zu tun? Ich kann nur mit client-side-Lösungen, also kein PHP und so weiter.

Vielen Dank im Voraus und hoffentlich war das nicht zu lang zum Lesen.

  • Ich muss zugeben, da ich neu bin, um tiefer in HTML und komplett auf Javascript, das wusste ich nicht, weil W3C Schulen beginnt mit HTML 4. 😉 Was ist mit Abwärtskompatibilität. Specs sagen, es hat auf Arbeit mit dem IE 7 oder Firefox 3.5 (und höher natürlich). Ich finde widersprüchliche Informationen auf HTML 5 und alten Browsern.
InformationsquelleAutor Blind Seer | 2015-08-14
Schreibe einen Kommentar