Prob mit Languageklasse

Headymaster

Erfahrenes Mitglied
Hallo!

Also ich habe mir eine Languageklasse geschrieben.
Diese funktioniert eigentlich so:

- Überprüft ob $_SESSION['lang'] gesetzt ist
-> Ja: include("languages/".$_SESSION['lang']."/lang.php");
->Nein: Default include von der deutschen-datei;

Aufgebaut sind diese Sprachdateien so:
PHP:
<?php

// Counter
$language['v_today'] = 'Besucher heute';
$language['v_all'] = 'Besucher gesamt';

// Language Select
$language['lang_select'] = 'Bitte wählen Sie eine Sprache!';

// Navigation
$language['nav_profil'] = 'Profil';
$language['nav_nachrichten'] = 'Nachrichten';
$language['nav_logout'] = 'Abmelden';
$language['nav_gb'] = 'Gästebuch';
$language['nav_kontakt'] = 'Kontakt';
$language['nav_gal'] = 'Galerie';
$language['nav_im'] = 'Impressum';

// Gbook
$language['gb_eintragen'] = 'Eintragen';
$language['gb_name'] = 'Name';
$language['gb_email'] = 'eMail';
$language['gb_title'] = 'Titel';
$language['gb_text'] = 'Text';
$language['gb_seite'] = 'Seite';
$language['gb_svon'] = 'von';

// Kontaktformular
$language['sender_name'] = 'Name';
$language['sender_email'] = 'eMail';
$language['sender_betreff'] = 'Betreff';
$language['sender_text'] = 'Text';
$language['sender_senden'] = 'Senden';
?>

Ich brauche somit eigentlich nur dort, wo ich verschieden Sprachen anzeigen lassen will mit $language['blabla'] arbeiten.

So mein Problem ist nun die Userklasse die ich nun beginne.

Und zwar überprüft diese, ob der User eingeloggt ist oder ncht.

Wenn er nicht eingeloggt ist, dann soll das Login-Form angezeigt werden , wenn er eingeloggt ist soll sein Userpanel, also link zum Profil editieren, Logoutlink, Messagecenter-link usw ausgegeben werden.

Ich habe aber nun kein Plan, wie ich die Sprachdatei auch in den anderen Klassen verfügbar machen soll.

Wäre es vielleicht möglich, beim Aufruf einer Klasse dieser Klasse das Array mit der Sprache zu übergeben?!

Ich arbeite auch mit Singleton-Pattern, aber wie ich das mit meiner Language-Klasse verbinden soll verstehe ich einfach nicht.



Würde mich super freuen, wenn ihr da ne Idee hättet :)

MFG Niels
 
Hi

du kannst das Array wie jede Variable übergeben.

Hast da verschiedene Möglichkeiten:

1) Du übergibst es im Konstruktor der Klasse und speicherst es als Membervariable
2) Du schreibst in der Klasse eine Funktion a la "setLanguage", übergibst das Array dort und speicherst es als Membervariable
3) Du übergibst es bei jedem Funktionsaufruf bei dem du die Sprache brauchst (= doof)

Beispiele gefällig oder ungefähr ne Idee bekommen?
 
Also wie meinste das genau das im Kunstruktor übernehmen....

Also wenn ich jez $language anwähle...dannn ist es ja ein Array und beinhaltet alle Sprachdinge....

So nun würde ich z.b. in der Klasse class blaBLA beim Aufrufen der klasse die Varaible übergeben..also $language und würde zusätzlich in der Klasse ne Variable einrichten....

z.b. private $lang und der würde ich dann im Konstruktor so das Array zuweisen:
PHP:
<?php
function __construct($language)
{
  $this->lang = $language;
}
?>

Und dann könnte ich innerhalb der Klasse mit $this->lang['blabla']; auf die einzelnen Sprachdinge zugreifen?!

MFG Niels
 
Zurück