Sprachdateien über "DEFINE" auch für Javascript mö

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Sprachdateien über "DEFINE" auch für Javascript mö

    Hi,

    ich hab mir hier eine kleine Sprachunterstützung gebastelt.

    Im Prinzip wählt der Nutzer beim Betreten der Seite eine Sprache; die Einstellung wird dann lokal in einem Cookie gespeichert. Fortan lesen alle Funktionen diesen Cookie aus und setzen die jeweilige Sprache, also so:

    Quellcode

    1. if(isset($_COOKIE["language"])) {
    2. if ($_COOKIE["language"] == "de") {
    3. $language = $_COOKIE["language"];
    4. include("lang/language_de.php");
    5. }
    6. if ($_COOKIE["language"] == "en") {
    7. $language = $_COOKIE["language"];
    8. include("lang/language_en.php");
    9. }
    10. }
    11. else {
    12. $language = "de";
    13. include("lang/language_de.php");
    14. }
    Alles anzeigen


    Die Sprachdatei sieht dabei so aus:

    Quellcode

    1. define("_BLA","Blubb");
    2. define("_BLAEH","Plupp");
    3. define("_DING","Moep");


    Soweit so gut, aber was ist mit den ganzen Javascripts auf meiner Seite?

    Wie bekomme ich dafür eine dynamische Übersetzung hin? Gibt es sowas wie DEFINE in Javascript oder wie macht man das?

    Am liebsten wäre es mir ja, wenn alle Begriffe, die im Javascript stehen, auch in der zentralen PHP-Sprachdatei definiert werden könnten.

    Da aber Javascript Client-seitig und PHP Server-seitig sind, müssen also die Spracheinstellungen vorm Übertragen der Javascripts ausgelesen werden. Darauf folgt eine Aufbereitung und Übertragung der Javascripts zum Client.

    Doch wie mache ich das genau?

    Wenn das nicht geht, wie kann ich eine Extra Javascript-Sprachdatei aufmachen und in meinen Scripts Platzhalter für alle Texte setzen, die durch die Begriff in der Sprachdatei ersetzt werden (also direkt auf dem Client)?

    Besten Dank!
    Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...
  • nein, bitte die texte nicht auslagern in javascript...
    dann hat der gemeine nutzer ohne javascript gar keinen content mehr - und was ist mit den suchmaschinen? nicht vorzustellen...

    also ich würds nicht machen...
    sowas wie define gibts im javascript nicht.. aber wenn du unbedingt ein bisschen mehr performance rausholen willst, kannst du natürlich (seit javaScript 1.5) mit Konstanten arbeiten

    Quellcode

    1. const variable = "inhalt";


    ich würds aber über php realisieren:
    entweder unschön mit domain.de/file.php?lang=en
    oder mit schönem mod_rewrite: domain.de/en/file.php
  • Achso, nein, es handelt sich nicht um eine Webseite; sondern um eine Webanwendung, die in einem lokalen Netzwerk läuft. Javascript ist sowieso Voraussetzung für die Webanwendung. Insofern macht das keinen Unterschied.

    Wie definiere ich denn die Texte?

    Ich hätte es jetzt so gemacht, dass ich IF-ELSE-Strukutren aufbaue, den Cookie auslese und darüber die Sprache differenziere. Aber das ist ja umständlich ohne Ende.

    Deswegen hätte ich die Javascript-Texte gerne ausgelagert und definiert. Dafür muss es doch eine leichtere Lösung geben, als alles mit IF-ELSE zu machen?
    Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...
  • ach stimmt... assoziative array unter javascript - da war doch was
    naja, dann müssen objekte dafür herhalten

    Quellcode

    1. var lang = new Array();
    2. lang[0] = new Object();
    3. lang[0].food = "food";
    4. lang[0].eats = "eats";
    5. lang[1] = new Object();
    6. lang[1].food = "essen";
    7. lang[1].eats = "isst";
    8. var change = 1; //umschalter
    9. document.write( lang[change].food +" "+ lang[change].eats);
    Alles anzeigen


    oder aber du realisierst es mit ajax und php :D
    sollte ja kein problem sein..
    dann kannst du auch mit DEFINE arbeiten

    kannst ja einfach die javascript variable an die php url übergeben..
  • Ja, das ist gut!!

    Ich hab jetzt hier ungefähr 30 Javascript-Funktionen über ca. 10 Dateien verteilt.

    Wie kann ich denn jetzt eine einheitliche Sprachdatei mit den assoziativen Arrays einbinden? Oder _muss_ das jetzt für jede Datei separat gemacht werden?
    Um Rekursionen zu verstehen, muss man zuerst Rekursionen verstehen...