// Exact interface copy only. Never translate identifiers, code, or user content. export const french = Object.fromEntries(` skip to content|aller au contenu projects and account|projets et compte menu|menu habit account|compte habitudes heartbeat documentation|documentation des battements projects|projets login|connexion register|inscription account|compte sign out|se déconnecter install app|installer l’application language|langue theme|thème system|système light|clair dark|sombre close|fermer auto|auto applications.|applications. about|à propos privacy policy|politique de confidentialité terms|conditions d’utilisation contact|contact files, simply.|les fichiers, simplement. download and cache a file from its url.|téléchargez et mettez en cache un fichier depuis son url. file url|url du fichier open file|ouvrir le fichier use your shared account to manage access across projects.|utilisez votre compte commun pour gérer l’accès aux projets. you are offline.|vous êtes hors ligne. try again|réessayer on iphone or ipad, open this app in safari, tap share, then choose “add to home screen”.|sur iphone ou ipad, ouvrez cette application dans safari, touchez partager, puis « sur l’écran d’accueil ». on other devices, open your browser menu and choose “install app” or “add to home screen”. if neither option is available, use a browser that supports installation.|sur les autres appareils, ouvrez le menu du navigateur et choisissez « installer l’application » ou « ajouter à l’écran d’accueil ». si aucune option n’est disponible, utilisez un navigateur compatible. one account. all your projects.|un compte. tous vos projets. make yourself at home.|faites comme chez vous. sign in once to move between your projects. your account, passwords, and passkeys live here.|connectez-vous une fois pour passer d’un projet à l’autre. votre compte, vos mots de passe et vos clés d’accès sont ici. already have an account in a project? reset your password here with the same email to keep your data.|vous avez déjà un compte dans un projet ? réinitialisez votre mot de passe ici avec la même adresse e-mail pour conserver vos données. sign in|se connecter email|e-mail password|mot de passe sign in with a passkey|se connecter avec une clé d’accès create an account|créer un compte forgot password?|mot de passe oublié ? send verification email|envoyer l’e-mail de vérification your email is ready to verify. choose your new password.|votre adresse e-mail est prête à être vérifiée. choisissez votre nouveau mot de passe. new password|nouveau mot de passe confirm password|confirmer le mot de passe verify email and save password|vérifier l’e-mail et enregistrer le mot de passe your account|votre compte your account.|votre compte. add a passkey|ajouter une clé d’accès reset your password|réinitialiser votre mot de passe sign out of all projects|se déconnecter de tous les projets one place to sign in.|un seul endroit pour se connecter. verify your email|vérifier votre e-mail create your account|créer votre compte please try again|veuillez réessayer passwords do not match|les mots de passe ne correspondent pas passkey request cancelled. please try again.|demande de clé d’accès annulée. veuillez réessayer. check your inbox. open the verification link within 15 minutes.|consultez votre boîte de réception. ouvrez le lien de vérification dans les 15 minutes. passkey added. you can use it to sign in to all your projects.|clé d’accès ajoutée. vous pouvez l’utiliser pour vous connecter à tous vos projets. invalid email|adresse e-mail invalide invalid credentials|identifiants invalides sign in required|connexion requise account service unavailable|service de compte indisponible could not connect. please try again|connexion impossible. veuillez réessayer something went wrong|une erreur est survenue habits|habitudes dashboard|tableau de bord main|principal a little, every day.|un peu, chaque jour. loading…|chargement… small steps. a life well lived.|de petits pas. une vie bien vécue. your daily practice|votre pratique quotidienne a little progress, today.|un petit progrès, aujourd’hui. start small. one habit is enough.|commencez petit. une habitude suffit. previous|précédent previous day|jour précédent next|suivant next day|jour suivant day|jour today|aujourd’hui up|monter down|descendre remove|supprimer removed|supprimée (removed)|(supprimée) no habits for this day.|aucune habitude pour ce jour. little things add up.|les petites choses s’accumulent. new habit|nouvelle habitude a new habit…|une nouvelle habitude… add|ajouter use up and down to reorder|utilisez monter et descendre pour réorganiser one check is a day that counts.|une case cochée, c’est un jour qui compte. the bigger picture|une vue d’ensemble every little bit adds up.|chaque petit geste compte. your progress, on the days you showed up.|vos progrès, les jours où vous avez été au rendez-vous. active days|jours actifs habits completed|habitudes accomplies completion rate|taux d’accomplissement habits / active day|habitudes / jour actif an active day has at least one completed habit. days with no check-ins are left out of every average. only habits that existed on an active day count toward its completion rate.|un jour actif compte au moins une habitude accomplie. les jours sans activité sont exclus des moyennes. seules les habitudes existant ce jour-là entrent dans son taux d’accomplissement. the last 12 weeks|les 12 dernières semaines a quiet day|un jour calme a day that counts|un jour qui compte habit by habit|habitude par habitude all time · active days only|depuis le début · jours actifs uniquement your story starts with your first habit.|votre histoire commence avec votre première habitude. manage your password and passkeys|gérer votre mot de passe et vos clés d’accès could not load your habits.|impossible de charger vos habitudes. time home|accueil de l’horloge right now|en ce moment a moment, in time|un instant, dans le temps current local time|heure locale actuelle the day, passing|la journée qui passe every second counts.|chaque seconde compte. 24-hour|24 heures 12-hour|12 heures switch to 12-hour time|passer au format 12 heures switch to 24-hour time|passer au format 24 heures fullscreen|plein écran enter fullscreen|passer en plein écran exit fullscreen|quitter le plein écran fullscreen is unavailable in this browser.|le plein écran n’est pas disponible dans ce navigateur. turn sound off|désactiver le son turn sound on|activer le son sound on|son activé sound off|son désactivé exercise guide|guide des exercices first up|pour commencer jumping jacks|sauts avec écart wall sit|chaise contre le mur push-ups|pompes abdominal crunches|relevés de buste step-ups|montées sur marche squats|flexions des jambes triceps dips|répulsions des triceps plank|gainage high knees|montées de genoux lunges|fentes push-up & rotation|pompe et rotation side plank|gainage latéral jump feet apart as your arms rise. land softly.|écartez les pieds en levant les bras. atterrissez doucement. step one foot out at a time instead of jumping.|écartez un pied à la fois au lieu de sauter. rest your back on the wall. hold a comfortable depth.|appuyez le dos contre le mur. descendez à une hauteur confortable. stay higher on the wall to reduce the effort.|restez plus haut contre le mur pour réduire l’effort. keep your body straight. lower with control, then push up.|gardez le corps droit. descendez avec contrôle, puis remontez. place your hands on a wall or stable countertop.|posez les mains sur un mur ou un plan de travail stable. lift your shoulders gently. keep your neck relaxed.|soulevez doucement les épaules. détendez la nuque. make the lift smaller and move slowly.|réduisez l’amplitude et bougez lentement. step up, then down. alternate your leading leg.|montez puis descendez. alternez la jambe qui commence. use a lower, stable step. skip chairs that could tip.|utilisez une marche basse et stable. évitez les chaises qui pourraient basculer. sit your hips back and bend your knees. stand tall.|reculez les hanches et pliez les genoux. redressez-vous. squat less deeply, or sit down and stand from a chair.|descendez moins bas, ou asseyez-vous et relevez-vous d’une chaise. bend your elbows with control. keep shoulders comfortable.|pliez les coudes avec contrôle. gardez les épaules dans une position confortable. bend your knees, or substitute wall push-ups.|pliez les genoux, ou faites des pompes contre un mur. brace your middle. keep hips level and keep breathing.|contractez les abdominaux. alignez les hanches et continuez à respirer. rest your knees on the floor.|posez les genoux au sol. run in place. lift your knees and land lightly.|courez sur place. levez les genoux et posez les pieds doucement. march in place instead of running.|marchez sur place au lieu de courir. step forward and lower with control. alternate legs.|avancez un pied et descendez avec contrôle. alternez les jambes. use a smaller range and a wall for balance.|réduisez l’amplitude et appuyez-vous sur un mur pour l’équilibre. do a push-up, then turn to the side and reach up. alternate.|faites une pompe, tournez sur le côté et levez le bras. alternez. use a wall push-up, then turn gently to each side.|faites une pompe contre un mur, puis tournez doucement de chaque côté. lift your hips. hold 15 seconds on each side.|soulevez les hanches. tenez 15 secondes de chaque côté. keep your bottom knee on the floor.|gardez le genou inférieur au sol. previous exercise|exercice précédent next exercise|exercice suivant start workout|commencer la séance start over|recommencer warm up first. move at your own pace.|échauffez-vous d’abord. bougez à votre rythme. close guide|fermer le guide the seven-minute workout|la séance de sept minutes one move at a time.|un mouvement à la fois. start with 10 seconds to get ready, then 30 seconds per exercise with 10 seconds between moves. one circuit takes 8:00. sound includes spoken exercise names and a celebration tune at the finish. warm up before and cool down afterward.|commencez par 10 secondes de préparation, puis faites chaque exercice pendant 30 secondes avec 10 secondes de repos entre les mouvements. un circuit dure 8 minutes. le son annonce les exercices et joue une mélodie à la fin. échauffez-vous avant et récupérez ensuite. use a stable step and chair. keep breathing. stop for pain, dizziness, or chest discomfort. get individual guidance if a health condition affects exercise.|utilisez une marche et une chaise stables. continuez à respirer. arrêtez en cas de douleur, de vertige ou de gêne thoracique. demandez un avis personnalisé si votre état de santé affecte l’exercice. based on klika and jordan’s 2013 circuit. a short workout is useful; it doesn’t replace a complete weekly activity routine.|basé sur le circuit de klika et jordan de 2013. une courte séance est utile ; elle ne remplace pas une activité hebdomadaire complète. acsm illustrated guide ↗|guide illustré acsm ↗ watch chris jordan demonstrate ↗|voir la démonstration de chris jordan ↗ read the research ↗|lire l’étude ↗ the workout works offline after your first visit. external videos and references need internet. switching apps pauses the timer.|la séance fonctionne hors ligne après votre première visite. les vidéos et références externes nécessitent internet. changer d’application met le minuteur en pause. nicely done.|bien joué. workout complete|séance terminée circuit complete|circuit terminé paused|en pause rest · up next|repos · à suivre let’s move|c’est parti take a breath. walk a little and cool down.|respirez. marchez un peu et récupérez. breathe. get into position for the next move.|respirez. préparez-vous pour le prochain mouvement. switch sides. keep your hips lifted and breathe.|changez de côté. gardez les hanches levées et respirez. go again|recommencer pause|pause resume|reprendre a little time well spent.|un peu de temps bien employé. last move. you’ve got this.|dernier mouvement. vous y êtes presque. 12 exercises completed|12 exercices terminés workout complete. take a little time to cool down.|séance terminée. prenez un peu de temps pour récupérer. congratulations! you completed your workout. great job!|félicitations ! vous avez terminé votre séance. bravo ! get ready.|préparez-vous. rest.|repos. ` .trim().split('\n').map(line => line.split('|'))); Object.assign(french, Object.fromEntries(` account security|sécurité du compte api tokens|jetons api log out|se déconnecter docs|documentation dead man's switches, simplified|la détection d’inactivité, simplifiée dead man's switches, simplified.|la détection d’inactivité, simplifiée. every job checked in.|chaque tâche a donné signe de vie. know when backups, syncs, and scheduled workers go silent—before your customers do.|sachez quand vos sauvegardes, synchronisations et tâches planifiées cessent de répondre, avant vos clients. + new heartbeat|+ nouveau signal all systems are quiet|tout fonctionne normalement checking now|vérification en cours healthy monitors|sondes opérationnelles need attention|nécessitent votre attention open incidents|incidents ouverts your heartbeats|vos signaux de vie incident stream|fil des incidents latest 50|les 50 derniers search monitors…|rechercher des sondes… create a heartbeat|créer un signal de vie we'll give you a url to ping when the job finishes.|vous recevrez une url à appeler lorsque la tâche se termine. name|nom description|description nightly database backup|sauvegarde nocturne de la base de données optional context for future you|contexte facultatif pour plus tard expected every|attendu toutes les grace period|délai de tolérance minute(s)|minute(s) hour(s)|heure(s) day(s)|jour(s) week(s)|semaine(s) month(s)|mois second(s)|seconde(s) cancel|annuler create heartbeat|créer le signal edit heartbeat|modifier le signal update when this job should check in and how it appears.|modifiez la fréquence attendue et la présentation de cette tâche. save changes|enregistrer les modifications are you sure?|confirmer ? continue|continuer copied|copié copy|copier edit|modifier rotate url|renouveler l’url delete|supprimer healthy|opérationnel late|en retard failed|en échec pending|en attente open|ouvert resolved|résolu no description|aucune description no grace|sans tolérance never|jamais waiting for first ping|en attente du premier signal updated just now|mis à jour à l’instant no matching heartbeats|aucun signal correspondant no heartbeats yet|aucun signal pour le moment try another search.|essayez une autre recherche. create one, then ping its url from your job.|créez-en un, puis appelez son url depuis votre tâche. all quiet|rien à signaler no incidents recorded.|aucun incident enregistré. rotate this secret url? the old url will stop working immediately.|renouveler cette url secrète ? l’ancienne cessera de fonctionner immédiatement. delete heartbeat|supprimer le signal create a token to manage your heartbeats through the json api.|créez un jeton pour gérer vos signaux via l’api json. new token name|nom du nouveau jeton create api token|créer un jeton api no api tokens|aucun jeton api create one for scripts or integrations.|créez-en un pour vos scripts ou intégrations. copy this token now|copiez ce jeton maintenant it won't be shown again.|il ne sera plus affiché. revoke|révoquer revoke token|révoquer le jeton revoke this api token? any integration using it will stop working.|révoquer ce jeton api ? toutes les intégrations qui l’utilisent cesseront de fonctionner. manage account, password, and passkeys|gérer le compte, le mot de passe et les clés d’accès know when your jobs go quiet.|sachez quand vos tâches cessent de répondre. monitor cron jobs, backups, scheduled workers, and background processes. get an email before a silent failure becomes a real problem.|surveillez les tâches cron, sauvegardes, workers planifiés et processus en arrière-plan. recevez un e-mail avant qu’une défaillance silencieuse ne devienne un vrai problème. open dashboard|ouvrir le tableau de bord read the quick start|lire le guide de démarrage 3 healthy|3 opérationnels last ping 2h ago · due in 22h|dernier signal il y a 2 h · attendu dans 22 h last ping 41m ago · due in 19m|dernier signal il y a 41 min · attendu dans 19 min last ping yesterday · due in 6 days|dernier signal hier · attendu dans 6 jours small surface. strong signal.|une interface simple. un signal clair. everything needed to catch missing and failed jobs, without an entire incident-management suite.|tout le nécessaire pour détecter les tâches manquantes ou en échec, sans une suite complète de gestion d’incidents. flexible schedules|horaires flexibles expect a ping every minute, hour, day, week, or month, with the grace period your job actually needs.|attendez un signal chaque minute, heure, jour, semaine ou mois, avec le délai de tolérance adapté à votre tâche. failure and recovery|échec et rétablissement receive an email when a heartbeat is missed or explicitly fails, then another when it recovers.|recevez un e-mail lorsqu’un signal manque ou indique un échec, puis un autre au rétablissement. email verification|vérification par e-mail register without passwords. every account is verified by email and every monitor stays isolated to its owner.|inscrivez-vous sans mot de passe. chaque compte est vérifié par e-mail et chaque sonde reste isolée pour son propriétaire. one request after every job.|une requête après chaque tâche. use the secret ping url from any language, scheduler, server, or cloudflare worker. report success, failure, or the process exit code.|utilisez l’url secrète depuis tout langage, planificateur, serveur ou worker cloudflare. signalez la réussite, l’échec ou le code de sortie du processus. explore the ping api|explorer l’api de signal your first heartbeat takes a minute.|votre premier signal de vie en une minute. verify your email, choose a schedule, and copy the url.|vérifiez votre e-mail, choisissez une fréquence et copiez l’url. registration and verification|inscription et vérification start with your email|commencez avec votre e-mail register with your email and enter the six-digit verification code.|inscrivez-vous avec votre e-mail et saisissez le code de vérification à six chiffres. creating a heartbeat|créer un signal de vie create a heartbeat and choose how often it should run plus an optional grace period.|créez un signal de vie et choisissez sa fréquence ainsi qu’un délai de tolérance facultatif. copy the secret ping url into your job.|copiez l’url secrète dans votre tâche. call the url after a successful run. use|appelez l’url après une exécution réussie. utilisez or an exit code to report failures.|ou un code de sortie pour signaler les échecs. keep ping urls private.|gardez les urls de signal privées. anyone with a monitor's secret url can report its state.|toute personne disposant de l’url secrète d’une sonde peut signaler son état. authentication|authentification dashboard requests use an http-only session cookie. api requests use a bearer token:|le tableau de bord utilise un cookie de session http-only. les requêtes api utilisent un jeton bearer : monitor api|api des sondes ping api|api de signal monitor states|états des sondes state|état meaning|signification status|statut waiting for the first ping.|en attente du premier signal. the last ping arrived before its deadline.|le dernier signal est arrivé avant l’échéance. the expected ping plus grace period has elapsed.|l’échéance du signal et le délai de tolérance sont dépassés. the job explicitly reported a failure.|la tâche a signalé un échec. deadline checks and alerts are temporarily disabled.|les vérifications d’échéance et les alertes sont temporairement désactivées. errors and limits|erreurs et limites invalid input.|saisie invalide. missing, expired, or invalid authentication.|authentification absente, expirée ou invalide. resource or heartbeat secret not found.|ressource ou secret de signal introuvable. the request body is too large.|le corps de la requête est trop volumineux. an account resource limit was reached.|une limite de ressources du compte est atteinte. a request rate limit was reached.|une limite de fréquence des requêtes est atteinte. smtp email sending is not configured.|l’envoi d’e-mail smtp n’est pas configuré. the configured email provider rejected the message.|le fournisseur d’e-mail configuré a rejeté le message. quick start|démarrage rapide service health|état du service web interface|interface web list the current user's monitors and 50 most recent incidents.|liste les sondes de l’utilisateur et ses 50 incidents les plus récents. create a monitor. the interval must be at least ten seconds.|crée une sonde. l’intervalle doit être d’au moins dix secondes. permanently delete a monitor and its incident and event history.|supprime définitivement une sonde et son historique d’incidents et d’événements. replace the secret ping url immediately.|remplace immédiatement l’url secrète de signal. report a successful run and resolve any open incident.|signale une exécution réussie et résout tout incident ouvert. report an explicit failure and include diagnostic output.|signale un échec explicite et inclut les informations de diagnostic. send an email verification code.|envoie un code de vérification par e-mail. verify the code and create a browser session.|vérifie le code et crée une session de navigateur. ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french, Object.fromEntries(` small projects.|de petits projets. one shared foundation.|une base commune. documentation.|documentation. every project, one family.|chaque projet, une même famille. one account|un compte unique architecture|architecture design|présentation development|développement source|source public source|source publique public source.|source publique. read the documentation|lire la documentation version 1. plain javascript and css, ready to inspect and vendor.|version 1. du javascript et du css, prêts à consulter et à intégrer. javascript libraries for a consistent architecture, account, presentation, and installable web app. black and white. publicly documented. built for cloudflare workers.|des bibliothèques javascript pour une architecture, un compte, une présentation et une application installable cohérents. en noir et blanc. documentées publiquement. conçues pour cloudflare workers. all applications by dorian marié.|toutes les applications de dorian marié. one account, passwords, and passkeys for every project.|un compte, des mots de passe et des clés d’accès pour tous les projets. build habits and follow your daily progress.|créez des habitudes et suivez vos progrès quotidiens. monitor scheduled jobs and receive failure alerts.|surveillez vos tâches planifiées et recevez des alertes en cas d’échec. a quiet clock, available offline.|une horloge discrète, disponible hors ligne. track your weight privately, with optional account sync.|suivez votre poids en privé, avec une synchronisation facultative. a guided exercise circuit, available offline.|un circuit d’exercices guidé, disponible hors ligne. download and cache files.|téléchargez et mettez en cache des fichiers. shared javascript, design, authentication, and pwa documentation.|documentation du javascript partagé, de la présentation, de l’authentification et des pwa. every app offers auto, français, and english language choices, plus system, light, and dark themes. auto follows the first supported browser language; system follows the device color scheme. preferences stay on the current origin in local storage, work offline, and fall back to in-memory settings when storage is unavailable. only interface copy is translated; user content, identifiers, and code examples remain unchanged.|chaque application propose les langues auto, français et english, ainsi que les thèmes système, clair et sombre. auto suit la première langue du navigateur prise en charge ; système suit le thème de l’appareil. les préférences restent dans le stockage local de chaque origine, fonctionnent hors ligne et sont conservées en mémoire si le stockage est indisponible. seuls les textes de l’interface sont traduits ; les contenus personnels, identifiants et exemples de code sont préservés. author interface copy in lowercase at the source, without emojis or css case conversion. preserve user-entered case, identifiers, source examples, and proxied content. every app uses the shared install app control; installed apps hide it.|rédigez les textes d’interface en minuscules à la source, sans émojis ni conversion de casse css. préservez la casse saisie, les identifiants, les exemples de code et le contenu du proxy. chaque application utilise la commande d’installation partagée ; les applications installées la masquent. light mode uses white surfaces and black text; dark mode uses black surfaces and white text. system fonts. square controls, visible keyboard focus, responsive spacing, and reduced-motion support. icons use a black background with a white foreground, including png install icons and svg favicons. no emojis.|le mode clair utilise des surfaces blanches et du texte noir ; le mode sombre des surfaces noires et du texte blanc. polices système. commandes carrées, focus clavier visible, espacement adaptatif et respect de la réduction des animations. les icônes utilisent un fond noir et un premier plan blanc, y compris les icônes d’installation png et les favicônes svg. sans émojis. common navigation includes projects, documentation, login, register, the signed-in account, sign out, and an install app button with native installation or browser instructions. app-specific tools stay within the app.|la navigation commune comprend les projets, la documentation, la connexion, l’inscription, le compte connecté, la déconnexion et un bouton d’installation avec une installation native ou des instructions. les outils propres à chaque application restent dans celle-ci. each project is an independent cloudflare module worker. product behavior and data stay in the project. libraries provides common request handling, navigation, design tokens, icons, pwa routes, account integration, and build and deployment tooling.|chaque projet est un worker cloudflare indépendant. son fonctionnement et ses données restent dans le projet. libraries fournit le traitement des requêtes, la navigation, les variables de présentation, les icônes, les routes pwa, l’intégration du compte et les outils de compilation et de déploiement. the project registry supports explicit|le registre des projets accepte des valeurs explicites de and|et or|ou values for the apex site. the optional|pour le site racine. le tableau facultatif array lists additional public routes to precache for offline use; never include personalized or authenticated routes.|liste les routes publiques supplémentaires à mettre en cache pour un usage hors ligne ; n’y incluez jamais de routes personnalisées ou authentifiées. the shared implementation is bundled into each worker and served from that project's own origin under|le code partagé est intégré à chaque worker et servi depuis l’origine du projet sous . a documentation outage cannot break another project's ui. no runtime cdn or cross-origin script dependency is required. existing product-specific renderers remain responsible for their screens.|. une panne de la documentation ne bloque pas l’interface d’un autre projet. aucun cdn ni script externe n’est nécessaire à l’exécution. les moteurs de rendu propres à chaque produit restent responsables de leurs écrans. owns registration, email verification, password sign in, password recovery, and passkeys. applications never collect account passwords.|gère l’inscription, la vérification par e-mail, la connexion par mot de passe, la récupération et les clés d’accès. les applications ne collectent jamais les mots de passe du compte. link to|créez un lien vers on the current project.|sur le projet courant. the worker creates a random state and pkce verifier in a secure, http-only, host-only flow cookie.|le worker crée un état aléatoire et un vérificateur pkce dans un cookie de parcours sécurisé, http-only et limité à l’hôte. the account service validates the registered callback and issues a short-lived, single-use authorization code.|le service de compte valide l’url de retour et émet un code d’autorisation de courte durée à usage unique. the project exchanges the code through its|le projet échange le code via sa liaison service binding and stores a host-only session cookie.|de service et stocke un cookie de session limité à l’hôte. authenticated apis call|les api authentifiées appellent . identity stays server-side; tokens never enter local storage.|. l’identité reste côté serveur ; les jetons ne sont jamais stockés dans le navigateur. set|configurez to the|vers le worker. add new callback origins explicitly to the account service allowlist. project sign out revokes the parent session and uses a same-origin post to|worker. ajoutez explicitement les nouvelles origines de retour à la liste autorisée du service de compte. la déconnexion révoque la session parente et utilise un post de même origine vers . sign out of all projects and password recovery revoke parent sessions at the account service. the existing|. la déconnexion globale et la récupération du mot de passe révoquent les sessions parentes du compte. le point d’entrée existant entrypoint re-exports this implementation for compatibility.|réexporte cette implémentation pour la compatibilité. authenticated requests fail closed if the account service is unavailable. the library does not cache api responses or authorization redirects.|les requêtes authentifiées sont refusées si le service de compte est indisponible. la bibliothèque ne met en cache ni les réponses api ni les redirections d’autorisation. installable, with a deliberate offline policy|installable, avec une politique hors ligne explicite every project exposes a standalone manifest, 192px and 512px png icons, a root service worker, and an accessible offline page. the public apex directory, time, weights, workout, and libraries shells work offline. weight entries and workout state retain the existing device storage behavior. account, habits, heartbeats, and proxy show a reconnect page rather than cache personalized html.|chaque projet expose un manifeste autonome, des icônes png de 192 et 512 pixels, un service worker à la racine et une page hors ligne accessible. l’annuaire public et les interfaces de time, weights, workout et libraries fonctionnent hors ligne. les poids et l’état de la séance conservent leur stockage sur l’appareil. account, habits, heartbeats et proxy affichent une page de reconnexion sans mettre en cache le html personnalisé. only allowlisted, same-origin public assets and shells enter the cache. api routes, sso routes, authorization, query urls, non-get requests, and session responses never enter it. install icon urls include a content version, and ios receives an explicit 180px apple touch icon so new installations can refresh older artwork. releases are content-versioned. activation removes only this project's caches. installing a pwa depends on browser support and may require “add to home screen” on ios.|seuls les fichiers et interfaces publics de même origine explicitement autorisés sont mis en cache. les routes api, sso, d’autorisation, les urls avec paramètres, les requêtes autres que get et les réponses de session en sont toujours exclus. les urls des icônes incluent une version de contenu et ios reçoit une icône apple touch de 180 pixels pour actualiser les nouvelles installations. les versions dépendent du contenu. l’activation supprime uniquement les caches du projet. l’installation dépend du navigateur et peut nécessiter « sur l’écran d’accueil » sur ios. shared interface|interface partagée export or route|export ou route purpose|rôle token|variable value|valeur system-ui and platform fallbacks|system-ui et polices système de remplacement sso routes plus shared presentation; scheduled and named exports remain project-owned|routes sso et présentation partagée ; le projet conserve ses exports nommés et planifiés verified user or null; service failures throw|utilisateur vérifié ou null ; les pannes de service lèvent une erreur shared assets, manifest, icons, navigation, and html presentation|fichiers partagés, manifeste, icônes, navigation et présentation html embedded public assets and content-versioned offline shell|fichiers publics intégrés et interface hors ligne versionnée par contenu json response with no-store and nosniff|réponse json avec no-store et nosniff escape text for generated html|échappe le texte pour le html généré same-origin design tokens and common components|variables de présentation et composants communs de même origine account navigation and pwa registration|navigation du compte et enregistrement de la pwa per-project install metadata|métadonnées d’installation par projet shared service worker with project-specific release|service worker partagé avec version propre au projet project-specific monochrome icons|icônes monochromes propres au projet deployment health, where supported by the application|état du déploiement, si l’application le prend en charge browse and download the javascript source|consulter et télécharger le code source javascript . source modules are served as text for inspection and vendoring. import the checked-in modules at build time; do not load worker modules in a browser.|. les modules source sont servis en texte pour consultation et intégration. importez les modules du dépôt lors de la compilation ; ne chargez pas les modules worker dans un navigateur. build, verify, deploy|compiler, vérifier, déployer the workspace registry maps project domains to existing worker names. shared build tooling bundles javascript and embeds public assets. project preparation retains existing app asset pipelines. deployment reads existing remote settings, retains bindings and secrets, and updates the worker code. it does not run database migrations or recreate databases. new domains are configured explicitly. credentials stay in the local cloudflare profile and never enter public documentation.|le registre associe les domaines aux noms de workers existants. les outils partagés compilent le javascript et intègrent les fichiers publics. la préparation conserve les pipelines existants. le déploiement lit les paramètres distants, conserve les liaisons et secrets et actualise le code. il n’exécute aucune migration et ne recrée aucune base. les nouveaux domaines sont configurés explicitement. les identifiants restent dans le profil cloudflare local et ne figurent jamais dans la documentation publique. cloudflare configuration uses javascript. logs and traces are enabled. tests cover account and session isolation, shared rendering, pwa cache exclusions, and product behavior. see the workspace and each project's agents.md before changing code.|la configuration cloudflare utilise javascript. journaux et traces sont activés. les tests couvrent l’isolation des comptes et sessions, le rendu partagé, les exclusions du cache pwa et le fonctionnement du produit. consultez les fichiers agents.md avant de modifier le code. · javascript on cloudflare workers|· javascript sur cloudflare workers ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french, Object.fromEntries(` i’m dorian marié, the individual entrepreneur behind dorianmarie.com, based in montmagny, france.|je suis dorian marié, l’entrepreneur individuel derrière dorianmarie.com, basé à montmagny, en france. my business focuses on providing software, including its hosting and operation, primarily for automated messaging, alerts, and notifications.|mon activité consiste à fournir des logiciels, avec leur hébergement et leur exploitation, principalement pour la messagerie automatisée, les alertes et les notifications. business information|informations sur l’entreprise registered name:|nom enregistré : trading name:|nom commercial : business registration:|immatriculation : registration date:|date d’immatriculation : recorded activity start date:|date de début d’activité déclarée : principal establishment:|établissement principal : operation:|exploitation : september 17, 2026|17 septembre 2026 october 1, 2026|1 octobre 2026 montmagny, 95360, france|montmagny, 95360, france directly operated by the proprietor|exploitation directe par le propriétaire these details are drawn from the kbis extract issued by the commercial court registry of pontoise, current as of september 17, 2026.|ces informations proviennent de l’extrait kbis délivré par le greffe du tribunal de commerce de pontoise, à jour au 17 septembre 2026. you can reach me at|vous pouvez me joindre à see also the|voir aussi la last updated: june 25, 2026|dernière mise à jour : 25 juin 2026 this website is a personal website for dorian marié.|ce site est le site personnel de dorian marié. information collected|informations collectées this website does not ask you to create an account, submit a form, or provide personal information directly through the site.|ce site ne vous demande pas de créer un compte, de remplir un formulaire ni de fournir des informations personnelles directement sur le site. if you contact me by email, i will receive the information you choose to send, such as your email address, name, message, and any attachments.|si vous me contactez par e-mail, je recevrai les informations que vous choisissez d’envoyer, telles que votre adresse e-mail, votre nom, votre message et les pièces jointes. like most websites, the hosting provider may automatically process basic technical information when you visit, such as your ip address, browser, device information, referring page, and pages requested. this information is used for hosting, security, diagnostics, and abuse prevention.|comme pour la plupart des sites, l’hébergeur peut traiter automatiquement des informations techniques lors de votre visite, telles que votre adresse ip, votre navigateur, votre appareil, la page d’origine et les pages demandées. ces informations servent à l’hébergement, la sécurité, le diagnostic et la prévention des abus. cookies and analytics|cookies et mesure d’audience this website does not intentionally set tracking cookies or run analytics scripts.|ce site ne dépose pas intentionnellement de cookies de suivi et n’exécute pas de scripts de mesure d’audience. third-party links|liens vers des tiers this website may link to third-party services such as github or x/twitter. those services are operated by their own providers and are subject to their own privacy policies.|ce site peut contenir des liens vers des services tiers comme github ou x/twitter. ces services sont exploités par leurs propres fournisseurs et soumis à leurs propres politiques de confidentialité. how information is used|utilisation des informations information you send by email may be used to read, respond to, and manage the conversation. technical hosting information may be used to operate, secure, and troubleshoot the website.|les informations envoyées par e-mail peuvent servir à lire, à répondre et à gérer la conversation. les informations techniques d’hébergement peuvent servir à exploiter, sécuriser et dépanner le site. for privacy questions, email|pour toute question relative à la confidentialité, écrivez à these terms apply to dorianmarie.com.|ces conditions s’appliquent à dorianmarie.com. use of this website|utilisation de ce site you may browse this website for personal or informational purposes. do not use the website in a way that disrupts, damages, or interferes with its operation or security.|vous pouvez consulter ce site à des fins personnelles ou d’information. ne l’utilisez pas d’une manière qui perturbe, endommage ou compromet son fonctionnement ou sa sécurité. content|contenu the content on this website is provided for general information. it may change or be removed without notice.|le contenu de ce site est fourni à titre d’information générale. il peut être modifié ou supprimé sans préavis. unless otherwise stated, all content on this website belongs to dorian marié or its respective owners. do not copy, republish, or redistribute content from this website without permission, except where allowed by applicable law.|sauf indication contraire, le contenu de ce site appartient à dorian marié ou à ses propriétaires respectifs. ne le copiez, republiez ou redistribuez pas sans autorisation, sauf lorsque la loi applicable le permet. this website may link to third-party websites or services. i am not responsible for the content, availability, policies, or practices of those third-party services.|ce site peut contenir des liens vers des sites ou services tiers. je ne suis pas responsable de leur contenu, disponibilité, politiques ou pratiques. no warranty|absence de garantie this website is provided as is, without warranties of any kind. i do not guarantee that the website will always be available, error-free, secure, or suitable for any particular purpose.|ce site est fourni en l’état, sans garantie d’aucune sorte. je ne garantis pas sa disponibilité permanente, l’absence d’erreurs, sa sécurité ni son adéquation à un usage particulier. limitation of liability|limitation de responsabilité to the fullest extent allowed by law, i will not be liable for any damages arising from your use of, or inability to use, this website.|dans toute la mesure permise par la loi, je ne serai pas responsable des dommages résultant de votre utilisation de ce site ou de l’impossibilité de l’utiliser. for questions about these terms, email|pour toute question sur ces conditions, écrivez à sign in to your account|connectez-vous à votre compte sign in with password|se connecter avec un mot de passe start with your email.|commencez avec votre e-mail. register, recover access, or sign in with an email code.|inscrivez-vous, récupérez votre accès ou connectez-vous avec un code reçu par e-mail. send verification code|envoyer le code de vérification check your inbox.|consultez votre boîte de réception. enter the six-digit code sent to|saisissez le code à six chiffres envoyé à verify email|vérifier l’e-mail use another email|utiliser une autre adresse worker connected|worker connecté set a password or add a passkey to your verified account.|définissez un mot de passe ou ajoutez une clé d’accès à votre compte vérifié. new password (at least 12 characters)|nouveau mot de passe (au moins 12 caractères) save password|enregistrer le mot de passe errors|erreurs monitor cron jobs, backups, scheduled workers, and background processes with a simple dead man's switch.|surveillez vos tâches cron, sauvegardes, workers planifiés et processus avec une simple détection d’inactivité. choose a name, optional description, expected interval, and grace period. intervals support minutes, hours, days, weeks, and 30-day months. a new monitor stays pending until its first ping.|choisissez un nom, une description facultative, un intervalle attendu et un délai de tolérance. les intervalles acceptent les minutes, heures, jours, semaines et mois de 30 jours. une nouvelle sonde reste en attente jusqu’au premier signal. in the dashboard, name the token, and copy it immediately. tokens are stored as hashes and cannot be displayed again. revoke a token from the same screen at any time.|dans le tableau de bord, nommez le jeton et copiez-le immédiatement. les jetons sont stockés sous forme de hachages et ne peuvent plus être affichés. révoquez-les depuis le même écran à tout moment. all interval and grace values in the json api are integer seconds. authenticated monitor operations are isolated to the token's owner.|tous les intervalles et délais de l’api json sont en secondes entières. les opérations authentifiées sont isolées pour le propriétaire du jeton. update any combination of|met à jour toute combinaison de , or|, ou ping endpoints use the secret monitor url and do not need a bearer token. get, head, post, and put are accepted. request bodies up to 8 kb are saved with the event.|les points de signal utilisent l’url secrète et ne nécessitent pas de jeton bearer. get, head, post et put sont acceptés. les corps de requête jusqu’à 8 ko sont enregistrés avec l’événement. exit code|code de sortie is healthy; any other numeric code is a failure.|indique une réussite ; tout autre code numérique indique un échec. accounts are limited to 100 heartbeats and 25 api tokens. ping urls accept 120 requests per minute and retain the latest 100 events and 100 incidents per heartbeat.|les comptes sont limités à 100 signaux et 25 jetons api. les urls de signal acceptent 120 requêtes par minute et conservent les 100 derniers événements et incidents de chaque signal. ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french, Object.fromEntries(` invalid request origin|origine de requête invalide too many attempts. try again later.|trop de tentatives. réessayez plus tard. invalid email or password|e-mail ou mot de passe incorrect sign in with your email first|connectez-vous d’abord avec votre e-mail use a password between 12 and 1024 characters|utilisez un mot de passe de 12 à 1024 caractères expired sign-in request. try again.|demande de connexion expirée. réessayez. passkey sign-in failed|échec de la connexion avec la clé d’accès passkey limit reached|limite de clés d’accès atteinte sign in first|connectez-vous d’abord expired passkey request. try again.|demande de clé d’accès expirée. réessayez. could not register this passkey|impossible d’enregistrer cette clé d’accès ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french, Object.fromEntries(` switch sides.|changez de côté. this is the last exercise. finish the interval to complete the circuit.|c’est le dernier exercice. terminez l’intervalle pour finir le circuit. workout paused while you were away.|séance mise en pause pendant votre absence. you’re offline. your workout still works.|vous êtes hors ligne. votre séance reste disponible. request too large|requête trop volumineuse invalid origin|origine invalide too many requests. try again later|trop de requêtes. réessayez plus tard enter a valid email|saisissez une adresse e-mail valide could not send email. please try again later|impossible d’envoyer l’e-mail. réessayez plus tard too many attempts|trop de tentatives invalid or expired verification link|lien de vérification invalide ou expiré verification link already used|lien de vérification déjà utilisé session expired|session expirée something went wrong. please try again|une erreur est survenue. veuillez réessayer ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french, Object.fromEntries(` documentation|documentation api documentation|documentation de l’API account settings|réglages du compte heartbeats|battements time|heure weights|poids workout|entraînement proxy|relais libraries|bibliothèques passkeys|clés d’accès no passkeys added|aucune clé d’accès ajoutée api keys|clés API name|nom create api key|créer une clé API revoke|révoquer settings|réglages time format|format de l’heure weight unit|unité de poids temperature unit|unité de température celsius|Celsius fahrenheit|Fahrenheit settings saved|réglages enregistrés passkey added.|clé d’accès ajoutée. maximum 25 keys|25 clés maximum enter a name up to 100 characters|saisissez un nom de 100 caractères maximum invalid preference|réglage invalide method|méthode path|chemin purpose|fonction Method|méthode Path|chemin Purpose|fonction OpenAPI specification|spécification OpenAPI open application|ouvrir l’application Public application metadata|métadonnées publiques de l’application Authenticated identity|identité authentifiée Current browser account|compte connecté dans le navigateur List registered passkeys|lister les clés d’accès enregistrées Read account preferences|lire les réglages du compte List API key names and IDs|lister les noms et identifiants des clés API Create key with {name}; token shown once|créer une clé avec {name} ; elle ne sera affichée qu’une fois Revoke owned key with {id}|révoquer sa clé avec {id} Update preferences: language, theme, timeFormat (24h/12h), weightUnit (kg/lb), temperatureUnit (celsius/fahrenheit)|modifier les réglages : language, theme, timeFormat (24h/12h), weightUnit (kg/lb), temperatureUnit (celsius/fahrenheit) Read habits and completions; day query YYYY-MM-DD|lire les habitudes et accomplissements ; paramètre day au format YYYY-MM-DD Create habit with {name}|créer une habitude avec {name} Reorder habits with {ids:[all active habit IDs in order]}|réordonner les habitudes avec {ids:[identifiants de toutes les habitudes actives dans l’ordre]} Remove owned habit; preserve history|supprimer son habitude en conservant l’historique Set completion with {habit_id,day:YYYY-MM-DD,done:boolean}|enregistrer un accomplissement avec {habit_id,day:YYYY-MM-DD,done:boolean} Read monitors and incidents|lire les surveillances et incidents Create monitor with name, interval_seconds, grace_seconds|créer une surveillance avec name, interval_seconds, grace_seconds Update owned monitor|modifier sa surveillance Delete owned monitor|supprimer sa surveillance Merge {records:[{key,value,stamp}]} and retrieve records. Date keys use YYYY-MM-DD, weights and goal in kg; stamp is milliseconds:UUID; null deletes.|fusionner {records:[{key,value,stamp}]} et récupérer les enregistrements. Les dates utilisent YYYY-MM-DD, les poids et l’objectif sont en kg ; stamp est au format millisecondes:UUID ; null supprime. Current server Unix milliseconds and ISO UTC time (public)|heure du serveur en millisecondes Unix et au format ISO UTC (public) Circuit timing in seconds and exercise names, cues, and easier variants (public)|durées du circuit en secondes, noms des exercices, consignes et variantes plus faciles (public) Source catalogue: names and download URLs (public)|catalogue des sources : noms et liens de téléchargement (public) Download and cache an HTTP/HTTPS file URL (public); existing URL validation and download policy apply|télécharger et mettre en cache un fichier HTTP/HTTPS (public) ; les règles de validation des URL et de téléchargement s’appliquent URL-encoded name, email, message, g-recaptcha-response. Same-origin; Google reCAPTCHA required. Returns HTML confirmation or error.|champs name, email, message et g-recaptcha-response encodés pour une URL. Même origine ; Google reCAPTCHA requis. Renvoie une confirmation ou erreur HTML. Create API keys at|créez vos clés API sur . Send|. envoyez . Browser requests use secure session cookies. Mutations require an Origin header matching the application origin; command-line clients must include it too. Data belongs to the authenticated account. Invalid credentials return 401; account outages return 503.|. les requêtes du navigateur utilisent des cookies de session sécurisés. Les modifications exigent un en-tête Origin correspondant à l’origine de l’application, y compris en ligne de commande. Les données appartiennent au compte authentifié. Des identifiants invalides renvoient 401 ; une panne du service de compte renvoie 503. Passkeys, settings, and key management require an account browser session; API keys cannot create further keys or change credentials.|la gestion des clés d’accès, des réglages et des clés API exige une session de compte dans le navigateur ; les clés API ne peuvent pas créer d’autres clés ou modifier les identifiants. Monitor and ping request bodies|contenu des requêtes de surveillance et de signal . Existing heartbeat tokens remain accepted for compatibility.|. les anciens jetons de surveillance restent acceptés pour compatibilité. ` .trim().split('\n').map(line => line.split('|')))); Object.assign(french,{'email address':'adresse e-mail','send message':'envoyer le message','verification is unavailable. please try again.':'la vérification est indisponible. veuillez réessayer.'}); Object.assign(french,{'verification failed. please try again.':'la vérification a échoué. veuillez réessayer.','complete the form and reCAPTCHA.':'remplissez le formulaire et réessayez la vérification.','verification failed. please complete reCAPTCHA again.':'la vérification a échoué. veuillez réessayer.','message sent.':'message envoyé.','message delivery failed. please try again or use email.':'l’envoi a échoué. réessayez ou contactez-moi par e-mail.','message delivery is unavailable. please try again or use email.':'l’envoi est indisponible. réessayez ou contactez-moi par e-mail.','contact verification is unavailable. please use email.':'la vérification est indisponible. veuillez me contacter par e-mail.','message too large':'le message est trop long'}); Object.assign(french,{'The native browser install banner remains enabled; the menu also provides installation and platform-specific instructions.':'la bannière d’installation du navigateur reste activée ; le menu propose aussi l’installation et les instructions adaptées à votre appareil.'}); Object.assign(french,{'file':'fichier','purpose':'fonction','project rules and resource identity':'règles du projet et identité des ressources','build, test, deploy':'compilation, tests et déploiement','JavaScript Worker configuration':'configuration du Worker en JavaScript','application and Worker code':'code de l’application et du Worker','optional browser assets':'ressources facultatives du navigateur','project-specific asset preparation':'préparation des ressources du projet','generated deployment artifact':'fichier de déploiement généré','host-only project sessions and PKCE':'sessions propres au domaine et PKCE','shared shell, responses, assets, PWA':'interface, réponses, ressources et PWA partagées','project and Worker registry':'registre des projets et des Workers','white SVG glyphs on black':'icônes SVG blanches sur fond noir','public shell cache and offline fallback':'cache de l’interface publique et affichage hors ligne','server rendering':'rendu côté serveur','Workers render the initial application interface, navigation, language, and authenticated data in HTML. Browser JavaScript adds interactions without an initial data-loading screen. Device-only weight records stay on the device and enhance the public offline interface. Personalized HTML uses no-store and is never put in an offline cache.':'les Workers rendent l’interface initiale, la navigation, la langue et les données authentifiées en HTML. Le JavaScript du navigateur ajoute les interactions sans écran de chargement initial. Les mesures conservées uniquement sur l’appareil restent locales et complètent l’interface publique hors ligne. Le HTML personnalisé utilise no-store et n’entre jamais dans le cache hors ligne.'});