Multisprachsystem

Multisprachsystem| Datum: 08.12.2009 - 19:12 | Author: SirZimt

So.
Sprachdateien hab ich.
Die hab ich auf dem Beispiel von Balmung aufgesetzt und die sehen so aus:

Code


<?php

//infos zur sprache
$lang['_name'] = 'Deutsch';
$lang['_iso'] = 'de';

//sprachvariablen
$lang['home'] = 'Home';
$lang['blog'] = 'Blog';
$lang['guestbook'] = 'G&auml;stebuch';
$lang['aboutme'] = '&Uuml;ber mich';
$lang['impress'] = 'Impressum';

?>




Gibts nomma mit Englisch... da kommt noch mehr aber ich brauch mom nicht mehr Variablen!
Meine Frage ist jetzt:
Wie binde ich das den in die Seite ein?
Wer auf die Seite kommt bekommt erstmal bei mir seine "Gewünschte Sprache" per

Code


$_SERVER['HTTP_ACCEPT_LANGUAGE'];




An den Kopf geworfen!
Wer das ändern will (dauerhaft) findet später hinweg einen Butten der sich "Setup" schimpft. Da es im laufe auch noch mehr Themes für die Seite gibt...
Was der liebe Besucher in diesem "Setup" so wählt soll in einer Cookie Datei gespeichert werden á "darkchaos" beschimpft...

Das heißt also er muss am Anfang checken ob das Cookie auf dem PC/Laptop/PDA/Handheld/USB/SD lebt und auslesen was der Besucher will. Sollte dort kein entsprechendes Cookie leben soll er gefälligst Theme Standart nutzen + durch Browser festgelegte Standartsprache.

Falls nötig:
Das Setupmenü werde ich mit ExtJS machen. Das sich mit Version 4 die sich als Codebeschimpfung "DarkChaos" erwählt hat eingebunden wird...

Ich hoffe doch ich hab grad nichts vergessen :3. Wenn doch... seh ich dann...

Hoffe jeder versteht so meine Redensart... :3

Re: Multisprachsystem| Datum: 09.12.2009 - 10:12 | Author: Fazitas

Ich kam zwar etwas durcheinander mit deinem "Ich Frage aber sag noch verwirrendes zeug dazu" aber egal, ich hoffe ich versteh dich xD

Bau dir ne Sprach-Funktion, wär meine Idee, bindest du halt per require(_once) ein,
diem Funktion macht dann nichts anderes als zu überprüfen ob ein Cookie gesetzt ist, bzw. welches die Standard-Sprache ist und bindet per include(_once) die jeweilige Sprach-Datei ein.

Im Content gibtst du dann nur die vordefinierten Variablen aus und fertig.

Gruß, Fazitas
(Dieser Post enthält evtl. Spuren von einer Idee :) )

Re: Multisprachsystem| Datum: 10.12.2009 - 21:12 | Author: Mgier

Eventuell bietet sich an, die Sprache auch noch in einer Session abzuspeichern. Was wäre denn, wenn der Computer z.B. an einem öffentlichen Standort keine Cookies erlaubt? Dann müsste man nach jedem Klick wieder die Sprache ändern => Nicht gut.

Also in etwas so
Abfrage, ob die Sprache in der Session gesetzt ist
-Wenn ja, diese Sprache als Cookie setzen (versuchen)
-Wenn nein, abfragen, ob ein Cookie gesetzt ist
---Wenn ja, Sprache aus dem Cookie in der Session speichern
---Wenn nein, Standartsprache in Session und Cookie speichern

Re: Multisprachsystem| Datum: 11.12.2009 - 14:12 | Author: SirZimt

Stimmt.
Zu Cookies usw.:
Damit hab ich noch nich wirklich gearbeitet.
Hab mal was über Cookies gelesen verstanden hab ich aber nur: BAHNHOF...

Re: Multisprachsystem| Datum: 11.12.2009 - 14:12 | Author: Der_Admin

Wieso überhaupt cookies?
einfach in der Session und ab gehts ;)

Re: Multisprachsystem| Datum: 11.12.2009 - 15:12 | Author: SirZimt

Weil das nicht nur einmal sein soll!

Re: Multisprachsystem| Datum: 11.12.2009 - 17:12 | Author: Mgier

Kennst du Sessions? Dann sind Cookies kein Problem. Auslesen tust du sie genau wie Sessions, nur halt mit $_COOKIE['variable'], setzen musst du sie mit setcookie(). Da gibts bestimmt Tutorials zu hauf ;)

Re: Multisprachsystem| Datum: 11.12.2009 - 18:12 | Author: SirZimt

Weder Sessions noch Cookies hab ich jemals richtig effektiv genutzt.
Bisher war das Thema für mich auch keine Frage... daher bin ich auf dem gebiet ein richtiger DAU.

Re: Multisprachsystem| Datum: 11.12.2009 - 19:12 | Author: Mgier

Naja da gibts genügend zum Nachlesen, und wenn du das System erstmal begriffen hast, wirst du dich nicht mehr von Sessions losreißen können.
Vorweg:
Um Sessions zu nutzen, session_start(); an den Anfang jeder Datei vor jeglicher Ausgabe ;)
Dann kannst du verschiedenste Variablen in der Session abspeichern. Die Session gilt solange, wie der Nutzer den Browser offen hat, und haben solange diesen Inhalt. Die Inhalte werden am Server gespeichert und werden von diesem eindeutig einem Benutzer zugewiesen.
Inhalte zuweisen und abfragen machst du dann wie bei einem Array...z.B.

Code



<?php
session_start();
$_SESSION['variable1'] = 'inhalt';
if($_SESSION['variable1'] == 'inhalt'){
do this or that
} ?>



Wenn du das dann beherrscht, sind cookies keine zauberei mehr. Wenn mal was nicht klappen sollte, gib immer mal die entsprechende Session-Variable per echo aus. Hat mir auch schon oft geholfen ;)

Hoffe konnte helfen...
Mgier

Re: Multisprachsystem| Datum: 11.12.2009 - 19:12 | Author: SirZimt

Nja. Ich würd ja gern das auch dauerhaft Speichern lassen.
So per Kästchen unopreto:

"Deine Einstellungen auf diesem PC speichern (Cookie)".

Was mich auch ziemlich mummt ist halt die Umsetztung...
Mein anfängliches System gefiel mir nicht daher ist es ja jetzt schon zu großteilen wieder raus...

Re: Multisprachsystem| Datum: 11.12.2009 - 19:12 | Author: Mgier

Versuch zuerst mal, dass du hinbekommst, dass es während einer Sitzung gleich bleibt. Dann ist auf Dauer nur noch ein kleiner Schritt.

*edit: Wenn du konkrete Probleme hast: Problem her. Beschreibung her. Code her :rofl: