From e1f839a38607a7ccc40cae64a23251da8a6f4c43 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 30 Aug 2026 03:21:48 +0000 Subject: [PATCH] =?UTF-8?q?D=C3=A9crit=20un=20rendez-vous=20plut=C3=B4t=20?= =?UTF-8?q?que=20des=20=C3=A9v=C3=A9nements=20nomm=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les quatre scènes de la page citaient un vide-grenier, une buvette et des crêpes. L'application sert plusieurs associations : rien ne garantit qu'une école donnée tienne l'un ou l'autre, et une page qui décrit des temps forts imaginaires se retourne contre celle qui l'affiche. Les scènes décrivent maintenant le déroulé commun à n'importe quel rendez-vous — les préparatifs, le jour du montage, pendant, le rangement — qui vaut pour une kermesse comme pour un marché de Noël ou une soirée jeux. Le titre et le chapeau, qui promettaient des stands et une buvette, suivent la même règle. Corrige au passage l'élision devant le nom de l'établissement : beaucoup s'appellent « École… », et la phrase donnait « les parents d'élèves de École Sainte-Marie ». Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_014SfQYBU4xXTeSEHKhHQXdD --- src/app/rejoindre/page.tsx | 40 ++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/src/app/rejoindre/page.tsx b/src/app/rejoindre/page.tsx index 48d170b..ab2f54c 100644 --- a/src/app/rejoindre/page.tsx +++ b/src/app/rejoindre/page.tsx @@ -41,7 +41,7 @@ export const dynamic = "force-dynamic"; export async function generateMetadata(): Promise { const settings = await getAssociationSettings(); const title = `Rejoindre ${settings.associationName}`; - const description = `On monte les stands, on tient la buvette, on range en discutant : ce que fabriquent les parents de ${settings.schoolName} avec ${settings.associationName}.`; + const description = `On prépare les rendez-vous de l’année, on donne un coup de main le jour venu : ce que fabriquent les parents ${deEtablissement(settings.schoolName)} avec ${settings.associationName}.`; return { title, description, @@ -49,26 +49,32 @@ export async function generateMetadata(): Promise { }; } +/** + * Le déroulé d'un rendez-vous, et non des événements nommés : l'application + * sert plusieurs associations, et rien ne garantit qu'une école donnée tienne + * un vide-grenier ou une buvette. Ces quatre moments-là valent pour une + * kermesse comme pour un marché de Noël ou une soirée jeux. + */ const MOMENTS = [ { - titre: "Le samedi du montage", + titre: "Les préparatifs", texte: - "Le café, les tables à déplier, les guirlandes à accrocher. Une heure plus tard, la cour est méconnaissable.", + "Quelques semaines avant, on se répartit ce qu’il y a à faire. Chacun prend ce qui lui va.", }, { - titre: "Derrière la buvette", + titre: "Le jour du montage", texte: - "On sert les crêpes à la chaîne, on rend la monnaie de travers.", + "Les tables à installer, la déco à accrocher, le café qui tourne. Une heure plus tard, on ne reconnaît plus l’endroit.", }, { - titre: "Le vide-grenier", + titre: "Pendant le rendez-vous", texte: - "Des tables dans la cour, des cartons de jouets, des enfants qui négocient.", + "On se relaie par petits groupes, on accueille les familles, et l’après-midi passe vite.", }, { titre: "Le rangement, à plusieurs", texte: - "On plie les nappes, on empile les chaises, on finit les crêpes. C’est là qu’on discute le plus.", + "On plie, on empile, on partage ce qui reste. C’est là qu’on discute le plus.", }, ]; @@ -118,6 +124,15 @@ const ETAPES = [ }, ]; +/** + * « de École Sainte-Marie » : beaucoup d'établissements portent un nom qui + * commence par une voyelle, et la phrase se lit mal. Élision minimale, sans + * prétendre couvrir tous les cas de la langue. + */ +function deEtablissement(nom: string): string { + return /^[aeiouyàâäéèêëîïôöûü]/i.test(nom.trim()) ? `d’${nom}` : `de ${nom}`; +} + const AMORCES = [ "Je peux donner un coup de main sur un événement, prévenez-moi.", "Comptez sur moi au prochain rendez-vous.", @@ -218,12 +233,13 @@ export default async function RejoindrePage() { {settings.associationName} · {settings.schoolName}

- Venez monter les stands{" "} - avec nous. + Venez préparer{" "} + le prochain rendez-vous.

- {settings.associationName} réunit les parents d’élèves de{" "} - {settings.schoolName}. On monte les stands, on tient la buvette, + {settings.associationName} réunit les parents d’élèves{" "} + {deEtablissement(settings.schoolName)}. On prépare les + rendez-vous de l’année, on donne un coup de main le jour venu, et on range en discutant.