[PHP] PHP language Datei generieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von germanpipe, 21. September 2011 .

  1. 21. September 2011
    PHP language Datei generieren

    Hallo Community,

    ich bin gerade dabei, eine relativ umfangreiche Webseite multilingual umzugestalten. Wir reden hier über einen Umfang von weit über 100 Dokumenten. Mein Ansatz war es, dazu eine language-Datei zu erstellen, in der ich die Konstanten mit den Textstellen festhalte. Soweit sicher nicht unüblich...

    Das Problem an der Sache ist natürlich, dass selbst ein einziges Dokument, wie das Menü, eine solche Menge an Inhalten umfasst, dass es Unmengen an Zeit kosten würde, dies manuell zu erledigen.

    Ich will also versuchen, dies weitgehend zu automatisieren. Die Dokumente enthalten allerdings sowohl PHP-Code, als auch HTML Stellen. Ein Skript soll dementsprechend die Ordner und Dateien durchgehen und diese Zeile für Zeile überarbeiten. Zunächst wird "überflüssiger" Code entfernt. Stellen mit echo-Ausgaben etc. werden zu HTML umgeformt. Die verbleibende "HTML-Datei" wird dann von den Tags befreit. Die gefundenen Textstellen sollen dann einheitlich alá
    PHP:
    define ( "Datei_Zeile_Textstelle1" "Bitte melden Sie sich an!" );
    formatiert werden.

    Soweit nicht sonderlich schwer, allerdings ergeben sich eine Fülle an Bedingungen und Faktoren... Ist das Anführungszeichen " oder ' ... Ist nach dem echo eine Variable ... Wird die vorher manuell mit Text befüllt etc... Ihr seht vielleicht worauf ich hinaus will.

    Ich suche also ein fertiges Skript/Programm, Codeschnipsel, Anregungen, was auch immer, welche mir meine Arbeit erleichtern. Google hat mir zumindest erstmal keine brauchbaren Ergebnisse geliefert, sodass ich davon ausgehe, dass eine fertige Software nicht existiert oder zumindest nicht so leicht zugänglich ist. Vielleicht hab ich aber auch nur falsch gesucht.

    Ich hoffe ihr könnt mir dabei etwas auf die Sprünge helfen, im Moment habe ich nämlich nicht die Lust, ein derartiges Projekt auf die Beine zu stellen.

    Vielen Dank schonmal.
     
  2. 21. September 2011
    AW: PHP language Datei generieren

    um den quelltext wirklich fehlerfrei von php zu befreien, musst du mit nem tokentizer arbeiten, denn nen php-ausdruck kann man nicht eben so mal mit nem regexp ausfiltern.

    PHP: token_get_all - Manual

    ich an deiner stelle würde die verschiedenen sprachen lieber in einer datenbank pflegen und eine entsprechende oberfläche programmieren damit ich nicht den überblick verliere.
     
  3. 21. September 2011
    AW: PHP language Datei generieren

    Also um das Problem mit den Variablen in einen Language-Strings zu umgehen, kannst du statt echo printf() nutzen.

    PHP:
    define ( "Datei_Zeile_Textstelle1" "Willkommen %s, du bist eingeloggt!" );
    PHP:
    printf ( Datei_Zeile_Textstelle1 "Username" );
    Somit ist der Output:
    "Willkommen Username, du bist eingeloggt!"

    Und das mit den Anführungszeichen würde ich mit HTML-Chars lösen.. Sprich:
    " => ""
    etc..
    (Special Characters in HTML)

    MfG
     
  4. 21. September 2011
    AW: PHP language Datei generieren

    Die Dateien enthalten ziemlich wenig größere Textpassagen nur nen haufen kleine Textstellen. Es werden Datenbankwerte ausgelesen und in Tabellen, pdf, excel oder sonstigen Dateiversionen ausgegeben... Vielleicht mach ich das mit der Übersetzung in der Datenbank noch, mal sehen. Ist gar keine so schlechte Idee, aber auch später noch gut umzusetzen.

    Das ist ein seeehr guter Hinweis und vermutlich so ziemlich genau das, was ich gesucht habe
    Das wird mir die Suche nach den Stellen auf jeden Fall erleichtern. Bin der Funktion ehrlich noch nie begegnet.


    @Erazor: Irgendwie trifft keiner deiner Vorschläge auf mein Problem zu. Die Variablen stehen nicht innerhalb der Zeichenkette, sondern werden teilweise vorher definiert. Bestes Beispiel ist der Seitentitel:
    <?
    $titel = "Anmeldung";
    ?>
    <title><? echo $titel; ?></title>

    Auch die Anführungszeichen innerhalb von Zeichenketten stellen kein wirkliches Problem dar, da die der Form " ' " oder ' " ' oder " \" " entsprechen. Ich muss allerdings die Unterschiede zwischen genau diesen Formen erkennen, also
    echo "Beispiel 1"; oder
    echo 'Beispiel 2';

    Aber beide Probleme sind bei dem ersten Vorschlag mit bedacht, da PHP diese Funktion selbst anbietet. Mit einem kleinen bisschen Anpassen kann ich mir damit wirklich relativ zuverlässig die Stellen generieren.

    Vielen Dank
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.