WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 23.07.2019 22:16:10

hamburgerhans
Gesperrt

404-Seite in Benutzersprache

Es gilt die eingestellte Sprache des Browsers für die individuelle Mitteilung zu nutzen.
Da eine 404er-Seite serverseitig ausgegeben wird, ist der Verweis (.htaccess) auf eine PHP-Datei nötig, um darin ein Script ausführen zu können.  Die Datei kann unabhängig von einem CMS irgendwo plaziert werden. Entscheidend ist eine Funktion, welche die vom Browser eingestellte Sprache erkennt, und davon dann weitere Entscheidungen, hier die unterschiedliche Sprachausgabe, abhängig macht. Ob man nun unterschiedliche Dateien hierfür inkludiert, oder Datenbankeinträge nutzt, wäre dann je nach Anforderung zu klären bzw. im Code anzupassen.

Für die Clienterkennung jedenfalls sind diverse Scripte verfügbar.
Hierzu reicht die Eingabe bei Gockel: "function Get_Client_Prefered_Language"
Aber Achtung, auf Feinheiten ist zu achten.

Ein mir vorliegendendes Testscript zeigt die unterschiedlichen Verhältnisse bzgl. der Sprachangaben:
(Server) Accept-Language: de,en-US;q=0.7,en;q=0.3
(PHP) Content-Language: de,br,es,it,pt,ru,nl,pl,fr,en
Client - Your Browser - Prefered Language: de

Gruß, HH.

Beitrag geändert von hamburgerhans (23.07.2019 22:34:23)

Offline

#2 24.07.2019 11:39:12

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

Anbei das 404er Script "404 - WB_WBCE.zip".
Es wurde gestern in einer "WB/WBCE-Gesinnungsgruppe" yikes  erstellt. Man dankt "Kleo" für die Anregung.
Es ist aber unabhängig vom CMS einsetzbar.
Gruß, HH.

Beitrag geändert von hamburgerhans (24.07.2019 11:45:13)

Offline

Liked by:

stefanek, florian

#3 24.07.2019 12:04:02

stefanek
Developer

Re: 404-Seite in Benutzersprache

Super Idee.

Ich habe unten noch den polnischen und russichen String hinzugefügt:

<?php
	$str = "Page was not found";	
	switch ($gcpl){
		case 'de':
			$str = "Datei nicht gefunden";	
			break;
		case 'nl':
			$str = "Bestand niet gevonden";	
			break;
		case 'fr':
			$str = "Fichier non trouvé";	
			break;
		case 'es':
			$str = "Archivo no encontrado";	
			break;		
		case 'pl':
			$str = "Strona nie została odnaleziona";	
			break;
		case 'ru':
			$str = "Cтраница не найдена";	
			break;
	}

	echo '<br><h1>'.$str.'</h1><br>';
?>

Und den Code etwas lesbarer gestaltet.

Gruß,
Christian

Beitrag geändert von stefanek (24.07.2019 12:04:16)


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

#4 24.07.2019 13:07:00

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

stefanek schrieb:

Und den Code etwas lesbarer gestaltet.

Nicht nur das. Es ist aktuell anscheinend die sinnvollste Ausführung, da noch niemand weiß wohin die Reise geht.
Es wäre ja durchaus noch eine Beflaggung möglich, oder die Einbindung von Bannern, Teasern usw.
Wie sagt man so? Da geht noch was.  smile  Das Script ist ja nur eine Vorlage.

Da dies - wenn ich mich nicht irre, ich weiß es einfach nicht - wohl nicht mehr das Modul "404 redirect plus" betrifft, wäre ein anderer Topic möglicherweise sinnvoller, zumindest wenn die Vorlage für weiteres genutzt wird.
Gruß, HH.

Beitrag geändert von hamburgerhans (24.07.2019 13:17:58)

Offline

Liked by:

stefanek

#5 24.07.2019 13:41:20

florian
Administrator

Re: 404-Seite in Benutzersprache

Beiträge vom Ursprungsthread abgeteilt.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

stefanek

#6 24.07.2019 15:05:42

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

Hatte zwischenzeitlich ein wenig Muße die Vorlage zu testen.
Es gibt zur Zeit eine Einschränkung, die sich auf sprachliche Varianten bezieht, beispielsweise pt-BR.
Nutzt man clientseitig pt-BR, inkl. eingetragenem pt-BR unter Accept-Language, wird per Script die Ausgabe auf pt geschaltet
Ansonsten funktioniert es tadellos.

