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
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 = [];
@ -278,8 +278,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

View File

@ -53,7 +53,8 @@ class install extends common {
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 {
'<strong>Identifiant du compte :</strong> ' . $this->getInput('installId') . '<br>',
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);

View File

@ -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 ?": "",

View File

@ -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 ?": "",