[10.0.93.dev] liste des langues installées

This commit is contained in:
fredtempez 2019-11-14 15:32:20 +01:00
parent 353c29a4be
commit 3499c2d268
6 changed files with 38 additions and 28 deletions

View File

@ -32,7 +32,7 @@ class common {
const I18N_DIR = 'site/i18n/';
// Numéro de version
const ZWII_VERSION = '10.0.92.dev';
const ZWII_VERSION = '10.0.93.dev';
public static $actions = [];
public static $coreModuleIds = [
@ -365,7 +365,7 @@ class common {
public function geti18n() {
// Vérifier l'existence du fichier de langue
if (isset ($_SESSION['ZWII_USER_I18N']) &&
key_exists($_SESSION['ZWII_USER_I18N'], $this->i18nInstalled())) {
key_exists($_SESSION['ZWII_USER_I18N'] , self::$i18nList) ) {
return ($_SESSION['ZWII_USER_I18N']);
} else {
// La valeur du cookie n'est pas une version installée, remettre à fr
@ -390,13 +390,17 @@ class common {
if ( $lan !== 'fr') {
setlocale (LC_TIME, $lan . '_' . strtoupper ($lan) );
}
if ($this->getData(['config','i18n',$lan,'autoTranslate']) === true ) {
// Positionner le cookie
if($this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') &&
$this->getData(['config','i18n',$lan,'autoTranslate']) === true) {
setrawcookie("googtrans", '/fr/'. $lan) ;
} else {
setrawcookie("googtrans", '/fr/fr') ;
}
}
/**
* Retourne le chemin du drapeau
* @return @string
@ -889,22 +893,24 @@ class common {
* @return array liste des pages installées sous la forme "fr" -> "Français"
* La fonction vérifie l'existence du dossier et des deux fichiers de configuration
*/
public function i18nInstalled ($emptyLine = false, $noFr = false) {
public function i18nInstalled ($emptyLine = false, $noFr = false) {
$listLanguages = $emptyLine === true ? [''=>'Sélectionner'] : [];
$tempData = array_diff(scandir(self::DATA_DIR), array('..', '.'));
foreach ($tempData as $item) {
// Exclure le fr
if ($noFr && $item === 'fr') {continue;}
if (is_dir(self::DATA_DIR . $item) === true) {
if (is_file(self::DATA_DIR . $item . '/' . 'page.json') === true &&
is_file(self::DATA_DIR . $item . '/' . 'module.json') === true ) {
$listLanguages [$item] = self::$i18nList [$item];
is_file(self::DATA_DIR . $item . '/' . 'module.json') === true &&
is_array($this->getdata(['config','i18n',$item])) ) {
$listLanguages [$item] = self::$i18nList [$item];
}
}
}
return $listLanguages;
}
/**
* Complète les données de langue par ceux définis par l'utilisateur.
* Effectue des contrôles d'intégrité
@ -2172,7 +2178,7 @@ class layout extends common {
parent::__construct();
$this->core = $core;
}
/**
* Affiche le script Google Analytics
*/

View File

@ -21,7 +21,7 @@
</head>
<body>
<?php $layout->showBar(); ?>
<?php $layout->showNotification(); ?>
<?php $layout->showNotification(); ?>
<?php if($this->getData(['theme', 'menu', 'position']) === 'body-first' || $this->getData(['theme', 'menu', 'position']) === 'top' ): ?>
<!-- Menu dans le fond du site avant la bannière -->
<nav

View File

@ -378,6 +378,7 @@ class config extends common {
} else {
$legalPageId = '';
}
$this->setData([
'config',
[
@ -401,7 +402,8 @@ class config extends common {
'legalPageId' => $this->getInput('configLegalPageId'),
//'homePageId' => $this->getInput('configHomePageId', helper::FILTER_ID, true),
'metaDescription' => $this->getInput('configMetaDescription', helper::FILTER_STRING_LONG, true),
'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true)
'title' => $this->getInput('configTitle', helper::FILTER_STRING_SHORT, true),
'i18n' => $this->getData(['config','i18n'])
]
]);

View File

@ -74,7 +74,7 @@ class i18n extends common {
foreach($langIds as $itemKeyLang => $itemLang) {
self::$languages[] = [
$itemLang,
$this->getData(['config','i18n',$itemKeyLang,'flagFolder']),
stripslashes($this->getData(['config','i18n',$itemKeyLang,'flagFolder'])),
$this->getData(['config','i18n',$itemKeyLang,'autoTranslate']) === true ? 'Oui' : 'Non',
template::button('i18nDelete' . $itemKeyLang, [
'class' => 'i18nDelete buttonRed',

View File

@ -15,26 +15,28 @@
<div class="row">
<div class="col12">
<div class="block">
<h4>Ajouter ou dupliquer&nbsp;<a href="./core/module/i18n/ressource/help.html" data-lity data-tippy-content="Aide en ligne"<?php echo template::ico('help'); ?></a></h4>
<h4>Ajouter une langue&nbsp;<a href="./core/module/i18n/ressource/help.html" data-lity data-tippy-content="Aide en ligne"<?php echo template::ico('help'); ?></a></h4>
<div class="row">
<div class="col6">
<?php
$available = array ('' => 'Sélectionner');
$available = array_merge ($available, array_diff(self::$i18nList,$this->i18nInstalled()));
echo template::select('i18nLanguageAdd', $available, [
'label' => 'Nouvelle langue'
]); ?>
<div class="row">
<?php
$available = array ('' => 'Sélectionner');
$available = array_merge ($available, array_diff(self::$i18nList,$this->i18nInstalled()));
echo template::select('i18nLanguageAdd', $available, [
'label' => 'Nouvelle langue'
]); ?>
</div>
<div class="row">
<?php echo template::checkbox('i18AutoTranslation', true, 'Traduction automatique par Google', [
'help' => 'La traduction automatiques est active après la déconnexion.'
]); ?>
</div>
</div>
<div class="col6">
<div class="row">
<?php echo template::select('i18nLanguageCopyFrom', $this->i18nInstalled(true), [
'label' => 'Langue à dupliquer',
'selected' => -1
]); ?>
</div>
<div class="row">
<?php echo template::checkbox('i18AutoTranslation', true, 'Traduction automatique'); ?>
</div>
<?php echo template::select('i18nLanguageCopyFrom', $this->i18nInstalled(true), [
'label' => 'Site à dupliquer',
'selected' => -1
]); ?>
</div>
</div>
</div>

View File

@ -23,7 +23,7 @@ class init extends common {
'title' => 'Zwii, votre site en quelques clics !',
'i18n' => [
'fr' => [
'flagFolder' => "core\/vendor\/i18n\/png\/",
'flagFolder' => "core/vendor/i18n/png/",
'AutoTranslate' => false
]
]