Will man die regionalen Sprachen erfassen, braucht es also anscheinend eine Korrektur.
Es ist wohl sinnvoll. wenn das Verhalten noch von anderen Personen überprüft wird.

Gruß, HH.

Beitrag geändert von hamburgerhans (24.07.2019 20:53:38)

Offline

#7 24.07.2019 17:31:29

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

Etwas sorgfältiger hineingeschaut, und prompt gibt's die Lösung.
Statt $gcpl = $http_lang = substr(Get_Client_Prefered_Language(),0,2); ist
$gcpl = $http_lang = substr(Get_Client_Prefered_Language(),0,5); einzutragen.
So funktionierts auch mit dem Nachbarn.

Demzufolge darf der Schalter nun so aussehen

[== PHP ==]
<?php	  
       // Switch wbce user: stefanek 2019.07.24 13:04:02
       $str = "Page was not found";	
	switch ($gcpl){

		case 'de':
			$str = "Datei nicht gefunden";	
			break;
		case 'de-DE':
			$str = "Datei nicht gefunden";	
			break;			
		case 'es':
			$str = "Archivo no encontrado";	
			break;							
		case 'fr':
			$str = "Fichier non trouvé";	
			break;			
		case 'it':
			$str = "Pagina non trovata";	
			break;			
		case 'nl':
			$str = "Bestand niet gevonden";	
			break;
		case 'pl':
			$str = "Strona nie została odnaleziona";	
			break;
			case 'pt':
			$str = "pt: Página não encontrada";	
			break;		
		case 'pt-BR':
			$str = "pt-BR: Página não encontrada";	
			break;					
		case 'ru':
			$str = "Cтраница не найдена";	
			break;
	}
	echo '<br><h1>'.$str.'</h1><br>';
?>

Tests und Rückmeldungen sind erwünscht.
Gruß, HH.

Beitrag geändert von hamburgerhans (24.07.2019 17:44:58)

Offline

Liked by:

stefanek

#8 24.07.2019 20:32:28

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

Mag jemand das Template wbcezon404 parallel zu wbcezon installieren? Auch nur eine Vorlage.
Versteckte Seite anlegen, und diese per htaccess für den Fehlerfall 404 eintragen.
Somit sollte die Fehlerseite per WBCE frei gestaltbar sein. Die 404-Seite ist natürlich auf das 404-Template einzustellen. lol

ps. Ein Droplet wäre auch möglich? Frage deshalb, weil ich  in WBCE "nicht drin stecke".
Nun freue ich mich auf Rückmeldungen.
Gruß, HH
ps. Wer das Script schon jetzt produktiv einsetzen möchte, sollte 1.) die Regel beachten, daß alle Sprachcodes, inkl. der Subcodes, die sich im Switch befinden, auch unter header('Content-Language:xx,xx-XX,xx-YY'); eingetragen werden müssen. 2.) Liegt für eine Sprache ein Subcode vor, ist immer auch der Hauptcode zu verwenden bzw. einzutragen. Beispiel: Verwendet man en-CA // Englisch Kanada, so ist auch en einzutragen.

Beitrag geändert von hamburgerhans (25.07.2019 11:20:47)

Offline

#9 25.07.2019 10:40:17

kleo
Mitglied

Re: 404-Seite in Benutzersprache

Ich freue mich, dass die Mehrsprachigkeit zunehmend mehr Aufmerksamkeit bei der Gemeinde gewinnt!
;-)

Offline

#10 25.07.2019 11:27:04

hamburgerhans
Gesperrt

Re: 404-Seite in Benutzersprache

404 scheint jedenfalls gelöst.
Zumindest habe ich nach unterschiedlichen Dürchläufen mit neuen und alten Browsern den Eindruck, daß alles zuverlässig erkannt und korrekt ausgegeben wird.
Wer es anwenden möchte, kann dies m.E. ohne Bedenken tun.
Gruß, HH.

Offline

Liked by:

stefanek

#11 25.07.2019 11:31:13

stefanek
Developer

Re: 404-Seite in Benutzersprache

Danke Hans.
Finde ich klasse, wenn solche Umsetzungen aus der Community kommen.


“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale

Offline

Fußzeile des Forums

up