Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrsprachige Webseite mit PHP

Einklappen

Neue Werbung 2019

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

  • Mehrsprachige Webseite mit PHP

    Hallo zusammen,

    Das Thema ist etwas allgemein formuliert, tut mir leid. Ich habe mich hier angemeldet, da ich nach mehreren Tagen (!) nicht die Lösung gefunden habe, die ich suche. Auch habe ich zu erst die Suchfunktion in diesem Forum benutzt und wurde nicht fündig. Vielleicht auch weil ich einige Beiträge nicht ganz verstehe. Ich bin nämlich absoluter Anfänger. Dennoch weiß ich was ich möchte.

    Nun zum Thema:
    Ich möchte mit Hilfe von HTML, CSS und PHP eine Mehrsprachige Webseite machen. Bisher bin ich sehr versiert darin mit Wordpress Webseiten zu erstellen und damit konnte ich auch gut zwei- und mehrsprachige Seiten erstellen. Nun möchte ich es "von Hand" machen um einfach minimierter arbeiten zu können und cleaner zu sein. Weniger ist immer mehr.

    Meine Anforderungen sind klar. Ich habe eine Webseite welche von einer deutschen Firma mit Standort in Deutschland betrieben wird. Daher nur eine TLD www.webseite.de. Keine Subdomain. Die Webseite soll in Deutsch und in Englisch existieren.

    Nach sinnvoller Struktur also:
    Deutsch Startseite: www.webseite.de
    Deutsche Startseite auf Englisch: www.webseite.de/en/

    Erste Unterseite auf Deutsch: www.webseite.de/seite1/
    Erste Unterseite auf Englisch: www.webseite.de/en/site1/ (Hier eben auch "site" und nicht "seite")

    Mir ist diese Struktur sehr wichtig. Ich halte sie für das Beste in diesem Fall. Deutsche Firma will eben die Seite auch auf Englisch lesbar machen. Dieses Konzept müssen die URLs auch widerspiegeln finde ich. Ich hoffe und denke ihr gebt mir recht. Anmerkungen willkommen!

    Nun ein wichtiger Punkt für mich:
    Die URLs sollen wirklich so sein wie beschrieben. Kein ".html" und kein ".php" und erst recht kein "?lang=en" Zeugs hinten dran. Ich glaube zu wissen, dass dies vor allem mit Hilfe der richtigen mod_rewrite rules gemacht wird. Hier werde ich eure Hilfe benötigen.

    //
    Ein weiterer Wunsch ist dass es auf der Webseite neben dem Menu und den normalen Links innerhalb der Seiten einen "Switch-Button" gibt. Also einfach einen Link der auf der Deutschen Seite "EN" und auf der Englischen jeweils "DE" heisst. Befinde ich mich auf einer Unterseite, und klicke auf den Switch-Button komme ich auch direkt auf die entsprechende Unterseite in der anderen Sprache.

    Bin ich auf:
    www.webseite.de/seite3/
    ...komme ich mit dem Switch-Button "EN" auf:
    www.webseite.de/en/site3/


    //
    Weitere Wünsche und Gedanken möchte ich gerne als Fragen formulieren:

    Sollte man bei dieser Logik mit Cookies und/oder Sessions versuchen Leuten zu ermöglichen, dass sie bei Wiederbesuch auf der Webseite automatisch in ihrer zuletzt gewählten Sprache landen? Geht das bei meiner gewünschten Struktur?

    Kann ich eine Funktion einbauen, dass Leute die zB aus Deutschland die Webseite aufrufen ganz normal auf www.webseite.de landen und Leute die zB aus den USA aufrufen auf www.webseite.de/en/ landen?

    ////
    Soweit so gut! Ich habe mir mehrere Tutorial angesehen und bin vor allem bei diesem Hängen geblieben:

    http://www.f-thies.de/webdesign/tuto...ualen-website/

    Dennoch würde ich mit eurer Hilfe gerne eher bei 0 Anfangen. Für mich ist es denkbar, dass ich jemanden bezahle der mir hilft bzw. gewissermaßen Nachhilfe gibt. Vielleicht erstmal einige Antworten zu meinen Plänen und Ideen und ob mein Konzept soweit stimmt.

    Vielen Dank ich freue mich auf Rückmeldungen!
    Viele Grüße!

  • #2
    Das´n komplexes Thema.
    Wenn Du die Dateinamen sprachlich abhebst, reicht es doch die so zu belassen:
    www.example.com/seite1
    www.example.com/site1

    Wenn Du dafür sorgst, daß es keine gleichnamigen Dateien in beiden Sprachen gibt, kannst Du über einen Controller die entsprechenden Inhalte laden.
    Wenn Du zwingend eine Länderkennung in der URL haben willst, würde ich die auch für de mitnehmen:
    www.example.com/de/seite1
    www.example.com/en/site1

    Das kannst Du dann wiederum über eine RewriteRule abfangen und entsprechend behandeln.

    Alles weitere, wie Du mit dem Content usw. umgehen mußt, findest Du hier im Forum sicher haufenweise...
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      Also grundsätzlich bietet es sich immer an bei mehrsprachigen Webseiten eine kleine Template Engine zu nutzen.

      http://www.webmasterpro.de/coding/ar...te-system.html

      Hier ist es für Anfänger als Tutorial erklärt wie man zum Ziel kommt. Vorteil der Engine ist, das sie schon mehrsprachige Seiten unterstützt.


      Alternativ kannst du über Konstanten laden. Wo dann halt je nach Land das richtige Language File geladen wird. Ist aber nicht so schon wie mit der Enging.

      Und um leute direkt auf die richtige Sprache zu lotzen verfügt Apache über Globale Variablen welche aus dem Browser des nutzers entnommen werden.
      Mithilfe von phpinfo() kannst du dir diese Variablen angucken. Dort wirst du eine Tabelle finden wo nutzervariablen angezeigt werden. Dabei ist auch der Standort des Users sowie Browser, etc.

      Kommentar


      • #4
        Erste Unterseite auf Deutsch: www.webseite.de/seite1/
        Erste Unterseite auf Englisch: www.webseite.de/en/site1/ (Hier eben auch "site" und nicht "seite")
        Zunächst mal heißt es page, nicht site. "Seite" und "site" sind false friends und Du schaffst es sogar rückwärts falsch zu übertragen.

        Zum zweiten nutzt Du bitte [MOD] hier im Forum example.com für "Beispieldomains" statt echte urls.

        Drittens:
        Ich möchte mit Hilfe von HTML, CSS und PHP eine Mehrsprachige Webseite machen. Bisher bin ich sehr versiert darin mit Wordpress Webseiten zu erstellen und damit konnte ich auch gut zwei- und mehrsprachige Seiten erstellen. Nun möchte ich es "von Hand" machen um einfach minimierter arbeiten zu können und cleaner zu sein. Weniger ist immer mehr.
        Es gibt jede Menge, auch minimale CMS da draußen. Und gerade zwischen Handarbeit und den Moloch Wordpress passen jede Menge gute Fertiglösungen. Gerade für einen Anfänger ist es eigentlich Unsinn, das selbst zu schreiben.
        [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


        • #5
          Hallo und vielen Dank für die schnellen und ausführlichen Antworten! Klasse!

          Bitte entschuldigt. Werde in Zukunft example.com benutzen.
          Der Unterschied von "page" und "site" ist mir nicht ganz klar. Ist bei "Site" immer die gesamte "Webseite" (quasi wie eine Zeitung) gemeint und bei "page" die einzelnen Seiten der Zeitung?

          //
          @Nikosch: Gibt es denn minimale CMS die du empfehlen kannst? Oder aber gibt es so fertige Baukästen mit ein paar PHP-Dateien ohne dass es überhaupt ein CMS-Frontend gibt? Würde mich über Tipps hier sehr freuen!

          @Nagazi: Deinen Link finde ich super, das werde ich mir heute mal genauer anschauen und durcharbeiten. Sieht schon sehr nach dem aus was ich suche...eben ein "Baukasten" mit PHP-Dateien gewissermaßen...

          @Arne Drews: Ich finde dass eine Deutsche Seite mit englischer Übersetzung eindeutig so strukturiert sein sollte, dass nur die Englische Version im Unterordner ist damit einer Erkennung klar ist. Ich richte mich da ein wenig nach diesem Google-Artikel.

          Also:
          Deutsch: example.com/
          Englisch: example.com/en/
          Englisch Möglichkeit 2: en.example.com

          Deutsch: example.com/seite3
          Englisch: example.com/en/page3
          Englisch Möglichkeit 2: en.example.com/page3

          Die Zusätzliche Sprachbenennung der Unterseite (Seite <-> Page [ich hoffe so stimmt es?]) dient das, dass der User in der URL sich gewissermaßen noch heimischer in seiner Sprache fühlt...

          //
          Ich freue mich auf weitere Anregungen und Tipps! Vor allem wie gesagt falls ihr weitere Links wie der von Nagazi habt. Also PHP-Baukästen oder aber super Minimale CMS evtl. ? Ich selbst stoße beim Googlen leider immer wieder auf die gleichen oder auf Dinge die ich kaum einschätzen kann.

          Ich bin euch sehr dankbar, viele Grüße!

          Kommentar


          • #6
            Zitat von dirk87
            Ich finde dass eine Deutsche Seite mit englischer Übersetzung eindeutig so strukturiert sein sollte, dass nur die Englische Version im Unterordner ist damit einer Erkennung klar ist. Ich richte mich da ein wenig nach diesem Google-Artikel.
            ...das lese ich da nicht draus:
            Zitat von Dein Link -> Tabelle URL-Strukturen
            Unterverzeichnisse mit gTLDs:
            ihrebeispielurl.com/de/
            • Leichte Einrichtung
            • Kann geografische Ausrichtung in Webmaster-Tools verwenden
            • Lässt unterschiedliche Serverstandorte zu
            • Problemlose Unterteilung von Websites
            ...an welcher Stelle behaupten/empfehlen die das?
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Der Unterschied von "page" und "site" ist mir nicht ganz klar. Ist bei "Site" immer die gesamte "Webseite" (quasi wie eine Zeitung) gemeint und bei "page" die einzelnen Seiten der Zeitung?
              Genau. Die Website ist der gesamte Web-Auftritt. Eine einzelne Seite (zB "Kontakt") daraus nennt man daher auch Page (Seite auf englisch). Daher ist zB auch die Homepage "nur" die Startseite (und nicht wie oft gerne auch falsch verwendet die gesamte Website).
              The string "()()" is not palindrom but the String "())(" is.

              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
              PHP.de Wissenssammlung | Kein Support per PN

              Kommentar

              Lädt...
              X