php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.09.2005, 10:52  
Neuer Benutzer
 
Registriert seit: 21.11.2004
Beiträge: 23
mercurio
Standard Sprache einer Seite wechseln

Hallo Leute,

ich möchte per php die Sprache meiner Seite ändern.
Ich habe insgesamt ca. 20 html-Seiten. Oben gibt es auf jeden Seite einen Button "SPRACHE WECHSELN".

Um nicht jede einzelne html-seite mit ihrem englischen Pendant verknüpfen zu müssen, würde ich das gerne über PHP lösen.

Also zum Beispiel:
- Ich befinde mich auf "index01_de.html"
- Bei Klick auf "Sprache Wechseln" wird der Dateiname ausgelesen, "de" durch "en" ersetzt und die Seite "index01_en.html geladen.

So in etwa habe ich mir das vorgestellt.
Kann mir jemand erklären, wie ich soetwas in etwa realisiere? Oder hat jemand einen anderen (möglichst einfachen) Ansatz?

Vielen Dank schonmal,

mercurio.
mercurio ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.09.2005, 10:59  
Gast
 
Beiträge: n/a
Standard

Schau Dir die Session-Funktionen an, und benutze dann als Links

Linktext


Gruß,
Sa
 
Alt 06.09.2005, 11:20  
Neuer Benutzer
 
Registriert seit: 21.11.2004
Beiträge: 23
mercurio
Standard

Ok, habe noch nicht wirklich viel Ahung von sessions.

Wenn ich das richtig verstanden habe, muss ich zunächst auf jeder html-Seite folgendes aufrufen:

Code:
<?php
session_start();
if (!isset($_SESSION['language'])) {
   $_SESSION['language'] = en;
} else {
   $_SESSION['language'] = de;
}
?>
Und dann include ich je nachdem, ob language auf "en" oder "de" steht die englische oder die deutsche Seite, richtig?

Mit deinem Link-Beispiel muss ich aber immernoch für jede einzelne HTML-Seite einen eigenen Link setzen, da der Dateiname ja nicht immer index_xx.html ist...
Das ganze soll aber so funktionieren, dass immer die entsprechende Seite, auf der ich mich befinde, auf der anderen Sprache geladen wird, nicht zurück zum index.
mercurio ist offline  
Alt 06.09.2005, 11:30  
Gast
 
Beiträge: n/a
Standard

Du könntest auch - vorausgesetzt es muss nicht auf jeder Seite ein Button zum Sprachenwechsel sein, sondern nur auf der index.html (auf der deutschen und auf der englischen) - folgendes machen. Du legst zwei Ordner an - einen für die englischen Skripte und einen für die deutschen. Die PHP-Skripte selber nennst du aber in beiden Ordnern immer gleich. Auf der Index-Seite machst du dann einen Submit-Button zum Sprachenwechsel und lädst die entsprechend andere index-Seite. In einer Session-Variable gibst du dann einfach mit, aus welchem Ordner die einzubindenden PHP-Skripte kommen sollen.
Du setzt also auf die index-seite einfach ein session_start() und definierst dann den entsprechenden Ordner mit $_SESSION['ORDNER'] = "blub"; Du musst dann bei jedem Link die Session übergeben. Also einfach *.php?<? echo session_id(); ?> anhängen. Und die neue Seite rufst du auf mit $_SESSION['ORDNER']."/deineDatei.php".
 
Alt 06.09.2005, 11:45  
Neuer Benutzer
 
Registriert seit: 21.11.2004
Beiträge: 23
mercurio
Standard

Danke für die Antwort, aber die Möglichkeit zum Sprachwechsel sollte es auf jeder Seite geben.

Also, ich stelle mir das jetzt in etwa so vor:

Beim betreten der Seite wird die Datei index.php geladen, darin obiger Code.
Dann wird mit einer if-Abfrage entweder der englische oder deutsche Teil der PHP-Seite geladen.

Bei jeder weiteren Seite kann ich ab jetzt immer eine if-Abfrage am Anfang der Seite durchführen und dann entweder engl. oder deutsch laden.

Aber was ist, wenn jemand dei Seite nicht über index.php betritt. Dann wird die session nicht gestartet. Oder kann ich die Session einfach auf jeder Seite neu starten????
mercurio ist offline  
Alt 06.09.2005, 11:57  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Zitat:
Oder kann ich die Session einfach auf jeder Seite neu starten????
Musst du auch. Jetzt kommts nur darauf wie du deine Seite programmier hast. Grundsätzlich ist es am besten, du hast eine index.php und die einzelnen Unterseiten werden auch über diese index.php aufgerufen, z.b.
Code:
index.php?cat=news
. Demzufolge startest du in der index.php die Session.
Per switch-Befehl prüfst du nun den $_GET wert 'language' (für das ändern der Sprache). Sollte $_SESSION['language'] noch nicht gesetzt oder gar leer sein, muss die Standardsprache her.

Und nun mach das beste draus
Chr!s ist offline  
Alt 06.09.2005, 12:09  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von mercurio
Ok, habe noch nicht wirklich viel Ahung von sessions.
Tutorial: Daten per Session übergeben

Das sollte dir die grundlegenden Kenntnisse vermitteln.
imported_Ben ist offline  
Alt 06.09.2005, 12:18  
Neuer Benutzer
 
Registriert seit: 21.11.2004
Beiträge: 23
mercurio
Standard

