Webseite 2-Sprachig

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

  • #76
    @Ricola: Hilfffe!

    Ich benötige nochmals die unglaubliche Fähigkeit der kleinen php-Maus!

    Kommentar


    • #77
      tja - es gibt so viele Beiträge zum Thema Mehrsprachigkeit.

      Wenn Du es einmal kapiert hast, dann brauchst nicht immer nachfragen.

      Ricola hilft Dir nicht wenn sie Dir immer wieder die Lösung postet.

      Kommentar


      • #78
        Bist ja ein ganz schlauer^^

        geht nicht mehr um die mehrsprachigkeit sondern um etwas anderes. <--- das habe ich mitlerweile verstanden, habe mir das script oft genug angeschaut. Bin zwar anfänger mit php, programmieren tu ich aber trotzdem!


        @Ricola: wenn du nicht mehr magst (was ich bei weitem nicht glaube), ist das auch kein Problem, nur würde ich es gerne wissen.

        Dürfte für dich ja nur eine Kleinigkeit sein. Habe auch schon gesucht aber nichts im Zusammenhang, mit dem was wir schon gemacht haben, gefunden.

        Kommentar


        • #79
          ich hab den ganzen Thread gelesen und weiß um was es geht.

          Das Umschalten von einer Sprache zur anderen geht jedenfalls auch einfacher.

          Ich persönlich mach das mit einer Sessionvariable welche per GET umgeschaltet werden kann.

          Abhängig vom Inhalt von $_SESSION['lang'] wird dann das jweilige Sprachfile includet.

          Da ich das alles in der index mach, in der Sprachdatei, php-Datei und Templatedatei includet werden, hab ich auch kein Problem mit den Pfaden.

          Aber selbst wenn man eine komplexere Verzeichnisstruktur hat,
          dann kann mit der Angabe eines absoluten Pfades die Sprachdatei includen.

          Die eigene Datei erhälst ja mit $_SERVER['PHP_SELF'],
          so daß du auf die aktuelle Seite wieder zurückkommst.



          Aber - tschuldigung - wollte nicht stören. Bau doch fremde Funktionen ein ...

          Du müßtest allerdings merken, daß Du bei der erstbesten Schwierigkeit doch wieder nachfragen mußt und daß Du Dir selber den größten Gefallen tust wenn Du ein Tutorial machst oder ein
          PHP-Buch zur Hand nimmst.

          Kann natürlich auch sein, daß Du PHP gar nicht lernen willst,
          sondern daß Du nur willst daß Dein Script "funzt".

          Zuletzt geändert von Koala; 06.05.2007, 20:40.

          Kommentar


          • #80
            Original geschrieben von noob_in_php
            1) Ich include für alle Seiten eine footer.php. In dieser Footer.php
            habe ich den gleichen code geschrieben wie in den index dateien auch.

            2) Der text wir da auch angezeigt, leider nur deutsch. auch nach klicken
            des englisch buttons springt er immer wier zurück auf deutsch.
            hey na =D, och tut mir leid ich hatte leider mich abkoppeln müssen für
            eine zeit grund egal, hat nix mit euch zutun.

            1) du brauchst da normaler weise nur die lang arrays einfügen
            weil sonst 2) die footer ja nicht selber aufegerufen wurde also die
            session existiert so wirklich garnicht, also beilbt sie default (lol kompliziert erklärt xD)
            also kurz: lass den lang includer im footer und sonstigem weg,
            weil eimal reicht, dafür reicht normalerweise zB <php echo $lang['2'];>
            probiers mal aus ;D

            und geht bitte net so frech mit den usern hier um^^ sei froh dass sie dir helfen ;P

            EDIT:
            man und koalas sind doch nicht so langsam wie sie aussehen ^^ 5 minuten verdammt xD
            Zuletzt geändert von Ricola; 06.05.2007, 20:35.
            -wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>

            Kommentar


            • #81
              @Koala das war net böse gemeint. habe deinen ersten post nur in den falschen hals bekommen. srry!

              und klar will ich php lernen! und hab ich auch schon. bin kein mensch, der sich immer alles machen lassen will. ich möchte es selber können. nur ist man bei manchen sachen auf die hife anderer angewiesen wenn man einsteiger ist.

              und im gegensatz zu anderen bemühe ich mich ja auch selber und versuche dinge rauszufinden. möchte net in diese schublade gesteckt werden..

              srry nochmal köalabärchen. eigentlich mag ich ja koalabärchen.
              Zuletzt geändert von noob_in_php; 06.05.2007, 22:28.

              Kommentar


              • #82
                ok - dann noch einen Tip:

                wenn man global benutzt, dann hat man einen Fehler im Konzept.

                Benutz stattdessen Sessions:

                Auf jeder Seite, die nicht includet wird, session_start(); drüber und dann

                PHP-Code:
                $_SESSION['lang'] = "de"//z.B. 

                // beziehungsweise, wenn die Sprache geändert wird:

                $_SESSION['lang'] = $_GET['lang']; 
                Es gibt keinen Grund beim Ändern der Sprache Javascript einzusetzen.

                Kommentar


                • #83
                  Danke für dein Tip, aber wir arbeiten hier mit sessions. der wert "en" bzw "de" wird in einer session gespeichert. das mit den globalen variablen haben wir net mehr eingesetzt, da ricola ebenfalls davon abgeraten hat.


                  @Ricola:
                  habe das jetzt ausprobiert. aslo wenn ich dich richtig verstanden habe brauche ich der footer.php nur den php tag:
                  PHP-Code:
                  <?php echo $lang['1'];?>
                  einfügen?

                  ich habe ja in den ganzen index dateien die include funktion drin für die footer.php. und in der footer.php habe ich den lang include jetzt komplett draussen gelassen.

                  folgendes passiert jetzt:
                  der ganze text wird gar net mehr angezeigt. auch kein default. habe ich wieder was verkackt?
                  Zuletzt geändert von noob_in_php; 06.05.2007, 22:39.

                  Kommentar


                  • #84
                    gut - und was ist mit Deinem Javascript ?

                    Werf das doch raus - Du willst doch nicht beide Sprachversionen als JS-Variablen vorhalten und dann je nachdem auswählen.

                    Die Sprache soll ja über Seiten hinweg erhalten/geändert bleiben.

                    Und da man mit Javascript nicht in die Session schreiben kann...
                    (jedenfalls nicht ohne Ajax)

                    -----

                    sorry, aber so was zeigt, daß Du nicht im Geringsten weißt was Du da tust: <?php echo['1'];?>

                    Das sind absolute Grundlagen:

                    wie gibt man eine Variable per echo aus ?


                    --------

                    Lern wie man debuggt und schreib error_reporting(E_ALL); oben in Dein Script.
                    SChreib doch mal

                    Zuletzt geändert von Koala; 06.05.2007, 22:31.

                    Kommentar


                    • #85
                      Nein, das hast du falsch verstanden. das javascript ist meine navigation. da oben in der navigation befinden sich 2 flaggen. eine deutsch, die andere englisch.
                      die umschaltung erfolgt über 2 ext dateien und 2 sprachdateien. in dem javascript ist lediglich nur der aufruf (link) einer scriptdatei enthalten.

                      PHP-Code:
                      deutsch:

                      <
                      a href="/action.php?lang=de">

                      englisch:
                      <
                      a href="/action.php?lang=en"
                      das heißt sofern ich das richtig verstanden habe, dass der wert über die action.php in die session geschrieben wird. denn ich bin mir bewusst das php bei weitem net in javasript funkt. aber das ganze läuft ja. wenn ich von einer seite zu anderen springe dann bleibt die sprache englisch.

                      gibt nur das problem mit der include datei: siehe @ricola letzter beitrag von mir.
                      und es gibt noch eine kleinigkeit mit der login session, die ich in der login.php erzeuge.
                      ist aber kein problem! nur stört mich ganz dolle das mit der include footer.php.

                      weißt du noch was darüber?



                      zu der grundlage:

                      war nur ein fehler meiner seits srry!
                      PHP-Code:
                      <?php echo $lang['1']; ?>
                      !!


                      habe den befehl error_reporting(E_ALL); eingebaut. es werden jedoch keine fehlermeldungen ausgegeben. es werden einfach die sachen aus der footer.php net includiert. hast du eine idee?
                      Zuletzt geändert von noob_in_php; 06.05.2007, 22:49.

                      Kommentar


                      • #86
                        Ich hab mir Ricolas Script nicht genau angeschaut,
                        aber Du mußt halt mal überlegen ob und wo die Sprachvariablen
                        drinstehn.

                        In $_SESSION['lang'] ?

                        Mach mal print_r($_SESSION['lang']; vor und im includeten Footer.

                        Kommentar


                        • #87
                          ok probiere es.

                          es ist die lang_session! und du hast glaube ich ein fehler im syntax.

                          print_r($_SESSION['lang']; ---> print_r($_SESSION['lang']);



                          habe jetzt print_r($_SESSION['lang']); in der footer.php stehen und auch auf der index. trotzdem wird noch nichts angezeigt. alle anderen texte werden in subseiten ja angezeigt nur net aus der includeten footer.php.
                          Zuletzt geändert von noob_in_php; 06.05.2007, 23:01.

                          Kommentar


                          • #88
                            lol - ja - ne Klammer hatte gefehlt.

                            Dann mach mal in der footer.php print_r($_SESSION);

                            Was wird denn ausgegeben ?

                            Was heißt denn "nichts angezeigt" ?

                            Wenn die Datei includet wird, dann muß es doch möglich sein,
                            daß Du dort irgendwas ausgibst.

                            Kommentar


                            • #89
                              Es wird einfach nichts ausgegeben.

                              ich habe in der footer.php 6 echo befehle die verschiedene texte ausgeben sollen. wenn ich den lang includer in der zu includierenden footer.php einbaue dann wird nur der default text angezeigt. nehme ich den lang include in der zu includierenden footer.php raus dann kann er die variablen net holen.

                              es wird einfach gar nichts angezeigt auch keine fehler oder so.

                              das ist meine footer:
                              PHP-Code:
                              <DIV id=kop>
                              <P><a href="domäne.de"><?php echo $lang['footer0']; ?
                              ></
                              a>&nbsp;|&nbsp;<a href="domäne.de"><?php echo $lang['footer1']; ?
                              ></
                              a>&nbsp;|&nbsp;<a href="domäne.de"><?php echo $lang['footer2']; ?
                              ></
                              a>&nbsp;|&nbsp;<a href="domäne.de"><?php echo $lang['footer3']; ?
                              ></
                              a>&nbsp;|&nbsp;<a href="mailto:admin@domäne.de"><?php echo $lang['footer7']; ?></a></P>
                              <P><?php echo $lang['footer4']; ?><BR><?php echo $lang['footer5']; ?> 
                              <a href="domäne.de"><?php echo $lang['footer6']; ?><a/></P></DIV>
                              <BR class=set></DIV>
                              <DIV style="DISPLAY: none">
                              <DIV style="DISPLAY: none">
                              <IMG height=1 alt="" src="domäne.de" width=1 border=0></DIV></DIV>

                              und das ist meine index:
                              PHP-Code:
                              <?php
                              #error_reporting(E_ALL);

                              // lang includer 4 ROOT START
                              /* diesen bereich kannst du in beliebige dateien einfügen damit die sprache auch dort vorhanden ist*/
                              if (!isset($_SESSION)) {
                                  
                              session_start();
                                  }
                              if ( !isset(
                              $_SESSION['lang_session']) )
                                  {
                                  
                              $_SESSION['lang_session'] = "de";
                                  
                              $absolute_include="lang/lang_de.php";
                                  
                              $folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
                                  if(
                              $folder_depth == false$folder_depth 1;
                                  @include(
                              str_repeat("../"$folder_depth 1) . $absolute_include); //das @ unterdrückt die fehlermeldung
                                  
                              }
                              else if( isset(
                              $_SESSION['lang_session']) )
                                  {
                                  
                              $absolute_include="lang/lang_".$_SESSION['lang_session'].".php";
                                  
                              $folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
                                  if(
                              $folder_depth == false$folder_depth 1;
                                  @include(
                              str_repeat("../"$folder_depth 1) . $absolute_include); //das @ unterdrückt die fehlermeldung
                                  
                              }
                              else
                                  {
                                  
                              $_SESSION['lang_session'] = "de";
                                  include(
                              "lang/lang_de.php");
                                  }
                              // lang includer 4 ROOT END
                              ?>

                              fehlt noch was in der footer.php damit die texte angezeigt werden? die footer.php wird natürlich in jeder index datei mit include eingebunden.
                              Zuletzt geändert von noob_in_php; 06.05.2007, 23:13.

                              Kommentar


                              • #90
                                ich find, das sieht ok aus - wieso unterdrückst Du Fehlermeldungen und
                                kommentierst error_reporting aus ?

                                Dann kriegst natürlich auch keine Fehlermeldung.

                                Kommentar

                                Lädt...
                                X