From 31ed5b8a77ee04284a681e3c1b9dd3810a43f102 Mon Sep 17 00:00:00 2001 From: TheFlow Date: Sun, 19 Oct 2025 14:44:14 +1300 Subject: [PATCH] feat(i18n): add footer and privacy page translations (en/de/fr) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SUMMARY: Implemented complete internationalization for footer component and privacy page across English, German, and French languages. CHANGES: 1. Privacy Page Translations (3 files): - Created locales/en/privacy.json (baseline) - Created locales/de/privacy.json (German - Datenschutzerklärung) - Created locales/fr/privacy.json (French - Politique de confidentialité) - All 11 sections + Te Tiriti fully translated 2. Footer i18n Enhancement: - Rewrote footer.js with data-i18n attributes - Added languageChanged event listener for dynamic updates - Expanded homepage.json footer translations (en/de/fr) - Footer now auto-translates with language selection 3. Privacy Page Integration: - Added data-page="privacy" attribute to HTML - Added data-i18n to all content sections (header + 11 sections) - Integrated with existing language-selector.js component - Updated i18n-simple.js pageMap to recognize privacy page 4. Bug Fix: - Fixed SessionStart hook error in .claude/settings.local.json - Changed from $CLAUDE_PROJECT_DIR to absolute path - Hook now runs successfully at session start BENEFITS: - Better UX for international users (German, French speakers) - Legal compliance (privacy policy in native languages) - Consistent language experience across entire site - Leverages existing language persistence (localStorage) INTEGRATION: - Works with existing language-selector.js (flag icons: 🇬🇧 🇩🇪 🇫🇷) - Language preference persists across all pages - Zero duplication - integrates with existing i18n system WCAG COMPLIANCE: ✓ Maintains semantic HTML structure ✓ Preserves WCAG AA contrast ratios ✓ All links remain accessible and distinguishable ✓ German and French translations maintain accessibility standards FRAMEWORK COMPLIANCE: ✓ Zero CSP violations - uses data-i18n attributes only ✓ No inline scripts or styles ✓ Follows existing Tractatus i18n patterns 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude --- public/js/components/footer.js | 216 ++++++++++++++++++++------------ public/js/i18n-simple.js | 4 +- public/locales/de/homepage.json | 31 ++++- public/locales/de/privacy.json | 137 ++++++++++++++++++++ public/locales/en/homepage.json | 31 ++++- public/locales/en/privacy.json | 137 ++++++++++++++++++++ public/locales/fr/homepage.json | 31 ++++- public/locales/fr/privacy.json | 137 ++++++++++++++++++++ public/privacy.html | 172 ++++++++++++------------- 9 files changed, 721 insertions(+), 175 deletions(-) create mode 100644 public/locales/de/privacy.json create mode 100644 public/locales/en/privacy.json create mode 100644 public/locales/fr/privacy.json diff --git a/public/js/components/footer.js b/public/js/components/footer.js index 3a80b097..a7610d8d 100644 --- a/public/js/components/footer.js +++ b/public/js/components/footer.js @@ -1,95 +1,155 @@ /** - * Footer Component - * Shared footer for all Tractatus pages + * Footer Component - i18n-enabled + * Shared footer for all Tractatus pages with language persistence */ (function() { 'use strict'; - // Create footer HTML - const footerHTML = ` -
-
+ class TractatusFooter { + constructor() { + this.init(); + } - -
+ init() { + // Wait for I18n to be ready before rendering + if (window.I18n && window.I18n.translations && Object.keys(window.I18n.translations).length > 0) { + this.render(); + this.attachEventListeners(); + } else { + // If I18n not ready, wait for it + const checkI18n = setInterval(() => { + if (window.I18n && window.I18n.translations && Object.keys(window.I18n.translations).length > 0) { + clearInterval(checkI18n); + this.render(); + this.attachEventListeners(); + } + }, 100); + + // Fallback timeout - render without i18n after 2 seconds + setTimeout(() => { + clearInterval(checkI18n); + if (!document.querySelector('footer[role="contentinfo"]')) { + this.render(); + this.attachEventListeners(); + } + }, 2000); + } + } + + render() { + const currentYear = new Date().getFullYear(); + + // Create footer HTML with data-i18n attributes + const footerHTML = ` +
+
+ + +
+ + +
+

Tractatus Framework

+

+ Architectural constraints for AI safety that preserve human agency through structural, not aspirational, guarantees. +

+
+ + +
+

Documentation

+ +
+ + + + + +
+

Legal

+ +
+ +
+ + +
+ + +
+

+ Te Tiriti o Waitangi: + We acknowledge Te Tiriti o Waitangi and our commitment to partnership, protection, and participation. This project respects Māori data sovereignty (rangatiratanga) and collective guardianship (kaitiakitanga). +

+
+ + +
+

+ © ${currentYear} John G Stroh. Licensed under Apache 2.0. +

+

+ Made in Aotearoa New Zealand 🇳🇿 +

+
+ +
- -
-

Tractatus Framework

-

- Architectural constraints for AI safety that preserve human agency through structural, not aspirational, guarantees. -

+
+ `; - -
-

Documentation

- -
+ // Insert footer at end of body + const existingFooter = document.querySelector('footer[role="contentinfo"]'); + if (existingFooter) { + existingFooter.outerHTML = footerHTML; + } else if (document.body) { + document.body.insertAdjacentHTML('beforeend', footerHTML); + } else { + // If body not ready, wait for DOM + document.addEventListener('DOMContentLoaded', () => { + document.body.insertAdjacentHTML('beforeend', footerHTML); + }); + } - - + // Apply translations if I18n is available + if (window.I18n && window.I18n.applyTranslations) { + window.I18n.applyTranslations(); + } + } - -
-

Legal

- -
+ attachEventListeners() { + // Listen for language changes and re-render footer + window.addEventListener('languageChanged', (event) => { + console.log('[Footer] Language changed to:', event.detail.language); + this.render(); + }); + } + } -
- - -
- - -
-

- Te Tiriti o Waitangi: We acknowledge Te Tiriti o Waitangi and our commitment to partnership, protection, and participation. This project respects Māori data sovereignty (rangatiratanga) and collective guardianship (kaitiakitanga). -

-
- - -
-

- © ${new Date().getFullYear()} John G Stroh. Licensed under Apache 2.0. -

-

- Made in Aotearoa New Zealand 🇳🇿 -

-
- -
- -
-
- `; - - // Insert footer at end of body - if (document.body) { - document.body.insertAdjacentHTML('beforeend', footerHTML); + // Auto-initialize when DOM is ready + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', () => new TractatusFooter()); } else { - // If body not ready, wait for DOM - document.addEventListener('DOMContentLoaded', function() { - document.body.insertAdjacentHTML('beforeend', footerHTML); - }); + new TractatusFooter(); } })(); diff --git a/public/js/i18n-simple.js b/public/js/i18n-simple.js index 69046e13..68347a82 100644 --- a/public/js/i18n-simple.js +++ b/public/js/i18n-simple.js @@ -64,7 +64,9 @@ const I18n = { '/faq.html': 'faq', '/koha.html': 'koha', '/koha/transparency.html': 'transparency', - '/koha/transparency': 'transparency' + '/koha/transparency': 'transparency', + '/privacy.html': 'privacy', + '/privacy': 'privacy' }; return pageMap[path] || 'homepage'; diff --git a/public/locales/de/homepage.json b/public/locales/de/homepage.json index 3aec93d1..803cffc1 100644 --- a/public/locales/de/homepage.json +++ b/public/locales/de/homepage.json @@ -98,9 +98,32 @@ } }, "footer": { - "description": "Referenzimplementierung architektonischer KI-Sicherheitsbeschränkungen—strukturelle Governance validiert in Einzelprojektbereitstellung.", - "tagline": "Sicherheit durch Struktur, nicht durch Aspiration", - "built_with": "Entwickelt mit", - "acknowledgment": "Dieses Framework erkennt Te Tiriti o Waitangi und indigene Führungsschaft in digitaler Souveränität an. Entwickelt mit Respekt für CARE-Prinzipien und Māori-Datensouveränität." + "about_heading": "Tractatus Framework", + "about_text": "Architektonische Beschränkungen für KI-Sicherheit, die menschliche Entscheidungsfreiheit durch strukturelle, nicht aspirationale, Garantien wahren.", + "documentation_heading": "Dokumentation", + "documentation_links": { + "framework_docs": "Framework-Dokumentation", + "about": "Über uns", + "core_values": "Grundwerte", + "interactive_demo": "Interaktive Demo" + }, + "support_heading": "Unterstützung", + "support_links": { + "koha": "Unterstützung (Koha)", + "transparency": "Transparenz", + "media_inquiries": "Medienanfragen", + "submit_case": "Fallstudie einreichen" + }, + "legal_heading": "Rechtliches", + "legal_links": { + "privacy": "Datenschutzerklärung", + "contact": "Kontakt", + "github": "GitHub" + }, + "te_tiriti_label": "Te Tiriti o Waitangi:", + "te_tiriti_text": "Wir erkennen Te Tiriti o Waitangi und unser Bekenntnis zu Partnerschaft, Schutz und Teilhabe an. Dieses Projekt respektiert die Māori-Datensouveränität (rangatiratanga) und kollektive Vormundschaft (kaitiakitanga).", + "copyright": "John G Stroh. Lizenziert unter", + "license": "Apache 2.0", + "location": "Hergestellt in Aotearoa Neuseeland 🇳🇿" } } diff --git a/public/locales/de/privacy.json b/public/locales/de/privacy.json new file mode 100644 index 00000000..d6ba8b59 --- /dev/null +++ b/public/locales/de/privacy.json @@ -0,0 +1,137 @@ +{ + "meta": { + "title": "Datenschutzerklärung | Tractatus AI-Sicherheits-Framework", + "description": "Datenschutzerklärung für das Tractatus AI-Sicherheits-Framework. Erfahren Sie, wie wir Ihre Daten sammeln, verwenden und schützen." + }, + "header": { + "title": "Datenschutzerklärung", + "last_updated": "Zuletzt aktualisiert: 8. Oktober 2025" + }, + "privacy_first": { + "badge": "Datenschutz zuerst:", + "text": "Das Tractatus Framework basiert auf den Prinzipien der menschlichen Selbstbestimmung und Transparenz. Wir sammeln minimale Daten, verkaufen niemals Ihre Informationen und geben Ihnen die volle Kontrolle über Ihre Daten." + }, + "section_1": { + "title": "1. Informationen, die wir sammeln", + "subtitle_1_1": "1.1 Von Ihnen bereitgestellte Informationen", + "items_1_1": [ + "Spenden (Koha): Name (optional), E-Mail-Adresse (erforderlich für Quittung), Land (optional), Zahlungsinformationen (von Stripe verarbeitet, nicht von uns gespeichert)", + "Medienanfragen: Name, E-Mail, Organisation, Anfragedetails", + "Falleinreichungen: Kontaktinformationen, Fallbeschreibung, unterstützende Nachweise", + "Kontoerstellung (falls zutreffend): E-Mail, Passwort (gehasht), optionale Profilinformationen" + ], + "subtitle_1_2": "1.2 Automatisch erfasste Informationen", + "items_1_2": [ + "Analytik: Seitenaufrufe, verweisende Websites, Browsertyp, Gerätetyp, allgemeiner Standort (Länderebene)", + "Cookies: Sitzungsverwaltung, Präferenzen (z. B. ausgewählte Währung), Analytik", + "Server-Protokolle: IP-Adressen, Zugriffszeiten, aufgerufene Seiten (90 Tage für Sicherheit aufbewahrt)" + ], + "subtitle_1_3": "1.3 Währungsauswahl", + "text_1_3": "Wenn Sie eine Währung für Spenden auswählen, können wir Ihren ungefähren Standort erkennen, um eine geeignete Währung vorzuschlagen. Diese Standortdaten sind:", + "items_1_3": [ + "Von Ihrer IP-Adresse abgeleitet (nur Länderebene, keine präzise Geolokalisierung)", + "Nur zur Vorauswahl einer Währung im Spendenformular verwendet", + "Nicht dauerhaft gespeichert", + "Kann durch manuelle Währungsauswahl überschrieben werden" + ] + }, + "section_2": { + "title": "2. Wie wir Ihre Informationen verwenden", + "items": [ + "Spenden verarbeiten: E-Mail-Quittungen, öffentliche Unterstützer anerkennen (nur opt-in), Transparenz-Dashboard pflegen", + "Auf Anfragen antworten: Medienfragen beantworten, Falleinreichungen prüfen, Support bieten", + "Dienste verbessern: Nutzungsmuster analysieren, Fehler beheben, Benutzererfahrung verbessern", + "Sicherheit: Betrug verhindern, Missbrauch erkennen, vor Angriffen schützen", + "Rechtliche Einhaltung: Geltende Gesetze einhalten, auf rechtliche Anfragen reagieren", + "Kommunikation: Quittungen senden, wichtige Updates (wir senden niemals Marketing-E-Mails ohne ausdrückliche Zustimmung)" + ] + }, + "section_3": { + "title": "3. Datenweitergabe und Offenlegung", + "subtitle_share": "Wir teilen Ihre Daten mit:", + "share_items": [ + "Stripe: Zahlungsabwicklung für Spenden (unterliegt der Datenschutzerklärung von Stripe)", + "MongoDB Atlas: Datenbank-Hosting (unterliegt der Datenschutzerklärung von MongoDB)", + "E-Mail-Dienstanbieter: Zum Versenden von Quittungen und Kommunikation" + ], + "subtitle_never": "Wir werden NIEMALS:", + "never_items": [ + "❌ Ihre persönlichen Daten verkaufen", + "❌ Ihre Daten mit Werbetreibenden teilen", + "❌ Ihre Daten für Tracking auf anderen Websites verwenden", + "❌ Spenderinformationen ohne ausdrückliche Zustimmung öffentlich teilen" + ], + "subtitle_legal": "Rechtliche Offenlegungen:", + "legal_text": "Wir können Ihre Informationen offenlegen, wenn dies gesetzlich, durch Gerichtsbeschluss oder zum Schutz unserer Rechte und Sicherheit erforderlich ist. Wir werden Sie über solche Anfragen benachrichtigen, sofern gesetzlich nicht verboten." + }, + "section_4": { + "title": "4. Datenaufbewahrung", + "items": [ + "Spendenaufzeichnungen: Auf unbestimmte Zeit für Transparenz und Steuerzwecke aufbewahrt", + "Server-Protokolle: Nach 90 Tagen gelöscht", + "Analytikdaten: Nach 12 Monaten aggregiert und anonymisiert", + "Benutzerkonten: Aufbewahrt, bis Sie die Löschung beantragen", + "Anfragen/Einreichungen: 2 Jahre aufbewahrt, dann archiviert oder gelöscht" + ] + }, + "section_5": { + "title": "5. Ihre Rechte", + "intro": "Sie haben das Recht auf:", + "items": [ + "Zugang: Kopie Ihrer persönlichen Daten anfordern", + "Berichtigung: Ungenaue Informationen aktualisieren oder korrigieren", + "Löschung: Löschung Ihrer Daten beantragen (vorbehaltlich gesetzlicher Verpflichtungen)", + "Übertragbarkeit: Ihre Daten in maschinenlesbarem Format erhalten", + "Widerspruch: Zustimmung zu öffentlichen Anerkennungen jederzeit widerrufen", + "Einspruch: Der Verarbeitung Ihrer Daten widersprechen" + ], + "contact": "Um Ihre Rechte auszuüben, senden Sie eine E-Mail an: privacy@agenticgovernance.digital" + }, + "section_6": { + "title": "6. Cookies und Tracking", + "essential": "Wesentliche Cookies: Erforderlich für die Funktionalität der Website (Sitzungsverwaltung, Authentifizierung)", + "preference": "Präferenz-Cookies: Merken sich Ihre Einstellungen (Währungsauswahl, Theme-Präferenzen)", + "analytics": "Analytik-Cookies: Datenschutzfreundliche Analytik (kein seitenübergreifendes Tracking)", + "control": "Sie können Cookies über Ihre Browsereinstellungen steuern. Das Deaktivieren von Cookies kann die Funktionalität der Website beeinträchtigen." + }, + "section_7": { + "title": "7. Sicherheit", + "intro": "Wir implementieren branchenübliche Sicherheitsmaßnahmen:", + "items": [ + "HTTPS-Verschlüsselung für alle Verbindungen", + "Verschlüsselte Datenbankspeicherung", + "Passwort-Hashing (bcrypt)", + "Regelmäßige Sicherheitsaudits", + "Zugriffskontrollen und Überwachung", + "Keine Speicherung von Zahlungskartendaten (von PCI-konformen Stripe-Systemen verwaltet)" + ], + "disclaimer": "Obwohl wir angemessene Vorsichtsmaßnahmen treffen, ist kein System zu 100% sicher. Sicherheitsprobleme melden Sie bitte an: security@agenticgovernance.digital" + }, + "section_8": { + "title": "8. Datenschutz für Kinder", + "text": "Das Tractatus Framework richtet sich nicht an Kinder unter 13 Jahren. Wir sammeln wissentlich keine Informationen von Kindern. Wenn Sie glauben, dass ein Kind uns personenbezogene Daten zur Verfügung gestellt hat, kontaktieren Sie uns bitte unter privacy@agenticgovernance.digital." + }, + "section_9": { + "title": "9. Internationale Datenübertragungen", + "intro": "Das Tractatus Framework wird von Neuseeland aus betrieben. Wenn Sie von anderen Ländern aus auf unsere Dienste zugreifen, können Ihre Daten nach Neuseeland übertragen und dort verarbeitet werden. Durch die Nutzung unserer Dienste stimmen Sie dieser Übertragung zu.", + "gdpr": "DSGVO-Konformität: Für EU-Nutzer erfüllen wir die DSGVO-Anforderungen, einschließlich rechtmäßiger Grundlage für die Verarbeitung, Datenminimierung und Ihrer Rechte gemäß den Artikeln 15-22." + }, + "section_10": { + "title": "10. Änderungen dieser Richtlinie", + "text": "Wir können diese Datenschutzerklärung von Zeit zu Zeit aktualisieren. Änderungen werden auf dieser Seite mit aktualisiertem \"Zuletzt aktualisiert\"-Datum veröffentlicht. Wesentliche Änderungen werden per E-Mail (für Benutzer, die eine E-Mail angegeben haben) oder durch einen auffälligen Hinweis auf der Website kommuniziert." + }, + "section_11": { + "title": "11. Kontaktieren Sie uns", + "intro": "Für datenschutzbezogene Fragen oder Bedenken:", + "email": "E-Mail:", + "email_address": "privacy@agenticgovernance.digital", + "dpo": "Datenschutzbeauftragter:", + "dpo_name": "John Stroh", + "postal": "Postanschrift:", + "postal_text": "Auf Anfrage erhältlich" + }, + "te_tiriti": { + "title": "Te Tiriti o Waitangi | Vertragsbekenntnis", + "text": "Als neuseeländisches Projekt erkennen wir Te Tiriti o Waitangi und unser Bekenntnis zu Partnerschaft, Schutz und Teilhabe an. Unsere Datenschutzpraktiken respektieren Māori-Konzepte der Datensouveränität (rangatiratanga) und kollektiven Vormundschaft (kaitiakitanga)." + } +} diff --git a/public/locales/en/homepage.json b/public/locales/en/homepage.json index c1b13056..7e21588b 100644 --- a/public/locales/en/homepage.json +++ b/public/locales/en/homepage.json @@ -98,9 +98,32 @@ } }, "footer": { - "description": "Reference implementation of architectural AI safety constraints—structural governance validated in single-project deployment.", - "tagline": "Safety Through Structure, Not Aspiration", - "built_with": "Built with", - "acknowledgment": "This framework acknowledges Te Tiriti o Waitangi and indigenous leadership in digital sovereignty. Built with respect for CARE Principles and Māori data sovereignty." + "about_heading": "Tractatus Framework", + "about_text": "Architectural constraints for AI safety that preserve human agency through structural, not aspirational, guarantees.", + "documentation_heading": "Documentation", + "documentation_links": { + "framework_docs": "Framework Docs", + "about": "About", + "core_values": "Core Values", + "interactive_demo": "Interactive Demo" + }, + "support_heading": "Support", + "support_links": { + "koha": "Support (Koha)", + "transparency": "Transparency", + "media_inquiries": "Media Inquiries", + "submit_case": "Submit Case Study" + }, + "legal_heading": "Legal", + "legal_links": { + "privacy": "Privacy Policy", + "contact": "Contact Us", + "github": "GitHub" + }, + "te_tiriti_label": "Te Tiriti o Waitangi:", + "te_tiriti_text": "We acknowledge Te Tiriti o Waitangi and our commitment to partnership, protection, and participation. This project respects Māori data sovereignty (rangatiratanga) and collective guardianship (kaitiakitanga).", + "copyright": "John G Stroh. Licensed under", + "license": "Apache 2.0", + "location": "Made in Aotearoa New Zealand 🇳🇿" } } diff --git a/public/locales/en/privacy.json b/public/locales/en/privacy.json new file mode 100644 index 00000000..4da06f40 --- /dev/null +++ b/public/locales/en/privacy.json @@ -0,0 +1,137 @@ +{ + "meta": { + "title": "Privacy Policy | Tractatus AI Safety Framework", + "description": "Privacy policy for the Tractatus AI Safety Framework. Learn how we collect, use, and protect your data." + }, + "header": { + "title": "Privacy Policy", + "last_updated": "Last updated: October 8, 2025" + }, + "privacy_first": { + "badge": "Privacy First:", + "text": "The Tractatus Framework is built on principles of human agency and transparency. We collect minimal data, never sell your information, and give you full control over your data." + }, + "section_1": { + "title": "1. Information We Collect", + "subtitle_1_1": "1.1 Information You Provide", + "items_1_1": [ + "Donations (Koha): Name (optional), email address (required for receipt), country (optional), payment information (processed by Stripe, not stored by us)", + "Media Inquiries: Name, email, organization, inquiry details", + "Case Submissions: Contact information, case description, supporting evidence", + "Account Creation (if applicable): Email, password (hashed), optional profile information" + ], + "subtitle_1_2": "1.2 Automatically Collected Information", + "items_1_2": [ + "Analytics: Page views, referring sites, browser type, device type, general location (country-level)", + "Cookies: Session management, preferences (e.g., selected currency), analytics", + "Server Logs: IP addresses, access times, pages accessed (retained for 90 days for security)" + ], + "subtitle_1_3": "1.3 Currency Selection", + "text_1_3": "When you select a currency for donations, we may detect your approximate location to suggest an appropriate currency. This location data is:", + "items_1_3": [ + "Derived from your IP address (country-level only, not precise geolocation)", + "Used only to pre-select a currency in the donation form", + "Not stored permanently", + "Can be overridden by manual currency selection" + ] + }, + "section_2": { + "title": "2. How We Use Your Information", + "items": [ + "Process Donations: Email receipts, acknowledge public supporters (opt-in only), maintain transparency dashboard", + "Respond to Inquiries: Answer media questions, review case submissions, provide support", + "Improve Services: Analyze usage patterns, fix bugs, enhance user experience", + "Security: Prevent fraud, detect abuse, protect against attacks", + "Legal Compliance: Comply with applicable laws, respond to legal requests", + "Communications: Send receipts, important updates (we never send marketing emails without explicit opt-in)" + ] + }, + "section_3": { + "title": "3. Data Sharing and Disclosure", + "subtitle_share": "We Share Your Data With:", + "share_items": [ + "Stripe: Payment processing for donations (subject to Stripe's Privacy Policy)", + "MongoDB Atlas: Database hosting (subject to MongoDB's Privacy Policy)", + "Email Service Provider: For sending receipts and communications" + ], + "subtitle_never": "We NEVER:", + "never_items": [ + "❌ Sell your personal data", + "❌ Share your data with advertisers", + "❌ Use your data for tracking across other websites", + "❌ Share donor information publicly without explicit opt-in" + ], + "subtitle_legal": "Legal Disclosures:", + "legal_text": "We may disclose your information if required by law, court order, or to protect our rights and safety. We will notify you of such requests unless prohibited by law." + }, + "section_4": { + "title": "4. Data Retention", + "items": [ + "Donation Records: Retained indefinitely for transparency and tax purposes", + "Server Logs: Deleted after 90 days", + "Analytics Data: Aggregated, anonymized after 12 months", + "User Accounts: Retained until you request deletion", + "Inquiries/Submissions: Retained for 2 years, then archived or deleted" + ] + }, + "section_5": { + "title": "5. Your Rights", + "intro": "You have the right to:", + "items": [ + "Access: Request a copy of your personal data", + "Correction: Update or correct inaccurate information", + "Deletion: Request deletion of your data (subject to legal obligations)", + "Portability: Receive your data in a machine-readable format", + "Opt-Out: Withdraw consent for public acknowledgements anytime", + "Object: Object to processing of your data" + ], + "contact": "To exercise your rights, email: privacy@agenticgovernance.digital" + }, + "section_6": { + "title": "6. Cookies and Tracking", + "essential": "Essential Cookies: Required for site functionality (session management, authentication)", + "preference": "Preference Cookies: Remember your settings (currency selection, theme preferences)", + "analytics": "Analytics Cookies: Privacy-respecting analytics (no cross-site tracking)", + "control": "You can control cookies through your browser settings. Disabling cookies may affect site functionality." + }, + "section_7": { + "title": "7. Security", + "intro": "We implement industry-standard security measures:", + "items": [ + "HTTPS encryption for all connections", + "Encrypted database storage", + "Password hashing (bcrypt)", + "Regular security audits", + "Access controls and monitoring", + "No storage of payment card data (handled by Stripe PCI-compliant systems)" + ], + "disclaimer": "While we take reasonable precautions, no system is 100% secure. Report security issues to: security@agenticgovernance.digital" + }, + "section_8": { + "title": "8. Children's Privacy", + "text": "The Tractatus Framework is not directed at children under 13. We do not knowingly collect information from children. If you believe a child has provided us with personal data, please contact us at privacy@agenticgovernance.digital." + }, + "section_9": { + "title": "9. International Data Transfers", + "intro": "The Tractatus Framework operates from New Zealand. If you access our services from other countries, your data may be transferred to and processed in New Zealand. By using our services, you consent to this transfer.", + "gdpr": "GDPR Compliance: For EU users, we comply with GDPR requirements including lawful basis for processing, data minimization, and your rights under Articles 15-22." + }, + "section_10": { + "title": "10. Changes to This Policy", + "text": "We may update this Privacy Policy from time to time. Changes will be posted on this page with an updated \"Last updated\" date. Material changes will be communicated via email (for users who provided email) or prominent notice on the website." + }, + "section_11": { + "title": "11. Contact Us", + "intro": "For privacy-related questions or concerns:", + "email": "Email:", + "email_address": "privacy@agenticgovernance.digital", + "dpo": "Data Protection Officer:", + "dpo_name": "John Stroh", + "postal": "Postal Address:", + "postal_text": "Available upon request" + }, + "te_tiriti": { + "title": "Te Tiriti o Waitangi | Treaty Commitment", + "text": "As a New Zealand-based project, we acknowledge Te Tiriti o Waitangi and our commitment to partnership, protection, and participation. Our privacy practices respect Māori concepts of data sovereignty (rangatiratanga) and collective guardianship (kaitiakitanga)." + } +} diff --git a/public/locales/fr/homepage.json b/public/locales/fr/homepage.json index 2701aefa..f5fe6478 100644 --- a/public/locales/fr/homepage.json +++ b/public/locales/fr/homepage.json @@ -98,9 +98,32 @@ } }, "footer": { - "description": "Implémentation de référence des contraintes de sécurité IA architecturales—gouvernance structurelle validée dans un déploiement de projet unique.", - "tagline": "Sécurité par la Structure, pas par l'Aspiration", - "built_with": "Construit avec", - "acknowledgment": "Ce framework reconnaît Te Tiriti o Waitangi et le leadership autochtone en matière de souveraineté numérique. Construit dans le respect des Principes CARE et de la souveraineté des données māories." + "about_heading": "Tractatus Framework", + "about_text": "Contraintes architecturales pour la sécurité de l'IA qui préservent l'autonomie humaine par des garanties structurelles, et non aspirationnelles.", + "documentation_heading": "Documentation", + "documentation_links": { + "framework_docs": "Documentation du Framework", + "about": "À propos", + "core_values": "Valeurs fondamentales", + "interactive_demo": "Démo interactive" + }, + "support_heading": "Support", + "support_links": { + "koha": "Support (Koha)", + "transparency": "Transparence", + "media_inquiries": "Demandes des médias", + "submit_case": "Soumettre une étude de cas" + }, + "legal_heading": "Légal", + "legal_links": { + "privacy": "Politique de confidentialité", + "contact": "Nous contacter", + "github": "GitHub" + }, + "te_tiriti_label": "Te Tiriti o Waitangi :", + "te_tiriti_text": "Nous reconnaissons Te Tiriti o Waitangi et notre engagement envers le partenariat, la protection et la participation. Ce projet respecte la souveraineté des données māori (rangatiratanga) et la tutelle collective (kaitiakitanga).", + "copyright": "John G Stroh. Sous licence", + "license": "Apache 2.0", + "location": "Fabriqué en Aotearoa Nouvelle-Zélande 🇳🇿" } } diff --git a/public/locales/fr/privacy.json b/public/locales/fr/privacy.json new file mode 100644 index 00000000..8eef1218 --- /dev/null +++ b/public/locales/fr/privacy.json @@ -0,0 +1,137 @@ +{ + "meta": { + "title": "Politique de confidentialité | Tractatus AI Safety Framework", + "description": "Politique de confidentialité du Tractatus AI Safety Framework. Découvrez comment nous collectons, utilisons et protégeons vos données." + }, + "header": { + "title": "Politique de confidentialité", + "last_updated": "Dernière mise à jour : 8 octobre 2025" + }, + "privacy_first": { + "badge": "Confidentialité d'abord :", + "text": "Le Tractatus Framework est construit sur les principes d'autonomie humaine et de transparence. Nous collectons un minimum de données, ne vendons jamais vos informations et vous donnons un contrôle total sur vos données." + }, + "section_1": { + "title": "1. Informations que nous collectons", + "subtitle_1_1": "1.1 Informations que vous fournissez", + "items_1_1": [ + "Dons (Koha) : Nom (optionnel), adresse e-mail (obligatoire pour le reçu), pays (optionnel), informations de paiement (traitées par Stripe, non stockées par nous)", + "Demandes médias : Nom, e-mail, organisation, détails de la demande", + "Soumissions de cas : Informations de contact, description du cas, preuves à l'appui", + "Création de compte (le cas échéant) : E-mail, mot de passe (haché), informations de profil optionnelles" + ], + "subtitle_1_2": "1.2 Informations collectées automatiquement", + "items_1_2": [ + "Analytique : Pages vues, sites référents, type de navigateur, type d'appareil, localisation générale (niveau pays)", + "Cookies : Gestion de session, préférences (par ex., devise sélectionnée), analytique", + "Journaux du serveur : Adresses IP, heures d'accès, pages consultées (conservées 90 jours pour la sécurité)" + ], + "subtitle_1_3": "1.3 Sélection de devise", + "text_1_3": "Lorsque vous sélectionnez une devise pour les dons, nous pouvons détecter votre emplacement approximatif pour suggérer une devise appropriée. Ces données de localisation sont :", + "items_1_3": [ + "Dérivées de votre adresse IP (niveau pays uniquement, pas de géolocalisation précise)", + "Utilisées uniquement pour présélectionner une devise dans le formulaire de don", + "Non stockées de façon permanente", + "Peuvent être remplacées par une sélection manuelle de devise" + ] + }, + "section_2": { + "title": "2. Comment nous utilisons vos informations", + "items": [ + "Traiter les dons : Envoyer des reçus par e-mail, reconnaître les supporters publics (opt-in uniquement), maintenir le tableau de transparence", + "Répondre aux demandes : Répondre aux questions des médias, examiner les soumissions de cas, fournir un support", + "Améliorer les services : Analyser les modèles d'utilisation, corriger les bugs, améliorer l'expérience utilisateur", + "Sécurité : Prévenir la fraude, détecter les abus, protéger contre les attaques", + "Conformité légale : Se conformer aux lois applicables, répondre aux demandes légales", + "Communications : Envoyer des reçus, mises à jour importantes (nous n'envoyons jamais d'e-mails marketing sans opt-in explicite)" + ] + }, + "section_3": { + "title": "3. Partage et divulgation des données", + "subtitle_share": "Nous partageons vos données avec :", + "share_items": [ + "Stripe : Traitement des paiements pour les dons (soumis à la Politique de confidentialité de Stripe)", + "MongoDB Atlas : Hébergement de base de données (soumis à la Politique de confidentialité de MongoDB)", + "Fournisseur de services e-mail : Pour l'envoi de reçus et de communications" + ], + "subtitle_never": "Nous ne faisons JAMAIS :", + "never_items": [ + "❌ Vendre vos données personnelles", + "❌ Partager vos données avec des annonceurs", + "❌ Utiliser vos données pour le suivi sur d'autres sites web", + "❌ Partager les informations des donateurs publiquement sans opt-in explicite" + ], + "subtitle_legal": "Divulgations légales :", + "legal_text": "Nous pouvons divulguer vos informations si la loi l'exige, par ordonnance du tribunal, ou pour protéger nos droits et notre sécurité. Nous vous informerons de telles demandes sauf si la loi l'interdit." + }, + "section_4": { + "title": "4. Conservation des données", + "items": [ + "Enregistrements de dons : Conservés indéfiniment à des fins de transparence et fiscales", + "Journaux du serveur : Supprimés après 90 jours", + "Données analytiques : Agrégées, anonymisées après 12 mois", + "Comptes utilisateurs : Conservés jusqu'à ce que vous demandiez la suppression", + "Demandes/Soumissions : Conservées pendant 2 ans, puis archivées ou supprimées" + ] + }, + "section_5": { + "title": "5. Vos droits", + "intro": "Vous avez le droit de :", + "items": [ + "Accès : Demander une copie de vos données personnelles", + "Rectification : Mettre à jour ou corriger des informations inexactes", + "Suppression : Demander la suppression de vos données (sous réserve d'obligations légales)", + "Portabilité : Recevoir vos données dans un format lisible par machine", + "Opt-out : Retirer votre consentement aux reconnaissances publiques à tout moment", + "Opposition : Vous opposer au traitement de vos données" + ], + "contact": "Pour exercer vos droits, envoyez un e-mail à : privacy@agenticgovernance.digital" + }, + "section_6": { + "title": "6. Cookies et suivi", + "essential": "Cookies essentiels : Requis pour la fonctionnalité du site (gestion de session, authentification)", + "preference": "Cookies de préférence : Mémorisent vos paramètres (sélection de devise, préférences de thème)", + "analytics": "Cookies analytiques : Analytique respectueuse de la confidentialité (pas de suivi intersites)", + "control": "Vous pouvez contrôler les cookies via les paramètres de votre navigateur. La désactivation des cookies peut affecter la fonctionnalité du site." + }, + "section_7": { + "title": "7. Sécurité", + "intro": "Nous mettons en œuvre des mesures de sécurité conformes aux normes de l'industrie :", + "items": [ + "Chiffrement HTTPS pour toutes les connexions", + "Stockage de base de données chiffré", + "Hachage des mots de passe (bcrypt)", + "Audits de sécurité réguliers", + "Contrôles d'accès et surveillance", + "Pas de stockage de données de carte de paiement (géré par les systèmes conformes PCI de Stripe)" + ], + "disclaimer": "Bien que nous prenions des précautions raisonnables, aucun système n'est sûr à 100%. Signalez les problèmes de sécurité à : security@agenticgovernance.digital" + }, + "section_8": { + "title": "8. Confidentialité des enfants", + "text": "Le Tractatus Framework ne s'adresse pas aux enfants de moins de 13 ans. Nous ne collectons pas sciemment d'informations sur les enfants. Si vous pensez qu'un enfant nous a fourni des données personnelles, veuillez nous contacter à privacy@agenticgovernance.digital." + }, + "section_9": { + "title": "9. Transferts internationaux de données", + "intro": "Le Tractatus Framework opère depuis la Nouvelle-Zélande. Si vous accédez à nos services depuis d'autres pays, vos données peuvent être transférées et traitées en Nouvelle-Zélande. En utilisant nos services, vous consentez à ce transfert.", + "gdpr": "Conformité RGPD : Pour les utilisateurs de l'UE, nous respectons les exigences du RGPD, y compris la base légale du traitement, la minimisation des données et vos droits en vertu des articles 15-22." + }, + "section_10": { + "title": "10. Modifications de cette politique", + "text": "Nous pouvons mettre à jour cette politique de confidentialité de temps à autre. Les modifications seront publiées sur cette page avec une date \"Dernière mise à jour\" actualisée. Les modifications importantes seront communiquées par e-mail (pour les utilisateurs ayant fourni un e-mail) ou par un avis visible sur le site web." + }, + "section_11": { + "title": "11. Nous contacter", + "intro": "Pour les questions ou préoccupations liées à la confidentialité :", + "email": "E-mail :", + "email_address": "privacy@agenticgovernance.digital", + "dpo": "Délégué à la protection des données :", + "dpo_name": "John Stroh", + "postal": "Adresse postale :", + "postal_text": "Disponible sur demande" + }, + "te_tiriti": { + "title": "Te Tiriti o Waitangi | Engagement envers le traité", + "text": "En tant que projet basé en Nouvelle-Zélande, nous reconnaissons Te Tiriti o Waitangi et notre engagement envers le partenariat, la protection et la participation. Nos pratiques de confidentialité respectent les concepts maoris de souveraineté des données (rangatiratanga) et de tutelle collective (kaitiakitanga)." + } +} diff --git a/public/privacy.html b/public/privacy.html index aaf8fb39..b4d97691 100644 --- a/public/privacy.html +++ b/public/privacy.html @@ -1,10 +1,10 @@ - + - Privacy Policy | Tractatus AI Safety Framework - + Privacy Policy | Tractatus AI Safety Framework +