feat(privacy+extension): publier la page /privacy et préparer les builds Chrome/Firefox Store
All checks were successful
CI / Lint, Unit Tests & Build (push) Successful in 5m49s
CI / Deploy production (on server) (push) Successful in 24s

- Nouvelle page /privacy bilingue (FR/EN) avec sélection par Accept-Language
  ou ?lang=, sections complètes (données collectées, IA/BYOK, RGPD, sécurité,
  contact). Style sombre aligné sur la landing (x.ai premium).
- Liens footer landing.footer.legal.* mis à jour vers /privacy dans les 15 locales.
- Extension Web Clipper rendue cross-browser :
  * background.js détecte chrome.sidePanel vs browser.sidebarAction
  * sidepanel.js ajoute un shim chrome<->browser pour Firefox
  * manifest.json inclut sidebar_action + browser_specific_settings.gecko
    + optional_host_permissions (Chrome les ignore)
- Script scripts/build-firefox.mjs pour produire un .xpi signé pour AMO,
  symétrique de build-chrome-store.mjs. Exclusion mutuelle des artefacts
  Chrome/Firefox pour éviter la cross-contamination.
- Branding corrigé : 176 occurrences de 'Momento' -> 'Memento' dans le
  bundle de traductions embarqué.
- Version bumpée 0.3.1 -> 0.4.0.
This commit is contained in:
Antigravity
2026-07-18 09:00:44 +00:00
parent 88a7d2ad0a
commit a7c15e9fc3
70 changed files with 5550 additions and 3464 deletions

View File

@@ -3326,9 +3326,9 @@
"link0": "الخصوصية",
"link1": "الشروط",
"link2": "ملفات تعريف الارتباط",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Datenschutz",
"link1": "Bedingungen",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -1277,7 +1277,17 @@
"under": "Under",
"trashCascadeWarning": "This will also delete all notes and sub-notebooks.",
"trashConfirm": "Move this notebook to trash?",
"trashTitle": "Move to trash"
"trashTitle": "Move to trash",
"slides": "Presentation",
"slidesDescription": "Generate a slide deck from all notes in this notebook. Images are automatically included.",
"slidesGenerate": "Generate presentation",
"slidesGenerating": "Generating presentation from notes...",
"slidesGeneratingHint": "This may take 30-60 seconds (outline + per-slide writing)",
"slidesReady": "Presentation generated",
"slidesStatus1": "Analyzing notebook notes…",
"slidesStatus2": "Building presentation outline…",
"slidesStatus3": "Writing slides…",
"slidesStatus4": "Finalizing layout…"
},
"notebookSuggestion": {
"title": "Move to {name}?",
@@ -3593,9 +3603,9 @@
"link0": "Privacy",
"link1": "Terms",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Privacidad",
"link1": "Términos",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "حریم خصوصی",
"link1": "شرایط",
"link2": "کوکی‌ها",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -1283,7 +1283,17 @@
"under": "Sous",
"trashCascadeWarning": "Cela supprimera également toutes les notes et sous-carnets.",
"trashConfirm": "Déplacer ce carnet vers la corbeille ?",
"trashTitle": "Déplacer vers la corbeille"
"trashTitle": "Déplacer vers la corbeille",
"slides": "Présentation",
"slidesDescription": "Génère une présentation à partir des notes du carnet. Les images sont automatiquement intégrées.",
"slidesGenerate": "Générer la présentation",
"slidesGenerating": "Génération de la présentation à partir des notes...",
"slidesGeneratingHint": "Cela peut prendre 30 à 60 secondes (outline + rédaction slide par slide)",
"slidesReady": "Présentation générée",
"slidesStatus1": "Analyse des notes du carnet…",
"slidesStatus2": "Création du plan de la présentation…",
"slidesStatus3": "Rédaction des slides…",
"slidesStatus4": "Finalisation et mise en page…"
},
"notebookSuggestion": {
"title": "Déplacer vers {name} ?",
@@ -3599,9 +3609,9 @@
"link0": "Confidentialité",
"link1": "Conditions",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "गोपनीयता",
"link1": "शर्तें",
"link2": "कुकीज़",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Privacy",
"link1": "Termini",
"link2": "Cookie",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "プライバシー",
"link1": "利用規約",
"link2": "Cookie",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "개인정보",
"link1": "약관",
"link2": "쿠키",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Privacy",
"link1": "Voorwaarden",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Prywatność",
"link1": "Regulamin",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Privacidade",
"link1": "Termos",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "Конфиденциальность",
"link1": "Условия",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},

View File

@@ -3326,9 +3326,9 @@
"link0": "隐私",
"link1": "条款",
"link2": "Cookies",
"link0Href": "#",
"link1Href": "#",
"link2Href": "#"
"link0Href": "/privacy",
"link1Href": "/privacy",
"link2Href": "/privacy"
}
}
},