php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 8 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 04-05-2007, 02:20
noob_in_php
 Junior Member
Links : Onlinestatus : noob_in_php ist offline
Registriert seit: May 2007
Beiträge: 156
noob_in_php ist zur Zeit noch ein unbeschriebenes Blatt
Standard Webseite 2-Sprachig

Hallo liebe PHP Profis!

Bitte verweis mich nicht auf die Suchfunktion dieses Forum, dessen bin ich mir bewusst. Ich habe ca 3 std nach meinem Problem gesucht aber nichts gefunden und da ich noch ein Anfänger in PHP bin, ist es für mich ziehmlich schwer eure Sprache zu verstehen.


Folgendes Problem:
- Ich habe ein javascript programmiert, indem ich gerne 2 Grafikbuttone einbinden würde. Diese sollen einmal eine DE Flagge und eine EN Flagge sein. Über diese beiden Flaggen sollen die beiden Sprachen geschaltet werden.

- Fernerhin möchte ich keine DB mehr benutzen, da mir keine mehr zur Verfügung steht. Die Texte sollen in Dateien stehen.

Ich würde folgenden Quellcode verwenden:

In allen Index.php dateien:

Im Header Bereich:
switch ($lang) {
default: include("lang_de.php");
break;
case "de": include("lang_de.php");
break;
case "en": include("lang_en.php");
break;
}


An den Positionen, wo die Texte aufgerufen werden sollen:
<H3><?php echo $info[5]; ?></H3>
<P>
<?php echo $info[0]; ?><BR>
<?php echo $info[1]; ?><br>
<?php echo $info[2]; ?><br>
<?php echo $info[3]; ?><br>
<?php echo $info[4]; ?></P>

<H3><?php echo $allgemeininfo[0]; ?></H3>
<LI><A href="link.de"><?php echo $allgemeininfo[1]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[2]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[3]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[4]; ?></A>




In den Dateien, wo die Texte stehen (index_de.php):
<?php

global $info;
global $allgemeininfo;



$info=array(
//0
//0
"Text1",
//1
"Text2",
//2
"Text3",
//3
"Text4",
//4
"Text5",
//5
"Text6",
);

$allgemeininfo=array(
//0
//0
"Text1",
//1
"Text2",
//2
"Text3",
//3
"Text4",
//4
"Text5",
//5
"Text6",
);
?>


In den Dateien, wo die Texte stehen (index_en.php):
<?php

global $info;
global $allgemeininfo;



$info=array(
//0
//0
"Text1 (en)",
//1
"Text2 (en)",
//2
"Text3 (en)",
//3
"Text4 (en)",
//4
"Text5 (en)",
//5
"Text6 (en)",
);

$allgemeininfo=array(
//0
//0
"Text1 (en)",
//1
"Text2 (en)",
//2
"Text3 (en)",
//3
"Text4 (en)",
//4
"Text5 (en)",
//5
"Text6 (en)",
);
?>



Links für die Flaggen
ich hätte auf jeder Flagge den Link mit dem Parameter domäne/inde.php?$lang=en bzw de gesetzt. Zudem gibts noch ein weiteres Problem. Ich möchte wenn der User sich auf einer Unterseite befindet und er die Sprache umstellt nicht immer wieder auf die Startseite geleitet wird sondern er dort bleibt wo er gerade ist.
Das geht nicht mit einem absoluten Link oder so, da ich immer wieder die gleiche java navi einbinde! Also ich habe eine java navi für alle templates die ich von root einbinde. Gibt es da noch ein Weg, die aktuelle URL zwischen zu speicher, um immer wieder dort zu bleiben? Ich weiß schon das das geht nur wie?

Eins weiß ich noch (hoffe es ist richtig) man muss damit die Sprache auch auf den weiteren Subseiten so bleibt, wie man sie eingestellt hat, den Link parameter ?$lang hinter der url mit angeben.


Jetzt bekomme ich bei verschiedenen Varianten Fehlermeldungen bzw der Text wird gar nicht angezeigt. Ich vermute das liegt daran, dass die Varaiblen nicht als Global definiert wurden.?

Kann es auch vielleicht sein, dass es mit dem javascript Probleme gibt? Ich weiß ja das java clientseitig ausgeführt wird und php Serverseitig. Es ist doch aber eigentlich nur eine Übergabe.?

Hat jemand einen Lösungsvorschlag, ich wäre euch echt sehr dankbar.

