/* Page prose (fr) */
"CleaningUpOnTermination" = "# Nettoyer avec onTermination\n\nUn vrai capteur doit être éteint quand plus personne n'écoute; sinon, il continue d'échantillonner (et de vider la batterie) pour toujours. La continuation te donne un point d'accroche pour exactement ça: **`onTermination` s'exécute une fois quand le stream se termine**, qu'il ait fini normalement ou que le consommateur soit parti.\n\nCette version diffuse des mesures indéfiniment, et éteint le capteur à la terminaison.";
"CleaningUpOnTermination-2" = "**Observe l'exécution:** trois mesures s'affichent, puis la boucle fait `break`. Sortir de la boucle démonte le stream, donc `onTermination` se déclenche avec `.cancelled`, affiche `Consumer left: sensor powered down`, et annule la tâche productrice interne. Sans ce point d'accroche, la boucle `while` échantillonnerait pour toujours en arrière-plan même si personne ne la lit: une fuite classique.\n\n`onTermination` est ton tiroir de nettoyage: annule des minuteurs, ferme des fichiers, désinscris des observateurs. Configure-le dès que tu as la continuation, pour qu'il soit prêt peu importe comment le stream se termine.\n\n* callout(Aparté): La closure `onTermination` doit être `@Sendable`. Elle peut s'exécuter depuis une tâche différente de celle qui a créé le stream, donc elle ne peut toucher que des choses sûres à partager (comme la référence `Task` que nous annulons ici). Swift 6 le signalera si tu vas chercher quelque chose qui ne l'est pas.\n\n[Précédent](@previous)  |  page 4 sur 7  |  [Suivant: L'annulation arrête la consommation](@next)";
