From a91de0528bb49aaf83a5f49b95feb47c16aa9249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Mon, 12 Sep 2022 22:14:51 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20l'option=20de=20langue=20=20-=20on?= =?UTF-8?q?glets=20=C3=A0=20ajouter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 19 +++++++----- core/module/translate/translate.php | 35 +++++++++++++++++----- core/module/translate/view/index/index.php | 15 ++++++++++ site/i18n/en.json | 3 +- 4 files changed, 56 insertions(+), 16 deletions(-) diff --git a/core/core.php b/core/core.php index fba35a34..bf993cb5 100644 --- a/core/core.php +++ b/core/core.php @@ -159,7 +159,7 @@ class common { ]; // Langue du contenu courante public static $i18nContent = 'fr'; - //public static $i18n = 'fr'; + public static $i18n = 'fr'; // Langue de l'interface, tableau des dialogues public static $dialog; // Zone de temps @@ -289,12 +289,7 @@ class common { ]);; } - // Langue de l'administration - //self::$i18n = $this->getData(['config', 'i18n', 'default']); - // La langue par défaut du contenu est celle du site si le cookie est absent. - //if (self::$i18nContent === '') { - // self::$i18nContent = self::$i18n; - //} + // Installation fraîche, initialisation des modules manquants // La langue d'installation par défaut est fr @@ -308,6 +303,16 @@ class common { } } + // Langue de l'administration + self::$i18n = $this->getData(['config', 'i18n', 'default']); + // La langue par défaut du contenu est celle du site si le cookie est absent. + self::$i18n = (empty(self::$i18n) || is_null(self::$i18n)) ? self::$i18n = 'fr' : self::$i18n ; + + // Le fichier existe-t-il ? + if (!file_exists(self::I18N_DIR . self::$i18n . '.json')) { + self::$i18n = 'fr'; + } + // Utilisateur connecté if($this->user === []) { $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index b9ef39cb..aa11567e 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -30,6 +30,8 @@ class translate extends common { public static $languagesInstalled = []; // Liste des langues cibles public static $languagesTarget = []; + // Fichiers des langues de l'interface + public static $i18nFiles = []; // Activation du bouton de copie public static $siteTranslate = true; @@ -175,13 +177,16 @@ class translate extends common { ] ]); // Sauvegarder les langues de contenu - $this->setData(['config', 'i18n', 'fr', $this->getInput('translateFR') ]); - $this->setData(['config', 'i18n', 'de', $this->getInput('translateDE')]); - $this->setData(['config', 'i18n', 'en', $this->getInput('translateEN')]); - $this->setData(['config', 'i18n', 'es', $this->getInput('translateES')]); - $this->setData(['config', 'i18n', 'it', $this->getInput('translateIT')]); - $this->setData(['config', 'i18n', 'nl', $this->getInput('translateNL')]); - $this->setData(['config', 'i18n', 'pt', $this->getInput('translatePT')]); + $this->setData(['config', 'i18n', [ + 'default' => $this->getInput('translateI18n'), + 'fr' => $this->getInput('translateFR'), + 'de' => $this->getInput('translateDE'), + 'en' => $this->getInput('translateEN'), + 'es' => $this->getInput('translateES'), + 'it' => $this->getInput('translateIT'), + 'nl' => $this->getInput('translateNL'), + 'pt' => $this->getInput('translatePT') + ]]); // Valeurs en sortie $this->addOutput([ @@ -190,6 +195,20 @@ class translate extends common { 'state' => true ]); } + // Préparation de l'affichage du formulaire + + // Liste des langues disponibles + if (is_dir(self::I18N_DIR)) { + $dir = getcwd(); + chdir(self::I18N_DIR); + $files = glob('*.json'); + // Ajouter une clé au tableau avec le code de langue + foreach( $files as $file) { + self::$i18nFiles[basename($file, '.json')] = $file; + } + chdir($dir); + } + // Modification des options de suppression de la langue installée. foreach (self::$i18nList as $key => $value) { if ($this->getData(['config','i18n',$key]) === 'site') { @@ -225,7 +244,7 @@ class translate extends common { } // Valeurs en sortie $this->addOutput([ - 'title' => 'Contenu du site multilangues', + 'title' => 'Multilangues', 'view' => 'index' ]); } diff --git a/core/module/translate/view/index/index.php b/core/module/translate/view/index/index.php index af15db57..9b009ce9 100644 --- a/core/module/translate/view/index/index.php +++ b/core/module/translate/view/index/index.php @@ -28,6 +28,21 @@ +
+
+
+

Traduite ZwiiCMS

+
+
+ 'Traductions installées', + 'selected' => $this->getData(['config', 'i18n' , 'default']), + ]); ?> +
+
+
+
+
diff --git a/site/i18n/en.json b/site/i18n/en.json index 1ec167c9..406c9c66 100644 --- a/site/i18n/en.json +++ b/site/i18n/en.json @@ -5,5 +5,6 @@ "Format incorrect" : "Incorrect format", "Les modifications que vous avez apportées ne seront peut-être pas enregistrées." : "Edition might be lost.", "Oui" : "Yes", - "Non" : "No" + "Non" : "No", + "Utilisateurs": "Users" } \ No newline at end of file