Langue du navigateur autodétectée

This commit is contained in:
fredtempez 2020-11-26 11:56:35 +01:00
parent 7245fb8804
commit 2aa3e80e0a

View File

@ -239,22 +239,13 @@ class common {
} }
// Traduction du site avec le script Google // Traduction du site avec le script Google
if ( $this->getData(['config','translate','scriptGoogle'])) { // Lire la langue du navigateur
// Lire la langue stockée dans le cookie (choix manuel) if ( $this->getData(['config','translate','scriptGoogle']) === true
if ( isset($_COOKIE['ZWII_I18N_SITE']) ) { AND $this->getData(['config','translate','autoDetect']) === true) {
$lan_cookie = $_COOKIE['ZWII_I18N_SITE'];
}
// Lire la langue du navigateur
if ( $this->getData(['config','translate','autoDetect'])) {
$lan_browser = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
// Priorité : choix manuel - navigateur - fr // Langue du navigateur
$lan = isset($lan_cookie) ? $lan_cookie : (isset($lan_browser) ? $lan_browser : 'fr'); if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
setrawcookie("googtrans", '/fr/'. $_SERVER['HTTP_ACCEPT_LANGUAGE'], time() + 3600, helper::baseUrl());
// Changer la locale
if ( $lan !== 'fr') {
setlocale (LC_TIME, $lan . '_' . strtoupper ($lan) );
} }
} }
@ -2184,15 +2175,20 @@ class core extends common {
} }
// Chargement de la bibliothèque googtrans // Chargement de la bibliothèque googtrans
// Le multi langue est sélectionné // Le multi langue est sélectionné
if ( $this->getData(['config','translate','scriptGoogle']) === true if ( $this->getData(['config','translate','scriptGoogle']) === true
AND AND
// et la traduction n'est pas manuelle // et la traduction de la langue courante est automatique
( isset($_COOKIE['googtrans']) ( isset($_COOKIE['googtrans'])
AND $this->getData(['config','translate', substr($_COOKIE['googtrans'],4,2)]) === 'script' AND ( $this->getData(['config','translate', substr($_COOKIE['googtrans'],4,2)]) === 'script'
// Ou traduction automatique
OR $this->getData(['config','translate','autoDetect']) === true )
) )
// Cas des pages d'administration // Cas des pages d'administration
// Pas connecté
AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD')
// Ou connecté avec option active
OR ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') OR ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND $this->getData(['config','translate','admin']) === true AND $this->getData(['config','translate','admin']) === true
) )