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
* - Exclure la traduction manuelle
* - 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' )
{
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']) )
{
setrawcookie('googtrans', '/fr/'. substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2 ), time() + 3600, helper::baseUrl());
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,13 +181,25 @@ class translate extends common {
* Fonction utilisée par le noyau
*/
public function language() {
// Transmettre le choix au noyau
if ($this->getUrl(3) === 'script') {
setrawcookie("googtrans", '/fr/'. $this->getUrl(2), time() + 3600, helper::baseUrl());
// Sélection et désélection de la lnague active
if ( $this->getUrl(2) !== substr($_COOKIE['googtrans'],4,2))
{
// 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');
} 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());
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
$this->addOutput([