- Implemented astro-i18next for multi-language support, including English, Dutch, and Italian. - Configured default locale and language fallback settings. - Defined routes for localized content in the configuration. - Updated package.json and package-lock.json to include new dependencies for i18next and related plugins.
135 lines
12 KiB
JavaScript
135 lines
12 KiB
JavaScript
import '../chunks/page-ssr_ChKiSmuh.mjs';
|
|
import { c as createComponent, r as renderComponent, a as renderTemplate, m as maybeRenderHead, b as addAttribute } from '../chunks/astro/server_DJC9Xx9K.mjs';
|
|
import 'kleur/colors';
|
|
import { t, $ as $$BaseLayout, S as SERVICES, a as $$Header, b as $$Footer } from '../chunks/Footer_BFBz0LQo.mjs';
|
|
import { $ as $$CTA } from '../chunks/CTA_CIVpts3M.mjs';
|
|
export { renderers } from '../renderers.mjs';
|
|
|
|
const $$Services = createComponent(($$result, $$props, $$slots) => {
|
|
const getServiceDetails = (serviceId) => {
|
|
switch (serviceId) {
|
|
case "microsoft365":
|
|
return {
|
|
benefits: [
|
|
"Seamless transition to Microsoft 365 with expert guidance",
|
|
"Zero downtime email migrations and data transfer",
|
|
"Custom configuration of all Office applications",
|
|
"Enhanced team collaboration through Microsoft Teams",
|
|
"Secure document management with SharePoint",
|
|
"Streamlined admin center management"
|
|
],
|
|
process: [
|
|
"Initial assessment of your current setup",
|
|
"Custom migration plan development",
|
|
"Step-by-step implementation",
|
|
"User training and support",
|
|
"Ongoing maintenance and optimization"
|
|
]
|
|
};
|
|
case "management":
|
|
return {
|
|
benefits: [
|
|
"Proactive system monitoring and maintenance",
|
|
"Automated workflow implementation",
|
|
"Enhanced security and compliance",
|
|
"Regular performance optimization",
|
|
"Cost-effective resource utilization",
|
|
"Reduced IT management overhead"
|
|
],
|
|
process: [
|
|
"Environment assessment",
|
|
"Automation opportunity identification",
|
|
"Monitoring setup and configuration",
|
|
"Regular maintenance scheduling",
|
|
"Continuous improvement implementation"
|
|
]
|
|
};
|
|
case "networking":
|
|
return {
|
|
benefits: [
|
|
"Enterprise-grade network infrastructure",
|
|
"High-performance Ubiquiti/UniFi solutions",
|
|
"Advanced security implementation",
|
|
"Reliable and fast connectivity",
|
|
"Scalable network architecture",
|
|
"Professional network monitoring"
|
|
],
|
|
process: [
|
|
"Network requirements analysis",
|
|
"Infrastructure design and planning",
|
|
"Equipment selection and deployment",
|
|
"Security implementation",
|
|
"Performance optimization"
|
|
]
|
|
};
|
|
case "hosting":
|
|
return {
|
|
benefits: [
|
|
"High-performance web hosting",
|
|
"Secure and reliable infrastructure",
|
|
"Automated backup systems",
|
|
"SSL certificate management",
|
|
"Domain name administration",
|
|
"Regular maintenance and updates"
|
|
],
|
|
process: [
|
|
"Hosting requirements assessment",
|
|
"Server configuration and setup",
|
|
"Security implementation",
|
|
"Backup system configuration",
|
|
"Ongoing monitoring and maintenance"
|
|
]
|
|
};
|
|
case "custom":
|
|
return {
|
|
benefits: [
|
|
"Flexible solutions tailored to your unique business needs",
|
|
"Professional project management and documentation",
|
|
"Clear communication and consultation throughout the process",
|
|
"Integration with existing systems and workflows",
|
|
"Scalable and future-proof implementations",
|
|
"Support for requirements beyond our standard services"
|
|
],
|
|
process: [
|
|
"Initial consultation and requirements gathering",
|
|
"Feasibility study and stakeholder alignment",
|
|
"Detailed project planning with all involved parties",
|
|
"Phased implementation with regular checkpoints",
|
|
"Thorough testing and quality assurance",
|
|
"Post-implementation support and maintenance"
|
|
],
|
|
additionalInfo: `While we offer standardized services for common IT needs, we understand that every business is unique. We're open to discussing and supporting custom IT projects that may fall outside our standard service offerings. Our professional approach ensures that all stakeholders are involved in the consultation, planning, and implementation phases. This collaborative process helps us deliver solutions that truly meet your specific requirements.`
|
|
};
|
|
default:
|
|
return {
|
|
benefits: [],
|
|
process: []
|
|
};
|
|
}
|
|
};
|
|
return renderTemplate`${renderComponent($$result, "BaseLayout", $$BaseLayout, { "title": `${t("nav.services")} | ${t("meta.title")}`, "description": "Comprehensive IT services for small businesses: Microsoft 365 support, networking solutions, web hosting, and custom IT projects." }, { "default": ($$result2) => renderTemplate` ${renderComponent($$result2, "Header", $$Header, {})} ${maybeRenderHead()}<main> <!-- Services Hero --> <section class="py-20 bg-gradient-to-br from-background via-background to-muted"> <div class="container-custom"> <div class="text-center max-w-4xl mx-auto animate-on-scroll"> <h1 class="text-4xl sm:text-5xl lg:text-6xl font-display font-bold text-foreground mb-6"> ${t("services.title")} </h1> <p class="text-lg sm:text-xl text-muted-foreground leading-relaxed"> ${t("services.subtitle")} </p> </div> </div> </section> <!-- Detailed Services --> <section class="py-20 bg-background"> <div class="container-custom"> <div class="space-y-32"> ${SERVICES.map((service, index) => {
|
|
const details = getServiceDetails(service.id);
|
|
return renderTemplate`<div${addAttribute(service.id, "id")}${addAttribute(`grid grid-cols-1 lg:grid-cols-2 gap-12 items-start animate-on-scroll ${index % 2 === 1 ? "lg:grid-flow-col-reverse" : ""}`, "class")}> <!-- Service content - Left side --> <div> <div class="text-5xl mb-4">${service.icon}</div> <h2 class="text-3xl sm:text-4xl font-display font-bold text-foreground mb-4"> ${t(service.titleKey)} </h2> <p class="text-lg text-muted-foreground mb-8 leading-relaxed"> ${t(service.descriptionKey)} </p> ${service.id === "custom" && renderTemplate`<div class="mb-8 p-4 bg-primary/5 rounded-lg border border-primary/10"> <p class="text-muted-foreground leading-relaxed"> ${details.additionalInfo} </p> </div>`} <!-- Key Benefits --> <div class="mb-8"> <h3 class="text-xl font-semibold text-foreground mb-4">Key Benefits</h3> <ul class="space-y-3"> ${details.benefits.map((benefit) => renderTemplate`<li class="flex items-start"> <svg class="h-5 w-5 mt-1 mr-3 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> </svg> <span class="text-foreground">${benefit}</span> </li>`)} </ul> </div> <!-- Our Process --> <div class="mb-8"> <h3 class="text-xl font-semibold text-foreground mb-4">Our Process</h3> <ul class="space-y-3"> ${details.process.map((step, stepIndex) => renderTemplate`<li class="flex items-start"> <div class="flex-shrink-0 h-6 w-6 rounded-full bg-primary/10 text-primary flex items-center justify-center mr-3 mt-0.5"> ${stepIndex + 1} </div> <span class="text-foreground">${step}</span> </li>`)} </ul> </div> <!-- CTA button --> <a href="/contact" class="btn-primary px-6 py-3 rounded-lg inline-flex items-center group">
|
|
Get Started
|
|
<svg class="h-4 w-4 ml-2 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path> </svg> </a> </div> <!-- Service features - Right side --> <div class="card p-8 bg-gradient-to-br from-primary/5 via-primary/10 to-secondary/5"> <div class="space-y-6"> <div class="text-center mb-8"> <div class="text-6xl mb-4 opacity-20">${service.icon}</div> <h3 class="text-xl font-semibold text-foreground">Features & Capabilities</h3> </div> ${service.features.map((feature) => renderTemplate`<div class="bg-background/50 rounded-lg p-4"> <div class="flex items-start"> <svg class="h-5 w-5 mt-0.5 mr-3 text-primary flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"> <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path> </svg> <div> <h4 class="font-medium text-foreground mb-1">${t(feature)}</h4> <p class="text-sm text-muted-foreground"> ${feature.includes("migrations") && "Seamless data transfer with zero downtime"} ${feature.includes("apps") && "Full setup and optimization of Office applications"} ${feature.includes("teams") && "Custom Teams environment configuration"} ${feature.includes("sharepoint") && "Document management and collaboration setup"} ${feature.includes("admin") && "Complete admin portal configuration"} ${feature.includes("automation") && "Custom workflow automation solutions"} ${feature.includes("monitoring") && "Proactive system monitoring and alerts"} ${feature.includes("maintenance") && "Regular updates and maintenance tasks"} ${feature.includes("optimization") && "Performance tuning and improvements"} ${feature.includes("ubiquiti") && "Expert Ubiquiti/UniFi implementation"} ${feature.includes("infrastructure") && "Enterprise-grade network setup"} ${feature.includes("security") && "Advanced security measures"} ${feature.includes("webhosting") && "High-performance hosting solutions"} ${feature.includes("domains") && "Complete domain management"} ${feature.includes("ssl") && "SSL certificate installation and renewal"} ${feature.includes("backup") && "Automated backup and recovery"} </p> </div> </div> </div>`)} </div> </div> </div>`;
|
|
})} </div> </div> </section> <!-- Why Choose Us --> <section class="py-20 bg-muted/30"> <div class="container-custom"> <div class="text-center mb-16 animate-on-scroll"> <h2 class="text-3xl sm:text-4xl lg:text-5xl font-display font-bold text-foreground mb-4">
|
|
Why Choose Tiber365?
|
|
</h2> <p class="text-lg sm:text-xl text-muted-foreground max-w-3xl mx-auto">
|
|
We're dedicated to providing reliable, professional IT services that help your business thrive.
|
|
</p> </div> <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> <div class="card p-6 text-center animate-on-scroll"> <div class="text-4xl mb-4">⚡</div> <h3 class="text-xl font-semibold text-foreground mb-3">Fast Response</h3> <p class="text-muted-foreground">Quick turnaround times and 24/7 support when you need it most.</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.1s"> <div class="text-4xl mb-4">🎯</div> <h3 class="text-xl font-semibold text-foreground mb-3">Expert Knowledge</h3> <p class="text-muted-foreground">Years of experience with Microsoft 365, networking, and modern IT solutions.</p> </div> <div class="card p-6 text-center animate-on-scroll" style="animation-delay: 0.2s"> <div class="text-4xl mb-4">💼</div> <h3 class="text-xl font-semibold text-foreground mb-3">Business Focus</h3> <p class="text-muted-foreground">We understand small business needs and provide cost-effective solutions.</p> </div> </div> </div> </section> ${renderComponent($$result2, "CTA", $$CTA, {})} </main> ${renderComponent($$result2, "Footer", $$Footer, {})} ` })}`;
|
|
}, "/Users/richard/Website Development/tiber365/src/pages/services.astro", void 0);
|
|
|
|
const $$file = "/Users/richard/Website Development/tiber365/src/pages/services.astro";
|
|
const $$url = "/services";
|
|
|
|
const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
__proto__: null,
|
|
default: $$Services,
|
|
file: $$file,
|
|
url: $$url
|
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
|
|
const page = () => _page;
|
|
|
|
export { page };
|