Sprache setzen für Gäste bei 2 Domains [gelöst]

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
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Sprache setzen für Gäste bei 2 Domains [gelöst]

Beitrag von Balint »

Hallo!

GELÖST: Lösung siehe weiter unten!

Ich versuche eine Möglichkeit zu finden, um bei meinem Forum, worauf zwei Domains zeigen, die Sprache je nach Domain für Gäste fest einzustellen.

Ich kenne die Möglichkeiten des "Select default language" MODs von Niels (http://mods.db9.dk/viewforum.php?f=5), allerdings ist mir die Lösung über cookies viel zu unsicher, ich möchte nicht, daß das Forum in der falschen Sprache angezeigt wird.

Folgendes habe ich bisher probiert:

Code: Alles auswählen

if ( $userdata['user_id'] == ANONYMOUS )
	{	
		if ($HTTP_HOST == 'www.domain1.de' || $HTTP_HOST == 'domain1.de')
		{
			$board_config['default_lang'] = 'hungarian';
		}
		elseif ($HTTP_HOST == 'www.domain2.de' || $HTTP_HOST == 'domain2.de')
		{
			$board_config['default_lang'] = 'german';
		}
		else
		{
			$board_config['default_lang'] = 'hungarian';
		}
	}
und auch

Code: Alles auswählen

$domain = $HTTP_HOST;
if ( $userdata['user_id'] == ANONYMOUS )
	{	
	switch($domain) {
	  	case 'www.domain1.de':
	  	case 'domain1.de':
    	$board_config['default_lang'] = 'hungarian';
	    break;

		case 'www.domain2.de':
		case 'domain2.de':
		$board_config['default_lang'] = 'german';
		break;
	}
}
Diese Schnippsel habe ich die functions.php gepackt, VOR dieses Stück Code:

Code: Alles auswählen

	if ( !file_exists(@phpbb_realpath($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_main.'.$phpEx)) )
	{
		$board_config['default_lang'] = 'english';
	}
Ich bin für jede Hilfe dankbar...

DIE LÖSUNG

Code: Alles auswählen

// Language change MOD
	if ($userdata['user_id'] == ANONYMOUS) 
	{
		if (($_SERVER['SERVER_NAME'] == 'www.domain1.de') || ($_SERVER['SERVER_NAME'] == 'domain1.de'))
		{	
			$board_config['default_lang'] = 'german';
		}
		if (($_SERVER['SERVER_NAME'] == 'www.domain2.de') || ($_SERVER['SERVER_NAME'] == 'domain2.de'))
		{	
			$board_config['default_lang'] = 'hungarian';
		}
	}
// Language Change MOD end
Die Variable $HTTP_HOST wurde durch $_SERVER['SERVER_NAME'] ersetzt, schon geht's... oder waren es doch die fehlenden nochmaligen Klammern um die Vergleiche? Ich probier's jetzt nicht mehr aus...


Viele Grüße,
Bálint
Zuletzt geändert von Balint am 31.03.2004 01:31, insgesamt 2-mal geändert.
Benutzeravatar
Mister_X
Ehemaliges Teammitglied
Beiträge: 7102
Registriert: 24.05.2001 02:00
Wohnort: Augsburg

Beitrag von Mister_X »

und was funktioniert an dem von dir geposteten Code jetzt nicht? Welche Sprache wird dir angezeigt?
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Balint »

Hallo!

Das Wichtigste vergessen *vorStirnschlag*: es wird immer nur ungarisch angezeigt.

Ich habe mit dem Setzen von

Code: Alles auswählen

echo $HTTP_HOST;
in der page_header.php überprüft, ob die Variable unterstützt wird/funktioniert: geht tadellos.


Viele Grüße,
Bálint
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Balint »

*bump*

Das Problem ist noch nicht gelöst...

ES MUSS an der Domainüberprüfung liegen,denn

Code: Alles auswählen

// Language change MOD
	if ($userdata['user_id'] == ANONYMOUS)
	{	
		$board_config['default_lang'] = 'german';
	}
geht ohne Probleme...

Ich habe sogar schon sowas versucht:

Code: Alles auswählen

// Language change MOD
	if (($userdata['user_id'] == ANONYMOUS) && ($HTTP_HOST == "www.domain1.de"))
	{	
		$board_config['default_lang'] = 'german';
	}
die Schachtelung weggelassen und die zwei Sachen oben zusammengefaßt. Ganz so neu bin ich auch nicht mehr im Geschäft, aber das bringt mich zum Verzweifeln... :cry:

Könnte bitte jemand eine zündende Idee haben? :) Bitte!

Viele Grüße,
Bálint
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Balint »

Hallo!

Thread kann geschlossen werden. Entweder bin ich zu doof oder php.net kann sich nicht ausdrücken... *g*

Lösung siehe erster Beitrag!


Grüße,
Bálint
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

zwar nicht getestet, aber sollte auch funktionieren:

Code: Alles auswählen

//
// Language change MOD
//
if ($userdata['user_id'] == ANONYMOUS)
{

$server_lang_name = $_SERVER['SERVER_NAME'];

	if (!preg_match("/(.de|.ch|.at)/i", $server_lang_name))
	{
		$board_config['default_lang'] = 'english';
	}
}
//
// Language Change MOD end
//
Erklärung:

Bei allen Domains, außer .de, .ch oder .at wird Englisch als Standardsprache vorgezogen.

Das setzt voraus, dass die Standardsprache des Forums Deutsch ist.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“