From 6c7f826373cd83a01d8a9477f16e420fb38c5f3e Mon Sep 17 00:00:00 2001
From: Folio Mikael <milykim@hotmail.fr>
Date: Tue, 30 Jan 2024 11:35:02 +0100
Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20langues=20pour=20le=20pl?=
 =?UTF-8?q?ugin?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../base/design_system_admin.php              |   54 +
 design_system_admin/css/dsfr-child.css        |   10 +-
 design_system_admin/css/mycustom.css          | 1119 ++++++++++++++---
 design_system_admin/css/plugin-dse.css        |   11 +-
 .../formulaires/aide/aide_masquer_langue.php  |    9 +
 .../composants/composant_langue_numeric.php   |   12 +
 .../composants/composant_masquer_langue.php   |   32 +
 .../configurer_design_system_admin.html       |   53 +
 .../configurer_design_system_admin.php        |   15 +-
 design_system_admin/js/myscripts.js           |    4 +-
 .../js/tarteaucitron/lang/tarteaucitron.fr.js |    2 +-
 .../lang/design_system_admin_en.php           |  164 +++
 .../lang/design_system_admin_fr.php           |   29 +
 .../prive/javascript/dsfrconfiguration.js     |    4 +
 14 files changed, 1370 insertions(+), 148 deletions(-)
 create mode 100644 design_system_admin/formulaires/aide/aide_masquer_langue.php
 create mode 100644 design_system_admin/formulaires/composants/composant_langue_numeric.php
 create mode 100644 design_system_admin/formulaires/composants/composant_masquer_langue.php
 create mode 100644 design_system_admin/lang/design_system_admin_en.php

diff --git a/design_system_admin/base/design_system_admin.php b/design_system_admin/base/design_system_admin.php
index 9e04612..72ed809 100644
--- a/design_system_admin/base/design_system_admin.php
+++ b/design_system_admin/base/design_system_admin.php
@@ -519,6 +519,58 @@ function design_system_admin_declarer_tables_objets_sql($tables) {
 				'option_name' => 'elements_recherche',
 				'option_value' => '10',
 			),
