Quickly Change Your Language

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Quickly Change Your Language

Beitrag von Swat »

Hi,

habe diesen Mod verbaut, nun bekomme ich immer einen Fehlermeldung beim starten einer Session. Leider konnte mir bei phpBB.com nicht geholfen werden (da keine Antwort). Ich hoffe hier hat jemand eine Idee woran es liegen könnte.
Link zum Themen: *klick*

Beim ersten Besuch einer Session erhalte ich folgende Meldung
Language file /common.php couldn't be opened.
Da der Mod ja in der Session.php verbaut ist um die Language für die Session zu bestimmen vermute ich das es beim ersten laden noch nicht so klappt wie es soll. Nach drücken von F5 läuft alles super und es klappt dann auch weiterhin ohne Problem.

Wäre echt super wenn sich jemand das mal anschauen könnte und ggf. einen Idee hat wie man das umgehen kann, denn so erfüllt der Mod seine Aufgabe (nach F5) perfekt.

Danke
Swat

Diabetes is more than an illness - it's a way of life.
Benutzeravatar
djchrisnet
Mitglied
Beiträge: 1275
Registriert: 29.06.2007 15:52
Wohnort: Elmshorn
Kontaktdaten:

Beitrag von djchrisnet »

hast du den angegebenen Dateipfad zur common.php mal überprüft, ob die richtig ist. ich kann mir nicht vorstellen, das die common.php (was ja nunmal die meisten sprachvariablen enthält) mal da ist und mal nicht verfügbar. Also angegebenen dateipfad zur commom.php checken, bzw, mal ausm code raussuchen und posten.
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Beitrag von Swat »

Ich vermute einfach das es beim ersten laden des Scriptes Probleme gibt das richtige Verzeichnis "zu nehmen", den es ist ja nicht willkürlich mal geht's mal geht es nicht, sondern immer beim ersten aufrufen der Session wenn einen neue gestartet wird.

Habe hier mal den Hauptteile des MOD's reingepackt (hoffe es geht noch grad so von der länge her, sonst muss ich es nochmal als txt anhängen).


Code: Alles auswählen

class lang_selector
{
	function guess_lang($userdata)
	{
		global $phpbb_root_path, $phpEx, $config, $db;

		$sql = 'SELECT *
			FROM ' . LANG_TABLE;
		$result = $db->sql_query($sql, 3600);
		$languages = array();
		while ($row = $db->sql_fetchrow($result))
		{
			$languages[$row['lang_dir']] = $row;
		}

		if ($userdata['user_id'] == ANONYMOUS)
		{
			if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
			{
				foreach (explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']) as $lang)
				{
					// Set correct format ... guess full xx_YY form
					$lang = substr($lang, 0, 2) . '_' . strtoupper(substr($lang, 3, 2));

					if (isset($languages[basename($lang)]))
					{
						return $lang;
					}

					// No match on xx_YY so try xx
					$lang = substr($lang, 0, 2);

					if (isset($languages[basename($lang)]))
					{
						return $lang;
					}
				}
			}
		}
		else if (isset($languages[$userdata['user_lang']]))
		{
			return $userdata['user_lang'];
		}
		return basename($config['default_lang']);
	}

	function set_user_lang(&$user)
	{
		global $phpbb_root_path;

		$user->lang_name =  lang_selector::get_session_lang($user->data);
		$user->lang_path = "{$phpbb_root_path}language/{$user->lang_name}/";

		if ($user->lang_name != $userdata['user_lang'] && $userdata['user_id'] != ANONYMOUS)
		{
			lang_selector::change_user_lang($user->data['user_id'], $user->lang_name);
		}
	}

	function get_session_lang($userdata)
	{
		global $phpbb_root_path, $phpEx;

		$lang = request_var('lang', '', false, true);
		if (empty($lang) || $lang == $userdata['session_lang'])
		{
			return $userdata['session_lang'];
		}

		if (!file_exists("{$phpbb_root_path}language/$lang/common.$phpEx"))
		{
			return $userdata['session_lang'];
		}

		lang_selector::change_session_lang($userdata['session_id'], $lang);
		if ($userdata['user_id'] != ANONYMOUS)
		{
			lang_selector::change_user_lang($userdata['user_id'], $lang);
		}
		return $lang;
	}

[...]

}
Swat

Diabetes is more than an illness - it's a way of life.
Benutzeravatar
Twisterchen
Mitglied
Beiträge: 24
Registriert: 10.11.2006 14:58
Wohnort: Augsburg

Beitrag von Twisterchen »

So hallo

Ich switch mal von dem Thread hier dazu, denn ich bin auf der gleichen suche sowas in das PHPBB3 einzufügen.

Ich bin leider noch nicht dazu gekommen den MOD mal selber einzubauen aber gibt es schon erfolge ?



Währe Super

Gruss
Twister
Gruss
Twister
Benutzeravatar
Twisterchen
Mitglied
Beiträge: 24
Registriert: 10.11.2006 14:58
Wohnort: Augsburg

Beitrag von Twisterchen »

Leider klappt der MOD bei mir auch nicht währe SUPER wenn hier jemand mal einen Blick darauf werfen könnte das ist echt ein Feature das im phpbb fehlt.

Vielen Dank
Gruss
Twister
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Beitrag von Swat »

*schieb*
Swat

Diabetes is more than an illness - it's a way of life.
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Beitrag von Swat »

Ich glaub ich habe eine Lösung, ist wohl nicht die beste und nicht die schönste aber mir klappt es ...

Finde das

Code: Alles auswählen

$lang = request_var('lang', '', false, true); 
ersetze mit dem

Code: Alles auswählen

if ($userdata['user_id'] == ANONYMOUS && $userdata['session_lang'] == '')
{
	$lang = request_var('lang', 'de', false, true);
}
else
{
	$lang = request_var('lang', '', false, true);
}
das 'de' kann durch einen beliebige installierte Sprache ersetzt werden, diese wird dann für den "Gast" als erste angezeigt
Swat

Diabetes is more than an illness - it's a way of life.
Benutzeravatar
Twisterchen
Mitglied
Beiträge: 24
Registriert: 10.11.2006 14:58
Wohnort: Augsburg

Beitrag von Twisterchen »

und in welcher datei hast du das gemacht ?

Gruss
Twister
Gruss
Twister
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Beitrag von Swat »

Twisterchen hat geschrieben:und in welcher datei hast du das gemacht ?

Gruss
Twister
sorry ... includes/session.php da wo der Mod auch rein muss ;)
Swat

Diabetes is more than an illness - it's a way of life.
Benutzeravatar
Swat
Mitglied
Beiträge: 498
Registriert: 27.04.2005 15:21
Wohnort: Mainz

Beitrag von Swat »

und läuft es? würde mich mal interessieren ob es läuft oder nur ein glückstreffer bei mir war ;)
Swat

Diabetes is more than an illness - it's a way of life.
Antworten

Zurück zu „[3.0.x] Mod Support“