WBCE CMS – Way Better Content Editing.
You are not logged in.
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.
Last edited by hamburgerhans (23.07.2019 22:34:23)
Offline
Anbei das 404er Script "404 - WB_WBCE.zip".
Es wurde gestern in einer "WB/WBCE-Gesinnungsgruppe" erstellt. Man dankt "Kleo" für die Anregung.
Es ist aber unabhängig vom CMS einsetzbar.
Gruß, HH.
Last edited by hamburgerhans (24.07.2019 11:45:13)
Offline
stefanek, florian
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
Last edited by stefanek (24.07.2019 12:04:16)
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline
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. 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.
Last edited by hamburgerhans (24.07.2019 13:17:58)
Offline
stefanek
Beiträge vom Ursprungsthread abgeteilt.
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
stefanek
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.
Last edited by hamburgerhans (24.07.2019 20:53:38)
Offline
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.
Last edited by hamburgerhans (24.07.2019 17:44:58)
Offline
stefanek
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.
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.
Last edited by hamburgerhans (25.07.2019 11:20:47)
Offline
Ich freue mich, dass die Mehrsprachigkeit zunehmend mehr Aufmerksamkeit bei der Gemeinde gewinnt!
;-)
Offline
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
stefanek
Danke Hans.
Finde ich klasse, wenn solche Umsetzungen aus der Community kommen.
“Success is the progressive realization of a worthy ideal.” ― Earl Nightingale
Offline