Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import time | |
| from streamlit.components.v1 import html | |
| def show_progress_bar(text="Loading..."): | |
| progress_html = f""" | |
| <style> | |
| .progress-container {{ | |
| width: 100%; | |
| background: linear-gradient(45deg, #FF671F, #046A38); | |
| padding: 10px; | |
| border-radius: 15px; | |
| box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | |
| }} | |
| .progress-bar {{ | |
| width: 0%; | |
| height: 25px; | |
| background: linear-gradient(45deg, #046A38, #FF671F); | |
| border-radius: 10px; | |
| transition: width 0.5s ease-in-out; | |
| position: relative; | |
| overflow: hidden; | |
| }} | |
| .progress-bar::after {{ | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(90deg, | |
| rgba(255,255,255,0.1) 0%, | |
| rgba(255,255,255,0.3) 50%, | |
| rgba(255,255,255,0.1) 100%); | |
| animation: shimmer 2s infinite; | |
| }} | |
| @keyframes shimmer {{ | |
| 0% {{ transform: translateX(-100%); }} | |
| 100% {{ transform: translateX(100%); }} | |
| }} | |
| .progress-text {{ | |
| color: #FFFFFF; | |
| text-align: center; | |
| font-weight: bold; | |
| text-shadow: 1px 1px 2px rgba(0,0,0,0.3); | |
| margin-bottom: 5px; | |
| }} | |
| </style> | |
| <div class="progress-container"> | |
| <div class="progress-text">{text}</div> | |
| <div class="progress-bar"></div> | |
| </div> | |
| <script> | |
| const progressBar = document.querySelector('.progress-bar'); | |
| let progress = 0; | |
| const interval = setInterval(() => {{ | |
| progress += 1; | |
| progressBar.style.width = progress + '%'; | |
| if (progress >= 100) {{ | |
| clearInterval(interval); | |
| }} | |
| }}, 50); | |
| </script> | |
| """ | |
| html(progress_html, height=100) | |
| translations = { | |
| "en": { | |
| "welcome": "Welcome to AgentX-Travel India!", | |
| "loading": "Planning your perfect Indian adventure...", | |
| "destination_prompt": "Where in India would you like to explore?", | |
| "examples": [ | |
| "Plan a weekend trip to the Taj Mahal in Agra", | |
| "Find budget-friendly hotels in Goa", | |
| "Create an itinerary for Kerala backwaters", | |
| "Suggest local food spots in Mumbai", | |
| "Plan a spiritual journey to Varanasi" | |
| ], | |
| "progress_messages": [ | |
| "Consulting with local travel experts...", | |
| "Checking availability of heritage hotels...", | |
| "Finding the best street food recommendations...", | |
| "Planning temple visits and cultural experiences...", | |
| "Organizing transportation via Indian Railways..." | |
| ] | |
| }, | |
| "hi": { | |
| "welcome": "एजेंटएक्स-ट्रैवल इंडिया में आपका स्वागत है!", | |
| "loading": "आपकी सर्वोत्तम भारतीय यात्रा की योजना बना रहे हैं...", | |
| "destination_prompt": "भारत में कहाँ घूमना चाहेंगे?", | |
| "examples": [ | |
| "आगरा में ताजमहल की वीकेंड यात्रा की योजना", | |
| "गोवा में किफायती होटल खोजें", | |
| "केरल बैकवाटर्स का यात्रा कार्यक्रम बनाएं", | |
| "मुंबई में स्थानीय भोजन स्थल सुझाएं", | |
| "वाराणसी की आध्यात्मिक यात्रा की योजना" | |
| ], | |
| "progress_messages": [ | |
| "स्थानीय यात्रा विशेषज्ञों से सलाह ले रहे हैं...", | |
| "हेरिटेज होटल की उपलब्धता की जांच कर रहे हैं...", | |
| "सर्वश्रेष्ठ स्ट्रीट फूड की सिफारिशें ढूंढ रहे हैं...", | |
| "मंदिर यात्रा और सांस्कृतिक अनुभवों की योजना बना रहे हैं...", | |
| "भारतीय रेल द्वारा परिवहन की व्यवस्था कर रहे हैं..." | |
| ] | |
| }, | |
| "bn": { | |
| "welcome": "এজেন্টএক্স-ট্র্যাভেল ইন্ডিয়াতে আপনাকে স্বাগতম!", | |
| "loading": "আপনার নিখুঁত ভারতীয় অভিযানের পরিকল্পনা করছি...", | |
| "destination_prompt": "ভারতের কোথায় আপনি ঘুরতে চান?", | |
| "examples": [ | |
| "আগ্রায় তাজমহলে একটি সপ্তাহান্তের ভ্রমণের পরিকল্পনা করুন", | |
| "গোয়াতে সাশ্রয়ী মূল্যের হোটেল খুঁজুন", | |
| "কেরালা ব্যাকওয়াটারসের একটি ভ্রমণসূচি তৈরি করুন", | |
| "মুম্বাইতে স্থানীয় খাবারের স্পট পরামর্শ দিন", | |
| "বারাণসীতে একটি আধ্যাত্মিক যাত্রার পরিকল্পনা করুন" | |
| ], | |
| "progress_messages": [ | |
| "স্থানীয় ভ্রমণ বিশেষজ্ঞদের সাথে পরামর্শ করছি...", | |
| "হেরিটেজ হোটেলের উপলব্ধতা যাচাই করছি...", | |
| "সেরা স্ট্রীট ফুড সুপারিশ খুঁজছি...", | |
| "মন্দির ভ্রমণ এবং সাংস্কৃতিক অনুভাল পরিকল্পনা করছি...", | |
| "ভারতীয় রেলওয়ে মাধ্যমে পরিবহন সংগঠিত করছি..." | |
| ] | |
| }, | |
| "ta": { | |
| "welcome": "ஏஜெண்ட்எக்ஸ்-டிராவல் இந்தியாவிற்கு வரவேற்கிறோம்!", | |
| "loading": "உங்கள் சிறந்த இந்திய சாகசத்தை திட்டமிடுகிறது...", | |
| "destination_prompt": "இந்தியாவில் எங்கே சுற்றிப்பார்க்க விரும்புகிறீர்கள்?", | |
| "examples": [ | |
| "ஆக்ராவில் தாஜ்மஹாலுக்கு வார இறுதி பயணத்தை திட்டமிடுங்கள்", | |
| "கோவாவில் மலிவு விடுதிகளைக் கண்டறியுங்கள்", | |
| "கேரளா பின்னீர் பகுதிகளுக்கான பயண திட்டத்தை உருவாக்குங்கள்", | |
| "மும்பையில் உள்ளூர் உணவு இடங்களை பரிந்துரைக்கவும்", | |
| "வாரணாசிக்கு ஆன்மீக பயணத்தை திட்டமிடுங்கள்" | |
| ], | |
| "progress_messages": [ | |
| "உள்ளூர் பயண நிபுணர்களுடன் ஆலோசனை செய்கிறது...", | |
| "பாரம்பரிய ஹோட்டல்களின் இருப்பை சரிபார்க்கிறது...", | |
| "சிறந்த தெரு உணவு பரிந்துரைகளைக் கண்டறிகிறது...", | |
| "கோவில் வருகைகள் மற்றும் கலாச்சார அனுபவங்களை திட்டமிடுகிறது...", | |
| "இந்திய ரயில்வே மூலம் போக்குவரத்தை ஏற்பாடு செய்கிறது..." | |
| ] | |
| }, | |
| "te": { | |
| "welcome": "ఏజెంట్ఎక్స్-ట్రావెల్ ఇండియాకు స్వాగతం!", | |
| "loading": "మీ పరిపూర్ణ భారతీయ సాహసానికి ప్రణాళిక రూపొందిస్తున్నాము...", | |
| "destination_prompt": "భారతదేశంలో మీరు ఎక్కడ అన్వేషించాలనుకుంటున్నారు?", | |
| "examples": [ | |
| "ఆగ్రాలోని తాజ్ మహల్కు వీకెండ్ ట్రిప్ ప్లాన్ చేయండి", | |
| "గోవాలో బడ్జెట్-స్నేహపూర్వక హోటళ్లను కనుగొనండి", | |
| "కేరళ బ్యాక్వాటర్స్కు ఒక షెడ్యూల్ తయారు చేయండి", | |
| "ముంబైలో స్థానిక ఆహార ప్రదేశాలను సూచించండి", | |
| "వారణాసికి ఆధ్యాత్మిక ప్రయాణాన్ని ప్లాన్ చేయండి" | |
| ], | |
| "progress_messages": [ | |
| "స్థానిక ట్రావెల్ నిపుణులతో సంప్రదింపులు చేస్తున్నాము...", | |
| "హెరిటేజ్ హోటళ్ల లభ్యతను తనిఖీ చేస్తున్నాము...", | |
| "ఉత్తమ స్ట్రీట్ ఫుడ్ సిఫార్సులను కనుగొంటున్నాము...", | |
| "దేవాలయ సందర్శనలు మరియు సాంస్కృతిక అనుభవాలను ప్లాన్ చేస్తున్నాము...", | |
| "భారతీయ రైల్వేల ద్వారా రవాణాను నిర్వహిస్తున్నాము..." | |
| ] | |
| }, | |
| "mr": { | |
| "welcome": "एजंटएक्स-ट्रॅव्हल इंडियामध्ये आपले स्वागत आहे!", | |
| "loading": "आपल्या परिपूर्ण भारतीय साहसाचे नियोजन करत आहे...", | |
| "destination_prompt": "भारतात आपण कोठे एक्सप्लोर करू इच्छिता?", | |
| "examples": [ | |
| "आग्रा येथे ताजमहालच्या वीकेंड ट्रिपचे नियोजन करा", | |
| "गोव्यात बजेट-अनुकूल हॉटेल्स शोधा", | |
| "केरळ बॅकवॉटर्ससाठी मार्गदर्शक तयार करा", | |
| "मुंबईतील स्थानिक खाद्यपदार्थांची ठिकाणे सुचवा", | |
| "वाराणसीला आध्यात्मिक यात्रेचे नियोजन करा" | |
| ], | |
| "progress_messages": [ | |
| "स्थानिक प्रवास तज्ञांशी सल्लामसलत करत आहे...", | |
| "हेरिटेज हॉटेल्सची उपलब्धता तपासत आहे...", | |
| "सर्वोत्तम स्ट्रीट फूड शिफारसी शोधत आहे...", | |
| "मंदिर भेटी आणि सांस्कृतिक अनुभवांचे नियोजन करत आहे...", | |
| "भारतीय रेल्वेद्वारे वाहतूक व्यवस्था करत आहे..." | |
| ] | |
| } | |
| } | |
| def get_translation(key, lang="en"): | |
| """ | |
| Get a translation for a specific key in the specified language. | |
| Args: | |
| key (str): The translation key to look up | |
| lang (str): Language code (en, hi, bn, ta, te, mr) | |
| Returns: | |
| str: The translated text, falling back to English if not found | |
| """ | |
| return translations.get(lang, translations["en"]).get(key, translations["en"][key]) |