AgentX-Travel-India / translations.py
Abs6187's picture
Upload 7 files
9c49cbf verified
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])