+			array(
+				'option_name' => '_masquer_langue',
+				'option_value' => 'oui',
+			),
+			array(
+				'option_name' => 'nombre_de_langue',
+				'option_value' => '1',
+			),
+			array(
+				'option_name' => 'langue_par_defaut',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'langue_1',
+				'option_value' => 'Français',
+			),
+			array(
+				'option_name' => 'value_langue_1',
+				'option_value' => 'fr',
+			),
+			array(
+				'option_name' => 'langue_2',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'value_langue_2',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'langue_3',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'value_langue_3',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'langue_4',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'value_langue_4',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'langue_5',
+				'option_value' => '',
+			),
+			array(
+				'option_name' => 'value_langue_5',
+				'option_value' => '',
+			),
 		);
 
 		foreach ($insertion_defaut as $insert) {
@@ -530,3 +582,5 @@ function design_system_admin_declarer_tables_objets_sql($tables) {
 }
 
 
+
+
diff --git a/design_system_admin/css/dsfr-child.css b/design_system_admin/css/dsfr-child.css
index 6c6a357..fa9f34a 100644
--- a/design_system_admin/css/dsfr-child.css
+++ b/design_system_admin/css/dsfr-child.css
@@ -36,4 +36,12 @@ section#rapport-commission div.fr-card__img img.fr-responsive-img{
 .aspectratio1{
     aspect-ratio: 1 !important;
 }
-
+#pagination_list
+{
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: flex-start;
+  flex-wrap: wrap;
+  list-style: none;
+}
diff --git a/design_system_admin/css/mycustom.css b/design_system_admin/css/mycustom.css
index bfb4770..98744b2 100644
--- a/design_system_admin/css/mycustom.css
+++ b/design_system_admin/css/mycustom.css
@@ -1,158 +1,993 @@
+/**** encadré sndi ****/ 
 
-#contenu {
-  padding-top: 1rem;
-  padding-bottom: 1rem;
-}
-.spip-admin-bloc, .spip-admin-float {
-    z-index: 9999 !important;
-    position: fixed !important;
-    right: 8% !important;
-    top: unset !important;
-    bottom: 5px !important;
-    white-space: nowrap !important;
+.encadre-sndi {
+  padding: 4rem;
+  background: url(/IMG/svg/pattern-A.svg?0.1) no-repeat var(--background-alt-green-bourgeon);
+  background-size: cover;
 }
 
-.spip-admin-bloc a[href]:hover, .spip-admin-float a[href]:hover {
-	background: var(--background-action-high-blue-france) !important;
+.encadre-sndi .wrapper {
+  background-color: var(--background-default-grey);
+  padding:2rem;
 }
-
-.spip-admin-boutons, a.spip-admin-boutons, .spip-admin-boutons a {
-  color: #FFF;
-  text-decoration: none;
-  background-image: none;
+.fr-text--lead p {
+  font-size: 1.25rem !important;
+  line-height: 2rem !important;
+  margin: var(--text-spacing);
 }
-#topbtn {
-    transition: background-color .3s, 
-      opacity .5s, visibility .5s;
-    opacity: 0;
-    visibility: hidden;
-  }
 
-@media screen and (-ms-high-contrast: active),
-(-ms-high-contrast: none) {
 
-    /* IE10+ specific styles go here */
-    .example-controls {
-        display: none;
-    }
-}
-
-.width100{
-  width: 100%;
+@media(max-width:576px){
+  .encadre-sndi {
+      padding: 2rem;
+  }
+  
+  .encadre-sndi .wrapper {
+      padding:1rem;
+  }
 }
-/* 10/03/2022 9:39 */
-/*** Page 404 ***/
-.errorcss{background-color: var(--background-contrast-beige-gris-galet);color: #000;padding: 2rem;margin-bottom: 2rem;}
-.error_title{font-weight: bold;font-size: 2rem;}
 
-.scroll-top {
-position: fixed;
-bottom: 3.5rem;
-right: 2rem;
-}
 
-.scroll-top__link {
-  position: -webkit-sticky;
-  position: sticky;
-}
 
-.scroll-top__link:hover {
-  opacity: 0.8;
-}
 
-#tarteaucitronCloseCross:hover{
-    cursor: pointer;
-    background-color: var(--g400) !important;
+/***** correction hover sommaire automatique ***/
+li.fr-sidemenu__link  a[href] {
+  padding: 0.5rem;
+  }
+      li.fr-sidemenu__link  a[href]:hover {
+         background-color: var(--hover-tint) !important;
+         --hover-tint: var(--hover);
+      --active-tint: var(--active);
+      }
+  
+  /****** liste ul li spip *****/
+  ul.spip  {
+          margin-bottom: 1rem;
+       }
+     
+  
+  /****** correction cookies h5 ****/ 
+  
+  span#tarteaucitronDisclaimerAlert h5 {
+      color: black;
+  }
+  
+  /***** correction marge bouton header aide ***/
+  .fr-header .fr-links-group .fr-link {
+  margin-right: 1rem;
+  }
+  
+  .fr-header .fr-links-group li {
+      margin: 0.5rem 0 0;
+  }
+  
+  
+  
+  /**** tables ****/ 
+  /*** passage de block a table pour que la table occupe 100% de la palace ***/
+  .fr-table table {
+      display: table;
+      width: 100%;
+      margin:1rem 0;
+  }
+  
+  
+  /***** liens externe *****/ 
+  .fr-callout a.spip_out {
+      /*
+      content: var(--link-blank-content);
+      font: var(--link-blank-font);*/
+      content:none;
+      padding-right: 0 !important;
+      background-image: none !important;
+  }
+  
+  
+  /***** ajout d'un fond jaune clair pour les call-out par defaut ****/ 
+  
+  .fr-callout--yellow-tournesol-975 {
+    box-shadow: inset 0.25rem 0 0 0 var(--border-default-yellow-tournesol);
+    background-color: var(--background-alt-yellow-tournesol);
+    --hover: var(--background-contrast-yellow-tournesol-hover);
+    --active: var(--background-contrast-yellow-tournesol-active);
+  }
+  
+  
+  /***** correction des card avec texte trop petit ****/
+  
+  .fr-card__body {
+      width: 100%;
+  }
+  
+  
+  
+  /***** cacher les ancres du sommaire automatique ****/
+  
+  .sommaire-back {
+      display: none !important;
+  }
+  
+  
+  /***** correction menu *****/
+  
+  main {
+      z-index: 0;
+  }
+  
+  
+  /****** formulaire contact *****/
+  
+  .formulaire_formidable p.explication,
+  .formulaire_formidable .attention {
+      margin: 0 0 0.5rem;
+      display: block;
+  }
+  
+  .formulaire_formidable .explication_texte,
+  .formulaire_formidable .saisie_input,
+  .formulaire_formidable .saisie_email,
+  .formulaire_formidable .saisie_destinataires,
+  .formulaire_formidable .saisie_textarea {
+      margin-bottom: 1.5rem;
+      display: block;
+  }
+  
+  textarea,
+  input {
+      --hover: var(--background-contrast-grey-hover);
+      --active: var(--background-contrast-grey-active);
+      background-color: var(--background-contrast-grey);
+      border-radius: .25rem .25rem 0 0;
+      box-shadow: inset 0 -2px 0 0 var(--border-plain-grey);
+      color: var(--text-label-grey);
+      display: block;
+      font-size: 1rem;
+      line-height: 1.5rem;
+      padding: .5rem 1rem;
+      width: 100%;
+  }
+  
+  input:not(textarea) {
+      max-height: 2.5rem;
+  }
+  
+  
+  .formulaire_formidable .boutons .submit {
+      background-color: var(--artwork-major-blue-france);
+      color: var(--text-inverted-blue-france);
+      font-size: 1rem;
+      line-height: 1.5rem;
+      min-height: 2.5rem;
+      padding: 0.5rem 1.5rem;
+      overflow: hidden;
+      z-index: 1;
+      display: inline-flex;
+      flex-direction: row;
+      align-items: center;
+      --is-link: false;
+      margin: 2rem 0;
+      cursor: pointer;
+  }
+  
+  input[type="checkbox"] {
+      position: inherit;
+      appearance: button;
+      z-index: -1;
+      display: inline-block;
+      width: 1em;
+      height: 1em;
+      margin: 0.5em 0.5em 0 0;
+      vertical-align: top;
+      opacity: 1;
+      border: 2px solid var(--text-action-high-blue-france);
+      box-shadow: none;
+  }
+  
+  .fr-accordion img {
+      width: 100%;
+      height: auto;
+  }
+  
+  
+  /******************   agenda 2030 *****************/
+  
+  /* ------------------------------------ *\
+    CUSTOM AGENDA 2030
+  \* ------------------------------------ */
+  
+  
+  /****** texte encadré *****
+  
+  .fr-callout__text p {
+      font-size: 1.25rem;
+      line-height: 2rem;
+  }*/
+  
+  
+  /*** lien externe ****/
+  
+  a.spip_out::after {
+      content: var(--link-blank-content);
+      font: var(--link-blank-font);
+  }
+  
+  h1.nonaccueil,
+  h2.nonaccueil, div.nonaccueil {
+      color: var(--grey-50-1000);
+      background-size: cover !important;
+      background-position: center !important;
+  }
+  .displaynone{
+      display:none;
+  }
+  /*.fr-display-lg,
+  .fr-display-md,
+  .fr-display-sm,
+  .fr-display-xl,
+  .fr-display-xs,
+  .fr-h1,
+  .fr-h2,
+  .fr-h3,
+  .fr-h4,
+  .fr-h5,
+  .fr-h6,
+  h1,
+  h2,
+  h3,
+  h4,
+  h5,
+  h6 {
+      color: var(--text-action-high-blue-france);
+  }*/
+  
+  h1,
+  h2,
+  h3,
+  h4,
+  h5,
+  h6 {
+      clear: both;
+      display: block;
+      width: 100%;
+  }
+  
+  .actusdate {
+      font-weight: bold;
+  }
+  
+  
+  /***** ajout icine pour le sommaire automatique ***/
+  
+  .sommaire-back {
+      display: none !important
+  }
+  
+  
+  /******** formulaire ressources ******/
+  
+  .fr-checkbox-group input[type="checkbox"] {
+      margin: 0 !important;
+      z-index: 999;
+      width: 25px;
+      height: 25px;
+      top: 25px;
+  }
+  
+  
+  /*blockquote.spip {
+      /*padding-left: 2rem;
+       border-left: solid 8px #476cb3;
+      color: #476cb3;
+      font-style: italic;
+      font-weight: bold;
+      font-size: 2rem;
+      margin: 2rem 0 2rem 0 !important;
+      
+      background-color: var(--g200);
+      --scheme-border: var(--bf500);
+      box-shadow: inset 0.25rem 0 0 0 var(--scheme-border);
+      flex: 0 0 calc(1200% / 12);
+      width: calc(1200% / 12);
+      max-width: calc(1200% / 12);
+      padding: 2rem 3rem;
+      margin-bottom: 2rem !important;
+  }*/
+  
+  
+  /*blockquote.spip P {
+      margin: 0;
+  }*/
+  
+  
+  
+  a small {
+      padding: 0 5px;
+      font-size: 0.8rem;
+  }
+  
+  .fr-btns-group--left a.fr-btn {
+      justify-content: left;
   }
 
-  .secondlogo{
-    margin: 0 2rem;
-}
-/****** correction cookies h5 ****/ 
-span#tarteaucitronDisclaimerAlert h5 {
-  color: black;
-}
-#tarteaucitronRoot #tarteaucitronCloseCross {
-  padding: 0 1rem 0 0;
-  margin-right: 0;
-  display: flex;
-}
-#tarteaucitronPersonalize2, #tarteaucitronAllDenied2, #tarteaucitronCloseAlert{
-  float: right;
-}
-.fr-alert::before {
-  color:inherit !important;
-}
-#tarteaucitronAlertBig{
-  display: flex;
-}
-.menu-aussi.photo-membre ul {
-  list-style: none;
-}
-.border1{
-  border: 1px solid #000;
-}
-.saisie_destinataires, .saisie_input, .saisie_textarea {
-  padding-bottom: 1rem;
-}
-#formulaire_formidable-5 button:hover {
-  background-image: linear-gradient(0deg, rgba(224,224,244,0.5), rgba(224,224,244,0.5));
-}
-#formulaire_formidable-5 button {
-  background-color: var(--t-plain);
-  color: var(--bf500);
-  box-shadow: inset 0 0 0 1px var(--bf500);
-  padding: 1rem;
-}
-button:enabled {
-  cursor: pointer;
-}
-#formulaire_formidable-5 p.boutons {
-  text-align: end;
-}
-.fr-header .fr-btns-group:not(.fr-btns-group--sm):not(.fr-btns-group--lg):not([class^="fr-btns-group--icon-"]):not([class*=" fr-btns-group--icon-"]) .fr-btn {
-  overflow: initial;
-  max-width: 100%;
-  max-height: none;
-  justify-content: flex-start;
-  font-size: 1rem;
-  line-height: 1.5rem;
-  min-height: 2.5rem;
-  padding: 0.5rem 1rem;
-}
-.order1{order:1;}
-.order2{order:2;}
-.order3{order:3;}
-#minipres{
-  max-width:30rem;
-  margin:auto;
-}
-#minipres h1{
-  font-size:2rem;
-  margin:1rem 0;
-}
-.visually-hidden {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}
 