Und bitte nich sauer sein, da schon wieder so ein Beitrag geöffnet wurde. Ich habe wirklich lange gesucht und viel probiert.
Viele Grüße

Geändert von noob_in_php (04-05-2007 um 02:23 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 04-05-2007, 03:07
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.272
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zum einen "register_globals" ... also lieber $_GET["lang"] verwenden.

Zum anderen:
PHP-Code:
switch ($lang) {
    default:
        include(
"lang_de.php");
        break;
    case 
"de":
        include(
"lang_de.php");
        break;
    case 
"en":
        include(
"lang_en.php");
        break;

da gehört "default:" als letztes !
PHP-Code:
switch ($_GET["lang"]) {
    case 
"de":
        include(
"lang_de.php");
        break;
    case 
"en":
        include(
"lang_en.php");
        break;
    default:
        include(
"lang_de.php");
        break;

__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #3 (permalink)  
Alt 04-05-2007, 03:33
Benutzerbild von Ricola Ricola
 Registrierter Benutzer
Links : Onlinestatus : Ricola ist offline
Registriert seit: Feb 2007
Ort: Deutschland
Beiträge: 102
Ricola ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hey =)
dein default sollte als letztes stehen
PHP-Code:
switch ($_GET["lang"]) {
    case 
"de":
        include(
"lang_de.php");
        break;
    case 
"en":
        include(
"lang_en.php");
        break;
    default: 
// hier her ;P
        
include("lang_de.php");
        break;


tipp: kannst mal $_SESSION['lang'] eventuell einbinden,
so wird die sprache die gewählt wurde als session gespeichert bis der user seinen
browser schliesst bzw die seite verlässt.
ein vorschlag wäre von mir zB

index.php
PHP-Code:
<?php
if ( !isset($_SESSION['lang']) )
{
include(
"lang_en.php");
$_SESSION['lang'] = "en";
}
else
{
include(
"lang_".$_SESSION['lang'].".php");
}
?>

<a href="/action.php?lang=de">Deutsch</a> - <a href="/action.php?lang=en">English</a>

action.php
PHP-Code:
<?php
session_start
();

if ( isset(
$_REQUEST['lang']) )
{
$_SESSION['lang'] = $_REQUEST['lang'];
header("Location: " .$_SERVER['HTTP_REFERER']);
}
else
{
header("Location: " .$_SERVER['HTTP_REFERER']);
}
?>
der user klickt auf den link, und wird nach action.php gebracht,
dort wird geprüft was der user als request gewählt hat,
dann wird das in eine session gespeichert udn der user wird
zurück transportiert zur index.php die in der gewählten sprache dargestellt wird.

wenn es weiterhilft =)

EDIT:
hmm ok goth war schneller mit dem default =o)
__________________
-wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>
Mit Zitat antworten
  #4 (permalink)  
Alt 04-05-2007, 04:39
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.272
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mach Dir nichts draus ... waren ja nur 26 Minuten ...
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #5 (permalink)  
Alt 04-05-2007, 04:47
DivDax
 Registrierter Benutzer
Links : Onlinestatus : DivDax ist offline
Registriert seit: Sep 2005
Beiträge: 64
DivDax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich verwende aktuell folgendes snippet in einem Projekt:

PHP-Code:
    $default_lang 'de';
    
$default_time time()+3600*24*365;
    
    
$lang $_GET["lang"];
    if(
$lang) {
        if(
file_exists("language/".$lang.".php")) { 
            
setcookie("lang"$lang$default_time);
            include 
'language/'.$lang.".php"
        } else {
            
setcookie("lang"$default_lang$default_time);
            include 
'language/'.$default_lang.".php";
        }
    } else {
        if(
file_exists("language/".$_COOKIE["lang"].".php")) {
            include 
'language/'.$_COOKIE["lang"].".php";
        } else {
            
setcookie("lang"$default_lang$default_time);
            include 
'language/'.$default_lang.".php";
        }
    } 
Man könnte das ganze auch noch so erweitern, dass das Script die Herkunft des Users ermittelt und dementsprechend die Standardsprache setzt.


Gruß,
Div
Mit Zitat antworten
  #6 (permalink)  
Alt 04-05-2007, 04:47
Benutzerbild von Ricola Ricola
 Registrierter Benutzer
Links : Onlinestatus : Ricola ist offline
Registriert seit: Feb 2007
Ort: Deutschland
Beiträge: 102
Ricola ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von goth
Mach Dir nichts draus ... waren ja nur 26 Minuten ...
=P aber du hast nicht mittendrin hunger bekommen und
hast dir denn was zue ssen gemacht oder ? ^^ xD
__________________
-wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>
Mit Zitat antworten
  #7 (permalink)  
Alt 04-05-2007, 04:50
noob_in_php
 Junior Member
Links : Onlinestatus : noob_in_php ist offline
Registriert seit: May 2007
Beiträge: 156
noob_in_php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank erstmal für eure Hilfe! Ich versuche es sofort einzubauen und werde euch berichten was bei rausgekommen ist.

Gibt es vielleicht Probleme mit den Sessions? Denn es wird schon eine Session für das Login erstellt. Ich bin benutze für meine Seite auch ein Forum und dessen Login script benutze ich auch für die Startseite. Dort lese ich gewisse Userdaten aus um sie in der Startseite anzeigen.

Ich werds trotzdem mal so probieren. Was ist mit der action.php? die lege ich einfach auf root und gebe im Link: http://www.domäne.de/action.php an?

Und noch was: sind die sachen in den text dateien so richtig gewesen?


viele grüße
Mit Zitat antworten
  #8 (permalink)  
Alt 04-05-2007, 04:52
DivDax
 Registrierter Benutzer
Links : Onlinestatus : DivDax ist offline
Registriert seit: Sep 2005
Beiträge: 64
DivDax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Ricola:
Hast du Kapazitäten frei, bzgl. eines Designs? Wie sieht's mit Referenzen aus?
Habe ein gut besuchtes Portal, das noch etwas verschöndert werden sollte, falls Interesse besteht.

OT:
Meine Pizza ist gleich fertig...hamham..

EDIT:
In der Sprachfile sollte sowas in der Art stehen:

PHP-Code:
$lang["welcome"] = "Willkommen";
$lang["username"] = "Benutzername";
usw

Geändert von DivDax (04-05-2007 um 04:54 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 04-05-2007, 04:59
Benutzerbild von Ricola Ricola
 Registrierter Benutzer
Links : Onlinestatus : Ricola ist offline
Registriert seit: Feb 2007
Ort: Deutschland
Beiträge: 102
Ricola ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von noob_in_php
Gibt es vielleicht Probleme mit den Sessions?
Denn es wird schon eine Session für das Login erstellt.
Ich bin benutze für meine Seite auch ein Forum und dessen
Login script benutze ich auch für die Startseite.
Dort lese ich gewisse Userdaten aus um sie in der Startseite anzeigen.
wenn du keine namens-konflikte haben solltest dann nicht.

Zitat:
Original geschrieben von noob_in_php
Was ist mit der action.php? die lege ich einfach auf root und
gebe im Link: http://www.domäne.de/action.php
ja root =)
__________________
-wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>
Mit Zitat antworten
  #10 (permalink)  
Alt 04-05-2007, 05:03
Benutzerbild von Ricola Ricola
 Registrierter Benutzer
Links : Onlinestatus : Ricola ist offline
Registriert seit: Feb 2007
Ort: Deutschland
Beiträge: 102
Ricola ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von DivDax
@Ricola:
Hast du Kapazitäten frei, bzgl. eines Designs?
Wie sieht's mit Referenzen aus?
Habe ein gut besuchtes Portal, das noch etwas verschöndert
werden sollte, falls Interesse besteht.
also wenn ich die zeit wieder aufbringe, kann ich mal reinschauen und
sehen was sich machen lässt

Zitat:
Original geschrieben von DivDax


EDIT:
In der Sprachfile sollte sowas in der Art stehen:

PHP-Code:
$lang["welcome"] = "Willkommen";
$lang["username"] = "Benutzername";
usw
das hab ich leider vergessen zu schreiben >.<

ps: guten hunger ^^ =P
__________________
-wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>
Mit Zitat antworten
  #11 (permalink)  
Alt 04-05-2007, 05:05
DivDax
 Registrierter Benutzer
Links : Onlinestatus : DivDax ist offline
Registriert seit: Sep 2005
Beiträge: 64
DivDax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Ricola
Adde mich doch mal eben per ICQ/Skype, damit wir nicht den ganzen Thread zuspammen müssen.
icq: 81825580
skype: divmedia

Gute Arbeit wird auch dementsprechend entlohnt.
Mit Zitat antworten
  #12 (permalink)  
Alt 04-05-2007, 05:11
noob_in_php
 Junior Member
Links : Onlinestatus : noob_in_php ist offline
Registriert seit: May 2007
Beiträge: 156
noob_in_php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also habe folgendes probiert:

in index.php

<?php


switch ($_GET["lang"]) {
case "de":
include("http://www.meinedomäne.de/lang_de.php");
break;
case "en":
include("http://www.meinedomäne.de/lang_en.php");
break;
default:
include("http://www.meinedomäne.de/lang_de.php");
break;
}

?>

das steht dort wo ich die texte auslesen möchte
<H3><?php echo $info[5]; ?></H3>
<P>
<?php echo $info[0]; ?><BR>
<?php echo $info[1]; ?><br>
<?php echo $info[2]; ?><br>
<?php echo $info[3]; ?><br>
<?php echo $info[4]; ?></P>

<H3><?php echo $allgemeininfo[0]; ?></H3>
<LI><A href="link.de"><?php echo $allgemeininfo[1]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[2]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[3]; ?></A>
<LI><A href="link.de"><?php echo $allgemeininfo[4]; ?></A>
</LI></UL>


und die lang_de.php und lang_de.php:
<?php

register_globals $firmeninfo;
register_globals $algemeininfo;



$info=array(
//0
//0
"Text",
//1
"Text",
//2
"Text",
//3
"Text",
//4
"Text",
//5
"Text",
);

$allgemeininfo=array(
//0
//0
"Text",
//1
"Text",
//2
"Text",
//3
"Text",
//4
"Text",
);
?>

So bekomme ich eine Fehlermeldung wegen unzulässiger T_Variable oder so. Wenn ich das register_global rausnehme dann wird kein Text angezeigt.

Ich versuchs gerad nochmal mit der 2. Lösung.

Geändert von noob_in_php (04-05-2007 um 05:34 Uhr)
Mit Zitat antworten
  #13 (permalink)  
Alt 04-05-2007, 05:21
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.272
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Ricola
=P aber du hast nicht mittendrin hunger bekommen und
hast dir denn was zue ssen gemacht oder ? ^^ xD
Nein ... bin auf Diät ... da gibt's um diese Zeit nix mehr ...
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #14 (permalink)  
Alt 04-05-2007, 05:28
noob_in_php
 Junior Member
Links : Onlinestatus : noob_in_php ist offline
Registriert seit: May 2007
Beiträge: 156
noob_in_php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

2. Versuch ist mir auch misglückt.

folgendes hab ich erstellt:
in index

<?php
if ( !isset($_SESSION['lang']) )
{
include("http://www.meinedomäne.de/lang_en.php");
$_SESSION['lang'] = "en";
}
else
{
include("lang_".$_SESSION['lang'].".php");
}

?>

<a href="/action.php?lang=de">Deutsch</a> - <a href="/action.php?lang=en">English</a>

die action.php hab ich erstellt und in den gleichen ordner gelegt.

default wird kein text angezeigt! wenn ich jetzt auf ein link klicke dann steht die angeforderte seite kann nicht angezeigt werden.

?? Entweder bin ich nicht auf trapp oder oder ich bin da nicht auf trapp!?

Was ist falsch beide vorschläge funktionieren nicht. ich denke weil ICH da irgendwas noch vergesse oder nicht verstehe!!

Wäre schön wenn mir jemand das nochmal schildert wie der syntax in den dateien aussehen soll. wie gesagt habe die:
- index dateien wo der text eingelesen wird
- die text dateien selber
- die links für den sprachwechsel
- der syntax für die daten auslesen (<? php echo $info[1]; ?>

Ich hoffe ich bekomms noch hin! wird das auch gern können..
Mit Zitat antworten
  #15 (permalink)  
Alt 04-05-2007, 05:39
DivDax
 Registrierter Benutzer
Links : Onlinestatus : DivDax ist offline
Registriert seit: Sep 2005
Beiträge: 64
DivDax ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry, aber ich sags zum letzen mal:
Bitte setze deinen PHP-Code in einen PHP-Tag -> Forenregeln.


Warum verlinkst du auf action.php wenn die auswahl der Sprache in der index.php steht?

Wenn die Datei lang_en.php im selben Ordner liegt, warum nicht eine relative Pfadangabe?
PHP-Code:
include("http://www.meinedomäne.de/lang_en.php"); 

Geändert von DivDax (04-05-2007 um 05:43 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:43 Uhr.