Add voice AI capabilities and trial options to landing page
Implements i18n for voice commands, adds AI features and trial buttons to LandingPage.tsx, and updates ar.json/en.json. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 5a4f78b4-6a2e-4391-b005-5544e086dac8 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/9777c70b-fc38-4831-8d6b-78dfffe041b0/5512ebaf-680c-4b63-86d3-0a733fc165c0.jpg
This commit is contained in:
@@ -282,7 +282,38 @@
|
|||||||
"taskManagement": "إدارة المهام",
|
"taskManagement": "إدارة المهام",
|
||||||
"taskManagementDesc": "إنشاء المهام بالأوامر الصوتية",
|
"taskManagementDesc": "إنشاء المهام بالأوامر الصوتية",
|
||||||
"financialTracking": "تتبع الشؤون المالية",
|
"financialTracking": "تتبع الشؤون المالية",
|
||||||
"financialTrackingDesc": "تسجيل تلقائي للنفقات"
|
"financialTrackingDesc": "تسجيل تلقائي للنفقات",
|
||||||
|
"startFreeTrial": "ابدأ تجربة مجانية",
|
||||||
|
"viewDemo": "عرض التجربة",
|
||||||
|
"tryVoiceCommands": "جرب الأوامر الصوتية",
|
||||||
|
"stopListening": "إيقاف الاستماع",
|
||||||
|
"startVoiceDemo": "ابدأ التجربة الصوتية",
|
||||||
|
"trySaying": "جرب قول:",
|
||||||
|
"createTaskExample": "أنشئ مهمة لمراجعة الميزانية",
|
||||||
|
"addExpenseExample": "أضف مصروف 50 ريال للبقالة",
|
||||||
|
"showScheduleExample": "أظهر لي جدول اليوم",
|
||||||
|
"completeOfflineVoiceAI": "ذكاء صوتي كامل بدون إنترنت",
|
||||||
|
"enterpriseGradeDesc": "إدارة مهام وشؤون مالية من الدرجة المؤسسية مع معالجة ذكاء اصطناعي محلي",
|
||||||
|
"localAIModels": "نماذج ذكاء اصطناعي محلية",
|
||||||
|
"localAIDesc": "معالجة تحويل الكلام إلى نص والنص إلى كلام بالكامل بدون إنترنت. لا تخرج البيانات من مكانك.",
|
||||||
|
"baseModelsIncluded": "النماذج الأساسية متضمنة",
|
||||||
|
"swappableArchitecture": "هيكلة نماذج قابلة للتبديل",
|
||||||
|
"voiceTaskCreation": "إنشاء المهام بالصوت",
|
||||||
|
"voiceTaskDesc": "إنشاء وتحديث وإدارة المهام باستخدام أوامر صوتية طبيعية مع تحليل ذكي.",
|
||||||
|
"naturalLanguageProcessing": "معالجة اللغة الطبيعية",
|
||||||
|
"smartDateExtraction": "استخراج ذكي للتاريخ والوقت",
|
||||||
|
"voiceFinancialTracking": "تتبع الشؤون المالية بالصوت",
|
||||||
|
"voiceFinancialDesc": "تسجيل النفقات والدخل بالصوت مع تصنيف تلقائي ومعالجة الإيصالات.",
|
||||||
|
"autoCategorization": "تصنيف تلقائي",
|
||||||
|
"receiptOCR": "تكامل قراءة الإيصالات",
|
||||||
|
"completePrivacy": "خصوصية كاملة",
|
||||||
|
"privacyDesc": "تتم جميع معالجات الصوت محلياً. لا اعتماد على السحابة، سيادة كاملة للبيانات.",
|
||||||
|
"onPremiseDeployment": "نشر محلي",
|
||||||
|
"encryptedStorage": "تخزين محلي مشفر",
|
||||||
|
"realTimeProcessing": "معالجة فورية",
|
||||||
|
"realTimeDesc": "تحويل فوري من الصوت إلى النص واستجابات ذكية فورية للتفاعل السلس.",
|
||||||
|
"subSecondResponse": "وقت استجابة أقل من ثانية",
|
||||||
|
"continuousListening": "وضع الاستماع المستمر"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"title": "لوحة التحكم",
|
"title": "لوحة التحكم",
|
||||||
|
|||||||
@@ -321,7 +321,38 @@
|
|||||||
"taskManagement": "Task Management",
|
"taskManagement": "Task Management",
|
||||||
"taskManagementDesc": "Voice-powered task creation",
|
"taskManagementDesc": "Voice-powered task creation",
|
||||||
"financialTracking": "Financial Tracking",
|
"financialTracking": "Financial Tracking",
|
||||||
"financialTrackingDesc": "Automated expense logging"
|
"financialTrackingDesc": "Automated expense logging",
|
||||||
|
"startFreeTrial": "Start Free Trial",
|
||||||
|
"viewDemo": "View Demo",
|
||||||
|
"tryVoiceCommands": "Try Voice Commands",
|
||||||
|
"stopListening": "Stop Listening",
|
||||||
|
"startVoiceDemo": "Start Voice Demo",
|
||||||
|
"trySaying": "Try saying:",
|
||||||
|
"createTaskExample": "Create a task to review budget",
|
||||||
|
"addExpenseExample": "Add $50 expense for groceries",
|
||||||
|
"showScheduleExample": "Show me today's schedule",
|
||||||
|
"completeOfflineVoiceAI": "Complete Offline Voice AI",
|
||||||
|
"enterpriseGradeDesc": "Enterprise-grade task and financial management with local AI processing",
|
||||||
|
"localAIModels": "Local AI Models",
|
||||||
|
"localAIDesc": "Speech-to-text and text-to-speech processing entirely offline. No data leaves your premises.",
|
||||||
|
"baseModelsIncluded": "Base models included",
|
||||||
|
"swappableArchitecture": "Swappable model architecture",
|
||||||
|
"voiceTaskCreation": "Voice Task Creation",
|
||||||
|
"voiceTaskDesc": "Create, update, and manage tasks using natural voice commands with intelligent parsing.",
|
||||||
|
"naturalLanguageProcessing": "Natural language processing",
|
||||||
|
"smartDateExtraction": "Smart date/time extraction",
|
||||||
|
"voiceFinancialTracking": "Voice Financial Tracking",
|
||||||
|
"voiceFinancialDesc": "Record expenses and income through voice with automatic categorization and receipt parsing.",
|
||||||
|
"autoCategorization": "Auto-categorization",
|
||||||
|
"receiptOCR": "Receipt OCR integration",
|
||||||
|
"completePrivacy": "Complete Privacy",
|
||||||
|
"privacyDesc": "All voice processing happens locally. Zero cloud dependencies, complete data sovereignty.",
|
||||||
|
"onPremiseDeployment": "On-premise deployment",
|
||||||
|
"encryptedStorage": "Encrypted local storage",
|
||||||
|
"realTimeProcessing": "Real-time Processing",
|
||||||
|
"realTimeDesc": "Instant voice-to-text conversion and immediate AI responses for seamless interaction.",
|
||||||
|
"subSecondResponse": "Sub-second response time",
|
||||||
|
"continuousListening": "Continuous listening mode"
|
||||||
},
|
},
|
||||||
"dashboard": {
|
"dashboard": {
|
||||||
"title": "Dashboard",
|
"title": "Dashboard",
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ export default function LandingPage() {
|
|||||||
onClick={handleGetStarted}
|
onClick={handleGetStarted}
|
||||||
className="flex-1 bg-primary-600 hover:bg-primary-700 text-white px-8 py-4 text-lg font-semibold shadow-lg hover:shadow-xl transition-all"
|
className="flex-1 bg-primary-600 hover:bg-primary-700 text-white px-8 py-4 text-lg font-semibold shadow-lg hover:shadow-xl transition-all"
|
||||||
>
|
>
|
||||||
Start Free Trial
|
{t('landing.startFreeTrial')}
|
||||||
<ArrowRight className="w-5 h-5 ml-2" />
|
<ArrowRight className="w-5 h-5 ml-2" />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
@@ -116,7 +116,7 @@ export default function LandingPage() {
|
|||||||
className="px-8 py-4 text-lg font-semibold border-slate-300 dark:border-slate-600 hover:border-primary-300 dark:hover:border-primary-500"
|
className="px-8 py-4 text-lg font-semibold border-slate-300 dark:border-slate-600 hover:border-primary-300 dark:hover:border-primary-500"
|
||||||
>
|
>
|
||||||
<Play className="w-5 h-5 mr-2" />
|
<Play className="w-5 h-5 mr-2" />
|
||||||
View Demo
|
{t('landing.viewDemo')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -126,7 +126,7 @@ export default function LandingPage() {
|
|||||||
<Card className="shadow-2xl border-slate-200 dark:border-slate-700">
|
<Card className="shadow-2xl border-slate-200 dark:border-slate-700">
|
||||||
<CardContent className="p-8">
|
<CardContent className="p-8">
|
||||||
<div className="text-center space-y-6">
|
<div className="text-center space-y-6">
|
||||||
<h3 className="text-xl font-semibold text-slate-900 dark:text-white">Try Voice Commands</h3>
|
<h3 className="text-xl font-semibold text-slate-900 dark:text-white">{t('landing.tryVoiceCommands')}</h3>
|
||||||
|
|
||||||
{/* Voice Visualizer */}
|
{/* Voice Visualizer */}
|
||||||
<div className="flex justify-center">
|
<div className="flex justify-center">
|
||||||
@@ -153,16 +153,16 @@ export default function LandingPage() {
|
|||||||
className="w-full bg-secondary-600 hover:bg-secondary-700 text-white font-medium"
|
className="w-full bg-secondary-600 hover:bg-secondary-700 text-white font-medium"
|
||||||
>
|
>
|
||||||
<Mic className="w-4 h-4 mr-2" />
|
<Mic className="w-4 h-4 mr-2" />
|
||||||
{isListening ? 'Stop Listening' : 'Start Voice Demo'}
|
{isListening ? t('landing.stopListening') : t('landing.startVoiceDemo')}
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<div className="text-sm text-slate-600 dark:text-slate-400 space-y-1">
|
<div className="text-sm text-slate-600 dark:text-slate-400 space-y-1">
|
||||||
<p className="font-medium">Try saying:</p>
|
<p className="font-medium">{t('landing.trySaying')}</p>
|
||||||
<Card className="bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700">
|
<Card className="bg-slate-50 dark:bg-slate-900 border-slate-200 dark:border-slate-700">
|
||||||
<CardContent className="p-3 text-left space-y-1">
|
<CardContent className="p-3 text-left space-y-1">
|
||||||
<p>"Create a task to review budget"</p>
|
<p>"{t('landing.createTaskExample')}"</p>
|
||||||
<p>"Add $50 expense for groceries"</p>
|
<p>"{t('landing.addExpenseExample')}"</p>
|
||||||
<p>"Show me today's schedule"</p>
|
<p>"{t('landing.showScheduleExample')}"</p>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
@@ -179,10 +179,10 @@ export default function LandingPage() {
|
|||||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||||
<div className="text-center mb-16">
|
<div className="text-center mb-16">
|
||||||
<h2 className="text-3xl lg:text-4xl font-bold text-slate-900 dark:text-white mb-4">
|
<h2 className="text-3xl lg:text-4xl font-bold text-slate-900 dark:text-white mb-4">
|
||||||
Complete Offline Voice AI
|
{t('landing.completeOfflineVoiceAI')}
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-xl text-slate-600 dark:text-slate-300 max-w-3xl mx-auto">
|
<p className="text-xl text-slate-600 dark:text-slate-300 max-w-3xl mx-auto">
|
||||||
Enterprise-grade task and financial management with local AI processing
|
{t('landing.enterpriseGradeDesc')}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user