-@media screen and (max-width: 991px) {
-  .fr-mega-menu .dropdown-menu__image{
-    display: none;
+  /******* images *****/
+  
+  .text-center {
+      text-align: center;}
+  
+      .text-right {
+      text-align: right;}
+  
+      .fr-display-block{display: block;} 
+  
+      .fr-w-auto {
+          width:auto;
+      } 
+      
+      .fr-clear-right {
+          clear: right;
+      }
+  
+      .fr-clear-left {
+          clear: left;
+      }
+  
+      .fr-clear-both {
+          clear: both;
+      }
+  
+      figure > a:after  {
+          --icon-size: 0;
+      }
+      figure > a {
+          background-image: none !important;
+      }
+  
+  
+  figure.spip_documents,
+  figure.spip {
+      margin: 1em 0;
   }
-}
-:root {
-  --logo-cpp: rgb(87,112,190);
-  --logo-cpp2: rgb(127,127,127);
-  --logo-cpp-dark: rgb(127,127,127);
-}
-:root[data-fr-theme="dark"] {
-  --logo-cpp: #a3a6bc;
-  --logo-cpp-dark: #ffffff;
-}
\ No newline at end of file
+  
+  figure.spip_documents_left {
+      margin: 0 0.5em 0 0;
+  }
+  
+  .media {
+      max-width: 100%;
+      height: auto;
+  }
+  
+  
+  /*.spip_documents {
+      margin: 0 0 1em 0;
+      display: block;
+  }*/
+  
+  figure img {
+      max-width: 100%;
+      height: auto;
+  }
+  
+  img.fr-content-media__img {
+      aspect-ratio: 0 !important;
+      position: relative;
+      width: auto;
+  }
+  
+  figure {
+      margin: 0;
+  }
+  
+  
+  
+  .social-networks-list {
+      display: -ms-flexbox;
+      display: flex;
+      -ms-flex-wrap: wrap;
+      flex-wrap: wrap;
+      justify-content: center;
+  }
+  
+  .social-networks-list li {
+      list-style: none;
+  }
+  
+  .social-networks-list li::before,
+  .printpage li::before {
+      display: none;
+  }
+  
+  .social-networks-list a {
+      box-shadow: none;
+  }
+  
+  .social-networks-list a::after {
+      content: "" !important;
+  }
+  
+  /* #odd .fr-card__img::before {
+      content: "";
+      display: block;
+      width: 100%;
+      padding-bottom: 100%;
+  }*/ 
+  
+  
+  
+  
+  
+  
+  /***** ajout d'une hauteur limite pour les card de news *****/
+  
+  .hauteur-limitee, .hauteur-limitee .fr-card__img img {
+      height: auto !important;
+      aspect-ratio: auto;
+  }
+  
+  
+  /***** ajout d'un encadremement pour les images de news *****/
+  
+  /*.fr-card__img {
+      border: 1px solid var(--border-default-grey);
+  }*/
+  
+  
+  /***** twitter ****/
+  
+  .home-twitter {
+      box-shadow: inset 0 0 0 1px var(--border-default-grey);
+      padding: 0.1em;
+  }
+  
+  
+  /***** couleur de titre blanc *****/
+  
+  .titre_blanc {
+      color: rgb(255, 255, 255) !important;
+  }
+  
+  
+  /***** mise en forme du sommaire de l'article *****/
+  
+  .sommaire_auto a.spip_ancre {
+      font-size: 1rem;
+      font-weight: 400;
+      line-height: 1.5rem;
+  }
+  
+  .sommaire_auto li.fr-sidemenu__item {
+      margin-bottom: 0.4em;
+     /* box-shadow: none;*/
+  }
+  
+  /***** ajout de style pour le sommaire auto ****/
+  
+  .sommaire_auto .fr-sidemenu__item:before {
+      box-shadow: none;
+      content:none;
+      
+  }
+  
+  
+  /****** formulaire contact *****/
+  
+  .formulaire_formidable p.explication,
+  .formulaire_formidable .attention {
+      margin: 0 0 0.5rem;
+      display: block;
+  }
+  
+  .formulaire_formidable .explication_texte,
+  .formulaire_formidable .saisie_input,
+  .formulaire_formidable .saisie_email,
+  .formulaire_formidable .saisie_destinataires,
+  .formulaire_formidable .saisie_textarea {
+      margin-bottom: 1.5rem;
+      display: block;
+  }
+  
+    
+  .formulaire_formidable .boutons .submit {
+      background-color: var(--artwork-major-blue-france);
+      color: var(--text-inverted-blue-france);
+      font-size: 1rem;
+      line-height: 1.5rem;
+      min-height: 2.5rem;
+      padding: 0.5rem 1.5rem;
+      overflow: hidden;
+      z-index: 1;
+      display: inline-flex;
+      flex-direction: row;
+      align-items: center;
+      --is-link: false;
+      margin: 2rem 0;
+      cursor: pointer;
+  }
+  
+  input[type="checkbox"] {
+      position: inherit;
+      appearance: button;
+      z-index: -1;
+      display: inline-block;
+      width: 1em;
+      height: 1em;
+      margin: 0.5em 0.5em 0 0;
+      vertical-align: top;
+      opacity: 1;
+      border: 2px solid var(--text-action-high-blue-france);
+  }
+  
+  /****** lien dans les callout exergues ****/ 
+  
+  
+  /* .fr-callout a  {
+      border-bottom: 1px solid;
+  color: var(--text-action-high-blue-france);
+  background: none;
+  } */
+  
+  
+  a.fr-tag[aria-pressed=true]:active, a.fr-tag[aria-pressed=true]:hover, a.fr-tag[aria-pressed=true]:focus{
+      background-image: none !important;
+  }
+  
+  
+  /******* gestion du hr  *****/
+  
+  hr.spip,
+  .notes hr {
+      width: 100% !important;
+      margin: 1rem 0;
+      height: 3px;
+      border: 0;
+      clear: both;
+  }
+  
+  .notes p {
+      margin: 0 0 1rem;
+  }
+  
+  
+  /***** ajout des images responsives ****/
+  
+  .spip_documents img {
+      max-width: 100%;
+      height: auto;
+  }
+  
+  figure.spip_documents,
+  figure.spip {
+      margin: 1em 0;
+  }
+  
+  figure.spip_documents.spip_documents_center,
+  span.spip_documents.spip_documents_center,
+  .spip_documents_center .spip_doc_titre,
+  .spip_documents_center {
+      display: block;
+      text-align: center;
+  }
+  
+  figure.spip_documents.spip_documents_left,
+  span.spip_documents.spip_documents_left,
+  .spip_documents_left .spip_doc_titre,
+  .spip_documents_left {
+      margin: 0 1em 0 0 !important;
+      display: block !important;
+      text-align: left;
+  }
+  
+  figure.spip_documents.spip_documents_right,
+  span.spip_documents.spip_documents_right,
+  .spip_documents_right .spip_doc_titre,
+  .spip_documents_right {
+      margin: 0 0 0 1em !important;
+      display: block !important;
+      text-align: right;
+  }
+  
+  .float-left {
+      float: left !important;
+  }
+  
+  .float-right {
+      float: right !important;
+  }
+  
+  .texte-droite {
+      text-align: right;
+  }
+  
+  .partager {
+      border-top: 2px solid var(--g300);
+      padding: 0;
+      margin: 2rem 0 0 0;
+      clear: both;
+      display: inline-flex;
+  }
+  
+  
+  /**** supression des encadres de l'image ****/
+  
+  .spip_documents a {
+      box-shadow: none;
+      background-image:none;
+      
+  }
+  
+  .spip_documents a  img {
+      border: 1px solid transparent !important;
+  }
+  
+  .spip_documents a  img:hover {
+      border: 1px solid #b0c9ff !important;
+  }
+  
+  
+  /***** blockquote *******/
+  
+  blockquote.spip {
+     /* box-shadow: inset 0.25rem 0 0 0 var(--border-default-blue-ecume);
+      padding-left: 1.5rem;
+      font-size: 1.125rem!important;
+      line-height: 1.75rem!important;
+      margin: var(--text-spacing);*/
+  
+      background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
+      background-position: .5rem 100%;
+      background-repeat: no-repeat;
+      background-size: 50% 1px;
+      margin: 0 2rem 0 3rem;
+      padding: 0 .5rem 2rem;
+      position: relative;
+      background-position: 0 0;
+      background-size: 1px 100%;
+      padding: 0 0 0 2rem;
+  }
+  
+  blockquote.spip:before {
+      color: var(--artwork-major-blue-france);
+      content: "";
+      display: block;
+      font: normal 700 normal 2rem/1 dsfr-icon;
+      font-weight: 700;
+      padding-bottom: .5rem
+  }
+  
+  blockquote.spip p {
+      /*font-size: 1.375rem;
+      line-height: 2.25rem;*/
+      font-size: 1.125rem!important;
+      line-height: 1.75rem!important;
+      margin: var(--text-spacing);
+  }
+  
+   
+  
+  blockquote.spip::before {
+    content: "";
+    flex: 0 0 auto;
+    display: inline-block;
+    /*vertical-align: middle;*/
+    background-color: currentColor;
+    width: var(--icon-size);
+    height: var(--icon-size);
+    -webkit-mask-size: 100% 100%;
+    mask-size: 100% 100%;
+    -webkit-mask-image: url("/IMG/svg/fr--quote-line.svg");
+    mask-image: url("/IMG/svg/fr--quote-line.svg");
+    --icon-size: 2rem;
+    display: block;
+    margin-bottom: 0.5rem;
+    color: var(--artwork-minor-blue-france);
+  }
+  
+  /***** exergue ****/ 
+  
+  .fr-highlight .fr-text--sm p {
+      line-height: 1.5rem!important;
+      margin: var(--text-spacing);
+      font-size: .875rem!important;
+  }
+  .fr-highlight .fr-text--lg p {
+      font-size: 1.125rem!important;
+      line-height: 1.75rem!important;
+      margin: var(--text-spacing);
+  }
+  
+  
+  
+  .texteencadre-spip {
+       border:  none;
+       color: var(--text-default-grey);
+  
+      --title-spacing: 0 0 0.5rem;
+      --text-spacing: 0;
+      --hover: var(--background-contrast-grey-hover);
+      --active: var(--background-contrast-grey-active);
+      background-color: var(--background-contrast-grey);
+      box-shadow: inset 0.25rem 0 0 0 var(--border-default-blue-france);
+      margin: 0 0 1.5rem;
+      padding: 1.5rem;
+      position: relative;
+      font-size: 1.25rem;
+      line-height: 2rem;
+  }
+  
+  .texteencadre-spip .autobr {
+      display: none;;
+  }
+  
+  
+  
+  /****** chiffres *****/
+  
+  
+  
+  p.chiffre {
+      font-size: 1.5rem;
+      display: table;
+  }
+  
+  p.key-number {
+      display: flex;
+  }
+  
+  
+  .number {
+      font-size: 2rem;
+      font-weight: bold;
+      display: inline-flex;
+      padding:  2rem;
+      text-align: center;
+      min-width: 30%;
+      border-radius: 20px 0 0 20px;
+      background:  var(--background-action-high-blue-france);
+      color: var(--text-inverted-grey);
+      line-height: 1.2em;
+      white-space: nowrap;
+      justify-content: center;
+  }
+  
+  .key-number .explication {
+      display: inline-flex;
+      align-items: center;
+      padding: 1rem;
+      border-radius: 0 20px 20px 0;
+      background: var(--background-action-low-blue-france);
+      color: var(--text-action-high-blue-france);
+  }
+  
+  @media (max-width: 576px){
+      p.key-number {
+          flex-direction: column !important;
+      }
+      .number,  .explication {
+          width: 100%;
+          max-width: 100%;
+      min-width: 100%;
+          border-radius: 20px 20px 0 0;
+      }
+  
+      .explication {
+          width: 100%;
+          max-width: 100%;
+      min-width: 100%;
+          border-radius: 0 0 20px 20px !important;
+      }
+  
+  
+      }
+  
+  
+  .taille50 {
+      font-size: 50%;
+  }
+  
+  .taille80 {
+      font-size: 80%;
+  }
+  
+  .taille100 {
+      font-size: 100%;
+  }
+  
+  .taille110 {
+      font-size: 110%;
+  }
+  
+  .taille120 {
+      font-size: 120%;
+  }
+  
+  .taille130 {
+      font-size: 130%;
+  }
+  
+  .taille140 {
+      font-size: 140%;
+  }
+  
+  .taille150 {
+      font-size: 150%;
+  }
+  
+  .taille200 {
+      font-size: 200%;
+  }
+  
+  .taille250 {
+      font-size: 250%;
+  }
+  
+  .taille300 {
+      font-size: 300%;
+  }
+  
+  .taille350 {
+      font-size: 350%;
+  }
+  
+  .taille400 {
+      font-size: 400%;
+  }
+  @media (max-width: 767px){
+      .cassure-ecran {
+          display: inline-block;
+      }
+  }
+  :root[data-fr-theme="dark"] {
+      --color--chiffre1: #383838;
+      --color--chiffre1b: #2a2a2a;
+      --color--chiffre2: #eff4ff;
+      --color--chiffre2b: #c8d9ff;
+      --color--chiffre3: #4f6dae;
+      --color--chiffre3b: #dfe9ff;
+      --color--chiffre4: #ffc29e;
+      --color--chiffre4b: #ffceb2;
+      --color--chiffre4c: #f9decf;
+      --color--chiffre5: #cdcdcd;
+      --color--chiffre5b: #f0f0f0;
+      --color--chiffre6: #4f6dae;
+      --color--arrow-select: #ffffff;
+  }
+  
+  :root[data-fr-theme="light"] {
+      --color--chiffre1: #b0c9ff;
+      --color--chiffre1b: #dfe9ff;
+      --color--chiffre2: #eff4ff;
+      --color--chiffre2b: #c8d9ff;
+      --color--chiffre3: #4f6dae;
+      --color--chiffre3b: #dfe9ff;
+      --color--chiffre4: #ffc29e;
+      --color--chiffre4b: #ffceb2;
+      --color--chiffre4c: #f9decf;
+      --color--chiffre5: #cdcdcd;
+      --color--chiffre5b: #f0f0f0;
+      --color--chiffre6: #4f6dae;
+      --color--arrow-select: #000000;
+  }
+  
+  .theme1 .number {
+      background: var(--color--chiffre1);
+  }
+  
+  .theme1 .explication {
+      background: var(--color--chiffre1b);
+      color: #000
+  }
+  
+  .theme2 .number {
+      background: var(--color--chiffre2);
+  }
+  
+  .theme2 .explication {
+      background: var(--color--chiffre2b);
+  }
+  
+  .theme3 .number {
+      background: var(--color--chiffre3);
+      color: #fff
+  }
+  
+  .theme3 .explication {
+      background: var(--color--chiffre3b);
+  }
+  
+  .theme4 .number {
+      background: var(--color--chiffre4);
+  }
+  
+  .theme4 .explication {
+      background: var(--color--chiffre4b);
+  }
+  
+  .theme5 .number {
+      background: var(--color--chiffre5);
+  }
+  
+  .theme5 .explication {
+      background: var(--color--chiffre5b);
+  }
+  
+  
+  
+  @media(max-width:576px){
+      .chapo p {
+          font-size: 1.15rem !important;
+          line-height: 1.6rem !important;
+      }
+  }
+  
+  @media(max-width:767px){
+      #fr-sidemenu {
+          display: none;    }
+  }
+  
+  @media (min-width: 62em)  {
+  .fr-header .fr-nav__list {
+      margin:0;
+  }
+  }
+  
+  #tarteaucitronRoot #tarteaucitronCloseCross {
+      padding: 0 1rem 0 0;
+      margin-right: 0;
+      display: flex;
+    }
+  .fr-background-alt--blue-france {
+      --hover: var(--background-alt-blue-france-hover)!important;
+      --active: var(--background-alt-blue-france-active)!important;
+      background-color: var(--background-alt-blue-france)!important;
+  }
+  
+  .nomaxheight img{
+      max-height: none;
+  }
+  .fr-background-alt--yellow-tournesol {
+      --hover: var(--background-alt-yellow-tournesol-hover)!important;
+      --active: var(--background-alt-yellow-tournesol-active)!important;
+      background-color: var(--background-alt-yellow-tournesol)!important;
+  }
+  .fr-background-alt--orange-terre-battue {
+      --hover: var(--background-alt-orange-terre-battue-hover)!important;
+      --active: var(--background-alt-orange-terre-battue-active)!important;
+      background-color: var(--background-alt-orange-terre-battue)!important;
+  }
+  .fr-background-alt--green-bourgeon {
+      --hover: var(--background-alt-green-bourgeon-hover) !important;
+      --active: var(--background-alt-green-bourgeon-active)!important;
+      background-color: var(--background-alt-green-bourgeon) !important;
+  }
+
+  .fr-download {
+      width: 100%;
+    }
+  
+  
+  div#modal-402.fr-header__menu.fr-modal.fr-modal--opened div.fr-container div.fr-header__menu-links ul.fr-links-group li a.fr-btn{
+     max-width: 100% !important; 
+  }
+  
+  div#modal-402 ul.fr-links-group li a, div#modal-402 ul.fr-links-group li button{
+      justify-content: left !important;
+  }
+  /*.encadre-sndi .fr-card__title a{
+      color: var(--g800);
+  }
+  .encadre-sndi .fr-card__title a:hover{
+      color: var(--color--arrow-select);
+  }*/
+  /*  HR */
+  hr.spip, .notes hr {
+      width: 100% !important;
+      margin: 1rem 0;
+      height: 3px;
+      border: 0;
+      clear: both;
+  }
+  /* modification taille texte du bloc de sommaire */
+  ul.fr-sidemenu__list li, a.fr-sidemenu__link {
+      font-size: 13px !important;
+  }
\ No newline at end of file
diff --git a/design_system_admin/css/plugin-dse.css b/design_system_admin/css/plugin-dse.css
index 9b33695..8d92564 100644
--- a/design_system_admin/css/plugin-dse.css
+++ b/design_system_admin/css/plugin-dse.css
@@ -701,4 +701,13 @@ background-size: var(--underline-hover-width) 0.125em, var(--underline-idle-widt
 
 .fr-header__operator{
   max-width: 11rem;
-}
\ No newline at end of file
+}
+#pagination_list
+{
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  justify-content: flex-start;
+  flex-wrap: wrap;
+  list-style: none;
+}
diff --git a/design_system_admin/formulaires/aide/aide_masquer_langue.php b/design_system_admin/formulaires/aide/aide_masquer_langue.php
new file mode 100644
index 0000000..725be39
--- /dev/null
+++ b/design_system_admin/formulaires/aide/aide_masquer_langue.php
@@ -0,0 +1,9 @@
+<?php
+    echo '<div class="aide_onglet_navigateur aide_masquer_langue masquer_langue_secondaire">
+            <ul>
+                <li><h3>Aide sur la fonctionnalité "Masquer langue?"</h3></li>
+                <li>Cette fonctionnalité permet de gérer l\'internationalisation du site.</li>                
+                <li>Le fonctionnement de cette fonctionnalité se base sur l\'utilisation de l\'élément traduction de SPIP.</li> 
+            </ul>
+        </div>';
+?>
\ No newline at end of file
diff --git a/design_system_admin/formulaires/composants/composant_langue_numeric.php b/design_system_admin/formulaires/composants/composant_langue_numeric.php
new file mode 100644
index 0000000..b0821cc
--- /dev/null
+++ b/design_system_admin/formulaires/composants/composant_langue_numeric.php
@@ -0,0 +1,12 @@
+<?php
+echo '
+<li class="masquer_langue  masquer_langue_' . $_GET['autreparametre'] . '">
+	<div class="editer editer_langue_' . $_GET['autreparametre'] . ' saisie_input editer_even obligatoire">
+        <label class="editer-label" for="champ_langue_' . $_GET['autreparametre'] . '">Langue ' . $_GET['autreparametre'] . '<span class="obligatoire"> (obligatoire)</span></label>
+        <input type="text" name="langue_' . $_GET['autreparametre'] . '" class="text" id="champ_langue_' . $_GET['autreparametre'] . '" value="" required="required" data-parent="masquer_langue" placeholder="Titre langue ' . $_GET['autreparametre'] . '">										
+        <input type="text" name="value_langue_' . $_GET['autreparametre'] . '" class="text" id="value_langue_' . $_GET['autreparametre'] . '" value="" required="required" data-parent="masquer_langue" placeholder="Valeur langue ' . $_GET['autreparametre'] . ' (fr,en,...)">	
+	</div>
+</li>
+';  
+?>
+ 
diff --git a/design_system_admin/formulaires/composants/composant_masquer_langue.php b/design_system_admin/formulaires/composants/composant_masquer_langue.php
new file mode 100644
index 0000000..c00fc68
--- /dev/null
+++ b/design_system_admin/formulaires/composants/composant_masquer_langue.php
@@ -0,0 +1,32 @@
+<?php
+echo '
+    <li class="_masquer_langue">
+        <div class="editer editer_nombre_de_langue saisie_selection editer_odd">
+            <label class="editer-label" for="champ_nombre_de_langue">Nombre de langues</label><br>
+            <select name="nombre_de_langue" id="champ_nombre_de_langue" data-elementname="langue" data-parent="masquer_langue" data-select="numeric" data-select-0="1" required="required">
+                <option value="1" selected="selected">1</option>
+                <option value="2">2</option>
+                <option value="3">3</option>
+                <option value="4">4</option>
+                <option value="5">5</option>
+            </select>
+        </div>
+    </li>
+    <li class="_masquer_langue">
+        <div class="editer editer_langue_defaut obligatoire saisie_input editer_even">
+            <label class="editer-label" for="champ_langue_defaut">Langue par défaut<span class="obligatoire"> (obligatoire)</span></label>
+            <input type="text" name="langue_par_defaut" class="text" id="champ_langue_defaut" value="" required="required" data-parent="masquer_langue" placeholder="Langue par défaut (fr, en, ...)">																			
+        </div>
+    </li>
+    <li class="_masquer_langue">
+        <ul class="gestion_langue">
+            <li class="_masquer_langue masquer_langue_1">
+                <div class="editer editer_langue_1 obligatoire saisie_input editer_even">
+                    <label class="editer-label" for="champ_langue_1">Langue 1<span class="obligatoire"> (obligatoire)</span></label>
+                    <input type="text" name="langue_1" class="text" id="champ_langue_1" required="required" data-parent="masquer_langue" placeholder="Titre langue 1">                    
+                    <input type="text" name="value_langue_1" class="text" id="value_langue_1" required="required" data-parent="masquer_langue" placeholder="Valeur langue 1 (fr, en, ...)">
+                </div>
+            </li>     
+        </ul>
+    </li>';    
+?>
\ No newline at end of file
diff --git a/design_system_admin/formulaires/configurer_design_system_admin.html b/design_system_admin/formulaires/configurer_design_system_admin.html
index e583c7b..5f25505 100644
--- a/design_system_admin/formulaires/configurer_design_system_admin.html
+++ b/design_system_admin/formulaires/configurer_design_system_admin.html
@@ -460,6 +460,59 @@
 						</li>
 					</ul>
 				</li>
