diff --git a/astro.config.mjs b/astro.config.mjs index d7ac878..a9d7c4f 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -12,6 +12,13 @@ export default defineConfig({ image: { domains: ["images.unsplash.com"], }, + i18n: { + defaultLocale: "en", + locales: ["en", "fr"], + routing: { + prefixDefaultLocale: false + } + }, prefetch: true, integrations: [ tailwind(), diff --git a/src/components/sections/ContactSection_fr.astro b/src/components/sections/ContactSection_fr.astro new file mode 100644 index 0000000..0675203 --- /dev/null +++ b/src/components/sections/ContactSection_fr.astro @@ -0,0 +1,119 @@ +--- +// Import the necessary dependencies. +import AuthBtn from "../ui/buttons/AuthBtn.astro"; +import ContactIconBlock from "../ui/blocks/ContactIconBlock.astro"; +import TextInput from "../ui/forms/input/TextInput.astro"; +import EmailContactInput from "../ui/forms/input/EmailContactInput.astro"; +import PhoneInput from "../ui/forms/input/PhoneInput.astro"; +import TextAreaInput from "../ui/forms/input/TextAreaInput.astro"; +import Icon from "../ui/icons/Icon.astro"; + +// Define the variables that will be used in this component +const title: string = "Contactez-nous"; +const subTitle: string = + "Vous avez des questions ou souhaitez discuter d'un projet ? Contactez-nous et laissons-nous élaborer la solution parfaite avec nos outils et services."; +const formTitle: string = "Remplissez le formulaire ci-dessous"; +const formSubTitle: string = + "Nous vous répondrons dans un délai de 1 à 2 jours ouvrables."; +--- + + +
+
+
+

+ {title} +

+

+ {subTitle} +

+
+ +
+
+

+ {formTitle} +

+ + +
+
+
+ + +
+ + + +
+ +
+ +
+ +
+

+ {formSubTitle} +

+
+
+
+ + +
+ + + + + + + + + + + +
+
+
+
diff --git a/src/pages/fr/404.astro b/src/pages/fr/404.astro new file mode 100644 index 0000000..f03d793 --- /dev/null +++ b/src/pages/fr/404.astro @@ -0,0 +1,45 @@ +--- +// Import section components +import MainLayout from "@/layouts/MainLayout.astro"; +import Btn404 from "@/components/ui/buttons/Btn404.astro"; + +// Define variables for page content +const title: string = "404"; +const subTitle: string = "Oops, ce n'est pas l'outil que vous recherchiez !"; +const content: string = + "Ne laissez pas ce contretemps vous ralentir. Revenons à la construction de votre chef-d'œuvre."; +const btnTitle: string = "Retournez"; +--- + + +
+
+
+

+ {title} +

+

+ {subTitle} +

+ +

+ {content} +

+ + +
+
+
+
+ + diff --git a/src/pages/fr/contact.astro b/src/pages/fr/contact.astro new file mode 100644 index 0000000..04531e7 --- /dev/null +++ b/src/pages/fr/contact.astro @@ -0,0 +1,30 @@ +--- +// Import the necessary components +import MainLayout from "@/layouts/MainLayout.astro"; +import ContactSection from "@/components/sections/ContactSection_fr.astro"; +--- + + + + + diff --git a/src/pages/fr/index.astro b/src/pages/fr/index.astro new file mode 100644 index 0000000..f1a8d65 --- /dev/null +++ b/src/pages/fr/index.astro @@ -0,0 +1,143 @@ +--- +// Import the necessary components +import MainLayout from "@/layouts/MainLayout.astro"; +import HeroSection from "@/components/sections/landing/HeroSection.astro"; +import HeroSectionAlt from "@/components/sections/landing/HeroSectionAlt.astro"; +import ClientsSection from "@/components/sections/landing/ClientsSection.astro"; +import FeaturesGeneral from "@/components/sections/features/FeaturesGeneral.astro"; +import FeaturesNavs from "@/components/sections/features/FeaturesNavs.astro"; +import TestimonialsSection from "@/components/sections/testimonials/TestimonialsSection.astro"; +import PricingSection from "@/components/sections/pricing/PricingSection.astro"; +import FAQ from "@/components/sections/FAQ.astro"; +import AnnouncementBanner from "@/components/ui/banners/AnnouncementBanner.astro"; +import heroImage from "@/images/hero-image.avif"; +import faqs from "@/data_files/faqs.json"; +import features from "@/data_files/features.json"; +import featureImage from "@/images/features-image.avif"; +import construction from "@/images/construction-image.avif"; +import tools from "@/images/automated-tools.avif"; +import dashboard from "@/images/dashboard-image.avif"; + +const avatarSrcs: Array = [ + "https://images.unsplash.com/photo-1568602471122-7832951cc4c5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80", + "https://images.unsplash.com/photo-1531927557220-a9e23c1e4794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80", + "https://images.unsplash.com/photo-1541101767792-f9b2b1c4f127?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&&auto=format&fit=facearea&facepad=3&w=300&h=300&q=80", + "https://images.unsplash.com/photo-1492562080023-ab3db95bfbce?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=facearea&facepad=2&w=300&h=300&q=80", +]; +--- + + + + + ScrewFast` + subTitle="Outils matériels de haute qualité et services de construction experts pour tous les besoins en projet." + primaryBtn="Commencez à explorer" + primaryBtnURL="/products" + secondaryBtn="Contacter l'équipe commerciale" + secondaryBtnURL="/contact" + withReview={true} + avatars={avatarSrcs} + rating=`4.8 / 5` + starCount={4} + reviews=`À partir de plus de 12,8k avis` + src={heroImage} + alt="Pile de boîtes de produits ScrewFast contenant des outils matériels assortis" + /> + + + + + + ScrewFast pour répondre parfaitement à vos besoins en matériel et en construction.` + tabs={[ + { + heading: "Outils de pointe", + content: + "Optimisez vos projets avec les outils de pointe de ScrewFast. Faites l'expérience d'une efficacité accrue dans la gestion de la construction avec nos solutions automatisées sophistiquées.", + svg: "tools", + src: tools, + alt: "Équipement lourd jaune et noir sur un champ d'herbe brune", + first: true, + }, + { + heading: "Tableaux de bord intuitifs", + content: + "Naviguez facilement avec les tableaux de bord intuitifs de ScrewFast. Configurez et supervisez vos projets de manière transparente, avec des interfaces conviviales conçues pour une gestion efficace des flux de travail rapide et efficace.", + svg: "dashboard", + src: dashboard, + alt: "Capture d'écran ou représentation graphique du tableau de bord intuitif", + second: true, + }, + { + heading: "Fonctionnalités robustes", + content: + "Minimisez la complexité, maximisez la productivité. Les fonctionnalités robustes de ScrewFast sont conçues pour rationaliser votre processus de construction, offrant des résultats qui se distinguent par leur excellence.", + svg: "house", + src: construction, + alt: "Structure métallique grise d'un bâtiment près d'une grue à tour pendant la journée", + }, + ]} + /> + + + + + + + + + diff --git a/src/pages/fr/products/index.astro b/src/pages/fr/products/index.astro new file mode 100644 index 0000000..8f215e5 --- /dev/null +++ b/src/pages/fr/products/index.astro @@ -0,0 +1,136 @@ +--- +// Importing necessary components +import MainLayout from "@/layouts/MainLayout.astro"; +import PrimaryCTA from "@/components/ui/buttons/PrimaryCTA.astro"; +import CardSmall from "@/components/ui/cards/CardSmall.astro"; +import CardWide from "@/components/ui/cards/CardWide.astro"; +import FeaturesStatsAlt from "@/components/sections/features/FeaturesStatsAlt.astro"; +import TestimonialsSectionAlt from "@/components/sections/testimonials/TestimonialsSectionAlt.astro"; + +// Importing necessary functions from Astro +import { getCollection } from "astro:content"; +import type { CollectionEntry } from "astro:content"; + +// Fetching all the product related content and sorting it by main.id +const product: CollectionEntry<"products">[] = ( + await getCollection("products") +).sort( + (a: CollectionEntry<"products">, b: CollectionEntry<"products">) => + a.data.main.id - b.data.main.id +); + +// Define variables for page content +const title: string = "Produits"; +const subTitle: string = + "Explorez la durabilité et la précision des outils ScrewFast, conçus aussi bien pour les professionnels que pour les amateurs. Chacun de nos produits est fabriqué avec précision et conçu pour durer, garantissant que vous disposez du bon outil pour chaque tâche."; + +// Testimonial data that will be rendered in the component +const testimonials = [ + { + content: + "Depuis que nous avons adopté les outils matériels de ScrewFast, l'efficacité sur nos chantiers de construction a explosé. La durabilité des boulons hexagonaux et la précision des vis machine sont tout simplement inégalées. C'est rafraîchissant de travailler avec une entreprise qui comprend vraiment les exigences quotidiennes de l'industrie.", + author: "Jason Clark", + role: "Contremaître de chantier | TopBuild", + avatarSrc: + "https://images.unsplash.com/photo-1500648767791-00dcc994a43e?q=80&w=1374&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=facearea&facepad=2&w=320&h=320&q=80", + avatarAlt: "Description de l'image", + }, + + { + content: + "En tant que designer d'intérieur, je suis toujours à la recherche de matériaux et d'outils de haute qualité qui m'aident à donner vie à mes visions. L'assortiment de vis mixtes de ScrewFast a révolutionné mes projets, offrant le mélange parfait de qualité et de variété. Le support client exceptionnel était la cerise sur le gâteau !", + author: "Maria Gonzalez", + role: "Designer d'intérieur | Creative Spaces", + avatarSrc: + "https://images.unsplash.com/photo-1544005313-94ddf0286df2?q=80&w=1376&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D8&auto=format&fit=facearea&facepad=2&w=320&h=320&q=80", + avatarAlt: "Description de l'image", + }, + + { + content: + "Je suis menuisier professionnel depuis plus de 15 ans, et je peux sincèrement dire que les boulons et écrous à tarauder de ScrewFast sont parmi les meilleurs que j'ai utilisés. Ils adhèrent comme aucun autre, et j'ai une confiance totale dans chaque joint et élément. De plus, le service est impeccable - ils se soucient vraiment du succès de mon projet.", + author: "Richard Kim", + role: "Menuisier-Maître | WoodWright", + avatarSrc: + "https://images.unsplash.com/photo-1474176857210-7287d38d27c6?q=80&w=1470&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D8&auto=format&fit=facearea&facepad=2&w=320&h=320&q=80", + avatarAlt: "Description de l'image", + }, +]; +--- + + +
+
+
+

+ {title} +

+ { + subTitle && ( + + ) + } +
+ +
+ + +
+ { + product.map((product, index) => { + const position = index % 4; + if (position === 0 || position === 3) { + return ; + } else { + return ; + } + }) + } +
+
+ + + + +
diff --git a/src/pages/fr/services.astro b/src/pages/fr/services.astro new file mode 100644 index 0000000..ee1d242 --- /dev/null +++ b/src/pages/fr/services.astro @@ -0,0 +1,181 @@ +--- +// Import necessary components +import MainLayout from "@/layouts/MainLayout.astro"; +import MainSection from "@/components/ui/blocks/MainSection.astro"; +import LeftSection from "@/components/ui/blocks/LeftSection.astro"; +import RightSection from "@/components/ui/blocks/RightSection.astro"; +import FeaturesStats from "@/components/sections/features/FeaturesStats.astro"; + +// Import necessary images +import blueprints from "@/images/blueprints-image.avif"; +import personWorking from "@/images/person-working.avif"; +import beforeAfter from "@/images/before-after.avif"; +import constructionWorkers from "@/images/construction-workers.avif"; +import aerialView from "@/images/aerial-view.avif"; +import usingTools from "@/images/using-tools.avif"; +import progressBuilding from "@/images/progress-building.avif"; +import underConstruction from "@/images/under-construction.avif"; + +interface Article { + isRightSection: boolean; + title: string; + subTitle: string; + btnExists?: boolean; + btnTitle?: string; + btnURL?: string; + single?: boolean; + img?: any; + imgAlt?: string; + imgOne?: any; + imgOneAlt?: string; + imgTwo?: any; + imgTwoAlt?: string; +} + +const articles: Article[] = [ + { + isRightSection: true, + title: "Fournir des conseils d'experts", + subTitle: + "Se lancer dans un projet de construction peut être accablant. Avec nos services de consultation professionnelle, nous vous guidons à chaque étape, en veillant à ce que vous preniez des décisions éclairées. Que vous soyez un passionné du bricolage ou un entrepreneur qualifié, nos experts sont là pour vous offrir des conseils sur mesure sur la sélection de produits, l'envergure du projet et la conformité aux réglementations locales.", + single: false, + imgOne: blueprints, + imgOneAlt: "Plans et tablette numérique avec des plans de construction.", + imgTwo: personWorking, + imgTwoAlt: "Personne travaillant au bureau", + }, + { + isRightSection: false, + title: "Transformer les conceptions en réalité", + subTitle: + "Nos artisans qualifiés apportent précision et excellence à chaque projet de construction. Des installations mineures aux travaux structuraux substantiels, ScrewFast offre des services de construction fiables pour concrétiser vos plans. Nous assurons les normes les plus élevées de sécurité et de savoir-faire, en utilisant des outils et des matériaux de haute qualité de notre vaste inventaire.", + img: beforeAfter, + imgAlt: "Chantier de construction avant et après", + btnExists: true, + btnTitle: "En savoir plus", + btnURL: "#", + }, + { + isRightSection: true, + title: "Naviguer dans les projets avec une supervision professionnelle", + subTitle: + "La gestion de projet efficace est au cœur de toute construction réussie. ScrewFast offre une planification approfondie et des services de gestion solides qui maintiennent votre projet dans les délais et dans le budget. Laissez-nous gérer les complexités de la coordination des flux de travail, de l'allocation des ressources et de la communication avec les parties prenantes pendant que vous vous concentrez sur votre vision.", + single: false, + imgOne: constructionWorkers, + imgOneAlt: "Ouvriers du bâtiment orchestrant un projet", + imgTwo: aerialView, + imgTwoAlt: "Vue aérienne d'une construction gérée", + }, + { + isRightSection: false, + title: "Garantir des performances durables", + subTitle: + "Notre engagement envers votre projet ne s'arrête pas à son achèvement. ScrewFast propose des services de maintenance et de support continus pour assurer la longévité et les performances de votre construction. Des vérifications régulières à l'assistance en cas d'urgence, notre équipe réactive est là pour vous fournir un soutien sans faille.", + img: usingTools, + imgAlt: + "Homme en gilet orange et noir portant un casque blanc tenant un outil électrique jaune et noir", + }, + { + isRightSection: true, + title: "Élaboration de stratégies sur mesure pour des défis uniques", + subTitle: + "Pour nos clients d'entreprise de plus grande envergure, ScrewFast propose des solutions personnalisées conçues pour répondre à des défis spécifiques de l'industrie. En comprenant vos besoins uniques, nous concevons des stratégies sur mesure visant à optimiser vos opérations, à améliorer l'efficacité et à faire avancer votre entreprise.", + single: false, + imgOne: progressBuilding, + imgOneAlt: "Structure de bâtiment en cours de construction", + imgTwo: underConstruction, + imgTwoAlt: "Bâtiment marron et gris en construction", + btnExists: true, + btnTitle: "Lire la suite", + btnURL: "#", + }, +]; +--- + + + + + + { + articles.map((article) => { + return article.isRightSection ? ( + + ) : ( + + ); + }) + } + + +