Sprachdateien in php?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Pato
Mitglied
Beiträge: 426
Registriert: 11.05.2005 23:13
Wohnort: Ansbach
Kontaktdaten:

Sprachdateien in php?

Beitrag von Pato »

Hi..

und zwar bin ich grad ein wenig am php rumprobieren...
und möchte gerne zwei sprachdateien Deutsch und Englisch nutzen. Immoment hab ich nur eine (DE), jedoch funktioniert es irgendwie nicht... woran liegt das?

index.php

Code: Alles auswählen

<?php

include("language/lang_de.php");

include("style/index_body.html");

$lang->assign_vars(array(
 "L_HALLO" => "$lang[Hallo]",
));

?>
index_body.html

Code: Alles auswählen

{L_HALLO}
lang_de.php

Code: Alles auswählen

<?php

$lang = array_merge($lang, array(
"Hallo" => 'Hallo und Herzlich Willkommen,',
));

?>
Kann mir einer vielleicht helfen?

MfG Pato
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Dir ist aber schon bewusst, dass die Template-Funktion nicht von PHP mitgeliefert wird sondern durch phpBB?
Ich würde mich erst mal mit den Grundlagen zu PHP-Ausgaben beschäftigen...

Viele Grüße,

Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Du willst das nicht auf phpBB Basis machen oder?

Dann versuche es mal damit:

Code: Alles auswählen

<?php
// index.php

include('./lang_de.php');
// include('./lang_en.php');

echo $lang['welcome'];
?>

Code: Alles auswählen

<?php
// lang_de.php

$lang = array(
    'welcome' => 'Willkommen auf dieser Seite'
);

?>
Zwar ist da jetzt kein Templatesystem dabei aber so etw3as wie Smarty kann man ja noch einbauen.

Wenn es doch phpBB3 bassiert sein soll lese mal http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten

Ach ja ein gutes PHP-Tutorial sollte den Einstieg erleichtern, man fängt bei einfachen Dingen an und nach einiger Zeit kann man sich dann an ein komplexes Sxstem wie phpBB wagen und es sich anschauen, versuchen es zumindest teilweise zu verstehen und dann für seine Zwecke zu erweitern...
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Pato
Mitglied
Beiträge: 426
Registriert: 11.05.2005 23:13
Wohnort: Ansbach
Kontaktdaten:

Beitrag von Pato »

Hi,..

ne, es soll ein separates php sein... also nicht eins was mit phpbb läuft.

danke @boechi91
Die funktion mit echo hab ich schon ausprobiert und hat auch bereits funktioniert...
ich möchte aber gern so ein ähnliches templates system benutzen mit navi und body. Und möchte gern das Ergebnis was ich per echo bekomm in die templates als z.B. {blubb} eingeben, damit ich das Ergebnis ins Layout einfügen kann.
Ich weiß, dass ich HTML auch in php nutzen kann,... aber das ist mir zu umständlich...

Code: Alles auswählen

<?php 
// index.php 

include('./lang_de.php'); 
include('./lang_en.php'); 

echo $lang['welcome']; 
?> 
Wenn ich beide sprachdateien include hab ich ja das problem, dass er ja nicht weiß welche Sprache er einfügen soll oder net?
Es soll zwei links DE und EN geben, wo der Benutzer die Möglichkeit hat die Sprache zu ändern... das prinzip glaub ich hab ich verstanden, nur es funktioniert bei mir mit der umgang nicht...

if DE... include lang_de
else include lang_en

oder so ähnlich oder wie stell ich das intelligent an? *fG*

Ja, ich sollte vielleicht wirklich php lernen, jedoch hab ich schon mehrere PHP-Tutorial durch gemacht und irgendwie war das mir immer einwenig zu hoch und hab den überblick verlohren... ^^

MfG Pato
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Naja die PHP-Grundlagen solltest du drauf haben:
http://de.php.net/manual/de/language.co ... ctures.php

Die frage ist natürlich nach was du unterscheiden willst und kannst, am einfachsten wäre ein Drop-Down Menü (Formular) das jedesmal die ausgewählte Sprache mit übermittelt.


Zum Thema Template-System, schaue dir einfach mal Smarty an.

Mache aber nicht den Fehler und fange an das Programm im Template zu schreiben, Trenne also so strikt wie möglich zwischen Logik und Aussehen.

Ich weiß auch nicht ob du das auf deinem jetzigem Kenntnisstand, überhaupt verstehst, momentan scheinst du mehr Copy&Paste zu machen als eigenen Code zu schreiben und zu verstehen.
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Nützlich wäre dann auch dies hier:
Smarty
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Pato
Mitglied
Beiträge: 426
Registriert: 11.05.2005 23:13
Wohnort: Ansbach
Kontaktdaten:

Beitrag von Pato »

