From 1f71dc768f8c475f9289ab0390c9db775cc64fb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Mon, 16 Dec 2024 21:40:07 +0100 Subject: [PATCH 01/21] =?UTF-8?q?libell=C3=A9s=20et=20absence=20de=20doubl?= =?UTF-8?q?e=20authentification=20si=20compte=20inf=C3=A9rieur=20au=20seui?= =?UTF-8?q?l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/user/user.php | 8 ++++---- core/module/user/view/auth/auth.php | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/module/user/user.php b/core/module/user/user.php index 928e5556..e26eaa6e 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -1068,9 +1068,9 @@ class user extends common * Double authentification en cas de saisie correcte */ - // Clé d'authenfication utlisée pour lié le compte au cookie au lieu de stocke le hash du mot de passe + // Clé d'authenfication utlisée pour lier le compte au cookie au lieu de stocker le hash du mot de passe $authKey = uniqid('', true) . bin2hex(random_bytes(8)); - if ($this->getData(['config', 'connect', 'mailAuth']) >= $this->getData(['user', $userId, 'group'])) { + if ($this->getData(['user', $userId, 'group']) >= $this->getData(['config', 'connect', 'mailAuth'])) { $logStatus = 'Envoi du mail d\'authentification'; // Redirection vers la page d'authentification $authRedirect = 'user/auth/'; @@ -1231,9 +1231,9 @@ class user extends common ) { $sent = $this->sendMail( $this->getUser('mail'), - 'Tentative de connexion à votre', + 'Validation de la connexion à votre compte', //'Bonjour ' . $item['prenom'] . ' ' . $item['nom'] . ',

' . - '

Clé de validation à saisir dans le formulaire :

' . + '

Clé de validation à saisir dans le formulaire de connexion :

' . '

' . $this->getData(['user', $this->getUser('id'), 'authKey']) . '

', null, $this->getData(['config', 'smtp', 'from']) diff --git a/core/module/user/view/auth/auth.php b/core/module/user/view/auth/auth.php index ca948b6f..896b89c3 100644 --- a/core/module/user/view/auth/auth.php +++ b/core/module/user/view/auth/auth.php @@ -2,7 +2,7 @@
helper::translate('Clé reçue par couriel') + 'label' => helper::translate('Clé reçue par courriel') ]); ?>
From 173d7f779cb96cac801fccc32e6ec1e56929312f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 19 Dec 2024 22:06:12 +0100 Subject: [PATCH 02/21] =?UTF-8?q?13500=20Am=C3=A9lioration=20double=20auth?= =?UTF-8?q?entification=20+=20mise=20=C3=A0=20jour=20des=20fichiers=20de?= =?UTF-8?q?=20langue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - core/module/config/config.php | 32 +- core/module/config/view/connect/connect.php | 22 +- core/module/config/view/network/network.php | 15 +- core/module/config/view/social/social.php | 10 +- core/module/install/ressource/i18n/en_EN.json | 94 +-- core/module/install/ressource/i18n/es.json | 18 +- core/module/install/ressource/i18n/fr_FR.json | 12 +- core/module/user/user.php | 89 +-- core/module/user/view/auth/auth.css | 19 +- core/module/user/view/auth/auth.php | 10 +- site/i18n/en_EN.json | 703 ++++++++++++++++++ site/i18n/es.json | 703 ++++++++++++++++++ site/i18n/fr_FR.json | 703 ++++++++++++++++++ tmplog.txt | 60 -- 15 files changed, 2307 insertions(+), 184 deletions(-) create mode 100644 site/i18n/en_EN.json create mode 100644 site/i18n/es.json create mode 100644 site/i18n/fr_FR.json delete mode 100644 tmplog.txt diff --git a/.gitignore b/.gitignore index 1c959d05..0f3c2cd8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ site/data/* site/tmp/* site/backup/* site/file/* -site/i18n/*.json .DS_Store core/vendor/tinymce/link_list.json robots.txt diff --git a/core/module/config/config.php b/core/module/config/config.php index f431f1d6..dde6bff9 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -32,6 +32,7 @@ class config extends common 'blacklistReset' => self::GROUP_ADMIN, 'blacklistDownload' => self::GROUP_ADMIN, 'register' => self::GROUP_ADMIN, + 'testmail' => self::GROUP_ADMIN, ]; public static $timezones = [ @@ -497,7 +498,7 @@ class config extends common 'captchaType' => $this->getInput('connectCaptchaType'), 'showPassword' => $this->getInput('connectShowPassword', helper::FILTER_BOOLEAN), 'redirectLogin' => $this->getInput('connectRedirectLogin', helper::FILTER_BOOLEAN), - 'mailAuth' => $this->getInput('connectAuthMail', helper::FILTER_BOOLEAN), + 'mailAuth' => $this->getInput('connectAuthMail', helper::FILTER_INT), ] ] ]); @@ -941,4 +942,33 @@ class config extends common 'redirect' => helper::baseUrl() . 'config/' . $this->getUrl(2), ]); } + + /** + * Envoi un message de test + * @return void + */ + + public function testmail() + { + $sent = $this->sendMail( + $this->getUser('mail'), + helper::translate('Test de la messagerie du site'), + '' . $this->getUser('firstname') . ' ' . $this->getUser('lastname') . ',

' . + '

' . helper::translate('Il semblerait que votre messagerie fonctionne correctement !') . '

', + null, + 'no-reply@localhost' + ); + if ($sent !== true) { + // Désactivation de l'authentification par email + $this->setData(['config', 'connect', 'mailAuth', 0]); + // Journalisation + $this->saveLog($sent); + } + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'config/' . $this->getUrl(2), + 'state' => $sent === true ? true : false, + 'notification' => $sent === true ? helper::translate('Message de test envoyé avec succès') : helper::translate('Message non envoyé') + ]); + } } \ No newline at end of file diff --git a/core/module/config/view/connect/connect.php b/core/module/config/view/connect/connect.php index 86368471..ee48bb71 100644 --- a/core/module/config/view/connect/connect.php +++ b/core/module/config/view/connect/connect.php @@ -25,29 +25,37 @@
-
+
'Limitation des tentatives', 'selected' => $this->getData(['config', 'connect', 'attempt']) ]); ?>
-
+
'Blocage après échecs', 'selected' => $this->getData(['config', 'connect', 'timeout']) ]); ?>
-
- 'Aucune'], self::$groupNews), [ - 'label' => 'Validation par messagerie', +
+ 'Aucune'], self::$groupNews), [ + 'label' => 'Validation par clé ⚠️', 'selected' => $this->getData(['config', 'connect', 'mailAuth']), - 'help' => 'La connexion est confirmée par une clé adressée par messagerie. Depuis le groupe sélectionnée et les groupes supérieurs.' + 'help' => 'La connexion est confirmée à l\'aide d\'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.' + ]); ?> +
+
+ helper::baseUrl() . 'config/testmail', + 'value' => 'Message de test', + 'ico' => 'mail' ]); ?>
-
+
+

diff --git a/core/module/config/view/network/network.php b/core/module/config/view/network/network.php index 0a0b9000..a4195953 100644 --- a/core/module/config/view/network/network.php +++ b/core/module/config/view/network/network.php @@ -4,11 +4,6 @@

-

@@ -40,11 +35,6 @@

-

@@ -97,7 +87,7 @@ 'Mot de passe', 'autocomplete' => 'off', - 'value' => $this->getData(['config', 'smtp', 'password']) + 'value' => $this->getData(['config', 'smtp', 'password']) ]); ?>
@@ -112,4 +102,5 @@
-
\ No newline at end of file +
+
\ No newline at end of file diff --git a/core/module/config/view/social/social.php b/core/module/config/view/social/social.php index fefea7c6..cf64bebf 100644 --- a/core/module/config/view/social/social.php +++ b/core/module/config/view/social/social.php @@ -24,15 +24,15 @@

- +

%s', helper::translate('Format'), $module::$imageOpenGraph['type']); ?>

- %s x %s pixels', helper::translate('Dimensions minimales'), $module::$imageOpenGraph['wide'], $module::$imageOpenGraph['height'] ); ?> + %s x %s pixels', helper::translate('Dimensions minimales'), $module::$imageOpenGraph['wide'], $module::$imageOpenGraph['height']); ?>

- %s:1' , helper::translate('Ratio'), round($module::$imageOpenGraph['ratio'], 2)); ?> + %s:1', helper::translate('Ratio'), round($module::$imageOpenGraph['ratio'], 2)); ?>

%s', helper::translate('Poids'), $module::$imageOpenGraph['size']); ?> @@ -44,10 +44,10 @@

