/*! trentpower.fr · authored source */
{
  "en": {
    "meta": {
      "home": {
        "title": "Client Strategy & Growth Systems · Trent Power",
        "description": "Client strategy, growth systems and cultural adoption at global scale",
        "og_title": "Client Strategy & Growth Systems · Trent Power",
        "og_description": "Client strategy, growth systems and cultural adoption at global scale"
      },
      "privacy": {
        "title": "Privacy & Trust · Trent Power",
        "description": "A simple, privacy-respectful site with no tracking, analytics, cookies, profiling, or embedded third-party requests while you browse"
      },
      "integrity": {
        "title": "Integrity · Trent Power",
        "description": "Signed public releases, integrity manifest, detached signature and public signing key"
      },
      "releases": {
        "title": "Releases · Trent Power",
        "description": "Frozen, signed snapshots of the public site"
      },
      "security": {
        "title": "Security & Threat Model · Trent Power",
        "description": "Security architecture, operational controls, public verification surfaces and residual risks"
      },
      "acknowledgments": {
        "title": "Security acknowledgements · Trent Power",
        "description": "Responsible security disclosures verified and resolved for trentpower.fr."
      },
      "maintenance": {
        "title": "Down for maintenance · Trent Power",
        "description": "Down for maintenance."
      },
      "404": {
        "title": "Page not found · Trent Power",
        "description": "Page not found."
      },
      "500": {
        "title": "Something went wrong · Trent Power",
        "description": "Something went wrong."
      },
      "verify": {
        "title": "Verify this page · Trent Power",
        "description": "A public page record showing the canonical URL, source mirror, page fingerprint and signed release archive"
      },
      "source": {
        "title": "Source mirrors · Trent Power",
        "description": "Readable public mirrors of selected site files"
      },
      "403": {
        "title": "Forbidden · Trent Power",
        "description": "Access not permitted."
      },
      "verify_locally": {
        "title": "Verify locally · Trent Power",
        "description": "Detached verification notes: signed manifest check from a temporary keyring"
      }
    },
    "hero": {
      "statement": "Client strategy,<br><mark>growth systems,</mark><br>and cultural adoption<br>at global scale.",
      "body": "I lead client strategy at Group level, focusing on the systems, governance, and ways of working that turn client relationships into long-term value. My work sits at the intersection of strategy, technology, and human relationships, with a focus on impact that scales and endures."
    },
    "approach": {
      "label": "Approach",
      "growth_title": "Client growth takes discipline",
      "growth_body": "Lasting growth follows when elegant systems are in place.",
      "clienteling_title": "Clienteling converts transaction into meaning",
      "clienteling_detail": "<dfn id=\"clienteling-definition\" itemprop=\"name\">Clienteling</dfn> <span itemprop=\"description\">is a discipline. It is the practice of transforming what a Client Advisor knows into something a Client feels. The moment interactions become mechanical, it stops being Clienteling.</span>",
      "adoption_title": "Adoption matters more than tools",
      "adoption_body": "A strategy or technology only creates value when teams trust it and choose to use it. Trust must be earned, and utility must be proven. Client Advisors are first-line Clients and vital collaborators.",
      "ai_title": "AI should amplify human relationships",
      "ai_body": "Authenticity is a human advantage, and it cannot be automated. Trust, empathy, and judgement are built in the moment through tone and presence. I use AI to remove friction so people can show up more relevant, more consistent and more human, at scale.",
      "governance_title": "Governance creates momentum",
      "governance_body": "Clear ownership, cadence, and priorities create alignment, accelerate decisions, and enable scale.",
      "taste_title": "Taste is a strategic advantage",
      "taste_body": "Discernment, and cultural awareness shape interactions into something valuable and memorable."
    },
    "credentials": {
      "label": "Credentials",
      "sydney_title": "University of Sydney",
      "sydney_detail": "Master’s degree, 2009.",
      "exec_title": "Selective executive education",
      "exec_detail": "Ongoing senior-level learning across artificial intelligence, consumer behaviour, organisational transformation, and leadership coaching."
    },
    "trajectory": {
      "label": "Trajectory",
      "current_label": "Current",
      "current_title": "Group Director, Client Development & Client Relations",
      "current_org": "<abbr title=\"Louis Vuitton Moët Hennessy\">LVMH</abbr>",
      "current_detail": "Group-wide client strategy across Maisons and markets",
      "current_span": "2023 — now",
      "previous_label": "Previous",
      "previous_title": "Group Head of Clienteling",
      "previous_org": "<abbr title=\"Louis Vuitton Moët Hennessy\">LVMH</abbr>",
      "previous_span": "2017 — 2023",
      "maisons_label": "Maisons",
      "maisons_title": "Senior leadership across <a href=\"/#clienteling-definition\" aria-label=\"Read the definition of Clienteling used on this site\">Clienteling</a>, <abbr title=\"Customer Relationship Management\">CRM</abbr> & Retail",
      "maisons_org": "BVLGARI",
      "maisons_span": "2004 — 2017",
      "background_label": "Background",
      "background_title": "Web Entrepreneur",
      "background_detail": "Building online platforms and communities",
      "background_span": "1997 — 2004"
    },
    "projects": {
      "label": "Projects",
      "paris_desc": "A private cultural intelligence system for Paris, combining location, effort, editorial judgement and personal taste into a calmer way to decide what is worth leaving home for.",
      "paris_subline": "A personal experiment in taste systems, local relevance and human-scale recommendation.",
      "paris_preview_header": "This week near Jourdain, 20th",
      "paris_preview_caption": "A sample cultural intelligence selection for one week, one neighbourhood.",
      "paris_cta": "View project",
      "tier_walk": "walk",
      "tier_metro": "metro",
      "tier_bike": "bike"
    },
    "contact": {
      "label": "Contact",
      "headline": "Write,<br>and I&rsquo;ll <em>write back.</em>",
      "email_aria": "Email Trent Power"
    },
    "footer": {
      "privacy": "Privacy",
      "lang_toggle": "FR",
      "location": "Paris, France",
      "verify": "Verify",
      "theme": {
        "light": "Light",
        "auto": "Auto",
        "dark": "Dark"
      },
      "proof": {
        "edition": "Edition",
        "signed": "SHA256",
        "last_verified": "Verified",
        "sha_title": "View this page's entry in the signed integrity manifest",
        "relative": {
          "today": "today",
          "yesterday": "yesterday",
          "days": "{n} days ago",
          "months": "{n} months ago",
          "years": "{n} years ago"
        }
      },
      "provenance": {
        "line": "Machine-translated from the English original."
      }
    },
    "modal": {
      "text": "This is a personal project. If you'd like to see it, I'd be happy to share access.",
      "cta_aria": "Request access by email",
      "close": "Close",
      "cta_label": "Access by request"
    },
    "cite": {
      "hover": "Copy citation",
      "copied": "Copied",
      "site_label": "Personal Site",
      "edition_label": "Edition",
      "label": {
        "action": "Cite & verify"
      },
      "overlay": {
        "kicker": "This page",
        "lede": "Canonical publication record.",
        "action": {
          "copy_citation": "Copy citation",
          "verify": "Verify this page",
          "open_source": "View source",
          "view_integrity": "View integrity record",
          "print_home": "Print profile",
          "print_sheet": "Print profile",
          "print_page": "Print profile",
          "close": "Close"
        },
        "page_title": {
          "home": "Client Strategy & Growth Systems",
          "privacy": "Privacy statement",
          "security": "Security posture",
          "integrity": "Integrity record",
          "verify": "Verify page",
          "source": "Source reader",
          "source-reader": "Source reader",
          "acknowledgments": "Security acknowledgements",
          "integrity-verify-locally": "Verify locally",
          "releases": "Release archive",
          "release-archive": "Release archive · 2026-05-09",
          "forbidden": "Access not available",
          "not-found": "Page not found",
          "server-error": "Temporary server error",
          "maintenance": "Down for maintenance",
          "sw-reset": "Service worker reset"
        },
        "toast": {
          "citation_copied": "Citation copied"
        },
        "footer_signed": "Edition {edition} · Signed SHA256"
      }
    },
    "privacy": {
      "page_title": "Privacy & Trust",
      "page_kicker": "Privacy & Trust",
      "page_h1": "<span class=\"hero-line\">Nothing tracked.</span><span class=\"hero-line\">Nothing to delete.</span>",
      "body_intro": "No tracking, analytics, cookies, profiling, embedded third-party services, or third-party requests while you browse. No personal data is collected for analytics, advertising, or profiling. Any limited technical data the server processes is used only to keep the site secure and operating correctly.",
      "body_detail": "External links are ordinary references. They are contacted only if you choose to open them. The only browser storage used is a local language preference. It stays on your device and is never transmitted.",
      "body_records": "Public inspection and verification records are published separately. You can read the <a href=\"/security/\" aria-describedby=\"desc-security-threat-model\">Security & threat model</a> for the full posture.",
      "print": {
        "kicker": "Privacy & Trust",
        "title": "Privacy-first by design",
        "lede": "This site is intentionally simple and privacy-respectful. It uses no tracking, analytics, cookies, profiling, or embedded third-party requests while you browse.",
        "meta": "Edition 2026-05-19 · trentpower.fr/privacy/",
        "card": {
          "01": {
            "label": "01 No tracking",
            "title": "No tracking",
            "body": "No analytics. No cookies. No profiling. No third-party requests while browsing."
          },
          "02": {
            "label": "02 No data collection",
            "title": "No data collection",
            "body": "No public forms. No visitor accounts. No behavioural tracking. No advertising infrastructure."
          },
          "03": {
            "label": "03 Verification route",
            "title": "Verification route",
            "body": "Integrity page. Security page. Public manifest. Source view."
          },
          "04": {
            "label": "04 Design principle",
            "title": "Privacy as posture",
            "body": "Privacy is not a compliance layer. It is part of the site’s editorial and professional posture."
          },
          "05": {
            "label": "05 What you can check",
            "title": "What you can check",
            "body": "View source. Read /integrity.json. Verify the signature. Inspect the security headers."
          },
          "06": {
            "label": "06 Contact",
            "title": "Contact",
            "body": "trent@trentpower.fr · canonical route trentpower.fr/privacy/"
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/privacy/"
        },
        "qr": {
          "label": "trentpower.fr/privacy/"
        },
        "doc_title": "Trent Power - Privacy Trust Sheet"
      }
    },
    "integrity": {
      "page_kicker": "Integrity",
      "page_h1": "<span class=\"hero-line\">Signed.</span><span class=\"hero-line\">Verifiable.</span><span class=\"hero-line\">Reproducible.</span>",
      "page_title": "Integrity",
      "body_intro": "Every public file is hashed and listed in a manifest, signed with a detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature so each release can be checked against the publisher's key - independently, on your own machine, without trust in this server. You can <a href=\"/integrity/verify-locally/\" aria-describedby=\"desc-verify-locally\">verify locally here</a>.",
      "file_integrity": "/integrity.json · SHA-256 hashes of all public assets",
      "file_sig": "/integrity.json.sig · detached PGP signature",
      "file_key": "/.well-known/pgp-key.asc · public signing key",
      "copy_button": "Copy",
      "copy_button_done": "Copied",
      "fingerprint_copy": "Copy fingerprint",
      "fingerprint_copied": "Copied",
      "print": {
        "kicker": "Integrity",
        "title": "Signed public verification",
        "lede": "Published files are listed in a public manifest and signed with a detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature so updates can be verified independently.",
        "meta": "Edition 2026-05-19 · trentpower.fr/integrity/",
        "card": {
          "01": {
            "label": "01 Manifest",
            "title": "Manifest",
            "body": "<code>/integrity.json</code> - <abbr title=\"Secure Hash Algorithm, 256-bit\">SHA-256</abbr> hashes of every intentional public file."
          },
          "02": {
            "label": "02 Signature",
            "title": "Detached signature",
            "body": "/integrity.json.sig - detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature that verifies the manifest."
          },
          "03": {
            "label": "03 Public key",
            "title": "Public key",
            "body": "/.well-known/pgp-key.asc - fingerprint A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          },
          "04": {
            "label": "04 Releases",
            "title": "Frozen releases",
            "body": "/integrity/releases/ - public snapshots: February 2026 and May 2026."
          },
          "05": {
            "label": "05 Source route",
            "title": "Source route",
            "body": "/source/ - public text view of selected source files. No secrets, no private artefacts."
          },
          "06": {
            "label": "06 Verification",
            "title": "Verification",
            "body": "curl -O trentpower.fr/integrity.json && curl -O trentpower.fr/integrity.json.sig && gpg --verify integrity.json.sig integrity.json"
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/integrity/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/"
        },
        "doc_title": "Trent Power - Integrity Verification Sheet"
      },
      "record": {
        "kicker": "Signed release",
        "title": "<time datetime=\"2026-05\">May 2026</time>",
        "status_short": "Manifest · Signature · Public key",
        "label": {
          "manifest": "Manifest",
          "signature": "Detached signature",
          "public_key": "Public key",
          "archives": "Archives",
          "checksums": "Archive checksums",
          "fingerprint": "Fingerprint"
        },
        "desc": {
          "manifest": "<abbr title=\"Secure Hash Algorithm, 256-bit\">SHA-256</abbr> hashes of public files",
          "signature": "Detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature",
          "public_key": "Public signing key",
          "archives": "Signed public source release",
          "checksums": "Signed checksum list for archive downloads"
        },
        "action": {
          "view_manifest": "View manifest",
          "view_releases": "View releases"
        },
        "group": {
          "verification": "Verification records",
          "archives": "Source archives",
          "fingerprint": "Release fingerprint"
        }
      },
      "verify_release_local": {
        "summary": "Advanced local verification",
        "note": "Run the signed manifest check in a temporary keyring."
      }
    },
    "releases": {
      "page_title": "Releases",
      "body_intro": "Each <dfn id=\"signed-release\">release</dfn> is a frozen, signed snapshot of the public site at the time of publication. Source archives can be downloaded, and checksums and signatures are provided for local verification.",
      "editions_heading": "Editions",
      "group": {
        "current": "Current release",
        "archive": "Archive"
      },
      "view_release": "View release",
      "download_checksums_sig": "Checksums & signature",
      "aria": {
        "actions_current": "Current release downloads and verification",
        "actions_archive": "Release record"
      },
      "detail": {
        "page_title": "May 2026",
        "intro": "Signed release archives for the 9 May 2026 edition. A signed checksum list verifies the archive set; checksums verify the downloaded files; detached signatures verify each archive directly. The signed manifest at /integrity.json remains the live-site authority.",
        "card": {
          "kicker": "Release files",
          "title": "9 May 2026",
          "status": "ZIP · TAR.GZ · Checksums · Signatures",
          "label": {
            "zip": "ZIP",
            "zip_sig": "ZIP signature",
            "zip_sha": "ZIP checksum",
            "targz": "TAR.GZ",
            "targz_sig": "TAR.GZ signature",
            "targz_sha": "TAR.GZ checksum",
            "sums": "Checksum list",
            "sums_sig": "Checksum list signature"
          },
          "desc": {
            "zip": "Portable public source snapshot",
            "sig": "Detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature",
            "sha": "SHA-256 checksum",
            "targz": "Technical preservation archive",
            "sums": "SHA-256 list for release archives",
            "sums_sig": "Detached <abbr title=\"Pretty Good Privacy\">PGP</abbr> signature over SHA256SUMS"
          }
        },
        "note": "Archive binaries are not included in /integrity.json to avoid recursive hashing. They are verified separately through the signed checksum list, individual SHA-256 checksums and detached signatures. <a href=\"/integrity/\">Integrity</a> remains the live-site authority."
      },
      "edition_feb": "February 2026 · initial signed release",
      "edition_feb_date": "February 2026",
      "edition_feb_desc": "<cite>Initial signed release</cite>",
      "print": {
        "kicker": "Releases",
        "title": "Frozen public editions",
        "lede": "Public release snapshots preserve selected editions of the site with local assets so their design and integrity can be inspected over time.",
        "meta": "Edition 2026-05-19 · trentpower.fr/integrity/releases/",
        "doc_title": "Trent Power - Release Archive Sheet",
        "card": {
          "01": {
            "label": "01 9 May 2026",
            "title": "9 May 2026",
            "body": "Final May edition. Signed source archives, deterministic ZIP and TAR.GZ, aggregated SHA256SUMS. Clean active filenames. One-page print profile. Trust sheets."
          },
          "02": {
            "label": "02 February 2026",
            "title": "February 2026",
            "body": "Initial signed release. Earlier visual system. Preserved as a historical archive."
          },
          "03": {
            "label": "03 Archive principle",
            "title": "Archive principle",
            "body": "Frozen assets. Local CSS and fonts. No live mutable style dependency."
          },
          "04": {
            "label": "04 Integrity route",
            "title": "Integrity route",
            "body": "/integrity.json · /integrity.json.sig · /.well-known/pgp-key.asc"
          },
          "05": {
            "label": "05 Why it matters",
            "title": "Why it matters",
            "body": "Verifiability. Authorship. Continuity. Public trust."
          },
          "06": {
            "label": "06 Where to inspect",
            "title": "Where to inspect",
            "body": "/integrity/releases/2026-05-17/ · /integrity/releases/2026-05-09/ · /integrity/releases/2026-02/ · /source/"
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/integrity/releases/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/releases/"
        }
      },
      "edition_feb_meta": "Signed snapshot · Initial release",
      "edition_may09_date": "9 May 2026",
      "edition_may09_desc": "<cite>Final May edition</cite>",
      "edition_may09_meta": "Signed snapshot · Previous release",
      "edition_may17_date": "19 May 2026",
      "edition_may17_desc": "<cite>Editorial cohesion</cite>",
      "edition_may17_meta": "Signed snapshot · Current release",
      "download_zip": "Download ZIP",
      "download_targz": "Download TAR.GZ"
    },
    "security": {
      "page_title": "Security & Threat Model",
      "page_kicker": "Security & Threat Model",
      "page_h1": "<span class=\"hero-line\">Static.</span><span class=\"hero-line\">Self-managed.</span><span class=\"hero-line\">Verification-led.</span>",
      "body_intro": "How this site is hosted, what it protects, what it doesn't - and how anyone can verify it independently.",
      "s1_summary": "1. Architecture",
      "s2_summary": "2. Assets protected",
      "s2_body": "The controls described here protect:",
      "s2_list": "Domain ownership\nDNS integrity\nHosting account integrity\nPublic content integrity\nThe signing key used for release authenticity",
      "s3_summary": "3. Threat model",
      "s3_infra_heading": "Infrastructure compromise",
      "s3_infra_list": "Registrar account takeover\n<abbr title=\"Domain Name System\">DNS</abbr> hijack\nHosting credential compromise",
      "s3_content_heading": "Content tampering",
      "s3_content_list": "Post-deployment file modification\nMalicious JavaScript injection\nSilent alteration of static assets",
      "s3_admin_heading": "Administrative abuse",
      "s3_admin_list": "Credential stuffing\nAutomated vulnerability scanning",
      "s3_noise_heading": "Commodity internet noise",
      "s3_noise_body": "Continuous automated probing for common <abbr title=\"Content Management System\">CMS</abbr> paths, configuration files, or known endpoints. These are treated as persistent background conditions rather than exceptional events.",
      "s4_summary": "4. Controls",
      "s4_registrar_heading": "Registrar &amp; <abbr title=\"Domain Name System\">DNS</abbr>",
      "s4_registrar_list": "<abbr title=\"Multi-Factor Authentication\">MFA</abbr> enabled\nRegistrar lock active\n<abbr title=\"Domain Name System Security Extensions\">DNSSEC</abbr> enabled and validated\n<abbr title=\"Certificate Authority Authorization\">CAA</abbr> records restrict certificate issuance",
      "s4_hosting_heading": "Hosting",
      "s4_hosting_list": "Multi-factor authentication enabled\n<abbr title=\"Secure File Transfer Protocol\">SFTP</abbr>-only deployment\nNo <abbr title=\"Secure Shell\">SSH</abbr> shell exposure\nNo scheduled background execution",
      "s4_content_heading": "Public content",
      "s4_content_list": "Static architecture reduces server-side attack surface\nStrict <abbr title=\"Content Security Policy\">CSP</abbr> starting from <code>default-src 'none'</code>\nNo external resource loading\nNo dynamic script execution",
      "s4_monitoring_heading": "Monitoring",
      "s4_monitoring_list": "Structured log analysis\nPattern detection and anomaly scoring\nFile integrity drift detection against the signed release baseline",
      "s6_summary": "6. Residual risk",
      "s6_protect_summary": "This model protects the public static site. It does not protect against registrar compromise, hosting compromise, client-device compromise or private key compromise.",
      "s6_intro": "This model does not attempt to address:",
      "s6_list": "Physical compromise of hosting infrastructure\nGlobal <abbr title=\"Domain Name System\">DNS</abbr> root compromise\nCertificate authority (<abbr title=\"Certificate Authority\">CA</abbr>) compromise\nState-level adversaries\nZero-day browser exploits on client devices",
      "s6_footer": "The main risks remain domain, <abbr title=\"Domain Name System\">DNS</abbr>, hosting and private key compromise.",
      "s7_summary": "7. Disclosure",
      "s7_body": "Responsible disclosure is welcome. Security contact details and encrypted communication instructions are published at <a href=\"/.well-known/security.txt\" aria-describedby=\"desc-security-contact\"><code>/.well-known/security.txt</code></a>.",
      "s8_summary": "8. Design principles",
      "s8_list": "Simplicity over complexity\nDeterministic behaviour over dynamic systems\nTransparency over obscurity\nVerifiable integrity over trust assumptions",
      "print": {
        "kicker": "Security & Threat Model",
        "title": "Static, self-managed, verification-led",
        "lede": "The public site is static HTML, CSS and vanilla JavaScript, with strict headers, no runtime server logic, no public database and no third-party scripts.",
        "meta": "Edition 2026-05-19 · trentpower.fr/security/",
        "card": {
          "01": {
            "label": "01 Architecture",
            "title": "Architecture",
            "body": "Static HTML, CSS, vanilla JavaScript. Self-managed deployment on Apache (Gandi, Paris). No public database."
          },
          "02": {
            "label": "02 Headers",
            "title": "Security headers",
            "body": "<abbr title=\"Content Security Policy\">CSP</abbr> default-deny. <abbr title=\"HTTP Strict Transport Security\">HSTS</abbr>. <abbr title=\"Cross-Origin Opener Policy\">COOP</abbr> / <abbr title=\"Cross-Origin Embedder Policy\">COEP</abbr> / <abbr title=\"Cross-Origin Resource Policy\">CORP</abbr>. Referrer-Policy no-referrer. Locked-down Permissions-Policy."
          },
          "03": {
            "label": "03 Assets protected",
            "title": "Assets protected",
            "body": "Identity. Published content. Public verification files. Source integrity."
          },
          "04": {
            "label": "04 Threat model",
            "title": "Threat model",
            "body": "Content injection. Hosting credential compromise. Spoofed identity. Stale or tampered files."
          },
          "05": {
            "label": "05 Controls",
            "title": "Controls",
            "body": "No third-party scripts. No public forms. Signed integrity manifest. Restricted file exposure. Service-worker-controlled cache."
          },
          "06": {
            "label": "06 Residual risk",
            "title": "Residual risk",
            "body": "Hosting and registrar risk remain. Static-site exposure is reduced, not eliminated. Responsible disclosure route is published."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/security/"
        },
        "qr": {
          "label": "trentpower.fr/security/"
        },
        "doc_title": "Trent Power - Security Threat Model Sheet"
      },
      "public_verification_summary": "5. Public verification surface",
      "public_verification_intro": "The site exposes public inspection routes so published content can be checked without private infrastructure access.",
      "public_verification_list": "<a href=\"/integrity/\" aria-label=\"Open the integrity archive for signed releases, public key and manifest\"><code>/integrity/</code></a> records signed releases, public key and manifest\n<a href=\"/verify/\" aria-label=\"Open the page verification tool for canonical URLs, source mirrors and fingerprints\"><code>/verify/</code></a> records one page’s canonical <abbr title=\"Uniform Resource Locator\">URL</abbr>, source mirror and fingerprint\n<a href=\"/source/\" aria-label=\"Open readable source mirrors of selected public files\"><code>/source/</code></a> publishes readable mirrors of selected public files\n<a href=\"/integrity/releases/\" aria-label=\"Open frozen signed release snapshots\"><code>/integrity/releases/</code></a> preserves frozen signed snapshots",
      "public_verification_footer": "These routes support inspection and provenance. They do not remove the need to protect <abbr title=\"Domain Name System\">DNS</abbr>, hosting credentials and the private signing key.",
      "s1_routes_note": "Public inspection routes expose the signed manifest, page records, readable source mirrors and archived releases without exposing private infrastructure.",
      "architecture_card": {
        "kicker": "Architecture",
        "browser_label": "Browser",
        "browser_body": "<abbr title=\"HyperText Transfer Protocol Secure\">HTTPS</abbr> · no cookies · no analytics",
        "host_label": "Static host",
        "host_body": "Apache · Gandi · Paris · <abbr title=\"Secure File Transfer Protocol\">SFTP</abbr> deployment",
        "files_label": "Site files",
        "files_body": "<abbr title=\"HyperText Markup Language\">HTML</abbr> · <abbr title=\"Cascading Style Sheets\">CSS</abbr> · vanilla JS · self-hosted fonts",
        "cache_label": "Offline cache",
        "cache_body": "Service worker · local cache after first visit",
        "trust_label": "Trust",
        "trust_body": "Integrity · Verify · Source · Releases",
        "archive_label": "Archive",
        "archive_body": "Frozen signed releases"
      }
    },
    "acknowledgments": {
      "page_title": "Security acknowledgements",
      "body_intro": "This page records responsible security disclosures that have been verified and resolved.",
      "none": "There are no acknowledgements at present. This reflects the absence of reportable disclosures to date, not the absence of review or maintenance.",
      "report": "If you believe you have found a security issue with this site, please report it responsibly. Contact details and disclosure preferences are listed in security.txt.",
      "integrity_link": "Site integrity statement",
      "print": {
        "kicker": "Security acknowledgments",
        "title": "Responsible disclosure record",
        "lede": "Acknowledgements for individuals and researchers who contributed responsibly to the security posture of this site.",
        "meta": "Edition 2026-05-19 · trentpower.fr/security/acknowledgments/",
        "doc_title": "Trent Power - Security Acknowledgments",
        "card": {
          "01": {
            "label": "01 Disclosure model",
            "title": "Disclosure model",
            "body": "Coordinated, time-bounded, with credit on request."
          },
          "02": {
            "label": "02 Reporting policy",
            "title": "Reporting policy",
            "body": "trent@trentpower.fr · PGP-signed reports preferred · public key at /.well-known/pgp-key.asc."
          },
          "03": {
            "label": "03 Coordinated remediation",
            "title": "Coordinated remediation",
            "body": "Acknowledge within 72 hours. Patch, verify, publish notes if material."
          },
          "04": {
            "label": "04 Verification process",
            "title": "Verification process",
            "body": "Reproduce, hash, sign, and record in the next signed release."
          },
          "05": {
            "label": "05 Security contact",
            "title": "Security contact",
            "body": "trent@trentpower.fr · fingerprint A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          },
          "06": {
            "label": "06 Publication status",
            "title": "Publication status",
            "body": "Acknowledgement page is the canonical record; updates accompany each signed edition."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/security/acknowledgments/"
        },
        "qr": {
          "label": "trentpower.fr/security/acknowledgments/"
        }
      }
    },
    "maintenance": {
      "page_title": "Down for maintenance",
      "body": "The signed manifest, source mirrors and frozen release archives remain available throughout maintenance. Verification continues to work.",
      "kicker": "Maintenance",
      "title": "Down for maintenance",
      "lede": "We're doing some work here. Check back shortly, or return to the homepage.",
      "print": {
        "kicker": "Maintenance status",
        "title": "Temporary maintenance mode",
        "lede": "This site is temporarily unavailable while a new signed edition or infrastructure update is being deployed.",
        "meta": "Edition 2026-05-19 · trentpower.fr/maintenance.html",
        "doc_title": "Trent Power - Maintenance",
        "card": {
          "01": {
            "label": "01 Deployment state",
            "title": "Deployment state",
            "body": "A signed release or infrastructure update is in progress."
          },
          "02": {
            "label": "02 Integrity preservation",
            "title": "Integrity preservation",
            "body": "The previous signed edition remains downloadable in /integrity/releases/."
          },
          "03": {
            "label": "03 Public availability",
            "title": "Public availability",
            "body": "Service returns automatically when the new edition is signed and verified."
          },
          "04": {
            "label": "04 Signed releases",
            "title": "Signed releases",
            "body": "Archived editions stay reachable independently of this maintenance window."
          },
          "05": {
            "label": "05 Maintenance contact",
            "title": "Maintenance contact",
            "body": "trent@trentpower.fr - for inquiries during extended unavailability."
          },
          "06": {
            "label": "06 Expected continuity",
            "title": "Expected continuity",
            "body": "Canonical URLs are preserved across editions; bookmarks remain valid."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/maintenance.html"
        },
        "qr": {
          "label": "trentpower.fr/maintenance.html"
        }
      }
    },
    "error_404": {
      "page_title": "Page not found",
      "body": "The page you’re looking for doesn’t exist or has moved."
    },
    "error_500": {
      "page_title": "Something went wrong",
      "body": "The server encountered an error. Try again shortly, or return to the homepage."
    },
    "home": {
      "trust_privacy": "privacy-first",
      "trust_signed": "signed releases",
      "trust_static": "static",
      "trust_no_tracking": "no tracking"
    },
    "print": {
      "kicker": "trentpower.fr",
      "name": "Trent Power",
      "role": "Client strategy, growth systems and cultural adoption",
      "contact": {
        "linkedin": "LinkedIn · Trent Power"
      },
      "title": "Client strategy, growth systems and cultural adoption at global scale",
      "body": "I lead client strategy at Group level, focusing on the systems, governance and ways of working that turn client relationships into long-term value. My work sits at the intersection of strategy, technology and human relationships, with a focus on impact that scales and endures.",
      "focus": {
        "01": {
          "label": "01 Focus",
          "title": "Client growth takes discipline",
          "body": "Lasting growth follows when strong systems are in place."
        },
        "02": {
          "label": "02 Adoption",
          "title": "Adoption matters more than tools",
          "body": "Technology creates value when teams trust it, choose it and use it."
        },
        "03": {
          "label": "03 Human relationships",
          "title": "AI should amplify human relationships",
          "body": "Authenticity remains a human advantage; automation must strengthen context, memory and care."
        },
        "04": {
          "label": "04 Governance",
          "title": "Governance creates momentum",
          "body": "Clear ownership and disciplined priorities create alignment and scale."
        }
      },
      "credentials": {
        "label": "Credentials",
        "sydney_title": "University of Sydney",
        "sydney_detail": "Master’s degree, 2009.",
        "exec_title": "Selective executive education",
        "exec_detail": "Ongoing senior-level learning across artificial intelligence, consumer behaviour, organisational transformation, and leadership coaching."
      },
      "trajectory": {
        "label": "Trajectory",
        "current": {
          "label": "Current",
          "body": "Group Director, Client Development & Client Relations · LVMH"
        },
        "previous": {
          "label": "Previous",
          "body": "Senior leadership across Clienteling, CRM and Client Development"
        },
        "background": {
          "label": "Background",
          "body": "Early digital and entrepreneurial work building online platforms and communities"
        }
      },
      "project": {
        "label": "Proof point",
        "title": "What’s On in Paris",
        "body": "A private cultural intelligence system for Paris, combining location, effort, editorial judgement and personal taste into a calmer way to decide what is worth leaving home for.",
        "note": "A personal experiment in taste systems, local relevance and human-scale recommendation."
      },
      "footer": {
        "proof": "Private · Static · Signed · No tracking",
        "edition": "Edition <time datetime=\"2026-05-19\">2026-05-19</time> · https://trentpower.fr/",
        "citation": "Trent Power. Personal Site. Paris, France.",
        "evidence": "Public record · HTML · Edition 19 May 2026"
      },
      "place": "Personal Site · Paris, France",
      "doc_title": "Trent Power - Client Strategy Executive Profile",
      "arch": {
        "caption": "Static, privacy-first, signed and inspectable",
        "browser": "Browser",
        "host": "Static Host",
        "files": "Site Files",
        "cache": "Offline Cache",
        "trust": "Trust",
        "archive": "Archive"
      }
    },
    "error": {
      "403": {
        "print": {
          "kicker": "403",
          "title": "Access not available",
          "lede": "This path is not publicly accessible. The public site exposes only intentional files and pages.",
          "meta": "Edition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Access Boundary Sheet",
          "card": {
            "01": {
              "label": "01 Access boundary",
              "title": "Access boundary",
              "body": "Some paths are intentionally unavailable. Private, backup and operational files are blocked."
            },
            "02": {
              "label": "02 Public routes",
              "title": "Public routes",
              "body": "Homepage. Privacy & Trust. Integrity. Security. Source."
            },
            "03": {
              "label": "03 Why this matters",
              "title": "Why this matters",
              "body": "Reduces accidental exposure. Keeps public files intentional. Supports privacy and trust posture."
            },
            "04": {
              "label": "04 Verification",
              "title": "Verification",
              "body": "Inspect /integrity.json. View selected source files. Check /.well-known/security.txt."
            },
            "05": {
              "label": "05 Static posture",
              "title": "Static posture",
              "body": "No public database. No visitor accounts. No forms. No tracking."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · responsible disclosure via /security/"
            }
          },
          "footer": {
            "proof": "Private · Static · Signed · No tracking",
            "edition": "Edition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      },
      "404": {
        "print": {
          "kicker": "404",
          "title": "Page not found",
          "lede": "The address may have changed, or the page may no longer be part of the public site.",
          "meta": "Edition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Page Not Found Sheet",
          "card": {
            "01": {
              "label": "01 What happened",
              "title": "What happened",
              "body": "The requested route does not resolve to a public page. The site remains available through the homepage."
            },
            "02": {
              "label": "02 Where to go",
              "title": "Where to go",
              "body": "Homepage. Privacy & Trust. Integrity. Security."
            },
            "03": {
              "label": "03 Verification",
              "title": "Verification",
              "body": "Public manifest. Source view. Signed releases."
            },
            "04": {
              "label": "04 If this was expected",
              "title": "If expected",
              "body": "Check the URL. Remove outdated path fragments. Try the canonical homepage."
            },
            "05": {
              "label": "05 Public posture",
              "title": "Public posture",
              "body": "Static site. No tracking. No forms. No third-party scripts."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · LinkedIn · Trent Power"
            }
          },
          "footer": {
            "proof": "Private · Static · Signed · No tracking",
            "edition": "Edition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      },
      "500": {
        "print": {
          "kicker": "500",
          "title": "Temporary server error",
          "lede": "Something unexpected happened while serving this page. The public site is static, so this is likely a hosting or routing issue rather than an application failure.",
          "meta": "Edition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Temporary Server Error Sheet",
          "card": {
            "01": {
              "label": "01 What happened",
              "title": "What happened",
              "body": "The server could not complete the request. Try again shortly."
            },
            "02": {
              "label": "02 Stable routes",
              "title": "Stable routes",
              "body": "Homepage. Integrity. Security. Source."
            },
            "03": {
              "label": "03 Public verification",
              "title": "Public verification",
              "body": "/integrity.json · /integrity.json.sig · /.well-known/pgp-key.asc"
            },
            "04": {
              "label": "04 Architecture",
              "title": "Architecture",
              "body": "Static HTML, CSS and JavaScript. No runtime public application. No public database."
            },
            "05": {
              "label": "05 What to do",
              "title": "What to do",
              "body": "Refresh later. Return to homepage. Contact if persistent."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · LinkedIn · Trent Power"
            }
          },
          "footer": {
            "proof": "Private · Static · Signed · No tracking",
            "edition": "Edition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      }
    },
    "source": {
      "print": {
        "kicker": "Source",
        "title": "Public source view",
        "lede": "Selected public files are mirrored as plain text so the site can be inspected from any reader, including mobile.",
        "meta": "Edition 2026-05-19 · trentpower.fr/source/",
        "doc_title": "Trent Power - Public Source Sheet",
        "card": {
          "01": {
            "label": "01 What is included",
            "title": "What is included",
            "body": "HTML mirrors. CSS. JavaScript. Manifest files. .htaccess mirror."
          },
          "02": {
            "label": "02 What is excluded",
            "title": "What is excluded",
            "body": "Credentials. Private notes. Invoices. Backups. Generator internals unless explicitly public."
          },
          "03": {
            "label": "03 How it is organised",
            "title": "How it is organised",
            "body": "Sorted by file type, then name. Plain text mirrors. SHA-256 hashes. File sizes."
          },
          "04": {
            "label": "04 Verification",
            "title": "Verification",
            "body": "source-manifest.json · /integrity.json · detached signature · public key."
          },
          "05": {
            "label": "05 Files of note",
            "title": "Files of note",
            "body": "styles.css.txt · app.js.txt · print.css.txt · htaccess.txt · source-manifest.json"
          },
          "06": {
            "label": "06 Principle",
            "title": "Principle",
            "body": "Human readers first. Machine-readable files preserve identity, authorship and context."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/source/"
        },
        "qr": {
          "label": "trentpower.fr/source/"
        }
      },
      "page_kicker": "Source",
      "heading": "<span class=\"hero-line\">Every public byte,</span><span class=\"hero-line\">in plain text.</span>",
      "intro_lede": "Selected public files, published in readable form. For inspection, preservation, and machine readability.",
      "curation_note": "This index shows the principal public mirrors. Additional mirrored files may remain available by direct URL where they support verification, recovery, or release integrity.",
      "download_lede": "Download the public source archive for the current edition",
      "download_targz": "TAR.GZ",
      "download_zip": "ZIP",
      "download_checksums": "Checksums",
      "group": {
        "published-pages": "Published pages",
        "trust-records": "Trust records",
        "scripts": "Scripts",
        "metadata": "Metadata"
      },
      "col": {
        "validated": "Verified"
      },
      "group_gloss": {
        "published-pages": "Readable mirrors of the principal public pages, served as plain text so the bytes can be inspected without execution.",
        "trust-records": "Public commitments and identity surfaces. Who publishes the site, what is promised, where disclosure runs.",
        "scripts": "Authored stylesheets and JavaScript the page ships to the browser. Mirrored from source, not the minified deployed bytes.",
        "metadata": "Server configuration and machine-readable records describing the site to crawlers, indexers and language models."
      },
      "editions": {
        "eyebrow": "Editions",
        "title": "Edition lineage",
        "note": {
          "current": "Current signed release",
          "earlier": "Earlier signed release"
        }
      },
      "files": {
        "403_html_txt": {
          "description": "Forbidden page."
        },
        "404_html_txt": {
          "description": "Not found page."
        },
        "500_html_txt": {
          "description": "Server error page."
        },
        "ai_usage_txt_txt": {
          "description": "Statement of AI usage and policy for the site."
        },
        "app_enhance_js_txt": {
          "description": "Progressive enhancement layer. Non-essential interactions, gracefully optional."
        },
        "app_js_txt": {
          "description": "Authored runtime script. Navigation, language switch, citation drawer wiring."
        },
        "assertion_txt_txt": {
          "description": "Authorship assertion. Declaration of authorship and integrity intent."
        },
        "attestations_json_txt": {
          "description": "Public attestations. Verifiable claims about the site."
        },
        "changelog_txt_txt": {
          "description": "Edition change log. Notable revisions to the public site."
        },
        "cite_js_txt": {
          "description": "Cite-and-verify drawer. Surfaces canonical URL, page fingerprint and signature."
        },
        "fonts_full_css_txt": {
          "description": "Webfont declarations. Subsets, formats and fallbacks."
        },
        "htaccess_txt": {
          "description": "Apache configuration. Public-safety scanned before mirroring."
        },
        "humans_txt_txt": {
          "description": "Credits and notes for the people behind the site."
        },
        "i18n_core_js_txt": {
          "description": "Editorial translation source. All five languages in one authored JSON."
        },
        "i18n_de_js_txt": {
          "description": "German translations."
        },
        "i18n_es_js_txt": {
          "description": "Spanish translations."
        },
        "i18n_it_js_txt": {
          "description": "Italian translations. Deployed compact bytes."
        },
        "index_html_txt": {
          "description": "Home page. The editorial entry point."
        },
        "integrity_index_html_txt": {
          "description": "Integrity overview. The signed manifest, key and release authority."
        },
        "integrity_releases_2026_05_09_index_html_txt": {
          "description": "Frozen page record for the 2026-05-09 edition."
        },
        "integrity_releases_archive_css_txt": {
          "description": "Stylesheet used inside frozen release archives. Held alongside its release records."
        },
        "integrity_releases_index_html_txt": {
          "description": "Release index. The list of signed editions."
        },
        "llms_txt_txt": {
          "description": "Machine-readable guidance for language models and AI systems."
        },
        "maintenance_html_txt": {
          "description": "Maintenance notice. Used during planned downtime."
        },
        "manifest_webmanifest_txt": {
          "description": "Web app manifest. Installable surface metadata."
        },
        "pgp_txt_txt": {
          "description": "PGP statement. The signing key fingerprint and its use."
        },
        "print_css_txt": {
          "description": "Print stylesheet. Layout rules for paper output."
        },
        "privacy_index_html_txt": {
          "description": "Privacy statement. What is collected, retained and shared."
        },
        "readme_txt": {
          "description": "Orientation note for the source tree. Same text shipped at the root of every release archive."
        },
        "robots_txt_txt": {
          "description": "Crawler access policy and public indexing intent."
        },
        "security_acknowledgments_index_html_txt": {
          "description": "Acknowledgments for public security disclosures."
        },
        "security_index_html_txt": {
          "description": "Security posture. Architecture, headers and disclosure path."
        },
        "site_metadata_json_txt": {
          "description": "Site-level metadata. Edition, build, asset version."
        },
        "sitemap_xml_sha256_txt": {
          "description": "Source mirror of the SHA-256 checksum for sitemap.xml."
        },
        "sitemap_xml_txt": {
          "description": "Public sitemap. URL inventory for crawlers."
        },
        "source_manifest_json_txt": {
          "description": "Manifest of the /source/ tree itself. Every mirrored file with its hash."
        },
        "statement_txt_txt": {
          "description": "Editorial statement. The site's authoring principles."
        },
        "styles_css_txt": {
          "description": "Authored stylesheet. Mirrored from source, not the minified deployed bytes."
        },
        "sw_cache_manifest_json_txt": {
          "description": "Service worker cache manifest. Files pinned for offline use."
        },
        "sw_js_txt": {
          "description": "Service worker. Offline cache for the public site."
        },
        "sw_reset_index_html_txt": {
          "description": "Service worker reset. Clears the offline cache."
        },
        "verify_index_html_txt": {
          "description": "Verification interface. Page-level fingerprint checks."
        },
        "verify_verify_js_txt": {
          "description": "Verification logic. Renders a page record from the verification map."
        },
        "well_known_attribution_txt_txt": {
          "description": "Author attribution. Names the responsible party for the public site."
        },
        "well_known_build_json_txt": {
          "description": "Build record. Reproducibility data for the current edition."
        },
        "well_known_person_json_txt": {
          "description": "Machine-readable identity in JSON-LD. The reference used by discovery, federation and verification.",
          "role": "Canonical identity record"
        },
        "well_known_pgp_key_asc_txt": {
          "description": "ASCII-armoured public signing key. The publisher's signing identity."
        },
        "well_known_publication_json_txt": {
          "description": "Publication record. Describes the site as a self-managed editorial work."
        },
        "well_known_security_txt_txt": {
          "description": "Coordinated disclosure policy. Standard /.well-known/security.txt contact and scope.",
          "role": "Public trust surface"
        },
        "well_known_webfinger_txt": {
          "description": "WebFinger discovery surface. Resolves identity across federated protocols.",
          "role": "Identity discovery"
        }
      }
    },
    "verify": {
      "kicker": "Verify",
      "page_kicker": "Verify page",
      "title": "Verify this page",
      "lede": "A public route for checking source, hash, signature and canonical identity.",
      "noscript_fallback": "JavaScript is required to select and display a page record here. Source mirrors, the signed manifest and release archives remain available through <a href=\"/source/\">Source</a> and <a href=\"/integrity/\">Integrity</a>.",
      "meta": "Edition 2026-05-19 · trentpower.fr/verify/",
      "doc_title": "Trent Power - Verification Sheet",
      "action": {
        "copy_canonical": "Copy URL",
        "copy_hash": "Copy hash",
        "copy_command": "Copy verification command",
        "open_source": "Open source mirror",
        "open_manifest": "Open manifest entry",
        "open_signature": "Open signature",
        "open_key": "Open public key",
        "copied": "Copied",
        "copy_manifest_command": "Copy manifest command",
        "copy_source_command": "Copy source command",
        "copy_fingerprint": "Copy fingerprint",
        "view_source_mirror": "View source mirror",
        "view_source_code": "View source code",
        "open_source_mirror": "Open mirror"
      },
      "command": {
        "manifest_title": "Verify the signed manifest",
        "source_title": "Verify the source mirror",
        "note": "The signed manifest verifies the published file set. The second command hashes the source mirror so it can be compared against the expected SHA-256 above."
      },
      "unknown": {
        "title": "Route not in the verification map",
        "body": "This route is not in the public verification map. You can still inspect the public manifest, source view and signed releases.",
        "action": {
          "source": "Source",
          "manifest": "Integrity manifest",
          "releases": "Release archive"
        }
      },
      "status": {
        "found": "Found in signed manifest",
        "missing": "Not found in current public manifest"
      },
      "title_default": "<span class=\"hero-line\">Check page against code, size &amp; signature</span>",
      "title_prefix": "Verify",
      "lede_v2": "Check a published page against its canonical location, source mirror, page fingerprint and signed release archive.",
      "local": {
        "heading": "Verify locally",
        "manifest_label": "Verify the signed manifest",
        "manifest_desc": "Checks that /integrity.json was signed by the published public key.",
        "mirror_label": "Verify this page mirror",
        "mirror_desc": "Calculates the source mirror fingerprint so it can be compared with the expected value above.",
        "intro": "Run two local checks: verify the signed manifest, then compare this page's source mirror against the expected fingerprint.",
        "subheading_manifest": "Verify signed manifest",
        "subheading_mirror": "Verify source mirror",
        "closing": "The signed manifest verifies the published file set. The source command hashes this page's mirror so it can be compared against the fingerprint above."
      },
      "thispage": {
        "heading": "This page",
        "row": {
          "title": "Page title",
          "canonical": "Canonical URL",
          "route": "Route",
          "source": "Source mirror",
          "file_type": "File type",
          "file_size": "File size",
          "manifest_status": "Manifest status",
          "validated": "Last verified",
          "sha256": "Page fingerprint",
          "release": "Release archive",
          "file": "File",
          "citation": "Citation",
          "route_prefix": "Route"
        },
        "status": {
          "found_manifest": "Found in signed manifest",
          "source_available": "Source available",
          "release_archived": "Release archived",
          "short": {
            "signed": "Signed",
            "source": "Mirrored",
            "archived": "Archive"
          }
        },
        "kicker": "Page record",
        "group": {
          "citation": "Citation",
          "location": "Canonical location",
          "evidence": "Source mirror",
          "fingerprint": "Page fingerprint",
          "archive": "Release archive"
        },
        "validated_prefix": "Verified"
      },
      "selected": {
        "manifest": "Integrity manifest",
        "signature": "Detached signature",
        "public_key": "Public key"
      },
      "general": {
        "source": "Source viewer",
        "releases": "Release archive"
      },
      "chooser": {
        "heading": "Related records",
        "label": {
          "home": "Homepage",
          "privacy": "Privacy",
          "security": "Security",
          "integrity": "Integrity",
          "verify": "Verify",
          "source": "Source",
          "releases": "Releases"
        }
      }
    },
    "copy": {
      "command": "Copy command",
      "copied": "Copied",
      "failed": "Copy failed"
    },
    "trust_routes": {
      "heading": "Trust routes",
      "privacy_label": "Privacy",
      "privacy_desc": "What this site does not collect",
      "security_label": "Security",
      "security_desc": "How the site is protected",
      "integrity_label": "Integrity",
      "integrity_desc": "How releases are signed",
      "verify_label": "Verify",
      "verify_desc": "How a page can be checked",
      "source_label": "Source",
      "source_desc": "Readable mirrors of public files",
      "releases_label": "Releases",
      "releases_desc": "Frozen signed snapshots"
    },
    "sw_reset": {
      "page_title": "Service Worker Reset",
      "lede": "Clears the local offline cache for this device only. The live publication and server are unaffected.",
      "secondary": "If a recent edition is not appearing correctly, this utility refreshes the local publication cache.",
      "local_marker": "LOCAL DEVICE ONLY",
      "status_label": "Local cache status",
      "status_initial": "Reading local state…",
      "button": "Reset local offline cache",
      "button_done": "Reset complete",
      "edition_label": "Cached edition",
      "edition_none": "No cached edition detected",
      "clears_heading": "Clears",
      "clear_sw": "Service Worker registrations",
      "clear_caches": "Offline cache entries",
      "clear_pref": "Saved language preference",
      "preserves_heading": "Does not clear",
      "preserve_history": "Browser history",
      "preserve_downloads": "Downloads",
      "preserve_others": "Other websites",
      "preserve_server": "Server content",
      "link_home": "Home",
      "link_reload": "Reload current edition",
      "footnote": "Offline state is stored locally through the browser Cache Storage and Service Worker APIs.",
      "detected_label": "Detected",
      "scope_heading": "Scope",
      "api_label": "APIs",
      "print": {
        "kicker": "Offline recovery",
        "title": "Service worker reset",
        "lede": "Recovery utility for clearing cached offline state and refreshing the current signed public release.",
        "meta": "Edition 2026-05-19 · trentpower.fr/sw-reset/",
        "doc_title": "Trent Power - Service Worker Reset",
        "card": {
          "01": {
            "label": "01 Cache removal",
            "title": "Cache removal",
            "body": "Unregisters the service worker and deletes every named cache for this origin."
          },
          "02": {
            "label": "02 Offline recovery",
            "title": "Offline recovery",
            "body": "Used when a stale offline copy is serving an outdated signed edition."
          },
          "03": {
            "label": "03 Signed release refresh",
            "title": "Signed release refresh",
            "body": "Next page load fetches fresh HTML, CSS, JS, fonts, and integrity files."
          },
          "04": {
            "label": "04 Browser compatibility",
            "title": "Browser compatibility",
            "body": "Works in any browser that supports Service Workers and the Cache API."
          },
          "05": {
            "label": "05 Verification continuity",
            "title": "Verification continuity",
            "body": "Integrity manifest and signature remain unchanged - only cached copies are evicted."
          },
          "06": {
            "label": "06 Local state reset",
            "title": "Local state reset",
            "body": "Clears the cached language preference. Theme preference is preserved."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/sw-reset/"
        },
        "qr": {
          "label": "trentpower.fr/sw-reset/"
        }
      },
      "card_state": "Offline cache",
      "card_state_cleared": "Offline cache cleared"
    },
    "verify_intro": {
      "panel_label": "Current edition",
      "edition": "Edition",
      "signing_key": "Signing key",
      "manifest": "Signed manifest",
      "signature": "Detached signature",
      "public_key": "Public key",
      "archive": "Edition archive"
    },
    "verify_locally": {
      "page_kicker": "Verify Locally",
      "page_title": "<span class=\"hero-line\">Get to</span><span class=\"hero-line\">the terminal!</span>",
      "body_intro": "Detached verification notes for the signed integrity manifest. Run the check in a temporary keyring so the public signing key does not enter your default keychain.",
      "body_close": "The command imports the public key into a throw-away keyring, verifies the signed manifest, and removes the working files. No state is retained on the machine afterwards.",
      "print": {
        "kicker": "Integrity verification",
        "title": "Verify locally",
        "lede": "Detached verification notes for independently checking the signed integrity manifest using the published public key.",
        "meta": "Edition 2026-05-19 · trentpower.fr/integrity/verify-locally/",
        "doc_title": "Trent Power - Verify Locally",
        "card": {
          "01": {
            "label": "01 Temporary keyring",
            "title": "Temporary keyring",
            "body": "Use a temp GNUPGHOME so the import does not touch your main keyring."
          },
          "02": {
            "label": "02 Import public key",
            "title": "Import public key",
            "body": "curl /.well-known/pgp-key.asc · gpg --import pgp-key.asc."
          },
          "03": {
            "label": "03 Verify signature",
            "title": "Verify signature",
            "body": "gpg --verify integrity.json.sig integrity.json - expect Good signature."
          },
          "04": {
            "label": "04 Check manifest",
            "title": "Check manifest",
            "body": "/integrity.json lists every public file with its SHA-256."
          },
          "05": {
            "label": "05 Compare checksums",
            "title": "Compare checksums",
            "body": "Re-hash any file and compare against the manifest entry."
          },
          "06": {
            "label": "06 Reproducibility notes",
            "title": "Reproducibility notes",
            "body": "Each signed edition is frozen in /integrity/releases/. No mutable assets."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-19 · trentpower.fr/integrity/verify-locally/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/verify-locally/"
        }
      }
    },
    "source_reader": {
      "title": "Source reader",
      "loading": "Loading source…",
      "action": {
        "canonical": "Canonical",
        "verify": "Verify",
        "plain_text": "Raw",
        "copy_code": "Copy code",
        "wrap_lines": "Wrap lines",
        "unwrap_lines": "Unwrap lines",
        "back_to_top": "Top",
        "copied": "Copied",
        "view_source": "Source",
        "view_annotated": "Annotated",
        "view_rendered_page": "View rendered page",
        "reading_mode": "Reading mode",
        "top": "Top",
        "copy": "Copy",
        "copy_link": "Copy link",
        "clear": "Clear",
        "count_line_one": "1 line",
        "count_lines_many": "{n} lines",
        "line_selected": "Line {n} selected",
        "range_selected": "Lines {start} to {end} selected",
        "selection_cleared": "Selection cleared",
        "lines_copied": "{n} lines copied",
        "link_copied": "Link copied",
        "copy_failed": "Copy unavailable",
        "link_copied_normalised": "Link copied — normalised to lines {start} to {end}"
      },
      "meta": {
        "validated": "Verified",
        "part_of": "Related systems:",
        "document_map": "Document map",
        "end_of_source": "End of source mirror",
        "intent": "This reader presents public source mirrors with structural annotations and signed publication references."
      },
      "integrity": {
        "canonical": "Canonical file",
        "edition": "Edition",
        "sha256": "SHA-256",
        "signed_release": "Signed release"
      },
      "map_label": {
        "head": "Head",
        "identity": "Identity",
        "discovery": "Discovery",
        "social_preview": "Social preview",
        "assets": "Assets",
        "structured_data": "Structured data",
        "header": "Header",
        "main": "Main",
        "footer": "Footer",
        "tokens": "Tokens",
        "fonts": "Fonts",
        "base": "Base",
        "layout": "Layout",
        "components": "Components",
        "responsive": "Responsive",
        "print": "Print",
        "state": "State",
        "i18n": "i18n",
        "events": "Events",
        "modals": "Modals",
        "copy": "Copy",
        "verification": "Verification",
        "init": "Init",
        "policy": "Policy",
        "records": "Records"
      },
      "mode": {
        "label": "Reading mode",
        "source": "Source",
        "annotated": "Annotated",
        "raw": "Raw"
      },
      "end": {
        "title": "End of source mirror",
        "edition": "Edition",
        "sha256": "SHA-256",
        "signed_release": "Signed release"
      },
      "kind": {
        "html": "HyperText Markup Language",
        "css": "Cascading Style Sheets",
        "js": "JavaScript",
        "json": "JavaScript Object Notation",
        "xml": "Extensible Markup Language",
        "text": "Plain text",
        "apache": "Apache configuration",
        "sig": "Detached PGP signature",
        "asc": "ASCII-armoured PGP key"
      },
      "gloss": {
        "foundations": "character encoding, viewport, colour scheme.",
        "head": "document head — metadata, no rendered content.",
        "identity": "authorship, application name, attribution links.",
        "document": "page title, description, canonical url.",
        "discovery": "indexing and referrer policy.",
        "social": "open graph and twitter card metadata.",
        "assets": "stylesheets, scripts, icons, manifest.",
        "icons": "platform icons and home-screen artwork.",
        "structured": "json-ld schema, machine-readable identity.",
        "header": "site header — wordmark and primary nav.",
        "footer": "colophon, language switch, footer actions.",
        "script": "site application logic.",
        "tokens": "design tokens — colours, typography, spacing.",
        "fonts": "font face declarations and font assets.",
        "base": "reset and base element typography.",
        "layout": "page-level layout grammar.",
        "components": "reusable component styles.",
        "responsive": "viewport-aware overrides.",
        "print": "print stylesheet rules.",
        "state": "application state and runtime variables.",
        "i18n": "translation lookup and language switching.",
        "events": "event listeners and interaction wiring.",
        "modals": "overlay surfaces, dialogs, focus traps.",
        "copy": "clipboard interactions.",
        "verification": "signed-manifest and cryptographic references.",
        "records": "editorial record entries.",
        "init": "boot sequence — runs once on load.",
        "policy": "declared site policies."
      }
    },
    "release_archive": {
      "print": {
        "kicker": "Signed release archive",
        "title": "Edition 2026-05-09",
        "lede": "Public release archive for the May 2026 signed edition, including manifests, checksums, detached signatures, and reproducible source records.",
        "meta": "Edition 2026-05-09 · trentpower.fr/integrity/releases/2026-05-09/",
        "doc_title": "Trent Power - Release Archive 2026-05-09",
        "card": {
          "01": {
            "label": "01 Manifest",
            "title": "Manifest",
            "body": "/integrity.json - SHA-256 hashes of every intentional public file at edition time."
          },
          "02": {
            "label": "02 Detached signature",
            "title": "Detached signature",
            "body": "/integrity.json.sig - PGP detached signature over the manifest."
          },
          "03": {
            "label": "03 Archive checksums",
            "title": "Archive checksums",
            "body": "/integrity/releases/2026-05-09/SHA256SUMS - sums for ZIP and TAR.GZ."
          },
          "04": {
            "label": "04 Source archive",
            "title": "Source archive",
            "body": "trentpower-fr-2026-05-09.zip · trentpower-fr-2026-05-09.tar.gz - deterministic."
          },
          "05": {
            "label": "05 Verification status",
            "title": "Verification status",
            "body": "gpg --verify integrity.json.sig integrity.json against the public key."
          },
          "06": {
            "label": "06 Release fingerprint",
            "title": "Release fingerprint",
            "body": "Signed by A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          }
        },
        "footer": {
          "proof": "Private · Static · Signed · No tracking",
          "edition": "Edition 2026-05-09 · trentpower.fr/integrity/releases/2026-05-09/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/releases/2026-05-09/"
        }
      }
    },
    "linkdesc": {
      "home": "Return to the homepage",
      "privacy": "Read how this site avoids analytics, cookies, profiling, tracking, and third-party assets",
      "cite": "Open citation and verification details for this page",
      "integrity": "Open the public integrity record, including hashes, signatures, and release verification",
      "linkedin": "Open Trent Power’s LinkedIn profile in a new tab without sending referrer data",
      "email": "Contact Trent Power by email",
      "source": "View the public source mirror of this site, with readable annotations and line references",
      "verify": "Check the current page against the published integrity data",
      "now": "Read what Trent Power is currently focused on",
      "theme_light": "Switch to the light appearance",
      "theme_auto": "Match the system appearance setting",
      "theme_dark": "Switch to the dark appearance",
      "lang_en": "Read this site in English",
      "lang_fr": "Lire ce site en français",
      "verify_locally": "Read the instructions to verify the publication locally with command-line tools",
      "manifest": "Download the signed integrity manifest (JSON listing every public file and its SHA-256)",
      "signature": "Download the detached PGP signature for the integrity manifest",
      "checksums": "Download the SHA-256 checksums for the signed release archives",
      "public_key": "Download the public PGP key used to sign releases",
      "zip": "Download the source archive as a ZIP file",
      "targz": "Download the source archive as a TAR.GZ file",
      "security_threat_model": "Read the security architecture and threat model for this site",
      "security_contact": "Read the security.txt disclosure policy for this site"
    }
  },
  "fr": {
    "meta": {
      "home": {
        "title": "Stratégie Client & Systèmes de Croissance · Trent Power",
        "description": "Stratégie client, systèmes de croissance et adoption culturelle à l’échelle mondiale",
        "og_title": "Stratégie Client & Systèmes de Croissance · Trent Power",
        "og_description": "Stratégie client, systèmes de croissance et adoption culturelle à l’échelle mondiale"
      },
      "privacy": {
        "title": "Confidentialité & confiance · Trent Power",
        "description": "Un site simple et respectueux de la vie privée, sans suivi, analytique, cookies, profilage ni requêtes tierces intégrées pendant la navigation"
      },
      "integrity": {
        "title": "Intégrité · Trent Power",
        "description": "Éditions publiques signées, manifeste d’intégrité, signature détachée et clé publique"
      },
      "releases": {
        "title": "Éditions · Trent Power",
        "description": "Instantanés signés et figés du site public"
      },
      "security": {
        "title": "Sécurité & modèle de menace · Trent Power",
        "description": "Architecture de sécurité, contrôles opérationnels, surfaces publiques de vérification et risques résiduels"
      },
      "acknowledgments": {
        "title": "Remerciements de sécurité · Trent Power",
        "description": "Divulgations de sécurité responsables vérifiées et résolues pour trentpower.fr."
      },
      "maintenance": {
        "title": "En maintenance · Trent Power",
        "description": "En maintenance."
      },
      "404": {
        "title": "Page introuvable · Trent Power",
        "description": "Page introuvable."
      },
      "500": {
        "title": "Une erreur est survenue · Trent Power",
        "description": "Une erreur s’est produite."
      },
      "verify": {
        "title": "Vérifier cette page · Trent Power",
        "description": "Document public présentant l’URL canonique, le miroir source, l’empreinte et l’archive d’édition signée"
      },
      "source": {
        "title": "Miroirs source · Trent Power",
        "description": "Miroirs publics lisibles d’une sélection de fichiers du site"
      },
      "403": {
        "title": "Accès refusé · Trent Power",
        "description": "Accès non autorisé."
      },
      "verify_locally": {
        "title": "Vérifier localement · Trent Power",
        "description": "Notes de vérification détachées : contrôle du manifeste signé depuis un trousseau temporaire"
      }
    },
    "hero": {
      "statement": "Stratégie client,<br><mark>systèmes de croissance,</mark><br>et adoption culturelle<br>à l’échelle mondiale.",
      "body": "Je pilote la stratégie client au niveau du Groupe, en me concentrant sur les systèmes, la gouvernance et les façons de travailler qui transforment les relations clients en valeur à long terme. Mon travail se situe à l’intersection de la stratégie, de la technologie et des relations humaines, avec un impact qui se déploie à grande échelle et dans la durée."
    },
    "approach": {
      "label": "Approche",
      "growth_title": "La croissance client exige une discipline",
      "growth_body": "Une croissance durable repose sur des systèmes élégants.",
      "clienteling_title": "Le clienteling transforme la transaction en sens",
      "clienteling_detail": "Le <dfn id=\"clienteling-definition\" itemprop=\"name\">clienteling</dfn> <span itemprop=\"description\">est une discipline. C’est la pratique de transformer ce qu’un Conseiller Client sait en quelque chose qu’un Client ressent. Dès que les interactions deviennent mécaniques, ce n’est plus du clienteling.</span>",
      "adoption_title": "L’adoption compte plus que les outils",
      "adoption_body": "Une stratégie ou une technologie ne crée de la valeur que lorsque les équipes lui font confiance et choisissent de l’utiliser. La confiance se mérite, l’utilité se démontre. Les Conseillers Clients sont des Clients de première ligne et des collaborateurs essentiels.",
      "ai_title": "L’IA doit amplifier les relations humaines",
      "ai_body": "L’authenticité est un avantage humain, elle ne peut pas être automatisée. La confiance, l’empathie et le jugement se construisent dans l’instant, à travers le ton et la présence. J’utilise l’IA pour réduire les frictions, afin que chacun puisse être plus pertinent, plus cohérent et plus humain, à grande échelle.",
      "governance_title": "La gouvernance crée de l’élan",
      "governance_body": "Des responsabilités claires, une cadence régulière et des priorités créent l’alignement, accélèrent les décisions et permettent le passage à l’échelle.",
      "taste_title": "Le goût est un avantage stratégique",
      "taste_body": "Le discernement et la conscience culturelle façonnent les interactions en quelque chose de précieux et mémorable."
    },
    "credentials": {
      "label": "Parcours académique",
      "sydney_title": "University of Sydney",
      "sydney_detail": "Master, 2009.",
      "exec_title": "Formation exécutive sélective",
      "exec_detail": "Apprentissage senior en continu — intelligence artificielle, comportement consommateur, transformation organisationnelle et coaching en leadership."
    },
    "trajectory": {
      "label": "Parcours",
      "current_label": "Actuel",
      "current_title": "Directeur Groupe, Développement Client & Relations Clients",
      "current_org": "<abbr title=\"Louis Vuitton Moët Hennessy\">LVMH</abbr>",
      "current_detail": "Stratégie client à l’échelle du Groupe, à travers Maisons et marchés",
      "current_span": "2023 — aujourd’hui",
      "previous_label": "Précédent",
      "previous_title": "Responsable Groupe Clienteling",
      "previous_org": "<abbr title=\"Louis Vuitton Moët Hennessy\">LVMH</abbr>",
      "previous_span": "2017 — 2023",
      "maisons_label": "Maisons",
      "maisons_title": "Direction senior en <a href=\"/#clienteling-definition\" aria-label=\"Lire la définition de Clienteling utilisée sur ce site\">Clienteling</a>, <abbr title=\"Customer Relationship Management\">CRM</abbr> & Retail",
      "maisons_org": "BVLGARI",
      "maisons_span": "2004 — 2017",
      "background_label": "Parcours initial",
      "background_title": "Entrepreneur web",
      "background_detail": "Construire des plateformes et des communautés en ligne",
      "background_span": "1997 — 2004"
    },
    "projects": {
      "label": "Projets",
      "paris_desc": "Un système privé d’intelligence culturelle pour Paris, combinant localisation, effort, jugement éditorial et goût personnel pour décider plus calmement ce qui mérite une sortie.",
      "paris_subline": "Une expérimentation personnelle autour des systèmes de goût, de la pertinence locale et de la recommandation à échelle humaine.",
      "paris_preview_header": "Cette semaine près de Jourdain, 20e",
      "paris_preview_caption": "Un échantillon de sélections d'intelligence culturelle, une semaine, un quartier.",
      "paris_cta": "Voir le projet",
      "tier_walk": "à pied",
      "tier_metro": "métro",
      "tier_bike": "vélo"
    },
    "contact": {
      "label": "Contact",
      "headline": "Écrivez-moi,<br>et je <em>vous répondrai.</em>",
      "email_aria": "Écrire à Trent Power"
    },
    "footer": {
      "privacy": "Confidentialité",
      "lang_toggle": "EN",
      "location": "Paris, France",
      "verify": "Vérifier",
      "theme": {
        "light": "Clair",
        "auto": "Auto",
        "dark": "Sombre"
      },
      "proof": {
        "edition": "Édition",
        "signed": "SHA256",
        "last_verified": "Vérifié",
        "sha_title": "Voir l'entrée de cette page dans le manifeste d'intégrité signé",
        "relative": {
          "today": "aujourd'hui",
          "yesterday": "hier",
          "days": "il y a {n} jours",
          "months": "il y a {n} mois",
          "years": "il y a {n} ans"
        }
      },
      "provenance": {
        "line": "Traduction automatique de l’édition anglaise originale."
      }
    },
    "modal": {
      "text": "C’est un projet personnel. Si vous souhaitez y accéder, je serais heureux de vous en donner l’accès.",
      "cta_aria": "Demander l’accès par e-mail",
      "close": "Fermer",
      "cta_label": "Sur demande"
    },
    "cite": {
      "hover": "Copier la citation",
      "copied": "Copié",
      "site_label": "Site personnel",
      "edition_label": "Édition",
      "label": {
        "action": "Citer et vérifier"
      },
      "overlay": {
        "kicker": "Cette page",
        "lede": "Notice de publication canonique.",
        "action": {
          "copy_citation": "Copier la citation",
          "verify": "Vérifier cette page",
          "open_source": "Voir le code source",
          "view_integrity": "Voir la notice d’intégrité",
          "print_home": "Imprimer le profil",
          "print_sheet": "Imprimer le profil",
          "print_page": "Imprimer le profil",
          "close": "Fermer"
        },
        "page_title": {
          "home": "Stratégie client et systèmes de croissance",
          "privacy": "Notice de confidentialité",
          "security": "Posture de sécurité",
          "integrity": "Notice d’intégrité",
          "verify": "Page de vérification",
          "source": "Lecteur de code source",
          "source-reader": "Lecteur de code source",
          "acknowledgments": "Remerciements de sécurité",
          "integrity-verify-locally": "Vérifier localement",
          "releases": "Archive des versions",
          "release-archive": "Archive des versions · 2026-05-09",
          "forbidden": "Accès non disponible",
          "not-found": "Page introuvable",
          "server-error": "Erreur serveur temporaire",
          "maintenance": "Maintenance en cours",
          "sw-reset": "Réinitialisation du service worker"
        },
        "toast": {
          "citation_copied": "Citation copiée"
        },
        "footer_signed": "Édition {edition} · SHA256 signé"
      }
    },
    "privacy": {
      "page_title": "Confidentialité & confiance",
      "page_kicker": "Confidentialité & confiance",
      "page_h1": "<span class=\"hero-line\">Rien n’est suivi.</span><span class=\"hero-line\">Rien à supprimer.</span>",
      "body_intro": "Aucun suivi, aucune analytique, aucun cookie, aucun profilage, aucun service tiers intégré, ni requête vers des tiers pendant votre navigation. Aucune donnée personnelle n’est collectée à des fins d’analyse, de publicité ou de profilage. Les données techniques limitées traitées par le serveur servent uniquement à assurer la sécurité et le bon fonctionnement du site.",
      "body_detail": "Les liens externes sont de simples références. Ils ne sont contactés que si vous choisissez de les ouvrir. Le seul stockage navigateur utilisé est une préférence de langue locale. Elle reste sur votre appareil et n’est jamais transmise.",
      "body_records": "Les registres d’inspection publique et de vérification sont publiés séparément. Vous pouvez consulter le <a href=\"/security/\" aria-describedby=\"desc-security-threat-model\">Modèle de sécurité et de menaces</a> pour la posture complète.",
      "print": {
        "kicker": "Confidentialité & confiance",
        "title": "La confidentialité, par conception",
        "lede": "Ce site est volontairement simple et respectueux de la vie privée. Il n’utilise ni suivi, ni analytique, ni cookies, ni profilage, ni requêtes tierces intégrées pendant la navigation.",
        "meta": "Édition 2026-05-19 · trentpower.fr/privacy/",
        "card": {
          "01": {
            "label": "01 Aucun suivi",
            "title": "Aucun suivi",
            "body": "Aucune analytique. Aucun cookie. Aucun profilage. Aucune requête tierce pendant la navigation."
          },
          "02": {
            "label": "02 Aucune collecte",
            "title": "Aucune collecte de données",
            "body": "Aucun formulaire public. Aucun compte visiteur. Aucun suivi comportemental. Aucune infrastructure publicitaire."
          },
          "03": {
            "label": "03 Voie de vérification",
            "title": "Voie de vérification",
            "body": "Page Intégrité. Page Sécurité. Manifeste public. Vue source."
          },
          "04": {
            "label": "04 Principe de conception",
            "title": "La privacy comme posture",
            "body": "La confidentialité n’est pas une couche de conformité. Elle fait partie de la posture éditoriale et professionnelle du site."
          },
          "05": {
            "label": "05 Ce que vous pouvez vérifier",
            "title": "Ce que vous pouvez vérifier",
            "body": "Voir la source. Lire /integrity.json. Vérifier la signature. Inspecter les en-têtes de sécurité."
          },
          "06": {
            "label": "06 Contact",
            "title": "Contact",
            "body": "trent@trentpower.fr · route canonique trentpower.fr/privacy/"
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/privacy/"
        },
        "qr": {
          "label": "trentpower.fr/privacy/"
        },
        "doc_title": "Trent Power - Profil de confidentialité"
      }
    },
    "integrity": {
      "page_kicker": "Intégrité",
      "page_h1": "<span class=\"hero-line\">Signé.</span><span class=\"hero-line\">Vérifiable.</span><span class=\"hero-line\">Reproductible.</span>",
      "page_title": "Intégrité",
      "body_intro": "Chaque fichier public est haché et listé dans un manifeste, signé par une signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée — chaque version peut donc être vérifiée avec la clé de l’éditeur, en local, sans confiance envers ce serveur. Vous pouvez <a href=\"/integrity/verify-locally/\" aria-describedby=\"desc-verify-locally\">vérifier localement ici</a>.",
      "file_integrity": "/integrity.json · hachages SHA-256 de tous les fichiers publics",
      "file_sig": "/integrity.json.sig · signature PGP détachée",
      "file_key": "/.well-known/pgp-key.asc · clé de signature publique",
      "copy_button": "Copier",
      "copy_button_done": "Copié",
      "fingerprint_copy": "Copier l’empreinte",
      "fingerprint_copied": "Copiée",
      "print": {
        "kicker": "Intégrité",
        "title": "Vérification publique signée",
        "lede": "Les fichiers publiés sont listés dans un manifeste public et signés par une signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée afin que toute mise à jour puisse être vérifiée de manière indépendante.",
        "meta": "Édition 2026-05-19 · trentpower.fr/integrity/",
        "card": {
          "01": {
            "label": "01 Manifeste",
            "title": "Manifeste",
            "body": "<code>/integrity.json</code> - empreintes <abbr title=\"Secure Hash Algorithm, 256-bit\">SHA-256</abbr> de chaque fichier public intentionnel."
          },
          "02": {
            "label": "02 Signature",
            "title": "Signature détachée",
            "body": "/integrity.json.sig - signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée qui certifie le manifeste."
          },
          "03": {
            "label": "03 Clé publique",
            "title": "Clé publique",
            "body": "/.well-known/pgp-key.asc - empreinte A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          },
          "04": {
            "label": "04 Versions",
            "title": "Versions figées",
            "body": "/integrity/releases/ - instantanés publics : février 2026 et mai 2026."
          },
          "05": {
            "label": "05 Voie source",
            "title": "Voie source",
            "body": "/source/ - vue texte publique de fichiers sources sélectionnés. Aucun secret, aucun artefact privé."
          },
          "06": {
            "label": "06 Vérification",
            "title": "Vérification",
            "body": "curl -O trentpower.fr/integrity.json && curl -O trentpower.fr/integrity.json.sig && gpg --verify integrity.json.sig integrity.json"
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/integrity/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/"
        },
        "doc_title": "Trent Power - Certificat d’intégrité"
      },
      "record": {
        "kicker": "Édition signée",
        "title": "<time datetime=\"2026-05\">Mai 2026</time>",
        "status_short": "Manifeste · Signature · Clé publique",
        "label": {
          "manifest": "Manifeste",
          "signature": "Signature détachée",
          "public_key": "Clé publique",
          "archives": "Archives",
          "checksums": "Sommes de contrôle",
          "fingerprint": "Empreinte"
        },
        "desc": {
          "manifest": "Empreintes <abbr title=\"Secure Hash Algorithm, 256-bit\">SHA-256</abbr> des fichiers publics",
          "signature": "Signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée",
          "public_key": "Clé publique de signature",
          "archives": "Édition publique signée des sources",
          "checksums": "Liste de sommes de contrôle signée pour les archives"
        },
        "action": {
          "view_manifest": "Voir le manifeste",
          "view_releases": "Voir les éditions"
        },
        "group": {
          "verification": "Pièces de vérification",
          "archives": "Archives source",
          "fingerprint": "Empreinte de version"
        }
      },
      "verify_release_local": {
        "summary": "Vérification locale avancée",
        "note": "Exécute la vérification du manifeste signé dans un trousseau temporaire."
      }
    },
    "releases": {
      "page_title": "Versions",
      "body_intro": "Chaque <dfn id=\"signed-release\">édition</dfn> est un instantané figé et signé du site public au moment de la publication. Les archives sources peuvent être téléchargées, et des sommes de contrôle et signatures sont fournies pour la vérification locale.",
      "editions_heading": "Éditions",
      "group": {
        "current": "Édition actuelle",
        "archive": "Archives"
      },
      "view_release": "Voir l’édition",
      "download_checksums_sig": "Sommes de contrôle & signature",
      "aria": {
        "actions_current": "Téléchargements et vérification de l’édition actuelle",
        "actions_archive": "Fiche d’édition"
      },
      "detail": {
        "page_title": "Mai 2026",
        "intro": "Archives d’édition signées pour l’édition du 17 mai 2026. Une liste de sommes de contrôle signée vérifie l’ensemble des archives ; les sommes de contrôle vérifient les fichiers téléchargés ; des signatures détachées vérifient directement chaque archive. Le manifeste signé publié à /integrity.json reste l’autorité du site en direct.",
        "card": {
          "kicker": "Fichiers d’édition",
          "title": "17 mai 2026",
          "status": "ZIP · TAR.GZ · Sommes de contrôle · Signatures",
          "label": {
            "zip": "ZIP",
            "zip_sig": "Signature ZIP",
            "zip_sha": "Somme ZIP",
            "targz": "TAR.GZ",
            "targz_sig": "Signature TAR.GZ",
            "targz_sha": "Somme TAR.GZ",
            "sums": "Liste de sommes de contrôle",
            "sums_sig": "Signature de la liste"
          },
          "desc": {
            "zip": "Instantané portable de la source publique",
            "sig": "Signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée",
            "sha": "Somme de contrôle SHA-256",
            "targz": "Archive technique de préservation",
            "sums": "Liste SHA-256 des archives de l’édition",
            "sums_sig": "Signature <abbr title=\"Pretty Good Privacy\">PGP</abbr> détachée sur SHA256SUMS"
          }
        },
        "note": "Les fichiers d’archive ne sont pas inclus dans /integrity.json afin d’éviter un hachage récursif. Ils sont vérifiés séparément au moyen de la liste de sommes de contrôle signée, des sommes de contrôle SHA-256 individuelles et de signatures détachées. <a href=\"/integrity/\">Intégrité</a> reste l’autorité du site en direct."
      },
      "edition_feb": "Février 2026 · première version signée",
      "edition_feb_date": "Février 2026",
      "edition_feb_desc": "<cite>Première édition signée</cite>",
      "print": {
        "kicker": "Versions",
        "title": "Éditions publiques figées",
        "lede": "Les instantanés de versions publiques préservent des éditions choisies du site avec des ressources locales afin que leur conception et leur intégrité puissent être inspectées dans le temps.",
        "meta": "Édition 2026-05-19 · trentpower.fr/integrity/releases/",
        "doc_title": "Trent Power - Archive des versions",
        "card": {
          "01": {
            "label": "01 Mai 2026",
            "title": "Mai 2026",
            "body": "Édition finale Signifier, Söhne, Söhne Mono. Noms de fichiers actifs propres. Profil imprimé d’une page. Fiches de confiance."
          },
          "02": {
            "label": "02 Février 2026",
            "title": "Février 2026",
            "body": "Première version signée. Système visuel antérieur. Préservée comme archive historique."
          },
          "03": {
            "label": "03 Principe d’archive",
            "title": "Principe d’archive",
            "body": "Ressources figées. CSS et polices locales. Aucune dépendance de style mutable en direct."
          },
          "04": {
            "label": "04 Voie d’intégrité",
            "title": "Voie d’intégrité",
            "body": "/integrity.json · /integrity.json.sig · /.well-known/pgp-key.asc"
          },
          "05": {
            "label": "05 Pourquoi",
            "title": "Pourquoi",
            "body": "Vérifiabilité. Auteur. Continuité. Confiance publique."
          },
          "06": {
            "label": "06 Où inspecter",
            "title": "Où inspecter",
            "body": "/integrity/releases/2026-05-17/ · /integrity/releases/2026-05-09/ · /integrity/releases/2026-02/ · /source/"
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/integrity/releases/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/releases/"
        }
      },
      "edition_feb_meta": "Instantané signé · Édition initiale",
      "edition_may09_date": "17 mai 2026",
      "edition_may09_desc": "<cite>Édition finale de mai</cite>",
      "edition_may09_meta": "Instantané signé · Édition précédente",
      "edition_may17_date": "19 mai 2026",
      "edition_may17_desc": "<cite>Cohérence éditoriale</cite>",
      "edition_may17_meta": "Instantané signé · Édition actuelle",
      "download_zip": "Télécharger ZIP",
      "download_targz": "Télécharger TAR.GZ"
    },
    "security": {
      "page_kicker": "Sécurité et modèle de menace",
      "page_h1": "<span class=\"hero-line\">Statique.</span><span class=\"hero-line\">Auto-hébergé.</span><span class=\"hero-line\">Vérifiable.</span>",
      "page_title": "Sécurité & modèle de menace",
      "body_intro": "Comment ce site est hébergé, ce qu’il protège, ce qu’il ne protège pas - et comment chacun peut le vérifier indépendamment.",
      "s1_summary": "1. Architecture",
      "s2_summary": "2. Actifs protégés",
      "s2_body": "Les contrôles décrits ici protègent :",
      "s2_list": "La propriété du domaine\nL’intégrité DNS\nL’intégrité du compte d’hébergement\nL’intégrité du contenu public\nLa clé de signature utilisée pour l’authenticité des versions",
      "s3_summary": "3. Modèle de menace",
      "s3_infra_heading": "Compromission de l’infrastructure",
      "s3_infra_list": "Prise de contrôle du compte registrar\nDétournement <abbr title=\"Domain Name System\">DNS</abbr>\nCompromission des identifiants d’hébergement",
      "s3_content_heading": "Altération du contenu",
      "s3_content_list": "Modification de fichiers après déploiement\nInjection de JavaScript malveillant\nAltération silencieuse des ressources statiques",
      "s3_admin_heading": "Abus administratif",
      "s3_admin_list": "Credential stuffing\nAnalyse automatisée des vulnérabilités",
      "s3_noise_heading": "Bruit internet courant",
      "s3_noise_body": "Sondage automatisé continu pour les chemins <abbr title=\"Content Management System\">CMS</abbr> courants, les fichiers de configuration ou les points d’entrée connus. Ces éléments sont traités comme des conditions de fond persistantes plutôt que comme des événements exceptionnels.",
      "s4_summary": "4. Contrôles",
      "s4_registrar_heading": "Registrar &amp; <abbr title=\"Domain Name System\">DNS</abbr>",
      "s4_registrar_list": "<abbr title=\"Multi-Factor Authentication\">MFA</abbr> activée\nVerrouillage du registrar actif\n<abbr title=\"Domain Name System Security Extensions\">DNSSEC</abbr> activé et validé\nEnregistrements <abbr title=\"Certificate Authority Authorization\">CAA</abbr> restreignant l’émission de certificats",
      "s4_hosting_heading": "Hébergement",
      "s4_hosting_list": "Authentification multi-facteurs activée\nDéploiement <abbr title=\"Secure File Transfer Protocol\">SFTP</abbr> uniquement\nAucune exposition <abbr title=\"Secure Shell\">SSH</abbr> shell\nAucune exécution en arrière-plan planifiée",
      "s4_content_heading": "Contenu public",
      "s4_content_list": "Architecture statique réduisant la surface d’attaque côté serveur\n<abbr title=\"Content Security Policy\">CSP</abbr> stricte démarrant par <code>default-src 'none'</code>\nAucun chargement de ressource externe\nAucune exécution de script dynamique",
      "s4_monitoring_heading": "Surveillance",
      "s4_monitoring_list": "Analyse structurée des journaux\nDétection de patterns et scoring des anomalies\nDétection de dérive d’intégrité des fichiers par rapport à la base de référence signée",
      "s6_summary": "6. Risque résiduel",
      "s6_protect_summary": "Ce modèle protège le site statique public. Il ne protège pas contre la compromission du bureau d’enregistrement, de l’hébergement, des appareils clients ou de la clé privée.",
      "s6_intro": "Ce modèle ne tente pas de traiter :",
      "s6_list": "Compromission physique de l’infrastructure d’hébergement\nCompromission de la racine <abbr title=\"Domain Name System\">DNS</abbr> mondiale\nCompromission d’une autorité de certification (<abbr title=\"Certificate Authority\">CA</abbr>)\nAdversaires étatiques\nExploits navigateur zero-day sur les appareils clients",
      "s6_footer": "Les risques principaux restent la compromission du domaine, du <abbr title=\"Domain Name System\">DNS</abbr>, de l'hébergement et de la clé de signature privée.",
      "s7_summary": "7. Divulgation",
      "s7_body": "La divulgation responsable est la bienvenue. Les coordonnées de sécurité et les instructions de communication chiffrée sont publiées sur <a href=\"/.well-known/security.txt\" aria-describedby=\"desc-security-contact\"><code>/.well-known/security.txt</code></a>.",
      "s8_summary": "8. Principes de conception",
      "s8_list": "Simplicité plutôt que complexité\nComportement déterministe plutôt que systèmes dynamiques\nTransparence plutôt qu’obscurité\nIntégrité vérifiable plutôt qu’hypothèses de confiance",
      "print": {
        "kicker": "Sécurité & modèle de menace",
        "title": "Statique, auto-géré, axé sur la vérification",
        "lede": "Le site public est composé de HTML, CSS et JavaScript natif, avec des en-têtes stricts, aucune logique serveur à l’exécution, aucune base de données publique et aucun script tiers.",
        "meta": "Édition 2026-05-19 · trentpower.fr/security/",
        "card": {
          "01": {
            "label": "01 Architecture",
            "title": "Architecture",
            "body": "HTML, CSS, JavaScript natif. Déploiement auto-géré sur Apache (Gandi, Paris). Aucune base de données publique."
          },
          "02": {
            "label": "02 En-têtes",
            "title": "En-têtes de sécurité",
            "body": "<abbr title=\"Content Security Policy\">CSP</abbr> par défaut deny. <abbr title=\"HTTP Strict Transport Security\">HSTS</abbr>. <abbr title=\"Cross-Origin Opener Policy\">COOP</abbr> / <abbr title=\"Cross-Origin Embedder Policy\">COEP</abbr> / <abbr title=\"Cross-Origin Resource Policy\">CORP</abbr>. Referrer-Policy no-referrer. Permissions-Policy verrouillée."
          },
          "03": {
            "label": "03 Actifs protégés",
            "title": "Actifs protégés",
            "body": "Identité. Contenu publié. Fichiers de vérification publics. Intégrité du code source."
          },
          "04": {
            "label": "04 Modèle de menaces",
            "title": "Modèle de menaces",
            "body": "Injection de contenu. Compromission des identifiants d’hébergement. Usurpation d’identité. Fichiers obsolètes ou altérés."
          },
          "05": {
            "label": "05 Contrôles",
            "title": "Contrôles",
            "body": "Aucun script tiers. Aucun formulaire public. Manifeste d’intégrité signé. Exposition de fichiers restreinte. Cache piloté par service worker."
          },
          "06": {
            "label": "06 Risque résiduel",
            "title": "Risque résiduel",
            "body": "Le risque hébergeur et registrar demeure. L’exposition d’un site statique est réduite, pas éliminée. Voie de divulgation responsable publiée."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/security/"
        },
        "qr": {
          "label": "trentpower.fr/security/"
        },
        "doc_title": "Trent Power - Profil sécurité"
      },
      "public_verification_summary": "5. Surface de vérification publique",
      "public_verification_intro": "Le site expose des routes d'inspection publique pour que le contenu publié puisse être contrôlé sans accès à l'infrastructure privée.",
      "public_verification_list": "<a href=\"/integrity/\" aria-label=\"Ouvrir l’archive d’intégrité des publications signées, de la clé publique et du manifeste\"><code>/integrity/</code></a> recense les éditions signées, la clé publique et le manifeste\n<a href=\"/verify/\" aria-label=\"Ouvrir l’outil de vérification des URL canoniques, miroirs source et empreintes de page\"><code>/verify/</code></a> recense l'<abbr title=\"Uniform Resource Locator\">URL</abbr> canonique d'une page, son miroir source et son empreinte\n<a href=\"/source/\" aria-label=\"Ouvrir les miroirs lisibles du code source de certains fichiers publics\"><code>/source/</code></a> publie les miroirs lisibles d'une sélection de fichiers publics\n<a href=\"/integrity/releases/\" aria-label=\"Ouvrir les instantanés figés et signés des publications\"><code>/integrity/releases/</code></a> conserve les instantanés signés et figés",
      "public_verification_footer": "Ces routes facilitent l'inspection et la provenance. Elles ne suppriment pas la nécessité de protéger le <abbr title=\"Domain Name System\">DNS</abbr>, les identifiants d'hébergement et la clé privée de signature.",
      "s1_routes_note": "Les routes d'inspection publiques exposent le manifeste signé, les enregistrements de page, les miroirs source lisibles et les éditions archivées sans exposer l'infrastructure privée.",
      "architecture_card": {
        "kicker": "Architecture",
        "browser_label": "Navigateur",
        "browser_body": "<abbr title=\"HyperText Transfer Protocol Secure\">HTTPS</abbr> · ni cookies ni analyses",
        "host_label": "Hébergement statique",
        "host_body": "Apache · Gandi · Paris · déploiement <abbr title=\"Secure File Transfer Protocol\">SFTP</abbr>",
        "files_label": "Fichiers du site",
        "files_body": "<abbr title=\"HyperText Markup Language\">HTML</abbr> · <abbr title=\"Cascading Style Sheets\">CSS</abbr> · JavaScript natif · polices auto-hébergées",
        "cache_label": "Cache hors-ligne",
        "cache_body": "Service worker · cache local dès la première visite",
        "trust_label": "Confiance",
        "trust_body": "Intégrité · Vérification · Source · Éditions",
        "archive_label": "Archive",
        "archive_body": "Instantanés signés et figés"
      }
    },
    "acknowledgments": {
      "page_title": "Mentions de sécurité",
      "body_intro": "Cette page recense les divulgations de sécurité responsables qui ont été vérifiées et résolues.",
      "none": "Il n’y a pas de mentions pour le moment. Cela reflète l’absence de divulgations signalables à ce jour, et non l’absence de révision ou de maintenance.",
      "report": "Si vous pensez avoir trouvé un problème de sécurité sur ce site, veuillez le signaler de manière responsable. Les coordonnées et les préférences de divulgation sont indiquées dans security.txt.",
      "integrity_link": "Déclaration d’intégrité du site",
      "print": {
        "kicker": "Reconnaissances de sécurité",
        "title": "Registre des divulgations responsables",
        "lede": "Reconnaissances pour les personnes et les chercheurs ayant contribué de manière responsable à la posture de sécurité de ce site.",
        "meta": "Édition 2026-05-19 · trentpower.fr/security/acknowledgments/",
        "doc_title": "Trent Power - Reconnaissances de sécurité",
        "card": {
          "01": {
            "label": "01 Modèle de divulgation",
            "title": "Modèle de divulgation",
            "body": "Coordonné, à délai défini, crédit sur demande."
          },
          "02": {
            "label": "02 Politique de signalement",
            "title": "Politique de signalement",
            "body": "trent@trentpower.fr · rapports signés PGP préférés · clé publique sur /.well-known/pgp-key.asc."
          },
          "03": {
            "label": "03 Remédiation coordonnée",
            "title": "Remédiation coordonnée",
            "body": "Accusé de réception sous 72 heures. Correctif, vérification, notes publiques si nécessaire."
          },
          "04": {
            "label": "04 Processus de vérification",
            "title": "Processus de vérification",
            "body": "Reproduction, empreinte, signature, et consignation dans la prochaine version signée."
          },
          "05": {
            "label": "05 Contact sécurité",
            "title": "Contact sécurité",
            "body": "trent@trentpower.fr · empreinte A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          },
          "06": {
            "label": "06 Statut de publication",
            "title": "Statut de publication",
            "body": "La page de reconnaissances est le registre canonique ; mises à jour à chaque édition signée."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/security/acknowledgments/"
        },
        "qr": {
          "label": "trentpower.fr/security/acknowledgments/"
        }
      }
    },
    "maintenance": {
      "page_title": "En maintenance",
      "body": "Le manifeste signé, les miroirs source et les archives de versions restent accessibles pendant la maintenance. La vérification reste opérationnelle.",
      "kicker": "Maintenance",
      "title": "En maintenance",
      "lede": "Des travaux sont en cours. Revenez dans quelques instants ou retournez à la page d'accueil.",
      "print": {
        "kicker": "État de maintenance",
        "title": "Mode maintenance temporaire",
        "lede": "Ce site est temporairement indisponible pendant le déploiement d’une nouvelle édition signée ou d’une mise à jour d’infrastructure.",
        "meta": "Édition 2026-05-19 · trentpower.fr/maintenance.html",
        "doc_title": "Trent Power - Maintenance",
        "card": {
          "01": {
            "label": "01 État de déploiement",
            "title": "État de déploiement",
            "body": "Une version signée ou une mise à jour d’infrastructure est en cours."
          },
          "02": {
            "label": "02 Préservation d’intégrité",
            "title": "Préservation d’intégrité",
            "body": "L’édition signée précédente reste téléchargeable dans /integrity/releases/."
          },
          "03": {
            "label": "03 Disponibilité publique",
            "title": "Disponibilité publique",
            "body": "Le service revient automatiquement dès que la nouvelle édition est signée et vérifiée."
          },
          "04": {
            "label": "04 Versions signées",
            "title": "Versions signées",
            "body": "Les éditions archivées restent accessibles indépendamment de cette fenêtre de maintenance."
          },
          "05": {
            "label": "05 Contact de maintenance",
            "title": "Contact de maintenance",
            "body": "trent@trentpower.fr - pour toute demande en cas d’indisponibilité prolongée."
          },
          "06": {
            "label": "06 Continuité attendue",
            "title": "Continuité attendue",
            "body": "Les URL canoniques sont préservées d’une édition à l’autre ; vos signets restent valides."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/maintenance.html"
        },
        "qr": {
          "label": "trentpower.fr/maintenance.html"
        }
      }
    },
    "error_404": {
      "page_title": "Page introuvable",
      "body": "La page que vous recherchez n’existe pas ou a été déplacée."
    },
    "error_500": {
      "page_title": "Une erreur s’est produite",
      "body": "Le serveur a rencontré une erreur. Réessayez dans quelques instants ou retournez à la page d’accueil."
    },
    "home": {
      "trust_privacy": "confidentialité d’abord",
      "trust_signed": "versions signées",
      "trust_static": "statique",
      "trust_no_tracking": "sans suivi"
    },
    "print": {
      "kicker": "trentpower.fr",
      "name": "Trent Power",
      "role": "Stratégie client, systèmes de croissance et adoption culturelle",
      "contact": {
        "linkedin": "LinkedIn · Trent Power"
      },
      "title": "Stratégie client, systèmes de croissance et adoption culturelle à l’échelle mondiale",
      "body": "Je dirige la stratégie client au niveau Groupe, en me concentrant sur les systèmes, la gouvernance et les méthodes de travail qui transforment les relations clients en valeur durable. Mon travail se situe à l’intersection de la stratégie, de la technologie et des relations humaines, avec un impact qui passe à l’échelle et qui dure.",
      "focus": {
        "01": {
          "label": "01 Focus",
          "title": "La croissance client exige une discipline",
          "body": "Une croissance durable repose sur des systèmes solides."
        },
        "02": {
          "label": "02 Adoption",
          "title": "L’adoption compte plus que les outils",
          "body": "La technologie crée de la valeur quand les équipes lui font confiance, la choisissent et l’utilisent."
        },
        "03": {
          "label": "03 Relations humaines",
          "title": "L’IA doit amplifier les relations humaines",
          "body": "L’authenticité reste un avantage humain ; l’automatisation doit renforcer le contexte, la mémoire et l’attention."
        },
        "04": {
          "label": "04 Gouvernance",
          "title": "La gouvernance crée de l’élan",
          "body": "Un cadre de responsabilité clair et des priorités disciplinées créent l’alignement et l’échelle."
        }
      },
      "credentials": {
        "label": "Parcours académique",
        "sydney_title": "University of Sydney",
        "sydney_detail": "Master, 2009.",
        "exec_title": "Formation exécutive sélective",
        "exec_detail": "Apprentissage senior en continu — intelligence artificielle, comportement consommateur, transformation organisationnelle et coaching en leadership."
      },
      "trajectory": {
        "label": "Parcours",
        "current": {
          "label": "Actuel",
          "body": "Directeur Groupe, Développement Client & Relations Clients · LVMH"
        },
        "previous": {
          "label": "Précédent",
          "body": "Direction senior en Clienteling, CRM et Développement Client"
        },
        "background": {
          "label": "Parcours initial",
          "body": "Travaux digitaux et entrepreneuriaux fondateurs : plateformes et communautés en ligne"
        }
      },
      "project": {
        "label": "Point de preuve",
        "title": "What’s On in Paris",
        "body": "Un système privé d’intelligence culturelle pour Paris, combinant localisation, effort, jugement éditorial et goût personnel pour décider plus calmement de ce qui mérite que l’on sorte de chez soi.",
        "note": "Une expérimentation personnelle sur les systèmes de goût, la pertinence locale et la recommandation à échelle humaine."
      },
      "footer": {
        "proof": "Privé · Statique · Signé · Sans suivi",
        "edition": "Édition <time datetime=\"2026-05-19\">2026-05-19</time> · https://trentpower.fr/",
        "citation": "Trent Power. Site personnel. Paris, France.",
        "evidence": "Document public · HTML · Édition du 19 mai 2026"
      },
      "place": "Site personnel · Paris, France",
      "doc_title": "Trent Power - Profil exécutif stratégie client",
      "arch": {
        "caption": "Statique, respectueux de la vie privée, signé et inspectable",
        "browser": "Navigateur",
        "host": "Hébergement",
        "files": "Fichiers",
        "cache": "Cache",
        "trust": "Confiance",
        "archive": "Archive"
      }
    },
    "error": {
      "403": {
        "print": {
          "kicker": "403",
          "title": "Accès indisponible",
          "lede": "Ce chemin n’est pas accessible publiquement. Le site public n’expose que des fichiers et pages intentionnels.",
          "meta": "Édition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Limite d’accès",
          "card": {
            "01": {
              "label": "01 Limite d’accès",
              "title": "Limite d’accès",
              "body": "Certains chemins sont intentionnellement indisponibles. Les fichiers privés, de sauvegarde et opérationnels sont bloqués."
            },
            "02": {
              "label": "02 Voies publiques",
              "title": "Voies publiques",
              "body": "Accueil. Confidentialité & confiance. Intégrité. Sécurité. Source."
            },
            "03": {
              "label": "03 Pourquoi",
              "title": "Pourquoi",
              "body": "Réduit l’exposition accidentelle. Maintient des fichiers publics intentionnels. Soutient la posture de confidentialité et de confiance."
            },
            "04": {
              "label": "04 Vérification",
              "title": "Vérification",
              "body": "Inspecter /integrity.json. Voir les fichiers sources sélectionnés. Consulter /.well-known/security.txt."
            },
            "05": {
              "label": "05 Posture statique",
              "title": "Posture statique",
              "body": "Aucune base de données publique. Aucun compte visiteur. Aucun formulaire. Sans suivi."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · divulgation responsable via /security/"
            }
          },
          "footer": {
            "proof": "Privé · Statique · Signé · Sans suivi",
            "edition": "Édition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      },
      "404": {
        "print": {
          "kicker": "404",
          "title": "Page introuvable",
          "lede": "L’adresse a peut-être changé, ou la page ne fait plus partie du site public.",
          "meta": "Édition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Page introuvable",
          "card": {
            "01": {
              "label": "01 Ce qui s’est passé",
              "title": "Ce qui s’est passé",
              "body": "L’adresse demandée ne correspond à aucune page publique. Le site reste accessible depuis l’accueil."
            },
            "02": {
              "label": "02 Où aller",
              "title": "Où aller",
              "body": "Accueil. Confidentialité & confiance. Intégrité. Sécurité."
            },
            "03": {
              "label": "03 Vérification",
              "title": "Vérification",
              "body": "Manifeste public. Vue source. Versions signées."
            },
            "04": {
              "label": "04 Si c’était attendu",
              "title": "Si attendu",
              "body": "Vérifier l’URL. Retirer les fragments obsolètes. Essayer la page d’accueil canonique."
            },
            "05": {
              "label": "05 Posture publique",
              "title": "Posture publique",
              "body": "Site statique. Sans suivi. Sans formulaire. Sans script tiers."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · LinkedIn · Trent Power"
            }
          },
          "footer": {
            "proof": "Privé · Statique · Signé · Sans suivi",
            "edition": "Édition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      },
      "500": {
        "print": {
          "kicker": "500",
          "title": "Erreur serveur temporaire",
          "lede": "Un événement inattendu est survenu lors du chargement de cette page. Le site public étant statique, il s’agit probablement d’un incident d’hébergement ou de routage plutôt que d’une défaillance applicative.",
          "meta": "Édition 2026-05-19 · trentpower.fr",
          "doc_title": "Trent Power - Erreur serveur temporaire",
          "card": {
            "01": {
              "label": "01 Ce qui s’est passé",
              "title": "Ce qui s’est passé",
              "body": "Le serveur n’a pas pu traiter la requête. Réessayer dans un instant."
            },
            "02": {
              "label": "02 Voies stables",
              "title": "Voies stables",
              "body": "Accueil. Intégrité. Sécurité. Source."
            },
            "03": {
              "label": "03 Vérification publique",
              "title": "Vérification publique",
              "body": "/integrity.json · /integrity.json.sig · /.well-known/pgp-key.asc"
            },
            "04": {
              "label": "04 Architecture",
              "title": "Architecture",
              "body": "HTML, CSS et JavaScript statiques. Aucune application publique à l’exécution. Aucune base de données publique."
            },
            "05": {
              "label": "05 Que faire",
              "title": "Que faire",
              "body": "Rafraîchir plus tard. Revenir à l’accueil. Contacter si persistant."
            },
            "06": {
              "label": "06 Contact",
              "title": "Contact",
              "body": "trent@trentpower.fr · LinkedIn · Trent Power"
            }
          },
          "footer": {
            "proof": "Privé · Statique · Signé · Sans suivi",
            "edition": "Édition 2026-05-19 · trentpower.fr"
          },
          "qr": {
            "label": "trentpower.fr"
          }
        }
      }
    },
    "source": {
      "print": {
        "kicker": "Source",
        "title": "Vue source publique",
        "lede": "Des fichiers publics sélectionnés sont copiés en texte brut afin que le site puisse être inspecté depuis n’importe quel lecteur, y compris mobile.",
        "meta": "Édition 2026-05-19 · trentpower.fr/source/",
        "doc_title": "Trent Power - Vue source publique",
        "card": {
          "01": {
            "label": "01 Ce qui est inclus",
            "title": "Ce qui est inclus",
            "body": "Miroirs HTML. CSS. JavaScript. Fichiers manifeste. Miroir .htaccess."
          },
          "02": {
            "label": "02 Ce qui est exclu",
            "title": "Ce qui est exclu",
            "body": "Identifiants. Notes privées. Factures. Sauvegardes. Internes du générateur, sauf publication explicite."
          },
          "03": {
            "label": "03 Organisation",
            "title": "Organisation",
            "body": "Trié par type de fichier, puis par nom. Miroirs en texte brut. Empreintes SHA-256. Tailles de fichier."
          },
          "04": {
            "label": "04 Vérification",
            "title": "Vérification",
            "body": "source-manifest.json · /integrity.json · signature détachée · clé publique."
          },
          "05": {
            "label": "05 Fichiers notables",
            "title": "Fichiers notables",
            "body": "styles.css.txt · app.js.txt · print.css.txt · htaccess.txt · source-manifest.json"
          },
          "06": {
            "label": "06 Principe",
            "title": "Principe",
            "body": "Lecteurs humains d’abord. Les fichiers lisibles par machine préservent identité, auteur et contexte."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/source/"
        },
        "qr": {
          "label": "trentpower.fr/source/"
        }
      },
      "page_kicker": "Code source",
      "heading": "<span class=\"hero-line\">Chaque octet public,</span><span class=\"hero-line\">en texte clair.</span>",
      "intro_lede": "Fichiers publics sélectionnés, publiés sous forme lisible. Pour inspection, conservation et lecture machine.",
      "curation_note": "Cet index présente les principaux miroirs publics. D’autres fichiers miroirs peuvent rester accessibles par URL directe lorsqu’ils soutiennent la vérification, la récupération ou l’intégrité des versions publiées.",
      "download_lede": "Télécharger l’archive source publique de l’édition courante",
      "download_targz": "TAR.GZ",
      "download_zip": "ZIP",
      "download_checksums": "Sommes de contrôle",
      "group": {
        "published-pages": "Pages publiées",
        "trust-records": "Fiches de confiance",
        "scripts": "Scripts",
        "metadata": "Métadonnées"
      },
      "col": {
        "validated": "Vérifié"
      },
      "group_gloss": {
        "published-pages": "Miroirs lisibles des principales pages publiques, servis en texte brut afin que les octets puissent être inspectés sans exécution.",
        "trust-records": "Engagements publics et surfaces d'identité. Qui publie le site, ce qui est promis, où passent les signalements.",
        "scripts": "Feuilles de style et JavaScript écrits à la source que la page envoie au navigateur. Miroirs de la source, non des octets minifiés déployés.",
        "metadata": "Configuration serveur et fiches lisibles par machine décrivant le site aux robots d'indexation et aux modèles de langage."
      },
      "editions": {
        "eyebrow": "Éditions",
        "title": "Lignée des éditions",
        "note": {
          "current": "Édition signée en cours",
          "earlier": "Édition signée antérieure"
        }
      },
      "files": {
        "403_html_txt": {
          "description": "Page interdite."
        },
        "404_html_txt": {
          "description": "Page introuvable."
        },
        "500_html_txt": {
          "description": "Page d'erreur serveur."
        },
        "ai_usage_txt_txt": {
          "description": "Déclaration sur l'usage de l'IA et politique pour le site."
        },
        "app_enhance_js_txt": {
          "description": "Couche d'amélioration progressive. Interactions non essentielles, gracieusement optionnelles."
        },
        "app_js_txt": {
          "description": "Script d'exécution écrit à la source. Navigation, changement de langue, câblage du tiroir de citation."
        },
        "assertion_txt_txt": {
          "description": "Affirmation d'auteur. Déclaration d'auteur et d'intention d'intégrité."
        },
        "attestations_json_txt": {
          "description": "Attestations publiques. Revendications vérifiables sur le site."
        },
        "changelog_txt_txt": {
          "description": "Journal des éditions. Révisions notables du site public."
        },
        "cite_js_txt": {
          "description": "Tiroir de citation et vérification. Expose l'URL canonique, l'empreinte de la page et la signature."
        },
        "fonts_full_css_txt": {
          "description": "Déclarations de polices web. Sous-ensembles, formats et fallbacks."
        },
        "htaccess_txt": {
          "description": "Configuration Apache. Vérifiée contre toute fuite avant publication."
        },
        "humans_txt_txt": {
          "description": "Crédits et notes pour les personnes derrière le site."
        },
        "i18n_core_js_txt": {
          "description": "Source éditoriale des traductions. Les cinq langues réunies dans un JSON unique."
        },
        "i18n_de_js_txt": {
          "description": "Traductions allemandes."
        },
        "i18n_es_js_txt": {
          "description": "Traductions espagnoles."
        },
        "i18n_it_js_txt": {
          "description": "Traductions italiennes. Octets compacts déployés."
        },
        "index_html_txt": {
          "description": "Page d'accueil. Le point d'entrée éditorial."
        },
        "integrity_index_html_txt": {
          "description": "Vue d'ensemble de l'intégrité. Le manifeste signé, la clé et l'autorité de publication."
        },
        "integrity_releases_2026_05_09_index_html_txt": {
          "description": "Fiche figée de la page pour l'édition 2026-05-09."
        },
        "integrity_releases_archive_css_txt": {
          "description": "Feuille de style utilisée dans les archives d'éditions figées. Conservée auprès de ses fiches d'édition."
        },
        "integrity_releases_index_html_txt": {
          "description": "Index des éditions. La liste des éditions signées."
        },
        "llms_txt_txt": {
          "description": "Indications lisibles par machine pour les modèles de langage et systèmes d'IA."
        },
        "maintenance_html_txt": {
          "description": "Avis de maintenance. Utilisé lors d'une interruption planifiée."
        },
        "manifest_webmanifest_txt": {
          "description": "Manifeste d'application web. Métadonnées de la surface installable."
        },
        "pgp_txt_txt": {
          "description": "Déclaration PGP. Empreinte de la clé de signature et son usage."
        },
        "print_css_txt": {
          "description": "Feuille de style d'impression. Règles de mise en page pour le rendu papier."
        },
        "privacy_index_html_txt": {
          "description": "Déclaration de confidentialité. Ce qui est collecté, conservé et partagé."
        },
        "readme_txt": {
          "description": "Note d'orientation pour l'arborescence source. Même texte livré à la racine de chaque archive d'édition."
        },
        "robots_txt_txt": {
          "description": "Politique d'accès des robots et intention d'indexation publique."
        },
        "security_acknowledgments_index_html_txt": {
          "description": "Remerciements pour les signalements de sécurité publics."
        },
        "security_index_html_txt": {
          "description": "Posture de sécurité. Architecture, en-têtes et voie de signalement."
        },
        "site_metadata_json_txt": {
          "description": "Métadonnées du site. Édition, compilation, version des ressources."
        },
        "sitemap_xml_sha256_txt": {
          "description": "Miroir source de la somme de contrôle SHA-256 pour sitemap.xml."
        },
        "sitemap_xml_txt": {
          "description": "Plan du site public. Inventaire d'URL pour les robots d'indexation."
        },
        "source_manifest_json_txt": {
          "description": "Manifeste de l'arborescence /source/ elle-même. Chaque fichier miroir avec son empreinte."
        },
        "statement_txt_txt": {
          "description": "Déclaration éditoriale. Les principes d'écriture du site."
        },
        "styles_css_txt": {
          "description": "Feuille de style écrite à la source. Miroir de la source, non des octets minifiés déployés."
        },
        "sw_cache_manifest_json_txt": {
          "description": "Manifeste de cache du service worker. Fichiers épinglés pour usage hors ligne."
        },
        "sw_js_txt": {
          "description": "Service worker. Cache hors ligne du site public."
        },
        "sw_reset_index_html_txt": {
          "description": "Réinitialisation du service worker. Vide le cache hors ligne."
        },
        "verify_index_html_txt": {
          "description": "Interface de vérification. Contrôles d'empreinte au niveau de la page."
        },
        "verify_verify_js_txt": {
          "description": "Logique de vérification. Rend une fiche de page à partir de la carte de vérification."
        },
        "well_known_attribution_txt_txt": {
          "description": "Attribution d'auteur. Nomme la partie responsable du site public."
        },
        "well_known_build_json_txt": {
          "description": "Fiche de compilation. Données de reproductibilité de l'édition courante."
        },
        "well_known_person_json_txt": {
          "description": "Identité lisible par machine en JSON-LD. La référence utilisée par la découverte, la fédération et la vérification.",
          "role": "Fiche d'identité canonique"
        },
        "well_known_pgp_key_asc_txt": {
          "description": "Clé publique de signature en ASCII-armor. L'identité de signature de l'auteur."
        },
        "well_known_publication_json_txt": {
          "description": "Fiche de publication. Décrit le site comme un ouvrage éditorial auto-géré."
        },
        "well_known_security_txt_txt": {
          "description": "Politique de divulgation coordonnée. Contact et périmètre standard /.well-known/security.txt.",
          "role": "Surface de confiance publique"
        },
        "well_known_webfinger_txt": {
          "description": "Surface de découverte WebFinger. Résout l'identité à travers les protocoles fédérés.",
          "role": "Découverte d'identité"
        }
      }
    },
    "verify": {
      "kicker": "Vérification",
      "page_kicker": "Page de vérification",
      "title": "Vérifier cette page",
      "lede": "Une voie publique pour contrôler la source, l’empreinte, la signature et l’identité canonique.",
      "noscript_fallback": "JavaScript est nécessaire pour sélectionner et afficher une fiche de page ici. Les miroirs source, le manifeste signé et les archives d’édition restent accessibles via <a href=\"/source/\">Source</a> et <a href=\"/integrity/\">Intégrité</a>.",
      "meta": "Édition 2026-05-19 · trentpower.fr/verify/",
      "doc_title": "Trent Power - Fiche de vérification",
      "action": {
        "copy_canonical": "Copier l’URL",
        "copy_hash": "Copier l’empreinte",
        "copy_command": "Copier la commande de vérification",
        "open_source": "Ouvrir le miroir source",
        "open_manifest": "Ouvrir l’entrée du manifeste",
        "open_signature": "Ouvrir la signature",
        "open_key": "Ouvrir la clé publique",
        "copied": "Copié",
        "copy_manifest_command": "Copier la commande manifeste",
        "copy_source_command": "Copier la commande source",
        "copy_fingerprint": "Copier l'empreinte",
        "view_source_mirror": "Voir le miroir source",
        "view_source_code": "Voir le code source",
        "open_source_mirror": "Ouvrir le miroir"
      },
      "command": {
        "manifest_title": "Vérifier le manifeste signé",
        "source_title": "Vérifier le miroir source",
        "note": "Le manifeste signé valide l’ensemble des fichiers publiés. La seconde commande calcule l’empreinte du miroir source pour la comparer au SHA-256 attendu ci-dessus."
      },
      "unknown": {
        "title": "Route absente de la carte de vérification",
        "body": "Cette route ne figure pas dans la carte de vérification publique. Vous pouvez tout de même consulter le manifeste public, la vue source et les versions signées.",
        "action": {
          "source": "Source",
          "manifest": "Manifeste d'intégrité",
          "releases": "Archive des éditions"
        }
      },
      "status": {
        "found": "Présent dans le manifeste signé",
        "missing": "Absent du manifeste public actuel"
      },
      "title_default": "<span class=\"hero-line\">Vérifier la page · code, taille &amp; signature</span>",
      "title_prefix": "Vérifier",
      "lede_v2": "Contrôler une page publiée par rapport à son emplacement canonique, son miroir source, son empreinte de page et l'archive de version signée.",
      "local": {
        "heading": "Vérifier localement",
        "manifest_label": "Vérifier le manifeste signé",
        "manifest_desc": "Vérifie que /integrity.json a été signé avec la clé publique publiée.",
        "mirror_label": "Vérifier le miroir de cette page",
        "mirror_desc": "Calcule l'empreinte du miroir source pour la comparer à la valeur attendue ci-dessus.",
        "intro": "Effectuez deux contrôles locaux : vérifier le manifeste signé, puis comparer le miroir source de cette page à l'empreinte attendue.",
        "subheading_manifest": "Vérifier le manifeste signé",
        "subheading_mirror": "Vérifier le miroir source",
        "closing": "Le manifeste signé authentifie l'ensemble des fichiers publiés. La seconde commande calcule l'empreinte du miroir de cette page pour la comparer à l'empreinte ci-dessus."
      },
      "thispage": {
        "heading": "Cette page",
        "row": {
          "title": "Titre de la page",
          "canonical": "URL canonique",
          "route": "Route",
          "source": "Miroir source",
          "file_type": "Type de fichier",
          "file_size": "Taille",
          "manifest_status": "Statut dans le manifeste",
          "validated": "Dernière vérification",
          "sha256": "Empreinte de la page",
          "release": "Archive de version",
          "file": "Fichier",
          "citation": "Citation",
          "route_prefix": "Route"
        },
        "status": {
          "found_manifest": "Présent dans le manifeste signé",
          "source_available": "Source disponible",
          "release_archived": "Version archivée",
          "short": {
            "signed": "Signé",
            "source": "Miroir",
            "archived": "Archives"
          }
        },
        "kicker": "Document de page",
        "group": {
          "citation": "Citation",
          "location": "Emplacement canonique",
          "evidence": "Miroir source",
          "fingerprint": "Empreinte de page",
          "archive": "Archive de version"
        },
        "validated_prefix": "Vérifié"
      },
      "selected": {
        "manifest": "Manifeste d'intégrité",
        "signature": "Signature détachée",
        "public_key": "Clé publique"
      },
      "general": {
        "source": "Visualiseur source",
        "releases": "Archives des éditions"
      },
      "chooser": {
        "heading": "Documents liés",
        "label": {
          "home": "Accueil",
          "privacy": "Confidentialité",
          "security": "Sécurité",
          "integrity": "Intégrité",
          "verify": "Vérifier",
          "source": "Source",
          "releases": "Éditions"
        }
      }
    },
    "linkdesc": {
      "home": "Retour à l’accueil",
      "privacy": "Découvrir comment ce site évite les analytiques, cookies, profilage, traceurs et services tiers",
      "cite": "Ouvrir les détails de citation et de vérification de cette page",
      "integrity": "Ouvrir le registre d’intégrité public — empreintes, signatures et vérification des éditions",
      "linkedin": "Ouvrir le profil LinkedIn de Trent Power dans un nouvel onglet, sans transmettre l’URL d’origine",
      "email": "Contacter Trent Power par e-mail",
      "source": "Consulter le miroir source public du site, annoté et numéroté",
      "verify": "Vérifier la page courante contre le registre d’intégrité publié",
      "now": "Lire ce sur quoi Trent Power se concentre actuellement",
      "theme_light": "Passer à l’apparence claire",
      "theme_auto": "Suivre les réglages d’apparence du système",
      "theme_dark": "Passer à l’apparence sombre",
      "lang_en": "Read this site in English",
      "lang_fr": "Lire ce site en français",
      "verify_locally": "Lire les instructions pour vérifier la publication localement en ligne de commande",
      "manifest": "Télécharger le manifeste d’intégrité signé (JSON listant chaque fichier public et son SHA-256)",
      "signature": "Télécharger la signature PGP détachée du manifeste d’intégrité",
      "checksums": "Télécharger les empreintes SHA-256 des archives de publication signées",
      "public_key": "Télécharger la clé PGP publique utilisée pour signer les publications",
      "zip": "Télécharger l’archive source au format ZIP",
      "targz": "Télécharger l’archive source au format TAR.GZ",
      "security_threat_model": "Lire le modèle de sécurité et l’analyse de menace de ce site",
      "security_contact": "Lire la politique de divulgation security.txt de ce site"
    },
    "copy": {
      "command": "Copier la commande",
      "copied": "Copié",
      "failed": "Échec de copie"
    },
    "trust_routes": {
      "heading": "Routes de confiance",
      "privacy_label": "Confidentialité",
      "privacy_desc": "Ce que ce site ne collecte pas",
      "security_label": "Sécurité",
      "security_desc": "Comment le site est protégé",
      "integrity_label": "Intégrité",
      "integrity_desc": "Comment les éditions sont signées",
      "verify_label": "Vérifier",
      "verify_desc": "Comment une page peut être contrôlée",
      "source_label": "Source",
      "source_desc": "Miroirs lisibles des fichiers publics",
      "releases_label": "Éditions",
      "releases_desc": "Instantanés signés et figés"
    },
    "sw_reset": {
      "page_title": "Réinitialisation du Service Worker",
      "lede": "Efface le cache hors-ligne local de cet appareil uniquement. La publication en ligne et le serveur ne sont pas affectés.",
      "secondary": "Si une édition récente ne s'affiche pas correctement, cet utilitaire rafraîchit le cache local de la publication.",
      "local_marker": "APPAREIL LOCAL UNIQUEMENT",
      "status_label": "État du cache local",
      "status_initial": "Lecture de l'état local…",
      "button": "Réinitialiser le cache hors-ligne local",
      "button_done": "Réinitialisation effectuée",
      "edition_label": "Édition en cache",
      "edition_none": "Aucune édition en cache détectée",
      "clears_heading": "Efface",
      "clear_sw": "Enregistrements du Service Worker",
      "clear_caches": "Entrées du cache hors-ligne",
      "clear_pref": "Préférence de langue enregistrée",
      "preserves_heading": "N'efface pas",
      "preserve_history": "Historique du navigateur",
      "preserve_downloads": "Téléchargements",
      "preserve_others": "Autres sites",
      "preserve_server": "Contenu du serveur",
      "link_home": "Accueil",
      "link_reload": "Recharger l'édition actuelle",
      "footnote": "L'état hors-ligne est conservé localement via les API Cache Storage et Service Worker du navigateur.",
      "detected_label": "Détecté",
      "scope_heading": "Portée",
      "api_label": "API",
      "print": {
        "kicker": "Récupération hors-ligne",
        "title": "Réinitialisation du Service Worker",
        "lede": "Utilitaire de récupération pour effacer l’état hors-ligne en cache et actualiser la version publique signée courante.",
        "meta": "Édition 2026-05-19 · trentpower.fr/sw-reset/",
        "doc_title": "Trent Power - Réinitialisation du Service Worker",
        "card": {
          "01": {
            "label": "01 Suppression du cache",
            "title": "Suppression du cache",
            "body": "Désenregistre le Service Worker et supprime chaque cache nommé de cette origine."
          },
          "02": {
            "label": "02 Récupération hors-ligne",
            "title": "Récupération hors-ligne",
            "body": "Utilisé lorsqu’une copie hors-ligne périmée sert une édition signée obsolète."
          },
          "03": {
            "label": "03 Actualisation de version signée",
            "title": "Actualisation de version signée",
            "body": "Le chargement suivant récupère HTML, CSS, JS, polices et fichiers d’intégrité à neuf."
          },
          "04": {
            "label": "04 Compatibilité navigateur",
            "title": "Compatibilité navigateur",
            "body": "Fonctionne dans tout navigateur prenant en charge les Service Workers et l’API Cache."
          },
          "05": {
            "label": "05 Continuité de vérification",
            "title": "Continuité de vérification",
            "body": "Manifeste et signature inchangés - seules les copies en cache sont évincées."
          },
          "06": {
            "label": "06 Remise à zéro locale",
            "title": "Remise à zéro locale",
            "body": "Efface la préférence de langue en cache. La préférence de thème est préservée."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/sw-reset/"
        },
        "qr": {
          "label": "trentpower.fr/sw-reset/"
        }
      },
      "card_state": "Cache hors-ligne",
      "card_state_cleared": "Cache hors-ligne effacé"
    },
    "verify_intro": {
      "panel_label": "Édition actuelle",
      "edition": "Édition",
      "signing_key": "Clé de signature",
      "manifest": "Manifeste signé",
      "signature": "Signature détachée",
      "public_key": "Clé publique",
      "archive": "Archive d'édition"
    },
    "verify_locally": {
      "page_kicker": "Vérification locale",
      "page_title": "<span class=\"hero-line\">À votre</span><span class=\"hero-line\">terminal !</span>",
      "body_intro": "Notes de vérification détachées pour le manifeste d'intégrité signé. Exécutez le contrôle dans un trousseau temporaire afin que la clé publique de signature n'entre pas dans votre trousseau principal.",
      "body_close": "La commande importe la clé publique dans un trousseau jetable, vérifie le manifeste signé et supprime les fichiers de travail. Aucun état ne subsiste sur la machine ensuite.",
      "print": {
        "kicker": "Vérification d’intégrité",
        "title": "Vérifier localement",
        "lede": "Notes de vérification détachée pour contrôler indépendamment le manifeste d’intégrité signé avec la clé publique publiée.",
        "meta": "Édition 2026-05-19 · trentpower.fr/integrity/verify-locally/",
        "doc_title": "Trent Power - Vérifier localement",
        "card": {
          "01": {
            "label": "01 Trousseau temporaire",
            "title": "Trousseau temporaire",
            "body": "Utilisez un GNUPGHOME temporaire pour ne pas toucher à votre trousseau principal."
          },
          "02": {
            "label": "02 Importer la clé publique",
            "title": "Importer la clé publique",
            "body": "curl /.well-known/pgp-key.asc · gpg --import pgp-key.asc."
          },
          "03": {
            "label": "03 Vérifier la signature",
            "title": "Vérifier la signature",
            "body": "gpg --verify integrity.json.sig integrity.json - attendre Good signature."
          },
          "04": {
            "label": "04 Contrôler le manifeste",
            "title": "Contrôler le manifeste",
            "body": "/integrity.json liste chaque fichier public avec son empreinte SHA-256."
          },
          "05": {
            "label": "05 Comparer les sommes",
            "title": "Comparer les sommes",
            "body": "Re-hachez un fichier et comparez avec l’entrée du manifeste."
          },
          "06": {
            "label": "06 Notes de reproductibilité",
            "title": "Notes de reproductibilité",
            "body": "Chaque édition signée est figée dans /integrity/releases/. Aucun actif mutable."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-19 · trentpower.fr/integrity/verify-locally/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/verify-locally/"
        }
      }
    },
    "source_reader": {
      "title": "Lecteur source",
      "loading": "Chargement du source…",
      "action": {
        "canonical": "Canonique",
        "verify": "Vérifier",
        "plain_text": "Brut",
        "copy_code": "Copier le code",
        "wrap_lines": "Retour à la ligne",
        "unwrap_lines": "Sans retour à la ligne",
        "back_to_top": "Haut",
        "copied": "Copié",
        "view_source": "Source",
        "view_annotated": "Annoté",
        "view_rendered_page": "Voir la page rendue",
        "reading_mode": "Mode de lecture",
        "top": "Haut",
        "copy": "Copier",
        "copy_link": "Copier le lien",
        "clear": "Effacer",
        "count_line_one": "1 ligne",
        "count_lines_many": "{n} lignes",
        "line_selected": "Ligne {n} sélectionnée",
        "range_selected": "Lignes {start} à {end} sélectionnées",
        "selection_cleared": "Sélection effacée",
        "lines_copied": "{n} lignes copiées",
        "link_copied": "Lien copié",
        "link_copied_normalised": "Lien copié — normalisé aux lignes {start} à {end}",
        "copy_failed": "Copie indisponible"
      },
      "meta": {
        "validated": "Vérifié",
        "part_of": "Systèmes liés :",
        "document_map": "Plan du document",
        "end_of_source": "Fin du miroir source",
        "intent": "Ce lecteur présente les miroirs publics du code source, avec annotations structurelles et références de publication signées."
      },
      "integrity": {
        "canonical": "Fichier canonique",
        "edition": "Édition",
        "sha256": "SHA-256",
        "signed_release": "Publication signée"
      },
      "map_label": {
        "head": "Tête",
        "identity": "Identité",
        "discovery": "Découvrabilité",
        "social_preview": "Aperçu social",
        "assets": "Ressources",
        "structured_data": "Données structurées",
        "header": "En-tête",
        "main": "Contenu principal",
        "footer": "Pied de page",
        "tokens": "Jetons",
        "fonts": "Polices",
        "base": "Base",
        "layout": "Mise en page",
        "components": "Composants",
        "responsive": "Responsive",
        "print": "Impression",
        "state": "État",
        "i18n": "i18n",
        "events": "Événements",
        "modals": "Modales",
        "copy": "Copie",
        "verification": "Vérification",
        "init": "Initialisation",
        "policy": "Politique",
        "records": "Enregistrements"
      },
      "mode": {
        "label": "Mode de lecture",
        "source": "Source",
        "annotated": "Annoté",
        "raw": "Brut"
      },
      "end": {
        "title": "Fin du miroir source",
        "edition": "Édition",
        "sha256": "SHA-256",
        "signed_release": "Publication signée"
      },
      "kind": {
        "html": "Langage de balisage hypertexte",
        "css": "Feuilles de style en cascade",
        "js": "JavaScript",
        "json": "Notation d'objet JavaScript",
        "xml": "Langage de balisage extensible",
        "text": "Texte brut",
        "apache": "Configuration Apache",
        "sig": "Signature PGP détachée",
        "asc": "Clé PGP en ASCII-armor"
      },
      "gloss": {
        "foundations": "encodage des caractères, fenêtre d'affichage, palette.",
        "head": "en-tête du document — métadonnées, aucun contenu rendu.",
        "identity": "auteur, nom de l'application, liens d'attribution.",
        "document": "titre de la page, description, URL canonique.",
        "discovery": "politique d'indexation et de référent.",
        "social": "métadonnées open graph et twitter card.",
        "assets": "feuilles de style, scripts, icônes, manifeste.",
        "icons": "icônes de plateforme et illustration d'écran d'accueil.",
        "structured": "schéma json-ld, identité lisible par machine.",
        "header": "en-tête du site — sigle et navigation principale.",
        "footer": "colophon, sélecteur de langue, actions de pied de page.",
        "script": "logique applicative du site.",
        "tokens": "jetons de design — couleurs, typographie, espacements.",
        "fonts": "déclarations @font-face et fichiers de police.",
        "base": "réinitialisation et typographie des éléments de base.",
        "layout": "grammaire de mise en page au niveau de la page.",
        "components": "styles de composants réutilisables.",
        "responsive": "ajustements selon la fenêtre d'affichage.",
        "print": "règles de feuille de style pour l'impression.",
        "state": "état applicatif et variables d'exécution.",
        "i18n": "résolution des traductions et changement de langue.",
        "events": "écouteurs d'événements et câblage des interactions.",
        "modals": "surfaces superposées, dialogues, pièges de focus.",
        "copy": "interactions avec le presse-papiers.",
        "verification": "manifeste signé et références cryptographiques.",
        "records": "fiches éditoriales.",
        "init": "séquence de démarrage — exécutée une fois au chargement.",
        "policy": "politiques déclarées du site."
      }
    },
    "release_archive": {
      "print": {
        "kicker": "Archive de version signée",
        "title": "Édition 2026-05-17",
        "lede": "Archive publique de l’édition signée de mai 2026 : manifestes, sommes de contrôle, signatures détachées et archives sources reproductibles.",
        "meta": "Édition 2026-05-17 · trentpower.fr/integrity/releases/2026-05-09/",
        "doc_title": "Trent Power - Archive 2026-05-09",
        "card": {
          "01": {
            "label": "01 Manifeste",
            "title": "Manifeste",
            "body": "/integrity.json - empreintes SHA-256 de chaque fichier public au moment de l’édition."
          },
          "02": {
            "label": "02 Signature détachée",
            "title": "Signature détachée",
            "body": "/integrity.json.sig - signature PGP détachée du manifeste."
          },
          "03": {
            "label": "03 Sommes d’archive",
            "title": "Sommes d’archive",
            "body": "/integrity/releases/2026-05-09/SHA256SUMS - sommes pour ZIP et TAR.GZ."
          },
          "04": {
            "label": "04 Archive source",
            "title": "Archive source",
            "body": "trentpower-fr-2026-05-09.zip · trentpower-fr-2026-05-09.tar.gz - déterministes."
          },
          "05": {
            "label": "05 Statut de vérification",
            "title": "Statut de vérification",
            "body": "gpg --verify integrity.json.sig integrity.json contre la clé publique."
          },
          "06": {
            "label": "06 Empreinte de version",
            "title": "Empreinte de version",
            "body": "Signée par A729 591B 450D 3F59 3694 98BD 8299 1F25 04AE 0263."
          }
        },
        "footer": {
          "proof": "Privé · Statique · Signé · Sans suivi",
          "edition": "Édition 2026-05-17 · trentpower.fr/integrity/releases/2026-05-09/"
        },
        "qr": {
          "label": "trentpower.fr/integrity/releases/2026-05-09/"
        }
      }
    }
  }
}
