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
if ( $this->getData(['config','translate',$this->getInput('ZWII_I18N_SITE')]) === 'script' ) AND $this->getData(['config','translate','autoDetect']) === true
{ AND $this->getInput('ZWII_I18N_SITE') === ''
setrawcookie('googtrans', '/fr/'. $this->getInput('ZWII_I18N_SITE'), time() + 3600, helper::baseUrl());
} elseif ( $this->getData(['config','translate','autoDetect']) === true
AND $this->getData(['config','translate',$this->getInput('ZWII_I18N_SITE')]) !== 'site'
AND !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ) AND !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) )
{ {
setrawcookie('googtrans', '/fr/'. substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl()); /**
* Le cookie est prioritaire sur le navigateur
* la traduction est celle de la langue du drapeau
* */
if (isset($_COOKIE['googtrans'])
AND substr($_COOKIE['googtrans'],4,2) !== substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ) ) {
setrawcookie('googtrans', '/fr/'.substr($_COOKIE['googtrans'],4,2), time() + 3600, helper::baseUrl());
} else {
setrawcookie('googtrans', '/fr/'.substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
} }
} }

View File

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