+
+				[(#REM) Internationalisation]
+				<li class="encadre conf_encadre position[(#VAL{masquer_langue}|filtre_constante)] aide_masquer_langue">
+					<ul>
+						<li><button class="questionmark" type="button" data-parent="masquer_langue">?</button></li>
+					</ul>
+					<ul class="gestion_masquer_langue masquer_langue_primaire">
+						<li class="center bold">
+							<label for="masquer_langue">
+								Masquer le choix de langues
+							</label>
+						</li>
+						<li class="center">
+							#VA_ET_VIENT{'masquer_langue',#CONFIG_VALUE{_masquer_langue}}				
+						</li>
+						<li class="_masquer_langue">
+							<div class="editer editer_nombre_de_langue saisie_selection editer_odd">
+								<label class="editer-label" for="champ_nombre_de_langue">Nombre de langues</label>
+								#SET{nombre_de_langue,  #CONST{_MAX_NOMBRE_DE_LANGUES}} 
+								<select name="nombre_de_langue" id="champ_nombre_de_langue" data-elementname="langue" data-parent="masquer_langue" data-select="numeric" data-select-0="1" required="required">
+								<BOUCLE_afficher_nbreelement_de_langues(POUR){tableau #GET{nombre_de_langue}|range{1}}>
+								<option value='#COMPTEUR_BOUCLE' [(#CONFIG_VALUE{nombre_de_langue}|=={#COMPTEUR_BOUCLE}|oui) selected="selected"]>#COMPTEUR_BOUCLE</option>
+								</BOUCLE_afficher_nbreelement_de_langues>
+								</select>
+							</div>
+						</li>
+						<li class="_masquer_langue">
+							<ul class="gestion_langue">
+								#SET{nombre_de_langue, #CONFIG_VALUE{nombre_de_langue}}
+								<li class="_masquer_langue masquer_langue_defaut">									
+									<div class="editer editer_langue_defaut obligatoire saisie_input editer_even">
+										<label class="editer-label" for="champ_langue_defaut">Langue par défaut<span class="obligatoire"> (obligatoire)</span></label>
+										<input type="text" name="langue_par_defaut" class="text" id="champ_langue_defaut" value="#CONFIG_VALUE{langue_par_defaut}" required="required" data-parent="masquer_langue" placeholder="Langue par défaut (fr, en, ...)">																			
+									</div>
+								</li>			
+								<BOUCLE_afficher_element_langue(POUR){tableau #GET{nombre_de_langue}|range{1}}>
+								<li class="_masquer_langue masquer_langue_#COMPTEUR_BOUCLE">
+									#SET{langue,langue_#COMPTEUR_BOUCLE}
+									#SET{value_langue,value_langue_#COMPTEUR_BOUCLE}
+									<div class="editer editer_langue_#COMPTEUR_BOUCLE obligatoire saisie_input editer_even">
+										<label class="editer-label" for="champ_langue_#COMPTEUR_BOUCLE">Langue #COMPTEUR_BOUCLE<span class="obligatoire"> (obligatoire)</span></label>
+										<input type="text" name="langue_#COMPTEUR_BOUCLE" class="text" id="champ_langue_#COMPTEUR_BOUCLE" value="#CONFIG_VALUE{#GET{langue}}" required="required" data-parent="masquer_langue" placeholder="Titre langue">										
+										<input type="text" name="value_langue_#COMPTEUR_BOUCLE" class="text" id="value_langue_#COMPTEUR_BOUCLE" value="#CONFIG_VALUE{#GET{value_langue}}" required="required" data-parent="masquer_langue" placeholder="Valeur langue(fr,en,...)">										
+									</div>
+								</li>
+								</BOUCLE_afficher_element_langue>									
+							</ul>
+						</li>
+					</ul>
+				</li>
+
+
+
 				[(#REM) Masquer les partenaires]
 				<li class="encadre conf_encadre position[(#VAL{masquer_partenaires}|filtre_constante)] aide_masquer_partenaires">
 					<ul><li><button class="questionmark" type="button" data-parent="masquer_partenaires">?</button></li></ul>
diff --git a/design_system_admin/formulaires/configurer_design_system_admin.php b/design_system_admin/formulaires/configurer_design_system_admin.php
index a08754e..9efa688 100644
--- a/design_system_admin/formulaires/configurer_design_system_admin.php
+++ b/design_system_admin/formulaires/configurer_design_system_admin.php
@@ -280,7 +280,20 @@ function formulaires_configurer_design_system_admin_traiter_dist($id_dsfrconfigu
         'second_logo_upload',
         'alt_second_logo_upload',
         'type_insertion_second_logo',
-        'elements_recherche'
+        'elements_recherche',
+        '_masquer_langue',
+        'nombre_de_langue',
+        'langue_par_defaut',
+        'langue_1',
+        'value_langue_1',
+        'langue_2',
+        'value_langue_2',
+        'langue_3',
+        'value_langue_3',
+        'langue_4',
+        'value_langue_4',
+        'langue_5',
+        'value_langue_5'
         
         
     ];
diff --git a/design_system_admin/js/myscripts.js b/design_system_admin/js/myscripts.js
index e325938..530dfcc 100644
--- a/design_system_admin/js/myscripts.js
+++ b/design_system_admin/js/myscripts.js
@@ -135,7 +135,7 @@ function show(target) {
 class Init{
     constructor() {
         const html = document.querySelector('html');
-        let langue_utilisee = $.cookie('langue-site');
+        /*let langue_utilisee = $.cookie('langue-site');
         if ($.cookie('langue-site')){            
             $("html").removeAttr("class")
             $("html").addClass("ltr js " + langue_utilisee);
@@ -144,7 +144,7 @@ class Init{
             
         } else {
             $.cookie('langue-site', 'fr', { expires: 30, path: '/' });                    
-        }
+        }*/
         $( document ).ready(function() {
             $('a[rel="external"]').addClass('fr-link fr-icon-external-link-fill fr-link--icon-right');
             $("#champ_destinataires_1").addClass("fr-select");
diff --git a/design_system_admin/js/tarteaucitron/lang/tarteaucitron.fr.js b/design_system_admin/js/tarteaucitron/lang/tarteaucitron.fr.js
index 99d5205..13f844c 100644
--- a/design_system_admin/js/tarteaucitron/lang/tarteaucitron.fr.js
+++ b/design_system_admin/js/tarteaucitron/lang/tarteaucitron.fr.js
@@ -10,7 +10,7 @@ tarteaucitron.lang = {
     "alertBigClick": "En poursuivant votre navigation,",
     "alertBig": "vous acceptez l'utilisation de services tiers pouvant installer des cookies",
 
-     "alertBigPrivacy" : "<strong class='tarteaucitron-titre'>À propos des cookies sur ce site</strong><br><br>Un cookie est un petit fichier informatique, un traceur, déposé et lu lors de la consultation d’un site internet. Il permet de conserver des données utilisateur afin de faciliter la navigation et de permettre certaines fonctionnalités<br><br>Le présent site utilise des <a href='#consentement'>traceurs (cookies)</a>, qui sont déposés sur votre navigateur (via votre ordinateur, votre tablette ou votre mobile) afin de mesurer son audience et assurer son bon fonctionnement (choix du mode clair/sombre).<br><br>La société matomo analyse la navigation des usagers à travers ces traceurs.<br><br>Ces cookies sont exemptés du recueil de consentement, comme le permet la CNIL dans sa délibération du 17 septembre 2020, dans la mesure où ceux-ci sont strictement nécessaires au bon fonctionnement du site. Vous pouvez toutefois faire le choix de vous opposer à leur utilisation (ou de les réactiver s’ils ont été refusés) depuis votre navigateur.",
+     "alertBigPrivacy" : "<strong class='tarteaucitron-titre'>À propos des cookies sur ce site</strong><br><br>Ce site utilise les cookies.",
 
     "alertSmall": "<b>Gestion des services</b>",
     "acceptAll": "Tout accepter",
diff --git a/design_system_admin/lang/design_system_admin_en.php b/design_system_admin/lang/design_system_admin_en.php
new file mode 100644
index 0000000..d2b08b9
--- /dev/null
+++ b/design_system_admin/lang/design_system_admin_en.php
@@ -0,0 +1,164 @@
+<?php
+// This is a SPIP language file  --  Ceci est un fichier langue de SPIP
+if (!defined('_ECRIRE_INC_VERSION')) {
+	return;
+}
+$GLOBALS[$GLOBALS['idx_lang']] = [
+	// D
+	'design_system_admin_titre' => 'State Design System',
+	// C
+	'cfg_nom_de_domaine_en_production' => 'Production Domain',
+	'cfg_nom_de_domaine_en_production_explication' => 'Allows the calculation of statistics if the site\'s domain name is the same as the declared one',
+	'cfg_titre_onglet_navigateur' => 'Browser Tab Title',
+	'cfg_titre_onglet_navigateur_explication' => 'Allows displaying the desired text as the title of the browser tab',
+	'cfg_meta_description' => 'Meta Description',
+	'cfg_meta_description_explication' => 'Replaces the content of the meta-description tag with the entered text when it is not specified',
+	'cfg_address_email_responsable' => 'Responsible Person\'s Email',
+	'cfg_address_email_responsable_explication' => 'Displays the email address of the responsible person to contact',
+	'cfg_form_contact' => 'Contact URL',
+	'cfg_form_contact_explication' => 'Use the URL of the site\'s contact form',
+	'cfg_texte_marianne' => 'Marianne Text',
+	'cfg_texte_marianne_explication' => 'Set the Marianne text',
+	'cfg_masquer_titre_label' => 'Hide the title?',
+	'cfg_liens_externe_que_faire_label' => 'Who decides the opening of external links?',
+	'cfg_liens_externe_que_faire' => 'What to do with external links?',
+	'cfg_utilisateur' => 'user',
+	'cfg_automatique' => 'automatic',
+	'cfg_titre_du_site' => 'Site Title',
+	'cfg_titre_du_site_explication' => 'Replace the site title with the entered text',
+	'cfg_masquer_slogan_label' => 'Hide the slogan?',
+	'cfg_slogan_du_site' => 'Site Slogan',
+	'cfg_slogan_du_site_explication' => 'Replace the site slogan with the entered text',
+	'cfg_drapeau_en_berne_label' => 'Lower the flag?',
+	'cfg_masquer_haut_de_page_label' => 'Hide the Top of Page button?',
+	'cfg_home_en_h1_label' => 'Set the home page in h1?',
+	'cfg_masquer_recherche_label' => 'Hide the search form?',
+	'cfg_masquer_message_alerte_label' => 'Hide the alert message?',
+	'cfg_message_alerte' => 'Alert Message',
+	'cfg_message_alerte_explication' => 'Content of the alert message',
+	'cfg_note_message_alerte' => 'The important information banner should only be used for primary and temporary information. (Excessive or continuous use may "drown" the component).<br><br>The banner must be visible on all pages of the site, regardless of the device used.<br><br>For vital information like an abduction alert, it is possible to use a specific banner.',
+	'cfg_masquer_statistiques_label' => 'Hide statistics?',
+	'cfg_script_statistiques' => 'Statistics Script',
+	'cfg_script_statistiques_explication' => 'Source code of the statistics script',
+	'cfg_note_script_statistiques_debut' => 'The statistics script will only be applied to the domain ',
+	'cfg_note_script_statistiques_fin' => '</strong>.<br><br>To modify the domain on which the statistics script is applied, the "Production Domain Name" field must be changed or <a href ="#champ_nom_de_domaine_en_production">Click here</a>',
+	'cfg_masquer_type_de_liste_de_liens_label' => 'Hide the link list?',
+	'cfg_choix_type_de_liste_de_liens' => 'Choose a value',
+	'cfg_choix_type_de_liste_de_liens_label' => 'Type of link list',
+	'cfg_choix_nombre_de_liste_de_liens' => 'Choose the number of lists',
+	'cfg_choix_nombre_de_liste_de_liens_label' => 'Number of link lists',
+	'cfg_masquer_newsletter' => 'Hide the newsletter?',
+	'cfg_titre_newsletter_label' => 'Newsletter Title:',
+	'cfg_titre_newsletter_explication' => 'Configure the name of the newsletter',
+	'cfg_slogan_newsletter_label' => 'Newsletter Slogan',
+	'cfg_slogan_newsletter_explication' => 'Configure the slogan of the newsletter',
+	'cfg_description_newsletter_label' => 'Newsletter Description',
+	'cfg_description_newsletter_explication' => 'Configure the description of the newsletter',
+	'cfg_type_formulaire_newsletter_label' => 'Type of Form',
+	'cfg_type_formulaire_newsletter_intro' => 'Configure the type of form to use',
+	'cfg_url_formulaire_newsletter_label' => 'Newsletter URL',
+	'cfg_url_formulaire_newsletter_explication' => 'Configure the URL of the link or form',
+	'cfg_titre_bouton_label' => 'Button Title',
+	'cfg_titre_bouton_explication' => 'Configure the title of the button',
+	'cfg_nom_champ_input_form_label' => 'Name of the input field',
+	'cfg_nom_champ_input_form_explication' => 'Configure the name of the input field',
+	'cfg_masquer_menu_label' => 'Hide the main menu?',
+	'cfg_choix_type_de_menu' => 'Choose a value',
+	'cfg_choix_type_de_menu_label' => 'Type of menu',
+	'cfg_choix_nombre_de_menu' => 'Choose the number of menus',
+	'cfg_choix_nombre_de_menu_label' => 'Number of menus',
+	'cfg_masquer_partenaires_label' => 'Hide partners?',
+	'cfg_titre_partenaires_principaux' => 'Main Partners',
+	'cfg_titre_partenaires_secondaires' => 'Secondary Partners',
+	'cfg_choix_nombre_de_partenaires_principaux' => 'Number of main partners',
+	'cfg_choix_nombre_de_partenaires_label' => 'Choose the number of partners',
+	'cfg_partenaires_principaux' => 'Main Partner',
+	'cfg_configuration_partenaires_principaux' => 'Configuration of the main partner',
+	'cfg_partenaires_secondaires' => 'Secondary Partner',
+	'cfg_configuration_partenaires_secondaires' => 'Configuration of the secondary partner',
+	'cfg_masquer_cookies_label' => 'Hide cookies?',
+	'cfg_liste_des_cookies' => 'List of cookies?',
+	'cfg_liste_des_cookies_explication' => 'Configure the list of cookies?',
+	'cfg_modifier_texte_cookies_label' => 'Modify the cookie text?',
+	'cfg_configuration_titre_texte_cookies' => 'Configure the title of the cookie text',
+	'cfg_titre_texte_cookies' => 'Cookie Title',
+	'cfg_texte_cookies_label' => 'Cookie Text',
+	'cfg_texte_cookies_explication' => 'Configure the text for the cookie panel',
+	'cfg_masquer_parametres_affichage_label' => 'Hide display settings?',
+	'cfg_parametre_affichage_defaut_label' => 'Default display settings',
+	'cfg_pad_dans_footer_label' => 'Display settings in footer',
+	'cfg_note_parametres_affichage' => 'The display settings take the place of quick access link 3<br><br>The display settings are dependent on the access links -> Access links automatically activated if you activate "<strong>display settings</strong>".',
+	'cfg_masquer_liste_acces_rapide_label' => 'Hide the quick access list?',
+	'cfg_lien_dacces_rapide_label' => 'Quick Link',
+	'cfg_configuration_lien_dacces_rapide' => 'Configure the quick link',
+	'cfg_note_altkey' => 'Select an input field above and press the "<strong>ALT</strong>" key to activate the element configurator.',
+	'cfg_masquer_logo_secondaire_label' => 'Hide secondary logo?',
+	'cfg_choix_type_insertion_second_logo_label' => 'Type of logo',
+	'cfg_choix_nombre_de_liens_ecosysteme' => 'Number of ecosystem links',
+	'cfg_masquer_partage_reseaux_sociaux_label' => 'Hide social network tracking?',
+	'cfg_titre_partage_reseaux_sociaux_label' => 'Title of the tracking block',
+	'cfg_titre_partage_reseaux_sociaux_explication' => 'Configure the title of the tracking block',
+	'cfg_url_facebook_label' => 'Facebook URL',
+	'cfg_url_twitter_label' => 'Twitter URL',
+	'cfg_url_youtube_label' => 'Youtube URL',
+	'cfg_url_instagram_label' => 'Instagram URL',
+	'cfg_url_linkedin_label' => 'Linkedin URL',
+	'cfg_url_rss_label' => 'RSS Feed URL',
+	'cfg_url_rss_explication' => 'Configure the RSS feed link',
+	'cfg_ecosysteme_label' => 'Ecosystem Link',
+	'cfg_ecosysteme_explication' => 'Configure the ecosystem link',
+	'cfg_titre_du_bloc_partenaires' => 'Title of the "Partners" block',
+	'cfg_lien_vers_votre_page' => 'Configure this field',
+	'cfg_configurer_lien_reseaux_sociaux' => 'Configure the link',
+	'cfg_lien_legal_label' => 'Legal Link',
+	'cfg_choix_nombre_de_liens_obligations_legales' => 'Number of legal obligation links',
+	'cfg_afficher_bouton_cookies' => 'Cookies button in footer?',
+	'cfg_dsfr_licence' => 'License Information?',
+	'cfg_enregistrer_le_formulaire' => 'Save the form',
+	'cfg_charger_nouvelle_image' => 'Load a new image',
+	'cfg_fichier' => 'file',
+	'cfg_code' => 'code',
+	'cfg_choix_option' => 'Select an option',
+	'cfg_configuration_liste_de_liens' => 'Configuration of the link list',
+	'cfg_liste_de_liens' => 'Link list',
+	'cfg_configuration_menu' => 'Menu configuration',
+	'cfg_menu' => 'Menu',
+	'cfg_interne' => 'Internal',
+	'cfg_externe' => 'External',
+	'cfg_notes' => 'Notes',
+	'cfg_notes_dsfr' => 'DSFR Notes',
+	'cfg_titre_parametrages_header' => 'Configuration of header settings',
+	'cfg_titre_panneau_commandes' => 'Control Panel',
+	'cfg_oui' => 'yes',
+	'cfg_non' => 'no',
+	'titre_page_configurer_design_system_admin' => 'DSFR Configuration',
+	'fr' => 'French',
+	'en' => 'English',
+	'es' => 'Spanish',
+	'de' => 'German',
+	'it' => 'Italian',
+	'pt' => 'Portuguese',
+	'ru' => 'Russian',
+	'zh' => 'Chinese',
+	'ja' => 'Japanese',
+	'ar' => 'Arabic',
+	'hi' => 'Hindi',
+	'bn' => 'Bengali',
+	'ko' => 'Korean',
+	'nl' => 'Dutch',
+	'sv' => 'Swedish',
+	'da' => 'Danish',
+	'fi' => 'Finnish',
+	'no' => 'Norwegian',
+	'pl' => 'Polish',
+	'tr' => 'Turkish',
+	'el' => 'Greek',
+	'he' => 'Hebrew',
+	'cs' => 'Czech',
+	'hu' => 'Hungarian',
+	'th' => 'Thai',
+    'cfg_download_doc' => 'Download the document',
+	'cfg_version_texte' => 'Text version',
+	'cfg_enlarge_image' => 'Enlarge image',
+	'sndi_description' => 'This site is administered by the General Commission for Sustainable Development (CGDD), a cross-sectional department of the Ministry of Ecological Transition and Territorial Cohesion (MTECT), in charge of steering the implementation of the SNDI. This interministerial strategy brings together the Ministries of Agriculture, the Economy, Europe and Foreign Affairs and Research.',
+];
diff --git a/design_system_admin/lang/design_system_admin_fr.php b/design_system_admin/lang/design_system_admin_fr.php
index c0c9453..803a600 100644
--- a/design_system_admin/lang/design_system_admin_fr.php
+++ b/design_system_admin/lang/design_system_admin_fr.php
@@ -155,4 +155,33 @@ $GLOBALS[$GLOBALS['idx_lang']] = [
 	
 	// T
 	'titre_page_configurer_design_system_admin' => 'Configuration DSFR',
+	'cfg_fr' => 'Français',
+	'cfg_en' => 'Anglais',
+	'cfg_es' => 'Espagnol',
+	'cfg_de' => 'Allemand',
+	'cfg_it' => 'Italien',
+	'cfg_pt' => 'Portugais',
+	'cfg_ru' => 'Russe',
+	'cfg_zh' => 'Chinois',
+	'cfg_ja' => 'Japonais',
+	'cfg_ar' => 'Arabe',
+	'cfg_hi' => 'Hindi',
+	'cfg_bn' => 'Bengali',
+	'cfg_ko' => 'Coréen',
+	'cfg_nl' => 'Néerlandais',
+	'cfg_sv' => 'Suédois',
+	'cfg_da' => 'Danois',
+	'cfg_fi' => 'Finnois',
+	'cfg_no' => 'Norvégien',
+	'cfg_pl' => 'Polonais',
+	'cfg_tr' => 'Turc',
+	'cfg_el' => 'Grec',
+	'cfg_he' => 'Hébreu',
+	'cfg_cs' => 'Tchèque',
+	'cfg_hu' => 'Hongrois',
+	'cfg_th' => 'Thaï',
+	'cfg_download_doc' => 'Télécharger le document',
+	'cfg_version_texte' => 'Version texte',
+	'cfg_enlarge_image' => 'Agrandir',
+	'sndi_description' => 'Ce site est administré par le Commissariat général au développement durable (CGDD), direction transversale du ministère de la Transition écologique et de la Cohésion des territoires (MTECT), en charge du pilotage de la mise en œuvre de la SNDI. Cette stratégie interministérielle associe les ministères de l’Agriculture, de l’Économie, de l’Europe et des affaires étrangères et de la Recherche',
 ];
diff --git a/design_system_admin/prive/javascript/dsfrconfiguration.js b/design_system_admin/prive/javascript/dsfrconfiguration.js
index 4f331c1..2f040ff 100644
--- a/design_system_admin/prive/javascript/dsfrconfiguration.js
+++ b/design_system_admin/prive/javascript/dsfrconfiguration.js
@@ -64,6 +64,7 @@ jQuery(document).ready(function($) {
             assurerAttributData('data-gestion', 'masquer_logo_secondaire', 'true');
             assurerAttributData('data-gestion', 'masquer_partenaires', 'true');
             assurerAttributData('data-gestion', 'masquer_menu', 'true');
+            assurerAttributData('data-gestion', 'masquer_langue', 'true');
             assurerAttributData('data-gestion', 'masquer_liste_de_lien', 'true');
             assurerAttributData('data-gestion', 'masquer_liens_obligation_legale', 'true');
             assurerAttributData('data-gestion', 'masquer_auteur', 'true');
@@ -75,6 +76,7 @@ jQuery(document).ready(function($) {
 
             assurerAttributData('data-elementname', 'nombre_de_liste_de_liens', 'liste_de_liens');        
             assurerAttributData('data-elementname', 'nombre_de_menu', 'menu');
+            assurerAttributData('data-elementname', 'nombre_de_langue', 'langue');
             assurerAttributData('data-elementname', 'nombre_de_partenaires_principaux', 'partenaires_principaux');
             assurerAttributData('data-elementname', 'nombre_de_partenaires_secondaires', 'partenaires_secondaires');
             assurerAttributData('data-elementname', 'nombre_de_liens_ecosysteme', 'lien_eco');
@@ -96,6 +98,7 @@ jQuery(document).ready(function($) {
             assurerAttributData('data-parent', 'modifier_texte_cookies', 'masquer_cookies');
             assurerAttributData('data-parent', 'nombre_de_liste_de_liens', 'masquer_liste_de_lien');
             assurerAttributData('data-parent', 'nombre_de_menu', 'masquer_menu');
+            assurerAttributData('data-parent', 'nombre_de_langue', 'masquer_langue');
             assurerAttributData('data-parent', 'nombre_de_partenaires_principaux', 'partenaires_principaux');
             assurerAttributData('data-parent', 'nombre_de_partenaires_secondaires', 'partenaires_secondaires');
             assurerAttributData('data-parent', 'nombre_de_liens_ecosysteme', 'nombre_de_liens_ecosysteme');
@@ -106,6 +109,7 @@ jQuery(document).ready(function($) {
             assurerAttributData('data-select-0', 'nombre_de_liste_de_liens', '1');        
             assurerAttributData('data-select', 'nombre_de_menu', 'numeric');
             assurerAttributData('data-select-0', 'nombre_de_menu', '1');
+            assurerAttributData('data-select-0', 'nombre_de_langue', '1');
             assurerAttributData('data-select', 'nombre_de_partenaires_principaux', 'numeric');
             assurerAttributData('data-select', 'nombre_de_partenaires_secondaires', 'numeric');
             assurerAttributData('data-select', 'nombre_de_liens_ecosysteme', 'numeric');
-- 
GitLab