diff --git a/app/modules/billing/definition.py b/app/modules/billing/definition.py index afb3a205..9773cfc8 100644 --- a/app/modules/billing/definition.py +++ b/app/modules/billing/definition.py @@ -34,6 +34,9 @@ def _get_platform_context(request: Any, db: Any, platform: Any) -> dict[str, Any """ from app.core.config import settings from app.modules.billing.models import SubscriptionTier, TierCode + from app.modules.billing.services.feature_aggregator import feature_aggregator + + language = getattr(request.state, "language", "fr") or "fr" tiers_db = ( db.query(SubscriptionTier) @@ -48,14 +51,28 @@ def _get_platform_context(request: Any, db: Any, platform: Any) -> dict[str, Any tiers = [] for tier in tiers_db: feature_codes = sorted(tier.get_feature_codes()) + + # Build features list from declarations for template rendering + features = [] + for code in feature_codes: + decl = feature_aggregator.get_declaration(code) + if decl: + features.append({ + "code": code, + "name_key": decl.name_key, + "limit": tier.get_limit_for_feature(code), + "is_quantitative": decl.feature_type.value == "quantitative", + }) + tiers.append({ "code": tier.code, - "name": tier.name, + "name": tier.get_translated_name(language), "price_monthly": tier.price_monthly_cents / 100, "price_annual": (tier.price_annual_cents / 100) if tier.price_annual_cents else None, "feature_codes": feature_codes, + "features": features, "products_limit": tier.get_limit_for_feature("products_limit"), "orders_per_month": tier.get_limit_for_feature("orders_per_month"), "team_members": tier.get_limit_for_feature("team_members"), diff --git a/app/modules/billing/migrations/versions/billing_002_add_tier_name_translations.py b/app/modules/billing/migrations/versions/billing_002_add_tier_name_translations.py new file mode 100644 index 00000000..9968b0dd --- /dev/null +++ b/app/modules/billing/migrations/versions/billing_002_add_tier_name_translations.py @@ -0,0 +1,31 @@ +"""add name_translations to subscription_tiers + +Revision ID: billing_002 +Revises: hosting_001 +Create Date: 2026-03-03 +""" + +import sqlalchemy as sa + +from alembic import op + +revision = "billing_002" +down_revision = "hosting_001" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.add_column( + "subscription_tiers", + sa.Column( + "name_translations", + sa.JSON(), + nullable=True, + comment="Language-keyed name dict for multi-language support", + ), + ) + + +def downgrade() -> None: + op.drop_column("subscription_tiers", "name_translations") diff --git a/app/modules/billing/models/subscription.py b/app/modules/billing/models/subscription.py index 69be3bfb..1b798d79 100644 --- a/app/modules/billing/models/subscription.py +++ b/app/modules/billing/models/subscription.py @@ -100,6 +100,12 @@ class SubscriptionTier(Base, TimestampMixin): code = Column(String(30), nullable=False, index=True) name = Column(String(100), nullable=False) + name_translations = Column( + JSON, + nullable=True, + default=None, + comment="Language-keyed name dict for multi-language support", + ) description = Column(Text, nullable=True) # Pricing (in cents for precision) @@ -154,6 +160,16 @@ class SubscriptionTier(Base, TimestampMixin): """Check if this tier includes a specific feature.""" return feature_code in self.get_feature_codes() + def get_translated_name(self, lang: str, default_lang: str = "fr") -> str: + """Get name in the given language, falling back to default_lang then self.name.""" + if self.name_translations: + return ( + self.name_translations.get(lang) + or self.name_translations.get(default_lang) + or self.name + ) + return self.name + # ============================================================================ # AddOnProduct - Purchasable add-ons diff --git a/app/modules/billing/templates/billing/platform/pricing.html b/app/modules/billing/templates/billing/platform/pricing.html index 56f44a61..29ddeef5 100644 --- a/app/modules/billing/templates/billing/platform/pricing.html +++ b/app/modules/billing/templates/billing/platform/pricing.html @@ -66,32 +66,23 @@ + {# Features list (dynamic from module providers) #} + {% if tier.features %}
- {{ tier.description or '' }} -
{# Price #}We understand the unique needs of Luxembourg commerce — from multilingual support (FR/DE/EN) to EU VAT compliance.
""", + "content_translations": tt( + # English + """Wizard is the digital toolkit for Luxembourg businesses. We provide integrated solutions for order management, customer loyalty, and online presence.
+To empower Luxembourg businesses with modern, easy-to-use digital tools that help them grow and thrive in the digital age.
+We understand the unique needs of Luxembourg commerce — from multilingual support (FR/DE/EN) to EU VAT compliance.
+Wizard est la boîte à outils numérique pour les entreprises luxembourgeoises. Nous proposons des solutions intégrées pour la gestion des commandes, la fidélisation client et la présence en ligne.
+Donner aux entreprises luxembourgeoises des outils numériques modernes et faciles à utiliser pour les aider à croître et prospérer à l'ère du numérique.
+Nous comprenons les besoins uniques du commerce luxembourgeois — du support multilingue (FR/DE/EN) à la conformité TVA européenne.
+Wizard ist das digitale Toolkit für luxemburgische Unternehmen. Wir bieten integrierte Lösungen für Bestellverwaltung, Kundenbindung und Online-Präsenz.
+Luxemburgische Unternehmen mit modernen, benutzerfreundlichen digitalen Werkzeugen zu stärken, die ihnen helfen, im digitalen Zeitalter zu wachsen und zu gedeihen.
+Wir verstehen die einzigartigen Bedürfnisse des luxemburgischen Handels — von mehrsprachiger Unterstützung (FR/DE/EN) bis zur EU-MwSt-Konformität.
+Wizard ass den digitalen Toolkit fir lëtzebuerger Betriber. Mir bidden integréiert Léisunge fir Bestellverwaltung, Clientsfidélisatioun an Online-Präsenz.
+Lëtzebuerger Betriber mat modernen, einfach ze benotzenden digitale Werkzeuger ze stäerken, fir hinnen ze hëllefen am digitalen Zäitalter ze wuessen.
+Mir verstinn déi eenzegaarteg Besoinë vum lëtzebuerger Commerce — vu méisproocheger Ënnerstëtzung (FR/DE/EN) bis zur EU-MwSt-Konformitéit.
+Luxembourg
""", + "content_translations": tt( + # English + """We'd love to hear from you. Get in touch with our team.
+Interested in our solutions for your business?
+Already a customer? Our support team is here to help.
+Luxembourg
+Nous serions ravis d'avoir de vos nouvelles. Contactez notre équipe.
+Intéressé par nos solutions pour votre entreprise ?
+Déjà client ? Notre équipe de support est là pour vous aider.
+Luxembourg
+Wir freuen uns, von Ihnen zu hören. Nehmen Sie Kontakt mit unserem Team auf.
+Interessiert an unseren Lösungen für Ihr Unternehmen?
+Bereits Kunde? Unser Support-Team hilft Ihnen gerne weiter.
+Luxemburg
+Mir géife gäre vun Iech héieren. Kontaktéiert eist Team.
+Interesséiert un eise Léisunge fir Äre Betrib?
+Schonn Client? Eist Support-Team ass do fir Iech ze hëllefen.
+Lëtzebuerg
+Yes. We use industry-standard encryption and follow GDPR regulations for data protection.
""", + "content_translations": tt( + # English + """Wizard is a suite of digital tools for Luxembourg businesses, including order management (OMS), customer loyalty programs, and website building.
+Wizard is designed for Luxembourg businesses of all sizes — from individual Letzshop sellers to multi-store retailers.
+Yes! All our solutions offer a free trial period. No credit card required to start.
+Yes, you can upgrade or downgrade your plan at any time.
+Our platform supports French, German, and English — the three official languages of Luxembourg.
+Yes. We use industry-standard encryption and follow GDPR regulations for data protection.
+Wizard est une suite d'outils numériques pour les entreprises luxembourgeoises, comprenant la gestion des commandes (OMS), les programmes de fidélité client et la création de sites web.
+Wizard est conçu pour les entreprises luxembourgeoises de toutes tailles — des vendeurs Letzshop individuels aux détaillants multi-boutiques.
+Oui ! Toutes nos solutions offrent une période d'essai gratuite. Aucune carte de crédit requise pour commencer.
+Oui, vous pouvez passer à un plan supérieur ou inférieur à tout moment.
+Notre plateforme supporte le français, l'allemand et l'anglais — les trois langues officielles du Luxembourg.
+Oui. Nous utilisons un chiffrement aux normes de l'industrie et respectons les réglementations RGPD pour la protection des données.
+Wizard ist eine Suite digitaler Werkzeuge für luxemburgische Unternehmen, einschließlich Bestellverwaltung (OMS), Kundenbindungsprogramme und Website-Erstellung.
+Wizard ist für luxemburgische Unternehmen jeder Größe konzipiert — von einzelnen Letzshop-Verkäufern bis hin zu Multi-Store-Einzelhändlern.
+Ja! Alle unsere Lösungen bieten eine kostenlose Testphase. Keine Kreditkarte erforderlich.
+Ja, Sie können Ihren Plan jederzeit upgraden oder downgraden.
+Unsere Plattform unterstützt Französisch, Deutsch und Englisch — die drei offiziellen Sprachen Luxemburgs.
+Ja. Wir verwenden branchenübliche Verschlüsselung und befolgen die DSGVO-Vorschriften zum Datenschutz.
+Wizard ass eng Suite vun digitale Werkzeuger fir lëtzebuerger Betriber, inklusiv Bestellverwaltung (OMS), Clientsfidélisatiounsprogrammer a Website-Erstellen.
+Wizard ass fir lëtzebuerger Betriber vun all Gréisst konzipéiert — vun eenzelne Letzshop-Verkeefer bis zu Multi-Store-Detaillisten.
+Jo! All eis Léisunge bidden eng gratis Testphas. Keng Kreditkaart néideg fir unzefänken.
+Jo, Dir kënnt Äre Plang jidderzäit upgraden oder downgraden.
+Eis Plattform ënnerstëtzt Franséisch, Däitsch an Englesch — déi dräi offiziell Sproochen vu Lëtzebuerg.
+Jo. Mir benotzen Industriestandard-Verschlësselung a befollegen d'DSGVO-Virschrëften fir den Dateschutz.
+From multilingual support to Luxembourg VAT compliance, OMS is designed for the local market.
""", + "content_translations": tt( + # English + """OMS (omsflow.lu) is a lightweight order management system built specifically for Letzshop sellers in Luxembourg.
+Letzshop is a great marketplace, but it doesn't give sellers the back-office tools they need. OMS fills that gap with:
+From multilingual support to Luxembourg VAT compliance, OMS is designed for the local market.
+OMS (omsflow.lu) est un système de gestion de commandes léger conçu spécifiquement pour les vendeurs Letzshop au Luxembourg.
+Letzshop est une excellente marketplace, mais elle ne fournit pas aux vendeurs les outils de back-office dont ils ont besoin. OMS comble ce manque avec :
+Du support multilingue à la conformité TVA luxembourgeoise, OMS est conçu pour le marché local.
+OMS (omsflow.lu) ist ein leichtgewichtiges Bestellverwaltungssystem, das speziell für Letzshop-Verkäufer in Luxemburg entwickelt wurde.
+Letzshop ist ein großartiger Marktplatz, bietet Verkäufern jedoch nicht die Back-Office-Tools, die sie benötigen. OMS schließt diese Lücke mit:
+Von mehrsprachiger Unterstützung bis zur luxemburgischen MwSt-Konformität — OMS ist für den lokalen Markt konzipiert.
+OMS (omsflow.lu) ass e liichten Bestellverwaltungssystem, dat speziell fir Letzshop-Verkeefer zu Lëtzebuerg entwéckelt gouf.
+Letzshop ass e super Marché, awer et gëtt de Verkeefer net déi Back-Office-Tools déi si brauchen. OMS fëllt dës Lück mat:
+Vu méisproocheger Ënnerstëtzung bis zur lëtzebuerger MwSt-Konformitéit — OMS ass fir de lokale Marché konzipéiert.
+Need help with your order management? We're here for you.
+Interested in OMS for your Letzshop store?
+Besoin d'aide avec votre gestion de commandes ? Nous sommes là pour vous.
+Intéressé par OMS pour votre boutique Letzshop ?
+Brauchen Sie Hilfe bei Ihrer Bestellverwaltung? Wir sind für Sie da.
+Interessiert an OMS für Ihren Letzshop-Shop?
+Braucht Dir Hëllef mat Ärer Bestellverwaltung? Mir sinn do fir Iech.
+Interesséiert un OMS fir Äre Letzshop-Shop?
+Yes! Start with a free trial, no credit card required.
""", + "content_translations": tt( + # English + """While OMS works best with Letzshop integration, you can also use it as a standalone order management tool.
+Enter your Letzshop API credentials and orders sync automatically. Setup takes about 2 minutes.
+Yes, EU VAT invoicing is available on Professional and Enterprise plans. Luxembourg VAT is available on all plans.
+Yes, you can export customers, orders, and invoices at any time.
+Yes! Start with a free trial, no credit card required.
+Bien qu'OMS fonctionne mieux avec l'intégration Letzshop, vous pouvez aussi l'utiliser comme outil de gestion de commandes autonome.
+Entrez vos identifiants API Letzshop et les commandes se synchronisent automatiquement. La configuration prend environ 2 minutes.
+Oui, la facturation TVA UE est disponible sur les plans Professionnel et Entreprise. La TVA luxembourgeoise est disponible sur tous les plans.
+Oui, vous pouvez exporter les clients, commandes et factures à tout moment.
+Oui ! Commencez avec un essai gratuit, aucune carte de crédit requise.
+OMS funktioniert am besten mit der Letzshop-Integration, kann aber auch als eigenständiges Bestellverwaltungstool verwendet werden.
+Geben Sie Ihre Letzshop-API-Zugangsdaten ein und die Bestellungen werden automatisch synchronisiert. Die Einrichtung dauert etwa 2 Minuten.
+Ja, die EU-MwSt-Rechnungsstellung ist in den Professional- und Enterprise-Plänen verfügbar. Luxemburger MwSt ist in allen Plänen verfügbar.
+Ja, Sie können Kunden, Bestellungen und Rechnungen jederzeit exportieren.
+Ja! Starten Sie mit einer kostenlosen Testversion, keine Kreditkarte erforderlich.
+OMS funktionéiert am beschten mat der Letzshop-Integratioun, kann awer och als eegenstännegt Bestellverwaltungs-Tool benotzt ginn.
+Gitt Är Letzshop-API-Zougangsdaten an an d'Bestellunge synchroniséiere sech automatesch. D'Astellung dauert ongeféier 2 Minutten.
+Jo, d'EU-MwSt-Rechnungsstellung ass an de Professional- a Enterprise-Pläng disponibel. Lëtzebuerger MwSt ass an alle Pläng disponibel.
+Jo, Dir kënnt Clienten, Bestellungen a Rechnungen jidderzäit exportéieren.
+Jo! Start mat enger gratis Testversioun, keng Kreditkaart néideg.
+Multilingual support (FR/DE/EN) and local business features out of the box.
""", + "content_translations": tt( + # English + """Loyalty (rewardflow.lu) helps Luxembourg businesses create engaging customer loyalty programs.
+Multilingual support (FR/DE/EN) and local business features out of the box.
+Loyalty (rewardflow.lu) aide les entreprises luxembourgeoises à créer des programmes de fidélité client engageants.
+Support multilingue (FR/DE/EN) et fonctionnalités adaptées aux entreprises locales.
+Loyalty (rewardflow.lu) hilft luxemburgischen Unternehmen, ansprechende Kundenbindungsprogramme zu erstellen.
+Mehrsprachige Unterstützung (FR/DE/EN) und lokale Geschäftsfunktionen von Anfang an.
+Loyalty (rewardflow.lu) hëlleft lëtzebuerger Betriber, engagéierend Clientsfidélisatiounsprogrammer ze erstellen.
+Méisproocheg Ënnerstëtzung (FR/DE/EN) a lokal Geschäftsfunktiounen vun Ufank un.
+Need help with your loyalty program? We're here for you.
+Interested in a loyalty program for your business?
+Besoin d'aide avec votre programme de fidélité ? Nous sommes là pour vous.
+Intéressé par un programme de fidélité pour votre entreprise ?
+Brauchen Sie Hilfe mit Ihrem Treueprogramm? Wir sind für Sie da.
+Interessiert an einem Treueprogramm für Ihr Unternehmen?
+Braucht Dir Hëllef mat Ärem Treiëprogramm? Mir sinn do fir Iech.
+Interesséiert un engem Treiëprogramm fir Äre Betrib?
+Yes! Start with a free trial, no credit card required.
""", + "content_translations": tt( + # English + """You define the rules — for example, 1 point per euro spent. Points can be redeemed for rewards from your catalog.
+Yes! You can create custom tiers with different names, thresholds, and benefits.
+Customers can check their balance through a personalized loyalty page or at your point of sale.
+Yes! Start with a free trial, no credit card required.
+Vous définissez les règles — par exemple, 1 point par euro dépensé. Les points peuvent être échangés contre des récompenses de votre catalogue.
+Oui ! Vous pouvez créer des niveaux personnalisés avec des noms, seuils et avantages différents.
+Les clients peuvent consulter leur solde via une page de fidélité personnalisée ou à votre point de vente.
+Oui ! Commencez avec un essai gratuit, aucune carte de crédit requise.
+Sie definieren die Regeln — zum Beispiel 1 Punkt pro ausgegebenem Euro. Punkte können gegen Prämien aus Ihrem Katalog eingelöst werden.
+Ja! Sie können benutzerdefinierte Stufen mit verschiedenen Namen, Schwellenwerten und Vorteilen erstellen.
+Kunden können ihren Kontostand über eine personalisierte Treueseite oder an Ihrer Verkaufsstelle überprüfen.
+Ja! Starten Sie mit einer kostenlosen Testversion, keine Kreditkarte erforderlich.
+Dir definéiert d'Reegelen — zum Beispill 1 Punkt pro ausgeebenen Euro. Punkten kënnen géint Belounungen aus Ärem Katalog ageléist ginn.
+Jo! Dir kënnt personaliséiert Stufe mat verschiddenen Nimm, Schwellenwäerter a Virdeeler erstellen.
+Clientë kënnen hire Solde iwwer eng personaliséiert Treiësäit oder un Ärer Verkafsstell nokucken.
+Jo! Start mat enger gratis Testversioun, keng Kreditkaart néideg.
+Multilingual support (FR/DE/EN/LB) and tailored for the Luxembourg business landscape.
""", + "content_translations": tt( + # English + """HostWizard (hostwizard.lu) provides professional web hosting, domain registration, and website creation for Luxembourg businesses.
+Multilingual support (FR/DE/EN/LB) and tailored for the Luxembourg business landscape.
+HostWizard (hostwizard.lu) fournit l'hébergement web professionnel, l'enregistrement de domaines et la création de sites web pour les entreprises luxembourgeoises.
+Support multilingue (FR/DE/EN/LB) et adapté au paysage commercial luxembourgeois.
+HostWizard (hostwizard.lu) bietet professionelles Webhosting, Domainregistrierung und Website-Erstellung für luxemburgische Unternehmen.
+Mehrsprachige Unterstützung (FR/DE/EN/LB) und maßgeschneidert für die luxemburgische Geschäftswelt.
+HostWizard (hostwizard.lu) bitt professionellt Webhosting, Domainregistréierung a Website-Erstellen fir lëtzebuerger Betriber.
+Méisproocheg Ënnerstëtzung (FR/DE/EN/LB) an ugepasst un d'lëtzebuerger Geschäftswelt.
+Ongoing updates, security patches, and content changes. We keep your website running smoothly.
""", + "content_translations": tt( + # English + """We build professional websites for your business with our integrated CMS. You can edit your content anytime, or let us handle it for you.
+Register and manage .lu domains and international domain names. We handle DNS configuration and renewals.
+Get professional email addresses with your domain name (e.g., info@yourbusiness.lu). Multiple mailboxes available.
+Fast, secure hosting with free SSL certificates. Your website is always online and protected.
+Ongoing updates, security patches, and content changes. We keep your website running smoothly.
+Nous créons des sites web professionnels pour votre entreprise avec notre CMS intégré. Vous pouvez modifier votre contenu à tout moment, ou nous laisser le gérer pour vous.
+Enregistrez et gérez des domaines .lu et des noms de domaine internationaux. Nous gérons la configuration DNS et les renouvellements.
+Obtenez des adresses e-mail professionnelles avec votre nom de domaine (ex. : info@votreentreprise.lu). Plusieurs boîtes mail disponibles.
+Hébergement rapide et sécurisé avec certificats SSL gratuits. Votre site web est toujours en ligne et protégé.
+Mises à jour continues, correctifs de sécurité et modifications de contenu. Nous maintenons votre site web en bon état de fonctionnement.
+Wir erstellen professionelle Websites für Ihr Unternehmen mit unserem integrierten CMS. Sie können Ihre Inhalte jederzeit bearbeiten oder uns damit beauftragen.
+Registrieren und verwalten Sie .lu-Domains und internationale Domainnamen. Wir kümmern uns um DNS-Konfiguration und Verlängerungen.
+Erhalten Sie professionelle E-Mail-Adressen mit Ihrem Domainnamen (z.B. info@ihrunternehmen.lu). Mehrere Postfächer verfügbar.
+Schnelles, sicheres Hosting mit kostenlosen SSL-Zertifikaten. Ihre Website ist immer online und geschützt.
+Laufende Updates, Sicherheitspatches und Inhaltsänderungen. Wir halten Ihre Website reibungslos am Laufen.
+Mir bauen professionell Websäite fir Äre Betrib mat eisem integréierte CMS. Dir kënnt Ären Inhalt jidderzäit änneren, oder loosst eis dat fir Iech maachen.
+Registréiert a geréiert .lu-Domänen an international Domänennimm. Mir këmmeren eis ëm DNS-Konfiguratioun an Erneierungen.
+Kritt professionell E-Mail-Adressen mat Ärem Domännumm (z.B. info@ärebetrib.lu). Méi Postfächer disponibel.
+Séiert, séchert Hosting mat gratis SSL-Zertifikater. Är Websäit ass ëmmer online a geschützt.
+Lafend Updates, Sécherheetspatches an Inhaltsännerungen. Mir halen Är Websäit reibungslos am Lafen.
+Monthly maintenance plans starting from €49/month.
Contact us for a custom quote: info@hostwizard.lu
""", + "content_translations": tt( + # English + """Transparent pricing for all our services. No hidden fees.
+Contact us for a personalized quote based on your needs. We start with a free POC (proof of concept) website so you can see the result before committing.
+.lu domains starting from €29/year. International domains available.
+Professional email from €5/mailbox/month.
+Monthly maintenance plans starting from €49/month.
+Contact us for a custom quote: info@hostwizard.lu
+Des tarifs transparents pour tous nos services. Aucun frais caché.
+Contactez-nous pour un devis personnalisé selon vos besoins. Nous commençons par un site POC (preuve de concept) gratuit pour que vous puissiez voir le résultat avant de vous engager.
+Domaines .lu à partir de 29 €/an. Domaines internationaux disponibles.
+E-mail professionnel à partir de 5 €/boîte mail/mois.
+Plans de maintenance mensuels à partir de 49 €/mois.
+Contactez-nous pour un devis personnalisé : info@hostwizard.lu
+Transparente Preise für alle unsere Dienstleistungen. Keine versteckten Gebühren.
+Kontaktieren Sie uns für ein personalisiertes Angebot nach Ihren Bedürfnissen. Wir beginnen mit einer kostenlosen POC-Website (Proof of Concept), damit Sie das Ergebnis sehen können, bevor Sie sich verpflichten.
+.lu-Domains ab 29 €/Jahr. Internationale Domains verfügbar.
+Professionelle E-Mail ab 5 €/Postfach/Monat.
+Monatliche Wartungspläne ab 49 €/Monat.
+Kontaktieren Sie uns für ein individuelles Angebot: info@hostwizard.lu
+Transparent Präisser fir all eis Servicer. Keng verstoppte Käschten.
+Kontaktéiert eis fir en personaliséierten Devis no Äre Besoinë. Mir fänken mat enger gratis POC-Websäit (Proof of Concept) un, sou datt Dir d'Resultat gesitt ier Dir Iech engagéiert.
+.lu-Domänen ab 29 €/Joer. International Domänen disponibel.
+Professionell E-Mail ab 5 €/Postfach/Mount.
+Monatslech Wartungspläng ab 49 €/Mount.
+Kontaktéiert eis fir en individuellt Offert: info@hostwizard.lu
+Ready to bring your business online? Get in touch with our team.
+Interested in a website for your business?
+Already a customer? Our support team is here to help.
+Prêt à mettre votre entreprise en ligne ? Contactez notre équipe.
+Intéressé par un site web pour votre entreprise ?
+Déjà client ? Notre équipe de support est là pour vous aider.
+Bereit, Ihr Unternehmen online zu bringen? Nehmen Sie Kontakt mit unserem Team auf.
+Interessiert an einer Website für Ihr Unternehmen?
+Bereits Kunde? Unser Support-Team hilft Ihnen gerne weiter.
+Prett fir Äre Betrib online ze bréngen? Kontaktéiert eist Team.
+Interesséiert un enger Websäit fir Äre Betrib?
+Schonn Client? Eist Support-Team ass do fir Iech ze hëllefen.
+Security updates, content changes, performance monitoring, and technical support.
""", + "content_translations": tt( + # English + """HostWizard provides web hosting, domain registration, email hosting, and website creation services for Luxembourg businesses.
+We create a free proof-of-concept website for your business. If you like it, we can make it your live website on your own domain.
+We support .lu domains and most international domain extensions (.com, .eu, .net, etc.).
+Yes! Our CMS supports French, German, English, and Luxembourgish out of the box.
+Security updates, content changes, performance monitoring, and technical support.
+HostWizard fournit des services d'hébergement web, d'enregistrement de domaines, d'hébergement e-mail et de création de sites web pour les entreprises luxembourgeoises.
+Nous créons un site web gratuit de preuve de concept pour votre entreprise. Si il vous plaît, nous pouvons en faire votre site web en production sur votre propre domaine.
+Nous supportons les domaines .lu et la plupart des extensions de domaines internationaux (.com, .eu, .net, etc.).
+Oui ! Notre CMS supporte le français, l'allemand, l'anglais et le luxembourgeois nativement.
+Mises à jour de sécurité, modifications de contenu, surveillance des performances et support technique.
+HostWizard bietet Webhosting, Domainregistrierung, E-Mail-Hosting und Website-Erstellung für luxemburgische Unternehmen.
+Wir erstellen eine kostenlose Proof-of-Concept-Website für Ihr Unternehmen. Wenn sie Ihnen gefällt, können wir sie zu Ihrer Live-Website auf Ihrer eigenen Domain machen.
+Wir unterstützen .lu-Domains und die meisten internationalen Domain-Endungen (.com, .eu, .net usw.).
+Ja! Unser CMS unterstützt Französisch, Deutsch, Englisch und Luxemburgisch von Haus aus.
+Sicherheitsupdates, Inhaltsänderungen, Leistungsüberwachung und technischer Support.
+HostWizard bitt Webhosting, Domainregistréierung, E-Mail-Hosting a Website-Erstellen fir lëtzebuerger Betriber.
+Mir erstellen eng gratis Proof-of-Concept-Websäit fir Äre Betrib. Wann se Iech gefält, kënne mir se zu Ärer Live-Websäit op Ärer eegener Domän maachen.
+Mir ënnerstëtzen .lu-Domänen an déi meescht international Domain-Endungen (.com, .eu, .net asw.).
+Jo! Eise CMS ënnerstëtzt Franséisch, Däitsch, Englesch a Lëtzebuergesch vun Ufank un.
+Sécherheetsupdaten, Inhaltsännerungen, Leeschtungsiwwerwaachung an technesche Support.
+For privacy-related questions, contact privacy@wizard.lu
""", + "content_translations": tt( + # English + """Last Updated: February 2026
+We collect information you provide directly:
+We use your information to provide and improve our services, process payments, communicate with you, and comply with legal obligations.
+We comply with the EU General Data Protection Regulation. You have the right to access, correct, delete, or export your personal data at any time.
+For privacy-related questions, contact privacy@wizard.lu
+Dernière mise à jour : février 2026
+Nous collectons les informations que vous fournissez directement :
+Nous utilisons vos informations pour fournir et améliorer nos services, traiter les paiements, communiquer avec vous et respecter les obligations légales.
+Nous sommes conformes au Règlement Général sur la Protection des Données de l'UE. Vous avez le droit d'accéder, corriger, supprimer ou exporter vos données personnelles à tout moment.
+Pour toute question relative à la confidentialité, contactez privacy@wizard.lu
+Letzte Aktualisierung: Februar 2026
+Wir sammeln Informationen, die Sie direkt angeben:
+Wir verwenden Ihre Informationen, um unsere Dienste bereitzustellen und zu verbessern, Zahlungen zu verarbeiten, mit Ihnen zu kommunizieren und gesetzliche Verpflichtungen zu erfüllen.
+Wir erfüllen die EU-Datenschutz-Grundverordnung. Sie haben jederzeit das Recht, auf Ihre persönlichen Daten zuzugreifen, sie zu korrigieren, zu löschen oder zu exportieren.
+Für datenschutzbezogene Fragen kontaktieren Sie privacy@wizard.lu
+Lescht Aktualiséierung: Februar 2026
+Mir sammelen Informatiounen déi Dir direkt ugitt:
+Mir benotzen Är Informatiounen fir eis Servicer ze bidden an ze verbesseren, Bezuelunge ze veraarbechten, mat Iech ze kommunizéieren an gesetzlech Obligatiounen z'erfëllen.
+Mir erfëllen d'EU-Dateschutz-Grondveruerdnung. Dir hutt jidderzäit d'Recht, op Är perséinlech Donnéeën zouzegräifen, se ze korrigéieren, ze läschen oder z'exportéieren.
+Fir Dateschutzfroen kontaktéiert privacy@wizard.lu
+For questions about these terms, contact legal@wizard.lu
""", + "content_translations": tt( + # English + """Last Updated: February 2026
+By accessing and using this platform, you accept and agree to be bound by these Terms of Service.
+We provide digital business tools including order management, loyalty programs, and website building services.
+You must provide accurate information and maintain the security of your account.
+Subscription fees are billed monthly or annually. You may cancel at any time.
+Your use of our services is also governed by our Privacy Policy.
+These terms are governed by the laws of Luxembourg.
+For questions about these terms, contact legal@wizard.lu
+Dernière mise à jour : février 2026
+En accédant et en utilisant cette plateforme, vous acceptez d'être lié par ces Conditions d'utilisation.
+Nous fournissons des outils numériques pour les entreprises, notamment la gestion des commandes, les programmes de fidélité et les services de création de sites web.
+Vous devez fournir des informations exactes et maintenir la sécurité de votre compte.
+Les frais d'abonnement sont facturés mensuellement ou annuellement. Vous pouvez annuler à tout moment.
+Votre utilisation de nos services est également régie par notre Politique de confidentialité.
+Ces conditions sont régies par les lois du Luxembourg.
+Pour toute question sur ces conditions, contactez legal@wizard.lu
+Letzte Aktualisierung: Februar 2026
+Durch den Zugang und die Nutzung dieser Plattform akzeptieren Sie diese Nutzungsbedingungen und stimmen ihnen zu.
+Wir bieten digitale Geschäftstools, einschließlich Bestellverwaltung, Treueprogramme und Website-Erstellungsdienste.
+Sie müssen genaue Informationen angeben und die Sicherheit Ihres Kontos gewährleisten.
+Abonnementgebühren werden monatlich oder jährlich berechnet. Sie können jederzeit kündigen.
+Ihre Nutzung unserer Dienste unterliegt auch unserer Datenschutzrichtlinie.
+Diese Bedingungen unterliegen den Gesetzen Luxemburgs.
+Für Fragen zu diesen Bedingungen kontaktieren Sie legal@wizard.lu
+Lescht Aktualiséierung: Februar 2026
+Duerch den Zougang an d'Notzung vun dëser Plattform akzeptéiert Dir dës Notzungsbedingungen.
+Mir bidden digital Geschäftstools, inklusiv Bestellverwaltung, Treiëprogrammer a Website-Erstellungsservicer.
+Dir musst korrekt Informatiounen uginn an d'Sécherheet vun Ärem Konto garantéieren.
+Abonnementskäschte ginn monatslech oder jäerlech berechent. Dir kënnt jidderzäit kënnegen.
+Är Notzung vun eise Servicer ënnerläit och eiser Dateschutzrichtlinn.
+Dës Bedingunge sinn dem lëtzebuerger Recht ënnerworf.
+Fir Froen zu dëse Bedingunge kontaktéiert legal@wizard.lu
+Welcome to {{store_name}}. We are committed to providing you with quality products and excellent service.
+{{store_name}} was founded with a simple mission: to deliver exceptional value to our customers.
+Have questions? We'd love to hear from you.
+Bienvenue chez {{store_name}}. Nous nous engageons à vous fournir des produits de qualité et un service excellent.
+{{store_name}} a été fondé avec une mission simple : offrir une valeur exceptionnelle à nos clients.
+Vous avez des questions ? Nous serions ravis d'avoir de vos nouvelles.
+Willkommen bei {{store_name}}. Wir sind bestrebt, Ihnen Qualitätsprodukte und exzellenten Service zu bieten.
+{{store_name}} wurde mit einer einfachen Mission gegründet: unseren Kunden einen außergewöhnlichen Mehrwert zu bieten.
+Haben Sie Fragen? Wir freuen uns, von Ihnen zu hören.
+Wëllkomm bei {{store_name}}. Mir setzen eis derfir an, Iech Qualitéitsprodukter an exzellente Service ze bidden.
+{{store_name}} gouf mat enger einfacher Missioun gegrënnt: eise Clienten en aussergewéinleche Méiwäert ze bidden.
+Hutt Dir Froen? Mir géife gäre vun Iech héieren.
+We typically respond within 24 hours during business days.
""", + "content_translations": tt( + # English + """We're here to help! Reach out to us.
+We typically respond within 24 hours during business days.
+Nous sommes là pour vous aider ! Contactez-nous.
+Nous répondons généralement dans les 24 heures les jours ouvrables.
+Wir sind hier, um zu helfen! Kontaktieren Sie uns.
+Wir antworten in der Regel innerhalb von 24 Stunden an Werktagen.
+Mir sinn do fir ze hëllefen! Kontaktéiert eis.
+Mir äntweren normalerweis bannent 24 Stonnen un Aarbechtsdeeg.
+Please contact us for information about our location and visiting hours.
""", + "content_translations": tt( + # English + """You can reach us at {{store_email}} or call {{store_phone}}.
+We are available during regular business hours, Monday through Friday.
+Please contact us for information about our location and visiting hours.
+Vous pouvez nous joindre à {{store_email}} ou appeler le {{store_phone}}.
+Nous sommes disponibles pendant les heures d'ouverture habituelles, du lundi au vendredi.
+Veuillez nous contacter pour des informations sur notre emplacement et nos heures de visite.
+Sie erreichen uns unter {{store_email}} oder telefonisch unter {{store_phone}}.
+Wir sind während der regulären Geschäftszeiten erreichbar, Montag bis Freitag.
+Bitte kontaktieren Sie uns für Informationen über unseren Standort und Besuchszeiten.
+Dir erreecht eis ënner {{store_email}} oder rufft eis un ënner {{store_phone}}.
+Mir sinn während de reguläre Geschäftszäiten erreichbar, Méindes bis Freides.
+Kontaktéiert eis w.e.g. fir Informatiounen iwwer eise Standuert an eis Besuchszäiten.
+Under GDPR, you have the right to access, correct, or delete your personal data. Contact us at {{store_email}}.
""", + "content_translations": tt( + # English + """{{store_name}} is committed to protecting your personal information.
+We collect information necessary to process your orders and provide customer service.
+Under GDPR, you have the right to access, correct, or delete your personal data. Contact us at {{store_email}}.
+{{store_name}} s'engage à protéger vos informations personnelles.
+Nous collectons les informations nécessaires au traitement de vos commandes et à la fourniture du service client.
+En vertu du RGPD, vous avez le droit d'accéder, de corriger ou de supprimer vos données personnelles. Contactez-nous à {{store_email}}.
+{{store_name}} verpflichtet sich zum Schutz Ihrer persönlichen Daten.
+Wir sammeln Informationen, die zur Bearbeitung Ihrer Bestellungen und zur Bereitstellung des Kundenservice erforderlich sind.
+Gemäß der DSGVO haben Sie das Recht, auf Ihre persönlichen Daten zuzugreifen, sie zu korrigieren oder zu löschen. Kontaktieren Sie uns unter {{store_email}}.
+{{store_name}} engagéiert sech fir de Schutz vun Äre perséinlechen Informatiounen.
+Mir sammelen Informatiounen déi néideg sinn fir Är Bestellungen ze veraarbechten an de Clientsservice ze bidden.
+Ënnert der DSGVO hutt Dir d'Recht, op Är perséinlech Donnéeën zouzegräifen, se ze korrigéieren oder ze läschen. Kontaktéiert eis ënner {{store_email}}.
+For questions about these terms, contact us at {{store_email}}.
""", + "content_translations": tt( + # English + """By using the services provided by {{store_name}}, you agree to these terms.
+All orders are subject to availability and confirmation.
+For questions about these terms, contact us at {{store_email}}.
+En utilisant les services fournis par {{store_name}}, vous acceptez ces conditions.
+Toutes les commandes sont soumises à la disponibilité et à la confirmation.
+Pour toute question sur ces conditions, contactez-nous à {{store_email}}.
+Durch die Nutzung der von {{store_name}} bereitgestellten Dienste stimmen Sie diesen Bedingungen zu.
+Alle Bestellungen unterliegen der Verfügbarkeit und Bestätigung.
+Für Fragen zu diesen Bedingungen kontaktieren Sie uns unter {{store_email}}.
+Duerch d'Notzung vun de Servicer vu {{store_name}} stëmmt Dir dëse Bedingungen zou.
+All Bestellunge sinn un d'Disponibilitéit an d'Bestätegung gebonnen.
+Fir Froen zu dëse Bedingunge kontaktéiert eis ënner {{store_email}}.
+Contact us at {{store_email}} for shipping inquiries.
""", + "content_translations": tt( + # English + """{{store_name}} offers multiple shipping options:
+Shipping costs are calculated based on weight and destination at checkout.
+You will receive a tracking number by email once your order ships.
+Contact us at {{store_email}} for shipping inquiries.
+{{store_name}} propose plusieurs options de livraison :
+Les frais de livraison sont calculés en fonction du poids et de la destination lors du paiement.
+Vous recevrez un numéro de suivi par e-mail dès l'expédition de votre commande.
+Contactez-nous à {{store_email}} pour toute question relative à la livraison.
+{{store_name}} bietet mehrere Versandoptionen an:
+Die Versandkosten werden basierend auf Gewicht und Zielort bei der Kasse berechnet.
+Sie erhalten eine Sendungsverfolgungsnummer per E-Mail, sobald Ihre Bestellung versandt wird.
+Kontaktieren Sie uns unter {{store_email}} für Versandanfragen.
+{{store_name}} bitt verschidde Versandoptioune un:
+D'Versandkäschte ginn op Basis vum Gewiicht an der Destinatioun bei der Kees berechent.
+Dir kritt eng Sendungsverfolgungsnummer per E-Mail, soubal Är Bestellung verschéckt gëtt.
+Kontaktéiert eis ënner {{store_email}} fir Versandufroen.
+If you receive a damaged item, contact us immediately at {{store_email}} with photos.
""", + "content_translations": tt( + # English + """{{store_name}} accepts returns within 14 days of delivery, in accordance with Luxembourg consumer protection law.
+Refunds are processed within 14 days of receiving the returned item, back to the original payment method.
+If you receive a damaged item, contact us immediately at {{store_email}} with photos.
+{{store_name}} accepte les retours dans les 14 jours suivant la livraison, conformément à la loi luxembourgeoise de protection du consommateur.
+Les remboursements sont traités dans les 14 jours suivant la réception de l'article retourné, sur le moyen de paiement d'origine.
+Si vous recevez un article endommagé, contactez-nous immédiatement à {{store_email}} avec des photos.
+{{store_name}} akzeptiert Rückgaben innerhalb von 14 Tagen nach Lieferung, gemäß dem luxemburgischen Verbraucherschutzgesetz.
+Erstattungen werden innerhalb von 14 Tagen nach Erhalt des zurückgesendeten Artikels auf die ursprüngliche Zahlungsmethode verarbeitet.
+Wenn Sie einen beschädigten Artikel erhalten, kontaktieren Sie uns sofort unter {{store_email}} mit Fotos.
+{{store_name}} akzeptéiert Retoure bannent 14 Deeg no der Liwwerung, am Aklang mat dem lëtzebuerger Konsumenteschutzgesetz.
+Rembourséierunge ginn bannent 14 Deeg no Erhalt vum retournéierten Artikel op déi ursprénglech Bezuelmethode veraarbecht.
+Wann Dir en beschiedegten Artikel kritt, kontaktéiert eis direkt ënner {{store_email}} mat Fotoen.
+