La langue est initialisée à la création

This commit is contained in:
Fred Tempez 2023-07-24 13:13:28 +02:00
parent 46a3d36986
commit ee03f49920
2 changed files with 32 additions and 21 deletions

View File

@ -328,15 +328,7 @@ class common
\setlocale(LC_ALL, self::$i18nContent . '.UTF8');
// Instanciation de la classe des entrées / sorties
// Récupère les descripteurs
foreach ($this->dataFiles as $keys => $value) {
// Constructeur JsonDB;
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
'name' => $keys . '.json',
'dir' => $this->dataPath($keys, self::$i18nContent),
'backup' => file_exists('site/data/.backup')
]);
}
$this->jsonDB(self::$i18nContent);
// Installation fraîche, initialisation des modules
if ($this->user === []) {
@ -595,6 +587,21 @@ class common
return unlink(self::DATA_DIR . $lang . '/content/' . $this->getData(['page', $page, 'content']));
}
public function jsonDB($lang)
{
// Instanciation de la classe des entrées / sorties
// Récupère les descripteurs
foreach ($this->dataFiles as $keys => $value) {
// Constructeur JsonDB;
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
'name' => $keys . '.json',
'dir' => $this->dataPath($keys, $lang),
'backup' => file_exists('site/data/.backup')
]);
}
}
/**
* Initialisation des données
* @param string $module : nom du module à générer
@ -626,7 +633,7 @@ class common
}
// Site en français avec site exemple
if ($lang == 'fr_FR' && $sampleSite === true) {
$this->setData([$module,init::$siteTemplate[$module]]);
$this->setData([$module, init::$siteTemplate[$module]]);
// Création des pages
foreach (init::$siteContent as $key => $value) {
$this->setPage($key, $value, 'fr_FR');
@ -634,7 +641,7 @@ class common
// Version en langue étrangère ou fr_FR sans site de test
} else {
// En_EN par défaut si le contenu localisé n'est pas traduit
$langDefault = array_key_exists($lang, init::$defaultDataI18n) === true ? $lang : 'default';
$langDefault = array_key_exists($lang, init::$defaultDataI18n) === true ? $lang : 'default';
// Charger les données de cette langue
$this->setData([$module, init::$defaultDataI18n[$langDefault][$module]]);
// Créer la page d'accueil, une seule page dans cette configuration

View File

@ -94,8 +94,8 @@ class language extends common
if (
is_array($languageData) &&
is_array($descripteur['languages'][$lang])
) {
$response = $this->setData(['language', $lang, $descripteur['languages'][$lang] ]);
) {
$response = $this->setData(['language', $lang, $descripteur['languages'][$lang]]);
$response = $response || file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
}
@ -254,13 +254,13 @@ class language extends common
//self::$i18nUI === $file ? helper::translate('Interface') : '',
'',
/*
template::button('translateContentLanguageUIEdit' . $file, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file,
'value' => template::ico('pencil'),
'help' => 'Éditer',
'disabled' => 'fr_FR' === $file
]),
*/
template::button('translateContentLanguageUIEdit' . $file, [
'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file,
'value' => template::ico('pencil'),
'help' => 'Éditer',
'disabled' => 'fr_FR' === $file
]),
*/
template::button('translateContentLanguageUIDownload' . $file, [
'class' => version_compare($installedUI[$file]['version'], $storeUI[$file]['version']) < 0 ? 'buttonGreen' : '',
@ -319,13 +319,17 @@ class language extends common
$this->isPost()
) {
// Création du contenu
$lang = $this->getInput('translateAddContent');
// Constructeur pour cette langue
$this->jsonDB($lang);
// Création du contenu
$this->initData('page', $lang);
$this->initData('module', $lang);
$this->initData('locale', $lang);
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'language',