Switch Language auch für Registrierte
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Switch Language auch für Registrierte
Hallo nochmal!
Kennt jemand einen switch_language-Mod, der nicht nur bei Gästen funktioniert? Jeder soll die Language im Header über zwei Flaggen ändern können.
Mit dem bisherigen Mod habe ich zwar ein wenig rumgespielt, schaffe es aber nicht, dass die Sprache nach dem Login erhalten bleibt...
Vielen Dank schon mal für Antworten!!
Kennt jemand einen switch_language-Mod, der nicht nur bei Gästen funktioniert? Jeder soll die Language im Header über zwei Flaggen ändern können.
Mit dem bisherigen Mod habe ich zwar ein wenig rumgespielt, schaffe es aber nicht, dass die Sprache nach dem Login erhalten bleibt...
Vielen Dank schon mal für Antworten!!
QUADRATDESIGN. Eine runde Sache.
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
keiner 'ne Idee?
QUADRATDESIGN. Eine runde Sache.
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Das Problem wird sein, dass auf jeder Seite in der die User-Infos abgerufen werden die Sprache wieder auf den Wert in der DB gesetzt wird. Du müßtest eigentlich 'nur' einen Link setzen um die Sprache für den jeweiligen User in der DB zu ändern.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Jo, ich hatte es mal mit folgendem Code in der page_header.php versucht:
Sollte ja dann eigentlich immer, wenn die Variable $lang gesetzt wurde (z.B. beim Dateinamen: index.php?lang=german), die USERS_TABLE updaten und user_lang auf die Variable setzen...
Allerdings passiert folgendes: Sobald man auf der Seite rumklickt, springt die Sprache auf Englisch, egal, ob etwas angegeben wurde, oder nicht :-|
Hat jemand 'ne Idee, was da falsch sein könnte??
Code: Alles auswählen
//
// Switch language
if ( isset($lang) )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_lang = german
WHERE user_id = $userdata[user_id]";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update users table', '', __LINE__, __FILE__, $sql);
}
}
// Switch language
//Allerdings passiert folgendes: Sobald man auf der Seite rumklickt, springt die Sprache auf Englisch, egal, ob etwas angegeben wurde, oder nicht :-|
Hat jemand 'ne Idee, was da falsch sein könnte??
QUADRATDESIGN. Eine runde Sache.
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Hmm, aus irgendeinem mir unerdenklichen Grunde bekomme ich dann einen Parse Error: 
in folgender Zeile:Parse error: parse error in /var/www/html/i-study/forum/includes/functions.php on line 227
Code: Alles auswählen
$sql = "UPDATE " . USERS_TABLE . " QUADRATDESIGN. Eine runde Sache.
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
machs doch einfach so:
ah
das rote ist neufunction init_userprefs($userdata)
{
global $board_config, $theme, $images;
global $template, $lang, $phpEx, $phpbb_root_path, $db, $HTTP_GET_VARS;
if ( $userdata['user_id'] != ANONYMOUS )
{
if ( !empty($userdata['user_lang']))
{
$board_config['default_lang'] = $userdata['user_lang'];
}
if ( !empty($HTTP_GET_VARS['lang']) )
{
$board_config['default_lang'] = $HTTP_GET_VARS['lang'];
$sql = "UPDATE ". USER_TABLE . "
SET user_lang = '" . $HTTP_GET_VARS['lang'] . "'
WHERE user_id = '" . $userdata['user_id'] . "'";
if ( !($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user language');
}
}
ah
Vielen Dank, so funktioniert's 
Für alle, die nicht ganz mitgekommen sind: Nur die komplette function init_userprefs in der includes/functions.php mit der hier ersetzen:
Für alle, die nicht ganz mitgekommen sind: Nur die komplette function init_userprefs in der includes/functions.php mit der hier ersetzen:
Code: Alles auswählen
//
// Initialise user settings on page load
function init_userprefs($userdata)
{
global $board_config, $theme, $images;
global $template, $lang, $phpEx, $phpbb_root_path, $db, $HTTP_GET_VARS;
if ( $userdata['user_id'] != ANONYMOUS )
{
if ( !empty($userdata['user_lang']))
{
$board_config['default_lang'] = $userdata['user_lang'];
}
//
// Switch language
if ( !empty($HTTP_GET_VARS['lang']) )
{
$board_config['default_lang'] = $HTTP_GET_VARS['lang'];
$sql = "UPDATE ". USERS_TABLE . "
SET user_lang = '" . $HTTP_GET_VARS['lang'] . "'
WHERE user_id = '" . $userdata['user_id'] . "'";
if ( !($db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not update user language');
}
}
// Switch language
//
if ( !empty($userdata['user_dateformat']) )
{
$board_config['default_dateformat'] = $userdata['user_dateformat'];
}
if ( isset($userdata['user_timezone']) )
{
$board_config['board_timezone'] = $userdata['user_timezone'];
}
}
if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )
{
$board_config['default_lang'] = 'english';
}
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.' . $phpEx);
if ( defined('IN_ADMIN') )
{
if( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.'.$phpEx)) )
{
$board_config['default_lang'] = 'english';
}
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin.' . $phpEx);
}
include_attach_lang();
//
// Set up style
//
if ( !$board_config['override_user_style'] )
{
if ( $userdata['user_id'] != ANONYMOUS && $userdata['user_style'] > 0 )
{
if ( $theme = setup_style($userdata['user_style']) )
{
return;
}
}
}
$theme = setup_style($board_config['default_style']);
return;
}
QUADRATDESIGN. Eine runde Sache.
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de
Besuchen Sie unsere Agentur für Webdesign unter http://quadratdesign.de