From ed80223e92e735f91f072a7157b3d4b1dca2d92f Mon Sep 17 00:00:00 2001 From: Ruidy Date: Fri, 5 Sep 2025 12:23:59 -0400 Subject: [PATCH] feat(policies): add FR/EN policy pages and i18n routes; update footer and consent links to localized URLs --- src/i18n/routes.ts | 11 ++++++++-- src/layouts/BaseLayout.astro | 19 ++++++++++++++---- src/pages/en/contact.astro | 2 +- src/pages/en/policies/cancellation.astro | 15 ++++++++++++++ src/pages/en/policies/house-rules.astro | 15 ++++++++++++++ src/pages/en/policies/privacy.astro | 19 ++++++++++++++++++ src/pages/en/policies/terms.astro | 20 +++++++++++++++++++ src/pages/fr/contact.astro | 2 +- src/pages/fr/politiques/annulation.astro | 15 ++++++++++++++ src/pages/fr/politiques/conditions.astro | 20 +++++++++++++++++++ src/pages/fr/politiques/confidentialite.astro | 19 ++++++++++++++++++ src/pages/fr/politiques/reglement.astro | 15 ++++++++++++++ 12 files changed, 164 insertions(+), 8 deletions(-) create mode 100644 src/pages/en/policies/cancellation.astro create mode 100644 src/pages/en/policies/house-rules.astro create mode 100644 src/pages/en/policies/privacy.astro create mode 100644 src/pages/en/policies/terms.astro create mode 100644 src/pages/fr/politiques/annulation.astro create mode 100644 src/pages/fr/politiques/conditions.astro create mode 100644 src/pages/fr/politiques/confidentialite.astro create mode 100644 src/pages/fr/politiques/reglement.astro diff --git a/src/i18n/routes.ts b/src/i18n/routes.ts index 32001ad..4c05c94 100644 --- a/src/i18n/routes.ts +++ b/src/i18n/routes.ts @@ -9,7 +9,11 @@ export type RouteKey = | 'location' | 'rates' | 'contact' - | 'thank_you'; + | 'thank_you' + | 'terms' + | 'privacy' + | 'cancellation' + | 'house_rules'; export const routes: Record> = { home: { fr: '/fr/', en: '/en/' }, @@ -21,6 +25,10 @@ export const routes: Record> = { rates: { fr: '/fr/tarifs-disponibilites/', en: '/en/rates-availability/' }, contact: { fr: '/fr/contact/', en: '/en/contact/' }, thank_you: { fr: '/fr/merci/', en: '/en/thank-you/' }, + terms: { fr: '/fr/politiques/conditions/', en: '/en/policies/terms/' }, + privacy: { fr: '/fr/politiques/confidentialite/', en: '/en/policies/privacy/' }, + cancellation: { fr: '/fr/politiques/annulation/', en: '/en/policies/cancellation/' }, + house_rules: { fr: '/fr/politiques/reglement/', en: '/en/policies/house-rules/' }, }; const normalize = (p: string) => { @@ -68,4 +76,3 @@ export function navFor(locale: Locale): Array<{ label: string; href: string }> { export function ctaLabelFor(locale: Locale): string { return locale === 'en' ? 'Send a Request' : 'Envoyer une demande'; } - diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index 6a9f569..c79249f 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -49,10 +49,21 @@ const homeHref = hrefFor('home', lang);

© VillaFleurie

diff --git a/src/pages/en/contact.astro b/src/pages/en/contact.astro index c601688..86a4133 100644 --- a/src/pages/en/contact.astro +++ b/src/pages/en/contact.astro @@ -46,7 +46,7 @@ const thankHref = hrefFor('thank_you', 'en');
diff --git a/src/pages/en/policies/cancellation.astro b/src/pages/en/policies/cancellation.astro new file mode 100644 index 0000000..e9ddb18 --- /dev/null +++ b/src/pages/en/policies/cancellation.astro @@ -0,0 +1,15 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Cancellation Policy

+
    +
  • Late cancellation: 50% fee if cancelled within 14 days before arrival.
  • +
  • No‑show: treated as late cancellation.
  • +
  • Security deposit: none.
  • +
  • Cleaning fee: €20 if left dirty; free otherwise.
  • +
+

Last updated: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/en/policies/house-rules.astro b/src/pages/en/policies/house-rules.astro new file mode 100644 index 0000000..0cd335b --- /dev/null +++ b/src/pages/en/policies/house-rules.astro @@ -0,0 +1,15 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

House Rules

+
    +
  • No smoking, no parties, no pets.
  • +
  • Respect neighbors and quiet hours.
  • +
  • Check‑in 14:00 · Check‑out 11:00.
  • +
  • Normal use of amenities; report any damage.
  • +
+

Last updated: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/en/policies/privacy.astro b/src/pages/en/policies/privacy.astro new file mode 100644 index 0000000..78bcd1f --- /dev/null +++ b/src/pages/en/policies/privacy.astro @@ -0,0 +1,19 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Privacy Policy

+

We collect data submitted via the form (name, email, dates, etc.) to respond to your request.

+
    +
  • Legal basis: pre‑contractual measures.
  • +
  • Retention: as needed for processing and legal obligations.
  • +
  • Sharing: owner notification email; no resale.
  • +
  • Analytics: Plausible (cookie‑free by default).
  • +
  • Hosting: Netlify (form data processed by Netlify).
  • +
  • Data rights: access, rectification, deletion — contact us.
  • +
+

Contact: location.villafleurie@gmail.com

+

Last updated: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/en/policies/terms.astro b/src/pages/en/policies/terms.astro new file mode 100644 index 0000000..f0fffea --- /dev/null +++ b/src/pages/en/policies/terms.astro @@ -0,0 +1,20 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Terms & Conditions

+

Legal name: VillaFleurie (Jacques Gordien)

+

Contact: location.villafleurie@gmail.com · +33 6 58 96 12 79

+

Hosting: Netlify · Jurisdiction: France

+

Bookings

+
    +
  • Minimum stay: 3 nights.
  • +
  • Check‑in: 14:00 · Check‑out: 11:00.
  • +
  • Payments and confirmations communicated by email.
  • +
+

Liability

+

Guest is responsible for damages during the stay. We are not liable for lost items.

+

Last updated: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/fr/contact.astro b/src/pages/fr/contact.astro index c129077..794fe79 100644 --- a/src/pages/fr/contact.astro +++ b/src/pages/fr/contact.astro @@ -46,7 +46,7 @@ const thankHref = hrefFor('thank_you', 'fr');
diff --git a/src/pages/fr/politiques/annulation.astro b/src/pages/fr/politiques/annulation.astro new file mode 100644 index 0000000..8ac5897 --- /dev/null +++ b/src/pages/fr/politiques/annulation.astro @@ -0,0 +1,15 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Politique d’Annulation

+
    +
  • Annulation tardive: 50% des frais si annulé dans les 14 jours avant l’arrivée.
  • +
  • No‑show: traité comme une annulation tardive.
  • +
  • Caution: aucune.
  • +
  • Frais de ménage: 20 € si laissé sale, gratuit sinon.
  • +
+

Dernière mise à jour: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/fr/politiques/conditions.astro b/src/pages/fr/politiques/conditions.astro new file mode 100644 index 0000000..cb5710d --- /dev/null +++ b/src/pages/fr/politiques/conditions.astro @@ -0,0 +1,20 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Conditions Générales

+

Nom légal: VillaFleurie (Jacques Gordien)

+

Contact: location.villafleurie@gmail.com · +33 6 58 96 12 79

+

Hébergement: Netlify · Juridiction: France

+

Réservations

+
    +
  • Séjour minimum: 3 nuits.
  • +
  • Arrivée: 14:00 · Départ: 11:00.
  • +
  • Paiements et confirmations communiqués par email.
  • +
+

Responsabilités

+

Le client est responsable des dommages causés pendant le séjour. Nous déclinons toute responsabilité pour les objets perdus.

+

Dernière mise à jour: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/fr/politiques/confidentialite.astro b/src/pages/fr/politiques/confidentialite.astro new file mode 100644 index 0000000..ba685d9 --- /dev/null +++ b/src/pages/fr/politiques/confidentialite.astro @@ -0,0 +1,19 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Politique de Confidentialité

+

Nous collectons les données soumises via le formulaire (nom, email, dates, etc.) pour répondre à votre demande.

+
    +
  • Base légale: exécution de mesures précontractuelles.
  • +
  • Conservation: durée nécessaire au traitement et obligations légales.
  • +
  • Partage: email de notification (propriétaire), pas de revente.
  • +
  • Analytics: Plausible (sans cookie par défaut).
  • +
  • Hébergement: Netlify (données de formulaire hébergées chez Netlify).
  • +
  • Droits RGPD: accès, rectification, suppression — contactez-nous.
  • +
+

Contact: location.villafleurie@gmail.com

+

Dernière mise à jour: {new Date().toISOString().slice(0,10)}

+
+
diff --git a/src/pages/fr/politiques/reglement.astro b/src/pages/fr/politiques/reglement.astro new file mode 100644 index 0000000..2bfcc9a --- /dev/null +++ b/src/pages/fr/politiques/reglement.astro @@ -0,0 +1,15 @@ +--- +import BaseLayout from '../../../layouts/BaseLayout.astro'; +--- + +
+

Règlement Intérieur

+
    +
  • Non‑fumeur, pas de fêtes, pas d’animaux.
  • +
  • Respect du voisinage et du calme.
  • +
  • Check‑in 14:00 · Check‑out 11:00.
  • +
  • Utilisation normale des équipements; signaler tout dommage.
  • +
+

Dernière mise à jour: {new Date().toISOString().slice(0,10)}

+
+