feat(i18n): Internationalize marketing pages and components
- HomePage.tsx: Add translation keys for features, testimonials, section titles - FeaturesPage.tsx: Add translation keys for automation engine, multi-tenancy sections - Hero.tsx: Add translation keys for headline, CTAs, trust signals, visual content - ContactPage.tsx: Add translation keys for form headings, success messages - PricingPage.tsx: Add translation keys for FAQ section - PrivacyPolicyPage.tsx: Full internationalization of 15-section privacy policy - TermsOfServicePage.tsx: Full internationalization of 16-section terms of service - Footer.tsx & Navbar.tsx: Add translation keys for brand name, aria-labels 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -39,10 +39,10 @@ def execute(context):
|
||||
{/* Header */}
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center mb-20">
|
||||
<h1 className="text-4xl sm:text-5xl font-bold text-gray-900 dark:text-white mb-6">
|
||||
Built for Developers, Designed for Business
|
||||
{t('marketing.features.pageTitle')}
|
||||
</h1>
|
||||
<p className="text-xl text-gray-600 dark:text-gray-400 max-w-3xl mx-auto">
|
||||
SmoothSchedule isn't just cloud software. It's a programmable platform that adapts to your unique business logic.
|
||||
{t('marketing.features.pageSubtitle')}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -53,22 +53,21 @@ def execute(context):
|
||||
<div>
|
||||
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-purple-100 dark:bg-purple-900/30 text-purple-600 dark:text-purple-400 text-sm font-medium mb-6">
|
||||
<Zap className="w-4 h-4" />
|
||||
<span>Automation Engine</span>
|
||||
<span>{t('marketing.features.automationEngine.badge')}</span>
|
||||
</div>
|
||||
<h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-6">
|
||||
Automated Task Manager
|
||||
{t('marketing.features.automationEngine.title')}
|
||||
</h2>
|
||||
<p className="text-lg text-gray-600 dark:text-gray-400 mb-8">
|
||||
Most schedulers only book appointments. SmoothSchedule runs your business.
|
||||
Our "Automated Task Manager" executes internal tasks without blocking your calendar.
|
||||
{t('marketing.features.automationEngine.description')}
|
||||
</p>
|
||||
|
||||
<ul className="space-y-4">
|
||||
{[
|
||||
'Run recurring jobs (e.g., "Every Monday at 9am")',
|
||||
'Execute custom logic securely',
|
||||
'Access full customer and event context',
|
||||
'Zero infrastructure management'
|
||||
t('marketing.features.automationEngine.features.recurringJobs'),
|
||||
t('marketing.features.automationEngine.features.customLogic'),
|
||||
t('marketing.features.automationEngine.features.fullContext'),
|
||||
t('marketing.features.automationEngine.features.zeroInfrastructure')
|
||||
].map((item) => (
|
||||
<li key={item} className="flex items-center gap-3">
|
||||
<CheckCircle2 className="w-5 h-5 text-green-500" />
|
||||
@@ -108,7 +107,7 @@ def execute(context):
|
||||
</div>
|
||||
<div className="mt-8 flex items-center justify-center gap-4 text-gray-500 text-sm">
|
||||
<Lock className="w-4 h-4" />
|
||||
<span>Strict Data Isolation</span>
|
||||
<span>{t('marketing.features.multiTenancy.strictDataIsolation')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -116,15 +115,13 @@ def execute(context):
|
||||
<div className="order-1 lg:order-2">
|
||||
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-blue-100 dark:bg-blue-900/30 text-blue-600 dark:text-blue-400 text-sm font-medium mb-6">
|
||||
<Shield className="w-4 h-4" />
|
||||
<span>Enterprise Security</span>
|
||||
<span>{t('marketing.features.multiTenancy.badge')}</span>
|
||||
</div>
|
||||
<h2 className="text-3xl font-bold text-gray-900 dark:text-white mb-6">
|
||||
True Data Isolation
|
||||
{t('marketing.features.multiTenancy.title')}
|
||||
</h2>
|
||||
<p className="text-lg text-gray-600 dark:text-gray-400 mb-8">
|
||||
We don't just filter your data. We use dedicated secure vaults to physically
|
||||
separate your data from others. This provides the security of a private
|
||||
database with the cost-efficiency of cloud software.
|
||||
{t('marketing.features.multiTenancy.description')}
|
||||
</p>
|
||||
|
||||
<div className="grid sm:grid-cols-2 gap-6">
|
||||
@@ -133,9 +130,9 @@ def execute(context):
|
||||
<Server className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white mb-1">Custom Domains</h3>
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white mb-1">{t('marketing.features.multiTenancy.customDomains.title')}</h3>
|
||||
<p className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Serve the app on your own domain (e.g., `schedule.yourbrand.com`).
|
||||
{t('marketing.features.multiTenancy.customDomains.description')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -144,9 +141,9 @@ def execute(context):
|
||||
<Code className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white mb-1">White Labeling</h3>
|
||||
<h3 className="font-semibold text-gray-900 dark:text-white mb-1">{t('marketing.features.multiTenancy.whiteLabeling.title')}</h3>
|
||||
<p className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Remove our branding and make the platform your own.
|
||||
{t('marketing.features.multiTenancy.whiteLabeling.description')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user