Spaces:
Running
Running
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]) |