Hi, danke, aber wozu brauch ich das smarty? Ist ja wieder so ein komplet system... so viel extra zeug brauch ich ja nicht oder??? Hab es nur mal grob überflogen...

zurück zu mein problem,...

Code: Alles auswählen

$language = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
	switch($language) {
    case 'de': include('language/lang_de.php');
    break;
    case 'en': include('language/lang_en.php');
    break;
    default: include('language/lang_en.php');
    }
Hab es mal so ausprobiert... das einzige Problem ist, das er bei mir die englische sprachdatei läd anstelle von deutschen,... kann natürlich auch an ein falsch konfigurierten pc liegen... ich weiß es nicht... eigentlich ist es richtig konfiguriert. naja,... ich möchte aber doch noch die funktion haben, dass der benutzer separat die sprachdatei ändern kann...

"?langauge=de" oder so ähnlich... wie stell ich das an?
Boecki91
Ehemaliges Teammitglied
Beiträge: 4744
Registriert: 18.06.2006 15:21

Beitrag von Boecki91 »

Sicher das es an den Browser bzw PC Einstellungen liegt?
Es könnte ja auch das Script fehlerhaft sein.
Lege als default mal de fest und beobachte das Ergebnis...

Dumm, anscheinend werden weder de noch en erkannt und immer die Standard-Sprache genommen, doch wie kommt das?

Teste doch mal nen bisschen rum...

Was ist eigendlich in
$_SERVER["HTTP_ACCEPT_LANGUAGE"] gespeichert?

Code: Alles auswählen

echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
Danach schaust ob das was da raus kommt gleich "de" oder "en" ist :o :D

Da du ja nichts fertiges haben willst gebe ich auch keinen Link zu einer kompletten Spracherkennungs-Funktion. 8)
EDIT:
Aber den genaue Aufbau kann ich ja mal rein reichen: http://www.w3.org/Protocols/rfc2616/rfc ... ml#sec14.4



Nun zu Smarty bzw Template-Systemen, willst du das ernsthaft selbst programmieren?

Ich selbst versuche möglichst viel selbst zu machen, doch bei manchen Dingen wie z.B. einem Forum lohnt es sich nicht, weil es bereits etwas kostenloses gibt das ich selbst verändern kann und weit über meine Minimalkriterien liegt. So ähnlich sehe ich das auch bei Templatesystemen.
Schaue dir mal str_replace, preg_replace etc auf php.net an, damit liese sich das {IRGENDWAS} nach "etwas" umwandeln realisieren....

Edit:

Ich hab noch was vergessen:
Das hast du überlesen
Boecki91 hat geschrieben: am einfachsten wäre ein Drop-Down Menü (Formular) das jedesmal die ausgewählte Sprache mit übermittelt.
das wäre dann das mit dem language=xy
http://www.php.net/manual/de/tutorial.forms.php
Standart: Am besten mit beiden Beinen auf dem Boden
Standardmäßig antworte ich nicht auf PMs
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Pato hat geschrieben:Hi, danke, aber wozu brauch ich das smarty?
Smarty ist eine Template-Engine. Damit kannst Du wieder so wie bei phpBB mit Templatevariablen udgl. arbeiten. Smarty ist ungleich mächtiger als die Engine von phpBB. Wurde bis vor kurzem von php.net programmiert und ist nun eigenständig.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Valerion
Mitglied
Beiträge: 70
Registriert: 11.08.2006 17:30

Beitrag von Valerion »

http://tut.php-q.net/template.html
Hier wird Smarty vorgestellt und erklärt(Das ganze ist übrigens ein ziemlich gutes PHP-Tutorial).
eine Möglichkeit für's Sprache ändern:

Code: Alles auswählen

<form method="GET" action ="<?php $PHP_SELF ?>
<select name="language"> 
<option value="de">Deutsch</option>
<option value="en">English</option>
</select>
Das PHP-Script(Am Anfang der Datei):

Code: Alles auswählen

<?php
switch($_GET['language'])
{
case 'de': include('language/lang_de.php');  
break; 
case 'en': include('language/lang_en.php'); 
    break; 
    default: include('language/lang_en.php'); //Legt die Standardsprache fest(Kann auch lang_de sein)
}
?>
Zu deinem Problem: Schreib mal echo $_SERVER['HTTP_ACCEPT_LANGUAGE']; ein und sag uns das Ergebnis.
(Müsste die Sprache ausgeben)
Zuletzt geändert von Valerion am 15.11.2008 21:02, insgesamt 1-mal geändert.
Mit Freundlichen Grüßen, Valerion.
Administrator von http://www.aquarion.org
Bitte postet PHP-Codes immer immer mit

Code: Alles auswählen

 und nicht mit [code]!
Antworten

Zurück zu „Coding & Technik“