Ankündigung

Einklappen
Keine Ankündigung bisher.

externe Sprachdatei einbinden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • externe Sprachdatei einbinden

    Hallo Gemeinde,

    meine Seite soll in zwei Sprachen angezeigt werden können: englisch und deutsch.
    Zum testen habe ich es jetzt erstmal so gemacht:
    PHP-Code:
    //Übersetzungs-Variablen

    $language $_GET['lang'];  //holt die Sprache aus der URL
    if ($language == 'en'
    {
    $order 'name_e'//sortiert die Einträge im SELECT nach den englischen Namen
    $pageTitel 'Categories';
    $profiles 'all profiles';
    }
    else {
    $order 'name_d'//sortiert die Einträge im SELECT nach den deutschen Namen
    $pageTitel 'Kategorien';
    $profiles 'alle Profile';

    Nun wird mir das für die gesamte Seite aber ein wenig zuviel und ich würde diese Übersetzungen gerne in eine externe Sprachdatei auslagern.
    Meine Frage nun: wie gebe ich den Hinweis, dass bei den angegebenen Variablen die jeweiligen Übersetzungen in der externen Sprachdatei gesucht werden sollen? Wie binde ich diese Datei ein?
    Oder gibt es gar eine einfachere Lösung, da ich ja nur 2 Sprachen und relativ wenige Wörter des Templates zu übersetzen habe habe? (Die eigentlichen Seiteninhalte kommen nämlich dann aus den deutschen bzw. englischen Spalten der jeweiligen Datenbank-Tabellen.)

    Für Hinweise wäre ich dankbar.

  • #2
    Hi estebu,

    Schau mal diesen Thread an.
    Das hat zwar den TE nicht zufrieden gestellt, was aber sicher nicht an den Tipps der Kollegen lag!
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Zitat von Arne Drews Beitrag anzeigen
      Hi estebu,

      Schau mal diesen Thread an.
      Das hat zwar den TE nicht zufrieden gestellt, was aber sicher nicht an den Tipps der Kollegen lag!

      Hats doch, was die Sprachdatein angeht

      Kommentar


      • #4
        Ich habe den Thread nun durchgesehen. Eine Lösung via Datenbank kommt für mich nicht in Frage, da es sich um nur wenige Seiten mit wenig Übersetzungen handelt. Ich würde es gerne so machen, wie es Koala vorgeschlagen hat ( http://www.php.de/php-einsteiger/687...tml#post531266 ):
        kannst es auch ohne DB machen.

        ein Verzeichnis languages und darin die Verzeichnisse "de" und "en".

        In "de" und "en" stehen dann für jede Seite die Sprachdateien die genauso benannt sind
        wie Deine Ausgabe-Seiten.

        PHP-Code:

        $lang_array 
        = array('de''en'); // zugelassene Sprachen

        if(!isset($_SESSION['lang'])) $_SESSION['lang'] = 'de';

        // Parameter-Reihenfolge für in_array mußt noch mal nachschaun
        if(isset($_GET['lang']) && in_array($_GET['lang'], $lang_array)){ 
          
          
        $_SESSION['lang'] = $_GET['lang'];

        }

        include 
        'languages/'.$_SESSION['lang'].'/news.php'// Sprachdatei der aktuellen Seite 
        Beispiel-Sprachdatei:
        PHP-Code:

        define
        ('HEADING''News');

        // ... 
        Jetzt kannst Deine Sprachdateien auch einfach per mail zum Übersetzen versenden.
        Koala ist offline Bewerte diesen Beitrag von Koala Beitrag melden
        Mein Problem ist aber immer noch der Abschluss des Ganzen:
        Muss ich jetzt für jede Überetzung ein neues 'define' angeben?

        PHP-Code:
        define('HEADING''News');
        define('NAME''name');
        define('LINK1''show all');
        ... 
        oder eher so:
        PHP-Code:
        $lang['HEADING']         = 'News';
        $lang['NAME']       = 'name';
        $lang['LINK1']       = 'show all';
        ... 
        und wie bekomme ich nun die in die Sprachdatei eingetragenen Wörter auf meiner Webseite richtig ausgegeben?
        Wenn ich das zweite Beispiel benutze und schreibe
        PHP-Code:
        echo $lang['NAME']; 
        dann erscheint als Ausgabe nur ein 's' . (???)

        Kommentar


        • #5
          Ich habe es jetzt folgendermaßen gemacht:
          Sprachdatei:

          PHP-Code:
          $beispiel1 'Beispiel 1';
          $beispiel2 'Beispiel 2';
          $beispiel3 'Beispiel 3'
          Und auf der Webseite einfach

          PHP-Code:
          echo $beispiel2
          ergibt dann 'Beispiel 2'

          So einfach. Manchmal hat man auch Tomaten auf den Augen

          Kommentar


          • #6
            Da hätte ich an deiner Stelle eher mit einem array gearbeitet Naja... egal ...

            PHP-Code:
            //lang.de.php
            $txt['welcome'] = "Herzlich Willkommen" 
            "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

            Kommentar


            • #7
              Und was wäre daran der Vorteil?
              Wie rufe ich dann "Herzlich willkommen" auf der Seite auf und wie definiere ich weitere Begriffe?

              Bin ja für verbessernde Vorschläge immer offen...

              Kommentar


              • #8
                zum Beispiel [MAN]extract[/MAN].
                Oder, dass man nur eine Variable und nicht x Variablen „verbrennt“. Bedenke, jede Variable läuft Gefahr von einer gleichnamigen überschrieben zu werden (im Ggs. zu Konstanten übrigens).
                Oder, dass man Fallbacks einrichten kann.
                [COLOR="#F5F5FF"]--[/COLOR]
                [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                [COLOR="#F5F5FF"]
                --[/COLOR]

                Kommentar

                Lädt...
                X