getData(['config', 'seo', 'openGraphImage']) && - file_exists(self::FILE_DIR . 'source/' . $this->getData(['config', 'seo', 'openGraphImage'])) + file_exists(self::FILE_DIR . 'source/' . $this->getData(['config', 'seo', 'openGraphImage'])) ): ?> + src="getData(['config', 'seo', 'openGraphImage']); ?>" />
diff --git a/core/module/install/ressource/i18n/en_EN.json b/core/module/install/ressource/i18n/en_EN.json index 824a8374..b73bc9bb 100644 --- a/core/module/install/ressource/i18n/en_EN.json +++ b/core/module/install/ressource/i18n/en_EN.json @@ -1,7 +1,7 @@ { "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'Do not display' creates an orphan page not accessible through menus.", "'Sauvegarder et télécharger les données du module": "'Save and download module data", - "1 jour": "1 jour", + "1 jour": "1 day", "1/4 : Préparation...": "1/4: preparation ...", "10 minutes": "10 minutes", "10 tentatives": "10 attempts", @@ -31,7 +31,7 @@ "Adaptation": "Adaptation", "Administrateur": "Administrator", "Administration": "Administration", - "Adresse SMTP": "SMTP Address", + "Adresse SMTP": "SMTP address", "Adresse du proxy": "Proxy address", "Adresse électronique": "email address", "Affectation": "Assignment", @@ -60,10 +60,10 @@ "Archive copiée dans le dossier Modules du gestionnaire de fichier": "Archive copied in the Modules folder", "Archive de thème invalide": "Invalid theme archive", "Archive invalide": "Invalid archive", - "Archive invalide, l'écriture dans le dossier core est interdite": "Invalid archive, writing in the core file is prohibited", + "Archive invalide, l'écriture dans le dossier core est interdite": "Invalid archive, writing in the core folder is prohibited", "Archive invalide, le descripteur est absent": "Invalid archive, the descriptor is absent", - "Archive invalide, le fichier de classe est absent": "Invalide archive, the class file is absent", - "Archive invalide, les dossiers ne correspondent pas au descripteur": "Invalid archive, the files do not correspond to the descriptor", + "Archive invalide, le fichier de classe est absent": "Invalid archive, the class file is absent", + "Archive invalide, les dossiers ne correspondent pas au descripteur": "Invalid archive, the files do not match the descriptor", "Archive non spécifiée ou introuvable": "Archive not specified or not found", "Archive à restaurer": "Archive to restore", "Arrière plan": "Background", @@ -86,7 +86,7 @@ "Aucune liste noire à télécharger": "No blacklist to download", "Auteur :": "Author:", "Authentification": "Authentication", - "Automatique": "Automatique", + "Automatique": "Automatic", "Autoriser les robots à référencer le site": "Allow robots to reference the site", "Autorisé": "Allowed", "Avant la bannière": "Before the banner", @@ -104,9 +104,9 @@ "Barre latérale": "Sidebar", "Barre latérale droite :": "Right sidebar:", "Barre latérale gauche :": "Left sidebar:", - "Barres latérales": "Side bars", + "Barres latérales": "Sidebars", "Bienvenue %s %s": "Welcome %s %s", - "Blocage après échecs": "Blocking after chess", + "Blocage après échecs": "Blocking after failure", "Blog": "Blog", "Bords arrondis": "Rounded edges", "Bordure des blocs": "Blocks border", @@ -122,16 +122,16 @@ "Caché": "Hidden", "Cachée": "Hidden", "Captcha complexe": "Complex captcha", - "Captcha à la connexion": "Captcha at connecting", + "Captcha à la connexion": "Captcha", "Captcha, identifiant ou mot de passe incorrects": "Incorrect captcha, login or password", "Capture d'écran Open Graph": "Open Graph screenshot", "Capture d'écran générée avec succès": "Successful generated screenshot", "Casse": "Case", "Catalogue": "Store", "Catégorie": "Category", - "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "This member upload or download files in the 'Sharing' folder and its subfolders", + "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "This member can upload or download files in the 'Sharing' folder and its subfolders", "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "This page should not appear in the menu tree. Create an orphan page.", - "Cette redirection ne concerne que les pages d'administration du site.": "This redirection only concerns the administration pages of the site.", + "Cette redirection ne concerne que les pages d'administration du site.": "This redirection only concerns the site administration pages.", "Chaîne Youtube": "Youtube channel", "Chiffres": "Numbers", "Cible": "Target", @@ -158,8 +158,8 @@ "Consulter l'aide en ligne": "Online help", "Contents": "Contents", "Contenu": "Contents", - "Contenu HTML": "HTML contents", - "Contenu avancé": "Advanced contents", + "Contenu HTML": "HTML content", + "Contenu avancé": "Advanced content", "Contenu du menu vertical": "Vertical menu content", "Contrôle total": "Full control", "Cookies": "Cookies", @@ -174,7 +174,7 @@ "Couleur de fond automatique": "Automatic background color", "Couleur icône haut de page": "Color of top page icon", "Couleur texte page active": "Active page text color", - "Couleur unie ou papier-peint": "United color or wallpaper", + "Couleur unie ou papier-peint": "Plain color or wallpaper", "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency.", "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency. The color of the text is automatic.", "Couleurs": "Colors", @@ -190,8 +190,8 @@ "Dossier": "Folder", "Droits sur les dossiers": "Folder authorizations", "Droits sur les fichiers": "File authorizations", - "Dupliquer": "Duplicate", - "Dupliquer la page": "Duplicate the page", + "Dupliquer": "Clone", + "Dupliquer la page": "Clone page", "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "Disconnects the previously opened sessions on other browsers or terminals. Recommended activation.", "Déconnecter": "Disconnect", "Déconnexion !": "Logout!", @@ -199,7 +199,7 @@ "Définir par défaut": "Set as default", "Dévoiler le mot de passe": "Reveal the password", "Effacer": "Delete", - "Effacer la page": "Delete the page", + "Effacer la page": "Delete page", "Effacer tous les commentaires": "Delete all Comments", "Effacer toutes les statistiques": "Delete all statistics", "Effacer un commentaire": "Delete Comment", @@ -212,9 +212,9 @@ "En cas de changement de module, les données du module précédent seront supprimées.": "In the event of a module change, data from the previous module will be deleted.", "En dessous du site": "Below the site", "En haut au centre": "Top in the center", - "En haut à droite": "Top right", - "En haut à gauche": "On the top corner left", - "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "In free position add the module by placing [module] to the desired location in your page.", + "En haut à droite": "Top right corner", + "En haut à gauche": "Top left corner", + "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "In free position add the module by placing [MODULE] to the desired location in your page.", "En-dehors du site": "Outside the site", "Enregistrer": "Save", "Envoyer un message de confirmation": "Send a confirmation message", @@ -226,7 +226,7 @@ "Erreur de lecture, vérifiez les permissions": "Reading error, check permissions", "Erreur inconnue": "unknown error", "Erreur inconnue, le module n'est pas installé": "Unknown error, the module is not installed", - "Export CSV": "Export CSV", + "Export CSV": "CSV Export", "Expéditeur": "From", "Extension": "Extension", "Extraire": "Extract", @@ -260,7 +260,7 @@ "Grande": "Large", "Grande (220%)": "Grande (220%)", "Grande (300px)": "Grande (300px)", - "Gras": "Fetter", + "Gras": "Bold", "Groupe": "Group", "Groupe associé": "Associated Group", "Groupe requis pour accéder à la page :": "Group required to access the page:", @@ -318,7 +318,7 @@ "Journalisation": "Journalization", "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "The archive was deposited in the file manager. Archives below version 9 are not accepted.", "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "The identifier is defined when creating the account, it cannot be changed.", - "La carte du site a été mise à jour": "The site card has been updated", + "La carte du site a été mise à jour": "The sitemap has been updated", "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "Backup copy of htaccess file has not been restored!", "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "The description of a page participates in its referencing, each page must have a different description.", "La page %s est ouverte par l'utilisateur %s": "Page %s opened by user %s", @@ -340,8 +340,8 @@ "Largeur": "Width", "Largeur de l'image": "Image Width", "Largeur du site": "Site Width", - "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "The horizontal cursor regulates the level of transparency, place it on the left for invisible highlights.", - "Le curseur horizontal règle le niveau de transparence.": "The horizontal cursor regulates the level of transparency.", + "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "The horizontal cursor sets the level of transparency, place it on the left for invisible highlights.", + "Le curseur horizontal règle le niveau de transparence.": "The horizontal cursor sets the level of transparency.", "Le fuseau horaire est utile au bon référencement": "The time zone is useful for the right SEO", "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "The accessory menu is aligned to the right of the menu bar, it is a place reserved for flags and the login button.", "Le menu horizontal intégral": "The full horizontal menu", @@ -349,7 +349,7 @@ "Le module %s de la page %s a été supprimé": "The %s module of the %s has been deleted", "Le module %s est désinstallé, il reste peut-être des données dans %s": "The module %s is uninstalled, there may be data in %s", "Le sous-menu de la page parente": "The parent page submenu", - "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Flyover of an icon on the connection screen temporarily displays the password.", + "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Hovering over a login screen icon temporarily displays the password", "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "The short title is displayed in the menus. It can be identical to the page title.", "Les langues sélectionnées sont identiques": "The selected languages ​​are identical", "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "Legal notices are compulsory in France. An option of the footer adds a discrete link to this page.", @@ -359,7 +359,7 @@ "Libre": "Libre", "Licence :": "Licence:", "Lien de connexion": "Login link", - "Lien page des mentions légales.": "Link of legal notices.", + "Lien page des mentions légales.": "Link to legal notices.", "Liens": "Links", "Limitation des tentatives": "Limitation of attempts", "Limitée au site": "Limited to the site", @@ -371,7 +371,7 @@ "Légère": "Light", "Maigre": "Lean", "Maintenance": "Maintenance", - "Majuscule à chaque mot": "Capper with each word", + "Majuscule à chaque mot": "Capitalize each word", "Majuscules": "Capital letters", "Marges verticales": "Vertical margins", "Masquer la bannière en écran réduit": "Hide the banner in reduced screen", @@ -405,20 +405,20 @@ "Modules installés": "Installed modules", "Modules orphelins": "Orphaned modules", "Mot de passe": "Password", - "Mot de passe oublié": "Forgot your password", + "Mot de passe oublié": "Forgot password", "Mot de passe perdu": "Lost password", "Motorisé par": "Powered by", "Moyen": "Medium", "Moyenne": "Medium", - "Moyenne (200%)": "Average (200%)", - "Moyenne (200px)": "Average (200px)", + "Moyenne (200%)": "Medium (200%)", + "Moyenne (200px)": "Medium (200px)", "Méta-description": "Meta-description", "Méta-titre": "Meta title", "Ne pas afficher": "Do not display", "Ne pas charger l'exemple de site (utilisateurs avancés)": "Do not load the example of a site (advanced users)", "Ne pas répéter": "Do not repeat", "Ne pas saisir les balises": "Don't type tags", - "News": "", + "News": "News", "Niveau 1 (192.168.12.x)": "Level 1 (192.168.12.x)", "Niveau 2 (192.168.x.x)": "Level 2 (192.168.x.x)", "Niveau 3 (192.x.x.x)": "Level 3 (192.x.x.x)", @@ -427,18 +427,18 @@ "Nom du profil": "Profile Name", "Nom utilisateur": "Username", "Non": "No", - "Non tronquée": "Unmanned", - "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Our site is currently under maintenance. We are sorry for the inconvenience caused and do our best to be quickly back.", + "Non tronquée": "Untruncated", + "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Our site is currently under maintenance. Sorry for the inconvenience and we do our best to be back soon.", "Nouveau contenu localisé": "New localized content", "Nouveau mot de passe": "New Password", "Nouveau mot de passe enregistré": "New password recorded", "Nouvel utilisateur": "New user", "Nouvelle page créée": "New page created", "Nouvelle page ou barre latérale": "New page or sidebar", - "Obligatoire": "Missing", + "Obligatoire": "Required", "Ombre": "Shadow", "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "Active option in disconnected mode only, children's pages are visible and accessible.", - "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Recommended option to secure the connection. Applies to all the Captchas of the site. Simple Captcha is limited to an addition of numbers from 0 to 10. Complex Captcha uses four numbers of 0 to 20. Recommended activation.", + "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Recommended option to secure the connection. Applies to all the Captchas of the site. Simple Captcha is limited to an addition of numbers from 0 to 10. Complex Captcha uses four numbers from 0 to 20. Recommended activation.", "Options": "Options", "Options avancées": "Advanced options", "Origine": "Origin", @@ -450,7 +450,7 @@ "Page de recherche": "Search page", "Page dupliquée": "Duplicate page", "Page et module dupliqués": "Duplicated page and module", - "Page inexistante, erreur 404": "Page non-existent, error 404", + "Page inexistante, erreur 404": "Non-existent page, error 404", "Page non cliquable": "Non-clickable page", "Page parent": "Parent page", "Page standard": "Standard page", @@ -476,7 +476,7 @@ "Permissions sur les pages": "Page Permissions", "Petite": "Small", "Petite (150px)": "Small (150px)", - "Petite (180%)": "Petite (180%)", + "Petite (180%)": "Small (180%)", "Pied de page": "Footer", "Pinterest": "Pinterest", "Plan du site": "Sitemap", @@ -490,9 +490,9 @@ "Presse Papier": "Clipboard", "Presse papier": "Clipboard", "Profils des groupes": "Group Profiles", - "Proportionnelle à la taille définie dans le site.": "Proportional to that defined in the site.", + "Proportionnelle à la taille définie dans le site.": "Proportional to the size defined in the site.", "Prénom": "First name", - "Prénom Nom": "Firstname name", + "Prénom Nom": "First name Name", "Préparation de la mise à jour": "Preparation of the update", "Préserver le fichier htaccess racine": "Preserve the root htaccess file", "Préserver les comptes des utilisateurs déjà installés": "Preserve user accounts already installed", @@ -579,7 +579,7 @@ "Sur les deux axes": "On both axes", "Sécurité": "Security", "Sécurité de la connexion": "Connection security", - "Sécurité désactivée": "Safety deactivated", + "Sécurité désactivée": "Security disabled", "Sélectionner un fichier": "Select a file", "Sélectionnez au moins un contenu à afficher": "Select at least one content to display", "Sélectionnez la langue à copier vers une langue cible": "Select the language to copy to a target language", @@ -689,5 +689,15 @@ "Groupes / Profils": "Groups / Profiles", "Prénom commence par": "First Name starts with", "Nom commence par": "Last Name starts with", - "Impossible de réinitialiser le mot de passe de ce compte !": "Impossible to reset this account password!" + "Impossible de réinitialiser le mot de passe de ce compte !": "Impossible to reset this account password!", + "Test de la messagerie du site": "Site messaging test", + "Il semblerait que votre messagerie fonctionne correctement !": "It seems that your messaging is working correctly!", + "Message de test envoyé avec succès": "Test message sent successfully", + "Message non envoyé": "Message not sent", + "Validation par clé ⚠️": "Key-based validation ⚠️", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "The connection is confirmed using a key sent via messaging. From the selected group and the higher groups.", + "Envoi du message d'authentification": "Sending authentication message", + "Connexion réussie": "Login successful", + "Erreur de mot de passe": "Password error", + "Erreur de captcha": "Captcha error" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/es.json b/core/module/install/ressource/i18n/es.json index ec688034..bef573e3 100644 --- a/core/module/install/ressource/i18n/es.json +++ b/core/module/install/ressource/i18n/es.json @@ -1,7 +1,7 @@ { "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'No mostrar' crea una página huérfana a la que no se puede acceder a través de los menús.", "'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo", - "1 jour": "1 Jour", + "1 jour": "1 diaz", "1/4 : Préparation...": "1/4: Preparando...", "10 minutes": "10 minutos", "10 tentatives": "6 intentos", @@ -322,7 +322,7 @@ "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "¡La copia de seguridad del archivo htaccess no ha sido restaurada!", "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "La descripción de una página participa en su referenciación, cada página debe tener una descripción diferente.", "La page %s est ouverte par l'utilisateur %s": "La página %s ha sido abierta por el usuario %s", - "La page demandée n'existe pas ou est introuvable (erreur 404)": "La page demandée n'existe pas ou est introuvable (erreur 404)", + "La page demandée n'existe pas ou est introuvable (erreur 404)": "La página solicitada no existe o no se encuentra (error 404).", "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "La página se muestra en un menú horizontal pero no en el menú vertical de una barra lateral.", "La première page que vos visiteurs verront.": "La primera página que verán tus visitantes.", "La règlementation française impose un anonymat de niveau 2": "La normativa francesa impone el anonimato de nivel 2", @@ -476,7 +476,7 @@ "Permissions sur les pages": "Permisos de las páginas", "Petite": "Pequeño", "Petite (150px)": "Pequeño (150px)", - "Petite (180%)": "Petite (180%)", + "Petite (180%)": "Pequeño (180px)", "Pied de page": "Pie de página", "Pinterest": "Pinterest", "Plan du site": "Mapa del sitio", @@ -689,5 +689,15 @@ "Groupes / Profils": "Grupos / Perfiles", "Prénom commence par": "El nombre comienza con", "Nom commence par": "El apellido comienza con", - "Impossible de réinitialiser le mot de passe de ce compte !": "No puedo restablecer la contraseña de esta cuenta." + "Impossible de réinitialiser le mot de passe de ce compte !": "No puedo restablecer la contraseña de esta cuenta.", + "Test de la messagerie du site": "Prueba de mensajería del sitio", + "Il semblerait que votre messagerie fonctionne correctement !": "¡Parece que su mensajería funciona correctamente!", + "Message de test envoyé avec succès": "Mensaje de prueba enviado con éxito", + "Message non envoyé": "Mensaje no enviado", + "Validation par clé ⚠️": "Validación por clave ⚠️", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "La conexión se confirma con una clave enviada por mensajería. Desde el grupo seleccionado y los grupos superiores.", + "Envoi du message d'authentification": "Envío del mensaje de autenticación", + "Connexion réussie": "Conexión exitosa", + "Erreur de mot de passe": "Error de contraseña", + "Erreur de captcha": "Error de captcha" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/fr_FR.json b/core/module/install/ressource/i18n/fr_FR.json index e89a4212..c07b9e6e 100644 --- a/core/module/install/ressource/i18n/fr_FR.json +++ b/core/module/install/ressource/i18n/fr_FR.json @@ -689,5 +689,15 @@ "Groupes / Profils": "", "Prénom commence par": "", "Nom commence par": "", - "Impossible de réinitialiser le mot de passe de ce compte !": "" + "Impossible de réinitialiser le mot de passe de ce compte !": "", + "Test de la messagerie du site": "", + "Il semblerait que votre messagerie fonctionne correctement !": "", + "Message de test envoyé avec succès": "", + "Message non envoyé": "", + "Validation par clé ⚠️": "", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "", + "Envoi du message d'authentification": "", + "Connexion réussie": "", + "Erreur de mot de passe": "", + "Erreur de captcha": "" } \ No newline at end of file diff --git a/core/module/user/user.php b/core/module/user/user.php index e26eaa6e..8dca1255 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -1067,22 +1067,48 @@ class user extends common * Le site n'est pas en maintenance * Double authentification en cas de saisie correcte */ - - // Clé d'authenfication utlisée pour lier le compte au cookie au lieu de stocker le hash du mot de passe + // Clé d'authenfication utilisée pour lier le compte au cookie au lieu de stocker le hash du mot de passe $authKey = uniqid('', true) . bin2hex(random_bytes(8)); - if ($this->getData(['user', $userId, 'group']) >= $this->getData(['config', 'connect', 'mailAuth'])) { - $logStatus = 'Envoi du mail d\'authentification'; - // Redirection vers la page d'authentification - $authRedirect = 'user/auth/'; - // Stocker la clé envoyée par email - $this->setData(['user', $userId, 'authKey', rand(100000, 999999)]); + // Clé pour la double validation + $keyByMail = rand(100000, 999999); + // La page d'authentification est vide + $authRedirect = ''; + if ( + $this->getData(['config', 'connect', 'mailAuth']) > 0 + && $this->getData(['user', $userId, 'group']) >= $this->getData(['config', 'connect', 'mailAuth']) + ) { + /** + * Envoi d'un email contenant une clé + * Stockage de la clé dans le compte de l'utilisateur + */ + $sent = $this->sendMail( + $this->getData(['user', $userId, 'mail']), + 'Validation de la connexion à votre compte', + '

Clé de validation à saisir dans le formulaire de connexion :

' . + '

' . $keyByMail . '

', + null, + $this->getData(['config', 'smtp', 'from']) + ); + + // L'email a été envoyé avec succès, redirection vers la page de double authentification + if ($sent === true) { + $logStatus = helper::translate('Envoi du message d\'authentification'); + // Redirection vers la page d'authentification + $authRedirect = 'user/auth/'; + // Stocker la clé envoyée par email + $this->setData(['user', $userId, 'authKey', $keyByMail]); + } else { + // Impossible d'envoyer le message + // Double authentification désactivée + $this->setData(['config', 'connect', 'mailAuth', 0]); + $this->setData(['user', $userId, 'authKey', $authKey]); + // Journalisation + $this->saveLog($sent); + } } else { - $logStatus = 'Connexion réussie'; - // La page d'autentification est vide - $authRedirect = ''; + $logStatus = helper::translate('Connexion réussie'); $this->setData(['user', $userId, 'authKey', $authKey]); - } // Validité du cookie @@ -1124,7 +1150,7 @@ class user extends common // Sinon notification d'échec } else { $notification = helper::translate('Captcha, identifiant ou mot de passe incorrects'); - $logStatus = $captcha === true ? 'Erreur de mot de passe' : 'Erreur de captcha'; + $logStatus = $captcha === true ? helper::translate('Erreur de mot de passe') : helper::translate('Erreur de captcha'); // Cas 1 le nombre de connexions est inférieur aux tentatives autorisées : incrément compteur d'échec if ($this->getData(['user', $userId, 'connectFail']) < $this->getData(['config', 'connect', 'attempt'], false)) { $this->setData(['user', $userId, 'connectFail', $this->getdata(['user', $userId, 'connectFail']) + 1], false); @@ -1140,7 +1166,7 @@ class user extends common // Valeurs en sortie $this->addOutput([ - 'notification' => $notification + 'notification' => $notification, ]); } } @@ -1177,9 +1203,11 @@ class user extends common $targetKey = $this->getData(['user', $this->getUser('id'), 'authKey']); $inputKey = $this->getInput('userAuthKey', helper::FILTER_INT); if ( - $targetKey === $inputKey && - $this->getData(['user', $this->getUser('id'), 'connectTimeout']) + 3600 >= time() + // La clé est valide ou le message n'ayant pas été expédié, la double authentification est désactivée + $targetKey === $inputKey || $this->getData(['config', 'connect', 'mailAuth', 0]) === 0 ) { + + // Redirection $pageId = $this->getUrl(2); // La fiche de l'utilisateur contient la clé d'authentification $this->setData(['user', $this->getUser('id'), 'authKey', $this->getInput('ZWII_AUTH_KEY')]); @@ -1213,39 +1241,12 @@ class user extends common // Valeurs en sortie $this->addOutput([ - 'redirect' => helper::baseUrl(), + 'redirect' => helper::baseUrl() . 'user/auth', 'notification' => helper::translate('La clé est incorrecte'), 'state' => false ]); } } else { - /** - * Envoi d'un email contenant une clé - * Stockage de la clé dans le compte de l'utilisateur - */ - // La clé est envoyée une seule fois - $sent = false; - if ( - $this->getData(['user', $this->getUser('id'), 'authKey']) - && $this->getData(['user', $this->getUser('id'), 'connectTimeout']) === 0 - ) { - $sent = $this->sendMail( - $this->getUser('mail'), - 'Validation de la connexion à votre compte', - //'Bonjour ' . $item['prenom'] . ' ' . $item['nom'] . ',

' . - '

Clé de validation à saisir dans le formulaire de connexion :

' . - '

' . $this->getData(['user', $this->getUser('id'), 'authKey']) . '

', - null, - $this->getData(['config', 'smtp', 'from']) - ); - // Stocker l'envoi de l'email - $this->setData(['user', $this->getUser('id'), 'connectTimeout', time()]); - } - - // Message envoyé sinon la connexion est réalisée pour ne pas bloquer. - if ($sent === false) { - - } // Valeurs en sortie $this->addOutput([ 'title' => helper::translate('Double authentification'), diff --git a/core/module/user/view/auth/auth.css b/core/module/user/view/auth/auth.css index e2179322..5fdd138c 100644 --- a/core/module/user/view/auth/auth.css +++ b/core/module/user/view/auth/auth.css @@ -32,5 +32,20 @@ #userAuthKey { text-align: center; - font-size: 1.3rem; -} \ No newline at end of file + font-size: 2rem; + border: none; /* Supprime toutes les bordures */ + border-bottom: 2px solid #000; /* Ajoute uniquement une bordure inférieure */ + padding: 5px 0; /* Ajoute un peu d'espace au-dessus et en dessous */ + margin-top: 10px; /* Ajoute un espacement au-dessus du champ */ + outline: none; /* Supprime l'effet de focus par défaut */ + letter-spacing: 6px; /* Ajoute un espacement de 2 pixels */ +} + +#userAuthKey:focus { + border-bottom-color: #007bff; /* Change la couleur du cadre bas lorsqu'on clique */ + border-bottom-width: 3px; /* Accentue la bordure inférieure */ +} + +.container.light { + filter: drop-shadow(5px 5px 10px rgba(0, 0, 0, 0.2)); +} diff --git a/core/module/user/view/auth/auth.php b/core/module/user/view/auth/auth.php index 896b89c3..fb152c77 100644 --- a/core/module/user/view/auth/auth.php +++ b/core/module/user/view/auth/auth.php @@ -1,8 +1,8 @@
-
+
helper::translate('Clé reçue par courriel') + 'label' => helper::translate('Clé reçue par couriel') ]); ?>
@@ -13,10 +13,10 @@ 'value' => template::ico('left') ]); ?>
-
+
helper::translate('Authentification'), - 'ico' => '' + 'value' => template::ico('check'), + 'ico' => '', ]); ?>
diff --git a/site/i18n/en_EN.json b/site/i18n/en_EN.json new file mode 100644 index 00000000..b73bc9bb --- /dev/null +++ b/site/i18n/en_EN.json @@ -0,0 +1,703 @@ +{ + "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'Do not display' creates an orphan page not accessible through menus.", + "'Sauvegarder et télécharger les données du module": "'Save and download module data", + "1 jour": "1 day", + "1/4 : Préparation...": "1/4: preparation ...", + "10 minutes": "10 minutes", + "10 tentatives": "10 attempts", + "14 jours": "14 days", + "15 minutes": "15 minutes", + "2 jours": "2 days", + "2/4 : Téléchargement...": "2/4: Download ...", + "3 tentatives": "3 attempts", + "3/4 : Installation...": "3/4 : Installation...", + "4 jours": "4 days", + "4/4 : Configuration...": "4/4 : Setup...", + "5 minutes": "5 minutes", + "5 tentatives": "5 attempts", + "7 jours": "7 days", + "Accueil": "Homepage", + "Accède au site": "Access to the site", + "Accède aux pages réservées": "Access to restricted pages", + "Accède aux pages réservées et à un dossier partagé": "Access to restricted pages and a shared folder", + "Accès bloqué %d minutes": "Blocked access %d minutes", + "Accès désactivé": "Access disabled", + "Accès interdit, erreur 403": "Access prohibited, error 403", + "Action interdite": "Prohibited action", + "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "Compulsory activation according to French laws unless you use your own consent system.", + "Activer": "Enable", + "Activer la journalisation": "Activate journalization", + "Actualiser": "Update", + "Adaptation": "Adaptation", + "Administrateur": "Administrator", + "Administration": "Administration", + "Adresse SMTP": "SMTP address", + "Adresse du proxy": "Proxy address", + "Adresse électronique": "email address", + "Affectation": "Assignment", + "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "Displays the name of the parent page followed by the page name, the title should not be hidden.", + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés": "Displays account management and logout icons for logged-in regular members", + "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "In order to ensure the proper functioning of Zwii, please do not close this page before the end of the operation.", + "Aide": "Help", + "Ajouter": "Add", + "Ajouter un profil": "Add Profile", + "Ajouter un utilisateur": "Add a user", + "Ajouter une fonte": "Add a cast iron", + "Alignement": "Alignment", + "Aligner la bannière avec le contenu": "Align the banner with the contents", + "Ancien mot de passe": "Old Password", + "Anonymat des adresses IP": "Anonymity of IP addresses", + "Apache URL intelligent": "Intelligent Apache URL", + "Apache URL intelligentes": "Intelligent Apache URL", + "Apparence": "Appearance", + "Appliquer": "Apply", + "Approuver un commentaire": "Approve Comment", + "Après": "After", + "Après la bannière": "After the banner", + "Après le contenu de la page": "After the content of the page", + "Archive": "Archive", + "Archive ZIP": "Zip archive", + "Archive copiée dans le dossier Modules du gestionnaire de fichier": "Archive copied in the Modules folder", + "Archive de thème invalide": "Invalid theme archive", + "Archive invalide": "Invalid archive", + "Archive invalide, l'écriture dans le dossier core est interdite": "Invalid archive, writing in the core folder is prohibited", + "Archive invalide, le descripteur est absent": "Invalid archive, the descriptor is absent", + "Archive invalide, le fichier de classe est absent": "Invalid archive, the class file is absent", + "Archive invalide, les dossiers ne correspondent pas au descripteur": "Invalid archive, the files do not match the descriptor", + "Archive non spécifiée ou introuvable": "Archive not specified or not found", + "Archive à restaurer": "Archive to restore", + "Arrière plan": "Background", + "Arrière plan des blocs": "Blocks background", + "Arrière plan des champs": "Fields background", + "Arrondi des angles": "Rounding of angles", + "Au centre": "Center", + "Au début": "At first", + "Au milieu au centre": "In the middle in the center", + "Au milieu à droite": "In the middle right", + "Au milieu à gauche": "In the middle on the left", + "Au-dessus du site": "Above the site", + "Aucun": "None", + "Aucun dossier": "No Folder", + "Aucun fichier journal à télécharger": "No log file to download", + "Aucun journal à effacer": "No log file to erase", + "Aucun menu": "No menu", + "Aucune": "None", + "Aucune liste noire à effacer": "No blacklist to erase", + "Aucune liste noire à télécharger": "No blacklist to download", + "Auteur :": "Author:", + "Authentification": "Authentication", + "Automatique": "Automatic", + "Autoriser les robots à référencer le site": "Allow robots to reference the site", + "Autorisé": "Allowed", + "Avant la bannière": "Before the banner", + "Avant le contenu de la page": "Before the content of the page", + "Background": "Background", + "Banni": "Ban", + "Bannière": "Banner", + "Bannière cliquable": "Clickable banner", + "Barre 1/3 - page 2/3": "Sidebar 1/3 - page 2/3", + "Barre 1/4 - page 1/2 - barre 1/4": "Sidebar 1/4 - page 1/2 - Sidebar 1/4", + "Barre 1/4 - page 3/4": "Sidebar 1/4 - page 3/4", + "Barre 2/12 - page 7/12 - barre 3/12": "Sidebar 2/12 - page 7/12 - Sidebar 3/12", + "Barre 3/12 - page 7/12 - barre 2/12": "Sidebar 3/12 - page 7/12 - Sidebar 2/12", + "Barre de membre": "Member bar", + "Barre latérale": "Sidebar", + "Barre latérale droite :": "Right sidebar:", + "Barre latérale gauche :": "Left sidebar:", + "Barres latérales": "Sidebars", + "Bienvenue %s %s": "Welcome %s %s", + "Blocage après échecs": "Blocking after failure", + "Blog": "Blog", + "Bords arrondis": "Rounded edges", + "Bordure des blocs": "Blocks border", + "Bordure des champs": "Fields border", + "Bouton Aide": "Help button", + "Bouton Standard": "Standard button", + "Bouton de validation": "Validation button", + "Bouton effacement": "Delete button", + "Bouton retour": "Return button", + "Bouton standard": "Standard button", + "Bouton validation": "Validation button", + "Boutons": "Buttons", + "Caché": "Hidden", + "Cachée": "Hidden", + "Captcha complexe": "Complex captcha", + "Captcha à la connexion": "Captcha", + "Captcha, identifiant ou mot de passe incorrects": "Incorrect captcha, login or password", + "Capture d'écran Open Graph": "Open Graph screenshot", + "Capture d'écran générée avec succès": "Successful generated screenshot", + "Casse": "Case", + "Catalogue": "Store", + "Catégorie": "Category", + "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "This member can upload or download files in the 'Sharing' folder and its subfolders", + "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "This page should not appear in the menu tree. Create an orphan page.", + "Cette redirection ne concerne que les pages d'administration du site.": "This redirection only concerns the site administration pages.", + "Chaîne Youtube": "Youtube channel", + "Chiffres": "Numbers", + "Cible": "Target", + "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "Click on an area to access its customization options.", + "Commentaire": "Comment", + "Complète": "Complete", + "Compte administrateur": "Administrator account", + "Compte de l'utilisateur": "User Account", + "Compte verrouillé": "Locked", + "Configuration": "Setup", + "Configuration du module": "Module setup", + "Configurer": "Configure", + "Configurer mon compte": "Set up my account", + "Confirmation": "Confirmation", + "Confirmer la suppression de cet utilisateur": "Confirm the deletion of this user", + "Confirmer la dissociation du module de cette page": "Confirm the dissociation of the module of this page", + "Confirmer la désinstallation du module": "Confirm the uninstalling of the module", + "Confirmer la suppression de cet utilisateur": "Confirm the deletion of this user", + "Confirmer la suppression de cette langue": "Confirm deletion of this language", + "Confirmer la suppression de la page": "Confirm the deletion of the page", + "Confirmer la suppression des données du module": "Confirm the deletion of module data", + "Confirmez-vous la suppression de cette page ?": "Do you confirm the deletion of this page?", + "Connexion": "Connection", + "Consulter l'aide en ligne": "Online help", + "Contents": "Contents", + "Contenu": "Contents", + "Contenu HTML": "HTML content", + "Contenu avancé": "Advanced content", + "Contenu du menu vertical": "Vertical menu content", + "Contrôle total": "Full control", + "Cookies": "Cookies", + "Cookies Zwii": "Cookies Zwii", + "Copie de contenus localisés": "Localized content copy", + "Copie de sites inter-langues": "Copy of inter-language sites", + "Copie des traductions rédigées": "Copy of written translations", + "Copie terminée avec des erreurs": "Copy finished with errors", + "Copie terminée avec succès": "Copy successfully completed", + "Copier": "Copy", + "Copier sauvegardes auto": "Copy auto backups", + "Couleur de fond automatique": "Automatic background color", + "Couleur icône haut de page": "Color of top page icon", + "Couleur texte page active": "Active page text color", + "Couleur unie ou papier-peint": "Plain color or wallpaper", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency.", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency. The color of the text is automatic.", + "Couleurs": "Colors", + "Dans le site": "Into the site", + "Dans quelle langue utiliserez-vous Zwii ?": "In which language will you use Zwii?", + "Date": "Date", + "Description": "Site description", + "Disponible si le consentement des cookies est activé.": "Available if cookie consent is enabled.", + "Disposition": "Layout", + "Données %s copiées vers %s": "Data %s copied to %s", + "Données des modules": "Module data", + "Données importées": "Imported data", + "Dossier": "Folder", + "Droits sur les dossiers": "Folder authorizations", + "Droits sur les fichiers": "File authorizations", + "Dupliquer": "Clone", + "Dupliquer la page": "Clone page", + "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "Disconnects the previously opened sessions on other browsers or terminals. Recommended activation.", + "Déconnecter": "Disconnect", + "Déconnexion !": "Logout!", + "Déconnexion automatique": "Automatic disconnection", + "Définir par défaut": "Set as default", + "Dévoiler le mot de passe": "Reveal the password", + "Effacer": "Delete", + "Effacer la page": "Delete page", + "Effacer tous les commentaires": "Delete all Comments", + "Effacer toutes les statistiques": "Delete all statistics", + "Effacer un commentaire": "Delete Comment", + "Effacer une catégorie": "Delete category", + "Emplacement :": "Location:", + "Emplacement dans le menu": "Location in the menu", + "En bas au centre": "Down in the center", + "En bas à droite": "At the bottom right", + "En bas à gauche": "At the bottom left", + "En cas de changement de module, les données du module précédent seront supprimées.": "In the event of a module change, data from the previous module will be deleted.", + "En dessous du site": "Below the site", + "En haut au centre": "Top in the center", + "En haut à droite": "Top right corner", + "En haut à gauche": "Top left corner", + "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "In free position add the module by placing [MODULE] to the desired location in your page.", + "En-dehors du site": "Outside the site", + "Enregistrer": "Save", + "Envoyer un message de confirmation": "Send a confirmation message", + "Erreur : sauvegarde non générée !": "Error: non-generated backup!", + "Erreur d'URL": "URL error", + "Erreur d'extraction, vérifiez les permissions": "Extraction error, check permissions", + "Erreur de copie": "Copy error", + "Erreur de copie, vérifiez les permissions": "Copy error, check permissions", + "Erreur de lecture, vérifiez les permissions": "Reading error, check permissions", + "Erreur inconnue": "unknown error", + "Erreur inconnue, le module n'est pas installé": "Unknown error, the module is not installed", + "Export CSV": "CSV Export", + "Expéditeur": "From", + "Extension": "Extension", + "Extraire": "Extract", + "Facebook": "Facebook", + "Famille": "Family", + "Favicon thème sombre": "Dark theme favicon", + "Feuille de style spécifique à la page.": "Style sheet specific to the page.", + "Fichiers": "Files", + "Fichiers effacés": "Erased files", + "Fil d'Ariane dans le titre": "Breadcrumb in the title", + "Fond du sous-menu": "Background of the submenu", + "FontId": "FontId", + "Fonte": "Font", + "Fonte actualisée": "Update", + "Fonte créée": "Font created", + "Fonte en ligne": "Online font", + "Fonte installée": "Installed font", + "Fonte non créée, ressource absente !": "Font not created, absent resource!", + "Fonte supprimée": "Font deleted", + "Fontes": "Fonts", + "Format incorrect": "Wrong format", + "Formulaire": "Form", + "Fréquence de recherche": "Search frequency", + "Fuseau horaire": "Time zone", + "Gabarits de page - Barre latérale": "Page templates - Sidebar", + "Gestion": "Management", + "Gestion des modules": "Module management", + "Gestion des thèmes": "Themes management", + "Gestionnaire de fichiers": "File Manager", + "Github": "Github", + "Grande": "Large", + "Grande (220%)": "Grande (220%)", + "Grande (300px)": "Grande (300px)", + "Gras": "Bold", + "Groupe": "Group", + "Groupe associé": "Associated Group", + "Groupe requis pour accéder à la page :": "Group required to access the page:", + "Groupes": "Groups", + "Générer sitemap.xml et robots.txt": "Generate sitemap.xml and robots.txt", + "Générer une capture Open Graph": "Generate an Open Graph capture", + "Gérer les catégories": "Manage categories", + "Gérer les commentaires": "Manage comments", + "Gérer les données": "Manage Data", + "Hauteur": "Height:", + "Hauteur de l'image": "Image Height", + "Hauteur de l'image sélectionnée": "Selected Image Height", + "Hauteur maximale": "Maximum height", + "ID de la chaîne : https://www.youtube.com/channel/[ID].": "Channel ID: https://www.youtube.com/channel/ [ID].", + "Icône": "Icon", + "Icône avec bulle de texte": "Icon with text bubble", + "Icône haut de page, couleur arrière-plan": "Top page icon, background color", + "Identifiant": "Identifier", + "Identifiant (sans espace ni majuscule)": "Identifier (without space or capital letters)", + "Identité": "Identity", + "Identité de la fonte": "Identity of the font", + "Identité du site": "Site identity", + "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "It appears in the title bar and sharing on social networks.", + "Image": "Image", + "Image étirée (100% 100%)": "Stretched image (100% 100%)", + "Important": "Important", + "Importante": "Important", + "Importation d'utilisateurs": "Import of users", + "Importation de fichier plat CSV": "CSV flat file import", + "Importation effectuée": "Import done", + "Importer": "Import", + "Importer dans": "Import into", + "Importer des utilisateurs en masse": "Import mass users", + "Impossible d'ouvrir l'archive": "Impossible to open the archive", + "Impossible de modifier votre propre groupe.": "Unable to modify your own group.", + "Impossible de soumettre le formulaire, car il contient des erreurs": "Unable to submit the form, as it contains errors", + "Impossible de supprimer une page contenant des pages enfants": "Unable to delete a page containing children's pages", + "Impossible de supprimer votre propre compte": "Unable to delete your own account", + "Inclure le contenu du gestionnaire de fichiers": "Include the content of the file manager", + "Incorrect": "Incorrect", + "Informations": "Informations", + "Instagram": "Instagram", + "Installation terminée": "Installation completed", + "Installer": "Install", + "Installer depuis le catalogue en ligne": "Install from the online catalog", + "Installer depuis une archive": "Install from an archive", + "Installer les données d'un module": "Install a module data", + "Installer ou mettre à jour un module téléchargé": "Install or update a downloaded module", + "Installer un module": "Install a module", + "Installer un thème archivé (site ou administration)": "Install an archived theme (site or administration)", + "Instructions JS ou jquery spécifiques à la page.": "JS or JQuery instructions specific to the page.", + "Interface": "Interface", + "Jeton invalide": "Invalid token", + "Journal réinitialisé avec succès": "Log file successfully reset", + "Journalisation": "Journalization", + "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "The archive was deposited in the file manager. Archives below version 9 are not accepted.", + "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "The identifier is defined when creating the account, it cannot be changed.", + "La carte du site a été mise à jour": "The sitemap has been updated", + "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "Backup copy of htaccess file has not been restored!", + "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "The description of a page participates in its referencing, each page must have a different description.", + "La page %s est ouverte par l'utilisateur %s": "Page %s opened by user %s", + "La page demandée n'existe pas ou est introuvable (erreur 404)": "This page does not exists (error 404)", + "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "The page is displayed in a horizontal menu but not in the vertical menu of a sidebar.", + "La première page que vos visiteurs verront.": "The first page that your visitors will see.", + "La règlementation française impose un anonymat de niveau 2": "French regulations require level 2 anonymity", + "La réécriture d'URL n'a pas été restaurée !": "URL rewriting has not been restored!", + "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "The backup of the files can take time. Continue?", + "La suppression a échoué": "The deletion failed", + "La version installée est plus récente": "The installed version is more recent", + "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "The verification is daily. Option deactivated if the server configuration does not allow it.", + "Langue de l'administration": "Language of administration", + "Langue du site par défaut": "Default site language", + "Langue par défaut": "Default language", + "Langues": "Languages", + "Langues disponibles": "Available languages", + "Langues installées": "Installed languages", + "Largeur": "Width", + "Largeur de l'image": "Image Width", + "Largeur du site": "Site Width", + "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "The horizontal cursor sets the level of transparency, place it on the left for invisible highlights.", + "Le curseur horizontal règle le niveau de transparence.": "The horizontal cursor sets the level of transparency.", + "Le fuseau horaire est utile au bon référencement": "The time zone is useful for the right SEO", + "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "The accessory menu is aligned to the right of the menu bar, it is a place reserved for flags and the login button.", + "Le menu horizontal intégral": "The full horizontal menu", + "Le module %s a été %s": "The module %s was %s", + "Le module %s de la page %s a été supprimé": "The %s module of the %s has been deleted", + "Le module %s est désinstallé, il reste peut-être des données dans %s": "The module %s is uninstalled, there may be data in %s", + "Le sous-menu de la page parente": "The parent page submenu", + "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Hovering over a login screen icon temporarily displays the password", + "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "The short title is displayed in the menus. It can be identical to the page title.", + "Les langues sélectionnées sont identiques": "The selected languages ​​are identical", + "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "Legal notices are compulsory in France. An option of the footer adds a discrete link to this page.", + "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "The changes you have made may not be recorded.", + "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "The font sizes of the banner, menu and footer are proportional to this size.", + "Lettres": "Letters", + "Libre": "Libre", + "Licence :": "Licence:", + "Lien de connexion": "Login link", + "Lien page des mentions légales.": "Link to legal notices.", + "Liens": "Links", + "Limitation des tentatives": "Limitation of attempts", + "Limitée au site": "Limited to the site", + "Linkedin": "Linkedin", + "Liste noire": "Blacklist", + "Liste noire réinitialisée avec succès": "Blacklist successfully reset", + "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "During an automatic update, keeps the htaccess file of the site root.", + "Léger": "Light", + "Légère": "Light", + "Maigre": "Lean", + "Maintenance": "Maintenance", + "Majuscule à chaque mot": "Capitalize each word", + "Majuscules": "Capital letters", + "Marges verticales": "Vertical margins", + "Masquer la bannière en écran réduit": "Hide the banner in reduced screen", + "Masquer la page et les pages enfants dans le menu d'une barre latérale": "Hide the page and children's pages in the menu of a sidebar", + "Masquer les pages enfants dans le menu horizontal": "Hide children's pages in the horizontal menu", + "Membre": "Member", + "Membre avec droit de partage": "Member with sharing rights", + "Membre simple": "Simple member", + "Mentions légales": "Legal notice", + "Menu": "Menu", + "Menu accessoire": "Accessory menu", + "Menu burger dans écran réduit": "Burger menu in reduced screen", + "Menu standard": "Standard menu", + "Message d'acceptation des Cookies": "Cookie acceptance message", + "Message de consentement aux cookies": "Cookie consent message", + "Mettre à jour": "Update", + "Mettre à jour le module orphelin": "Update the orphan module", + "Minuscules": "Tiny", + "Mise en forme des titres": "Formatting of titles", + "Mise en forme du texte": "Text formatting", + "Mise en forme du titre": "Title formatting", + "Mise en page": "Layout", + "Mise à jour": "Update", + "Mise à jour automatisée": "Automated update", + "Mise à jour terminée avec succès.": "Successful update completed.", + "Modifications enregistrées": "Modifications recorded", + "Module": "Module", + "Module de la page": "Page module", + "Modules": "Modules", + "Modules configurés": "Configured modules", + "Modules installés": "Installed modules", + "Modules orphelins": "Orphaned modules", + "Mot de passe": "Password", + "Mot de passe oublié": "Forgot password", + "Mot de passe perdu": "Lost password", + "Motorisé par": "Powered by", + "Moyen": "Medium", + "Moyenne": "Medium", + "Moyenne (200%)": "Medium (200%)", + "Moyenne (200px)": "Medium (200px)", + "Méta-description": "Meta-description", + "Méta-titre": "Meta title", + "Ne pas afficher": "Do not display", + "Ne pas charger l'exemple de site (utilisateurs avancés)": "Do not load the example of a site (advanced users)", + "Ne pas répéter": "Do not repeat", + "Ne pas saisir les balises": "Don't type tags", + "News": "News", + "Niveau 1 (192.168.12.x)": "Level 1 (192.168.12.x)", + "Niveau 2 (192.168.x.x)": "Level 2 (192.168.x.x)", + "Niveau 3 (192.x.x.x)": "Level 3 (192.x.x.x)", + "Nom": "Last Name", + "Nom Prénom": "Last name First Name", + "Nom du profil": "Profile Name", + "Nom utilisateur": "Username", + "Non": "No", + "Non tronquée": "Untruncated", + "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Our site is currently under maintenance. Sorry for the inconvenience and we do our best to be back soon.", + "Nouveau contenu localisé": "New localized content", + "Nouveau mot de passe": "New Password", + "Nouveau mot de passe enregistré": "New password recorded", + "Nouvel utilisateur": "New user", + "Nouvelle page créée": "New page created", + "Nouvelle page ou barre latérale": "New page or sidebar", + "Obligatoire": "Required", + "Ombre": "Shadow", + "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "Active option in disconnected mode only, children's pages are visible and accessible.", + "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Recommended option to secure the connection. Applies to all the Captchas of the site. Simple Captcha is limited to an addition of numbers from 0 to 10. Complex Captcha uses four numbers from 0 to 20. Recommended activation.", + "Options": "Options", + "Options avancées": "Advanced options", + "Origine": "Origin", + "Oui": "Yes", + "Page": "Page", + "Page 2/3 - barre 1/3": "Page 2/3 - Sidebar 1/3", + "Page 3/4 - barre 1/4": "Page 3/4 - Sidebar 1/4", + "Page associée": "Associated page", + "Page de recherche": "Search page", + "Page dupliquée": "Duplicate page", + "Page et module dupliqués": "Duplicated page and module", + "Page inexistante, erreur 404": "Non-existent page, error 404", + "Page non cliquable": "Non-clickable page", + "Page parent": "Parent page", + "Page standard": "Standard page", + "Page supprimée": "Deleted page", + "Pages dans le menu": "Pages in the menu", + "Pages du site": "Site pages", + "Pages et les modules de": "Pages and modules of", + "Pages orphelines": "Orphan pages", + "Papier peint": "Wallpaper", + "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "By default the menu is displayed after the content of the page. To position it at a specific location, insert [MENU] into the content of the page.", + "Paramètres": "Settings", + "Paramètres de la localisation": "Location parameters", + "Paramètres de la sauvegarde": "Backup settings", + "Paramètres du profil": "Profile Settings", + "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "Settings to use when your host does not offer the mail sending feature.", + "Pas de marge au-dessus et en dessous du site": "No margin above and below the site", + "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Remember to delete your browser's cache if the favicon does not change.", + "Permission": "Permission", + "Permission et référencement": "Permission and SEO", + "Permissions": "Permissions", + "Permissions sur les dossiers": "Folder Permissions", + "Permissions sur les fichiers": "File Permissions", + "Permissions sur les pages": "Page Permissions", + "Petite": "Small", + "Petite (150px)": "Small (150px)", + "Petite (180%)": "Small (180%)", + "Pied de page": "Footer", + "Pinterest": "Pinterest", + "Plan du site": "Sitemap", + "Police des titres": "Titles font", + "Police du texte": "Text font", + "Port SMTP": "SMTP port", + "Port du proxy": "Proxy port", + "Position": "Position", + "Position du module": "Position of the module", + "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "To define the page as a sidebar, choose the option from the list.", + "Presse Papier": "Clipboard", + "Presse papier": "Clipboard", + "Profils des groupes": "Group Profiles", + "Proportionnelle à la taille définie dans le site.": "Proportional to the size defined in the site.", + "Prénom": "First name", + "Prénom Nom": "First name Name", + "Préparation de la mise à jour": "Preparation of the update", + "Préserver le fichier htaccess racine": "Preserve the root htaccess file", + "Préserver les comptes des utilisateurs déjà installés": "Preserve user accounts already installed", + "Prévenir l'utilisateur par mail": "Prevent the user by email", + "Prévisualiser": "Preview", + "Pseudo": "Pseudo", + "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "Rank 9 > Rank 1. The profile of Rank 1 is not editable.", + "Ratio": "Ratio", + "Ratio :": "Ratio:", + "Recherche": "Search", + "Recherche dans le site": "Search on the site", + "Rechercher": "Search", + "Rechercher une mise à jour en ligne": "Search for an online update", + "Redirection": "Redirection", + "Redirection vers la connexion": "Redirection to connection", + "Renommer": "Rename", + "Renseignez les champs ci-dessous pour finaliser l'installation.": "Fill in the fields below to finalize the installation.", + "Responsive (contain)": "Responsive (contain)", + "Responsive (cover)": "Responsive (cover)", + "Restauration des bases de données absentes": "Restoring missing databases", + "Restauration effectuée avec succès": "Restoration successfully completed", + "Restaurer": "Restore", + "Restaurer les données du site": "Restore site data", + "Rester connecté sur ce navigateur": "Stay connected on this browser", + "Retour": "Return", + "Rien à importer, erreur de format ou fichier incorrect": "Nothing to import, format error or incorrect file", + "Rédacteur": "Editor", + "Référencement": "SEO", + "Réinitialisation du mot de passe": "Reset password", + "Réinitialiser avec le thème par défaut": "Reset with the default theme", + "Réinitialiser la feuille de style": "Reset the style sheet", + "Réinitialiser la liste": "Reset the list", + "Réinitialiser le journal": "Reset the log file", + "Réinstaller": "Reinstall", + "Répétition": "Repetition", + "Réseau": "Network", + "Réseaux sociaux": "Social networks", + "S'ouvre dans un nouvel onglet": "Opens in a new tab", + "SMTP": "SMTP", + "SMTP personnalisé": "Custom SMTP", + "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "Enter the key, then validate the form before clicking on the generation button", + "Saisissez le Titre de gestion des cookies.": "Enter the title of the cookie management window.", + "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "Enter the message for cookies set by Zwiicms, necessary for operation and which do not require consent.", + "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "Enter the text of the link to the legal notices, the page must be defined in the site configuration.", + "Saisissez votre ID : https://pinterest.com/[ID].": "Enter your ID: https://pinterest.com/[ID].", + "Saisissez votre ID : https://twitter.com/[ID].": "Enter your ID: https://twitter.com/[ID].", + "Saisissez votre ID : https://www.facebook.com/[ID].": "Enter your ID: https://www.facebook.com/).", + "Saisissez votre ID : https://www.instagram.com/[ID].": "Enter your ID: https://www.instagram.com/ [ID].", + "Saisissez votre ID Github : https://github.com/[ID].": "Enter your GitHub ID: https://github.com/[ID].", + "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "Enter your LinkedIn ID: https://fr.linkedin.com/in/[ID].", + "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "Enter your user ID: https://www.youtube.com/user/ [ID].", + "Sauvegarde": "Backup", + "Sauvegarde automatique quotidienne du site": "Daily automatic backup of the site", + "Sauvegarde du thème dans le": "Backup of the theme in the", + "Sauvegarde générée avec succès": "Successfully generated backup.", + "Sauvegarder": "Backup", + "Sauvegarder et télécharger le module": "Save and download the module", + "Sauvegarder le module dans le gestionnaire de fichiers": "Save the module in the file manager", + "Sauvegarder les données du module dans le gestionnaire de fichiers": "Save module data in the file manager", + "Sauvegarder les données du site": "Save site data", + "Script dans body": "Script in body", + "Script dans head": "Script in head", + "Scripts externes": "External scripts", + "Se déconnecter": "Logout", + "Service en ligne inaccessible": "Inaccessible online service", + "Seul un administrateur peut se connecter lors d'une maintenance": "Only an administrator can login during maintenance", + "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "If the content of the file manager is very large, it is better to copy by FTP.", + "Signature": "Signature", + "Site": "Site", + "Site en maintenance": "Site under maintenance", + "Size": "Size", + "Source": "Source", + "Standard": "Standard", + "Style": "Style", + "Suppression interdite": "Deletion prohibited", + "Suppression interdite, page active dans la configuration de la langue du site": "Deletion not allowed, page is active in the site's language configuration", + "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "Deletes the question mark in the URLs, the option is unavailable with other web servers", + "Supprimer": "Delete", + "Supprimer la page": "Delete the page", + "Supprimer le module": "Delete the module", + "Supprimer toutes les sauvegardes automatiques ?": "Remove all automatic backups?", + "Sur l'axe horizontal": "On the horizontal axis", + "Sur l'axe vertical": "On the vertical axis", + "Sur les deux axes": "On both axes", + "Sécurité": "Security", + "Sécurité de la connexion": "Connection security", + "Sécurité désactivée": "Security disabled", + "Sélectionner un fichier": "Select a file", + "Sélectionnez au moins un contenu à afficher": "Select at least one content to display", + "Sélectionnez la langue à copier vers une langue cible": "Select the language to copy to a target language", + "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Select an icon adapted to a dark theme.
Remember to delete your browser's cache if the favicon does not change.", + "Sélectionnez une image ou une icône de petite dimension": "Select a small image or icon", + "Sélectionnez une langue": "Select a language", + "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "Select a page containing the 'research' module. An option of the footer adds a discrete link to this page.", + "Sélectionnez une page pour activer": "Select a page to activate", + "Séparateur": "Separator", + "Taille": "Size", + "Text": "Text", + "Texte": "Text", + "Thème": "Theme", + "Thème de l'administration": "Administration theme", + "Thème du site": "Site theme", + "Thème importé": "Imported theme", + "Thèmes": "Themes", + "Titre": "Title", + "Titre court": "Short title", + "Titre masqué": "Masked title", + "Titre masqué dans la page": "Masked hidden in the page", + "Titres": "Titles", + "Tous les dossiers": "All Folders", + "Tous les droits d'édition des contenus": "All content editing rights", + "Tout Effacer": "Clear All", + "Traduction supprimée": "Translation deleted", + "Très grande": "Very large", + "Très grande (240%)": "Very large (240%)", + "Très grande (400px)": "Very large (400px)", + "Très important": "Very important", + "Très importante": "Very important", + "Très léger": "Very light", + "Très légère": "Very light", + "Très petite": "Very small", + "Très petite (100px) ": "Very small (100px)", + "Très petite (160%)": "Very small (160%)", + "Twitter": "Twitter", + "Type de captcha": "Type of Captcha", + "Type de proxy": "Proxy type", + "Téléchargement et validation de l'archive": "Download and validation of the archive", + "Télécharger": "Download", + "Télécharger la liste": "Download list", + "Télécharger le journal": "Download logs", + "Télécharger le module dans le gestionnaire de fichiers": "Download the module in the file manager", + "Téléverser": "Upload", + "URL incorrecte": "Incorrect url", + "Un mail a été envoyé pour confirmer la réinitialisation": "An email was sent to confirm the reset", + "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "An archive of the file /site/data is kept for 30 days. Recommended activation", + "Une erreur est survenue lors de l'étape :": "An error occurred during the stage:", + "Url du fichier de fonte": "Font file URL", + "Utilisateur inexistant": "Non-existent user", + "Utilisateur supprimé": "User deleted", + "Utilisateurs": "Users", + "Valider": "Submit", + "Version": "Version", + "Version n°": "Version n°", + "Vider dossier sauvegardes auto": "Empty auto backup files", + "Visiteur": "Visitor", + "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "You are not authorised to view this page (error 403)", + "Youtube": "Youtube", + "ZwiiCMS - Installation": "ZwiiCMS - Installation", + "actualisé": "updated", + "favicon.ico": "favicon.ico", + "faviconDark.ico": "favicondark.ico", + "gestionnaire de fichiers": "file manager", + "installé": "installed", + "jour": "day", + "jours": "days", + "sauvegardé avec succès": "successfully saved", + "vers": "to", + "À droite": "Right", + "À gauche": "Left", + "À l'emplacement du mot clé [MODULE] dans la page": "At the location of the keyword [MODULE] on the page", + "Échec de l'écriture, vérifiez les permissions": "Failure of writing, check permissions", + "Échecs": "Fail", + "Éditer": "Edit", + "Éditer la page": "Edit the page", + "Éditer les dialogues": "Edit dialogs", + "Éditer une catégorie": "Edit category", + "Éditeur": "Editor", + "Éditeur CSS": "CSS editor", + "Éditeur JS": "JS editor", + "Éditeur de script %s": "Script editor %s", + "Éditeur de script dans Body": "Script editor in Body", + "Éditeur de script dans Head": "Script editor in Head", + "Éditeur simple": "Simple editor", + "Édition des pages": "Page editing", + "Édition du profil %s": "Edit Profile %s", + "Éléments": "Items", + "Étendu sur la page": "Spread across the page", + "Étiquettes des pages spéciales": "Special pages labels", + "Dimensions minimales": "Minimum dimensions", + "Taille maximale du fichier": "Maximum file size", + "5 Mo pour les images JPEG": "5 MB for JPEG images", + "1 Mo pour les images PNG": "1 MB for PNG images", + "Poids": "Weight", + "Supprimer ce profil ?": "Delete this profile?", + "Masqué": "Hidden", + "Haut de page": "Top of Page", + "Bas de page": "Bottom of Page", + "Petit triangle": "Small Triangle", + "Grand triangle": "Large Triangle", + "Flèche": "Arrow", + "Modèle": "Template", + "Bouton de navigation droit": "Right Navigation Button", + "Bouton de navigation gauche": "Left Navigation Button", + "Groupes / Profils": "Groups / Profiles", + "Prénom commence par": "First Name starts with", + "Nom commence par": "Last Name starts with", + "Impossible de réinitialiser le mot de passe de ce compte !": "Impossible to reset this account password!", + "Test de la messagerie du site": "Site messaging test", + "Il semblerait que votre messagerie fonctionne correctement !": "It seems that your messaging is working correctly!", + "Message de test envoyé avec succès": "Test message sent successfully", + "Message non envoyé": "Message not sent", + "Validation par clé ⚠️": "Key-based validation ⚠️", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "The connection is confirmed using a key sent via messaging. From the selected group and the higher groups.", + "Envoi du message d'authentification": "Sending authentication message", + "Connexion réussie": "Login successful", + "Erreur de mot de passe": "Password error", + "Erreur de captcha": "Captcha error" +} \ No newline at end of file diff --git a/site/i18n/es.json b/site/i18n/es.json new file mode 100644 index 00000000..bef573e3 --- /dev/null +++ b/site/i18n/es.json @@ -0,0 +1,703 @@ +{ + "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'No mostrar' crea una página huérfana a la que no se puede acceder a través de los menús.", + "'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo", + "1 jour": "1 diaz", + "1/4 : Préparation...": "1/4: Preparando...", + "10 minutes": "10 minutos", + "10 tentatives": "6 intentos", + "14 jours": "14 dias", + "15 minutes": "15 minutos", + "2 jours": "2 dias", + "2/4 : Téléchargement...": "2/4: Descargando...", + "3 tentatives": "3 intentos", + "3/4 : Installation...": "3/4: Instalando...", + "4 jours": "4 días", + "4/4 : Configuration...": "4/4: Configuración...", + "5 minutes": "5 minutos", + "5 tentatives": "5 intentos", + "7 jours": "7 días", + "Accueil": "Inicio", + "Accède au site": "Acceso al sitio", + "Accède aux pages réservées": "Acceso a páginas restringidas", + "Accède aux pages réservées et à un dossier partagé": "Acceso a páginas restringidas y una carpeta compartida", + "Accès bloqué %d minutes": "Acceso bloqueado minutos", + "Accès désactivé": "Acceso desactivado", + "Accès interdit, erreur 403": "Acceso denegado, error 403", + "Action interdite": "Acción no permitida", + "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "Activación obligatoria según las leyes francesas a menos que utilice su propio sistema de consentimiento.", + "Activer": "Activar", + "Activer la journalisation": "Habilitar registro", + "Actualiser": "Actualizar", + "Adaptation": "Adaptación", + "Administrateur": "Administrador", + "Administration": "Administración", + "Adresse SMTP": "Dirección SMTP", + "Adresse du proxy": "Dirección proxy", + "Adresse électronique": "Correo electrónico", + "Affectation": "Asignación", + "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "Mostrar el nombre de la página principal seguido del nombre de la página, el título no debe ocultarse.", + "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 cierre de sesión para miembros regulares conectados", + "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "Para garantizar el correcto funcionamiento de Zwii, no cierre esta página antes de que se complete la operación", + "Aide": "Ayuda", + "Ajouter": "Agregar", + "Ajouter un profil": "Agregar un perfil", + "Ajouter un utilisateur": "Agregar usuario", + "Ajouter une fonte": "Añadir tipografía", + "Alignement": "Alineación de contenido", + "Aligner la bannière avec le contenu": "Alinear el banner con el contenido", + "Ancien mot de passe": "Antigua contraseña", + "Anonymat des adresses IP": "Anonimato de la dirección IP", + "Apache URL intelligent": "URL inteligente de Apache", + "Apache URL intelligentes": "URL inteligentes de Apache", + "Apparence": "Apariencia", + "Appliquer": "Aplicar", + "Approuver un commentaire": "Aprobar comentarios", + "Après": "Después", + "Après la bannière": "Después del banner", + "Après le contenu de la page": "Después del contenido de la página", + "Archive": "Archivo", + "Archive ZIP": "Archivo ZIP", + "Archive copiée dans le dossier Modules du gestionnaire de fichier": "Archivo copiado a la carpeta Módulos del administrador de archivos", + "Archive de thème invalide": "Archivo de tema no válido", + "Archive invalide": "Archivo no válido", + "Archive invalide, l'écriture dans le dossier core est interdite": "Archivo no válido, está prohibido escribir en la carpeta core", + "Archive invalide, le descripteur est absent": "Archivo no válido, falta el descriptor", + "Archive invalide, le fichier de classe est absent": "Archivo no válido, falta el archivo de clase", + "Archive invalide, les dossiers ne correspondent pas au descripteur": "Archivo no válido, las carpetas no coinciden con el descriptor", + "Archive non spécifiée ou introuvable": "Archivo no especificado o no encontrado", + "Archive à restaurer": "Archivo para restaurar", + "Arrière plan": "Fondo", + "Arrière plan des blocs": "Fondo de bloques", + "Arrière plan des champs": "Fondo de zona", + "Arrondi des angles": "Redondeo de ángulos", + "Au centre": "En el centro", + "Au début": "Al principio", + "Au milieu au centre": "En el medio en el centro", + "Au milieu à droite": "En el medio derecho", + "Au milieu à gauche": "En el medio a la izquierda", + "Au-dessus du site": "Por encima del sitio", + "Aucun": "Ninguno", + "Aucun dossier": "Sin carpeta", + "Aucun fichier journal à télécharger": "No hay archivos de registro para descargar", + "Aucun journal à effacer": "No hay registros para borrar", + "Aucun menu": "Ningún menú", + "Aucune": "Ninguna", + "Aucune liste noire à effacer": "No hay lista negra para borrar", + "Aucune liste noire à télécharger": "No hay lista negra para descargar", + "Auteur :": "Autor", + "Authentification": "Autenticación", + "Automatique": "Automáquica", + "Autoriser les robots à référencer le site": "Permitir que los robots hagan referencia al sitio", + "Autorisé": "Autorizado", + "Avant la bannière": "Antes del banner", + "Avant le contenu de la page": "Antes del contenido de la página", + "Background": "Fondo", + "Banni": "Prohibición", + "Bannière": "Banner", + "Bannière cliquable": "Banner", + "Barre 1/3 - page 2/3": "Barra 1/3 - página 2/3", + "Barre 1/4 - page 1/2 - barre 1/4": "Barra 1/4 - página 1/2 - Barra 1/4", + "Barre 1/4 - page 3/4": "Barra 1/4 - página 3/4", + "Barre 2/12 - page 7/12 - barre 3/12": "Barra 2/12 - página 7/12 - Barra 3/12", + "Barre 3/12 - page 7/12 - barre 2/12": "Barra 3/12 - página 7/12 - Barra 2/12", + "Barre de membre": "Barra de miembro", + "Barre latérale": "Barra lateral", + "Barre latérale droite :": "Barra lateral derecha:", + "Barre latérale gauche :": "Barra lateral izquierda:", + "Barres latérales": "Barras laterales", + "Bienvenue %s %s": "Bienvenido %s %s", + "Blocage après échecs": "Bloquear después de fallar", + "Blog": "Blog", + "Bords arrondis": "Bordes redondeados", + "Bordure des blocs": "Borde de bloques", + "Bordure des champs": "Borde de zona", + "Bouton Aide": "Boton de ayuda", + "Bouton Standard": "Botón estándar", + "Bouton de validation": "Botón Validación", + "Bouton effacement": "Botón Eliminar", + "Bouton retour": "Botón de retroceso", + "Bouton standard": "Botón estándar", + "Bouton validation": "Botón de validación", + "Boutons": "Botones", + "Caché": "Oculto", + "Cachée": "Oculto", + "Captcha complexe": "Captcha complejo", + "Captcha à la connexion": "Captcha al iniciar sesión", + "Captcha, identifiant ou mot de passe incorrects": "Captcha, nombre de usuario o contraseña incorrecta", + "Capture d'écran Open Graph": "Captura de pantalla de Open Graph", + "Capture d'écran générée avec succès": "Captura de pantalla generada con éxito", + "Casse": "Roto", + "Catalogue": "Catálogo", + "Catégorie": "Categoría", + "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "Este miembro podrá cargar o descargar archivos en la carpeta 'compartir' y sus subcarpetas", + "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "Esta página no debería aparecer en el árbol del menú. Crear una página huérfana.", + "Cette redirection ne concerne que les pages d'administration du site.": "Esta redirección solo afecta a las páginas de administración del sitio.", + "Chaîne Youtube": "Canal de Youtube", + "Chiffres": "Cifras", + "Cible": "Objetivo", + "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "Haga clic en un área para acceder a sus opciones de personalización.", + "Commentaire": "Comentario", + "Complète": "sin truncar", + "Compte administrateur": "Cuenta de administrador", + "Compte de l'utilisateur": "Cuenta de usuario", + "Compte verrouillé": "Cuenta bloqueada", + "Configuration": "Configuración", + "Configuration du module": "Configuración del módulo", + "Configurer": "Configurar", + "Configurer mon compte": "Configurar mi cuenta", + "Confirmation": "Confirmación", + "Confirmer la suppression de cet utilisateur": "Confirmar eliminación de este usuario", + "Confirmer la dissociation du module de cette page": "Confirmar desvincular módulo de esta página", + "Confirmer la désinstallation du module": "Confirmar la desinstalación del módulo", + "Confirmer la suppression de cet utilisateur": "Confirme la eliminación de este usuario", + "Confirmer la suppression de cette langue": "Confirmar eliminación de este idioma", + "Confirmer la suppression de la page": "Confirmar la eliminación de la página", + "Confirmer la suppression des données du module": "Confirmar la eliminación de datos del módulo", + "Confirmez-vous la suppression de cette page ?": "¿Confirma la eliminación de esta página?", + "Connexion": "Conexión", + "Consulter l'aide en ligne": "Consultar la ayuda en línea", + "Contents": "Contenido", + "Contenu": "Contenido", + "Contenu HTML": "Contenido HTML", + "Contenu avancé": "Contenido avanzado", + "Contenu du menu vertical": "Contenido del menú vertical", + "Contrôle total": "Control total", + "Cookies": "Cookies", + "Cookies Zwii": "Cookies Zwii", + "Copie de contenus localisés": "Copia de contenidos localizados", + "Copie de sites inter-langues": "Copia del sitio multilingües", + "Copie des traductions rédigées": "Copia de traducciones redactadas", + "Copie terminée avec des erreurs": "Copia completada con errores", + "Copie terminée avec succès": "Copia completada con éxito", + "Copier": "Copiar", + "Copier sauvegardes auto": "Copiar guardados automáticos", + "Couleur de fond automatique": "Color de fondo automático", + "Couleur icône haut de page": "Color del icono superior de la página", + "Couleur texte page active": "Color del texto de página activa", + "Couleur unie ou papier-peint": "Color unido o papel tapiz", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "Color visible en ausencia de una imagen.
El control deslizante horizontal ajusta el nivel de transparencia.", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "Color visible en ausencia de una imagen.
El control deslizante horizontal ajusta el nivel de transparencia. El color del texto es automático.", + "Couleurs": "Colores", + "Dans le site": "En el sitio", + "Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?", + "Date": "fecha", + "Description": "Descripción del sitio", + "Disponible si le consentement des cookies est activé.": "Disponible si se ha otorgado el consentimiento de las cookies.", + "Disposition": "Arreglo", + "Données %s copiées vers %s": "Datos %s copiados hacia %s", + "Données des modules": "Datos de los módulos", + "Données importées": "Datos importados", + "Dossier": "Carpeta", + "Droits sur les dossiers": "Derechos de las carpetas", + "Droits sur les fichiers": "Derechos de los archivos", + "Dupliquer": "Duplicar", + "Dupliquer la page": "Duplicar la página", + "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "Desconecte sesiones abiertas previamente en otros navegadores o dispositivos. Activación recomendada.", + "Déconnecter": "Desconectar", + "Déconnexion !": "¡Cerrar sesión!", + "Déconnexion automatique": "Cierre de sesión automático", + "Définir par défaut": "Establecer como predeterminado", + "Dévoiler le mot de passe": "Revelar la contraseña", + "Effacer": "Borrar", + "Effacer la page": "Borrar página", + "Effacer tous les commentaires": "Borrar todos los comentarios", + "Effacer toutes les statistiques": "Borrar todas las estadísticas", + "Effacer un commentaire": "Borrar el comentario", + "Effacer une catégorie": "Borrar categoría", + "Emplacement :": "Ubicación", + "Emplacement dans le menu": "Ubicación en el menú", + "En bas au centre": "Abajo en el centro", + "En bas à droite": "Abajo a la derecha", + "En bas à gauche": "Abajo a la izquierda", + "En cas de changement de module, les données du module précédent seront supprimées.": "Al cambiar de módulo se borrarán los datos del módulo anterior.", + "En dessous du site": "Debajo del sitio", + "En haut au centre": "Cubra en el centro", + "En haut à droite": "Arriba a la derecha", + "En haut à gauche": "Arriba a la izquierda", + "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "En posición libre agregue el módulo colocando [MODULE] en la ubicación deseada en su página.", + "En-dehors du site": "Fuera del sitio", + "Enregistrer": "Registrar", + "Envoyer un message de confirmation": "Enviar mensaje de confirmación", + "Erreur : sauvegarde non générée !": "Error: copia de seguridad no generada!", + "Erreur d'URL": "Error de URL", + "Erreur d'extraction, vérifiez les permissions": "Error de extracción, verifique los permisos", + "Erreur de copie": "Error de copia", + "Erreur de copie, vérifiez les permissions": "error de copia, verifique las permisiones", + "Erreur de lecture, vérifiez les permissions": "Error de lectura, verifique los permisos", + "Erreur inconnue": "error desconocido", + "Erreur inconnue, le module n'est pas installé": "Error desconocido, el módulo no está instalado", + "Export CSV": "Exportar CSV", + "Expéditeur": "Remitente", + "Extension": "Extensión", + "Extraire": "Extraer", + "Facebook": "Facebook", + "Famille": "Vínculo", + "Favicon thème sombre": "favicon de tema oscuro", + "Feuille de style spécifique à la page.": "Hoja de estilo específica de la página.", + "Fichiers": "Archivos", + "Fichiers effacés": "archivos borrados", + "Fil d'Ariane dans le titre": "Migas de pan en el título", + "Fond du sous-menu": "Fondo del submenú", + "FontId": "ID de fuente", + "Fonte": "Fuente", + "Fonte actualisée": "fuente actualizada", + "Fonte créée": "Fuente creada", + "Fonte en ligne": "Tipografía en línea", + "Fonte installée": "Tipografía instalada", + "Fonte non créée, ressource absente !": "¡Fuente no creada, por falta recurso!", + "Fonte supprimée": "Fuente eliminada", + "Fontes": "Tipografias", + "Format incorrect": "Formato incorrecto", + "Formulaire": "Formulario", + "Fréquence de recherche": "Frecuencia de búsqueda", + "Fuseau horaire": "Zona horaria", + "Gabarits de page - Barre latérale": "Patrón de página - Barra lateral", + "Gestion": "Administrar", + "Gestion des modules": "Gestión de módulos", + "Gestion des thèmes": "Gestión de temas", + "Gestionnaire de fichiers": "Administrador de archivos", + "Github": "Github", + "Grande": "Grande", + "Grande (220%)": "Grande (220%)", + "Grande (300px)": "Grande (300px)", + "Gras": "Negrita", + "Groupe": "Grupo", + "Groupe associé": "Grupo asociado", + "Groupe requis pour accéder à la page :": "Grupo necesario para acceder a la página:", + "Groupes": "Grupos", + "Générer sitemap.xml et robots.txt": "Generar sitemap.xml y robots.txt", + "Générer une capture Open Graph": "Generar una captura de Open Graph", + "Gérer les catégories": "Gestionar categorías", + "Gérer les commentaires": "Administrar comentarios", + "Gérer les données": "Administrar datos", + "Hauteur": "Altura", + "Hauteur de l'image": "Altura de la imagen", + "Hauteur de l'image sélectionnée": "Altura de la imagen seleccionada", + "Hauteur maximale": "Altura máxima", + "ID de la chaîne : https://www.youtube.com/channel/[ID].": "ID del canal: https://www.youtube.com/channel/[ID].", + "Icône": "Icono", + "Icône avec bulle de texte": "Icono con burbuja de texto", + "Icône haut de page, couleur arrière-plan": "Icono superior de la página, color de fondo", + "Identifiant": "Identificación", + "Identifiant (sans espace ni majuscule)": "Identificación (sin espacios ni mayúsculas)", + "Identité": "Identificación", + "Identité de la fonte": "Identidad de tipografía", + "Identité du site": "identidad del sitio", + "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "Aparece en la barra de título y se comparte en redes sociales.", + "Image": "Imagen", + "Image étirée (100% 100%)": "Imagen estirada (100% 100%)", + "Important": "Importante", + "Importante": "Importante", + "Importation d'utilisateurs": "Importación de usuarios", + "Importation de fichier plat CSV": "Importar archivo plano CSV", + "Importation effectuée": "Importación realizada", + "Importer": "Importar", + "Importer dans": "Importar a", + "Importer des utilisateurs en masse": "Importar usuarios de forma masiva", + "Impossible d'ouvrir l'archive": "No se puede abrir el archivo", + "Impossible de modifier votre propre groupe.": "No puede editar su propio grupo.", + "Impossible de soumettre le formulaire, car il contient des erreurs": "No se puede enviar el formulario porque contiene errores", + "Impossible de supprimer une page contenant des pages enfants": "No se puede eliminar una página que contiene páginas secundarias", + "Impossible de supprimer votre propre compte": "No puede eliminar su propia cuenta", + "Inclure le contenu du gestionnaire de fichiers": "Incluir el contenido del administrador de archivos", + "Incorrect": "Incorrecto", + "Informations": "Información", + "Instagram": "Instagram", + "Installation terminée": "instalación completa", + "Installer": "Instalar", + "Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea", + "Installer depuis une archive": "Instalar desde un archivo", + "Installer les données d'un module": "Instalar datos de un módulo", + "Installer ou mettre à jour un module téléchargé": "Instalar o actualizar un módulo descargado", + "Installer un module": "Instalar un módulo", + "Installer un thème archivé (site ou administration)": "Instalar un tema archivado (sitio o administración)", + "Instructions JS ou jquery spécifiques à la page.": "Instrucciones JS o jquery específicas de la página.", + "Interface": "Idiomas interfaz", + "Jeton invalide": "Simbolo no valido", + "Journal réinitialisé avec succès": "Registro reiniciado con éxito", + "Journalisation": "Inicio sesión", + "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "El archivo ha sido depositado en el administrador de archivos. No se aceptan archivos inferiores a la versión 9.", + "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "El identificador se define al crear la cuenta, no se puede modificar.", + "La carte du site a été mise à jour": "El mapa del sitio ha sido actualizado.", + "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "¡La copia de seguridad del archivo htaccess no ha sido restaurada!", + "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "La descripción de una página participa en su referenciación, cada página debe tener una descripción diferente.", + "La page %s est ouverte par l'utilisateur %s": "La página %s ha sido abierta por el usuario %s", + "La page demandée n'existe pas ou est introuvable (erreur 404)": "La página solicitada no existe o no se encuentra (error 404).", + "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "La página se muestra en un menú horizontal pero no en el menú vertical de una barra lateral.", + "La première page que vos visiteurs verront.": "La primera página que verán tus visitantes.", + "La règlementation française impose un anonymat de niveau 2": "La normativa francesa impone el anonimato de nivel 2", + "La réécriture d'URL n'a pas été restaurée !": "¡La reescritura de URL no ha sido restaurada!", + "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "La copia de seguridad de los archivos puede tardar un poco. ¿Desea continuar?", + "La suppression a échoué": "Eliminación fallida", + "La version installée est plus récente": "La versión instalada es más nueva.", + "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "La comprobación es diaria. Opción deshabilitada si la configuración del servidor no lo permite.", + "Langue de l'administration": "Idioma de la administración", + "Langue du site par défaut": "Idioma predeterminado del sitio", + "Langue par défaut": "Idioma predeterminado", + "Langues": "Idiomas", + "Langues disponibles": "Idiomas Disponibles", + "Langues installées": "Idiomas instalados", + "Largeur": "Anchura o Ancho", + "Largeur de l'image": "Ancho de la imagen", + "Largeur du site": "Ancho del sitio", + "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "El control deslizante horizontal establece el nivel de transparencia, colóquelo completamente hacia la izquierda para obtener un resaltado invisible.", + "Le curseur horizontal règle le niveau de transparence.": "El cursor horizontal regula el nivel de transparencia.", + "Le fuseau horaire est utile au bon référencement": "La zona horaria es útil para una buena referencia", + "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "El menù accesorio está alineado a la derecha de la barra de menú, es un marcador de posición para las banderas y el botón de inicio de sesión", + "Le menu horizontal intégral": "El menú horizontal completo", + "Le module %s a été %s": "El módulo %s ha sido %s", + "Le module %s de la page %s a été supprimé": "Se eliminó el módulo %s de la página %s", + "Le module %s est désinstallé, il reste peut-être des données dans %s": "El módulo %s está desinstalado, es posible que queden datos en %s", + "Le sous-menu de la page parente": "El submenú de la página principal", + "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Al pasar el cursor sobre un ícono de la pantalla de inicio de sesión, se muestra temporalmente la contraseña", + "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "El título corto se muestra en los menús. Puede ser el mismo que el título de la página.", + "Les langues sélectionnées sont identiques": "Los idiomas seleccionados son idénticos", + "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "Los avisos legales son obligatorios en Francia. Una opción en el pie de página agrega un enlace discreto a esta página.", + "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "Es posible que no se guarden los cambios realizados.", + "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "Los tamaños de fuente del banner, menú y pie de página son proporcionales a este tamaño.", + "Lettres": "Letras", + "Libre": "Libre", + "Licence :": "Licencia", + "Lien de connexion": "Enlace de inicio de sesión", + "Lien page des mentions légales.": "Enlace página aviso legal.", + "Liens": "Enlaces", + "Limitation des tentatives": "Limitación de intentos", + "Limitée au site": "Limitado al sitio", + "Linkedin": "Linkedin", + "Liste noire": "Lista negra", + "Liste noire réinitialisée avec succès": "Lista negra restablecida con éxito", + "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "Durante una actualización automática, mantenga el archivo htaccess de la raíz del sitio.", + "Léger": "Ligero", + "Légère": "Ligera", + "Maigre": "Delgado", + "Maintenance": "Mantenimiento", + "Majuscule à chaque mot": "Capper con cada palabra", + "Majuscules": "Letras mayúsculas", + "Marges verticales": "Márgenes verticales", + "Masquer la bannière en écran réduit": "Ocultar el banner en pantalla reducida", + "Masquer la page et les pages enfants dans le menu d'une barre latérale": "Ocultar página y páginas secundarias en un menú de la barra lateral", + "Masquer les pages enfants dans le menu horizontal": "Ocultar páginas secundarias en el menú horizontal", + "Membre": "Miembro", + "Membre avec droit de partage": "Miembro con derecho de compartir", + "Membre simple": "Miembro simple", + "Mentions légales": "Notas legales", + "Menu": "Menù", + "Menu accessoire": "Menú accesorio", + "Menu burger dans écran réduit": "Menú hamburguesa en pantalla reducida", + "Menu standard": "Menú estándar", + "Message d'acceptation des Cookies": "Mensaje de aceptación de cookies", + "Message de consentement aux cookies": "Mensaje de consentimiento de cookies", + "Mettre à jour": "Actualizar", + "Mettre à jour le module orphelin": "Actualizar módulo huérfano", + "Minuscules": "Diminuto", + "Mise en forme des titres": "Formato de título", + "Mise en forme du texte": "Formato de texto", + "Mise en forme du titre": "Formato de título", + "Mise en page": "Diseño", + "Mise à jour": "actualización", + "Mise à jour automatisée": "Actualización automática", + "Mise à jour terminée avec succès.": "Actualización completada con éxito.", + "Modifications enregistrées": "Cambios guardados", + "Module": "Módulo", + "Module de la page": "Módulo de página", + "Modules": "Módulos", + "Modules configurés": "Módulos Configurados", + "Modules installés": "Módulos instalados", + "Modules orphelins": "Módulos huérfanos", + "Mot de passe": "Contraseña", + "Mot de passe oublié": "Contraseña olvidada", + "Mot de passe perdu": "Contraseña perdida", + "Motorisé par": "Motorizado por", + "Moyen": "Medio", + "Moyenne": "Media", + "Moyenne (200%)": "Promedio (200%)", + "Moyenne (200px)": "Promedio (200px)", + "Méta-description": "Meta-descripción", + "Méta-titre": "Meta-título", + "Ne pas afficher": "No se muestra", + "Ne pas charger l'exemple de site (utilisateurs avancés)": "No cargar sitio de muestra (usuarios avanzados)", + "Ne pas répéter": "No repitas", + "Ne pas saisir les balises": "No ingrese las etiquetas", + "News": "Noticias", + "Niveau 1 (192.168.12.x)": "Nivel 1 (192.168.12.x)", + "Niveau 2 (192.168.x.x)": "Nivel 2 (192.168.x.x)", + "Niveau 3 (192.x.x.x)": "Nivel 3 (192.x.x.x)", + "Nom": "Nombre", + "Nom Prénom": "Apellido nombre", + "Nom du profil": "Nombre del perfil", + "Nom utilisateur": "Nombre de usuario", + "Non": "No", + "Non tronquée": "Sin personal", + "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Nuestro sitio está actualmente en mantenimiento. Lamentamos las molestias y estamos haciendo todo lo posible para regresar lo antes posible", + "Nouveau contenu localisé": "Nuevo contenido localizado", + "Nouveau mot de passe": "Nueva contraseña", + "Nouveau mot de passe enregistré": "Nueva contraseña guardada", + "Nouvel utilisateur": "Nuevo usuario", + "Nouvelle page créée": "Nueva página creada", + "Nouvelle page ou barre latérale": "Nueva página o barra lateral", + "Obligatoire": "Obligatorio", + "Ombre": "Sombra", + "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "Opción activa solo en modo fuera de línea, las páginas secundarias son visibles y accesibles.", + "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Opción recomendada para asegurar la conexión. Se aplica a todos los captchas en el sitio. El captcha simple está limitado a una suma de números del 0 al 10. El captcha complejo usa cuatro operaciones de números del 0 al 20. Activación recomendada.", + "Options": "Opciones", + "Options avancées": "Opciones avanzadas", + "Origine": "Origen", + "Oui": "Sí", + "Page": "Página", + "Page 2/3 - barre 1/3": "página 2/3 - Barra 1/3", + "Page 3/4 - barre 1/4": "página 3/4 - Barra 1/4", + "Page associée": "Página asociada", + "Page de recherche": "Página de búsqueda", + "Page dupliquée": "Página duplicada", + "Page et module dupliqués": "Página y módulo duplicados", + "Page inexistante, erreur 404": "La página no existe, error 404", + "Page non cliquable": "No se puede hacer clic en la página", + "Page parent": "Página principal", + "Page standard": "Página estándar", + "Page supprimée": "página eliminada", + "Pages dans le menu": "Páginas del menú", + "Pages du site": "Páginas del sitio", + "Pages et les modules de": "Páginas y módulos", + "Pages orphelines": "Páginas huérfanas", + "Papier peint": "Color de fondo", + "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "Por defecto, el menú se muestra DESPUÉS del contenido de la página. Para colocarlo en una ubicación específica, inserte [MENÚ] en el contenido de la página.", + "Paramètres": "Configuraciones", + "Paramètres de la localisation": "Configuración de la ubicación", + "Paramètres de la sauvegarde": "Configuración de copia de seguridad", + "Paramètres du profil": "Configuración del perfil", + "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "Configuraciones para usar cuando su host no ofrece la funcionalidad para enviar correo.", + "Pas de marge au-dessus et en dessous du site": "Sin margen encima y debajo del sitio", + "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Recuerde eliminar el caché de su navegador si el favicon no cambia.", + "Permission": "Permiso", + "Permission et référencement": "Permiso y referenciación", + "Permissions": "Permisos", + "Permissions sur les dossiers": "Permisos de las carpetas", + "Permissions sur les fichiers": "Permisos de los archivos", + "Permissions sur les pages": "Permisos de las páginas", + "Petite": "Pequeño", + "Petite (150px)": "Pequeño (150px)", + "Petite (180%)": "Pequeño (180px)", + "Pied de page": "Pie de página", + "Pinterest": "Pinterest", + "Plan du site": "Mapa del sitio", + "Police des titres": "Tipografía del titulo", + "Police du texte": "Tipografía del texto", + "Port SMTP": "Puerto SMTP", + "Port du proxy": "Puerto proxy", + "Position": "Posición", + "Position du module": "Posición del módulo", + "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "Para configurar la página como barra lateral, elija la opción de la lista.", + "Presse Papier": "Portapapeles", + "Presse papier": "Portapapeles", + "Profils des groupes": "Perfiles de grupos", + "Proportionnelle à la taille définie dans le site.": "Proporcional a la definida en el sitio.", + "Prénom": "Nombre de pila", + "Prénom Nom": "Nombre Apellido", + "Préparation de la mise à jour": "Preparáción de la actualización", + "Préserver le fichier htaccess racine": "Conservar archivo raíz htaccess", + "Préserver les comptes des utilisateurs déjà installés": "Conservar las cuentas de usuario ya instaladas", + "Prévenir l'utilisateur par mail": "Notificar al usuario por correo electrónico", + "Prévisualiser": "Previsualizar", + "Pseudo": "Apodo", + "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "Rango 9 > rango 1. El perfil del rango 1 no se puede modificar.", + "Ratio": "Proporción", + "Ratio :": "Relación", + "Recherche": "Buscar", + "Recherche dans le site": "Buscar en el sitio", + "Rechercher": "Buscar", + "Rechercher une mise à jour en ligne": "Buscar una actualización en línea", + "Redirection": "Redirección", + "Redirection vers la connexion": "Redirección hacia conexión", + "Renommer": "Renombrar", + "Renseignez les champs ci-dessous pour finaliser l'installation.": "Complete las zonas a continuación para terminar la instalación.", + "Responsive (contain)": "Responsivo (contener)", + "Responsive (cover)": "Responsivo (cobertura)", + "Restauration des bases de données absentes": "Restauración de bases de datos faltantes", + "Restauration effectuée avec succès": "Restauración completada con éxito", + "Restaurer": "Restaurar", + "Restaurer les données du site": "Restaurar datos del sitio", + "Rester connecté sur ce navigateur": "Permanecer conectado en este navegador", + "Retour": "Retroceder", + "Rien à importer, erreur de format ou fichier incorrect": "Nada que importar, error de formato o archivo incorrecto", + "Rédacteur": "Editor", + "Référencement": "Referenciación", + "Réinitialisation du mot de passe": "Restablecer la contraseña de usuario", + "Réinitialiser avec le thème par défaut": "establecer tema predeterminado", + "Réinitialiser la feuille de style": "Restablecer hoja de estilo", + "Réinitialiser la liste": "Restablecer lista", + "Réinitialiser le journal": "Restablecer registro", + "Réinstaller": "Reinstalar", + "Répétition": "Repetición", + "Réseau": "La red", + "Réseaux sociaux": "Redes sociales", + "S'ouvre dans un nouvel onglet": "Se abre en una nueva pestaña", + "SMTP": "SMTP", + "SMTP personnalisé": "SMTP personalizado", + "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "Ingrese la clave, luego valide el formulario antes de hacer clic en el botón generar", + "Saisissez le Titre de gestion des cookies.": "Introduce el título de la ventana de gestión de cookies.", + "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "Ingrese el mensaje para las cookies colocadas por ZwiiCMS, necesarias para su funcionamiento y que no requieren consentimiento.", + "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "Ingrese el texto del enlace a los avisos legales, la página debe estar definida en la configuración del sitio.", + "Saisissez votre ID : https://pinterest.com/[ID].": "Ingrese su ID: https://pinterest.com/[ID].", + "Saisissez votre ID : https://twitter.com/[ID].": "Ingrese su ID: https://twitter.com/[ID].", + "Saisissez votre ID : https://www.facebook.com/[ID].": "Ingrese su ID: https://www.facebook.com/[ID].", + "Saisissez votre ID : https://www.instagram.com/[ID].": "Ingrese su ID: https://www.instagram.com/[ID].", + "Saisissez votre ID Github : https://github.com/[ID].": "Ingrese su ID de Github: https://github.com/[ID].", + "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "Ingrese su ID de Linkedin: https://fr.linkedin.com/in/[ID].", + "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "Ingrese su ID de usuario: https://www.youtube.com/user/[ID].", + "Sauvegarde": "Salvaguardad", + "Sauvegarde automatique quotidienne du site": "Copia de seguridad diaria automática del sitio", + "Sauvegarde du thème dans le": "Guardando tema en el", + "Sauvegarde générée avec succès": "Copia de seguridad generada con éxito", + "Sauvegarder": "Para salvaguardar", + "Sauvegarder et télécharger le module": "Guardar y descargar módulo", + "Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos", + "Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos", + "Sauvegarder les données du site": "Guardar datos del sitio", + "Script dans body": "Script en el body", + "Script dans head": "Script en el head", + "Scripts externes": "Guiones externos", + "Se déconnecter": "Desconectarse", + "Service en ligne inaccessible": "Servicio en línea inaccesible", + "Seul un administrateur peut se connecter lors d'une maintenance": "Solo un administrador puede iniciar sesión durante un mantenimiento", + "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "Si el contenido del administrador de archivos es muy grande, es mejor copiar por FTP.", + "Signature": "Firma", + "Site": "Idiomas instalados", + "Site en maintenance": "Sitio en mantenimiento", + "Size": "Tamaño", + "Source": "Fuente", + "Standard": "Estándar", + "Style": "Estilo", + "Suppression interdite": "Borrado prohibido", + "Suppression interdite, page active dans la configuration de la langue du site": "Eliminación no permitida, la página está activa en la configuración de idioma del sitio", + "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "Eliminar el signo de interrogación en las URL, la opción no está disponible con otros servidores web", + "Supprimer": "Borrar", + "Supprimer la page": "Eliminar página", + "Supprimer le module": "Eliminar módulo", + "Supprimer toutes les sauvegardes automatiques ?": "¿Eliminar todos los guardados automáticos?", + "Sur l'axe horizontal": "En el eje horizontal", + "Sur l'axe vertical": "En el eje vertical", + "Sur les deux axes": "En ambos hachas", + "Sécurité": "Seguridad", + "Sécurité de la connexion": "Seguridad de la conexión", + "Sécurité désactivée": "Seguridad desactivada", + "Sélectionner un fichier": "Seleccione un archivo", + "Sélectionnez au moins un contenu à afficher": "Seleccione al menos un contenido para mostrar", + "Sélectionnez la langue à copier vers une langue cible": "Seleccione el idioma para copiar hacia oyto idioma", + "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Seleccione un ícono adecuado para un tema oscuro.
Recuerde eliminar el caché de su navegador si el favicon no cambia", + "Sélectionnez une image ou une icône de petite dimension": "Seleccione una imagen o icono pequeño", + "Sélectionnez une langue": "Seleccione un idioma", + "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "Seleccione una página que contenga el módulo 'Buscar'. Una opción de pie de página agrega un enlace discreto a esta página.", + "Sélectionnez une page pour activer": "Seleccione una página para activar", + "Séparateur": "Separador", + "Taille": "Tamaño", + "Text": "Texto", + "Texte": "Texto", + "Thème": "Tema", + "Thème de l'administration": "Tema de administración", + "Thème du site": "Tema del sitio", + "Thème importé": "Tema importado", + "Thèmes": "Temas", + "Titre": "Título", + "Titre court": "Título corto", + "Titre masqué": "Título enmascarado", + "Titre masqué dans la page": "Título oculto en la página", + "Titres": "Títulos", + "Tous les dossiers": "Todas las carpetas", + "Tous les droits d'édition des contenus": "Todos los derechos de edición de contenido", + "Tout Effacer": "Borrar todo", + "Traduction supprimée": "Traducción eliminada", + "Très grande": "Muy grande", + "Très grande (240%)": "Muy grande (240%)", + "Très grande (400px)": "Muy grande (400px)", + "Très important": "Muy importante", + "Très importante": "Muy importante", + "Très léger": "Muy ligero", + "Très légère": "Muy ligera", + "Très petite": "Muy pequeño", + "Très petite (100px) ": "Muy pequeño (100px)", + "Très petite (160%)": "Muy pequeño (160%)", + "Twitter": "Twitter", + "Type de captcha": "Tipo de captcha", + "Type de proxy": "Tipo de proxy", + "Téléchargement et validation de l'archive": "Descarga y validación del archivo", + "Télécharger": "Descargar", + "Télécharger la liste": "Descargar la revista", + "Télécharger le journal": "Descargar la revista", + "Télécharger le module dans le gestionnaire de fichiers": "Descargar módulo al administrador de archivos", + "Téléverser": "Subir", + "URL incorrecte": "URL incorrecta", + "Un mail a été envoyé pour confirmer la réinitialisation": "Se ha enviado un correo electrónico para confirmar el restablecimiento.", + "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "Un archivo que contiene la carpeta /site/data se conserva durante 30 días. Activación recomendada .", + "Une erreur est survenue lors de l'étape :": "Ocurrió un error durante el proceso", + "Url du fichier de fonte": "Url del archivo de tipo de letra", + "Utilisateur inexistant": "Usuario inexistente", + "Utilisateur supprimé": "Usuario eliminado", + "Utilisateurs": "Usuarios", + "Valider": "Validar", + "Version": "Versión", + "Version n°": "Número de versión", + "Vider dossier sauvegardes auto": "Carpeta de autoguardado vacía", + "Visiteur": "Visitante", + "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "No está autorizado para ver esta página (error 403)", + "Youtube": "YouTube", + "ZwiiCMS - Installation": "ZwiiCMS - Instalación", + "actualisé": "actualizado", + "favicon.ico": "Recuerde borrar el caché de su navegador si el favicon no cambia.", + "faviconDark.ico": "faviconDark.ico", + "gestionnaire de fichiers": "administrador de archivos", + "installé": "instalado", + "jour": "día", + "jours": "días", + "sauvegardé avec succès": "Guardado exitosamente", + "vers": "hacia", + "À droite": "A la derecha", + "À gauche": "A la izquierda", + "À l'emplacement du mot clé [MODULE] dans la page": "En la ubicación de la palabra clave [MODULE] en la página", + "Échec de l'écriture, vérifiez les permissions": "Escritura fallida, verifique los permisos", + "Échecs": "Fracasos", + "Éditer": "Editar", + "Éditer la page": "Editar página", + "Éditer les dialogues": "Editar los diálogos", + "Éditer une catégorie": "Editar categoría", + "Éditeur": "Editor", + "Éditeur CSS": "Editor de CSS", + "Éditeur JS": "Editor de JS", + "Éditeur de script %s": "Editor de script %s", + "Éditeur de script dans Body": "Éditor del script en el Body", + "Éditeur de script dans Head": "Éditor del script en el Head", + "Éditeur simple": "Editor simple", + "Édition des pages": "Edición de páginas", + "Édition du profil %s": "Edición del perfil %s", + "Éléments": "Elementos", + "Étendu sur la page": "Extendido en la página", + "Étiquettes des pages spéciales": "Etiquetas de páginas especiales", + "Dimensions minimales": "Dimensiones mínimas", + "Taille maximale du fichier": "Tamaño máximo de archivo", + "5 Mo pour les images JPEG": "5 MB para imágenes JPEG", + "1 Mo pour les images PNG": "1 MB para imágenes PNG", + "Poids": "Peso", + "Supprimer ce profil ?": "¿Eliminar este perfil?", + "Masqué": "Oculto", + "Haut de page": "Parte superior de la página", + "Bas de page": "Parte inferior de la página", + "Petit triangle": "Triángulo pequeño", + "Grand triangle": "Triángulo grande", + "Flèche": "Flecha", + "Modèle": "Plantilla", + "Bouton de navigation droit": "Botón de navegación derecha", + "Bouton de navigation gauche": "Botón de navegación izquierda", + "Groupes / Profils": "Grupos / Perfiles", + "Prénom commence par": "El nombre comienza con", + "Nom commence par": "El apellido comienza con", + "Impossible de réinitialiser le mot de passe de ce compte !": "No puedo restablecer la contraseña de esta cuenta.", + "Test de la messagerie du site": "Prueba de mensajería del sitio", + "Il semblerait que votre messagerie fonctionne correctement !": "¡Parece que su mensajería funciona correctamente!", + "Message de test envoyé avec succès": "Mensaje de prueba enviado con éxito", + "Message non envoyé": "Mensaje no enviado", + "Validation par clé ⚠️": "Validación por clave ⚠️", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "La conexión se confirma con una clave enviada por mensajería. Desde el grupo seleccionado y los grupos superiores.", + "Envoi du message d'authentification": "Envío del mensaje de autenticación", + "Connexion réussie": "Conexión exitosa", + "Erreur de mot de passe": "Error de contraseña", + "Erreur de captcha": "Error de captcha" +} \ No newline at end of file diff --git a/site/i18n/fr_FR.json b/site/i18n/fr_FR.json new file mode 100644 index 00000000..c07b9e6e --- /dev/null +++ b/site/i18n/fr_FR.json @@ -0,0 +1,703 @@ +{ + "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "", + "'Sauvegarder et télécharger les données du module": "", + "1 jour": "", + "1/4 : Préparation...": "", + "10 minutes": "", + "10 tentatives": "", + "14 jours": "", + "15 minutes": "", + "2 jours": "", + "2/4 : Téléchargement...": "", + "3 tentatives": "", + "3/4 : Installation...": "", + "4 jours": "", + "4/4 : Configuration...": "", + "5 minutes": "", + "5 tentatives": "", + "7 jours": "", + "Accueil": "", + "Accède au site": "", + "Accède aux pages réservées": "", + "Accède aux pages réservées et à un dossier partagé": "", + "Accès bloqué %d minutes": "", + "Accès désactivé": "", + "Accès interdit, erreur 403": "", + "Action interdite": "", + "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "", + "Activer": "", + "Activer la journalisation": "", + "Actualiser": "", + "Adaptation": "", + "Administrateur": "", + "Administration": "", + "Adresse SMTP": "", + "Adresse du proxy": "", + "Adresse électronique": "", + "Affectation": "", + "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "", + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés": "", + "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "", + "Aide": "", + "Ajouter": "", + "Ajouter un profil": "", + "Ajouter un utilisateur": "", + "Ajouter une fonte": "", + "Alignement": "", + "Aligner la bannière avec le contenu": "", + "Ancien mot de passe": "", + "Anonymat des adresses IP": "", + "Apache URL intelligent": "", + "Apache URL intelligentes": "", + "Apparence": "", + "Appliquer": "", + "Approuver un commentaire": "", + "Après": "", + "Après la bannière": "", + "Après le contenu de la page": "", + "Archive": "", + "Archive ZIP": "", + "Archive copiée dans le dossier Modules du gestionnaire de fichier": "", + "Archive de thème invalide": "", + "Archive invalide": "", + "Archive invalide, l'écriture dans le dossier core est interdite": "", + "Archive invalide, le descripteur est absent": "", + "Archive invalide, le fichier de classe est absent": "", + "Archive invalide, les dossiers ne correspondent pas au descripteur": "", + "Archive non spécifiée ou introuvable": "", + "Archive à restaurer": "", + "Arrière plan": "", + "Arrière plan des blocs": "", + "Arrière plan des champs": "", + "Arrondi des angles": "", + "Au centre": "", + "Au début": "", + "Au milieu au centre": "", + "Au milieu à droite": "", + "Au milieu à gauche": "", + "Au-dessus du site": "", + "Aucun": "", + "Aucun dossier": "", + "Aucun fichier journal à télécharger": "", + "Aucun journal à effacer": "", + "Aucun menu": "", + "Aucune": "", + "Aucune liste noire à effacer": "", + "Aucune liste noire à télécharger": "", + "Auteur :": "", + "Authentification": "", + "Automatique": "", + "Autoriser les robots à référencer le site": "", + "Autorisé": "", + "Avant la bannière": "", + "Avant le contenu de la page": "", + "Background": "", + "Banni": "", + "Bannière": "", + "Bannière cliquable": "", + "Barre 1/3 - page 2/3": "", + "Barre 1/4 - page 1/2 - barre 1/4": "", + "Barre 1/4 - page 3/4": "", + "Barre 2/12 - page 7/12 - barre 3/12": "", + "Barre 3/12 - page 7/12 - barre 2/12": "", + "Barre de membre": "", + "Barre latérale": "", + "Barre latérale droite :": "", + "Barre latérale gauche :": "", + "Barres latérales": "", + "Bienvenue %s %s": "", + "Blocage après échecs": "", + "Blog": "", + "Bords arrondis": "", + "Bordure des blocs": "", + "Bordure des champs": "", + "Bouton Aide": "", + "Bouton Standard": "", + "Bouton de validation": "", + "Bouton effacement": "", + "Bouton retour": "", + "Bouton standard": "", + "Bouton validation": "", + "Boutons": "", + "Caché": "", + "Cachée": "", + "Captcha complexe": "", + "Captcha à la connexion": "", + "Captcha, identifiant ou mot de passe incorrects": "", + "Capture d'écran Open Graph": "", + "Capture d'écran générée avec succès": "", + "Casse": "", + "Catalogue": "", + "Catégorie": "", + "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "", + "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "", + "Cette redirection ne concerne que les pages d'administration du site.": "", + "Chaîne Youtube": "", + "Chiffres": "", + "Cible": "", + "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "", + "Commentaire": "", + "Complète": "", + "Compte administrateur": "", + "Compte de l'utilisateur": "", + "Compte verrouillé": "", + "Configuration": "", + "Configuration du module": "", + "Configurer": "", + "Configurer mon compte": "", + "Confirmation": "", + "Confirmer la suppression de cet utilisateur": "", + "Confirmer la dissociation du module de cette page": "", + "Confirmer la désinstallation du module": "", + "Confirmer la suppression de cet utilisateur": "", + "Confirmer la suppression de cette langue": "", + "Confirmer la suppression de la page": "", + "Confirmer la suppression des données du module": "", + "Confirmez-vous la suppression de cette page ?": "", + "Connexion": "", + "Consulter l'aide en ligne": "", + "Contents": "", + "Contenu": "", + "Contenu HTML": "", + "Contenu avancé": "", + "Contenu du menu vertical": "", + "Contrôle total": "", + "Cookies": "", + "Cookies Zwii": "", + "Copie de contenus localisés": "", + "Copie de sites inter-langues": "", + "Copie des traductions rédigées": "", + "Copie terminée avec des erreurs": "", + "Copie terminée avec succès": "", + "Copier": "", + "Copier sauvegardes auto": "", + "Couleur de fond automatique": "", + "Couleur icône haut de page": "", + "Couleur texte page active": "", + "Couleur unie ou papier-peint": "", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "", + "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "", + "Couleurs": "", + "Dans le site": "", + "Dans quelle langue utiliserez-vous Zwii ?": "", + "Date": "", + "Description": "", + "Disponible si le consentement des cookies est activé.": "", + "Disposition": "", + "Données %s copiées vers %s": "", + "Données des modules": "", + "Données importées": "", + "Dossier": "", + "Droits sur les dossiers": "", + "Droits sur les fichiers": "", + "Dupliquer": "", + "Dupliquer la page": "", + "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "", + "Déconnecter": "", + "Déconnexion !": "", + "Déconnexion automatique": "", + "Définir par défaut": "", + "Dévoiler le mot de passe": "", + "Effacer": "", + "Effacer la page": "", + "Effacer tous les commentaires": "", + "Effacer toutes les statistiques": "", + "Effacer un commentaire": "", + "Effacer une catégorie": "", + "Emplacement :": "", + "Emplacement dans le menu": "", + "En bas au centre": "", + "En bas à droite": "", + "En bas à gauche": "", + "En cas de changement de module, les données du module précédent seront supprimées.": "", + "En dessous du site": "", + "En haut au centre": "", + "En haut à droite": "", + "En haut à gauche": "", + "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "", + "En-dehors du site": "", + "Enregistrer": "", + "Envoyer un message de confirmation": "", + "Erreur : sauvegarde non générée !": "", + "Erreur d'URL": "", + "Erreur d'extraction, vérifiez les permissions": "", + "Erreur de copie": "", + "Erreur de copie, vérifiez les permissions": "", + "Erreur de lecture, vérifiez les permissions": "", + "Erreur inconnue": "", + "Erreur inconnue, le module n'est pas installé": "", + "Export CSV": "", + "Expéditeur": "", + "Extension": "", + "Extraire": "", + "Facebook": "", + "Famille": "", + "Favicon thème sombre": "", + "Feuille de style spécifique à la page.": "", + "Fichiers": "", + "Fichiers effacés": "", + "Fil d'Ariane dans le titre": "", + "Fond du sous-menu": "", + "FontId": "", + "Fonte": "", + "Fonte actualisée": "", + "Fonte créée": "", + "Fonte en ligne": "", + "Fonte installée": "", + "Fonte non créée, ressource absente !": "", + "Fonte supprimée": "", + "Fontes": "", + "Format incorrect": "", + "Formulaire": "", + "Fréquence de recherche": "", + "Fuseau horaire": "", + "Gabarits de page - Barre latérale": "", + "Gestion": "", + "Gestion des modules": "", + "Gestion des thèmes": "", + "Gestionnaire de fichiers": "", + "Github": "", + "Grande": "", + "Grande (220%)": "", + "Grande (300px)": "", + "Gras": "", + "Groupe": "", + "Groupe associé": "", + "Groupe requis pour accéder à la page :": "", + "Groupes": "", + "Générer sitemap.xml et robots.txt": "", + "Générer une capture Open Graph": "", + "Gérer les catégories": "", + "Gérer les commentaires": "", + "Gérer les données": "", + "Hauteur": "", + "Hauteur de l'image": "", + "Hauteur de l'image sélectionnée": "", + "Hauteur maximale": "", + "ID de la chaîne : https://www.youtube.com/channel/[ID].": "", + "Icône": "", + "Icône avec bulle de texte": "", + "Icône haut de page, couleur arrière-plan": "", + "Identifiant": "", + "Identifiant (sans espace ni majuscule)": "", + "Identité": "", + "Identité de la fonte": "", + "Identité du site": "", + "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "", + "Image": "", + "Image étirée (100% 100%)": "", + "Important": "", + "Importante": "", + "Importation d'utilisateurs": "", + "Importation de fichier plat CSV": "", + "Importation effectuée": "", + "Importer": "", + "Importer dans": "", + "Importer des utilisateurs en masse": "", + "Impossible d'ouvrir l'archive": "", + "Impossible de modifier votre propre groupe.": "", + "Impossible de soumettre le formulaire, car il contient des erreurs": "", + "Impossible de supprimer une page contenant des pages enfants": "", + "Impossible de supprimer votre propre compte": "", + "Inclure le contenu du gestionnaire de fichiers": "", + "Incorrect": "", + "Informations": "", + "Instagram": "", + "Installation terminée": "", + "Installer": "", + "Installer depuis le catalogue en ligne": "", + "Installer depuis une archive": "", + "Installer les données d'un module": "", + "Installer ou mettre à jour un module téléchargé": "", + "Installer un module": "", + "Installer un thème archivé (site ou administration)": "", + "Instructions JS ou jquery spécifiques à la page.": "", + "Interface": "", + "Jeton invalide": "", + "Journal réinitialisé avec succès": "", + "Journalisation": "", + "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "", + "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "", + "La carte du site a été mise à jour": "", + "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "", + "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "", + "La page %s est ouverte par l'utilisateur %s": "", + "La page demandée n'existe pas ou est introuvable (erreur 404)": "", + "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "", + "La première page que vos visiteurs verront.": "", + "La règlementation française impose un anonymat de niveau 2": "", + "La réécriture d'URL n'a pas été restaurée !": "", + "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "", + "La suppression a échoué": "", + "La version installée est plus récente": "", + "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "", + "Langue de l'administration": "", + "Langue du site par défaut": "", + "Langue par défaut": "", + "Langues": "", + "Langues disponibles": "", + "Langues installées": "", + "Largeur": "", + "Largeur de l'image": "", + "Largeur du site": "", + "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "", + "Le curseur horizontal règle le niveau de transparence.": "", + "Le fuseau horaire est utile au bon référencement": "", + "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "", + "Le menu horizontal intégral": "", + "Le module %s a été %s": "", + "Le module %s de la page %s a été supprimé": "", + "Le module %s est désinstallé, il reste peut-être des données dans %s": "", + "Le sous-menu de la page parente": "", + "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "", + "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "", + "Les langues sélectionnées sont identiques": "", + "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "", + "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "", + "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "", + "Lettres": "", + "Libre": "", + "Licence :": "", + "Lien de connexion": "", + "Lien page des mentions légales.": "", + "Liens": "", + "Limitation des tentatives": "", + "Limitée au site": "", + "Linkedin": "", + "Liste noire": "", + "Liste noire réinitialisée avec succès": "", + "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "", + "Léger": "", + "Légère": "", + "Maigre": "", + "Maintenance": "", + "Majuscule à chaque mot": "", + "Majuscules": "", + "Marges verticales": "", + "Masquer la bannière en écran réduit": "", + "Masquer la page et les pages enfants dans le menu d'une barre latérale": "", + "Masquer les pages enfants dans le menu horizontal": "", + "Membre": "", + "Membre avec droit de partage": "", + "Membre simple": "", + "Mentions légales": "", + "Menu": "", + "Menu accessoire": "", + "Menu burger dans écran réduit": "", + "Menu standard": "", + "Message d'acceptation des Cookies": "", + "Message de consentement aux cookies": "", + "Mettre à jour": "", + "Mettre à jour le module orphelin": "", + "Minuscules": "", + "Mise en forme des titres": "", + "Mise en forme du texte": "", + "Mise en forme du titre": "", + "Mise en page": "", + "Mise à jour": "", + "Mise à jour automatisée": "", + "Mise à jour terminée avec succès.": "", + "Modifications enregistrées": "", + "Module": "", + "Module de la page": "", + "Modules": "", + "Modules configurés": "", + "Modules installés": "", + "Modules orphelins": "", + "Mot de passe": "", + "Mot de passe oublié": "", + "Mot de passe perdu": "", + "Motorisé par": "", + "Moyen": "", + "Moyenne": "", + "Moyenne (200%)": "", + "Moyenne (200px)": "", + "Méta-description": "", + "Méta-titre": "", + "Ne pas afficher": "", + "Ne pas charger l'exemple de site (utilisateurs avancés)": "", + "Ne pas répéter": "", + "Ne pas saisir les balises": "", + "News": "", + "Niveau 1 (192.168.12.x)": "", + "Niveau 2 (192.168.x.x)": "", + "Niveau 3 (192.x.x.x)": "", + "Nom": "", + "Nom Prénom": "", + "Nom du profil": "", + "Nom utilisateur": "", + "Non": "", + "Non tronquée": "", + "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "", + "Nouveau contenu localisé": "", + "Nouveau mot de passe": "", + "Nouveau mot de passe enregistré": "", + "Nouvel utilisateur": "", + "Nouvelle page créée": "", + "Nouvelle page ou barre latérale": "", + "Obligatoire": "", + "Ombre": "", + "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "", + "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "", + "Options": "", + "Options avancées": "", + "Origine": "", + "Oui": "", + "Page": "", + "Page 2/3 - barre 1/3": "", + "Page 3/4 - barre 1/4": "", + "Page associée": "", + "Page de recherche": "", + "Page dupliquée": "", + "Page et module dupliqués": "", + "Page inexistante, erreur 404": "", + "Page non cliquable": "", + "Page parent": "", + "Page standard": "", + "Page supprimée": "", + "Pages dans le menu": "", + "Pages du site": "", + "Pages et les modules de": "", + "Pages orphelines": "", + "Papier peint": "", + "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "", + "Paramètres": "", + "Paramètres de la localisation": "", + "Paramètres de la sauvegarde": "", + "Paramètres du profil": "", + "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "", + "Pas de marge au-dessus et en dessous du site": "", + "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "", + "Permission": "", + "Permission et référencement": "", + "Permissions": "", + "Permissions sur les dossiers": "", + "Permissions sur les fichiers": "", + "Permissions sur les pages": "", + "Petite": "", + "Petite (150px)": "", + "Petite (180%)": "", + "Pied de page": "", + "Pinterest": "", + "Plan du site": "", + "Police des titres": "", + "Police du texte": "", + "Port SMTP": "", + "Port du proxy": "", + "Position": "", + "Position du module": "", + "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "", + "Presse Papier": "", + "Presse papier": "", + "Profils des groupes": "", + "Proportionnelle à la taille définie dans le site.": "", + "Prénom": "", + "Prénom Nom": "", + "Préparation de la mise à jour": "", + "Préserver le fichier htaccess racine": "", + "Préserver les comptes des utilisateurs déjà installés": "", + "Prévenir l'utilisateur par mail": "", + "Prévisualiser": "", + "Pseudo": "", + "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "", + "Ratio": "", + "Ratio :": "", + "Recherche": "", + "Recherche dans le site": "", + "Rechercher": "", + "Rechercher une mise à jour en ligne": "", + "Redirection": "", + "Redirection vers la connexion": "", + "Renommer": "", + "Renseignez les champs ci-dessous pour finaliser l'installation.": "", + "Responsive (contain)": "", + "Responsive (cover)": "", + "Restauration des bases de données absentes": "", + "Restauration effectuée avec succès": "", + "Restaurer": "", + "Restaurer les données du site": "", + "Rester connecté sur ce navigateur": "", + "Retour": "", + "Rien à importer, erreur de format ou fichier incorrect": "", + "Rédacteur": "", + "Référencement": "", + "Réinitialisation du mot de passe": "", + "Réinitialiser avec le thème par défaut": "", + "Réinitialiser la feuille de style": "", + "Réinitialiser la liste": "", + "Réinitialiser le journal": "", + "Réinstaller": "", + "Répétition": "", + "Réseau": "", + "Réseaux sociaux": "", + "S'ouvre dans un nouvel onglet": "", + "SMTP": "", + "SMTP personnalisé": "", + "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "", + "Saisissez le Titre de gestion des cookies.": "", + "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "", + "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "", + "Saisissez votre ID : https://pinterest.com/[ID].": "", + "Saisissez votre ID : https://twitter.com/[ID].": "", + "Saisissez votre ID : https://www.facebook.com/[ID].": "", + "Saisissez votre ID : https://www.instagram.com/[ID].": "", + "Saisissez votre ID Github : https://github.com/[ID].": "", + "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "", + "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "", + "Sauvegarde": "", + "Sauvegarde automatique quotidienne du site": "", + "Sauvegarde du thème dans le": "", + "Sauvegarde générée avec succès": "", + "Sauvegarder": "", + "Sauvegarder et télécharger le module": "", + "Sauvegarder le module dans le gestionnaire de fichiers": "", + "Sauvegarder les données du module dans le gestionnaire de fichiers": "", + "Sauvegarder les données du site": "", + "Script dans body": "", + "Script dans head": "", + "Scripts externes": "", + "Se déconnecter": "", + "Service en ligne inaccessible": "", + "Seul un administrateur peut se connecter lors d'une maintenance": "", + "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "", + "Signature": "", + "Site": "", + "Site en maintenance": "", + "Size": "", + "Source": "", + "Standard": "", + "Style": "", + "Suppression interdite": "", + "Suppression interdite, page active dans la configuration de la langue du site": "", + "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "", + "Supprimer": "", + "Supprimer la page": "", + "Supprimer le module": "", + "Supprimer toutes les sauvegardes automatiques ?": "", + "Sur l'axe horizontal": "", + "Sur l'axe vertical": "", + "Sur les deux axes": "", + "Sécurité": "", + "Sécurité de la connexion": "", + "Sécurité désactivée": "", + "Sélectionner un fichier": "", + "Sélectionnez au moins un contenu à afficher": "", + "Sélectionnez la langue à copier vers une langue cible": "", + "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "", + "Sélectionnez une image ou une icône de petite dimension": "", + "Sélectionnez une langue": "", + "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "", + "Sélectionnez une page pour activer": "", + "Séparateur": "", + "Taille": "", + "Text": "", + "Texte": "", + "Thème": "", + "Thème de l'administration": "", + "Thème du site": "", + "Thème importé": "", + "Thèmes": "", + "Titre": "", + "Titre court": "", + "Titre masqué": "", + "Titre masqué dans la page": "", + "Titres": "", + "Tous les dossiers": "", + "Tous les droits d'édition des contenus": "", + "Tout Effacer": "", + "Traduction supprimée": "", + "Très grande": "", + "Très grande (240%)": "", + "Très grande (400px)": "", + "Très important": "", + "Très importante": "", + "Très léger": "", + "Très légère": "", + "Très petite": "", + "Très petite (100px) ": "", + "Très petite (160%)": "", + "Twitter": "", + "Type de captcha": "", + "Type de proxy": "", + "Téléchargement et validation de l'archive": "", + "Télécharger": "", + "Télécharger la liste": "", + "Télécharger le journal": "", + "Télécharger le module dans le gestionnaire de fichiers": "", + "Téléverser": "", + "URL incorrecte": "", + "Un mail a été envoyé pour confirmer la réinitialisation": "", + "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "", + "Une erreur est survenue lors de l'étape :": "", + "Url du fichier de fonte": "", + "Utilisateur inexistant": "", + "Utilisateur supprimé": "", + "Utilisateurs": "", + "Valider": "", + "Version": "", + "Version n°": "", + "Vider dossier sauvegardes auto": "", + "Visiteur": "", + "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "", + "Youtube": "", + "ZwiiCMS - Installation": "", + "actualisé": "", + "favicon.ico": "", + "faviconDark.ico": "", + "gestionnaire de fichiers": "", + "installé": "", + "jour": "", + "jours": "", + "sauvegardé avec succès": "", + "vers": "", + "À droite": "", + "À gauche": "", + "À l'emplacement du mot clé [MODULE] dans la page": "", + "Échec de l'écriture, vérifiez les permissions": "", + "Échecs": "", + "Éditer": "", + "Éditer la page": "", + "Éditer les dialogues": "", + "Éditer une catégorie": "", + "Éditeur": "", + "Éditeur CSS": "", + "Éditeur JS": "", + "Éditeur de script %s": "", + "Éditeur de script dans Body": "", + "Éditeur de script dans Head": "", + "Éditeur simple": "", + "Édition des pages": "", + "Édition du profil %s": "", + "Éléments": "", + "Étendu sur la page": "", + "Étiquettes des pages spéciales": "", + "Dimensions minimales": "", + "Taille maximale du fichier": "", + "5 Mo pour les images JPEG": "", + "1 Mo pour les images PNG": "", + "Poids": "", + "Supprimer ce profil ?": "", + "Masqué": "", + "Haut de page": "", + "Bas de page": "", + "Petit triangle": "", + "Grand triangle": "", + "Flèche": "", + "Modèle": "", + "Bouton de navigation droit": "", + "Bouton de navigation gauche": "", + "Groupes / Profils": "", + "Prénom commence par": "", + "Nom commence par": "", + "Impossible de réinitialiser le mot de passe de ce compte !": "", + "Test de la messagerie du site": "", + "Il semblerait que votre messagerie fonctionne correctement !": "", + "Message de test envoyé avec succès": "", + "Message non envoyé": "", + "Validation par clé ⚠️": "", + "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "", + "Envoi du message d'authentification": "", + "Connexion réussie": "", + "Erreur de mot de passe": "", + "Erreur de captcha": "" +} \ No newline at end of file diff --git a/tmplog.txt b/tmplog.txt deleted file mode 100644 index d58a3c54..00000000 --- a/tmplog.txt +++ /dev/null @@ -1,60 +0,0 @@ -[JsonDb][17:33:28.696300]--site/data/user.json -[JsonDb][17:33:30.923100]--site/data/config.json -[JsonDb][17:33:39.929400]--site/data/fr_FR/page.json -[SecurePut][17:33:39.932300]--site/data/fr_FR/content/accueil.html -[SecurePut][17:33:39.935700]--site/data/fr_FR/content/enfant.html -[SecurePut][17:33:39.938700]--site/data/fr_FR/content/privee.html -[SecurePut][17:33:39.940500]--site/data/fr_FR/content/mise-en-page.html -[SecurePut][17:33:39.942300]--site/data/fr_FR/content/menu-lateral.html -[SecurePut][17:33:39.944900]--site/data/fr_FR/content/blog.html -[SecurePut][17:33:39.947400]--site/data/fr_FR/content/galeries.html -[SecurePut][17:33:39.949500]--site/data/fr_FR/content/site-de-zwii.html -[SecurePut][17:33:39.952400]--site/data/fr_FR/content/contact.html -[SecurePut][17:33:39.954800]--site/data/fr_FR/content/barre.html -[SecurePut][17:33:39.957200]--site/data/fr_FR/content/barrelateraleavecmenu.html -[SecurePut][17:33:39.960100]--site/data/fr_FR/content/mentions-legales.html -[SecurePut][17:33:39.962300]--site/data/fr_FR/content/erreur302.html -[SecurePut][17:33:39.964600]--site/data/fr_FR/content/erreur403.html -[SecurePut][17:33:39.967200]--site/data/fr_FR/content/erreur404.html -[SecurePut][17:33:39.969200]--site/data/fr_FR/content/recherche.html -[JsonDb][17:33:39.971800]--site/data/fr_FR/module.json -[SecurePut][17:33:39.975600]--site/data/fr_FR/content/accueil.html -[JsonDb][17:33:39.979800]--site/data/fr_FR/locale.json -[SecurePut][17:33:39.982100]--site/data/fr_FR/content/accueil.html -[JsonDb][17:33:40.236800]--site/data/user.json -[JsonDb][17:33:41.108200]--site/data/config.json -[JsonDb][16:39:49.897300]--site/data/user.json -[JsonDb][16:40:24.088000]--site/data/user.json -[JsonDb][16:40:25.205100]--site/data/user.json -[JsonDb][16:40:25.222500]--site/data/fr_FR/module.json -[JsonDb][16:40:25.225500]--site/data/fr_FR/module.json -[JsonDb][16:40:25.228800]--site/data/fr_FR/module.json -[JsonDb][16:40:25.232500]--site/data/fr_FR/module.json -[JsonDb][16:40:25.272700]--site/data/fr_FR/module.json -[JsonDb][16:40:25.305900]--site/data/fr_FR/module.json -[JsonDb][16:40:25.309400]--site/data/fr_FR/module.json -[JsonDb][16:40:25.347700]--site/data/fr_FR/module.json -[JsonDb][16:40:25.380400]--site/data/fr_FR/module.json -[JsonDb][16:40:25.425500]--site/data/fr_FR/module.json -[JsonDb][16:40:25.467600]--site/data/fr_FR/module.json -[JsonDb][16:40:25.508100]--site/data/fr_FR/module.json -[JsonDb][16:40:26.909300]--site/data/user.json -[JsonDb][16:40:28.342200]--site/data/user.json -[JsonDb][16:40:35.539700]--site/data/user.json -[JsonDb][16:46:38.876100]--site/data/user.json -[JsonDb][17:00:43.742000]--site/data/user.json -[SecurePut][17:00:43.757100]--site/data/font/font.html -[SecurePut][17:00:43.759700]--site/data/font/font.css -[JsonDb][17:00:45.950500]--site/data/user.json -[SecurePut][17:00:45.982300]--site/data/font/font.html -[SecurePut][17:00:45.984900]--site/data/font/font.css -[JsonDb][17:00:50.370800]--site/data/user.json -[SecurePut][17:00:50.386000]--site/data/font/font.html -[SecurePut][17:00:50.388700]--site/data/font/font.css -[JsonDb][17:00:51.923600]--site/data/user.json -[SecurePut][17:00:51.932700]--site/data/font/font.html -[SecurePut][17:00:51.935700]--site/data/font/font.css -[JsonDb][17:00:54.354900]--site/data/user.json -[JsonDb][17:00:57.097400]--site/data/user.json -[JsonDb][17:00:59.142200]--site/data/user.json -[JsonDb][17:01:01.703400]--site/data/user.json From f0951d4a60f1ba038e4469224ee0ff8b5b205ad0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Thu, 19 Dec 2024 22:07:05 +0100 Subject: [PATCH 03/21] DOuble authentification et fichiers de langues --- CHANGES.md | 2 ++ core/module/install/ressource/defaultdata.php | 12 ++++++------ core/module/install/ressource/i18n/en_EN.json | 3 ++- core/module/install/ressource/i18n/es.json | 3 ++- core/module/install/ressource/i18n/fr_FR.json | 3 ++- core/module/user/view/auth/auth.php | 2 +- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2df59b45..914bfef6 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ ## Versions 13.5.00 **Améliorations :** +- Double authentification par messagerie. Une clé est adressée par messagerie après la saisie du mot de passe et du captcha. - Validation de la connexion au site grâce à l'envoi d'un code par email. L'option est activée depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. - Optimisation du chargement des variables de classe. - Suppression de redondance de déclaration des charset. @@ -11,6 +12,7 @@ - Blog 7.12, corrige un bug d'affichage des articles lorsque le thème Moderne est sélectionné. - Corrige un dysfonctionnement de la fonction de tronquage subword qui perturbait l'affichage des articles de blog. - Activation de la mémorisation de l'onglet actif dans la configuration après validation du formulaire ou visite d'une autre page du site. +- À l'installation, le bouton back mémorise la langue sélectionnée à la première étape. ## Versions 13.4.00 ** Améliorations :** diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php index 0fc95536..292079b2 100644 --- a/core/module/install/ressource/defaultdata.php +++ b/core/module/install/ressource/defaultdata.php @@ -287,16 +287,16 @@ class init extends common 'blacklist' => [], 'language' => [ "fr_FR" => [ - "version" => 13007, - "date" => 1699354723 + "version" => 13500, + "date" => 1734641934 ], "es" => [ - "version" => 13007, - "date" => 1699354723 + "version" => 13500, + "date" => 1734641934 ], "en_EN" => [ - "version" => 13007, - "date" => 1699354723 + "version" => 13500, + "date" => 1734641934 ] ], 'profil' => [ diff --git a/core/module/install/ressource/i18n/en_EN.json b/core/module/install/ressource/i18n/en_EN.json index b73bc9bb..bfa75c6a 100644 --- a/core/module/install/ressource/i18n/en_EN.json +++ b/core/module/install/ressource/i18n/en_EN.json @@ -699,5 +699,6 @@ "Envoi du message d'authentification": "Sending authentication message", "Connexion réussie": "Login successful", "Erreur de mot de passe": "Password error", - "Erreur de captcha": "Captcha error" + "Erreur de captcha": "Captcha error", + "Clé envoyée par message": "Key sent via message" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/es.json b/core/module/install/ressource/i18n/es.json index bef573e3..6284334d 100644 --- a/core/module/install/ressource/i18n/es.json +++ b/core/module/install/ressource/i18n/es.json @@ -699,5 +699,6 @@ "Envoi du message d'authentification": "Envío del mensaje de autenticación", "Connexion réussie": "Conexión exitosa", "Erreur de mot de passe": "Error de contraseña", - "Erreur de captcha": "Error de captcha" + "Erreur de captcha": "Error de captcha", + "Clé envoyée par message": "Clave enviada por mensaje" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/fr_FR.json b/core/module/install/ressource/i18n/fr_FR.json index c07b9e6e..0e55bf62 100644 --- a/core/module/install/ressource/i18n/fr_FR.json +++ b/core/module/install/ressource/i18n/fr_FR.json @@ -699,5 +699,6 @@ "Envoi du message d'authentification": "", "Connexion réussie": "", "Erreur de mot de passe": "", - "Erreur de captcha": "" + "Erreur de captcha": "", + "Clé envoyée par message": "" } \ No newline at end of file diff --git a/core/module/user/view/auth/auth.php b/core/module/user/view/auth/auth.php index fb152c77..fdcc801c 100644 --- a/core/module/user/view/auth/auth.php +++ b/core/module/user/view/auth/auth.php @@ -2,7 +2,7 @@
helper::translate('Clé reçue par couriel') + 'label' => helper::translate('Clé envoyée par message') ]); ?>
From 3895f8357e9c5cc0c378f27b3dc043150ebdb20f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 17:28:32 +0100 Subject: [PATCH 04/21] Nom de bouton --- .gitignore | 3 ++- core/module/config/view/connect/connect.php | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 0f3c2cd8..142ef185 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ core/vendor/tinymce/link_list.json robots.txt sitemap.xml .gitignore -core/module/config/tool/data.key \ No newline at end of file +core/module/config/tool/data.key +site/i18n/*.json \ No newline at end of file diff --git a/core/module/config/view/connect/connect.php b/core/module/config/view/connect/connect.php index ee48bb71..8ec2516b 100644 --- a/core/module/config/view/connect/connect.php +++ b/core/module/config/view/connect/connect.php @@ -138,7 +138,7 @@ ]); ?>
- 'buttonRed', 'href' => helper::baseUrl() . 'config/blacklistReset', 'value' => 'Réinitialiser la liste', From d2cd0ec203c7fb80f05c8822c6c9d460f5c5c211 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Fri, 20 Dec 2024 17:29:54 +0100 Subject: [PATCH 05/21] Supprimer site/i18n/en_EN.json --- site/i18n/en_EN.json | 703 ------------------------------------------- 1 file changed, 703 deletions(-) delete mode 100644 site/i18n/en_EN.json diff --git a/site/i18n/en_EN.json b/site/i18n/en_EN.json deleted file mode 100644 index b73bc9bb..00000000 --- a/site/i18n/en_EN.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'Do not display' creates an orphan page not accessible through menus.", - "'Sauvegarder et télécharger les données du module": "'Save and download module data", - "1 jour": "1 day", - "1/4 : Préparation...": "1/4: preparation ...", - "10 minutes": "10 minutes", - "10 tentatives": "10 attempts", - "14 jours": "14 days", - "15 minutes": "15 minutes", - "2 jours": "2 days", - "2/4 : Téléchargement...": "2/4: Download ...", - "3 tentatives": "3 attempts", - "3/4 : Installation...": "3/4 : Installation...", - "4 jours": "4 days", - "4/4 : Configuration...": "4/4 : Setup...", - "5 minutes": "5 minutes", - "5 tentatives": "5 attempts", - "7 jours": "7 days", - "Accueil": "Homepage", - "Accède au site": "Access to the site", - "Accède aux pages réservées": "Access to restricted pages", - "Accède aux pages réservées et à un dossier partagé": "Access to restricted pages and a shared folder", - "Accès bloqué %d minutes": "Blocked access %d minutes", - "Accès désactivé": "Access disabled", - "Accès interdit, erreur 403": "Access prohibited, error 403", - "Action interdite": "Prohibited action", - "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "Compulsory activation according to French laws unless you use your own consent system.", - "Activer": "Enable", - "Activer la journalisation": "Activate journalization", - "Actualiser": "Update", - "Adaptation": "Adaptation", - "Administrateur": "Administrator", - "Administration": "Administration", - "Adresse SMTP": "SMTP address", - "Adresse du proxy": "Proxy address", - "Adresse électronique": "email address", - "Affectation": "Assignment", - "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "Displays the name of the parent page followed by the page name, the title should not be hidden.", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés": "Displays account management and logout icons for logged-in regular members", - "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "In order to ensure the proper functioning of Zwii, please do not close this page before the end of the operation.", - "Aide": "Help", - "Ajouter": "Add", - "Ajouter un profil": "Add Profile", - "Ajouter un utilisateur": "Add a user", - "Ajouter une fonte": "Add a cast iron", - "Alignement": "Alignment", - "Aligner la bannière avec le contenu": "Align the banner with the contents", - "Ancien mot de passe": "Old Password", - "Anonymat des adresses IP": "Anonymity of IP addresses", - "Apache URL intelligent": "Intelligent Apache URL", - "Apache URL intelligentes": "Intelligent Apache URL", - "Apparence": "Appearance", - "Appliquer": "Apply", - "Approuver un commentaire": "Approve Comment", - "Après": "After", - "Après la bannière": "After the banner", - "Après le contenu de la page": "After the content of the page", - "Archive": "Archive", - "Archive ZIP": "Zip archive", - "Archive copiée dans le dossier Modules du gestionnaire de fichier": "Archive copied in the Modules folder", - "Archive de thème invalide": "Invalid theme archive", - "Archive invalide": "Invalid archive", - "Archive invalide, l'écriture dans le dossier core est interdite": "Invalid archive, writing in the core folder is prohibited", - "Archive invalide, le descripteur est absent": "Invalid archive, the descriptor is absent", - "Archive invalide, le fichier de classe est absent": "Invalid archive, the class file is absent", - "Archive invalide, les dossiers ne correspondent pas au descripteur": "Invalid archive, the files do not match the descriptor", - "Archive non spécifiée ou introuvable": "Archive not specified or not found", - "Archive à restaurer": "Archive to restore", - "Arrière plan": "Background", - "Arrière plan des blocs": "Blocks background", - "Arrière plan des champs": "Fields background", - "Arrondi des angles": "Rounding of angles", - "Au centre": "Center", - "Au début": "At first", - "Au milieu au centre": "In the middle in the center", - "Au milieu à droite": "In the middle right", - "Au milieu à gauche": "In the middle on the left", - "Au-dessus du site": "Above the site", - "Aucun": "None", - "Aucun dossier": "No Folder", - "Aucun fichier journal à télécharger": "No log file to download", - "Aucun journal à effacer": "No log file to erase", - "Aucun menu": "No menu", - "Aucune": "None", - "Aucune liste noire à effacer": "No blacklist to erase", - "Aucune liste noire à télécharger": "No blacklist to download", - "Auteur :": "Author:", - "Authentification": "Authentication", - "Automatique": "Automatic", - "Autoriser les robots à référencer le site": "Allow robots to reference the site", - "Autorisé": "Allowed", - "Avant la bannière": "Before the banner", - "Avant le contenu de la page": "Before the content of the page", - "Background": "Background", - "Banni": "Ban", - "Bannière": "Banner", - "Bannière cliquable": "Clickable banner", - "Barre 1/3 - page 2/3": "Sidebar 1/3 - page 2/3", - "Barre 1/4 - page 1/2 - barre 1/4": "Sidebar 1/4 - page 1/2 - Sidebar 1/4", - "Barre 1/4 - page 3/4": "Sidebar 1/4 - page 3/4", - "Barre 2/12 - page 7/12 - barre 3/12": "Sidebar 2/12 - page 7/12 - Sidebar 3/12", - "Barre 3/12 - page 7/12 - barre 2/12": "Sidebar 3/12 - page 7/12 - Sidebar 2/12", - "Barre de membre": "Member bar", - "Barre latérale": "Sidebar", - "Barre latérale droite :": "Right sidebar:", - "Barre latérale gauche :": "Left sidebar:", - "Barres latérales": "Sidebars", - "Bienvenue %s %s": "Welcome %s %s", - "Blocage après échecs": "Blocking after failure", - "Blog": "Blog", - "Bords arrondis": "Rounded edges", - "Bordure des blocs": "Blocks border", - "Bordure des champs": "Fields border", - "Bouton Aide": "Help button", - "Bouton Standard": "Standard button", - "Bouton de validation": "Validation button", - "Bouton effacement": "Delete button", - "Bouton retour": "Return button", - "Bouton standard": "Standard button", - "Bouton validation": "Validation button", - "Boutons": "Buttons", - "Caché": "Hidden", - "Cachée": "Hidden", - "Captcha complexe": "Complex captcha", - "Captcha à la connexion": "Captcha", - "Captcha, identifiant ou mot de passe incorrects": "Incorrect captcha, login or password", - "Capture d'écran Open Graph": "Open Graph screenshot", - "Capture d'écran générée avec succès": "Successful generated screenshot", - "Casse": "Case", - "Catalogue": "Store", - "Catégorie": "Category", - "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "This member can upload or download files in the 'Sharing' folder and its subfolders", - "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "This page should not appear in the menu tree. Create an orphan page.", - "Cette redirection ne concerne que les pages d'administration du site.": "This redirection only concerns the site administration pages.", - "Chaîne Youtube": "Youtube channel", - "Chiffres": "Numbers", - "Cible": "Target", - "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "Click on an area to access its customization options.", - "Commentaire": "Comment", - "Complète": "Complete", - "Compte administrateur": "Administrator account", - "Compte de l'utilisateur": "User Account", - "Compte verrouillé": "Locked", - "Configuration": "Setup", - "Configuration du module": "Module setup", - "Configurer": "Configure", - "Configurer mon compte": "Set up my account", - "Confirmation": "Confirmation", - "Confirmer la suppression de cet utilisateur": "Confirm the deletion of this user", - "Confirmer la dissociation du module de cette page": "Confirm the dissociation of the module of this page", - "Confirmer la désinstallation du module": "Confirm the uninstalling of the module", - "Confirmer la suppression de cet utilisateur": "Confirm the deletion of this user", - "Confirmer la suppression de cette langue": "Confirm deletion of this language", - "Confirmer la suppression de la page": "Confirm the deletion of the page", - "Confirmer la suppression des données du module": "Confirm the deletion of module data", - "Confirmez-vous la suppression de cette page ?": "Do you confirm the deletion of this page?", - "Connexion": "Connection", - "Consulter l'aide en ligne": "Online help", - "Contents": "Contents", - "Contenu": "Contents", - "Contenu HTML": "HTML content", - "Contenu avancé": "Advanced content", - "Contenu du menu vertical": "Vertical menu content", - "Contrôle total": "Full control", - "Cookies": "Cookies", - "Cookies Zwii": "Cookies Zwii", - "Copie de contenus localisés": "Localized content copy", - "Copie de sites inter-langues": "Copy of inter-language sites", - "Copie des traductions rédigées": "Copy of written translations", - "Copie terminée avec des erreurs": "Copy finished with errors", - "Copie terminée avec succès": "Copy successfully completed", - "Copier": "Copy", - "Copier sauvegardes auto": "Copy auto backups", - "Couleur de fond automatique": "Automatic background color", - "Couleur icône haut de page": "Color of top page icon", - "Couleur texte page active": "Active page text color", - "Couleur unie ou papier-peint": "Plain color or wallpaper", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency.", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "Visible color in the absence of an image.
The horizontal cursor regulates the level of transparency. The color of the text is automatic.", - "Couleurs": "Colors", - "Dans le site": "Into the site", - "Dans quelle langue utiliserez-vous Zwii ?": "In which language will you use Zwii?", - "Date": "Date", - "Description": "Site description", - "Disponible si le consentement des cookies est activé.": "Available if cookie consent is enabled.", - "Disposition": "Layout", - "Données %s copiées vers %s": "Data %s copied to %s", - "Données des modules": "Module data", - "Données importées": "Imported data", - "Dossier": "Folder", - "Droits sur les dossiers": "Folder authorizations", - "Droits sur les fichiers": "File authorizations", - "Dupliquer": "Clone", - "Dupliquer la page": "Clone page", - "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "Disconnects the previously opened sessions on other browsers or terminals. Recommended activation.", - "Déconnecter": "Disconnect", - "Déconnexion !": "Logout!", - "Déconnexion automatique": "Automatic disconnection", - "Définir par défaut": "Set as default", - "Dévoiler le mot de passe": "Reveal the password", - "Effacer": "Delete", - "Effacer la page": "Delete page", - "Effacer tous les commentaires": "Delete all Comments", - "Effacer toutes les statistiques": "Delete all statistics", - "Effacer un commentaire": "Delete Comment", - "Effacer une catégorie": "Delete category", - "Emplacement :": "Location:", - "Emplacement dans le menu": "Location in the menu", - "En bas au centre": "Down in the center", - "En bas à droite": "At the bottom right", - "En bas à gauche": "At the bottom left", - "En cas de changement de module, les données du module précédent seront supprimées.": "In the event of a module change, data from the previous module will be deleted.", - "En dessous du site": "Below the site", - "En haut au centre": "Top in the center", - "En haut à droite": "Top right corner", - "En haut à gauche": "Top left corner", - "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "In free position add the module by placing [MODULE] to the desired location in your page.", - "En-dehors du site": "Outside the site", - "Enregistrer": "Save", - "Envoyer un message de confirmation": "Send a confirmation message", - "Erreur : sauvegarde non générée !": "Error: non-generated backup!", - "Erreur d'URL": "URL error", - "Erreur d'extraction, vérifiez les permissions": "Extraction error, check permissions", - "Erreur de copie": "Copy error", - "Erreur de copie, vérifiez les permissions": "Copy error, check permissions", - "Erreur de lecture, vérifiez les permissions": "Reading error, check permissions", - "Erreur inconnue": "unknown error", - "Erreur inconnue, le module n'est pas installé": "Unknown error, the module is not installed", - "Export CSV": "CSV Export", - "Expéditeur": "From", - "Extension": "Extension", - "Extraire": "Extract", - "Facebook": "Facebook", - "Famille": "Family", - "Favicon thème sombre": "Dark theme favicon", - "Feuille de style spécifique à la page.": "Style sheet specific to the page.", - "Fichiers": "Files", - "Fichiers effacés": "Erased files", - "Fil d'Ariane dans le titre": "Breadcrumb in the title", - "Fond du sous-menu": "Background of the submenu", - "FontId": "FontId", - "Fonte": "Font", - "Fonte actualisée": "Update", - "Fonte créée": "Font created", - "Fonte en ligne": "Online font", - "Fonte installée": "Installed font", - "Fonte non créée, ressource absente !": "Font not created, absent resource!", - "Fonte supprimée": "Font deleted", - "Fontes": "Fonts", - "Format incorrect": "Wrong format", - "Formulaire": "Form", - "Fréquence de recherche": "Search frequency", - "Fuseau horaire": "Time zone", - "Gabarits de page - Barre latérale": "Page templates - Sidebar", - "Gestion": "Management", - "Gestion des modules": "Module management", - "Gestion des thèmes": "Themes management", - "Gestionnaire de fichiers": "File Manager", - "Github": "Github", - "Grande": "Large", - "Grande (220%)": "Grande (220%)", - "Grande (300px)": "Grande (300px)", - "Gras": "Bold", - "Groupe": "Group", - "Groupe associé": "Associated Group", - "Groupe requis pour accéder à la page :": "Group required to access the page:", - "Groupes": "Groups", - "Générer sitemap.xml et robots.txt": "Generate sitemap.xml and robots.txt", - "Générer une capture Open Graph": "Generate an Open Graph capture", - "Gérer les catégories": "Manage categories", - "Gérer les commentaires": "Manage comments", - "Gérer les données": "Manage Data", - "Hauteur": "Height:", - "Hauteur de l'image": "Image Height", - "Hauteur de l'image sélectionnée": "Selected Image Height", - "Hauteur maximale": "Maximum height", - "ID de la chaîne : https://www.youtube.com/channel/[ID].": "Channel ID: https://www.youtube.com/channel/ [ID].", - "Icône": "Icon", - "Icône avec bulle de texte": "Icon with text bubble", - "Icône haut de page, couleur arrière-plan": "Top page icon, background color", - "Identifiant": "Identifier", - "Identifiant (sans espace ni majuscule)": "Identifier (without space or capital letters)", - "Identité": "Identity", - "Identité de la fonte": "Identity of the font", - "Identité du site": "Site identity", - "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "It appears in the title bar and sharing on social networks.", - "Image": "Image", - "Image étirée (100% 100%)": "Stretched image (100% 100%)", - "Important": "Important", - "Importante": "Important", - "Importation d'utilisateurs": "Import of users", - "Importation de fichier plat CSV": "CSV flat file import", - "Importation effectuée": "Import done", - "Importer": "Import", - "Importer dans": "Import into", - "Importer des utilisateurs en masse": "Import mass users", - "Impossible d'ouvrir l'archive": "Impossible to open the archive", - "Impossible de modifier votre propre groupe.": "Unable to modify your own group.", - "Impossible de soumettre le formulaire, car il contient des erreurs": "Unable to submit the form, as it contains errors", - "Impossible de supprimer une page contenant des pages enfants": "Unable to delete a page containing children's pages", - "Impossible de supprimer votre propre compte": "Unable to delete your own account", - "Inclure le contenu du gestionnaire de fichiers": "Include the content of the file manager", - "Incorrect": "Incorrect", - "Informations": "Informations", - "Instagram": "Instagram", - "Installation terminée": "Installation completed", - "Installer": "Install", - "Installer depuis le catalogue en ligne": "Install from the online catalog", - "Installer depuis une archive": "Install from an archive", - "Installer les données d'un module": "Install a module data", - "Installer ou mettre à jour un module téléchargé": "Install or update a downloaded module", - "Installer un module": "Install a module", - "Installer un thème archivé (site ou administration)": "Install an archived theme (site or administration)", - "Instructions JS ou jquery spécifiques à la page.": "JS or JQuery instructions specific to the page.", - "Interface": "Interface", - "Jeton invalide": "Invalid token", - "Journal réinitialisé avec succès": "Log file successfully reset", - "Journalisation": "Journalization", - "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "The archive was deposited in the file manager. Archives below version 9 are not accepted.", - "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "The identifier is defined when creating the account, it cannot be changed.", - "La carte du site a été mise à jour": "The sitemap has been updated", - "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "Backup copy of htaccess file has not been restored!", - "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "The description of a page participates in its referencing, each page must have a different description.", - "La page %s est ouverte par l'utilisateur %s": "Page %s opened by user %s", - "La page demandée n'existe pas ou est introuvable (erreur 404)": "This page does not exists (error 404)", - "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "The page is displayed in a horizontal menu but not in the vertical menu of a sidebar.", - "La première page que vos visiteurs verront.": "The first page that your visitors will see.", - "La règlementation française impose un anonymat de niveau 2": "French regulations require level 2 anonymity", - "La réécriture d'URL n'a pas été restaurée !": "URL rewriting has not been restored!", - "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "The backup of the files can take time. Continue?", - "La suppression a échoué": "The deletion failed", - "La version installée est plus récente": "The installed version is more recent", - "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "The verification is daily. Option deactivated if the server configuration does not allow it.", - "Langue de l'administration": "Language of administration", - "Langue du site par défaut": "Default site language", - "Langue par défaut": "Default language", - "Langues": "Languages", - "Langues disponibles": "Available languages", - "Langues installées": "Installed languages", - "Largeur": "Width", - "Largeur de l'image": "Image Width", - "Largeur du site": "Site Width", - "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "The horizontal cursor sets the level of transparency, place it on the left for invisible highlights.", - "Le curseur horizontal règle le niveau de transparence.": "The horizontal cursor sets the level of transparency.", - "Le fuseau horaire est utile au bon référencement": "The time zone is useful for the right SEO", - "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "The accessory menu is aligned to the right of the menu bar, it is a place reserved for flags and the login button.", - "Le menu horizontal intégral": "The full horizontal menu", - "Le module %s a été %s": "The module %s was %s", - "Le module %s de la page %s a été supprimé": "The %s module of the %s has been deleted", - "Le module %s est désinstallé, il reste peut-être des données dans %s": "The module %s is uninstalled, there may be data in %s", - "Le sous-menu de la page parente": "The parent page submenu", - "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Hovering over a login screen icon temporarily displays the password", - "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "The short title is displayed in the menus. It can be identical to the page title.", - "Les langues sélectionnées sont identiques": "The selected languages ​​are identical", - "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "Legal notices are compulsory in France. An option of the footer adds a discrete link to this page.", - "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "The changes you have made may not be recorded.", - "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "The font sizes of the banner, menu and footer are proportional to this size.", - "Lettres": "Letters", - "Libre": "Libre", - "Licence :": "Licence:", - "Lien de connexion": "Login link", - "Lien page des mentions légales.": "Link to legal notices.", - "Liens": "Links", - "Limitation des tentatives": "Limitation of attempts", - "Limitée au site": "Limited to the site", - "Linkedin": "Linkedin", - "Liste noire": "Blacklist", - "Liste noire réinitialisée avec succès": "Blacklist successfully reset", - "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "During an automatic update, keeps the htaccess file of the site root.", - "Léger": "Light", - "Légère": "Light", - "Maigre": "Lean", - "Maintenance": "Maintenance", - "Majuscule à chaque mot": "Capitalize each word", - "Majuscules": "Capital letters", - "Marges verticales": "Vertical margins", - "Masquer la bannière en écran réduit": "Hide the banner in reduced screen", - "Masquer la page et les pages enfants dans le menu d'une barre latérale": "Hide the page and children's pages in the menu of a sidebar", - "Masquer les pages enfants dans le menu horizontal": "Hide children's pages in the horizontal menu", - "Membre": "Member", - "Membre avec droit de partage": "Member with sharing rights", - "Membre simple": "Simple member", - "Mentions légales": "Legal notice", - "Menu": "Menu", - "Menu accessoire": "Accessory menu", - "Menu burger dans écran réduit": "Burger menu in reduced screen", - "Menu standard": "Standard menu", - "Message d'acceptation des Cookies": "Cookie acceptance message", - "Message de consentement aux cookies": "Cookie consent message", - "Mettre à jour": "Update", - "Mettre à jour le module orphelin": "Update the orphan module", - "Minuscules": "Tiny", - "Mise en forme des titres": "Formatting of titles", - "Mise en forme du texte": "Text formatting", - "Mise en forme du titre": "Title formatting", - "Mise en page": "Layout", - "Mise à jour": "Update", - "Mise à jour automatisée": "Automated update", - "Mise à jour terminée avec succès.": "Successful update completed.", - "Modifications enregistrées": "Modifications recorded", - "Module": "Module", - "Module de la page": "Page module", - "Modules": "Modules", - "Modules configurés": "Configured modules", - "Modules installés": "Installed modules", - "Modules orphelins": "Orphaned modules", - "Mot de passe": "Password", - "Mot de passe oublié": "Forgot password", - "Mot de passe perdu": "Lost password", - "Motorisé par": "Powered by", - "Moyen": "Medium", - "Moyenne": "Medium", - "Moyenne (200%)": "Medium (200%)", - "Moyenne (200px)": "Medium (200px)", - "Méta-description": "Meta-description", - "Méta-titre": "Meta title", - "Ne pas afficher": "Do not display", - "Ne pas charger l'exemple de site (utilisateurs avancés)": "Do not load the example of a site (advanced users)", - "Ne pas répéter": "Do not repeat", - "Ne pas saisir les balises": "Don't type tags", - "News": "News", - "Niveau 1 (192.168.12.x)": "Level 1 (192.168.12.x)", - "Niveau 2 (192.168.x.x)": "Level 2 (192.168.x.x)", - "Niveau 3 (192.x.x.x)": "Level 3 (192.x.x.x)", - "Nom": "Last Name", - "Nom Prénom": "Last name First Name", - "Nom du profil": "Profile Name", - "Nom utilisateur": "Username", - "Non": "No", - "Non tronquée": "Untruncated", - "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Our site is currently under maintenance. Sorry for the inconvenience and we do our best to be back soon.", - "Nouveau contenu localisé": "New localized content", - "Nouveau mot de passe": "New Password", - "Nouveau mot de passe enregistré": "New password recorded", - "Nouvel utilisateur": "New user", - "Nouvelle page créée": "New page created", - "Nouvelle page ou barre latérale": "New page or sidebar", - "Obligatoire": "Required", - "Ombre": "Shadow", - "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "Active option in disconnected mode only, children's pages are visible and accessible.", - "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Recommended option to secure the connection. Applies to all the Captchas of the site. Simple Captcha is limited to an addition of numbers from 0 to 10. Complex Captcha uses four numbers from 0 to 20. Recommended activation.", - "Options": "Options", - "Options avancées": "Advanced options", - "Origine": "Origin", - "Oui": "Yes", - "Page": "Page", - "Page 2/3 - barre 1/3": "Page 2/3 - Sidebar 1/3", - "Page 3/4 - barre 1/4": "Page 3/4 - Sidebar 1/4", - "Page associée": "Associated page", - "Page de recherche": "Search page", - "Page dupliquée": "Duplicate page", - "Page et module dupliqués": "Duplicated page and module", - "Page inexistante, erreur 404": "Non-existent page, error 404", - "Page non cliquable": "Non-clickable page", - "Page parent": "Parent page", - "Page standard": "Standard page", - "Page supprimée": "Deleted page", - "Pages dans le menu": "Pages in the menu", - "Pages du site": "Site pages", - "Pages et les modules de": "Pages and modules of", - "Pages orphelines": "Orphan pages", - "Papier peint": "Wallpaper", - "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "By default the menu is displayed after the content of the page. To position it at a specific location, insert [MENU] into the content of the page.", - "Paramètres": "Settings", - "Paramètres de la localisation": "Location parameters", - "Paramètres de la sauvegarde": "Backup settings", - "Paramètres du profil": "Profile Settings", - "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "Settings to use when your host does not offer the mail sending feature.", - "Pas de marge au-dessus et en dessous du site": "No margin above and below the site", - "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Remember to delete your browser's cache if the favicon does not change.", - "Permission": "Permission", - "Permission et référencement": "Permission and SEO", - "Permissions": "Permissions", - "Permissions sur les dossiers": "Folder Permissions", - "Permissions sur les fichiers": "File Permissions", - "Permissions sur les pages": "Page Permissions", - "Petite": "Small", - "Petite (150px)": "Small (150px)", - "Petite (180%)": "Small (180%)", - "Pied de page": "Footer", - "Pinterest": "Pinterest", - "Plan du site": "Sitemap", - "Police des titres": "Titles font", - "Police du texte": "Text font", - "Port SMTP": "SMTP port", - "Port du proxy": "Proxy port", - "Position": "Position", - "Position du module": "Position of the module", - "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "To define the page as a sidebar, choose the option from the list.", - "Presse Papier": "Clipboard", - "Presse papier": "Clipboard", - "Profils des groupes": "Group Profiles", - "Proportionnelle à la taille définie dans le site.": "Proportional to the size defined in the site.", - "Prénom": "First name", - "Prénom Nom": "First name Name", - "Préparation de la mise à jour": "Preparation of the update", - "Préserver le fichier htaccess racine": "Preserve the root htaccess file", - "Préserver les comptes des utilisateurs déjà installés": "Preserve user accounts already installed", - "Prévenir l'utilisateur par mail": "Prevent the user by email", - "Prévisualiser": "Preview", - "Pseudo": "Pseudo", - "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "Rank 9 > Rank 1. The profile of Rank 1 is not editable.", - "Ratio": "Ratio", - "Ratio :": "Ratio:", - "Recherche": "Search", - "Recherche dans le site": "Search on the site", - "Rechercher": "Search", - "Rechercher une mise à jour en ligne": "Search for an online update", - "Redirection": "Redirection", - "Redirection vers la connexion": "Redirection to connection", - "Renommer": "Rename", - "Renseignez les champs ci-dessous pour finaliser l'installation.": "Fill in the fields below to finalize the installation.", - "Responsive (contain)": "Responsive (contain)", - "Responsive (cover)": "Responsive (cover)", - "Restauration des bases de données absentes": "Restoring missing databases", - "Restauration effectuée avec succès": "Restoration successfully completed", - "Restaurer": "Restore", - "Restaurer les données du site": "Restore site data", - "Rester connecté sur ce navigateur": "Stay connected on this browser", - "Retour": "Return", - "Rien à importer, erreur de format ou fichier incorrect": "Nothing to import, format error or incorrect file", - "Rédacteur": "Editor", - "Référencement": "SEO", - "Réinitialisation du mot de passe": "Reset password", - "Réinitialiser avec le thème par défaut": "Reset with the default theme", - "Réinitialiser la feuille de style": "Reset the style sheet", - "Réinitialiser la liste": "Reset the list", - "Réinitialiser le journal": "Reset the log file", - "Réinstaller": "Reinstall", - "Répétition": "Repetition", - "Réseau": "Network", - "Réseaux sociaux": "Social networks", - "S'ouvre dans un nouvel onglet": "Opens in a new tab", - "SMTP": "SMTP", - "SMTP personnalisé": "Custom SMTP", - "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "Enter the key, then validate the form before clicking on the generation button", - "Saisissez le Titre de gestion des cookies.": "Enter the title of the cookie management window.", - "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "Enter the message for cookies set by Zwiicms, necessary for operation and which do not require consent.", - "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "Enter the text of the link to the legal notices, the page must be defined in the site configuration.", - "Saisissez votre ID : https://pinterest.com/[ID].": "Enter your ID: https://pinterest.com/[ID].", - "Saisissez votre ID : https://twitter.com/[ID].": "Enter your ID: https://twitter.com/[ID].", - "Saisissez votre ID : https://www.facebook.com/[ID].": "Enter your ID: https://www.facebook.com/).", - "Saisissez votre ID : https://www.instagram.com/[ID].": "Enter your ID: https://www.instagram.com/ [ID].", - "Saisissez votre ID Github : https://github.com/[ID].": "Enter your GitHub ID: https://github.com/[ID].", - "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "Enter your LinkedIn ID: https://fr.linkedin.com/in/[ID].", - "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "Enter your user ID: https://www.youtube.com/user/ [ID].", - "Sauvegarde": "Backup", - "Sauvegarde automatique quotidienne du site": "Daily automatic backup of the site", - "Sauvegarde du thème dans le": "Backup of the theme in the", - "Sauvegarde générée avec succès": "Successfully generated backup.", - "Sauvegarder": "Backup", - "Sauvegarder et télécharger le module": "Save and download the module", - "Sauvegarder le module dans le gestionnaire de fichiers": "Save the module in the file manager", - "Sauvegarder les données du module dans le gestionnaire de fichiers": "Save module data in the file manager", - "Sauvegarder les données du site": "Save site data", - "Script dans body": "Script in body", - "Script dans head": "Script in head", - "Scripts externes": "External scripts", - "Se déconnecter": "Logout", - "Service en ligne inaccessible": "Inaccessible online service", - "Seul un administrateur peut se connecter lors d'une maintenance": "Only an administrator can login during maintenance", - "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "If the content of the file manager is very large, it is better to copy by FTP.", - "Signature": "Signature", - "Site": "Site", - "Site en maintenance": "Site under maintenance", - "Size": "Size", - "Source": "Source", - "Standard": "Standard", - "Style": "Style", - "Suppression interdite": "Deletion prohibited", - "Suppression interdite, page active dans la configuration de la langue du site": "Deletion not allowed, page is active in the site's language configuration", - "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "Deletes the question mark in the URLs, the option is unavailable with other web servers", - "Supprimer": "Delete", - "Supprimer la page": "Delete the page", - "Supprimer le module": "Delete the module", - "Supprimer toutes les sauvegardes automatiques ?": "Remove all automatic backups?", - "Sur l'axe horizontal": "On the horizontal axis", - "Sur l'axe vertical": "On the vertical axis", - "Sur les deux axes": "On both axes", - "Sécurité": "Security", - "Sécurité de la connexion": "Connection security", - "Sécurité désactivée": "Security disabled", - "Sélectionner un fichier": "Select a file", - "Sélectionnez au moins un contenu à afficher": "Select at least one content to display", - "Sélectionnez la langue à copier vers une langue cible": "Select the language to copy to a target language", - "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Select an icon adapted to a dark theme.
Remember to delete your browser's cache if the favicon does not change.", - "Sélectionnez une image ou une icône de petite dimension": "Select a small image or icon", - "Sélectionnez une langue": "Select a language", - "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "Select a page containing the 'research' module. An option of the footer adds a discrete link to this page.", - "Sélectionnez une page pour activer": "Select a page to activate", - "Séparateur": "Separator", - "Taille": "Size", - "Text": "Text", - "Texte": "Text", - "Thème": "Theme", - "Thème de l'administration": "Administration theme", - "Thème du site": "Site theme", - "Thème importé": "Imported theme", - "Thèmes": "Themes", - "Titre": "Title", - "Titre court": "Short title", - "Titre masqué": "Masked title", - "Titre masqué dans la page": "Masked hidden in the page", - "Titres": "Titles", - "Tous les dossiers": "All Folders", - "Tous les droits d'édition des contenus": "All content editing rights", - "Tout Effacer": "Clear All", - "Traduction supprimée": "Translation deleted", - "Très grande": "Very large", - "Très grande (240%)": "Very large (240%)", - "Très grande (400px)": "Very large (400px)", - "Très important": "Very important", - "Très importante": "Very important", - "Très léger": "Very light", - "Très légère": "Very light", - "Très petite": "Very small", - "Très petite (100px) ": "Very small (100px)", - "Très petite (160%)": "Very small (160%)", - "Twitter": "Twitter", - "Type de captcha": "Type of Captcha", - "Type de proxy": "Proxy type", - "Téléchargement et validation de l'archive": "Download and validation of the archive", - "Télécharger": "Download", - "Télécharger la liste": "Download list", - "Télécharger le journal": "Download logs", - "Télécharger le module dans le gestionnaire de fichiers": "Download the module in the file manager", - "Téléverser": "Upload", - "URL incorrecte": "Incorrect url", - "Un mail a été envoyé pour confirmer la réinitialisation": "An email was sent to confirm the reset", - "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "An archive of the file /site/data is kept for 30 days. Recommended activation", - "Une erreur est survenue lors de l'étape :": "An error occurred during the stage:", - "Url du fichier de fonte": "Font file URL", - "Utilisateur inexistant": "Non-existent user", - "Utilisateur supprimé": "User deleted", - "Utilisateurs": "Users", - "Valider": "Submit", - "Version": "Version", - "Version n°": "Version n°", - "Vider dossier sauvegardes auto": "Empty auto backup files", - "Visiteur": "Visitor", - "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "You are not authorised to view this page (error 403)", - "Youtube": "Youtube", - "ZwiiCMS - Installation": "ZwiiCMS - Installation", - "actualisé": "updated", - "favicon.ico": "favicon.ico", - "faviconDark.ico": "favicondark.ico", - "gestionnaire de fichiers": "file manager", - "installé": "installed", - "jour": "day", - "jours": "days", - "sauvegardé avec succès": "successfully saved", - "vers": "to", - "À droite": "Right", - "À gauche": "Left", - "À l'emplacement du mot clé [MODULE] dans la page": "At the location of the keyword [MODULE] on the page", - "Échec de l'écriture, vérifiez les permissions": "Failure of writing, check permissions", - "Échecs": "Fail", - "Éditer": "Edit", - "Éditer la page": "Edit the page", - "Éditer les dialogues": "Edit dialogs", - "Éditer une catégorie": "Edit category", - "Éditeur": "Editor", - "Éditeur CSS": "CSS editor", - "Éditeur JS": "JS editor", - "Éditeur de script %s": "Script editor %s", - "Éditeur de script dans Body": "Script editor in Body", - "Éditeur de script dans Head": "Script editor in Head", - "Éditeur simple": "Simple editor", - "Édition des pages": "Page editing", - "Édition du profil %s": "Edit Profile %s", - "Éléments": "Items", - "Étendu sur la page": "Spread across the page", - "Étiquettes des pages spéciales": "Special pages labels", - "Dimensions minimales": "Minimum dimensions", - "Taille maximale du fichier": "Maximum file size", - "5 Mo pour les images JPEG": "5 MB for JPEG images", - "1 Mo pour les images PNG": "1 MB for PNG images", - "Poids": "Weight", - "Supprimer ce profil ?": "Delete this profile?", - "Masqué": "Hidden", - "Haut de page": "Top of Page", - "Bas de page": "Bottom of Page", - "Petit triangle": "Small Triangle", - "Grand triangle": "Large Triangle", - "Flèche": "Arrow", - "Modèle": "Template", - "Bouton de navigation droit": "Right Navigation Button", - "Bouton de navigation gauche": "Left Navigation Button", - "Groupes / Profils": "Groups / Profiles", - "Prénom commence par": "First Name starts with", - "Nom commence par": "Last Name starts with", - "Impossible de réinitialiser le mot de passe de ce compte !": "Impossible to reset this account password!", - "Test de la messagerie du site": "Site messaging test", - "Il semblerait que votre messagerie fonctionne correctement !": "It seems that your messaging is working correctly!", - "Message de test envoyé avec succès": "Test message sent successfully", - "Message non envoyé": "Message not sent", - "Validation par clé ⚠️": "Key-based validation ⚠️", - "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "The connection is confirmed using a key sent via messaging. From the selected group and the higher groups.", - "Envoi du message d'authentification": "Sending authentication message", - "Connexion réussie": "Login successful", - "Erreur de mot de passe": "Password error", - "Erreur de captcha": "Captcha error" -} \ No newline at end of file From 6d595245174454fcd64de73c9e8c877514758ae3 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Fri, 20 Dec 2024 17:29:59 +0100 Subject: [PATCH 06/21] Supprimer site/i18n/es.json --- site/i18n/es.json | 703 ---------------------------------------------- 1 file changed, 703 deletions(-) delete mode 100644 site/i18n/es.json diff --git a/site/i18n/es.json b/site/i18n/es.json deleted file mode 100644 index bef573e3..00000000 --- a/site/i18n/es.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "'No mostrar' crea una página huérfana a la que no se puede acceder a través de los menús.", - "'Sauvegarder et télécharger les données du module": "Guardar y descargar de los datos del módulo", - "1 jour": "1 diaz", - "1/4 : Préparation...": "1/4: Preparando...", - "10 minutes": "10 minutos", - "10 tentatives": "6 intentos", - "14 jours": "14 dias", - "15 minutes": "15 minutos", - "2 jours": "2 dias", - "2/4 : Téléchargement...": "2/4: Descargando...", - "3 tentatives": "3 intentos", - "3/4 : Installation...": "3/4: Instalando...", - "4 jours": "4 días", - "4/4 : Configuration...": "4/4: Configuración...", - "5 minutes": "5 minutos", - "5 tentatives": "5 intentos", - "7 jours": "7 días", - "Accueil": "Inicio", - "Accède au site": "Acceso al sitio", - "Accède aux pages réservées": "Acceso a páginas restringidas", - "Accède aux pages réservées et à un dossier partagé": "Acceso a páginas restringidas y una carpeta compartida", - "Accès bloqué %d minutes": "Acceso bloqueado minutos", - "Accès désactivé": "Acceso desactivado", - "Accès interdit, erreur 403": "Acceso denegado, error 403", - "Action interdite": "Acción no permitida", - "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "Activación obligatoria según las leyes francesas a menos que utilice su propio sistema de consentimiento.", - "Activer": "Activar", - "Activer la journalisation": "Habilitar registro", - "Actualiser": "Actualizar", - "Adaptation": "Adaptación", - "Administrateur": "Administrador", - "Administration": "Administración", - "Adresse SMTP": "Dirección SMTP", - "Adresse du proxy": "Dirección proxy", - "Adresse électronique": "Correo electrónico", - "Affectation": "Asignación", - "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "Mostrar el nombre de la página principal seguido del nombre de la página, el título no debe ocultarse.", - "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 cierre de sesión para miembros regulares conectados", - "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "Para garantizar el correcto funcionamiento de Zwii, no cierre esta página antes de que se complete la operación", - "Aide": "Ayuda", - "Ajouter": "Agregar", - "Ajouter un profil": "Agregar un perfil", - "Ajouter un utilisateur": "Agregar usuario", - "Ajouter une fonte": "Añadir tipografía", - "Alignement": "Alineación de contenido", - "Aligner la bannière avec le contenu": "Alinear el banner con el contenido", - "Ancien mot de passe": "Antigua contraseña", - "Anonymat des adresses IP": "Anonimato de la dirección IP", - "Apache URL intelligent": "URL inteligente de Apache", - "Apache URL intelligentes": "URL inteligentes de Apache", - "Apparence": "Apariencia", - "Appliquer": "Aplicar", - "Approuver un commentaire": "Aprobar comentarios", - "Après": "Después", - "Après la bannière": "Después del banner", - "Après le contenu de la page": "Después del contenido de la página", - "Archive": "Archivo", - "Archive ZIP": "Archivo ZIP", - "Archive copiée dans le dossier Modules du gestionnaire de fichier": "Archivo copiado a la carpeta Módulos del administrador de archivos", - "Archive de thème invalide": "Archivo de tema no válido", - "Archive invalide": "Archivo no válido", - "Archive invalide, l'écriture dans le dossier core est interdite": "Archivo no válido, está prohibido escribir en la carpeta core", - "Archive invalide, le descripteur est absent": "Archivo no válido, falta el descriptor", - "Archive invalide, le fichier de classe est absent": "Archivo no válido, falta el archivo de clase", - "Archive invalide, les dossiers ne correspondent pas au descripteur": "Archivo no válido, las carpetas no coinciden con el descriptor", - "Archive non spécifiée ou introuvable": "Archivo no especificado o no encontrado", - "Archive à restaurer": "Archivo para restaurar", - "Arrière plan": "Fondo", - "Arrière plan des blocs": "Fondo de bloques", - "Arrière plan des champs": "Fondo de zona", - "Arrondi des angles": "Redondeo de ángulos", - "Au centre": "En el centro", - "Au début": "Al principio", - "Au milieu au centre": "En el medio en el centro", - "Au milieu à droite": "En el medio derecho", - "Au milieu à gauche": "En el medio a la izquierda", - "Au-dessus du site": "Por encima del sitio", - "Aucun": "Ninguno", - "Aucun dossier": "Sin carpeta", - "Aucun fichier journal à télécharger": "No hay archivos de registro para descargar", - "Aucun journal à effacer": "No hay registros para borrar", - "Aucun menu": "Ningún menú", - "Aucune": "Ninguna", - "Aucune liste noire à effacer": "No hay lista negra para borrar", - "Aucune liste noire à télécharger": "No hay lista negra para descargar", - "Auteur :": "Autor", - "Authentification": "Autenticación", - "Automatique": "Automáquica", - "Autoriser les robots à référencer le site": "Permitir que los robots hagan referencia al sitio", - "Autorisé": "Autorizado", - "Avant la bannière": "Antes del banner", - "Avant le contenu de la page": "Antes del contenido de la página", - "Background": "Fondo", - "Banni": "Prohibición", - "Bannière": "Banner", - "Bannière cliquable": "Banner", - "Barre 1/3 - page 2/3": "Barra 1/3 - página 2/3", - "Barre 1/4 - page 1/2 - barre 1/4": "Barra 1/4 - página 1/2 - Barra 1/4", - "Barre 1/4 - page 3/4": "Barra 1/4 - página 3/4", - "Barre 2/12 - page 7/12 - barre 3/12": "Barra 2/12 - página 7/12 - Barra 3/12", - "Barre 3/12 - page 7/12 - barre 2/12": "Barra 3/12 - página 7/12 - Barra 2/12", - "Barre de membre": "Barra de miembro", - "Barre latérale": "Barra lateral", - "Barre latérale droite :": "Barra lateral derecha:", - "Barre latérale gauche :": "Barra lateral izquierda:", - "Barres latérales": "Barras laterales", - "Bienvenue %s %s": "Bienvenido %s %s", - "Blocage après échecs": "Bloquear después de fallar", - "Blog": "Blog", - "Bords arrondis": "Bordes redondeados", - "Bordure des blocs": "Borde de bloques", - "Bordure des champs": "Borde de zona", - "Bouton Aide": "Boton de ayuda", - "Bouton Standard": "Botón estándar", - "Bouton de validation": "Botón Validación", - "Bouton effacement": "Botón Eliminar", - "Bouton retour": "Botón de retroceso", - "Bouton standard": "Botón estándar", - "Bouton validation": "Botón de validación", - "Boutons": "Botones", - "Caché": "Oculto", - "Cachée": "Oculto", - "Captcha complexe": "Captcha complejo", - "Captcha à la connexion": "Captcha al iniciar sesión", - "Captcha, identifiant ou mot de passe incorrects": "Captcha, nombre de usuario o contraseña incorrecta", - "Capture d'écran Open Graph": "Captura de pantalla de Open Graph", - "Capture d'écran générée avec succès": "Captura de pantalla generada con éxito", - "Casse": "Roto", - "Catalogue": "Catálogo", - "Catégorie": "Categoría", - "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "Este miembro podrá cargar o descargar archivos en la carpeta 'compartir' y sus subcarpetas", - "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "Esta página no debería aparecer en el árbol del menú. Crear una página huérfana.", - "Cette redirection ne concerne que les pages d'administration du site.": "Esta redirección solo afecta a las páginas de administración del sitio.", - "Chaîne Youtube": "Canal de Youtube", - "Chiffres": "Cifras", - "Cible": "Objetivo", - "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "Haga clic en un área para acceder a sus opciones de personalización.", - "Commentaire": "Comentario", - "Complète": "sin truncar", - "Compte administrateur": "Cuenta de administrador", - "Compte de l'utilisateur": "Cuenta de usuario", - "Compte verrouillé": "Cuenta bloqueada", - "Configuration": "Configuración", - "Configuration du module": "Configuración del módulo", - "Configurer": "Configurar", - "Configurer mon compte": "Configurar mi cuenta", - "Confirmation": "Confirmación", - "Confirmer la suppression de cet utilisateur": "Confirmar eliminación de este usuario", - "Confirmer la dissociation du module de cette page": "Confirmar desvincular módulo de esta página", - "Confirmer la désinstallation du module": "Confirmar la desinstalación del módulo", - "Confirmer la suppression de cet utilisateur": "Confirme la eliminación de este usuario", - "Confirmer la suppression de cette langue": "Confirmar eliminación de este idioma", - "Confirmer la suppression de la page": "Confirmar la eliminación de la página", - "Confirmer la suppression des données du module": "Confirmar la eliminación de datos del módulo", - "Confirmez-vous la suppression de cette page ?": "¿Confirma la eliminación de esta página?", - "Connexion": "Conexión", - "Consulter l'aide en ligne": "Consultar la ayuda en línea", - "Contents": "Contenido", - "Contenu": "Contenido", - "Contenu HTML": "Contenido HTML", - "Contenu avancé": "Contenido avanzado", - "Contenu du menu vertical": "Contenido del menú vertical", - "Contrôle total": "Control total", - "Cookies": "Cookies", - "Cookies Zwii": "Cookies Zwii", - "Copie de contenus localisés": "Copia de contenidos localizados", - "Copie de sites inter-langues": "Copia del sitio multilingües", - "Copie des traductions rédigées": "Copia de traducciones redactadas", - "Copie terminée avec des erreurs": "Copia completada con errores", - "Copie terminée avec succès": "Copia completada con éxito", - "Copier": "Copiar", - "Copier sauvegardes auto": "Copiar guardados automáticos", - "Couleur de fond automatique": "Color de fondo automático", - "Couleur icône haut de page": "Color del icono superior de la página", - "Couleur texte page active": "Color del texto de página activa", - "Couleur unie ou papier-peint": "Color unido o papel tapiz", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "Color visible en ausencia de una imagen.
El control deslizante horizontal ajusta el nivel de transparencia.", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "Color visible en ausencia de una imagen.
El control deslizante horizontal ajusta el nivel de transparencia. El color del texto es automático.", - "Couleurs": "Colores", - "Dans le site": "En el sitio", - "Dans quelle langue utiliserez-vous Zwii ?": "¿En qué idioma usará Zwii?", - "Date": "fecha", - "Description": "Descripción del sitio", - "Disponible si le consentement des cookies est activé.": "Disponible si se ha otorgado el consentimiento de las cookies.", - "Disposition": "Arreglo", - "Données %s copiées vers %s": "Datos %s copiados hacia %s", - "Données des modules": "Datos de los módulos", - "Données importées": "Datos importados", - "Dossier": "Carpeta", - "Droits sur les dossiers": "Derechos de las carpetas", - "Droits sur les fichiers": "Derechos de los archivos", - "Dupliquer": "Duplicar", - "Dupliquer la page": "Duplicar la página", - "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "Desconecte sesiones abiertas previamente en otros navegadores o dispositivos. Activación recomendada.", - "Déconnecter": "Desconectar", - "Déconnexion !": "¡Cerrar sesión!", - "Déconnexion automatique": "Cierre de sesión automático", - "Définir par défaut": "Establecer como predeterminado", - "Dévoiler le mot de passe": "Revelar la contraseña", - "Effacer": "Borrar", - "Effacer la page": "Borrar página", - "Effacer tous les commentaires": "Borrar todos los comentarios", - "Effacer toutes les statistiques": "Borrar todas las estadísticas", - "Effacer un commentaire": "Borrar el comentario", - "Effacer une catégorie": "Borrar categoría", - "Emplacement :": "Ubicación", - "Emplacement dans le menu": "Ubicación en el menú", - "En bas au centre": "Abajo en el centro", - "En bas à droite": "Abajo a la derecha", - "En bas à gauche": "Abajo a la izquierda", - "En cas de changement de module, les données du module précédent seront supprimées.": "Al cambiar de módulo se borrarán los datos del módulo anterior.", - "En dessous du site": "Debajo del sitio", - "En haut au centre": "Cubra en el centro", - "En haut à droite": "Arriba a la derecha", - "En haut à gauche": "Arriba a la izquierda", - "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "En posición libre agregue el módulo colocando [MODULE] en la ubicación deseada en su página.", - "En-dehors du site": "Fuera del sitio", - "Enregistrer": "Registrar", - "Envoyer un message de confirmation": "Enviar mensaje de confirmación", - "Erreur : sauvegarde non générée !": "Error: copia de seguridad no generada!", - "Erreur d'URL": "Error de URL", - "Erreur d'extraction, vérifiez les permissions": "Error de extracción, verifique los permisos", - "Erreur de copie": "Error de copia", - "Erreur de copie, vérifiez les permissions": "error de copia, verifique las permisiones", - "Erreur de lecture, vérifiez les permissions": "Error de lectura, verifique los permisos", - "Erreur inconnue": "error desconocido", - "Erreur inconnue, le module n'est pas installé": "Error desconocido, el módulo no está instalado", - "Export CSV": "Exportar CSV", - "Expéditeur": "Remitente", - "Extension": "Extensión", - "Extraire": "Extraer", - "Facebook": "Facebook", - "Famille": "Vínculo", - "Favicon thème sombre": "favicon de tema oscuro", - "Feuille de style spécifique à la page.": "Hoja de estilo específica de la página.", - "Fichiers": "Archivos", - "Fichiers effacés": "archivos borrados", - "Fil d'Ariane dans le titre": "Migas de pan en el título", - "Fond du sous-menu": "Fondo del submenú", - "FontId": "ID de fuente", - "Fonte": "Fuente", - "Fonte actualisée": "fuente actualizada", - "Fonte créée": "Fuente creada", - "Fonte en ligne": "Tipografía en línea", - "Fonte installée": "Tipografía instalada", - "Fonte non créée, ressource absente !": "¡Fuente no creada, por falta recurso!", - "Fonte supprimée": "Fuente eliminada", - "Fontes": "Tipografias", - "Format incorrect": "Formato incorrecto", - "Formulaire": "Formulario", - "Fréquence de recherche": "Frecuencia de búsqueda", - "Fuseau horaire": "Zona horaria", - "Gabarits de page - Barre latérale": "Patrón de página - Barra lateral", - "Gestion": "Administrar", - "Gestion des modules": "Gestión de módulos", - "Gestion des thèmes": "Gestión de temas", - "Gestionnaire de fichiers": "Administrador de archivos", - "Github": "Github", - "Grande": "Grande", - "Grande (220%)": "Grande (220%)", - "Grande (300px)": "Grande (300px)", - "Gras": "Negrita", - "Groupe": "Grupo", - "Groupe associé": "Grupo asociado", - "Groupe requis pour accéder à la page :": "Grupo necesario para acceder a la página:", - "Groupes": "Grupos", - "Générer sitemap.xml et robots.txt": "Generar sitemap.xml y robots.txt", - "Générer une capture Open Graph": "Generar una captura de Open Graph", - "Gérer les catégories": "Gestionar categorías", - "Gérer les commentaires": "Administrar comentarios", - "Gérer les données": "Administrar datos", - "Hauteur": "Altura", - "Hauteur de l'image": "Altura de la imagen", - "Hauteur de l'image sélectionnée": "Altura de la imagen seleccionada", - "Hauteur maximale": "Altura máxima", - "ID de la chaîne : https://www.youtube.com/channel/[ID].": "ID del canal: https://www.youtube.com/channel/[ID].", - "Icône": "Icono", - "Icône avec bulle de texte": "Icono con burbuja de texto", - "Icône haut de page, couleur arrière-plan": "Icono superior de la página, color de fondo", - "Identifiant": "Identificación", - "Identifiant (sans espace ni majuscule)": "Identificación (sin espacios ni mayúsculas)", - "Identité": "Identificación", - "Identité de la fonte": "Identidad de tipografía", - "Identité du site": "identidad del sitio", - "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "Aparece en la barra de título y se comparte en redes sociales.", - "Image": "Imagen", - "Image étirée (100% 100%)": "Imagen estirada (100% 100%)", - "Important": "Importante", - "Importante": "Importante", - "Importation d'utilisateurs": "Importación de usuarios", - "Importation de fichier plat CSV": "Importar archivo plano CSV", - "Importation effectuée": "Importación realizada", - "Importer": "Importar", - "Importer dans": "Importar a", - "Importer des utilisateurs en masse": "Importar usuarios de forma masiva", - "Impossible d'ouvrir l'archive": "No se puede abrir el archivo", - "Impossible de modifier votre propre groupe.": "No puede editar su propio grupo.", - "Impossible de soumettre le formulaire, car il contient des erreurs": "No se puede enviar el formulario porque contiene errores", - "Impossible de supprimer une page contenant des pages enfants": "No se puede eliminar una página que contiene páginas secundarias", - "Impossible de supprimer votre propre compte": "No puede eliminar su propia cuenta", - "Inclure le contenu du gestionnaire de fichiers": "Incluir el contenido del administrador de archivos", - "Incorrect": "Incorrecto", - "Informations": "Información", - "Instagram": "Instagram", - "Installation terminée": "instalación completa", - "Installer": "Instalar", - "Installer depuis le catalogue en ligne": "Instalar desde el archivo en línea", - "Installer depuis une archive": "Instalar desde un archivo", - "Installer les données d'un module": "Instalar datos de un módulo", - "Installer ou mettre à jour un module téléchargé": "Instalar o actualizar un módulo descargado", - "Installer un module": "Instalar un módulo", - "Installer un thème archivé (site ou administration)": "Instalar un tema archivado (sitio o administración)", - "Instructions JS ou jquery spécifiques à la page.": "Instrucciones JS o jquery específicas de la página.", - "Interface": "Idiomas interfaz", - "Jeton invalide": "Simbolo no valido", - "Journal réinitialisé avec succès": "Registro reiniciado con éxito", - "Journalisation": "Inicio sesión", - "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "El archivo ha sido depositado en el administrador de archivos. No se aceptan archivos inferiores a la versión 9.", - "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "El identificador se define al crear la cuenta, no se puede modificar.", - "La carte du site a été mise à jour": "El mapa del sitio ha sido actualizado.", - "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "¡La copia de seguridad del archivo htaccess no ha sido restaurada!", - "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "La descripción de una página participa en su referenciación, cada página debe tener una descripción diferente.", - "La page %s est ouverte par l'utilisateur %s": "La página %s ha sido abierta por el usuario %s", - "La page demandée n'existe pas ou est introuvable (erreur 404)": "La página solicitada no existe o no se encuentra (error 404).", - "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "La página se muestra en un menú horizontal pero no en el menú vertical de una barra lateral.", - "La première page que vos visiteurs verront.": "La primera página que verán tus visitantes.", - "La règlementation française impose un anonymat de niveau 2": "La normativa francesa impone el anonimato de nivel 2", - "La réécriture d'URL n'a pas été restaurée !": "¡La reescritura de URL no ha sido restaurada!", - "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "La copia de seguridad de los archivos puede tardar un poco. ¿Desea continuar?", - "La suppression a échoué": "Eliminación fallida", - "La version installée est plus récente": "La versión instalada es más nueva.", - "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "La comprobación es diaria. Opción deshabilitada si la configuración del servidor no lo permite.", - "Langue de l'administration": "Idioma de la administración", - "Langue du site par défaut": "Idioma predeterminado del sitio", - "Langue par défaut": "Idioma predeterminado", - "Langues": "Idiomas", - "Langues disponibles": "Idiomas Disponibles", - "Langues installées": "Idiomas instalados", - "Largeur": "Anchura o Ancho", - "Largeur de l'image": "Ancho de la imagen", - "Largeur du site": "Ancho del sitio", - "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "El control deslizante horizontal establece el nivel de transparencia, colóquelo completamente hacia la izquierda para obtener un resaltado invisible.", - "Le curseur horizontal règle le niveau de transparence.": "El cursor horizontal regula el nivel de transparencia.", - "Le fuseau horaire est utile au bon référencement": "La zona horaria es útil para una buena referencia", - "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "El menù accesorio está alineado a la derecha de la barra de menú, es un marcador de posición para las banderas y el botón de inicio de sesión", - "Le menu horizontal intégral": "El menú horizontal completo", - "Le module %s a été %s": "El módulo %s ha sido %s", - "Le module %s de la page %s a été supprimé": "Se eliminó el módulo %s de la página %s", - "Le module %s est désinstallé, il reste peut-être des données dans %s": "El módulo %s está desinstalado, es posible que queden datos en %s", - "Le sous-menu de la page parente": "El submenú de la página principal", - "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "Al pasar el cursor sobre un ícono de la pantalla de inicio de sesión, se muestra temporalmente la contraseña", - "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "El título corto se muestra en los menús. Puede ser el mismo que el título de la página.", - "Les langues sélectionnées sont identiques": "Los idiomas seleccionados son idénticos", - "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "Los avisos legales son obligatorios en Francia. Una opción en el pie de página agrega un enlace discreto a esta página.", - "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "Es posible que no se guarden los cambios realizados.", - "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "Los tamaños de fuente del banner, menú y pie de página son proporcionales a este tamaño.", - "Lettres": "Letras", - "Libre": "Libre", - "Licence :": "Licencia", - "Lien de connexion": "Enlace de inicio de sesión", - "Lien page des mentions légales.": "Enlace página aviso legal.", - "Liens": "Enlaces", - "Limitation des tentatives": "Limitación de intentos", - "Limitée au site": "Limitado al sitio", - "Linkedin": "Linkedin", - "Liste noire": "Lista negra", - "Liste noire réinitialisée avec succès": "Lista negra restablecida con éxito", - "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "Durante una actualización automática, mantenga el archivo htaccess de la raíz del sitio.", - "Léger": "Ligero", - "Légère": "Ligera", - "Maigre": "Delgado", - "Maintenance": "Mantenimiento", - "Majuscule à chaque mot": "Capper con cada palabra", - "Majuscules": "Letras mayúsculas", - "Marges verticales": "Márgenes verticales", - "Masquer la bannière en écran réduit": "Ocultar el banner en pantalla reducida", - "Masquer la page et les pages enfants dans le menu d'une barre latérale": "Ocultar página y páginas secundarias en un menú de la barra lateral", - "Masquer les pages enfants dans le menu horizontal": "Ocultar páginas secundarias en el menú horizontal", - "Membre": "Miembro", - "Membre avec droit de partage": "Miembro con derecho de compartir", - "Membre simple": "Miembro simple", - "Mentions légales": "Notas legales", - "Menu": "Menù", - "Menu accessoire": "Menú accesorio", - "Menu burger dans écran réduit": "Menú hamburguesa en pantalla reducida", - "Menu standard": "Menú estándar", - "Message d'acceptation des Cookies": "Mensaje de aceptación de cookies", - "Message de consentement aux cookies": "Mensaje de consentimiento de cookies", - "Mettre à jour": "Actualizar", - "Mettre à jour le module orphelin": "Actualizar módulo huérfano", - "Minuscules": "Diminuto", - "Mise en forme des titres": "Formato de título", - "Mise en forme du texte": "Formato de texto", - "Mise en forme du titre": "Formato de título", - "Mise en page": "Diseño", - "Mise à jour": "actualización", - "Mise à jour automatisée": "Actualización automática", - "Mise à jour terminée avec succès.": "Actualización completada con éxito.", - "Modifications enregistrées": "Cambios guardados", - "Module": "Módulo", - "Module de la page": "Módulo de página", - "Modules": "Módulos", - "Modules configurés": "Módulos Configurados", - "Modules installés": "Módulos instalados", - "Modules orphelins": "Módulos huérfanos", - "Mot de passe": "Contraseña", - "Mot de passe oublié": "Contraseña olvidada", - "Mot de passe perdu": "Contraseña perdida", - "Motorisé par": "Motorizado por", - "Moyen": "Medio", - "Moyenne": "Media", - "Moyenne (200%)": "Promedio (200%)", - "Moyenne (200px)": "Promedio (200px)", - "Méta-description": "Meta-descripción", - "Méta-titre": "Meta-título", - "Ne pas afficher": "No se muestra", - "Ne pas charger l'exemple de site (utilisateurs avancés)": "No cargar sitio de muestra (usuarios avanzados)", - "Ne pas répéter": "No repitas", - "Ne pas saisir les balises": "No ingrese las etiquetas", - "News": "Noticias", - "Niveau 1 (192.168.12.x)": "Nivel 1 (192.168.12.x)", - "Niveau 2 (192.168.x.x)": "Nivel 2 (192.168.x.x)", - "Niveau 3 (192.x.x.x)": "Nivel 3 (192.x.x.x)", - "Nom": "Nombre", - "Nom Prénom": "Apellido nombre", - "Nom du profil": "Nombre del perfil", - "Nom utilisateur": "Nombre de usuario", - "Non": "No", - "Non tronquée": "Sin personal", - "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "Nuestro sitio está actualmente en mantenimiento. Lamentamos las molestias y estamos haciendo todo lo posible para regresar lo antes posible", - "Nouveau contenu localisé": "Nuevo contenido localizado", - "Nouveau mot de passe": "Nueva contraseña", - "Nouveau mot de passe enregistré": "Nueva contraseña guardada", - "Nouvel utilisateur": "Nuevo usuario", - "Nouvelle page créée": "Nueva página creada", - "Nouvelle page ou barre latérale": "Nueva página o barra lateral", - "Obligatoire": "Obligatorio", - "Ombre": "Sombra", - "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "Opción activa solo en modo fuera de línea, las páginas secundarias son visibles y accesibles.", - "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "Opción recomendada para asegurar la conexión. Se aplica a todos los captchas en el sitio. El captcha simple está limitado a una suma de números del 0 al 10. El captcha complejo usa cuatro operaciones de números del 0 al 20. Activación recomendada.", - "Options": "Opciones", - "Options avancées": "Opciones avanzadas", - "Origine": "Origen", - "Oui": "Sí", - "Page": "Página", - "Page 2/3 - barre 1/3": "página 2/3 - Barra 1/3", - "Page 3/4 - barre 1/4": "página 3/4 - Barra 1/4", - "Page associée": "Página asociada", - "Page de recherche": "Página de búsqueda", - "Page dupliquée": "Página duplicada", - "Page et module dupliqués": "Página y módulo duplicados", - "Page inexistante, erreur 404": "La página no existe, error 404", - "Page non cliquable": "No se puede hacer clic en la página", - "Page parent": "Página principal", - "Page standard": "Página estándar", - "Page supprimée": "página eliminada", - "Pages dans le menu": "Páginas del menú", - "Pages du site": "Páginas del sitio", - "Pages et les modules de": "Páginas y módulos", - "Pages orphelines": "Páginas huérfanas", - "Papier peint": "Color de fondo", - "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "Por defecto, el menú se muestra DESPUÉS del contenido de la página. Para colocarlo en una ubicación específica, inserte [MENÚ] en el contenido de la página.", - "Paramètres": "Configuraciones", - "Paramètres de la localisation": "Configuración de la ubicación", - "Paramètres de la sauvegarde": "Configuración de copia de seguridad", - "Paramètres du profil": "Configuración del perfil", - "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "Configuraciones para usar cuando su host no ofrece la funcionalidad para enviar correo.", - "Pas de marge au-dessus et en dessous du site": "Sin margen encima y debajo del sitio", - "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Recuerde eliminar el caché de su navegador si el favicon no cambia.", - "Permission": "Permiso", - "Permission et référencement": "Permiso y referenciación", - "Permissions": "Permisos", - "Permissions sur les dossiers": "Permisos de las carpetas", - "Permissions sur les fichiers": "Permisos de los archivos", - "Permissions sur les pages": "Permisos de las páginas", - "Petite": "Pequeño", - "Petite (150px)": "Pequeño (150px)", - "Petite (180%)": "Pequeño (180px)", - "Pied de page": "Pie de página", - "Pinterest": "Pinterest", - "Plan du site": "Mapa del sitio", - "Police des titres": "Tipografía del titulo", - "Police du texte": "Tipografía del texto", - "Port SMTP": "Puerto SMTP", - "Port du proxy": "Puerto proxy", - "Position": "Posición", - "Position du module": "Posición del módulo", - "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "Para configurar la página como barra lateral, elija la opción de la lista.", - "Presse Papier": "Portapapeles", - "Presse papier": "Portapapeles", - "Profils des groupes": "Perfiles de grupos", - "Proportionnelle à la taille définie dans le site.": "Proporcional a la definida en el sitio.", - "Prénom": "Nombre de pila", - "Prénom Nom": "Nombre Apellido", - "Préparation de la mise à jour": "Preparáción de la actualización", - "Préserver le fichier htaccess racine": "Conservar archivo raíz htaccess", - "Préserver les comptes des utilisateurs déjà installés": "Conservar las cuentas de usuario ya instaladas", - "Prévenir l'utilisateur par mail": "Notificar al usuario por correo electrónico", - "Prévisualiser": "Previsualizar", - "Pseudo": "Apodo", - "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "Rango 9 > rango 1. El perfil del rango 1 no se puede modificar.", - "Ratio": "Proporción", - "Ratio :": "Relación", - "Recherche": "Buscar", - "Recherche dans le site": "Buscar en el sitio", - "Rechercher": "Buscar", - "Rechercher une mise à jour en ligne": "Buscar una actualización en línea", - "Redirection": "Redirección", - "Redirection vers la connexion": "Redirección hacia conexión", - "Renommer": "Renombrar", - "Renseignez les champs ci-dessous pour finaliser l'installation.": "Complete las zonas a continuación para terminar la instalación.", - "Responsive (contain)": "Responsivo (contener)", - "Responsive (cover)": "Responsivo (cobertura)", - "Restauration des bases de données absentes": "Restauración de bases de datos faltantes", - "Restauration effectuée avec succès": "Restauración completada con éxito", - "Restaurer": "Restaurar", - "Restaurer les données du site": "Restaurar datos del sitio", - "Rester connecté sur ce navigateur": "Permanecer conectado en este navegador", - "Retour": "Retroceder", - "Rien à importer, erreur de format ou fichier incorrect": "Nada que importar, error de formato o archivo incorrecto", - "Rédacteur": "Editor", - "Référencement": "Referenciación", - "Réinitialisation du mot de passe": "Restablecer la contraseña de usuario", - "Réinitialiser avec le thème par défaut": "establecer tema predeterminado", - "Réinitialiser la feuille de style": "Restablecer hoja de estilo", - "Réinitialiser la liste": "Restablecer lista", - "Réinitialiser le journal": "Restablecer registro", - "Réinstaller": "Reinstalar", - "Répétition": "Repetición", - "Réseau": "La red", - "Réseaux sociaux": "Redes sociales", - "S'ouvre dans un nouvel onglet": "Se abre en una nueva pestaña", - "SMTP": "SMTP", - "SMTP personnalisé": "SMTP personalizado", - "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "Ingrese la clave, luego valide el formulario antes de hacer clic en el botón generar", - "Saisissez le Titre de gestion des cookies.": "Introduce el título de la ventana de gestión de cookies.", - "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "Ingrese el mensaje para las cookies colocadas por ZwiiCMS, necesarias para su funcionamiento y que no requieren consentimiento.", - "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "Ingrese el texto del enlace a los avisos legales, la página debe estar definida en la configuración del sitio.", - "Saisissez votre ID : https://pinterest.com/[ID].": "Ingrese su ID: https://pinterest.com/[ID].", - "Saisissez votre ID : https://twitter.com/[ID].": "Ingrese su ID: https://twitter.com/[ID].", - "Saisissez votre ID : https://www.facebook.com/[ID].": "Ingrese su ID: https://www.facebook.com/[ID].", - "Saisissez votre ID : https://www.instagram.com/[ID].": "Ingrese su ID: https://www.instagram.com/[ID].", - "Saisissez votre ID Github : https://github.com/[ID].": "Ingrese su ID de Github: https://github.com/[ID].", - "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "Ingrese su ID de Linkedin: https://fr.linkedin.com/in/[ID].", - "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "Ingrese su ID de usuario: https://www.youtube.com/user/[ID].", - "Sauvegarde": "Salvaguardad", - "Sauvegarde automatique quotidienne du site": "Copia de seguridad diaria automática del sitio", - "Sauvegarde du thème dans le": "Guardando tema en el", - "Sauvegarde générée avec succès": "Copia de seguridad generada con éxito", - "Sauvegarder": "Para salvaguardar", - "Sauvegarder et télécharger le module": "Guardar y descargar módulo", - "Sauvegarder le module dans le gestionnaire de fichiers": "Guardar módulo en el administrador de archivos", - "Sauvegarder les données du module dans le gestionnaire de fichiers": "Guardar de los datos del módulo en el administrador de archivos", - "Sauvegarder les données du site": "Guardar datos del sitio", - "Script dans body": "Script en el body", - "Script dans head": "Script en el head", - "Scripts externes": "Guiones externos", - "Se déconnecter": "Desconectarse", - "Service en ligne inaccessible": "Servicio en línea inaccesible", - "Seul un administrateur peut se connecter lors d'une maintenance": "Solo un administrador puede iniciar sesión durante un mantenimiento", - "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "Si el contenido del administrador de archivos es muy grande, es mejor copiar por FTP.", - "Signature": "Firma", - "Site": "Idiomas instalados", - "Site en maintenance": "Sitio en mantenimiento", - "Size": "Tamaño", - "Source": "Fuente", - "Standard": "Estándar", - "Style": "Estilo", - "Suppression interdite": "Borrado prohibido", - "Suppression interdite, page active dans la configuration de la langue du site": "Eliminación no permitida, la página está activa en la configuración de idioma del sitio", - "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "Eliminar el signo de interrogación en las URL, la opción no está disponible con otros servidores web", - "Supprimer": "Borrar", - "Supprimer la page": "Eliminar página", - "Supprimer le module": "Eliminar módulo", - "Supprimer toutes les sauvegardes automatiques ?": "¿Eliminar todos los guardados automáticos?", - "Sur l'axe horizontal": "En el eje horizontal", - "Sur l'axe vertical": "En el eje vertical", - "Sur les deux axes": "En ambos hachas", - "Sécurité": "Seguridad", - "Sécurité de la connexion": "Seguridad de la conexión", - "Sécurité désactivée": "Seguridad desactivada", - "Sélectionner un fichier": "Seleccione un archivo", - "Sélectionnez au moins un contenu à afficher": "Seleccione al menos un contenido para mostrar", - "Sélectionnez la langue à copier vers une langue cible": "Seleccione el idioma para copiar hacia oyto idioma", - "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "Seleccione un ícono adecuado para un tema oscuro.
Recuerde eliminar el caché de su navegador si el favicon no cambia", - "Sélectionnez une image ou une icône de petite dimension": "Seleccione una imagen o icono pequeño", - "Sélectionnez une langue": "Seleccione un idioma", - "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "Seleccione una página que contenga el módulo 'Buscar'. Una opción de pie de página agrega un enlace discreto a esta página.", - "Sélectionnez une page pour activer": "Seleccione una página para activar", - "Séparateur": "Separador", - "Taille": "Tamaño", - "Text": "Texto", - "Texte": "Texto", - "Thème": "Tema", - "Thème de l'administration": "Tema de administración", - "Thème du site": "Tema del sitio", - "Thème importé": "Tema importado", - "Thèmes": "Temas", - "Titre": "Título", - "Titre court": "Título corto", - "Titre masqué": "Título enmascarado", - "Titre masqué dans la page": "Título oculto en la página", - "Titres": "Títulos", - "Tous les dossiers": "Todas las carpetas", - "Tous les droits d'édition des contenus": "Todos los derechos de edición de contenido", - "Tout Effacer": "Borrar todo", - "Traduction supprimée": "Traducción eliminada", - "Très grande": "Muy grande", - "Très grande (240%)": "Muy grande (240%)", - "Très grande (400px)": "Muy grande (400px)", - "Très important": "Muy importante", - "Très importante": "Muy importante", - "Très léger": "Muy ligero", - "Très légère": "Muy ligera", - "Très petite": "Muy pequeño", - "Très petite (100px) ": "Muy pequeño (100px)", - "Très petite (160%)": "Muy pequeño (160%)", - "Twitter": "Twitter", - "Type de captcha": "Tipo de captcha", - "Type de proxy": "Tipo de proxy", - "Téléchargement et validation de l'archive": "Descarga y validación del archivo", - "Télécharger": "Descargar", - "Télécharger la liste": "Descargar la revista", - "Télécharger le journal": "Descargar la revista", - "Télécharger le module dans le gestionnaire de fichiers": "Descargar módulo al administrador de archivos", - "Téléverser": "Subir", - "URL incorrecte": "URL incorrecta", - "Un mail a été envoyé pour confirmer la réinitialisation": "Se ha enviado un correo electrónico para confirmar el restablecimiento.", - "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "Un archivo que contiene la carpeta /site/data se conserva durante 30 días. Activación recomendada .", - "Une erreur est survenue lors de l'étape :": "Ocurrió un error durante el proceso", - "Url du fichier de fonte": "Url del archivo de tipo de letra", - "Utilisateur inexistant": "Usuario inexistente", - "Utilisateur supprimé": "Usuario eliminado", - "Utilisateurs": "Usuarios", - "Valider": "Validar", - "Version": "Versión", - "Version n°": "Número de versión", - "Vider dossier sauvegardes auto": "Carpeta de autoguardado vacía", - "Visiteur": "Visitante", - "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "No está autorizado para ver esta página (error 403)", - "Youtube": "YouTube", - "ZwiiCMS - Installation": "ZwiiCMS - Instalación", - "actualisé": "actualizado", - "favicon.ico": "Recuerde borrar el caché de su navegador si el favicon no cambia.", - "faviconDark.ico": "faviconDark.ico", - "gestionnaire de fichiers": "administrador de archivos", - "installé": "instalado", - "jour": "día", - "jours": "días", - "sauvegardé avec succès": "Guardado exitosamente", - "vers": "hacia", - "À droite": "A la derecha", - "À gauche": "A la izquierda", - "À l'emplacement du mot clé [MODULE] dans la page": "En la ubicación de la palabra clave [MODULE] en la página", - "Échec de l'écriture, vérifiez les permissions": "Escritura fallida, verifique los permisos", - "Échecs": "Fracasos", - "Éditer": "Editar", - "Éditer la page": "Editar página", - "Éditer les dialogues": "Editar los diálogos", - "Éditer une catégorie": "Editar categoría", - "Éditeur": "Editor", - "Éditeur CSS": "Editor de CSS", - "Éditeur JS": "Editor de JS", - "Éditeur de script %s": "Editor de script %s", - "Éditeur de script dans Body": "Éditor del script en el Body", - "Éditeur de script dans Head": "Éditor del script en el Head", - "Éditeur simple": "Editor simple", - "Édition des pages": "Edición de páginas", - "Édition du profil %s": "Edición del perfil %s", - "Éléments": "Elementos", - "Étendu sur la page": "Extendido en la página", - "Étiquettes des pages spéciales": "Etiquetas de páginas especiales", - "Dimensions minimales": "Dimensiones mínimas", - "Taille maximale du fichier": "Tamaño máximo de archivo", - "5 Mo pour les images JPEG": "5 MB para imágenes JPEG", - "1 Mo pour les images PNG": "1 MB para imágenes PNG", - "Poids": "Peso", - "Supprimer ce profil ?": "¿Eliminar este perfil?", - "Masqué": "Oculto", - "Haut de page": "Parte superior de la página", - "Bas de page": "Parte inferior de la página", - "Petit triangle": "Triángulo pequeño", - "Grand triangle": "Triángulo grande", - "Flèche": "Flecha", - "Modèle": "Plantilla", - "Bouton de navigation droit": "Botón de navegación derecha", - "Bouton de navigation gauche": "Botón de navegación izquierda", - "Groupes / Profils": "Grupos / Perfiles", - "Prénom commence par": "El nombre comienza con", - "Nom commence par": "El apellido comienza con", - "Impossible de réinitialiser le mot de passe de ce compte !": "No puedo restablecer la contraseña de esta cuenta.", - "Test de la messagerie du site": "Prueba de mensajería del sitio", - "Il semblerait que votre messagerie fonctionne correctement !": "¡Parece que su mensajería funciona correctamente!", - "Message de test envoyé avec succès": "Mensaje de prueba enviado con éxito", - "Message non envoyé": "Mensaje no enviado", - "Validation par clé ⚠️": "Validación por clave ⚠️", - "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "La conexión se confirma con una clave enviada por mensajería. Desde el grupo seleccionado y los grupos superiores.", - "Envoi du message d'authentification": "Envío del mensaje de autenticación", - "Connexion réussie": "Conexión exitosa", - "Erreur de mot de passe": "Error de contraseña", - "Erreur de captcha": "Error de captcha" -} \ No newline at end of file From 8ee10b4d9ac31e9071a1301d6299091b3be095d9 Mon Sep 17 00:00:00 2001 From: Fred Tempez Date: Fri, 20 Dec 2024 17:30:02 +0100 Subject: [PATCH 07/21] Supprimer site/i18n/fr_FR.json --- site/i18n/fr_FR.json | 703 ------------------------------------------- 1 file changed, 703 deletions(-) delete mode 100644 site/i18n/fr_FR.json diff --git a/site/i18n/fr_FR.json b/site/i18n/fr_FR.json deleted file mode 100644 index c07b9e6e..00000000 --- a/site/i18n/fr_FR.json +++ /dev/null @@ -1,703 +0,0 @@ -{ - "'Ne pas afficher' crée une page orpheline non accessible par le biais des menus.": "", - "'Sauvegarder et télécharger les données du module": "", - "1 jour": "", - "1/4 : Préparation...": "", - "10 minutes": "", - "10 tentatives": "", - "14 jours": "", - "15 minutes": "", - "2 jours": "", - "2/4 : Téléchargement...": "", - "3 tentatives": "", - "3/4 : Installation...": "", - "4 jours": "", - "4/4 : Configuration...": "", - "5 minutes": "", - "5 tentatives": "", - "7 jours": "", - "Accueil": "", - "Accède au site": "", - "Accède aux pages réservées": "", - "Accède aux pages réservées et à un dossier partagé": "", - "Accès bloqué %d minutes": "", - "Accès désactivé": "", - "Accès interdit, erreur 403": "", - "Action interdite": "", - "Activation obligatoire selon les lois françaises sauf si vous utilisez votre propre système de consentement.": "", - "Activer": "", - "Activer la journalisation": "", - "Actualiser": "", - "Adaptation": "", - "Administrateur": "", - "Administration": "", - "Adresse SMTP": "", - "Adresse du proxy": "", - "Adresse électronique": "", - "Affectation": "", - "Affiche le nom de la page parente suivi du nom de la page, le titre ne doit pas être masqué.": "", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés": "", - "Afin d'assurer le bon fonctionnement de Zwii, veuillez ne pas fermer cette page avant la fin de l'opération.": "", - "Aide": "", - "Ajouter": "", - "Ajouter un profil": "", - "Ajouter un utilisateur": "", - "Ajouter une fonte": "", - "Alignement": "", - "Aligner la bannière avec le contenu": "", - "Ancien mot de passe": "", - "Anonymat des adresses IP": "", - "Apache URL intelligent": "", - "Apache URL intelligentes": "", - "Apparence": "", - "Appliquer": "", - "Approuver un commentaire": "", - "Après": "", - "Après la bannière": "", - "Après le contenu de la page": "", - "Archive": "", - "Archive ZIP": "", - "Archive copiée dans le dossier Modules du gestionnaire de fichier": "", - "Archive de thème invalide": "", - "Archive invalide": "", - "Archive invalide, l'écriture dans le dossier core est interdite": "", - "Archive invalide, le descripteur est absent": "", - "Archive invalide, le fichier de classe est absent": "", - "Archive invalide, les dossiers ne correspondent pas au descripteur": "", - "Archive non spécifiée ou introuvable": "", - "Archive à restaurer": "", - "Arrière plan": "", - "Arrière plan des blocs": "", - "Arrière plan des champs": "", - "Arrondi des angles": "", - "Au centre": "", - "Au début": "", - "Au milieu au centre": "", - "Au milieu à droite": "", - "Au milieu à gauche": "", - "Au-dessus du site": "", - "Aucun": "", - "Aucun dossier": "", - "Aucun fichier journal à télécharger": "", - "Aucun journal à effacer": "", - "Aucun menu": "", - "Aucune": "", - "Aucune liste noire à effacer": "", - "Aucune liste noire à télécharger": "", - "Auteur :": "", - "Authentification": "", - "Automatique": "", - "Autoriser les robots à référencer le site": "", - "Autorisé": "", - "Avant la bannière": "", - "Avant le contenu de la page": "", - "Background": "", - "Banni": "", - "Bannière": "", - "Bannière cliquable": "", - "Barre 1/3 - page 2/3": "", - "Barre 1/4 - page 1/2 - barre 1/4": "", - "Barre 1/4 - page 3/4": "", - "Barre 2/12 - page 7/12 - barre 3/12": "", - "Barre 3/12 - page 7/12 - barre 2/12": "", - "Barre de membre": "", - "Barre latérale": "", - "Barre latérale droite :": "", - "Barre latérale gauche :": "", - "Barres latérales": "", - "Bienvenue %s %s": "", - "Blocage après échecs": "", - "Blog": "", - "Bords arrondis": "", - "Bordure des blocs": "", - "Bordure des champs": "", - "Bouton Aide": "", - "Bouton Standard": "", - "Bouton de validation": "", - "Bouton effacement": "", - "Bouton retour": "", - "Bouton standard": "", - "Bouton validation": "", - "Boutons": "", - "Caché": "", - "Cachée": "", - "Captcha complexe": "", - "Captcha à la connexion": "", - "Captcha, identifiant ou mot de passe incorrects": "", - "Capture d'écran Open Graph": "", - "Capture d'écran générée avec succès": "", - "Casse": "", - "Catalogue": "", - "Catégorie": "", - "Ce membre pourra téléverser ou télécharger des fichiers dans le dossier 'partage' et ses sous-dossiers": "", - "Cette page ne doit pas apparaître dans l'arborescence du menu. Créez une page orpheline.": "", - "Cette redirection ne concerne que les pages d'administration du site.": "", - "Chaîne Youtube": "", - "Chiffres": "", - "Cible": "", - "Cliquez sur une zone afin d'accéder à ses options de personnalisation.": "", - "Commentaire": "", - "Complète": "", - "Compte administrateur": "", - "Compte de l'utilisateur": "", - "Compte verrouillé": "", - "Configuration": "", - "Configuration du module": "", - "Configurer": "", - "Configurer mon compte": "", - "Confirmation": "", - "Confirmer la suppression de cet utilisateur": "", - "Confirmer la dissociation du module de cette page": "", - "Confirmer la désinstallation du module": "", - "Confirmer la suppression de cet utilisateur": "", - "Confirmer la suppression de cette langue": "", - "Confirmer la suppression de la page": "", - "Confirmer la suppression des données du module": "", - "Confirmez-vous la suppression de cette page ?": "", - "Connexion": "", - "Consulter l'aide en ligne": "", - "Contents": "", - "Contenu": "", - "Contenu HTML": "", - "Contenu avancé": "", - "Contenu du menu vertical": "", - "Contrôle total": "", - "Cookies": "", - "Cookies Zwii": "", - "Copie de contenus localisés": "", - "Copie de sites inter-langues": "", - "Copie des traductions rédigées": "", - "Copie terminée avec des erreurs": "", - "Copie terminée avec succès": "", - "Copier": "", - "Copier sauvegardes auto": "", - "Couleur de fond automatique": "", - "Couleur icône haut de page": "", - "Couleur texte page active": "", - "Couleur unie ou papier-peint": "", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence.": "", - "Couleur visible en l'absence d'une image.
Le curseur horizontal règle le niveau de transparence. La couleur du texte est automatique.": "", - "Couleurs": "", - "Dans le site": "", - "Dans quelle langue utiliserez-vous Zwii ?": "", - "Date": "", - "Description": "", - "Disponible si le consentement des cookies est activé.": "", - "Disposition": "", - "Données %s copiées vers %s": "", - "Données des modules": "", - "Données importées": "", - "Dossier": "", - "Droits sur les dossiers": "", - "Droits sur les fichiers": "", - "Dupliquer": "", - "Dupliquer la page": "", - "Déconnecte les sessions ouvertes précédemment sur d'autres navigateurs ou terminaux. Activation recommandée.": "", - "Déconnecter": "", - "Déconnexion !": "", - "Déconnexion automatique": "", - "Définir par défaut": "", - "Dévoiler le mot de passe": "", - "Effacer": "", - "Effacer la page": "", - "Effacer tous les commentaires": "", - "Effacer toutes les statistiques": "", - "Effacer un commentaire": "", - "Effacer une catégorie": "", - "Emplacement :": "", - "Emplacement dans le menu": "", - "En bas au centre": "", - "En bas à droite": "", - "En bas à gauche": "", - "En cas de changement de module, les données du module précédent seront supprimées.": "", - "En dessous du site": "", - "En haut au centre": "", - "En haut à droite": "", - "En haut à gauche": "", - "En position libre ajoutez le module en plaçant [MODULE] à l'endroit voulu dans votre page.": "", - "En-dehors du site": "", - "Enregistrer": "", - "Envoyer un message de confirmation": "", - "Erreur : sauvegarde non générée !": "", - "Erreur d'URL": "", - "Erreur d'extraction, vérifiez les permissions": "", - "Erreur de copie": "", - "Erreur de copie, vérifiez les permissions": "", - "Erreur de lecture, vérifiez les permissions": "", - "Erreur inconnue": "", - "Erreur inconnue, le module n'est pas installé": "", - "Export CSV": "", - "Expéditeur": "", - "Extension": "", - "Extraire": "", - "Facebook": "", - "Famille": "", - "Favicon thème sombre": "", - "Feuille de style spécifique à la page.": "", - "Fichiers": "", - "Fichiers effacés": "", - "Fil d'Ariane dans le titre": "", - "Fond du sous-menu": "", - "FontId": "", - "Fonte": "", - "Fonte actualisée": "", - "Fonte créée": "", - "Fonte en ligne": "", - "Fonte installée": "", - "Fonte non créée, ressource absente !": "", - "Fonte supprimée": "", - "Fontes": "", - "Format incorrect": "", - "Formulaire": "", - "Fréquence de recherche": "", - "Fuseau horaire": "", - "Gabarits de page - Barre latérale": "", - "Gestion": "", - "Gestion des modules": "", - "Gestion des thèmes": "", - "Gestionnaire de fichiers": "", - "Github": "", - "Grande": "", - "Grande (220%)": "", - "Grande (300px)": "", - "Gras": "", - "Groupe": "", - "Groupe associé": "", - "Groupe requis pour accéder à la page :": "", - "Groupes": "", - "Générer sitemap.xml et robots.txt": "", - "Générer une capture Open Graph": "", - "Gérer les catégories": "", - "Gérer les commentaires": "", - "Gérer les données": "", - "Hauteur": "", - "Hauteur de l'image": "", - "Hauteur de l'image sélectionnée": "", - "Hauteur maximale": "", - "ID de la chaîne : https://www.youtube.com/channel/[ID].": "", - "Icône": "", - "Icône avec bulle de texte": "", - "Icône haut de page, couleur arrière-plan": "", - "Identifiant": "", - "Identifiant (sans espace ni majuscule)": "", - "Identité": "", - "Identité de la fonte": "", - "Identité du site": "", - "Il apparaît dans la barre de titre et les partages sur les réseaux sociaux.": "", - "Image": "", - "Image étirée (100% 100%)": "", - "Important": "", - "Importante": "", - "Importation d'utilisateurs": "", - "Importation de fichier plat CSV": "", - "Importation effectuée": "", - "Importer": "", - "Importer dans": "", - "Importer des utilisateurs en masse": "", - "Impossible d'ouvrir l'archive": "", - "Impossible de modifier votre propre groupe.": "", - "Impossible de soumettre le formulaire, car il contient des erreurs": "", - "Impossible de supprimer une page contenant des pages enfants": "", - "Impossible de supprimer votre propre compte": "", - "Inclure le contenu du gestionnaire de fichiers": "", - "Incorrect": "", - "Informations": "", - "Instagram": "", - "Installation terminée": "", - "Installer": "", - "Installer depuis le catalogue en ligne": "", - "Installer depuis une archive": "", - "Installer les données d'un module": "", - "Installer ou mettre à jour un module téléchargé": "", - "Installer un module": "", - "Installer un thème archivé (site ou administration)": "", - "Instructions JS ou jquery spécifiques à la page.": "", - "Interface": "", - "Jeton invalide": "", - "Journal réinitialisé avec succès": "", - "Journalisation": "", - "L'archive a été déposée dans le gestionnaire de fichiers. Les archives inférieures à la version 9 ne sont pas acceptées.": "", - "L'identifiant est défini lors de la création du compte, il ne peut pas être modifié.": "", - "La carte du site a été mise à jour": "", - "La copie de sauvegarde du fichier htaccess n'a pas été restaurée !": "", - "La description d'une page participe à son référencement, chaque page doit disposer d'une description différente.": "", - "La page %s est ouverte par l'utilisateur %s": "", - "La page demandée n'existe pas ou est introuvable (erreur 404)": "", - "La page est affichée dans un menu horizontal mais pas dans le menu vertical d'une barre latérale.": "", - "La première page que vos visiteurs verront.": "", - "La règlementation française impose un anonymat de niveau 2": "", - "La réécriture d'URL n'a pas été restaurée !": "", - "La sauvegarde des fichiers peut prendre du temps. Continuer ?": "", - "La suppression a échoué": "", - "La version installée est plus récente": "", - "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "", - "Langue de l'administration": "", - "Langue du site par défaut": "", - "Langue par défaut": "", - "Langues": "", - "Langues disponibles": "", - "Langues installées": "", - "Largeur": "", - "Largeur de l'image": "", - "Largeur du site": "", - "Le curseur horizontal règle le niveau de transparence, le placer tout à la gauche pour un surlignement invisible.": "", - "Le curseur horizontal règle le niveau de transparence.": "", - "Le fuseau horaire est utile au bon référencement": "", - "Le menu accessoire est aligné à droite de la barre de menu, c'est un emplacement réservé aux drapeaux et au bouton de connexion.": "", - "Le menu horizontal intégral": "", - "Le module %s a été %s": "", - "Le module %s de la page %s a été supprimé": "", - "Le module %s est désinstallé, il reste peut-être des données dans %s": "", - "Le sous-menu de la page parente": "", - "Le survol d'une icône de l'écran de connexion affiche temporairement le mot de passe.": "", - "Le titre court est affiché dans les menus. Il peut être identique au titre de la page.": "", - "Les langues sélectionnées sont identiques": "", - "Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.": "", - "Les modifications que vous avez apportées ne seront peut-être pas enregistrées.": "", - "Les tailles des polices de la bannière, de menu et de pied de page sont proportionnelles à cette taille.": "", - "Lettres": "", - "Libre": "", - "Licence :": "", - "Lien de connexion": "", - "Lien page des mentions légales.": "", - "Liens": "", - "Limitation des tentatives": "", - "Limitée au site": "", - "Linkedin": "", - "Liste noire": "", - "Liste noire réinitialisée avec succès": "", - "Lors d'une mise à jour automatique, conserve le fichier htaccess de la racine du site.": "", - "Léger": "", - "Légère": "", - "Maigre": "", - "Maintenance": "", - "Majuscule à chaque mot": "", - "Majuscules": "", - "Marges verticales": "", - "Masquer la bannière en écran réduit": "", - "Masquer la page et les pages enfants dans le menu d'une barre latérale": "", - "Masquer les pages enfants dans le menu horizontal": "", - "Membre": "", - "Membre avec droit de partage": "", - "Membre simple": "", - "Mentions légales": "", - "Menu": "", - "Menu accessoire": "", - "Menu burger dans écran réduit": "", - "Menu standard": "", - "Message d'acceptation des Cookies": "", - "Message de consentement aux cookies": "", - "Mettre à jour": "", - "Mettre à jour le module orphelin": "", - "Minuscules": "", - "Mise en forme des titres": "", - "Mise en forme du texte": "", - "Mise en forme du titre": "", - "Mise en page": "", - "Mise à jour": "", - "Mise à jour automatisée": "", - "Mise à jour terminée avec succès.": "", - "Modifications enregistrées": "", - "Module": "", - "Module de la page": "", - "Modules": "", - "Modules configurés": "", - "Modules installés": "", - "Modules orphelins": "", - "Mot de passe": "", - "Mot de passe oublié": "", - "Mot de passe perdu": "", - "Motorisé par": "", - "Moyen": "", - "Moyenne": "", - "Moyenne (200%)": "", - "Moyenne (200px)": "", - "Méta-description": "", - "Méta-titre": "", - "Ne pas afficher": "", - "Ne pas charger l'exemple de site (utilisateurs avancés)": "", - "Ne pas répéter": "", - "Ne pas saisir les balises": "", - "News": "", - "Niveau 1 (192.168.12.x)": "", - "Niveau 2 (192.168.x.x)": "", - "Niveau 3 (192.x.x.x)": "", - "Nom": "", - "Nom Prénom": "", - "Nom du profil": "", - "Nom utilisateur": "", - "Non": "", - "Non tronquée": "", - "Notre site est actuellement en maintenance. Nous sommes désolés pour la gêne occasionnée et faisons notre possible pour être rapidement de retour.": "", - "Nouveau contenu localisé": "", - "Nouveau mot de passe": "", - "Nouveau mot de passe enregistré": "", - "Nouvel utilisateur": "", - "Nouvelle page créée": "", - "Nouvelle page ou barre latérale": "", - "Obligatoire": "", - "Ombre": "", - "Option active en mode déconnecté uniquement, les pages enfants sont visibles et accessibles.": "", - "Option recommandée pour sécuriser la connexion. S'applique à tous les captchas du site. Le captcha simple se limite à une addition de nombres de 0 à 10. Le captcha complexe utilise quatre opérations de nombres de 0 à 20. Activation recommandée.": "", - "Options": "", - "Options avancées": "", - "Origine": "", - "Oui": "", - "Page": "", - "Page 2/3 - barre 1/3": "", - "Page 3/4 - barre 1/4": "", - "Page associée": "", - "Page de recherche": "", - "Page dupliquée": "", - "Page et module dupliqués": "", - "Page inexistante, erreur 404": "", - "Page non cliquable": "", - "Page parent": "", - "Page standard": "", - "Page supprimée": "", - "Pages dans le menu": "", - "Pages du site": "", - "Pages et les modules de": "", - "Pages orphelines": "", - "Papier peint": "", - "Par défaut le menu est affiché APRES le contenu de la page. Pour le positionner à un emplacement précis, insérez [MENU] dans le contenu de la page.": "", - "Paramètres": "", - "Paramètres de la localisation": "", - "Paramètres de la sauvegarde": "", - "Paramètres du profil": "", - "Paramètres à utiliser lorsque votre hébergeur ne propose pas la fonctionnalité d'envoi de mail.": "", - "Pas de marge au-dessus et en dessous du site": "", - "Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "", - "Permission": "", - "Permission et référencement": "", - "Permissions": "", - "Permissions sur les dossiers": "", - "Permissions sur les fichiers": "", - "Permissions sur les pages": "", - "Petite": "", - "Petite (150px)": "", - "Petite (180%)": "", - "Pied de page": "", - "Pinterest": "", - "Plan du site": "", - "Police des titres": "", - "Police du texte": "", - "Port SMTP": "", - "Port du proxy": "", - "Position": "", - "Position du module": "", - "Pour définir la page comme barre latérale, choisissez l'option dans la liste.": "", - "Presse Papier": "", - "Presse papier": "", - "Profils des groupes": "", - "Proportionnelle à la taille définie dans le site.": "", - "Prénom": "", - "Prénom Nom": "", - "Préparation de la mise à jour": "", - "Préserver le fichier htaccess racine": "", - "Préserver les comptes des utilisateurs déjà installés": "", - "Prévenir l'utilisateur par mail": "", - "Prévisualiser": "", - "Pseudo": "", - "Rang 9 > rang 1. Le profil de rang 1 n'est pas modifiable.": "", - "Ratio": "", - "Ratio :": "", - "Recherche": "", - "Recherche dans le site": "", - "Rechercher": "", - "Rechercher une mise à jour en ligne": "", - "Redirection": "", - "Redirection vers la connexion": "", - "Renommer": "", - "Renseignez les champs ci-dessous pour finaliser l'installation.": "", - "Responsive (contain)": "", - "Responsive (cover)": "", - "Restauration des bases de données absentes": "", - "Restauration effectuée avec succès": "", - "Restaurer": "", - "Restaurer les données du site": "", - "Rester connecté sur ce navigateur": "", - "Retour": "", - "Rien à importer, erreur de format ou fichier incorrect": "", - "Rédacteur": "", - "Référencement": "", - "Réinitialisation du mot de passe": "", - "Réinitialiser avec le thème par défaut": "", - "Réinitialiser la feuille de style": "", - "Réinitialiser la liste": "", - "Réinitialiser le journal": "", - "Réinstaller": "", - "Répétition": "", - "Réseau": "", - "Réseaux sociaux": "", - "S'ouvre dans un nouvel onglet": "", - "SMTP": "", - "SMTP personnalisé": "", - "Saisir la clé, puis valider le formulaire avant de cliquer sur le bouton de génération": "", - "Saisissez le Titre de gestion des cookies.": "", - "Saisissez le message pour les cookies déposés par ZwiiCMS, nécessaires au fonctionnement et qui ne nécessitent pas de consentement.": "", - "Saisissez le texte du lien vers les mentions légales,la page doit être définie dans la configuration du site.": "", - "Saisissez votre ID : https://pinterest.com/[ID].": "", - "Saisissez votre ID : https://twitter.com/[ID].": "", - "Saisissez votre ID : https://www.facebook.com/[ID].": "", - "Saisissez votre ID : https://www.instagram.com/[ID].": "", - "Saisissez votre ID Github : https://github.com/[ID].": "", - "Saisissez votre ID Linkedin : https://fr.linkedin.com/in/[ID].": "", - "Saisissez votre ID Utilisateur : https://www.youtube.com/user/[ID].": "", - "Sauvegarde": "", - "Sauvegarde automatique quotidienne du site": "", - "Sauvegarde du thème dans le": "", - "Sauvegarde générée avec succès": "", - "Sauvegarder": "", - "Sauvegarder et télécharger le module": "", - "Sauvegarder le module dans le gestionnaire de fichiers": "", - "Sauvegarder les données du module dans le gestionnaire de fichiers": "", - "Sauvegarder les données du site": "", - "Script dans body": "", - "Script dans head": "", - "Scripts externes": "", - "Se déconnecter": "", - "Service en ligne inaccessible": "", - "Seul un administrateur peut se connecter lors d'une maintenance": "", - "Si le contenu du gestionnaire de fichiers est très volumineux, mieux vaut une copie par FTP.": "", - "Signature": "", - "Site": "", - "Site en maintenance": "", - "Size": "", - "Source": "", - "Standard": "", - "Style": "", - "Suppression interdite": "", - "Suppression interdite, page active dans la configuration de la langue du site": "", - "Supprime le point d'interrogation dans les URL, l'option est indisponible avec les autres serveurs Web": "", - "Supprimer": "", - "Supprimer la page": "", - "Supprimer le module": "", - "Supprimer toutes les sauvegardes automatiques ?": "", - "Sur l'axe horizontal": "", - "Sur l'axe vertical": "", - "Sur les deux axes": "", - "Sécurité": "", - "Sécurité de la connexion": "", - "Sécurité désactivée": "", - "Sélectionner un fichier": "", - "Sélectionnez au moins un contenu à afficher": "", - "Sélectionnez la langue à copier vers une langue cible": "", - "Sélectionnez une icône adaptée à un thème sombre.
Pensez à supprimer le cache de votre navigateur si la favicon ne change pas.": "", - "Sélectionnez une image ou une icône de petite dimension": "", - "Sélectionnez une langue": "", - "Sélectionnez une page contenant le module 'Recherche'. Une option du pied de page ajoute un lien discret vers cette page.": "", - "Sélectionnez une page pour activer": "", - "Séparateur": "", - "Taille": "", - "Text": "", - "Texte": "", - "Thème": "", - "Thème de l'administration": "", - "Thème du site": "", - "Thème importé": "", - "Thèmes": "", - "Titre": "", - "Titre court": "", - "Titre masqué": "", - "Titre masqué dans la page": "", - "Titres": "", - "Tous les dossiers": "", - "Tous les droits d'édition des contenus": "", - "Tout Effacer": "", - "Traduction supprimée": "", - "Très grande": "", - "Très grande (240%)": "", - "Très grande (400px)": "", - "Très important": "", - "Très importante": "", - "Très léger": "", - "Très légère": "", - "Très petite": "", - "Très petite (100px) ": "", - "Très petite (160%)": "", - "Twitter": "", - "Type de captcha": "", - "Type de proxy": "", - "Téléchargement et validation de l'archive": "", - "Télécharger": "", - "Télécharger la liste": "", - "Télécharger le journal": "", - "Télécharger le module dans le gestionnaire de fichiers": "", - "Téléverser": "", - "URL incorrecte": "", - "Un mail a été envoyé pour confirmer la réinitialisation": "", - "Une archive du dossier /site/data est conservée pendant 30 jours. Activation recommandée": "", - "Une erreur est survenue lors de l'étape :": "", - "Url du fichier de fonte": "", - "Utilisateur inexistant": "", - "Utilisateur supprimé": "", - "Utilisateurs": "", - "Valider": "", - "Version": "", - "Version n°": "", - "Vider dossier sauvegardes auto": "", - "Visiteur": "", - "Vous n'êtes pas autorisé à consulter cette page (erreur 403)": "", - "Youtube": "", - "ZwiiCMS - Installation": "", - "actualisé": "", - "favicon.ico": "", - "faviconDark.ico": "", - "gestionnaire de fichiers": "", - "installé": "", - "jour": "", - "jours": "", - "sauvegardé avec succès": "", - "vers": "", - "À droite": "", - "À gauche": "", - "À l'emplacement du mot clé [MODULE] dans la page": "", - "Échec de l'écriture, vérifiez les permissions": "", - "Échecs": "", - "Éditer": "", - "Éditer la page": "", - "Éditer les dialogues": "", - "Éditer une catégorie": "", - "Éditeur": "", - "Éditeur CSS": "", - "Éditeur JS": "", - "Éditeur de script %s": "", - "Éditeur de script dans Body": "", - "Éditeur de script dans Head": "", - "Éditeur simple": "", - "Édition des pages": "", - "Édition du profil %s": "", - "Éléments": "", - "Étendu sur la page": "", - "Étiquettes des pages spéciales": "", - "Dimensions minimales": "", - "Taille maximale du fichier": "", - "5 Mo pour les images JPEG": "", - "1 Mo pour les images PNG": "", - "Poids": "", - "Supprimer ce profil ?": "", - "Masqué": "", - "Haut de page": "", - "Bas de page": "", - "Petit triangle": "", - "Grand triangle": "", - "Flèche": "", - "Modèle": "", - "Bouton de navigation droit": "", - "Bouton de navigation gauche": "", - "Groupes / Profils": "", - "Prénom commence par": "", - "Nom commence par": "", - "Impossible de réinitialiser le mot de passe de ce compte !": "", - "Test de la messagerie du site": "", - "Il semblerait que votre messagerie fonctionne correctement !": "", - "Message de test envoyé avec succès": "", - "Message non envoyé": "", - "Validation par clé ⚠️": "", - "La connexion est confirmée à l'aide d'une clé transmise par messagerie. Depuis le groupe sélectionné et les groupes supérieurs.": "", - "Envoi du message d'authentification": "", - "Connexion réussie": "", - "Erreur de mot de passe": "", - "Erreur de captcha": "" -} \ No newline at end of file From 020e72931bd00cb17a81c6c7f258389a58ca09b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 17:41:23 +0100 Subject: [PATCH 08/21] =?UTF-8?q?15300=20Bug=20mise=20=C3=A0=20jour=20des?= =?UTF-8?q?=20fichiers=20de=20langues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 1 + core/module/language/language.php | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 914bfef6..bc12e714 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,6 +13,7 @@ - Corrige un dysfonctionnement de la fonction de tronquage subword qui perturbait l'affichage des articles de blog. - Activation de la mémorisation de l'onglet actif dans la configuration après validation du formulaire ou visite d'une autre page du site. - À l'installation, le bouton back mémorise la langue sélectionnée à la première étape. +- Corrige un bug de mise à jour en ligne du fichier des langues. ## Versions 13.4.00 ** Améliorations :** diff --git a/core/module/language/language.php b/core/module/language/language.php index c9e9fb2e..db0d482c 100644 --- a/core/module/language/language.php +++ b/core/module/language/language.php @@ -91,16 +91,15 @@ class language extends common } // Télécharger le descripteur en ligne - $languageData = json_decode(helper::getUrlContents(self::ZWII_UI_URL . $lang . '.json'), true); + $languageData = helper::getUrlContents(self::ZWII_UI_URL . $lang . '.json'); $descripteur = json_decode(helper::getUrlContents(self::ZWII_UI_URL . 'language.json'), true); $success = false; if ( - is_array($languageData) && + $languageData && is_array($descripteur['language'][$lang]) ) { if ($this->setData(['language', $lang, $descripteur['language'][$lang]])) { $success = $this->secure_file_put_contents(self::I18N_DIR . $lang . '.json', $languageData); - $success = is_int($success) ? true : false; } } From 13e0a09e7001603a1a376017828ffb28ff89c653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 21:35:53 +0100 Subject: [PATCH 09/21] Supprime flatpickr dans les vendors --- module/blog/blog.php | 2 -- module/form/form.php | 6 ------ module/news/news.php | 2 -- 3 files changed, 10 deletions(-) diff --git a/module/blog/blog.php b/module/blog/blog.php index f0541c31..fec0c5cf 100755 --- a/module/blog/blog.php +++ b/module/blog/blog.php @@ -311,7 +311,6 @@ class blog extends common $this->addOutput([ 'title' => helper::translate('Rédiger un article'), 'vendor' => [ - 'flatpickr', 'tinymce', 'furl' ], @@ -714,7 +713,6 @@ class blog extends common $this->addOutput([ 'title' => $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(2), 'title']), 'vendor' => [ - 'flatpickr', 'tinymce', 'furl' ], diff --git a/module/form/form.php b/module/form/form.php index 2a26c524..29eec494 100644 --- a/module/form/form.php +++ b/module/form/form.php @@ -151,7 +151,6 @@ class form extends common 'title' => helper::translate('Configuration du module'), 'vendor' => [ 'html-sortable', - 'flatpickr' ], 'view' => 'config' ]); @@ -223,7 +222,6 @@ class form extends common 'title' => helper::translate('Options de configuration'), 'vendor' => [ 'html-sortable', - 'flatpickr' ], 'view' => 'option' ]); @@ -506,7 +504,6 @@ class form extends common 'redirect' => $redirect ? helper::baseUrl() . $redirect : '', 'state' => ($sent === true ? true : false), 'vendor' => [ - 'flatpickr' ], ]); } @@ -515,9 +512,6 @@ class form extends common 'showBarEditButton' => true, 'showPageContent' => true, 'view' => 'index', - 'vendor' => [ - 'flatpickr' - ], ]); } diff --git a/module/news/news.php b/module/news/news.php index 80403089..e03ef29e 100644 --- a/module/news/news.php +++ b/module/news/news.php @@ -206,7 +206,6 @@ class news extends common $this->addOutput([ 'title' => helper::translate('Rédiger un article'), 'vendor' => [ - 'flatpickr', 'tinymce' ], 'view' => 'add' @@ -466,7 +465,6 @@ class news extends common $this->addOutput([ 'title' => $this->getData(['module', $this->getUrl(0), 'posts', $this->getUrl(2), 'title']), 'vendor' => [ - 'flatpickr', 'tinymce' ], 'view' => 'edit' From c977608f0dd0127ad5b4534b7d7ca11589802257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 21:40:00 +0100 Subject: [PATCH 10/21] Gallery 4.3 sans le vendor tablednd --- module/gallery/changes.md | 2 ++ module/gallery/gallery.php | 2 +- .../gallery/vendor/tablednd/MIT-LICENSE.txt | 22 ------------------- module/gallery/vendor/tablednd/inc.json | 3 --- module/gallery/vendor/tablednd/lisez-moi.txt | 2 -- .../gallery/vendor/tablednd/tablednd.min.js | 2 -- 6 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 module/gallery/vendor/tablednd/MIT-LICENSE.txt delete mode 100755 module/gallery/vendor/tablednd/inc.json delete mode 100755 module/gallery/vendor/tablednd/lisez-moi.txt delete mode 100755 module/gallery/vendor/tablednd/tablednd.min.js diff --git a/module/gallery/changes.md b/module/gallery/changes.md index ee0354f3..9fcb0e9b 100644 --- a/module/gallery/changes.md +++ b/module/gallery/changes.md @@ -1,3 +1,5 @@ +# Version 4.3 +- Suppression du vendor tablednd livré avec le core. # Version 4.2 - Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 4.1 diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index 0f1d437a..31ac63dd 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -18,7 +18,7 @@ class gallery extends common { - const VERSION = '4.2'; + const VERSION = '4.3'; const REALNAME = 'Galerie'; const DATADIRECTORY = self::DATA_DIR . 'gallery/'; diff --git a/module/gallery/vendor/tablednd/MIT-LICENSE.txt b/module/gallery/vendor/tablednd/MIT-LICENSE.txt deleted file mode 100644 index fb40abd8..00000000 --- a/module/gallery/vendor/tablednd/MIT-LICENSE.txt +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) Denis Howlett -Copyright 2012 Nick Lombard - nickl- and other contributors -https://github.com/isocra/TableDnD - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/module/gallery/vendor/tablednd/inc.json b/module/gallery/vendor/tablednd/inc.json deleted file mode 100755 index aea2b720..00000000 --- a/module/gallery/vendor/tablednd/inc.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - "tablednd.min.js" -] \ No newline at end of file diff --git a/module/gallery/vendor/tablednd/lisez-moi.txt b/module/gallery/vendor/tablednd/lisez-moi.txt deleted file mode 100755 index 695d1a4f..00000000 --- a/module/gallery/vendor/tablednd/lisez-moi.txt +++ /dev/null @@ -1,2 +0,0 @@ -https://github.com/isocra/TableDnD -Version 1.0.5 \ No newline at end of file diff --git a/module/gallery/vendor/tablednd/tablednd.min.js b/module/gallery/vendor/tablednd/tablednd.min.js deleted file mode 100755 index bb516a6a..00000000 --- a/module/gallery/vendor/tablednd/tablednd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jquery.tablednd.js 20-11-2020 */ -!function(a,b,c,d){var e="touchstart mousedown",f="touchmove mousemove",g="touchend mouseup";a(c).ready(function(){function b(a){for(var b={},c=a.match(/([^;:]+)/g)||[];c.length;)b[c.shift()]=c.shift().trim();return b}a("table").each(function(){"dnd"===a(this).data("table")&&a(this).tableDnD({onDragStyle:a(this).data("ondragstyle")&&b(a(this).data("ondragstyle"))||null,onDropStyle:a(this).data("ondropstyle")&&b(a(this).data("ondropstyle"))||null,onDragClass:a(this).data("ondragclass")===d&&"tDnD_whileDrag"||a(this).data("ondragclass"),onDrop:a(this).data("ondrop")&&new Function("table","row",a(this).data("ondrop")),onDragStart:a(this).data("ondragstart")&&new Function("table","row",a(this).data("ondragstart")),onDragStop:a(this).data("ondragstop")&&new Function("table","row",a(this).data("ondragstop")),scrollAmount:a(this).data("scrollamount")||5,sensitivity:a(this).data("sensitivity")||10,hierarchyLevel:a(this).data("hierarchylevel")||0,indentArtifact:a(this).data("indentartifact")||'
 
',autoWidthAdjust:a(this).data("autowidthadjust")||!0,autoCleanRelations:a(this).data("autocleanrelations")||!0,jsonPretifySeparator:a(this).data("jsonpretifyseparator")||"\t",serializeRegexp:a(this).data("serializeregexp")&&new RegExp(a(this).data("serializeregexp"))||/[^\-]*$/,serializeParamName:a(this).data("serializeparamname")||!1,dragHandle:a(this).data("draghandle")||null})})}),jQuery.tableDnD={currentTable:null,dragObject:null,mouseOffset:null,oldX:0,oldY:0,build:function(b){return this.each(function(){this.tableDnDConfig=a.extend({onDragStyle:null,onDropStyle:null,onDragClass:"tDnD_whileDrag",onDrop:null,onDragStart:null,onDragStop:null,scrollAmount:5,sensitivity:10,hierarchyLevel:0,indentArtifact:'
 
',autoWidthAdjust:!0,autoCleanRelations:!0,jsonPretifySeparator:"\t",serializeRegexp:/[^\-]*$/,serializeParamName:!1,dragHandle:null},b||{}),a.tableDnD.makeDraggable(this),this.tableDnDConfig.hierarchyLevel&&a.tableDnD.makeIndented(this)}),this},makeIndented:function(b){var c,d,e=b.tableDnDConfig,f=b.rows,g=a(f).first().find("td:first")[0],h=0,i=0;if(a(b).hasClass("indtd"))return null;d=a(b).addClass("indtd").attr("style"),a(b).css({whiteSpace:"nowrap"});for(var j=0;ja.vertical&&this.dragObject.parentNode.insertBefore(this.dragObject,b.nextSibling)||00&&a(c).find("td:first").children(":first").remove()&&a(c).data("level",--d),0>b.horizontal&&d=d&&a(c).children(":first").prepend(e.indentArtifact)&&a(c).data("level",++d)},mousemove:function(b){var c,d,e,f,g,h=a(a.tableDnD.dragObject),i=a.tableDnD.currentTable.tableDnDConfig;return b&&b.preventDefault(),!!a.tableDnD.dragObject&&("touchmove"===b.type&&event.preventDefault(),i.onDragClass&&h.addClass(i.onDragClass)||h.css(i.onDragStyle),d=a.tableDnD.mouseCoords(b),f=d.x-a.tableDnD.mouseOffset.x,g=d.y-a.tableDnD.mouseOffset.y,a.tableDnD.autoScroll(d),c=a.tableDnD.findDropTargetRow(h,g),e=a.tableDnD.findDragDirection(f,g),a.tableDnD.moveVerticle(e,c),a.tableDnD.moveHorizontal(e,c),!1)},findDragDirection:function(a,b){var c=this.currentTable.tableDnDConfig.sensitivity,d=this.oldX,e=this.oldY,f=d-c,g=d+c,h=e-c,i=e+c,j={horizontal:a>=f&&a<=g?0:a>d?-1:1,vertical:b>=h&&b<=i?0:b>e?-1:1};return 0!==j.horizontal&&(this.oldX=a),0!==j.vertical&&(this.oldY=b),j},findDropTargetRow:function(b,c){for(var d=0,e=this.currentTable.rows,f=this.currentTable.tableDnDConfig,g=0,h=null,i=0;ig-d&&c1&&a(this.currentTable.rows).each(function(){if((h=a(this).data("level"))>1)for(e=a(this).prev().data("level");h>e+1;)a(this).find("td:first").children(":first").remove(),a(this).data("level",--h)}),b.onDragClass&&a(d).removeClass(b.onDragClass)||a(d).css(b.onDropStyle),this.dragObject=null,b.onDrop&&this.originalOrder!==this.currentOrder()&&a(d).hide().fadeIn("fast")&&b.onDrop(this.currentTable,d),b.onDragStop&&b.onDragStop(this.currentTable,d),this.currentTable=null},mouseup:function(b){return b&&b.preventDefault(),a.tableDnD.processMouseup(),!1},jsonize:function(a){var b=this.currentTable;return a?JSON.stringify(this.tableData(b),null,b.tableDnDConfig.jsonPretifySeparator):JSON.stringify(this.tableData(b))},serialize:function(){return a.param(this.tableData(this.currentTable))},serializeTable:function(a){for(var b="",c=a.tableDnDConfig.serializeParamName||a.id,d=a.rows,e=0;e0&&(b+="&");var f=d[e].id;f&&a.tableDnDConfig&&a.tableDnDConfig.serializeRegexp&&(f=f.match(a.tableDnDConfig.serializeRegexp)[0],b+=c+"[]="+f)}return b},serializeTables:function(){var b=[];return a("table").each(function(){this.id&&b.push(a.param(a.tableDnD.tableData(this)))}),b.join("&")},tableData:function(b){var c,d,e,f,g=b.tableDnDConfig,h=[],i=0,j=0,k=null,l={};if(b||(b=this.currentTable),!b||!b.rows||!b.rows.length)return{error:{code:500,message:"Not a valid table."}};if(!b.id&&!g.serializeParamName)return{error:{code:500,message:"No serializable unique id provided."}};f=g.autoCleanRelations&&b.rows||a.makeArray(b.rows),d=g.serializeParamName||b.id,e=d,c=function(a){return a&&g&&g.serializeRegexp?a.match(g.serializeRegexp)[0]:a},l[e]=[],!g.autoCleanRelations&&a(f[0]).data("level")&&f.unshift({id:"undefined"});for(var m=0;mi)h.push([e,i]),e=c(f[m-1].id);else if(j=i&&(h[n][1]=0);i=j,a.isArray(l[e])||(l[e]=[]),k=c(f[m].id),k&&l[e].push(k)}else(k=c(f[m].id))&&l[e].push(k);return l}},jQuery.fn.extend({tableDnD:a.tableDnD.build,tableDnDUpdate:a.tableDnD.updateTables,tableDnDSerialize:a.proxy(a.tableDnD.serialize,a.tableDnD),tableDnDSerializeAll:a.tableDnD.serializeTables,tableDnDData:a.proxy(a.tableDnD.tableData,a.tableDnD)})}(jQuery,window,window.document); \ No newline at end of file From d19814f220872660dea8e674b1600852ac643fde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 21:44:02 +0100 Subject: [PATCH 11/21] Revert "Gallery 4.3 sans le vendor tablednd" This reverts commit c977608f0dd0127ad5b4534b7d7ca11589802257. --- module/gallery/changes.md | 2 -- module/gallery/gallery.php | 2 +- .../gallery/vendor/tablednd/MIT-LICENSE.txt | 22 +++++++++++++++++++ module/gallery/vendor/tablednd/inc.json | 3 +++ module/gallery/vendor/tablednd/lisez-moi.txt | 2 ++ .../gallery/vendor/tablednd/tablednd.min.js | 2 ++ 6 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 module/gallery/vendor/tablednd/MIT-LICENSE.txt create mode 100755 module/gallery/vendor/tablednd/inc.json create mode 100755 module/gallery/vendor/tablednd/lisez-moi.txt create mode 100755 module/gallery/vendor/tablednd/tablednd.min.js diff --git a/module/gallery/changes.md b/module/gallery/changes.md index 9fcb0e9b..ee0354f3 100644 --- a/module/gallery/changes.md +++ b/module/gallery/changes.md @@ -1,5 +1,3 @@ -# Version 4.3 -- Suppression du vendor tablednd livré avec le core. # Version 4.2 - Contrôle de la variable de session liée au contenu. Evite des erreurs lorsque plusieurs onglets sont ouverts. # Version 4.1 diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index 31ac63dd..0f1d437a 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -18,7 +18,7 @@ class gallery extends common { - const VERSION = '4.3'; + const VERSION = '4.2'; const REALNAME = 'Galerie'; const DATADIRECTORY = self::DATA_DIR . 'gallery/'; diff --git a/module/gallery/vendor/tablednd/MIT-LICENSE.txt b/module/gallery/vendor/tablednd/MIT-LICENSE.txt new file mode 100644 index 00000000..fb40abd8 --- /dev/null +++ b/module/gallery/vendor/tablednd/MIT-LICENSE.txt @@ -0,0 +1,22 @@ +Copyright (c) Denis Howlett +Copyright 2012 Nick Lombard - nickl- and other contributors +https://github.com/isocra/TableDnD + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/module/gallery/vendor/tablednd/inc.json b/module/gallery/vendor/tablednd/inc.json new file mode 100755 index 00000000..aea2b720 --- /dev/null +++ b/module/gallery/vendor/tablednd/inc.json @@ -0,0 +1,3 @@ +[ + "tablednd.min.js" +] \ No newline at end of file diff --git a/module/gallery/vendor/tablednd/lisez-moi.txt b/module/gallery/vendor/tablednd/lisez-moi.txt new file mode 100755 index 00000000..695d1a4f --- /dev/null +++ b/module/gallery/vendor/tablednd/lisez-moi.txt @@ -0,0 +1,2 @@ +https://github.com/isocra/TableDnD +Version 1.0.5 \ No newline at end of file diff --git a/module/gallery/vendor/tablednd/tablednd.min.js b/module/gallery/vendor/tablednd/tablednd.min.js new file mode 100755 index 00000000..bb516a6a --- /dev/null +++ b/module/gallery/vendor/tablednd/tablednd.min.js @@ -0,0 +1,2 @@ +/*! jquery.tablednd.js 20-11-2020 */ +!function(a,b,c,d){var e="touchstart mousedown",f="touchmove mousemove",g="touchend mouseup";a(c).ready(function(){function b(a){for(var b={},c=a.match(/([^;:]+)/g)||[];c.length;)b[c.shift()]=c.shift().trim();return b}a("table").each(function(){"dnd"===a(this).data("table")&&a(this).tableDnD({onDragStyle:a(this).data("ondragstyle")&&b(a(this).data("ondragstyle"))||null,onDropStyle:a(this).data("ondropstyle")&&b(a(this).data("ondropstyle"))||null,onDragClass:a(this).data("ondragclass")===d&&"tDnD_whileDrag"||a(this).data("ondragclass"),onDrop:a(this).data("ondrop")&&new Function("table","row",a(this).data("ondrop")),onDragStart:a(this).data("ondragstart")&&new Function("table","row",a(this).data("ondragstart")),onDragStop:a(this).data("ondragstop")&&new Function("table","row",a(this).data("ondragstop")),scrollAmount:a(this).data("scrollamount")||5,sensitivity:a(this).data("sensitivity")||10,hierarchyLevel:a(this).data("hierarchylevel")||0,indentArtifact:a(this).data("indentartifact")||'
 
',autoWidthAdjust:a(this).data("autowidthadjust")||!0,autoCleanRelations:a(this).data("autocleanrelations")||!0,jsonPretifySeparator:a(this).data("jsonpretifyseparator")||"\t",serializeRegexp:a(this).data("serializeregexp")&&new RegExp(a(this).data("serializeregexp"))||/[^\-]*$/,serializeParamName:a(this).data("serializeparamname")||!1,dragHandle:a(this).data("draghandle")||null})})}),jQuery.tableDnD={currentTable:null,dragObject:null,mouseOffset:null,oldX:0,oldY:0,build:function(b){return this.each(function(){this.tableDnDConfig=a.extend({onDragStyle:null,onDropStyle:null,onDragClass:"tDnD_whileDrag",onDrop:null,onDragStart:null,onDragStop:null,scrollAmount:5,sensitivity:10,hierarchyLevel:0,indentArtifact:'
 
',autoWidthAdjust:!0,autoCleanRelations:!0,jsonPretifySeparator:"\t",serializeRegexp:/[^\-]*$/,serializeParamName:!1,dragHandle:null},b||{}),a.tableDnD.makeDraggable(this),this.tableDnDConfig.hierarchyLevel&&a.tableDnD.makeIndented(this)}),this},makeIndented:function(b){var c,d,e=b.tableDnDConfig,f=b.rows,g=a(f).first().find("td:first")[0],h=0,i=0;if(a(b).hasClass("indtd"))return null;d=a(b).addClass("indtd").attr("style"),a(b).css({whiteSpace:"nowrap"});for(var j=0;ja.vertical&&this.dragObject.parentNode.insertBefore(this.dragObject,b.nextSibling)||00&&a(c).find("td:first").children(":first").remove()&&a(c).data("level",--d),0>b.horizontal&&d=d&&a(c).children(":first").prepend(e.indentArtifact)&&a(c).data("level",++d)},mousemove:function(b){var c,d,e,f,g,h=a(a.tableDnD.dragObject),i=a.tableDnD.currentTable.tableDnDConfig;return b&&b.preventDefault(),!!a.tableDnD.dragObject&&("touchmove"===b.type&&event.preventDefault(),i.onDragClass&&h.addClass(i.onDragClass)||h.css(i.onDragStyle),d=a.tableDnD.mouseCoords(b),f=d.x-a.tableDnD.mouseOffset.x,g=d.y-a.tableDnD.mouseOffset.y,a.tableDnD.autoScroll(d),c=a.tableDnD.findDropTargetRow(h,g),e=a.tableDnD.findDragDirection(f,g),a.tableDnD.moveVerticle(e,c),a.tableDnD.moveHorizontal(e,c),!1)},findDragDirection:function(a,b){var c=this.currentTable.tableDnDConfig.sensitivity,d=this.oldX,e=this.oldY,f=d-c,g=d+c,h=e-c,i=e+c,j={horizontal:a>=f&&a<=g?0:a>d?-1:1,vertical:b>=h&&b<=i?0:b>e?-1:1};return 0!==j.horizontal&&(this.oldX=a),0!==j.vertical&&(this.oldY=b),j},findDropTargetRow:function(b,c){for(var d=0,e=this.currentTable.rows,f=this.currentTable.tableDnDConfig,g=0,h=null,i=0;ig-d&&c1&&a(this.currentTable.rows).each(function(){if((h=a(this).data("level"))>1)for(e=a(this).prev().data("level");h>e+1;)a(this).find("td:first").children(":first").remove(),a(this).data("level",--h)}),b.onDragClass&&a(d).removeClass(b.onDragClass)||a(d).css(b.onDropStyle),this.dragObject=null,b.onDrop&&this.originalOrder!==this.currentOrder()&&a(d).hide().fadeIn("fast")&&b.onDrop(this.currentTable,d),b.onDragStop&&b.onDragStop(this.currentTable,d),this.currentTable=null},mouseup:function(b){return b&&b.preventDefault(),a.tableDnD.processMouseup(),!1},jsonize:function(a){var b=this.currentTable;return a?JSON.stringify(this.tableData(b),null,b.tableDnDConfig.jsonPretifySeparator):JSON.stringify(this.tableData(b))},serialize:function(){return a.param(this.tableData(this.currentTable))},serializeTable:function(a){for(var b="",c=a.tableDnDConfig.serializeParamName||a.id,d=a.rows,e=0;e0&&(b+="&");var f=d[e].id;f&&a.tableDnDConfig&&a.tableDnDConfig.serializeRegexp&&(f=f.match(a.tableDnDConfig.serializeRegexp)[0],b+=c+"[]="+f)}return b},serializeTables:function(){var b=[];return a("table").each(function(){this.id&&b.push(a.param(a.tableDnD.tableData(this)))}),b.join("&")},tableData:function(b){var c,d,e,f,g=b.tableDnDConfig,h=[],i=0,j=0,k=null,l={};if(b||(b=this.currentTable),!b||!b.rows||!b.rows.length)return{error:{code:500,message:"Not a valid table."}};if(!b.id&&!g.serializeParamName)return{error:{code:500,message:"No serializable unique id provided."}};f=g.autoCleanRelations&&b.rows||a.makeArray(b.rows),d=g.serializeParamName||b.id,e=d,c=function(a){return a&&g&&g.serializeRegexp?a.match(g.serializeRegexp)[0]:a},l[e]=[],!g.autoCleanRelations&&a(f[0]).data("level")&&f.unshift({id:"undefined"});for(var m=0;mi)h.push([e,i]),e=c(f[m-1].id);else if(j=i&&(h[n][1]=0);i=j,a.isArray(l[e])||(l[e]=[]),k=c(f[m].id),k&&l[e].push(k)}else(k=c(f[m].id))&&l[e].push(k);return l}},jQuery.fn.extend({tableDnD:a.tableDnD.build,tableDnDUpdate:a.tableDnD.updateTables,tableDnDSerialize:a.proxy(a.tableDnD.serialize,a.tableDnD),tableDnDSerializeAll:a.tableDnD.serializeTables,tableDnDData:a.proxy(a.tableDnD.tableData,a.tableDnD)})}(jQuery,window,window.document); \ No newline at end of file From 0caf5ba9fd3a3c0eff8c87cfe1ffa5f5479eb522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 21:58:23 +0100 Subject: [PATCH 12/21] Edition de la traduction --- core/module/language/language.php | 38 ++++++++++++----------- core/module/language/view/index/index.php | 2 +- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/core/module/language/language.php b/core/module/language/language.php index db0d482c..a665013e 100644 --- a/core/module/language/language.php +++ b/core/module/language/language.php @@ -257,15 +257,12 @@ class language extends common helper::dateUTF8('%d/%m/%Y', $value['date'], self::$i18nUI), //self::$i18nUI === $file ? helper::translate('Interface') : '', '', - /* - template::button('translateContentLanguageUIEdit' . $file, [ - 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file, - 'value' => template::ico('pencil'), - 'help' => 'Éditer', - 'disabled' => 'fr_FR' === $file - ]), - */ - + template::button('translateContentLanguageUIEdit' . $file, [ + 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file, + 'value' => template::ico('pencil'), + 'help' => 'Éditer', + 'disabled' => 'fr_FR' === $file + ]), template::button('translateContentLanguageUIDownload' . $file, [ 'class' => isset($storeUI[$file]['version']) && version_compare($installedUI[$file]['version'], $storeUI[$file]['version']) < 0 ? 'buttonGreen' : '', 'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file, @@ -511,7 +508,7 @@ class language extends common $data[$key] = $target; } } - $this->secure_file_put_contents(self::I18N_DIR . $lang . '.json', $data); + file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($data)); // Mettre à jour le descripteur $this->setData([ @@ -539,13 +536,18 @@ class language extends common } // Ajout des champs absents selon la langue de référence - $dataFr = json_decode(file_get_contents(self::I18N_DIR . 'fr_FR.json'), true); - foreach ($dataFr as $key => $value) { - if (!array_key_exists($key, $data)) { - $data[$key] = ''; - } - } - $this->secure_file_put_contents(self::I18N_DIR . $lang . '.json', $data); + /* + $dataFr = json_decode(file_get_contents(self::I18N_DIR . 'fr_FR.json'), true); + foreach ($dataFr as $key => $value) { + if (!array_key_exists($key, $data)) { + $data[$key] = ''; + } + } + file_put_contents(self::I18N_DIR . $lang . '.json', $data); + */ + + // Trier le tableau + asort($data); // Tableau des chaines à traduire dans la langue sélectionnée foreach ($data as $key => $value) { @@ -568,7 +570,7 @@ class language extends common 'title' => helper::translate('Éditer les dialogues') . ' ' . template::flag($lang, '20 %'), 'view' => 'edit', 'vendor' => [ - 'flatpickr', + 'tablednd' ], ]); } diff --git a/core/module/language/view/index/index.php b/core/module/language/view/index/index.php index 9d27d8fa..e79f9454 100644 --- a/core/module/language/view/index/index.php +++ b/core/module/language/view/index/index.php @@ -37,7 +37,7 @@ - +
From a7cc18230b8a5440066cd3854bb737205635a8e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 21:58:23 +0100 Subject: [PATCH 13/21] changes --- CHANGES.md | 1 + core/module/language/language.php | 38 ++++++++++++----------- core/module/language/view/index/index.php | 2 +- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index bc12e714..0100a1cc 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ ## Versions 13.5.00 **Améliorations :** +- Réactivation de l'édition des dialogues des langues. - Double authentification par messagerie. Une clé est adressée par messagerie après la saisie du mot de passe et du captcha. - Validation de la connexion au site grâce à l'envoi d'un code par email. L'option est activée depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. - Optimisation du chargement des variables de classe. diff --git a/core/module/language/language.php b/core/module/language/language.php index db0d482c..a665013e 100644 --- a/core/module/language/language.php +++ b/core/module/language/language.php @@ -257,15 +257,12 @@ class language extends common helper::dateUTF8('%d/%m/%Y', $value['date'], self::$i18nUI), //self::$i18nUI === $file ? helper::translate('Interface') : '', '', - /* - template::button('translateContentLanguageUIEdit' . $file, [ - 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file, - 'value' => template::ico('pencil'), - 'help' => 'Éditer', - 'disabled' => 'fr_FR' === $file - ]), - */ - + template::button('translateContentLanguageUIEdit' . $file, [ + 'href' => helper::baseUrl() . $this->getUrl(0) . '/edit/' . $file, + 'value' => template::ico('pencil'), + 'help' => 'Éditer', + 'disabled' => 'fr_FR' === $file + ]), template::button('translateContentLanguageUIDownload' . $file, [ 'class' => isset($storeUI[$file]['version']) && version_compare($installedUI[$file]['version'], $storeUI[$file]['version']) < 0 ? 'buttonGreen' : '', 'href' => helper::baseUrl() . $this->getUrl(0) . '/update/' . $file, @@ -511,7 +508,7 @@ class language extends common $data[$key] = $target; } } - $this->secure_file_put_contents(self::I18N_DIR . $lang . '.json', $data); + file_put_contents(self::I18N_DIR . $lang . '.json', json_encode($data)); // Mettre à jour le descripteur $this->setData([ @@ -539,13 +536,18 @@ class language extends common } // Ajout des champs absents selon la langue de référence - $dataFr = json_decode(file_get_contents(self::I18N_DIR . 'fr_FR.json'), true); - foreach ($dataFr as $key => $value) { - if (!array_key_exists($key, $data)) { - $data[$key] = ''; - } - } - $this->secure_file_put_contents(self::I18N_DIR . $lang . '.json', $data); + /* + $dataFr = json_decode(file_get_contents(self::I18N_DIR . 'fr_FR.json'), true); + foreach ($dataFr as $key => $value) { + if (!array_key_exists($key, $data)) { + $data[$key] = ''; + } + } + file_put_contents(self::I18N_DIR . $lang . '.json', $data); + */ + + // Trier le tableau + asort($data); // Tableau des chaines à traduire dans la langue sélectionnée foreach ($data as $key => $value) { @@ -568,7 +570,7 @@ class language extends common 'title' => helper::translate('Éditer les dialogues') . ' ' . template::flag($lang, '20 %'), 'view' => 'edit', 'vendor' => [ - 'flatpickr', + 'tablednd' ], ]); } diff --git a/core/module/language/view/index/index.php b/core/module/language/view/index/index.php index 9d27d8fa..e79f9454 100644 --- a/core/module/language/view/index/index.php +++ b/core/module/language/view/index/index.php @@ -37,7 +37,7 @@ - +
From 1205065ddc9c6a6befc111d0267cd965c54582e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Fri, 20 Dec 2024 22:06:11 +0100 Subject: [PATCH 14/21] changes --- CHANGES.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 0100a1cc..8ebc12b3 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,7 +3,6 @@ ## Versions 13.5.00 **Améliorations :** - Réactivation de l'édition des dialogues des langues. -- Double authentification par messagerie. Une clé est adressée par messagerie après la saisie du mot de passe et du captcha. - Validation de la connexion au site grâce à l'envoi d'un code par email. L'option est activée depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. - Optimisation du chargement des variables de classe. - Suppression de redondance de déclaration des charset. From a1c7457a1dc1f5d9172689c2c21ac82f85d22c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 21 Dec 2024 21:56:24 +0100 Subject: [PATCH 15/21] =?UTF-8?q?13.5=20bouton=20d'=C3=A9dition=20actif=20?= =?UTF-8?q?d'une=20page=20dont=20le=20module=20a=20=C3=A9t=C3=A9=20supprim?= =?UTF-8?q?=C3=A9=20par=20FTP=20Mise=20=C3=A0=20jour=20du=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 8 +++++--- core/class/layout.class.php | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 8ebc12b3..8fb70d46 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,14 +3,16 @@ ## Versions 13.5.00 **Améliorations :** - Réactivation de l'édition des dialogues des langues. -- Validation de la connexion au site grâce à l'envoi d'un code par email. L'option est activée depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. +- Nouveau bouton de test de bon fonctionnement du serveur SMTP afin de valider la double authentification. +- Validation de la connexion au site avec un code adressé par email. L'option est disponible depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. - Optimisation du chargement des variables de classe. - Suppression de redondance de déclaration des charset. **Corrections :** -- Corrige un bug de changement de mot de passe pour les comptes non admins. +- Corrige un défaut d'affichage du bouton d'édition d'une page contenant un module ayant été supprimé sans passer par l'interface de gestion (FTP). +- Corrige un bug de changement de mot de passe pour les comptes non administrateurs. - Blog 7.12, corrige un bug d'affichage des articles lorsque le thème Moderne est sélectionné. -- Corrige un dysfonctionnement de la fonction de tronquage subword qui perturbait l'affichage des articles de blog. +- Corrige un dysfonctionnement de la fonction de tronquage qui perturbait l'affichage des articles de blog. - Activation de la mémorisation de l'onglet actif dans la configuration après validation du formulaire ou visite d'une autre page du site. - À l'installation, le bouton back mémorise la langue sélectionnée à la première étape. - Corrige un bug de mise à jour en ligne du fichier des langues. diff --git a/core/class/layout.class.php b/core/class/layout.class.php index 92ff79c1..ad85568a 100644 --- a/core/class/layout.class.php +++ b/core/class/layout.class.php @@ -998,8 +998,8 @@ class layout extends common // Sur une page sans module or $this->getData(['page', $this->getUrl(0), 'moduleId']) === '' // Sur une page avec un module invalide - or (!is_null($this->getData(['page', $this->getUrl(2), 'moduleId'])) and - !class_exists($this->getData(['page', $this->getUrl(2), 'moduleId'])) + or (empty($this->getData(['page', $this->getUrl(0), 'moduleId'])) === false + and class_exists($this->getData(['page', $this->getUrl(0), 'moduleId'])) === false ) // Sur une page d'accueil or $this->getUrl(0) === '' @@ -1019,6 +1019,7 @@ class layout extends common $this->getUser('permission', 'page', 'module') and $this->geturl(1) !== 'edit' and $this->getData(['page', $this->getUrl(0), 'moduleId']) + and class_exists($this->getData(['page', $this->getUrl(0), 'moduleId'])) === true ) { $leftItems .= '
  • ' . template::ico('gear', [ 'href' => helper::baseUrl() . $this->getUrl(0) . '/config', From 3ef6d5b1e7984381ac8c77dfec98a7b66e09bf9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 21 Dec 2024 22:46:56 +0100 Subject: [PATCH 16/21] =?UTF-8?q?13.5=20=20Configuration=20du=20site,=20la?= =?UTF-8?q?=20page=20ne=20se=20recharge=20plus=20apr=C3=A8s=20un=20changem?= =?UTF-8?q?ent=20d'onglet.=20Le=20dernier=20onglet=20vu=20avant=20un=20sub?= =?UTF-8?q?mit=20est=20m=C3=A9moris=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/config/config.php | 32 ++++++++-------------- core/module/config/view/index/index.js.php | 4 +++ core/module/config/view/index/index.php | 9 +++--- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/core/module/config/config.php b/core/module/config/config.php index dde6bff9..d4220027 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -31,7 +31,6 @@ class config extends common 'logDownload' => self::GROUP_ADMIN, 'blacklistReset' => self::GROUP_ADMIN, 'blacklistDownload' => self::GROUP_ADMIN, - 'register' => self::GROUP_ADMIN, 'testmail' => self::GROUP_ADMIN, ]; @@ -503,6 +502,17 @@ class config extends common ] ]); + // Sauvegarde la position des onglets de la vue de l'utilisateur courant + $this->setData([ + 'user', + $this->getUser('id'), + 'view', + [ + 'config' => $this->getInput('containerSelected'), + 'page' => $this->getData(['user', $this->getUser('id'), 'view', 'page']), + ] + ]); + // Efface les fichiers de backup lorsque l'option est désactivée if ($this->getInput('configFileBackup', helper::FILTER_BOOLEAN) === false) { $path = realpath('site/data'); @@ -922,26 +932,6 @@ class config extends common } } - /** - * Stocke la variable dans les paramètres de l'utilisateur pour activer la tab à sa prochaine visite - * @return never - */ - public function register(): void - { - $this->setData([ - 'user', - $this->getUser('id'), - 'view', - [ - 'config' => $this->getUrl(2), - 'page' => $this->getData(['user', $this->getUser('id'), 'view', 'page']), - ] - ]); - // Valeurs en sortie - $this->addOutput([ - 'redirect' => helper::baseUrl() . 'config/' . $this->getUrl(2), - ]); - } /** * Envoi un message de test diff --git a/core/module/config/view/index/index.js.php b/core/module/config/view/index/index.js.php index c4a6501a..418b778d 100644 --- a/core/module/config/view/index/index.js.php +++ b/core/module/config/view/index/index.js.php @@ -162,6 +162,7 @@ $(document).ready(function () { $("#connectContainer").hide(); $("#networkContainer").hide(); $("#setupContainer").show(); + document.getElementById("containerSelected").value = "setup"; $("#configSetupButton").addClass("activeButton"); $("#configSocialButton").removeClass("activeButton"); $("#configConnectButton").removeClass("activeButton"); @@ -172,6 +173,7 @@ $(document).ready(function () { $("#setupContainer").hide(); $("#networkContainer").hide(); $("#socialContainer").show(); + document.getElementById("containerSelected").value = "social"; $("#configSetupButton").removeClass("activeButton"); $("#configSocialButton").addClass("activeButton"); $("#configConnectButton").removeClass("activeButton"); @@ -182,6 +184,7 @@ $(document).ready(function () { $("#socialContainer").hide(); $("#networkContainer").hide(); $("#connectContainer").show(); + document.getElementById("containerSelected").value = "connect"; $("#configSetupButton").removeClass("activeButton"); $("#configSocialButton").removeClass("activeButton"); $("#configConnectButton").addClass("activeButton"); @@ -192,6 +195,7 @@ $(document).ready(function () { $("#socialContainer").hide(); $("#connectContainer").hide(); $("#networkContainer").show(); + document.getElementById("containerSelected").value = "network"; $("#configSetupButton").removeClass("activeButton"); $("#configSocialButton").removeClass("activeButton"); $("#configConnectButton").removeClass("activeButton"); diff --git a/core/module/config/view/index/index.php b/core/module/config/view/index/index.php index 5551fb4c..2e676fbd 100644 --- a/core/module/config/view/index/index.php +++ b/core/module/config/view/index/index.php @@ -22,26 +22,25 @@ 'Configuration', 'class' => 'buttonTab', - 'href' => helper::baseUrl() . 'config/register/setup' ]); ?> 'Référencement', 'class' => 'buttonTab', - 'href' => helper::baseUrl() . 'config/register/social' ]); ?> - 'Connexion', 'class' => 'buttonTab', - 'href' => helper::baseUrl() . 'config/register/connect' ]); ?> 'Réseau', 'class' => 'buttonTab', - 'href' => helper::baseUrl() . 'config/register/network' ]); ?> + + + + From 71bc687ad6ad5c0e38f7e169bf08eb7f61a30599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 21 Dec 2024 22:49:01 +0100 Subject: [PATCH 17/21] change --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 8fb70d46..ecba20fd 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ ## Versions 13.5.00 **Améliorations :** +- Après un changement d'onglet dans la page de configuration, la page ne se recharge plus. Le dernier onglet affiché avant un submit est mémorisé dans les vues de l'utilisateur. - Réactivation de l'édition des dialogues des langues. - Nouveau bouton de test de bon fonctionnement du serveur SMTP afin de valider la double authentification. - Validation de la connexion au site avec un code adressé par email. L'option est disponible depuis la configuration du site, onglet connexion. Elle s'active par groupe montant, exemple "éditeur" pour éditeurs et administrateurs. From dfc0ff7cd04bad93a4f7912a155dfb6b22201ec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Mon, 23 Dec 2024 15:21:30 +0100 Subject: [PATCH 18/21] Messages de redirection --- core/module/install/ressource/i18n/en_EN.json | 4 +++- core/module/install/ressource/i18n/es.json | 4 +++- core/module/install/ressource/i18n/fr_FR.json | 4 +++- core/module/user/user.php | 24 +++++++++++-------- core/module/user/view/auth/auth.php | 2 +- 5 files changed, 24 insertions(+), 14 deletions(-) diff --git a/core/module/install/ressource/i18n/en_EN.json b/core/module/install/ressource/i18n/en_EN.json index bfa75c6a..16be19ce 100644 --- a/core/module/install/ressource/i18n/en_EN.json +++ b/core/module/install/ressource/i18n/en_EN.json @@ -700,5 +700,7 @@ "Connexion réussie": "Login successful", "Erreur de mot de passe": "Password error", "Erreur de captcha": "Captcha error", - "Clé envoyée par message": "Key sent via message" + "Clé envoyée par message": "Key sent via message", + "Message de test": "Test message", + "Clé d'authentification envoyée à votre adresse mail %s": "Authentication key sent to your email address %s" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/es.json b/core/module/install/ressource/i18n/es.json index 6284334d..b54826f6 100644 --- a/core/module/install/ressource/i18n/es.json +++ b/core/module/install/ressource/i18n/es.json @@ -700,5 +700,7 @@ "Connexion réussie": "Conexión exitosa", "Erreur de mot de passe": "Error de contraseña", "Erreur de captcha": "Error de captcha", - "Clé envoyée par message": "Clave enviada por mensaje" + "Clé envoyée par message": "Clave enviada por mensaje", + "Message de test": "Mensaje de prueba", + "Clé d'authentification envoyée à votre adresse mail %s": "Clave de autenticación enviada a su dirección de correo electrónico %s" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/fr_FR.json b/core/module/install/ressource/i18n/fr_FR.json index 0e55bf62..475820bc 100644 --- a/core/module/install/ressource/i18n/fr_FR.json +++ b/core/module/install/ressource/i18n/fr_FR.json @@ -700,5 +700,7 @@ "Connexion réussie": "", "Erreur de mot de passe": "", "Erreur de captcha": "", - "Clé envoyée par message": "" + "Clé envoyée par message": "", + "Message de test": "", + "Clé d'authentification envoyée à votre adresse mail %s": "" } \ No newline at end of file diff --git a/core/module/user/user.php b/core/module/user/user.php index 8dca1255..e6422461 100644 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -980,6 +980,7 @@ class user extends common ) { // Lire Id du compte $userId = $this->getInput('userLoginId', helper::FILTER_ID, true); + $notification = ''; // Check le captcha if ( $this->getData(['config', 'connect', 'captcha']) @@ -1093,11 +1094,13 @@ class user extends common // L'email a été envoyé avec succès, redirection vers la page de double authentification if ($sent === true) { + // Journalisation $logStatus = helper::translate('Envoi du message d\'authentification'); // Redirection vers la page d'authentification $authRedirect = 'user/auth/'; // Stocker la clé envoyée par email $this->setData(['user', $userId, 'authKey', $keyByMail]); + $notification = sprintf('Clé d\'authentification envoyée à votre adresse mail %s', $this->getData(['user', $userId, 'mail'])); } else { // Impossible d'envoyer le message // Double authentification désactivée @@ -1105,9 +1108,11 @@ class user extends common $this->setData(['user', $userId, 'authKey', $authKey]); // Journalisation $this->saveLog($sent); + $notification = sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])); } } else { $logStatus = helper::translate('Connexion réussie'); + $notification = sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])); $this->setData(['user', $userId, 'authKey', $authKey]); } @@ -1142,7 +1147,7 @@ class user extends common $redirect = ($pageId && strpos($pageId, 'user_reset') !== 0) ? helper::baseUrl() . $authRedirect . str_replace('_', '/', str_replace('__', '#', $pageId)) : helper::baseUrl() . $authRedirect; // Valeurs en sortie $this->addOutput([ - 'notification' => sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])), + 'notification' => $notification, 'redirect' => $redirect, 'state' => true ]); @@ -1202,24 +1207,24 @@ class user extends common // Vérifier la clé saisie $targetKey = $this->getData(['user', $this->getUser('id'), 'authKey']); $inputKey = $this->getInput('userAuthKey', helper::FILTER_INT); + // Redirection + $pageId = $this->getUrl(2); + $redirect = $pageId? helper::baseUrl() . $pageId : helper::baseUrl() ; if ( // La clé est valide ou le message n'ayant pas été expédié, la double authentification est désactivée $targetKey === $inputKey || $this->getData(['config', 'connect', 'mailAuth', 0]) === 0 ) { - - // Redirection - $pageId = $this->getUrl(2); + // La fiche de l'utilisateur contient la clé d'authentification $this->setData(['user', $this->getUser('id'), 'authKey', $this->getInput('ZWII_AUTH_KEY')]); - $redirect = ($pageId && strpos($pageId, 'user_reset') !== 0) ? helper::baseUrl() . str_replace('_', '/', str_replace('__', '#', $pageId)) : helper::baseUrl(); // Journalisation $this->saveLog('Connexion réussie'); - // Réinitialiser le compteur de temps - $this->setData(['user', $this->getUser('id'), 'connectTimeout', 0]); + // Utilisateur connecté + $userId = $this->getUser('id'); // Valeurs en sortie $this->addOutput([ 'redirect' => $redirect, - 'notification' => helper::translate('Connexion réussie'), + 'notification' => sprintf(helper::translate('Bienvenue %s %s'), $this->getData(['user', $userId, 'firstname']), $this->getData(['user', $userId, 'lastname'])), 'state' => true ]); } else { @@ -1238,10 +1243,9 @@ class user extends common // Journalisation $this->saveLog('Erreur de vérification de la clé envoyée par email ' . $this->getUser('id')); - // Valeurs en sortie $this->addOutput([ - 'redirect' => helper::baseUrl() . 'user/auth', + 'redirect' => $redirect, 'notification' => helper::translate('La clé est incorrecte'), 'state' => false ]); diff --git a/core/module/user/view/auth/auth.php b/core/module/user/view/auth/auth.php index fdcc801c..07e92e3e 100644 --- a/core/module/user/view/auth/auth.php +++ b/core/module/user/view/auth/auth.php @@ -9,7 +9,7 @@
    $this->getUrl(2) ? helper::baseUrl() . ' user/login' . str_replace('_', '/', str_replace('__', '#', $this->getUrl(2))) : helper::baseUrl() . ' user/login', + 'href' => $this->getUrl(2) ? helper::baseUrl() . 'user/login/' . str_replace('_', '/', str_replace('__', '#', $this->getUrl(2))) : helper::baseUrl() . 'user/login', 'value' => template::ico('left') ]); ?>
    From 3af3dcd68198e62a00e4c048a9ec385d0aec3cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Mon, 23 Dec 2024 15:24:11 +0100 Subject: [PATCH 19/21] 2018-2025 --- core/core.js.php | 2 +- core/core.php | 2 +- core/layout/blank.css | 2 +- core/layout/common.css | 2 +- core/layout/light.css | 2 +- core/module/config/config.php | 2 +- core/module/config/view/backup/backup.css | 2 +- core/module/config/view/backup/backup.js.php | 2 +- core/module/config/view/index/index.css | 2 +- core/module/config/view/index/index.js.php | 2 +- core/module/config/view/restore/restore.css | 2 +- core/module/config/view/restore/restore.js.php | 2 +- core/module/config/view/script/script.css | 2 +- core/module/dashboard/dashboard.php | 2 +- core/module/install/install.php | 2 +- core/module/install/view/index/index.css | 2 +- .../install/view/postinstall/postinstall.css | 2 +- .../install/view/postinstall/postinstall.js.php | 2 +- core/module/install/view/update/update.css | 2 +- core/module/language/language.php | 2 +- core/module/language/view/add/add.css | 2 +- core/module/language/view/copy/copy.css | 2 +- core/module/language/view/edit/edit.css | 2 +- core/module/language/view/index/index.css | 2 +- core/module/language/view/index/index.js.php | 2 +- core/module/language/view/locale/locale.css | 2 +- core/module/maintenance/maintenance.php | 2 +- core/module/page/page.php | 2 +- core/module/page/view/cssEditor/cssEditor.css | 2 +- core/module/page/view/edit/edit.css | 2 +- core/module/page/view/edit/edit.js.php | 2 +- core/module/page/view/jsEditor/jsEditor.css | 2 +- core/module/plugin/plugin.php | 2 +- core/module/plugin/view/index/index.css | 2 +- core/module/plugin/view/item/item.css | 2 +- core/module/plugin/view/store/store.css | 2 +- core/module/plugin/view/upload/upload.css | 2 +- core/module/sitemap/sitemap.php | 2 +- core/module/sitemap/view/index/index.css | 2 +- core/module/theme/theme.php | 2 +- core/module/theme/view/admin/admin.css | 2 +- core/module/theme/view/advanced/advanced.css | 2 +- core/module/theme/view/advanced/advanced.js.php | 2 +- core/module/theme/view/body/body.css | 2 +- core/module/theme/view/body/body.js.php | 2 +- core/module/theme/view/font/font.css | 2 +- core/module/theme/view/font/font.js.php | 2 +- core/module/theme/view/fontAdd/fontAdd.css | 2 +- core/module/theme/view/fontAdd/fontAdd.js.php | 2 +- core/module/theme/view/fontEdit/fontEdit.css | 2 +- core/module/theme/view/fontEdit/fontEdit.js.php | 2 +- core/module/theme/view/footer/footer.css | 2 +- core/module/theme/view/footer/footer.js.php | 2 +- core/module/theme/view/header/header.css | 2 +- core/module/theme/view/header/header.js.php | 2 +- core/module/theme/view/index/index.css | 2 +- core/module/theme/view/index/index.js.php | 2 +- core/module/theme/view/manage/manage.css | 2 +- core/module/theme/view/manage/manage.js.php | 2 +- core/module/theme/view/menu/menu.css | 2 +- core/module/theme/view/menu/menu.js.php | 2 +- core/module/theme/view/site/site.css | 2 +- core/module/theme/view/site/site.js.php | 2 +- core/module/user/user.php | 2 +- core/module/user/view/add/add.css | 2 +- core/module/user/view/add/add.js.php | 2 +- core/module/user/view/auth/auth.css | 4 +--- core/module/user/view/auth/auth.js.php | 15 +++++++++++++++ core/module/user/view/edit/edit.css | 2 +- core/module/user/view/edit/edit.js.php | 2 +- core/module/user/view/import/import.css | 2 +- core/module/user/view/index/index.css | 2 +- core/module/user/view/index/index.js.php | 2 +- core/module/user/view/login/login.css | 2 +- core/module/user/view/login/login.js.php | 2 +- core/module/user/view/profil/profil.css | 2 +- core/module/user/view/profil/profil.js.php | 2 +- core/module/user/view/profilAdd/profilAdd.css | 2 +- core/module/user/view/profilAdd/profilAdd.js.php | 2 +- core/module/user/view/profilEdit/profilEdit.css | 2 +- .../module/user/view/profilEdit/profilEdit.js.php | 2 +- core/module/user/view/reset/reset.css | 2 +- index.php | 2 +- module/blog/blog.php | 2 +- module/blog/view/add/add.css | 2 +- module/blog/view/add/add.js.php | 2 +- module/blog/view/article/article.js.php | 2 +- module/blog/view/comment/comment.css | 2 +- module/blog/view/comment/comment.js.php | 2 +- module/blog/view/config/config.css | 2 +- module/blog/view/config/config.js.php | 2 +- module/blog/view/edit/edit.css | 2 +- module/blog/view/edit/edit.js.php | 2 +- module/blog/view/option/option.css | 2 +- module/blog/view/option/option.js.php | 2 +- module/form/form.php | 4 ++-- module/form/view/config/config.css | 2 +- module/form/view/config/config.js.php | 2 +- module/form/view/data/data.css | 2 +- module/form/view/data/data.js.php | 2 +- module/form/view/index/index.css | 2 +- module/form/view/option/option.css | 2 +- module/gallery/gallery.php | 2 +- module/gallery/view/add/add.css | 2 +- module/gallery/view/add/add.js.php | 2 +- module/gallery/view/config/config.css | 2 +- module/gallery/view/config/config.js.php | 2 +- module/gallery/view/edit/edit.css | 2 +- module/gallery/view/edit/edit.js.php | 2 +- module/gallery/view/gallery/gallery.css | 2 +- module/gallery/view/gallery/gallery.js.php | 2 +- module/gallery/view/option/option.css | 2 +- module/gallery/view/option/option.js.php | 2 +- module/gallery/view/theme/theme.css | 2 +- module/news/news.php | 2 +- module/news/view/add/add.css | 2 +- module/news/view/add/add.js.php | 2 +- module/news/view/article/article.css | 2 +- module/news/view/config/config.css | 2 +- module/news/view/config/config.js.php | 2 +- module/news/view/edit/edit.css | 2 +- module/news/view/edit/edit.js.php | 2 +- module/news/view/index/index.css | 2 +- module/news/view/option/option.css | 2 +- module/news/view/option/option.js.php | 2 +- module/redirection/redirection.php | 2 +- module/redirection/view/config/config.css | 2 +- module/redirection/view/index/index.css | 2 +- module/search/search.php | 2 +- module/search/view/config/config.css | 2 +- module/search/view/index/index.css | 2 +- module/slider/view/config/config.css | 2 +- module/slider/view/index/index.css | 2 +- module/slider/view/index/index.js.php | 2 +- module/slider/view/theme/theme.css | 2 +- module/slider/view/update/update.css | 2 +- 136 files changed, 151 insertions(+), 138 deletions(-) create mode 100644 core/module/user/view/auth/auth.js.php diff --git a/core/core.js.php b/core/core.js.php index ee063b9f..a76fab4a 100644 --- a/core/core.js.php +++ b/core/core.js.php @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/core.php b/core/core.php index e17c673f..7cfaad6b 100644 --- a/core/core.php +++ b/core/core.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/layout/blank.css b/core/layout/blank.css index 453baeeb..0afef154 100755 --- a/core/layout/blank.css +++ b/core/layout/blank.css @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/layout/common.css b/core/layout/common.css index 467784c7..455845b3 100755 --- a/core/layout/common.css +++ b/core/layout/common.css @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/layout/light.css b/core/layout/light.css index 239ac5df..8581e894 100755 --- a/core/layout/light.css +++ b/core/layout/light.css @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/config.php b/core/module/config/config.php index d4220027..acd9864d 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -9,7 +9,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/backup/backup.css b/core/module/config/view/backup/backup.css index cd81fa30..59f0860e 100755 --- a/core/module/config/view/backup/backup.css +++ b/core/module/config/view/backup/backup.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/backup/backup.js.php b/core/module/config/view/backup/backup.js.php index d59309f9..f6c1052a 100644 --- a/core/module/config/view/backup/backup.js.php +++ b/core/module/config/view/backup/backup.js.php @@ -5,7 +5,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/index/index.css b/core/module/config/view/index/index.css index 115750df..84ca64a1 100755 --- a/core/module/config/view/index/index.css +++ b/core/module/config/view/index/index.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/index/index.js.php b/core/module/config/view/index/index.js.php index 418b778d..4e308beb 100644 --- a/core/module/config/view/index/index.js.php +++ b/core/module/config/view/index/index.js.php @@ -5,7 +5,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/restore/restore.css b/core/module/config/view/restore/restore.css index b6eeb0e0..eda968fd 100644 --- a/core/module/config/view/restore/restore.css +++ b/core/module/config/view/restore/restore.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/restore/restore.js.php b/core/module/config/view/restore/restore.js.php index c8a4708d..a2b2531a 100644 --- a/core/module/config/view/restore/restore.js.php +++ b/core/module/config/view/restore/restore.js.php @@ -5,7 +5,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/config/view/script/script.css b/core/module/config/view/script/script.css index b6eeb0e0..eda968fd 100755 --- a/core/module/config/view/script/script.css +++ b/core/module/config/view/script/script.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/dashboard/dashboard.php b/core/module/dashboard/dashboard.php index 3e4faf72..8c95a463 100644 --- a/core/module/dashboard/dashboard.php +++ b/core/module/dashboard/dashboard.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/install/install.php b/core/module/install/install.php index d32008e7..bf2f5198 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/install/view/index/index.css b/core/module/install/view/index/index.css index b6eeb0e0..eda968fd 100755 --- a/core/module/install/view/index/index.css +++ b/core/module/install/view/index/index.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/install/view/postinstall/postinstall.css b/core/module/install/view/postinstall/postinstall.css index 31eac7c9..fde06b97 100644 --- a/core/module/install/view/postinstall/postinstall.css +++ b/core/module/install/view/postinstall/postinstall.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/install/view/postinstall/postinstall.js.php b/core/module/install/view/postinstall/postinstall.js.php index 1b16f77e..9d47f151 100644 --- a/core/module/install/view/postinstall/postinstall.js.php +++ b/core/module/install/view/postinstall/postinstall.js.php @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/install/view/update/update.css b/core/module/install/view/update/update.css index b6eeb0e0..eda968fd 100755 --- a/core/module/install/view/update/update.css +++ b/core/module/install/view/update/update.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/language.php b/core/module/language/language.php index a665013e..b8871440 100644 --- a/core/module/language/language.php +++ b/core/module/language/language.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/add/add.css b/core/module/language/view/add/add.css index b6eba9b4..e279262e 100644 --- a/core/module/language/view/add/add.css +++ b/core/module/language/view/add/add.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/copy/copy.css b/core/module/language/view/copy/copy.css index b6eba9b4..e279262e 100644 --- a/core/module/language/view/copy/copy.css +++ b/core/module/language/view/copy/copy.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/edit/edit.css b/core/module/language/view/edit/edit.css index b6eba9b4..e279262e 100644 --- a/core/module/language/view/edit/edit.css +++ b/core/module/language/view/edit/edit.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/index/index.css b/core/module/language/view/index/index.css index 8b524ad5..4b6160d0 100644 --- a/core/module/language/view/index/index.css +++ b/core/module/language/view/index/index.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/index/index.js.php b/core/module/language/view/index/index.js.php index 64082e39..88cc22e6 100644 --- a/core/module/language/view/index/index.js.php +++ b/core/module/language/view/index/index.js.php @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/language/view/locale/locale.css b/core/module/language/view/locale/locale.css index b6eba9b4..e279262e 100644 --- a/core/module/language/view/locale/locale.css +++ b/core/module/language/view/locale/locale.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/maintenance/maintenance.php b/core/module/maintenance/maintenance.php index aed02778..24560862 100644 --- a/core/module/maintenance/maintenance.php +++ b/core/module/maintenance/maintenance.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/page/page.php b/core/module/page/page.php index c5b6cb91..f6a7461f 100644 --- a/core/module/page/page.php +++ b/core/module/page/page.php @@ -9,7 +9,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/page/view/cssEditor/cssEditor.css b/core/module/page/view/cssEditor/cssEditor.css index b6eeb0e0..eda968fd 100644 --- a/core/module/page/view/cssEditor/cssEditor.css +++ b/core/module/page/view/cssEditor/cssEditor.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/page/view/edit/edit.css b/core/module/page/view/edit/edit.css index e0396a9b..d23b63c6 100755 --- a/core/module/page/view/edit/edit.css +++ b/core/module/page/view/edit/edit.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/page/view/edit/edit.js.php b/core/module/page/view/edit/edit.js.php index 4c05eb05..b959f8b6 100644 --- a/core/module/page/view/edit/edit.js.php +++ b/core/module/page/view/edit/edit.js.php @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @authorFrédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/page/view/jsEditor/jsEditor.css b/core/module/page/view/jsEditor/jsEditor.css index b6eeb0e0..eda968fd 100644 --- a/core/module/page/view/jsEditor/jsEditor.css +++ b/core/module/page/view/jsEditor/jsEditor.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/plugin/plugin.php b/core/module/plugin/plugin.php index 5d053995..cd3f7bba 100644 --- a/core/module/plugin/plugin.php +++ b/core/module/plugin/plugin.php @@ -9,7 +9,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/plugin/view/index/index.css b/core/module/plugin/view/index/index.css index 742a8ae1..c6f38080 100644 --- a/core/module/plugin/view/index/index.css +++ b/core/module/plugin/view/index/index.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/plugin/view/item/item.css b/core/module/plugin/view/item/item.css index ba89fdb4..cc923d39 100644 --- a/core/module/plugin/view/item/item.css +++ b/core/module/plugin/view/item/item.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/plugin/view/store/store.css b/core/module/plugin/view/store/store.css index b6eeb0e0..eda968fd 100644 --- a/core/module/plugin/view/store/store.css +++ b/core/module/plugin/view/store/store.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/plugin/view/upload/upload.css b/core/module/plugin/view/upload/upload.css index b6eeb0e0..eda968fd 100644 --- a/core/module/plugin/view/upload/upload.css +++ b/core/module/plugin/view/upload/upload.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/sitemap/sitemap.php b/core/module/sitemap/sitemap.php index aea957c0..7cb87f9f 100644 --- a/core/module/sitemap/sitemap.php +++ b/core/module/sitemap/sitemap.php @@ -8,7 +8,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/sitemap/view/index/index.css b/core/module/sitemap/view/index/index.css index dcf18e34..3f4fbdcb 100755 --- a/core/module/sitemap/view/index/index.css +++ b/core/module/sitemap/view/index/index.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 59c17741..3f1d9c54 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -11,7 +11,7 @@ * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ * @copyright : Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez */ class theme extends common diff --git a/core/module/theme/view/admin/admin.css b/core/module/theme/view/admin/admin.css index f149ed01..0c21b77a 100755 --- a/core/module/theme/view/admin/admin.css +++ b/core/module/theme/view/admin/admin.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/advanced/advanced.css b/core/module/theme/view/advanced/advanced.css index b6eeb0e0..eda968fd 100755 --- a/core/module/theme/view/advanced/advanced.css +++ b/core/module/theme/view/advanced/advanced.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/advanced/advanced.js.php b/core/module/theme/view/advanced/advanced.js.php index 573a5727..80ac17cf 100644 --- a/core/module/theme/view/advanced/advanced.js.php +++ b/core/module/theme/view/advanced/advanced.js.php @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/body/body.css b/core/module/theme/view/body/body.css index 7d4e6050..b828e522 100755 --- a/core/module/theme/view/body/body.css +++ b/core/module/theme/view/body/body.css @@ -7,7 +7,7 @@ * @copyright Copyright (C) 2008-2018, Rémi Jean * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/body/body.js.php b/core/module/theme/view/body/body.js.php index 038de1a6..9c6f1e03 100644 --- a/core/module/theme/view/body/body.js.php +++ b/core/module/theme/view/body/body.js.php @@ -6,7 +6,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/font/font.css b/core/module/theme/view/font/font.css index b6eeb0e0..eda968fd 100644 --- a/core/module/theme/view/font/font.css +++ b/core/module/theme/view/font/font.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/font/font.js.php b/core/module/theme/view/font/font.js.php index 376fc6ca..43a96c9a 100644 --- a/core/module/theme/view/font/font.js.php +++ b/core/module/theme/view/font/font.js.php @@ -4,7 +4,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/fontAdd/fontAdd.css b/core/module/theme/view/fontAdd/fontAdd.css index 43a6e581..ac0f2e52 100644 --- a/core/module/theme/view/fontAdd/fontAdd.css +++ b/core/module/theme/view/fontAdd/fontAdd.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/fontAdd/fontAdd.js.php b/core/module/theme/view/fontAdd/fontAdd.js.php index 4d955b19..74b61158 100644 --- a/core/module/theme/view/fontAdd/fontAdd.js.php +++ b/core/module/theme/view/fontAdd/fontAdd.js.php @@ -4,7 +4,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/fontEdit/fontEdit.css b/core/module/theme/view/fontEdit/fontEdit.css index b6eeb0e0..eda968fd 100644 --- a/core/module/theme/view/fontEdit/fontEdit.css +++ b/core/module/theme/view/fontEdit/fontEdit.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/fontEdit/fontEdit.js.php b/core/module/theme/view/fontEdit/fontEdit.js.php index b7f5db99..a5304db0 100644 --- a/core/module/theme/view/fontEdit/fontEdit.js.php +++ b/core/module/theme/view/fontEdit/fontEdit.js.php @@ -4,7 +4,7 @@ * file that was distributed with this source code. * * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/footer/footer.css b/core/module/theme/view/footer/footer.css index 638ceb4a..37a87cf0 100755 --- a/core/module/theme/view/footer/footer.css +++ b/core/module/theme/view/footer/footer.css @@ -7,7 +7,7 @@ * @author Rémi Jean * @copyright Copyright (C) 2008-2018, Rémi Jean * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @link http://zwiicms.fr/ */ diff --git a/core/module/theme/view/footer/footer.js.php b/core/module/theme/view/footer/footer.js.php index 03bf3818..470fddb3 100644 --- a/core/module/theme/view/footer/footer.js.php +++ b/core/module/theme/view/footer/footer.js.php @@ -8,7 +8,7 @@ * @copyright Copyright (C) 2008-2018, Rémi Jean * @license CC Attribution-NonCommercial-NoDerivatives 4.0 International * @author Frédéric Tempez - * @copyright Copyright (C) 2018-2024, Frédéric Tempez + * @copyright Copyright (C) 2018-2025, Frédéric Tempez * @link http://zwiicms.fr/ */ $("input, select").on("change",(function(){var e=$("#themeFooterFont :selected").val(),o=$("#themeFooterFont :selected").text(),t="@import url('https://fonts.cdnfonts.com/css/"+e+"');",i=core.colorVariants($("#themeFooterBackgroundColor").val()),r=$("#themeFooterTextColor").val();t="footer {background-color:"+i.normal+";color:"+r+"}";switch(t+="footer a{color:"+r+"}",t+=".editorWysiwyg{background-color:"+i.normal+" !important; color:"+r+" !important;}",t+="footer #footersite > div{margin:"+$("#themeFooterHeight").val()+" 0}",t+="footer #footerbody > div{margin:"+$("#themeFooterHeight").val()+" 0}",t+="#footerSocials{text-align:"+$("#themeFooterSocialsAlign").val()+"}",t+="#footerText > p {text-align:"+$("#themeFooterTextAlign").val()+"}",t+="#footerCopyright{text-align:"+$("#themeFooterCopyrightAlign").val()+"}",t+="footer span, #footerText > p {color:"+$("#themeFooterTextColor").val()+";font-family:'"+o+"',sans-serif;font-weight:"+$("#themeFooterFontWeight").val()+";font-size:"+$("#themeFooterFontSize").val()+";text-transform:"+$("#themeFooterTextTransform").val()+"}",$("#themeFooterMargin").is(":checked")?t+="footer{padding: 0 20px;}":t+="footer{padding:0}",$("#themePreview").remove(),$("