Langue du navigateur + désactivation de la langue sélectionnée.

This commit is contained in:
fredtempez 2021-01-15 14:34:06 +01:00
parent ff4f1489f2
commit 3e53df3e7f
2 changed files with 33 additions and 16 deletions

View File

@ -246,19 +246,24 @@ class common {
* Traduction automatisée * Traduction automatisée
* - Exclure la traduction manuelle * - Exclure la traduction manuelle
* - La mangue du navigateur est lisible * - La mangue du navigateur est lisible
* - L'autodétection est active * - L'auto-détection est active
*/ */
if ( $this->getData(['config','translate','scriptGoogle']) === true ) {
if ( $this->getData(['config','translate','scriptGoogle']) === true
AND $this->getData(['config','translate','autoDetect']) === true
AND $this->getInput('ZWII_I18N_SITE') === ''
AND !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) )
{
/**
* Le cookie est prioritaire sur le navigateur
* la traduction est celle de la langue du drapeau
* */
if ( $this->getData(['config','translate',$this->getInput('ZWII_I18N_SITE')]) === 'script' ) if (isset($_COOKIE['googtrans'])
{ AND substr($_COOKIE['googtrans'],4,2) !== substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ) ) {
setrawcookie('googtrans', '/fr/'. $this->getInput('ZWII_I18N_SITE'), time() + 3600, helper::baseUrl()); setrawcookie('googtrans', '/fr/'.substr($_COOKIE['googtrans'],4,2), time() + 3600, helper::baseUrl());
} elseif ( $this->getData(['config','translate','autoDetect']) === true } else {
AND $this->getData(['config','translate',$this->getInput('ZWII_I18N_SITE')]) !== 'site' setrawcookie('googtrans', '/fr/'.substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
AND !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) )
{
setrawcookie('googtrans', '/fr/'. substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
} }
} }

View File

@ -181,13 +181,25 @@ class translate extends common {
* Fonction utilisée par le noyau * Fonction utilisée par le noyau
*/ */
public function language() { public function language() {
// Transmettre le choix au noyau // Sélection et désélection de la lnague active
if ($this->getUrl(3) === 'script') { if ( $this->getUrl(2) !== substr($_COOKIE['googtrans'],4,2))
setrawcookie("googtrans", '/fr/'. $this->getUrl(2), time() + 3600, helper::baseUrl()); {
// Transmettre le choix au noyau
if ($this->getUrl(3) === 'script') {
setrawcookie("googtrans", '/fr/'. $this->getUrl(2), time() + 3600, helper::baseUrl());
helper::deleteCookie('ZWII_I18N_SITE');
} elseif ($this->getUrl(3) === 'site') {
setcookie('ZWII_I18N_SITE', $this->getUrl(2), time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
setrawcookie("googtrans", '/fr/fr', time() + 3600, helper::baseUrl());
}
} else {
// Langue du navigateur par défaut si dispo
helper::deleteCookie('ZWII_I18N_SITE'); helper::deleteCookie('ZWII_I18N_SITE');
} elseif ($this->getUrl(3) === 'site') { if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) {
setcookie('ZWII_I18N_SITE', $this->getUrl(2), time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true); setrawcookie("googtrans", '/fr/'. substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
setrawcookie("googtrans", '/fr/fr', time() + 3600, helper::baseUrl()); } else {
setrawcookie("googtrans", '/fr/fr', time() + 3600, helper::baseUrl());
}
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([