Ajout de l'option de langue - onglets à ajouter

This commit is contained in:
Fred Tempez 2022-09-12 22:14:51 +02:00
parent 0eac2b11c9
commit a91de0528b
4 changed files with 56 additions and 16 deletions

View File

@ -159,7 +159,7 @@ class common {
]; ];
// Langue du contenu courante // Langue du contenu courante
public static $i18nContent = 'fr'; public static $i18nContent = 'fr';
//public static $i18n = 'fr'; public static $i18n = 'fr';
// Langue de l'interface, tableau des dialogues // Langue de l'interface, tableau des dialogues
public static $dialog; public static $dialog;
// Zone de temps // 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 // Installation fraîche, initialisation des modules manquants
// La langue d'installation par défaut est fr // 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é // Utilisateur connecté
if($this->user === []) { if($this->user === []) {
$this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]); $this->user = $this->getData(['user', $this->getInput('ZWII_USER_ID')]);

View File

@ -30,6 +30,8 @@ class translate extends common {
public static $languagesInstalled = []; public static $languagesInstalled = [];
// Liste des langues cibles // Liste des langues cibles
public static $languagesTarget = []; public static $languagesTarget = [];
// Fichiers des langues de l'interface
public static $i18nFiles = [];
// Activation du bouton de copie // Activation du bouton de copie
public static $siteTranslate = true; public static $siteTranslate = true;
@ -175,13 +177,16 @@ class translate extends common {
] ]
]); ]);
// Sauvegarder les langues de contenu // Sauvegarder les langues de contenu
$this->setData(['config', 'i18n', 'fr', $this->getInput('translateFR') ]); $this->setData(['config', 'i18n', [
$this->setData(['config', 'i18n', 'de', $this->getInput('translateDE')]); 'default' => $this->getInput('translateI18n'),
$this->setData(['config', 'i18n', 'en', $this->getInput('translateEN')]); 'fr' => $this->getInput('translateFR'),
$this->setData(['config', 'i18n', 'es', $this->getInput('translateES')]); 'de' => $this->getInput('translateDE'),
$this->setData(['config', 'i18n', 'it', $this->getInput('translateIT')]); 'en' => $this->getInput('translateEN'),
$this->setData(['config', 'i18n', 'nl', $this->getInput('translateNL')]); 'es' => $this->getInput('translateES'),
$this->setData(['config', 'i18n', 'pt', $this->getInput('translatePT')]); 'it' => $this->getInput('translateIT'),
'nl' => $this->getInput('translateNL'),
'pt' => $this->getInput('translatePT')
]]);
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
@ -190,6 +195,20 @@ class translate extends common {
'state' => true '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. // Modification des options de suppression de la langue installée.
foreach (self::$i18nList as $key => $value) { foreach (self::$i18nList as $key => $value) {
if ($this->getData(['config','i18n',$key]) === 'site') { if ($this->getData(['config','i18n',$key]) === 'site') {
@ -225,7 +244,7 @@ class translate extends common {
} }
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Contenu du site multilangues', 'title' => 'Multilangues',
'view' => 'index' 'view' => 'index'
]); ]);
} }

View File

@ -28,6 +28,21 @@
<?php echo template::submit('translateFormSubmit'); ?> <?php echo template::submit('translateFormSubmit'); ?>
</div> </div>
</div> </div>
<div class="row">
<div class="col12">
<div class="block" id="flagsWrapper">
<h4>Traduite ZwiiCMS</h4>
<div class="row">
<div class="col3">
<?php echo template::select('translateI18n', $module::$i18nFiles, [
'label' => 'Traductions installées',
'selected' => $this->getData(['config', 'i18n' , 'default']),
]); ?>
</div>
</div>
</div>
</div>
</div>
<div class="row"> <div class="row">
<div class="col12"> <div class="col12">
<div class="block" id="flagsWrapper"> <div class="block" id="flagsWrapper">

View File

@ -5,5 +5,6 @@
"Format incorrect" : "Incorrect format", "Format incorrect" : "Incorrect format",
"Les modifications que vous avez apportées ne seront peut-être pas enregistrées." : "Edition might be lost.", "Les modifications que vous avez apportées ne seront peut-être pas enregistrées." : "Edition might be lost.",
"Oui" : "Yes", "Oui" : "Yes",
"Non" : "No" "Non" : "No",
"Utilisateurs": "Users"
} }