1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Sprachauswahl wählen

Dieses Thema im Forum "PHP" wurde erstellt von CreativPur, 13. November 2017.

  1. CreativPur

    CreativPur Erfahrenes Mitglied

    Hi,
    ich habe ein Auswahlfeld und möchte damit die Sprache auswählen..
    HTML:
    1. <form action="#" method="get">
    2.             <select class="form-control hidden-xs" style="margin-top:8px; background-color:#000; color:silver; border-color:#000;" >
    3.                 <option value=" Deutsch"><li><a href="#?language=de"> Deutsch</a></li></option>
    4.                 <option value=" English"><li><a href="#?language=en"> English</a></li></option>
    5.                 <option value=" Français"><li><a href="#?language=fr"> Français</a></li></option>
    6.                 <option value=" Español"><li><a href="#?language=es"> Español</a></li></option>
    7.                 <option value=" Türk"><li><a href="#?language=tr"> Türk</a></li></option>
    8.                 <option value=" Polski"><li><a href="#?language=pl"> Polski</a></li></option>
    9.                 <option value=" Italiano"><li><a href="#?language=it"> Italiano</a></li></option>
    10.                 <option value=" Pусский"><li><a href="#?language=ru"> Pусский</a></li></option>
    11.                 <option value=" سوري"><li><a href="#?language=sy"> سوري</a></li></option>
    12.             </select>
    13.         </form>
    Die Übersetzung mache ich mit json.
    PHP:
    1. <?php
    2. class language {
    3.    public $data;
    4.    function __construct($language) {
    5.       $data = file_get_contents($language . ".json");
    6.       $this->data = json_decode($data);
    7.    }
    8.    function translate() {
    9.         return $this->data;
    10.    }
    11. }
    12.  
    13. $language = new language("en");
    14. $text = $language->translate();
    15. ?>
    16.  
    17. <?php echo $text->Actions->Neu ?><br />
    18.       <?php echo $text->Actions->Hinzufügen ?><br />
    19.       <?php echo $text->Actions->Anpassen ?><br />
    20.       <?php echo $text->Actions->Löschen ?><br />
    21.       <?php echo $text->Actions->Schließen ?><br />
    Die Übersetzungen funktionieren, aber wie kann ich die Sprache mit mit der Auswahlbox ansteuern ?
     
  2. Kalito

    Kalito Erfahrenes Mitglied

    Hallo

    hatten wir nicht erst kürzlich das Thema?
    Nur zum Verständnis: Je nach ausgewählte Sprache soll das entsprechende Flag ausgewählt sein.

    Ansich musst du im PHP oder im Javascript eine Variable definieren und darüber kannst du den Default-Wert beim Dropdown setzen.
     
  3. merzi86

    merzi86 Erfahrenes Mitglied

  4. CreativPur

    CreativPur Erfahrenes Mitglied

    Hi,
    ich habe es jetzt soweit hin bekommen..
    Leider wird beim Start der index.php erst die Englische Version angezeigt.
    Wie bekomme ich es hin, dass erst de angezeigt wird ?

    Meine Versuche..
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//DE" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="de">
    PHP:
    1. <?php
    2. header('Cache-control: private'); // IE 6 FIX
    3.  
    4. if(isSet($_GET['lang']))
    5. {
    6. $lang = $_GET['lang'];
    7.  
    8. // register the session and set the cookie
    9. $_SESSION['lang'] = $lang;
    10.  
    11. setcookie('lang', $lang, time() + (3600 * 24 * 30));
    12. }
    13. else if(isSet($_SESSION['lang']))
    14. {
    15. $lang = $_SESSION['lang'];
    16. }
    17. else if(isSet($_COOKIE['lang']))
    18. {
    19. $lang = $_COOKIE['lang'];
    20. }
    21. else
    22. {
    23. $lang = 'de';
    24. }
    25. switch ($lang) {
    26.   case 'de':
    27.   $lang_file = 'lang.de.php';
    28.   break;
    29.  
    30.   case 'en':
    31.   $lang_file = 'lang.en.php';
    32.   break;
    33.  
    34.   default:
    35.   $lang_file = 'lang.de.php';
    36. }
    37. include_once 'languages/'.$lang_file;
    38. ?>
    PHP:
    1. <div id="languages">
    2.  
    3. <form>
    4. <select class="form-control hidden-xs" style="margin-top:8px; background-color:#000; color:silver; border-color:#000;" name="auswahl"
    5. onChange="top.location.href=this.form.auswahl.options[this.form.auswahl.selectedIndex].id" >
    6. <option id="index.php?lang=de"><?php echo $lang['MENU_SPRACHE']; ?></option>
    7. <option value=" Deutsch" id="index.php?lang=de" > Deutsch</option>
    8. <option value=" English" id="index.php?lang=en"> English</option>
    9. </select>
    10. </form>
    11.  
    12. </div>
     
  5. Kalito

    Kalito Erfahrenes Mitglied

    Was gibt bei dem initialen Seitenaufruf $lang zurück?

    Was mich wundert ist, dass du im ersten Script $lang als Variable behandelst und im zweiten als Array.

    Was soll der erste option-Tag eigentlich bewirken? Warum, arbeitest du nicht mit dem "selected"-Befehl
     
  6. CreativPur

    CreativPur Erfahrenes Mitglied

    Hi Kalito,
    ich habe es jetzt hin bekommen..
    Ich habe bei meinen Mac den Verlauf gelöscht. Jetzt zeigt er beim Start die deutsche Version..

    Wie gesagt, meine Kenntnisse sind nicht so dolle..
    "Erfahrendes Mitglied" unter meinem Profil lässt viele verwirren.. Das bin ich wahrscheinlich nur durch meine vielen dummen Fragen geworden.. smile
    Na gut.. Habe auch viel dadurch gelernt..

    Was mich wundert ist, dass du im ersten Script $lang als Variable behandelst und im zweiten als Array.

    Ich habe damit zwei grundverschiedene Funktionen gestartet..
     
  7. Kalito

    Kalito Erfahrenes Mitglied

    Wenn nichts hilft dann Cache löschen :D Eigentlich eine Grundweisheit.
     
Die Seite wird geladen...