@Chr!s:

Programmiert ist noch nicht viel, deswegen bin ich da noch völlig offen.

Das heisst du würdest alle 40 Seiten in eine Datei packen und dann über eine Variable (z.B. cat) zur jeweiligen Seite "springen" und dann per switch die Sprache wählen.

Hab ich dich da richtig verstanden?
mercurio ist offline  
Alt 06.09.2005, 12:45  
Erfahrener Benutzer
 
Registriert seit: 01.02.2004
Beiträge: 550
cytrobic
Standard

kannst auch ne variable übergeben bei den links:
So hab ichs auf meinen Seiten gelöst:

PHP-Code:
<?
if(!isset($lang)){
  
$lang "de";
  include(
"deutsch.inc.php");
} else {
  if(
$lang "de"){
    include(
"deutsch.inc.php");
  }
  if(
$lang "en"){
    include(
"englisch.inc.php");
  }
}

echo 
$anytext;

echo 
'[url="/ordner/seite2.php?lang='.$lang.'"]'.$linkname2.'[/url]';

?>
PHP-Code:
<?php
// inhalt von deutsch.inc.php
$linkname2 "Seite 2";
$anytext     "Irgendein kleiner komischer Text";
?>
PHP-Code:
<?php
// inhalt von englisch.inc.php
$linkname2 "Site 2";
$anytext     "Any little funny text";
?>
EDIT: Man könnte die Texte auch aus einer Datenbank holen.
EDIT2: Man könnte auch eine übersetzungsseite anzapfen und deren result auswerten und ausgeben lassen
__________________
keine
cytrobic ist offline  
Alt 06.09.2005, 13:19  
Neuer Benutzer
 
Registriert seit: 21.11.2004
Beiträge: 23
mercurio
Standard

Irgendwie halte ich den Ansatz von Chris da am kompaktesten:

Alles kommt in eine php-Datei. Am Anfang wir die Session gestartet, etwa so: (englisch ist Standardsprache)


PHP-Code:
<?php
session_start
();
if (!isset(
$_SESSION['language'])) {
   
$_SESSION['language'] = en;
}
elseif (
$_SESSION['language'] == 'en') {
   
$_SESSION['language'] = en;

else {
   
$_SESSION['language'] = de;
}
?>
dann gibt es einen SWITCH für die enizelnen HTML-Seiten mit jeweils einer IF-Abfrage, ob die Sprache auf engl. oder deutsch gesetzt ist:

PHP-Code:
<?php 

switch ($page) {

case 
startpage:
   if (
$_SESSION['language'] == en) {
      echo 
"Hier wird die engl. HTML-Seite ausgegeben";
   }
   elseif  (
$_SESSION['language'] == de) {
      echo 
"Hier wird die deutsche HTML-Seite ausgegeben";
   }
   break;

case 
newspage:
   if (
$_SESSION['language'] == en) {
      echo 
"Hier wird die engl. HTML-Seite ausgegeben";
   }
   elseif  (
$_SESSION['language'] == de) {
      echo 
"Hier wird die deutsche HTML-Seite ausgegeben";
   }
   break;

}
?>
Ist das so umsetzbar, oder hab ich da einen Denkfehler gemacht?
mercurio ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
die seite läd neu, aber aktualisiert nich PHP Tipps 2005-2 2 19.09.2005 16:20
Frame schließen und Sprache einer Seite wechseln workaholic HTML, Usability und Barrierefreiheit 2 06.09.2005 13:36
Kontaktformular, welches auf neue html Seite führt PHP Tipps 2005-2 4 20.07.2005 11:21
PHP News in normale HTML Seite? PHP Tipps 2005-2 5 06.07.2005 19:45
Welche seite (Adresse) rief die aktuelle seite auf? PHP Tipps 2005-2 7 05.07.2005 15:02
Login auf einer externen Seite per PHP ? PHP-Fortgeschrittene 9 03.07.2005 02:31
sprache ändern?? PHP Tipps 2005 3 01.02.2005 17:30
zu einer anderen seite wechseln?! $$$ ThiKool $$$ PHP Tipps 2005 1 16.01.2005 19:02
Neue Seite an einer bestimmten Stelle aufrufen PHP Tipps 2005 3 13.01.2005 10:09
blätterfunktion-limit-letzte seite PHP Tipps 2004-2 2 20.12.2004 23:56
Eine 2te Seite auto matisch in neuem Fenster laden PHP Tipps 2004 4 25.08.2004 14:10
[Erledigt] Tabelle auf einer Seite auslesen und in meiner Seite wiederg PHP Tipps 2004 2 14.07.2004 08:46
"NEWS-SCRIPT" in eine Seite einbinden: Aber wie ? PHP Tipps 2004 2 03.07.2004 16:33
[Erledigt] Automatisch zu einer andere Seite wechseln PHP Tipps 2004 8 17.06.2004 15:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sprache wechseln, php sprache ändern, php schnipsel sprache umschalten, php sprachwechsel, php sprache umschalten, sprachwechsel php, php sprache setzen, sprache ändern php, sprache wechseln php, php sprachen wechseln, php sprache umstellen, mit php sprache wechseln, sprache umschalten php, php sprache einstellen, sprachwechsel mit php, php sprache wählen, html sprache wechseln, php sprache auswählen, php sprachen umschalten, php welchsel sprache

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.