WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

You are not logged in.

Announcement

Server-Wartung/-update: Forum und Website am 19.05., 19 Uhr bis 20.05., 10 Uhr offline
Due to server maintenance the forum and wbce.org website will be offline from 05/19, 7pm to 05/20, 10am

#1 19.04.2021 18:20:13

byteworker
Member

Browserweiche nach de-DE, en-EN und fr-FR

Hallo Zusammen,

ich suche gerade einen Weg, um die Besucher einer mehrsprachigen Seite via php-Script, je nach eingestellter Sprache weiter zu leiten.

Hat jemand dazu einen Tip? Seite ist 3-sprachig ind DE, EN und FR und soll die Besucher auf die entsprechende Subseite in der passenden Sprache umleiten.

Grüße Norbert

Offline

#2 19.04.2021 18:27:16

florian
Administrator

Re: Browserweiche nach de-DE, en-EN und fr-FR

Offline

#3 19.04.2021 19:41:43

byteworker
Member

Re: Browserweiche nach de-DE, en-EN und fr-FR

Prima, danke!

Und bei:

$browserLanguage = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2))

gebe ich statt "0, 2" die entsprechenden Seiten IDs meiner Sprachen an?

Offline

#4 19.04.2021 19:46:25

florian
Administrator

Re: Browserweiche nach de-DE, en-EN und fr-FR

Nein, die 0,2 gehört zum PHP-Befehl substr, nicht ändern!
In HTTP_ACCEPT_LANGUAGE steht z.B. de-DE oder en-US, das Script braucht haber nur "de" oder "en", deshalb wird mittels substring nur der Teil von der nullten bis zur zweiten Position in die Variable $browserLanguage geschrieben.

Offline

Liked by:

byteworker

#5 20.04.2021 07:37:54

byteworker
Member

Re: Browserweiche nach de-DE, en-EN und fr-FR

Danke, das hat perfekt funktioniert. Hier der PHP Code für die Vorschaltseite:

<?php

// Include config-file of WBCE
require_once '../config.php';

// Define default language (for not supported languages, e.g. ZH for chinese in this example)
$language = 'en';

// Define supported languages
$supportedLanguages = ['de', 'en' , 'fr'];

// Get browser language
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
    $browserLanguage = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
   
    // Define browser language if valid and supported
    if (ctype_alpha($browserLanguage) && in_array($browserLanguage, $supportedLanguages)) {
        $language = $browserLanguage;
    }
}

// Redirect to the finale destination (e.g. http://foo.bar/pages/en.php for chinese or http://foo.bar/pages/de.php for german visitors)
header('Location:' . WB_URL . '/pages/' . $language . '.php', true, 302);
exit;

?>

Offline

Board footer

Powered by FluxBB

up