[phpbb3] User Language bestimmen

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.
Antworten
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

[phpbb3] User Language bestimmen

Beitrag von Helmut »

Hallo,

ich möchte für meine Homepage die Texte der Themenseiten aus einer Datenbank einfügen, dabei soll der Text entsprechend der eingestellten Usersprache ausgewählt werden.

Wie bekomme ich vom aktuell eingeloggten User die eingestellte Sprache heraus?

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

$user->data enthält alles was du brauchst ;)
Auch die user_lang...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Code: Alles auswählen

$sprache = $user->data['user_lang'];
;-)

$sprache beinhaltet dann die in phpBB3 benutzte Abkürzung für die vom User verwendete Sprache ( en , de, nl, usw. )
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo gn#36, Dr.Death,

danke euch für die schnelle Antwort, hätte ich eigentlich selber drauf kommen müssen, aber ich habe mich auch etwas ungünstig ausgedrückt. :wink:

Ich habe es gestern noch getestet, dabei ist mir etwas aufgefallen, was für meinen Anwendungsfall vermutlich Probleme machen wird. Wenn ich "$user->data" ausführe, dann bekomme ich die eingestellte Sprache aus der Tabelle "users" was ja eigentlich ok ist, nur wenn ich als Gast (Anonymous) unterwegs bin, dann bekomme ich immer als Sprache "en" (als Default vorgegeben), obwohl die eingestellte Boardsprache "de" ist. Ich möchte nämlich gerne eine Funktion in die Homepage/Forum einbauen, das auch Gästen erlaubt, die Sprache zu wechseln, dazu werde ich vermutlich den Mod hier verwenden wenn es geht.

So wie es aussieht, muss ich die aktuell verwendete Sprache des Users (Anonymous) bzw. auch der eingeloggten User also woanders her nehmen wenn sie die Sprache schnell wechseln wollen.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn das ein Problem ist beim Anonymous kannst du ja die Sprache des Anonymous in der DB wechseln, der besitzt die User ID 1 und sollte ansonsten ganz normale Datenbankeinstellungen haben wie jeder andere User auch, so dass du die Sprache über die DB direkt ohne Probleme ändern können solltest und danach auch beim Anonymous die richtigen Daten bekommen solltest.

Wenn du aber Sprachwechsel erlauben willst musst du die Sprache für den Anonymous des aktuellen Gasts anderswo zwischenspeichern sonst ändert ein User ja für alle Gäste die Sprache, das wäre nicht im Sinne des erfinders (ich habe mir deinen Link nicht angesehen nehme da also in keiner Weise Bezug drauf, das ist nur ein allgemeiner Hinweis ;) )
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Beitrag von Helmut »

Hallo gn#36,

ich habe es jetzt in der Tabelle users auf "de" gestellt, das sollte für den Anfang genügen damit ich für Gäste und eingeloggte User die richtige Sprache über "$user->data" bekomme.

Für den schnellen Wechsel der Sprache gab es hier im Forum auch schon einen Beitrag der sich dann auf den bei phpbb.com bezieht. Das läuft dann anscheinend über die user session so wie ich das verstanden habe.


[EDIT]
Ich bin jetzt noch einen anderen Weg gegangen und zwar über die Sprachdateien. Da ich für meine Themenseiten auch eine Sprachdatei verwende, habe ich dort eine Variable $boardlang = "de"; eingefügt. Auf der Themenseite lese ich dann einfach die Variable mit request_var($boardlang, 0); aus und kann diese dann entsprechend verarbeiten.


Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Antworten

Zurück zu „Coding & Technik“