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
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')]);

View File

@ -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'
]);
}

View File

@ -28,6 +28,21 @@
<?php echo template::submit('translateFormSubmit'); ?>
</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="col12">
<div class="block" id="flagsWrapper">

View File

@ -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"
}