Browse Source

Traduction rédigée ok

branche_v10
fredtempez 11 months ago
parent
commit
de6c83380a
  1. 3
      .gitignore
  2. 20
      core/core.php
  3. 35
      core/module/translate/translate.php

3
.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

20
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 '<div id="i18nContainer"><ul>';
@ -3045,7 +3049,7 @@ class layout extends common {
)
) {
echo '<li>';
echo '<a href="' . helper::baseUrl() . 'translate/language/' . $key . '/' . $this->getData(['config','translate',$key]) . '/' . $this->getUrl(0) . '"><img class= "flag" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png" /></a>';
echo '<a href="' . helper::baseUrl() . 'translate/language/' . $key . '/' . $this->getData(['config','translate',$key]) . '"><img class= "flag" src="' . helper::baseUrl(false) . 'core/vendor/i18n/png/' . $key . '.png" /></a>';
echo '</li>';
}
}

35
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([

Loading…
Cancel
Save