Fix: accents manquants dans seed + labels type visibles

- Reseed avec tous les accents français corrigés (à, é, è, ê, î, ô)
- Labels type-étiquette: taille augmentée, fond accent léger, visible

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-03-02 09:45:15 +01:00
parent 21ceae4866
commit 3de07e8c17
2 changed files with 65 additions and 62 deletions

View File

@@ -8,7 +8,7 @@ Sources:
- Licence v0.4.0 (in progress): https://forum.monnaie-libre.fr/t/32375 - Licence v0.4.0 (in progress): https://forum.monnaie-libre.fr/t/32375
- Runtime Upgrade process template - Runtime Upgrade process template
Genesis références: Genesis references:
- Licence repo: https://git.duniter.org/documents/g1_monetary_license - Licence repo: https://git.duniter.org/documents/g1_monetary_license
- g1vote: https://git.duniter.org/tools/g1vote-view - g1vote: https://git.duniter.org/tools/g1vote-view
- g1vote live: https://g1vote-view-237903.pages.duniter.org/ - g1vote live: https://g1vote-view-237903.pages.duniter.org/
@@ -256,12 +256,12 @@ GENESIS_CERTIFICATION = {
}, },
{ {
"title": "Règles de modifications (annexe licence)", "title": "Règles de modifications (annexe licence)",
"url": "https://forum.monnaie-libre.fr/t/prepa-règles-de-modifications-annexe-licence-1/32409", "url": "https://forum.monnaie-libre.fr/t/prepa-regles-de-modifications-annexe-licence-1/32409",
"status": "in_progress", "status": "in_progress",
"posts": 9, "posts": 9,
}, },
{ {
"title": "Vote nuance licence", "title": "Vote nuancé licence",
"url": "https://forum.monnaie-libre.fr/t/processus-de-validation-licence-par-vote-nuance/31729", "url": "https://forum.monnaie-libre.fr/t/processus-de-validation-licence-par-vote-nuance/31729",
"status": "référence", "status": "référence",
}, },
@@ -271,7 +271,7 @@ GENESIS_CERTIFICATION = {
"le texte de remplacement est intégré au document officiel. " "le texte de remplacement est intégré au document officiel. "
"Le hash IPFS du document mis à jour est ancré on-chain via system.remark. " "Le hash IPFS du document mis à jour est ancré on-chain via system.remark. "
"Les applications (Cesium, Gecko) pointent vers le dépôt git officiel " "Les applications (Cesium, Gecko) pointent vers le dépôt git officiel "
"qui est synchronisé avec l'etat valide par les votes." "qui est synchronisé avec l'état validé par les votes."
), ),
"contributors": [ "contributors": [
{"name": "1000i100", "role": "Pilote principal, rédacteur"}, {"name": "1000i100", "role": "Pilote principal, rédacteur"},
@@ -300,7 +300,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"Cet acte est de fait l'unique relation contractuelle de notre " "Cet acte est de fait l'unique relation contractuelle de notre "
"toile fiduciaire. Toute certification doit s'accompagner de la " "toile fiduciaire. Toute certification doit s'accompagner de la "
"transmission de ce document, dont le certificateur doit s'assurer " "transmission de ce document, dont le certificateur doit s'assurer "
"qu'il a ete étudié, compris et accepté par le certifié." "qu'il a été étudié, compris et accepté par le certifié."
), ),
}, },
{ {
@@ -317,7 +317,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"**2.** Derrière cet être humain se trouve **une seule et unique** " "**2.** Derrière cet être humain se trouve **une seule et unique** "
"clé publique créatrice de monnaie.\n\n" "clé publique créatrice de monnaie.\n\n"
"La certification est un acte technique et fiduciaire, " "La certification est un acte technique et fiduciaire, "
"pas un acte d'adhesion morale ou de sympathie." "pas un acte d'adhésion morale ou de sympathie."
), ),
}, },
# =================================================================== # ===================================================================
@@ -344,8 +344,8 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"section_tag": "fondamental", "section_tag": "fondamental",
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"Je m'engage sur l'honneur a n'avoir et n'avoir jamais " "Je m'engage sur l'honneur à n'avoir et n'avoir jamais "
"qu'un seul et unique compte cocreateur de monnaie G1." "qu'un seul et unique compte cocréateur de monnaie G1."
), ),
}, },
{ {
@@ -356,7 +356,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"section_tag": "fondamental", "section_tag": "fondamental",
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"Je m'engage sur l'honneur a ne certifier que des personnes " "Je m'engage sur l'honneur à ne certifier que des personnes "
"physiques qui respectent scrupuleusement ces deux présents " "physiques qui respectent scrupuleusement ces deux présents "
"engagements fondamentaux." "engagements fondamentaux."
), ),
@@ -374,7 +374,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"current_text": ( "current_text": (
"Les engagements techniques définissent les obligations " "Les engagements techniques définissent les obligations "
"pratiques et vérifiables du certificateur pour garantir " "pratiques et vérifiables du certificateur pour garantir "
"la qualite de la toile de confiance." "la qualité de la toile de confiance."
), ),
}, },
{ {
@@ -401,14 +401,14 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"J'ai personnellement vérifié que c'est bien cette clé publique " "J'ai personnellement vérifié que c'est bien cette clé publique "
"que je m'apprête a certifier, en la comparant avec la personne " "que je m'apprête à certifier, en la comparant avec la personne "
"concernée et non par un intermédiaire." "concernée et non par un intermédiaire."
), ),
}, },
{ {
"position": "E5", "position": "E5",
"item_type": "clause", "item_type": "clause",
"title": "Joignabilité reciproque", "title": "Joignabilité réciproque",
"sort_order": 9, "sort_order": 9,
"section_tag": "technique", "section_tag": "technique",
"inertia_preset": "standard", "inertia_preset": "standard",
@@ -435,13 +435,13 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
{ {
"position": "E7", "position": "E7",
"item_type": "clause", "item_type": "clause",
"title": "Rencontre physique ou verification multi-canaux", "title": "Rencontre physique ou vérification multi-canaux",
"sort_order": 11, "sort_order": 11,
"section_tag": "technique", "section_tag": "technique",
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"J'ai rencontré la personne physiquement (préférable), **OU** " "J'ai rencontré la personne physiquement (préférable), **OU** "
"j'ai vérifié a distance le lien personne / clé publique par " "j'ai vérifié à distance le lien personne / clé publique par "
"plusieurs moyens de communication différents et indépendants : " "plusieurs moyens de communication différents et indépendants : "
"courrier + réseau social + forum + email + visio + téléphone." "courrier + réseau social + forum + email + visio + téléphone."
), ),
@@ -458,7 +458,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"Les pratiques suivantes sont fortement recommandées pour " "Les pratiques suivantes sont fortement recommandées pour "
"garantir la qualite et la sécurité de la toile de confiance." "garantir la qualité et la sécurité de la toile de confiance."
), ),
}, },
{ {
@@ -482,10 +482,10 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"section_tag": "technique", "section_tag": "technique",
"inertia_preset": "standard", "inertia_preset": "standard",
"current_text": ( "current_text": (
"Avant toute certification, vérifiez si le compte a deja " "Avant toute certification, vérifiez si le compte a déjà "
"reçu des certifications et de qui elles proviennent. " "reçu des certifications et de qui elles proviennent. "
"Contactez les certifieurs existants en cas de doute. " "Contactez les certifieurs existants en cas de doute. "
"Si un certifieurs existant ne connait pas la personne, " "Si un certifieurs existant ne connaît pas la personne, "
"alertez immédiatement les experts de la communauté." "alertez immédiatement les experts de la communauté."
), ),
}, },
@@ -521,7 +521,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
{ {
"position": "K1", "position": "K1",
"item_type": "preamble", "item_type": "preamble",
"title": "Règles abregees de la toile de confiance", "title": "Règles abrégées de la toile de confiance",
"sort_order": 17, "sort_order": 17,
"section_tag": "conclusion", "section_tag": "conclusion",
"inertia_preset": "standard", "inertia_preset": "standard",
@@ -668,7 +668,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
{ {
"position": "X2.3", "position": "X2.3",
"item_type": "verification", "item_type": "verification",
"title": "Questions sécurité (reponse attendue : OUI)", "title": "Questions sécurité (réponse attendue : OUI)",
"sort_order": 26, "sort_order": 26,
"section_tag": "annexe", "section_tag": "annexe",
"inertia_preset": "low", "inertia_preset": "low",
@@ -676,8 +676,8 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"**Si NON, la certification est déconseillée.**\n\n" "**Si NON, la certification est déconseillée.**\n\n"
"- La personne a généré son document de révocation\n" "- La personne a généré son document de révocation\n"
"- La personne maîtrise effectivement son compte " "- La personne maîtrise effectivement son compte "
"(test de transfert effectue)\n" "(test de transfert effectué)\n"
"- La personne sait ou retrouver le présent acte d'engagement " "- La personne sait où retrouver le présent acte d'engagement "
"dans sa version à jour" "dans sa version à jour"
), ),
}, },
@@ -771,7 +771,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
"current_text": ( "current_text": (
"Le réglage de l'inertie définit la difficulté de remplacement " "Le réglage de l'inertie définit la difficulté de remplacement "
"de chaque section du document. Ce réglage est lui-même soumis " "de chaque section du document. Ce réglage est lui-même soumis "
"a l'inertie la plus élevée, pour empêcher la modification " "à l'inertie la plus élevée, pour empêcher la modification "
"des règles de modification." "des règles de modification."
), ),
}, },
@@ -843,8 +843,8 @@ async def seed_document_engagement_certification(
description=( description=(
"Acte d'engagement des certificateurs de la toile de confiance G1. " "Acte d'engagement des certificateurs de la toile de confiance G1. "
"Document modulaire sous vote permanent : chaque item peut être " "Document modulaire sous vote permanent : chaque item peut être "
"remplace par une alternative qui atteint le seuil d'adoption. " "remplacé par une alternative qui atteint le seuil d'adoption. "
"Construit a partir de la Licence G1 v0.3.0, des discussions " "Construit à partir de la Licence G1 v0.3.0, des discussions "
"communautaires et de la position 'Acte d'engagement' (Yvv)." "communautaires et de la position 'Acte d'engagement' (Yvv)."
), ),
genesis_json=genesis, genesis_json=genesis,
@@ -887,7 +887,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Intention et motivation", "title": "Intention et motivation",
"sort_order": 1, "sort_order": 1,
"current_text": ( "current_text": (
"J'ai clarifié ce qui me motive a devenir forgeron, " "J'ai clarifié ce qui me motive à devenir forgeron, "
"j'en assume les raisons." "j'en assume les raisons."
), ),
}, },
@@ -914,10 +914,10 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
{ {
"position": "A4", "position": "A4",
"item_type": "verification", "item_type": "verification",
"title": "Phrase de récupération aleatoire", "title": "Phrase de récupération aléatoire",
"sort_order": 4, "sort_order": 4,
"current_text": ( "current_text": (
"Je confirme que ma phrase de récupération a ete générée " "Je confirme que ma phrase de récupération a été générée "
"aléatoirement et n'est pas une phrase choisie par moi." "aléatoirement et n'est pas une phrase choisie par moi."
), ),
}, },
@@ -944,10 +944,10 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
{ {
"position": "A7", "position": "A7",
"item_type": "verification", "item_type": "verification",
"title": "Noeud a jour et synchronisé", "title": "Noeud à jour et synchronisé",
"sort_order": 7, "sort_order": 7,
"current_text": ( "current_text": (
"Je gère déjà un noeud a jour, correctement synchronisé et " "Je gère déjà un noeud à jour, correctement synchronisé et "
"joignable par les autres noeuds du réseau." "joignable par les autres noeuds du réseau."
), ),
}, },
@@ -957,7 +957,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "API unsafe non exposée", "title": "API unsafe non exposée",
"sort_order": 8, "sort_order": 8,
"current_text": ( "current_text": (
"J'ai veille a ne pas exposer publiquement l'api unsafe " "J'ai veillé à ne pas exposer publiquement l'api unsafe "
"de mon noeud validateur." "de mon noeud validateur."
), ),
}, },
@@ -987,8 +987,8 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Réactivité 24h", "title": "Réactivité 24h",
"sort_order": 11, "sort_order": 11,
"current_text": ( "current_text": (
"Je m'engage a répondre en moins de 24h aux forgerons " "Je m'engage à répondre en moins de 24h aux forgerons "
"quand je suis déclare online." "quand je suis déclaré online."
), ),
}, },
# --- Aspirant Forgeron : Contact --- # --- Aspirant Forgeron : Contact ---
@@ -1030,24 +1030,24 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"sort_order": 15, "sort_order": 15,
"current_text": ( "current_text": (
"J'ai bien compris le fonctionnement d'un réseau blockchain " "J'ai bien compris le fonctionnement d'un réseau blockchain "
"Duniter et le role du validateur." "Duniter et le rôle du validateur."
), ),
}, },
# --- Aspirant Forgeron : Pieges (expected: NON) --- # --- Aspirant Forgeron : Pièges (expected: NON) ---
{ {
"position": "A16", "position": "A16",
"item_type": "rule", "item_type": "rule",
"title": "Piege : harcèlement", "title": "Piège : harcèlement",
"sort_order": 16, "sort_order": 16,
"current_text": ( "current_text": (
"[Piège - réponse attendue : NON] " "[Piège - réponse attendue : NON] "
"J'insiste, harcele ou fais pression pour être certifié forgeron." "J'insiste, harcèle ou fais pression pour être certifié forgeron."
), ),
}, },
{ {
"position": "A17", "position": "A17",
"item_type": "rule", "item_type": "rule",
"title": "Piege : gloire et pouvoir", "title": "Piège : gloire et pouvoir",
"sort_order": 17, "sort_order": 17,
"current_text": ( "current_text": (
"[Piège - réponse attendue : NON] " "[Piège - réponse attendue : NON] "
@@ -1071,7 +1071,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Intention du certifié questionnée", "title": "Intention du certifié questionnée",
"sort_order": 19, "sort_order": 19,
"current_text": ( "current_text": (
"J'ai questionné l'intention du certifié a rejoindre " "J'ai questionné l'intention du certifié à rejoindre "
"les forgerons et vérifié sa motivation." "les forgerons et vérifié sa motivation."
), ),
}, },
@@ -1088,7 +1088,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
{ {
"position": "C3", "position": "C3",
"item_type": "verification", "item_type": "verification",
"title": "Phrase aleatoire du certifié", "title": "Phrase aléatoire du certifié",
"sort_order": 21, "sort_order": 21,
"current_text": ( "current_text": (
"Le certifié m'assure que son compte forgeron est issu d'une " "Le certifié m'assure que son compte forgeron est issu d'une "
@@ -1111,18 +1111,18 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Noeud du certifié vérifié", "title": "Noeud du certifié vérifié",
"sort_order": 23, "sort_order": 23,
"current_text": ( "current_text": (
"J'ai vérifié que le certifié gère déjà un noeud a jour, " "J'ai vérifié que le certifié gère déjà un noeud à jour, "
"correctement synchronisé et joignable." "correctement synchronisé et joignable."
), ),
}, },
{ {
"position": "C6", "position": "C6",
"item_type": "clause", "item_type": "clause",
"title": "Configuration du certifié notee", "title": "Configuration du certifié notée",
"sort_order": 24, "sort_order": 24,
"current_text": ( "current_text": (
"J'ai noté le style de configuration du noeud du certifié " "J'ai noté le style de configuration du noeud du certifié "
"(matériel, OS, hébergément)." "(matériel, OS, hébergement)."
), ),
}, },
{ {
@@ -1141,8 +1141,8 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Risques offline connus du certifié", "title": "Risques offline connus du certifié",
"sort_order": 26, "sort_order": 26,
"current_text": ( "current_text": (
"J'ai vérifié avec le certifié qu'il connait les risques " "J'ai vérifié avec le certifié qu'il connaît les risques "
"d'être déclare offline et les consequences." "d'être déclaré offline et les conséquences."
), ),
}, },
# --- Certificateur Forgeron : Contact --- # --- Certificateur Forgeron : Contact ---
@@ -1152,7 +1152,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Joindre les certifiés", "title": "Joindre les certifiés",
"sort_order": 27, "sort_order": 27,
"current_text": ( "current_text": (
"Je sais joindre efficacement les forgerons que j'ai certifies." "Je sais joindre efficacement les forgerons que j'ai certifiés."
), ),
}, },
{ {
@@ -1170,7 +1170,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Contact sous 24h en cas de défaut", "title": "Contact sous 24h en cas de défaut",
"sort_order": 29, "sort_order": 29,
"current_text": ( "current_text": (
"Je m'engage a contacter sous 24h ce forgeron si un défaut " "Je m'engage à contacter sous 24h ce forgeron si un défaut "
"concerne son noeud." "concerne son noeud."
), ),
}, },
@@ -1178,11 +1178,11 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
{ {
"position": "C12", "position": "C12",
"item_type": "verification", "item_type": "verification",
"title": "Engagements acceptes par le certifié", "title": "Engagements acceptés par le certifié",
"sort_order": 30, "sort_order": 30,
"current_text": ( "current_text": (
"J'ai vérifié que le certifié a accepte les engagements " "J'ai vérifié que le certifié a accepté les engagements "
"forgerons integralement." "forgerons intégralement."
), ),
}, },
{ {
@@ -1191,7 +1191,7 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Règles consultables par le certifié", "title": "Règles consultables par le certifié",
"sort_order": 31, "sort_order": 31,
"current_text": ( "current_text": (
"J'ai vérifié que le certifié sait ou consulter les règles " "J'ai vérifié que le certifié sait où consulter les règles "
"détaillées de la TdC forgeron." "détaillées de la TdC forgeron."
), ),
}, },
@@ -1201,15 +1201,15 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
"title": "Délais connus du certifié", "title": "Délais connus du certifié",
"sort_order": 32, "sort_order": 32,
"current_text": ( "current_text": (
"J'ai vérifié que le certifié connait les délais de passage " "J'ai vérifié que le certifié connaît les délais de passage "
"en ligne et hors ligne." "en ligne et hors ligne."
), ),
}, },
# --- Certificateur Forgeron : Pieges (expected: NON) --- # --- Certificateur Forgeron : Pièges (expected: NON) ---
{ {
"position": "C15", "position": "C15",
"item_type": "rule", "item_type": "rule",
"title": "Piege : certification sous pression", "title": "Piège : certification sous pression",
"sort_order": 33, "sort_order": 33,
"current_text": ( "current_text": (
"[Piège - réponse attendue : NON] " "[Piège - réponse attendue : NON] "
@@ -1219,11 +1219,11 @@ ENGAGEMENT_FORGERON_ITEMS: list[dict] = [
{ {
"position": "C16", "position": "C16",
"item_type": "rule", "item_type": "rule",
"title": "Piege : avantage personnel", "title": "Piège : avantage personnel",
"sort_order": 34, "sort_order": 34,
"current_text": ( "current_text": (
"[Piège - réponse attendue : NON] " "[Piège - réponse attendue : NON] "
"Je tire un avantage personnel en echange de ma certification." "Je tire un avantage personnel en échange de ma certification."
), ),
}, },
] ]
@@ -1286,7 +1286,7 @@ RUNTIME_UPGRADE_STEPS: list[dict] = [
"title": "Vote", "title": "Vote",
"description": ( "description": (
"Vote communautaire selon le protocole de vote en vigueur. " "Vote communautaire selon le protocole de vote en vigueur. "
"Le quorum et le seuil d'adoption dependent de la formule configurée." "Le quorum et le seuil d'adoption dépendent de la formule configurée."
), ),
}, },
{ {
@@ -1294,7 +1294,7 @@ RUNTIME_UPGRADE_STEPS: list[dict] = [
"step_type": "execution", "step_type": "execution",
"title": "Exécution", "title": "Exécution",
"description": ( "description": (
"Mise a jour on-chain via un extrinsic autorise. " "Mise à jour on-chain via un extrinsic autorisé. "
"Coordination avec les forgerons pour la synchronisation des noeuds." "Coordination avec les forgerons pour la synchronisation des noeuds."
), ),
}, },

View File

@@ -244,13 +244,16 @@ function navigateToItem() {
} }
.engagement-card__type-label { .engagement-card__type-label {
font-size: 0.5625rem; font-size: 0.625rem;
font-weight: 600; font-weight: 700;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.06em; letter-spacing: 0.05em;
color: var(--mood-text-muted); color: var(--mood-accent);
opacity: 0.6; opacity: 0.5;
flex-shrink: 0; flex-shrink: 0;
padding: 0.125rem 0.375rem;
border-radius: 4px;
background: color-mix(in srgb, var(--mood-accent) 8%, transparent);
} }
.engagement-card__body { .engagement-card__body {