diff --git a/.gitignore b/.gitignore
index b50423c9..1bb11082 100755
--- a/.gitignore
+++ b/.gitignore
@@ -51,3 +51,6 @@ site/data/it/page.json
site/data/nl/locale.json
site/data/nl/module.json
site/data/nl/page.json
+site/data/pt/locale.json
+site/data/pt/module.json
+site/data/pt/page.json
diff --git a/core/core.php b/core/core.php
index 374042c5..239e80e3 100755
--- a/core/core.php
+++ b/core/core.php
@@ -152,7 +152,7 @@ class common {
'pt' => 'Portugais (pt)',
];
// Langue courante
- public static $i18nSite = 'fr';
+ public static $i18nSite;
public static $timezone;
private $url = '';
// Données de site
@@ -196,6 +196,8 @@ class common {
) {
self::$i18nSite = $this->input['_COOKIE']['ZWII_I18N_SITE'];
setlocale (LC_TIME, self::$i18nSite . '_' . strtoupper (self::$i18nSite) );
+ } else {
+ self::$i18nSite = 'fr';
}
// Instanciation de la classe des entrées / sorties
@@ -2182,19 +2184,20 @@ class core extends common {
}
// Chargement de la bibliothèque googtrans
- // Le multi langue est actif
- if ($this->getData(['config','translate','scriptGoogle']) === true ) {
- // la traduction auto est active
- if ( $this->getData(['config','translate','autoDetect']) === true
+ // Le multi langue est sélectionné et la traduction n'est pas manuelle
+ if ($this->getData(['config','translate','scriptGoogle']) === true
+ ) {
// Cas des pages d'administration
+ /*
AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD')
OR ($this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND $this->getData(['config','translate','admin']) === true )
) {
+ */
$this->addOutput([
'vendor' => array_merge($this->output['vendor'], ['i18n'])
]);
- }
+
}
// Erreurs
if($access === 'login') {
@@ -2339,6 +2342,7 @@ class layout extends common {
*/
if ( (
( $this->getData(['config','translate','scriptGoogle']) === true
+ AND isset($_COOKIES['googtrans'])
AND substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) !== 'fr'
)
OR ( isset($_COOKIES['ZWII_I18N_SITE'])
@@ -3033,7 +3037,7 @@ class layout extends common {
}
}
/**
- * Affiche le cadre avec les drapeaux
+ * Affiche le cadre avec les drapeaux sélectionnés
*/
public function showi18n() {
echo '
';
@@ -3045,7 +3049,7 @@ class layout extends common {
)
) {
echo '- ';
- echo '';
+ echo '';
echo '
';
}
}
diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php
index ac2ab883..58728c73 100755
--- a/core/module/translate/translate.php
+++ b/core/module/translate/translate.php
@@ -37,7 +37,7 @@ class translate extends common {
foreach (self::$i18nList as $keyi18n => $value) {
if ($keyi18n === 'fr') {continue;}
// Effacement d'une langue installée
- if ( is_dir( self::DATA_DIR . $keyi18n ) === false
+ if ( is_dir( self::DATA_DIR . $keyi18n ) === true
AND $this->getInput('translate' . strtoupper($keyi18n)) === 'none')
{
$this->removeDir( self::DATA_DIR . $keyi18n);
@@ -45,22 +45,22 @@ class translate extends common {
// Installation d'une langue
if ( $this->getInput('translate' . strtoupper($keyi18n)) === 'site')
{
- // Créer le dossier
+ // Créer les données absentes
if (is_dir( self::DATA_DIR . $keyi18n ) === false ) {
mkdir( self::DATA_DIR . $keyi18n);
- }
- // Charger les modèles
- require_once('core/module/install/ressource/defaultdata.php');
- // Nouvelle instance page, module, locale
- $files = ['page','module','locale'];
- foreach ($files as $keyFile) {
- echo $keyFile;
- $e = new \Prowebcraft\JsonDb([
- 'name' => $keyFile . '.json',
- 'dir' => $this->dirData ($keyFile,$keyi18n)
- ]);;
- $e->set($keyFile, init::$defaultData[$keyFile]);
- $e->save();
+ // Charger les modèles
+ require_once('core/module/install/ressource/defaultdata.php');
+ // Nouvelle instance page, module, locale
+ $files = ['page','module','locale'];
+ foreach ($files as $keyFile) {
+ echo $keyFile;
+ $e = new \Prowebcraft\JsonDb([
+ 'name' => $keyFile . '.json',
+ 'dir' => $this->dirData ($keyFile,$keyi18n)
+ ]);;
+ $e->set($keyFile, init::$defaultData[$keyFile]);
+ $e->save();
+ }
}
}
}
@@ -99,9 +99,12 @@ class translate extends common {
*/
public function language() {
// Transmettre le choix au noyau
- setcookie('ZWII_I18N_SITE', $this->getUrl(2), time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
if ($this->getUrl(3) === 'script') {
setrawcookie("googtrans", '/fr/'. $this->getUrl(2), time() + 3600, helper::baseUrl());
+ helper::deleteCookie('ZWII_I18N_SITE');
+ } else {
+ setcookie('ZWII_I18N_SITE', $this->getUrl(2), time() + 3600, helper::baseUrl(false, false) , '', helper::isHttps(), true);
+ helper::deleteCookie ('googtrans');
}
// Valeurs en sortie
$this->addOutput([