Installation avec choix de la langue

This commit is contained in:
Fred Tempez 2022-09-21 19:51:46 +02:00
parent 89390e1dba
commit 88c12710fc
4 changed files with 28 additions and 10 deletions

View File

@ -48,7 +48,7 @@ class common {
// Numéro de version // Numéro de version
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/update/raw/branch/master/'; 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"; const ZWII_UPDATE_CHANNEL = "test";
public static $actions = []; public static $actions = [];
@ -277,8 +277,6 @@ class common {
] ]
]; ];
/** /**
* Constructeur commun * Constructeur commun
@ -293,14 +291,19 @@ class common {
$this->input['_COOKIE'] = $_COOKIE; $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 // Déterminer la langue du contenu du site
if (isset($this->input['_COOKIE']['ZWII_I18N_SITE']) if (isset($this->input['_COOKIE']['ZWII_I18N_SITE'])
) { ) {
// Déterminé par le cookie
self::$i18nContent = $this->input['_COOKIE']['ZWII_I18N_SITE']; self::$i18nContent = $this->input['_COOKIE']['ZWII_I18N_SITE'];
setlocale (LC_TIME, self::$i18nContent . '_' . strtoupper (self::$i18nContent) ); setlocale (LC_TIME, self::$i18nContent . '_' . strtoupper (self::$i18nContent) );
} else { } 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 // Instanciation de la classe des entrées / sorties

View File

@ -35,7 +35,7 @@ class install extends common {
public static $newVersion; public static $newVersion;
// Fichiers des langues de l'interface // Fichiers des langues de l'interface
public static $i18nFiles = []; public static $i18nFiles = [];
/** /**
@ -50,10 +50,11 @@ class install extends common {
]); ]);
} }
// Accès autorisé // Accès autorisé
else { else {
// Soumission du formulaire // Soumission du formulaire
if($this->isPost()) { 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 // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'redirect' => helper::baseUrl() . 'install/postinstall' 'redirect' => helper::baseUrl() . 'install/postinstall'
@ -142,8 +143,21 @@ class install extends common {
'<strong>Identifiant du compte :</strong> ' . $this->getInput('installId') . '<br>', '<strong>Identifiant du compte :</strong> ' . $this->getInput('installId') . '<br>',
null null
); );
// Nettoyer les cookies de langue d'une précédente installation // Nettoyer les cookies de langue d'une précédente installation
helper::deleteCookie('ZWII_I18N_SITE'); 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 // Installation du site de test
if ($this->getInput('installDefaultData',helper::FILTER_BOOLEAN) === FALSE) { if ($this->getInput('installDefaultData',helper::FILTER_BOOLEAN) === FALSE) {
$this->initData('page', self::$i18nContent, true); $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 // Récupération de la liste des thèmes
$dataThemes = file_get_contents('core/module/install/ressource/themes/themes.json'); $dataThemes = file_get_contents('core/module/install/ressource/themes/themes.json');
$dataThemes = json_decode($dataThemes, true); $dataThemes = json_decode($dataThemes, true);

View File

@ -328,7 +328,6 @@
"Interface": "", "Interface": "",
"Contenu du site": "", "Contenu du site": "",
"Traductions installées": "", "Traductions installées": "",
"Interface": "",
"Langue de l'administration": "", "Langue de l'administration": "",
"Langues installées": "", "Langues installées": "",
"Dans quelle langue utiliserez-vous Zwii ?": "", "Dans quelle langue utiliserez-vous Zwii ?": "",

View File

@ -328,7 +328,6 @@
"Interface": "", "Interface": "",
"Contenu du site": "", "Contenu du site": "",
"Traductions installées": "", "Traductions installées": "",
"Interface": "",
"Langue de l'administration": "", "Langue de l'administration": "",
"Langues installées": "", "Langues installées": "",
"Dans quelle langue utiliserez-vous Zwii ?": "", "Dans quelle langue utiliserez-vous Zwii ?": "",