diff --git a/core/core.php b/core/core.php index 273de9d9..cb489a8c 100644 --- a/core/core.php +++ b/core/core.php @@ -48,7 +48,7 @@ class common { // Numéro de version const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; - const ZWII_VERSION = '11.6.00-dev007'; + const ZWII_VERSION = '11.6.00-dev008'; const ZWII_UPDATE_CHANNEL = "test"; public static $actions = []; @@ -277,8 +277,6 @@ class common { ] ]; - - /** * Constructeur commun @@ -293,14 +291,19 @@ class common { $this->input['_COOKIE'] = $_COOKIE; } + // Lire la langue de l'UI sans passer par les méthodes + $t = json_decode(file_get_contents('site/data/config.json'), true); + self::$i18nUI = $t['config']['i18n']['interface']; + // Déterminer la langue du contenu du site if (isset($this->input['_COOKIE']['ZWII_I18N_SITE']) ) { + // Déterminé par le cookie self::$i18nContent = $this->input['_COOKIE']['ZWII_I18N_SITE']; setlocale (LC_TIME, self::$i18nContent . '_' . strtoupper (self::$i18nContent) ); - } else { - self::$i18nContent = substr(self::$i18nUI, 0, 2); + // Absence du cookie, la langue par défaut est celle de l'interface. + self::$i18nContent = (isset(self::$i18nUI)) ? substr(self::$i18nUI, 0, 2) : 'fr'; } // Instanciation de la classe des entrées / sorties diff --git a/core/module/install/install.php b/core/module/install/install.php index ab18d9bd..f6406ff5 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -35,7 +35,7 @@ class install extends common { public static $newVersion; // Fichiers des langues de l'interface - public static $i18nFiles = []; + public static $i18nFiles = []; /** @@ -50,10 +50,11 @@ class install extends common { ]); } // Accès autorisé - else { + else { // Soumission du formulaire if($this->isPost()) { - $this->setData(['config', 'i18n', 'interface', $this->getInput('installLanguage')]); + self::$i18nUI = $this->getInput('installLanguage'); + $this->setData(['config', 'i18n', 'interface', self::$i18nUI]); // Valeurs en sortie $this->addOutput([ 'redirect' => helper::baseUrl() . 'install/postinstall' @@ -142,8 +143,21 @@ class install extends common { 'Identifiant du compte : ' . $this->getInput('installId') . '
', null ); + // Nettoyer les cookies de langue d'une précédente installation helper::deleteCookie('ZWII_I18N_SITE'); + + // Créer le contenu dans la langue sélectionnée + self::$i18nContent = substr(self::$i18nUI, 0, 2); + + // Effacer le dossier de contenu fr créé par défaut si la langue est différente. + + if (self::$i18nContent !== 'fr_FR' + && is_dir('site/data/fr') + ) { + $this->removeDir('site/data/fr'); + } + // Installation du site de test if ($this->getInput('installDefaultData',helper::FILTER_BOOLEAN) === FALSE) { $this->initData('page', self::$i18nContent, true); @@ -206,6 +220,9 @@ class install extends common { ]); } } + + // Affichage du formulaire + // Récupération de la liste des thèmes $dataThemes = file_get_contents('core/module/install/ressource/themes/themes.json'); $dataThemes = json_decode($dataThemes, true); diff --git a/site/i18n/es.json b/site/i18n/es.json index 5e064a9a..f10cc6fa 100644 --- a/site/i18n/es.json +++ b/site/i18n/es.json @@ -328,7 +328,6 @@ "Interface": "", "Contenu du site": "", "Traductions installées": "", - "Interface": "", "Langue de l'administration": "", "Langues installées": "", "Dans quelle langue utiliserez-vous Zwii ?": "", diff --git a/site/i18n/fr_FR.json b/site/i18n/fr_FR.json index 080ec5a6..b392a2f9 100644 --- a/site/i18n/fr_FR.json +++ b/site/i18n/fr_FR.json @@ -328,7 +328,6 @@ "Interface": "", "Contenu du site": "", "Traductions installées": "", - "Interface": "", "Langue de l'administration": "", "Langues installées": "", "Dans quelle langue utiliserez-vous Zwii ?": "",