[10.0.93.dev] liste des langues installées
This commit is contained in:
parent
353c29a4be
commit
3499c2d268
@ -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
|
||||
*/
|
||||
|
@ -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
|
||||
|
@ -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'])
|
||||
]
|
||||
]);
|
||||
|
||||
|
@ -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',
|
||||
|
@ -15,26 +15,28 @@
|
||||
<div class="row">
|
||||
<div class="col12">
|
||||
<div class="block">
|
||||
<h4>Ajouter ou dupliquer <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 <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>
|
||||
|
@ -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
|
||||
]
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user