12309 Changement de la langue de site par défaut

This commit is contained in:
Fred Tempez 2023-04-24 20:46:14 +02:00
parent 63bb78a0fd
commit 24550749b7
5 changed files with 65 additions and 29 deletions

View File

@ -154,7 +154,7 @@ class install extends common
// par défaut le contenu est la langue d'installation
self::$i18nContent = self::$i18nUI;
$_SESSION['ZWII_CONTENT'] = self::$i18nContent;
// Création du dossier de langue avec le marqueur de langue par défaut
if (!is_dir(self::DATA_DIR . self::$i18nContent)) {
mkdir(self::DATA_DIR . self::$i18nContent);

View File

@ -614,6 +614,6 @@
"Couleur icône haut de page": "Color of top page icon",
"Icône haut de page, couleur arrière-plan": "Top page icon, background color",
"Disponible si le consentement des cookies est activé.": "Available if cookie consent is enabled.",
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users."
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users.",
"Définir par défaut": "Set as default"
}

View File

@ -614,6 +614,6 @@
"Couleur icône haut de page":"Color del icono superior de la página",
"Icône haut de page, couleur arrière-plan":"Icono superior de la página, color de fondo",
"Disponible si le consentement des cookies est activé.": "Disponible si se ha otorgado el consentimiento de las cookies.",
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados."
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados.",
"Définir par défaut": "Establecer como predeterminado"
}

View File

@ -614,5 +614,6 @@
"Couleur icône haut de page": "",
"Icône haut de page, couleur arrière-plan": "",
"Disponible si le consentement des cookies est activé.": "",
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": ""
"Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": "",
"Définir par défaut": ""
}

View File

@ -29,6 +29,7 @@ class translate extends common
// Effacer une langue de contenu ou de l'interface
'content' => self::GROUP_VISITOR,
'update' => self::GROUP_ADMIN,
'default' => self::GROUP_ADMIN
];
const PAGINATION = '20';
@ -206,29 +207,29 @@ class translate extends common
// file_exists(self::DATA_DIR . $key . '/module.json') &&
// file_exists(self::DATA_DIR . $key . '/locale.json')
// ) {
if (file_exists(self::DATA_DIR . $key . '/.default')) {
$messageLocale = helper::translate('Langue par défaut');
} elseif (isset($_SESSION['ZWII_CONTENT']) && $_SESSION['ZWII_CONTENT'] === $key) {
$messageLocale = helper::translate('Langue du site par défaut');
} else {
$messageLocale = '';
}
self::$languagesInstalled[] = [
template::flag($key, '20 %') . ' ' . $value . ' (' . $key . ')',
$messageLocale,
template::button('translateContentLanguageLocaleEdit' . $key, [
'class' => file_exists(self::DATA_DIR . $key . '/locale.json') ? '' : ' disabled',
'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key,
'value' => template::ico('pencil'),
'help' => 'Éditer'
]),
template::button('translateContentLanguageLocaleDelete' . $key, [
'class' => 'translateDelete buttonRed' . ($messageLocale ? ' disabled' : ''),
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'],
'value' => template::ico('trash'),
'help' => 'Supprimer',
])
];
if (file_exists(self::DATA_DIR . $key . '/.default')) {
$messageLocale = helper::translate('Langue du site par défaut');
} else {
$messageLocale = '<a href="'
. helper::baseUrl() . $this->getUrl(0) . '/default/' . $key . '/' . $_SESSION['csrf']
. '">' . helper::translate('Définir par défaut') . '</a>';
}
self::$languagesInstalled[] = [
template::flag($key, '20 %') . '&nbsp;' . $value . ' (' . $key . ')',
$messageLocale,
template::button('translateContentLanguageLocaleEdit' . $key, [
'class' => file_exists(self::DATA_DIR . $key . '/locale.json') ? '' : ' disabled',
'href' => helper::baseUrl() . $this->getUrl(0) . '/locale/' . $key,
'value' => template::ico('pencil'),
'help' => 'Éditer'
]),
template::button('translateContentLanguageLocaleDelete' . $key, [
'class' => 'translateDelete buttonRed' . ($messageLocale === 'Langue du site par défaut' ? ' disabled' : ''),
'href' => helper::baseUrl() . $this->getUrl(0) . '/delete/locale/' . $key . '/' . $_SESSION['csrf'],
'value' => template::ico('trash'),
'help' => 'Supprimer',
])
];
//}
}
@ -607,6 +608,40 @@ class translate extends common
}
}
/*
* Modifie la langue du site par défaut
*
*/
public function default()
{
// Jeton incorrect ou URl avec le code langue incorrecte
$lang = $this->getUrl(2);
if (
$this->getUrl(3) !== $_SESSION['csrf']
|| array_key_exists($lang, self::$languages) === false
) {
// Valeurs en sortie
$this->addOutput([
'redirect' => helper::baseUrl() . 'translate',
'state' => false,
'notification' => helper::translate('Action interdite')
]);
}
foreach (self::$languages as $key => $value) {
if (file_exists(self::DATA_DIR . $key . '/.default')) {
unlink(self::DATA_DIR . $key . '/.default');
touch(self::DATA_DIR . $lang . '/.default');
break;
}
}
// Valeurs en sortie
$this->addOutput([
'notification' => helper::translate('Modifications enregistrées'),
'redirect' => helper::baseUrl() . 'translate',
'state' => true,
]);
}
/*
* Traitement du changement de langue