From 24550749b765920bf2a60a525c26d6dc406a7e14 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Mon, 24 Apr 2023 20:46:14 +0200 Subject: [PATCH] =?UTF-8?q?12309=20Changement=20de=20la=20langue=20de=20si?= =?UTF-8?q?te=20par=20d=C3=A9faut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/install/install.php | 2 +- core/module/install/ressource/i18n/en_EN.json | 4 +- core/module/install/ressource/i18n/es.json | 4 +- core/module/install/ressource/i18n/fr_FR.json | 3 +- core/module/translate/translate.php | 81 +++++++++++++------ 5 files changed, 65 insertions(+), 29 deletions(-) diff --git a/core/module/install/install.php b/core/module/install/install.php index e412abe5..651e40cf 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -154,7 +154,7 @@ class install extends common // par défaut le contenu est la langue d'installation self::$i18nContent = self::$i18nUI; $_SESSION['ZWII_CONTENT'] = self::$i18nContent; - + // Création du dossier de langue avec le marqueur de langue par défaut if (!is_dir(self::DATA_DIR . self::$i18nContent)) { mkdir(self::DATA_DIR . self::$i18nContent); diff --git a/core/module/install/ressource/i18n/en_EN.json b/core/module/install/ressource/i18n/en_EN.json index 01299f6c..93540b54 100644 --- a/core/module/install/ressource/i18n/en_EN.json +++ b/core/module/install/ressource/i18n/en_EN.json @@ -614,6 +614,6 @@ "Couleur icône haut de page": "Color of top page icon", "Icône haut de page, couleur arrière-plan": "Top page icon, background color", "Disponible si le consentement des cookies est activé.": "Available if cookie consent is enabled.", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users." - + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users.", + "Définir par défaut": "Set as default" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/es.json b/core/module/install/ressource/i18n/es.json index 9820d598..b6f2c825 100644 --- a/core/module/install/ressource/i18n/es.json +++ b/core/module/install/ressource/i18n/es.json @@ -614,6 +614,6 @@ "Couleur icône haut de page":"Color del icono superior de la página", "Icône haut de page, couleur arrière-plan":"Icono superior de la página, color de fondo", "Disponible si le consentement des cookies est activé.": "Disponible si se ha otorgado el consentimiento de las cookies.", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados." - + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados.", + "Définir par défaut": "Establecer como predeterminado" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/fr_FR.json b/core/module/install/ressource/i18n/fr_FR.json index 53f042d1..b147c135 100644 --- a/core/module/install/ressource/i18n/fr_FR.json +++ b/core/module/install/ressource/i18n/fr_FR.json @@ -614,5 +614,6 @@ "Couleur icône haut de page": "", "Icône haut de page, couleur arrière-plan": "", "Disponible si le consentement des cookies est activé.": "", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": "" + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": "", + "Définir par défaut": "" } \ No newline at end of file diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index 3d6b4e9a..53acaee4 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -29,6 +29,7 @@ class translate extends common // Effacer une langue de contenu ou de l'interface 'content' => self::GROUP_VISITOR, 'update' => self::GROUP_ADMIN, + 'default' => self::GROUP_ADMIN ]; const PAGINATION = '20'; @@ -206,29 +207,29 @@ class translate extends common // file_exists(self::DATA_DIR . $key . '/module.json') && // file_exists(self::DATA_DIR . $key . '/locale.json') // ) { - if (file_exists(self::DATA_DIR . $key . '/.default')) { - $messageLocale = helper::translate('Langue par défaut'); - } elseif (isset($_SESSION['ZWII_CONTENT']) && $_SESSION['ZWII_CONTENT'] === $key) { - $messageLocale = helper::translate('Langue du site par défaut'); - } else { - $messageLocale = ''; - } - self::$languagesInstalled[] = [ - template::flag($key, '20 %') . ' ' . $value . ' (' . $key . ')', - $messageLocale, - template::button('translateContentLanguageLocaleEdit' . $key, [ - 'class' => file_exists(self::DATA_DIR . $key . '/locale.json') ? '' : ' disabled', - 'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key, - 'value' => template::ico('pencil'), - 'help' => 'Éditer' - ]), - template::button('translateContentLanguageLocaleDelete' . $key, [ - 'class' => 'translateDelete buttonRed' . ($messageLocale ? ' disabled' : ''), - 'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'], - 'value' => template::ico('trash'), - 'help' => 'Supprimer', - ]) - ]; + if (file_exists(self::DATA_DIR . $key . '/.default')) { + $messageLocale = helper::translate('Langue du site par défaut'); + } else { + $messageLocale = '' . helper::translate('Définir par défaut') . ''; + } + self::$languagesInstalled[] = [ + template::flag($key, '20 %') . ' ' . $value . ' (' . $key . ')', + $messageLocale, + template::button('translateContentLanguageLocaleEdit' . $key, [ + 'class' => file_exists(self::DATA_DIR . $key . '/locale.json') ? '' : ' disabled', + 'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key, + 'value' => template::ico('pencil'), + 'help' => 'Éditer' + ]), + template::button('translateContentLanguageLocaleDelete' . $key, [ + 'class' => 'translateDelete buttonRed' . ($messageLocale === 'Langue du site par défaut' ? ' disabled' : ''), + 'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'], + 'value' => template::ico('trash'), + 'help' => 'Supprimer', + ]) + ]; //} } @@ -607,6 +608,40 @@ class translate extends common } } + /* + * Modifie la langue du site par défaut + * + */ + public function default() + { + // Jeton incorrect ou URl avec le code langue incorrecte + $lang = $this->getUrl(2); + if ( + $this->getUrl(3) !== $_SESSION['csrf'] + || array_key_exists($lang, self::$languages) === false + ) { + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'translate', + 'state' => false, + 'notification' => helper::translate('Action interdite') + ]); + } + + foreach (self::$languages as $key => $value) { + if (file_exists(self::DATA_DIR . $key . '/.default')) { + unlink(self::DATA_DIR . $key . '/.default'); + touch(self::DATA_DIR . $lang . '/.default'); + break; + } + } + // Valeurs en sortie + $this->addOutput([ + 'notification' => helper::translate('Modifications enregistrées'), + 'redirect' => helper::baseUrl() . 'translate', + 'state' => true, + ]); + } /* * Traitement du changement de langue