Mehrsprachigkeit mit Template

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

  • Mehrsprachigkeit mit Template

    Hallo vielleicht kann mir hier jemand weiterhelfen.
    Es geht darum das ich gerne eine Seite machen würde die Mehrsprachig ist.

    Das ganze läuft dann unter php als Template. Jetzt habe diesen fertigen Code und dort sollte jetzt ja die geschichte mit mehrsprachen rein. leider kenn ich mich kein bischen im php aus.

    Die Datenstruktur:

    index.php
    sites.php
    sprache/deutsch/index.php
    sprache/englisch/index.php

    Also in der index.php habe ich folgenden Code stehen:

    PHP-Code:
    <?php
                        
    include('sites.php');
                        if(isset(
    $_GET['seite']) AND isset($sites[$_GET['seite']]))
                        {
                        if(!
    file_exists($sites[$_GET['seite']])) echo "Datei existiert nicht!";
                        include 
    $sites[$_GET['seite']];
                        }
                        else
                        {
                        include 
    $sites['error'];
                        }
                    
    ?>

    In der sites.php habe ich folgenden Code stehen:

    PHP-Code:
    <?
    $sites = array();

    $sites ['startseite'] = "sprache/deutsch/index.php";

    ?>
    Diese Daten sind erstmal leer
    sprache/deutsch/index.php
    sprache/englisch/index.php


    Hoffe ihr versteht mich

    Danke schon mal.

  • #2
    Du siehst schon, dass du den Fehler nicht korrekt abfängst ! Wenn die Datei nicht existiert gibst du den echo aus und eine Zeile weiter unten includest du das File. Nach dem echo geht der Code weiter und bindet die Datei ein (obwohl du mit dem if festgestellt hast, dass die Datei nicht existiert)
    Verwende besser die() anstatt echo. Dann bricht der Code ab, wenn das File nicht vorhanden ist.

    Gruss

    tobi

    p.s. eine konkrete Frage wäre vllt auch ned schlecht...
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Re: Mehrsprachigkeit mit Template

      Original geschrieben von in-session
      leider kenn ich mich kein bischen im php aus.
      Dann lass den Thread nach Projekthilfe oder Jobgesuch schieben...

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Nein das die datei nciht vorhaden ist ist schon ok ich bekomme das aber mit der sprache nicht hin so das dass mit in eine session übernommen wird.

        Kommentar


        • #5
          Nein das die datei nciht vorhaden ist ist schon ok ich bekomme das aber mit der sprache nicht hin so das dass mit in eine session übernommen wird.
          Dass das für dich okay ist glaube ich dir ja, nur php findet es nicht so lustig wenn du eine Datei includen willst, die im Dateisystem nicht vorhanden ist.
          PHP-Code:
          $_SESSION['sprache'] = 'de'
          und so speicherst du einen Wert in einer Session Var

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            ok ich blicks nicht....

            vielleicht sollte ich doch alles ohne php machen...


            aber es kann doch nicht so schwer sein.

            So geht die Weiterleitung von der index.php auf die http://localhost/index.php?seite=startseite dort sollte jetzt z.b. der sprachordner mit rein.

            z.B.
            PHP-Code:
            <?php
            if (!isset($_GET['seite'])) header('Location: [url]http://localhost/index.php?lang=de?seite=startseite[/url]');
            ?>

            Und es sollte dann mittels einen button auf http://localhost/index.php?lang=en?seite=startseite umgesellt werden können werden.

            und de und en gibt dann den ordner an deutsch oder englisch

            Kommentar


            • #7
              Original geschrieben von in-session
              Und es sollte dann mittels einen button auf http://localhost/index.php?lang=en?seite=startseite umgesellt werden können werden.
              Vielleicht informierst du dich erst mal, wie man mehrere name=wert-Paare im Querystring richtig notiert.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                ok ich komme immer noch nicht wirklich weiter, ich habe jetzt den php skript angepaßt. und eine Session datei gemacht, Ich weiß aber nciht wie das ganze jetzt übergeben wird bzw. wie ich es umswitche.

                index.php
                PHP-Code:
                <?php
                include ('sites2.php');

                if(isset(
                $_GET['seite']) AND isset($sites[$_GET['seite']]))
                {
                  
                $site ="sprache/".$_SESSION['lang']."/".$sites[$_GET['seite']];
                }else
                {
                  
                $site ="sprache/".$_SESSION['lang']."/".$sites[$_GET'default'];
                }

                if(!
                file_exists($site))
                {
                  
                $site ="sprache/".$_SESSION['lang']."/".$sites['error'];
                }
                require 
                $site;
                ?>

                session.php
                PHP-Code:
                <?php
                session_start
                ();
                if (!isset(
                $_SESSION['lang']))  $_SESSION['lang'] = 'deutsch';
                ?>
                sites2.php
                PHP-Code:
                <?php 
                $sites 
                = array();
                $sites['news'] = "index.php";
                $sites['error'] = "403.php";
                ?>
                Habe die sprachdaten angelegt in:
                sprache/deutsch/index.php
                sprache/deutsch/403.php
                sprache/englisch/index.php
                sprache/englisch/403.php
                Zuletzt geändert von in-session; 30.03.2007, 14:29.

                Kommentar


                • #9
                  ok ich denke ich bin gut vorran gekommen.
                  Das umswitchen geht aber wie kann ich das dann mit den Links machen?

                  Also als erstes mal wenn ich umswitche von einer auf die andere Sprache:
                  PHP-Code:
                  <a href="?lan=de"
                  und
                  PHP-Code:
                  <a href="?lan=en"
                  ich denke nicht das das richtig ist oder?

                  zweitens mal wenn ich umswitche von einer auf die andere Seite:
                  vorher: Da wird zwar die Sprache mit in die Addresleiste übergeben aber der rest wie z.B. seite=impressum fehlt.
                  PHP-Code:
                  <a href="index.php?seite=impressum"
                  und jetzt:
                  PHP-Code:
                  <a href="index.php?lan=de&seite=kontakt"
                  kann ja auch nicht wirklich sein oder?


                  hier mal de codes:

                  session.php
                  PHP-Code:
                  <?
                  session_start();
                  if (isset($_GET['lang']) 
                  AND $_GET['lang']!=$_SESSION['lang'])
                  {
                  $_SESSION['lang']== $_GET['lang'];
                  }
                  if (isset($_SESSION['lang']) 
                  AND $_SESSION['lang']== 'de')
                  {
                  $lan = 'en';};

                  if (isset($_SESSION['lang']) 
                  AND $_SESSION['lang']== 'en')
                  {
                  ?>
                  index.php
                  PHP-Code:
                  <?php
                  include('sites.php');

                  if(isset(
                  $_GET['seite']) AND isset($sites[$_GET['seite']]))
                  {
                    
                  $site ="sprache/".$lan."/".$sites[$_GET['seite']];
                  }else
                  {
                    
                  $site ="sprache/".$lan."/".$sites['default'];
                  }

                  if(!
                  file_exists($site))
                  {
                    
                  $site ="sprache/".$lan."/".$sites['error'];
                  }
                  require 
                  $site;  

                           
                  ?>
                  sites.php
                  PHP-Code:
                  <?
                  $sites = array();

                  /* HAUPTMENÜ*/
                  $sites ['startseite'] = "index.php";
                  $sites ['impressum'] = "impressum.php";
                  $sites ['kontakt'] = "kontakt.php";
                  $sites ['error'] = "403.php";
                  ?>

                  Kommentar

                  Lädt...
                  X