12203 bug avec le format de language.json

This commit is contained in:
Fred Tempez 2023-02-04 17:39:50 +01:00
parent b491acb4e7
commit 42506dabfd
2 changed files with 100 additions and 83 deletions

View File

@ -19,10 +19,14 @@ class translate extends common
public static $actions = [
'index' => self::GROUP_ADMIN,
'copy' => self::GROUP_ADMIN,
'add' => self::GROUP_ADMIN, // Ajouter une langue de contenu
'edit' => self::GROUP_ADMIN, // Éditer une langue de l'UI
'locale' => self::GROUP_ADMIN, // Éditer une langue de contenu
'delete' => self::GROUP_ADMIN, // Effacer une langue de contenu ou de l'interface
'add' => self::GROUP_ADMIN,
// Ajouter une langue de contenu
'edit' => self::GROUP_ADMIN,
// Éditer une langue de l'UI
'locale' => self::GROUP_ADMIN,
// Éditer une langue de contenu
'delete' => self::GROUP_ADMIN,
// Effacer une langue de contenu ou de l'interface
'content' => self::GROUP_VISITOR,
'update' => self::GROUP_ADMIN,
];
@ -83,7 +87,7 @@ class translate extends common
$enumsStore = json_decode(helper::getUrlContents(common::ZWII_UI_URL . 'languages.json'), true);
$enums = $this->getData(['languages']);
$enums = array_merge($enums, [
$lang => $enumsStore[$lang]
$lang => $enumsStore['languages'][$lang]
]);
$response = (bool) $response && $this->setData(['languages', $enums]);
}
@ -214,6 +218,7 @@ class translate extends common
// Langues disponibles en ligne
$storeUI = json_decode(helper::getUrlContents(common::ZWII_UI_URL . 'languages.json'), true);
$storeUI = $storeUI['languages'];
// Construction du tableau à partir des langues disponibles dans le store
foreach ($installedUI as $file => $value) {
@ -246,8 +251,10 @@ class translate extends common
]),
];
}
}
// Construction du tableau à partir des langues disponibles dans le store
foreach ($storeUI as $file => $value) {
// La langue est-elle installée ?
if (array_key_exists($file, $installedUI) === false) {
self::$languagesStore[$file] = [
@ -264,7 +271,7 @@ class translate extends common
];
}
}
}
// Valeurs en sortie
$this->addOutput([
@ -451,10 +458,14 @@ class translate extends common
file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT), LOCK_EX);
// Mettre à jour le descripteur
$this->setData(['languages', $lang, [
$this->setData([
'languages',
$lang,
[
'version' => $this->getInput('translateEditVersion'),
'date' => $this->getInput('translateEditDate', helper::FILTER_DATETIME),
]]);
]
]);
// Valeurs en sortie
$this->addOutput([
@ -527,6 +538,7 @@ class translate extends common
}
switch ($target) {
case 'locale':
$success = false;
// Effacement d'une site dans une langue
if (is_dir(self::DATA_DIR . $lang) === true) {
$success = $this->removeDir(self::DATA_DIR . $lang);
@ -540,12 +552,13 @@ class translate extends common
break;
case 'ui':
$success = false;
// Effacement d'une langue de l'interface
if (file_exists(self::I18N_DIR . $lang . '.json') === true) {
$this->deleteData(['languages', $lang]);
$success = unlink(self::I18N_DIR . $lang . '.json');
}
// Effacer la langue dans la base
$this->deleteData(['languages', $lang]);
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'translate',
@ -574,7 +587,8 @@ class translate extends common
* déjà initialisée
* fait partie des lnagues installées
*/
if ( $this->getInput('ZWII_CONTENT') !== $lang
if (
$this->getInput('ZWII_CONTENT') !== $lang
&&
is_dir(self::DATA_DIR . $lang)
&&

View File

@ -14,7 +14,7 @@
'value' => template::ico('help'),
'class' => 'buttonHelp',
'help' => 'Consulter l\'aide en ligne'
]);*/ ?>
]);*/?>
</div>
</div>
@ -34,25 +34,27 @@
<div class="row">
<div class="col12">
<div class="block">
<h4><?php echo helper::translate('Langues installées'); ?>
<h4>
<?php echo helper::translate('Langues installées'); ?>
</h4>
<?php if ($module::$languagesUiInstalled) : ?>
<?php if ($module::$languagesUiInstalled): ?>
<?php echo template::table([2, 1, 1, 4, 1, 1, 1], $module::$languagesUiInstalled, ['Langues', 'Version', 'Date', '', '', '', '']); ?>
<?php endif; ?>
</div>
</div>
</div>
<div class="row">
<div class="col12">
<div class="block">
<h4><?php echo helper::translate('Catalogue'); ?>
<h4>
<?php echo helper::translate('Catalogue'); ?>
</h4>
<?php if ($module::$languagesStore) : ?>
<?php if ($module::$languagesStore): ?>
<?php echo template::table([2, 1, 2, 6, 1], $module::$languagesStore, ['Langues', 'Version', 'Date', '', '']); ?>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<div id="contentContainer" class="tabContent">
<div class="row">
@ -64,7 +66,7 @@
<div class="col4 offset2">
<?php echo template::button('translateButtonCopyContent', [
'href' => helper::baseUrl() . 'translate/copy',
'ico' =>'docs',
'ico' => 'docs',
'disabled' => $module::$siteCopy,
'value' => 'Copie de contenus localisés'
]); ?>
@ -86,11 +88,12 @@
<h4>
<?php echo helper::translate('Langues installées'); ?>
</h4>
<?php if ($module::$languagesInstalled) : ?>
<?php if ($module::$languagesInstalled): ?>
<?php echo template::table([2, 6, 1, 1], $module::$languagesInstalled, ['Langues', '', '', '']); ?>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php echo template::formClose(); ?>