Implement Smart Location: auto-detect user location if preference is enabled, hide location button, and handle permission denial by resetting preference
This commit is contained in:
@ -5,7 +5,11 @@
|
||||
"noData": "No data available",
|
||||
"select": "Select",
|
||||
"clear": "Clear",
|
||||
"clearSelection": "Clear selection"
|
||||
"clearSelection": "Clear selection",
|
||||
"notAvailable": "Not available",
|
||||
"back": "Back",
|
||||
"all": "All",
|
||||
"retry": "Retry"
|
||||
},
|
||||
"navigation": {
|
||||
"map": "Map",
|
||||
@ -17,6 +21,24 @@
|
||||
"discover": "Discover",
|
||||
"profile": "Profile"
|
||||
},
|
||||
"menu": {
|
||||
"management": "MANAGEMENT",
|
||||
"adminPanel": "Admin Panel",
|
||||
"driverPanel": "Driver Panel",
|
||||
"operations": "OPERATIONS",
|
||||
"favorites": "Favorites",
|
||||
"support": "SUPPORT",
|
||||
"sendReport": "Send Report",
|
||||
"login": "LOGIN",
|
||||
"logout": "LOGOUT",
|
||||
"welcome": "HELLO,",
|
||||
"guest": "GUEST",
|
||||
"lightMode": "Light Mode",
|
||||
"darkMode": "Dark Mode",
|
||||
"translate": "Español (ES)",
|
||||
"admin": "ADMIN",
|
||||
"driver": "DRIVER"
|
||||
},
|
||||
"favorites": {
|
||||
"title": "My Favorites",
|
||||
"subtitle": "Save your favorite routes, taxis, and businesses for quick access.",
|
||||
@ -27,22 +49,31 @@
|
||||
"viewSchedules": "Tap to view schedules",
|
||||
"tabs": {
|
||||
"routes": "Routes",
|
||||
"taxis": "Taxis",
|
||||
"taxis": "Transport",
|
||||
"businesses": "Businesses",
|
||||
"coupons": "Offers"
|
||||
"coupons": "Events"
|
||||
},
|
||||
"empty": {
|
||||
"title": "Nothing saved yet",
|
||||
"subtitle": "You don't have any favorites yet",
|
||||
"description": "Explore routes, taxis, and businesses to save your favorites here",
|
||||
"routes": "You don't have any saved favorite routes.",
|
||||
"taxis": "You don't have any saved favorite taxis.",
|
||||
"businesses": "You don't have any saved favorite businesses.",
|
||||
"coupons": "You don't have any saved favorite offers."
|
||||
"coupons": "You don't have any saved favorite events.",
|
||||
"noResultsCategory": "You don't have favorites in this category"
|
||||
},
|
||||
"cta": {
|
||||
"exploreNow": "Explore now",
|
||||
"routes": "Explore Routes",
|
||||
"taxis": "View Directory",
|
||||
"businesses": "Discover Businesses",
|
||||
"coupons": "View Offers"
|
||||
}
|
||||
"coupons": "View Events"
|
||||
},
|
||||
"count": "{count} saved | {count} saved",
|
||||
"removeTitle": "Remove from favorites",
|
||||
"availability": "Check availability",
|
||||
"details": "View details →"
|
||||
},
|
||||
"header": {
|
||||
"title": "SIBU",
|
||||
@ -63,7 +94,15 @@
|
||||
"selectRoute": "Select a route",
|
||||
"route": "Route",
|
||||
"stops": "stops",
|
||||
"stop": "stop"
|
||||
"stop": "stop",
|
||||
"calculatingRoute": "Calculating real route...",
|
||||
"viewRoutes": "view routes",
|
||||
"arrivalTime": "Arrival time",
|
||||
"availableRoutes": "Available Routes",
|
||||
"busRoute": "Bus Route",
|
||||
"showMyLocation": "Show my location",
|
||||
"promo": "PROMO",
|
||||
"search": "Search"
|
||||
},
|
||||
"schedules": {
|
||||
"title": "Schedules",
|
||||
@ -77,6 +116,12 @@
|
||||
"schedules": "schedules",
|
||||
"schedule": "schedule",
|
||||
"departureTime": "Departure time",
|
||||
"today": "Today",
|
||||
"tomorrow": "Tomorrow",
|
||||
"loading": "Loading schedules...",
|
||||
"viewAll": "View all schedules",
|
||||
"departing": "DEPARTING",
|
||||
"daily": "Daily",
|
||||
"types": {
|
||||
"weekday": "Weekday",
|
||||
"weekend": "Weekend",
|
||||
@ -87,19 +132,23 @@
|
||||
"title": "Offers",
|
||||
"loadingCoupons": "Loading offers...",
|
||||
"noCouponsAvailable": "No offers available",
|
||||
"noResults": "No results found for your search.",
|
||||
"off": "OFF",
|
||||
"searchPlaceholder": "Search offers...",
|
||||
"filterByCategory": "Filter by category",
|
||||
"apply": "Apply",
|
||||
"offerDetails": "Offer Details",
|
||||
"description": "Description",
|
||||
"noDescription": "No additional description.",
|
||||
"validity": "Validity",
|
||||
"category": "Category",
|
||||
"viewLocation": "View location",
|
||||
"validUntil": "Valid until",
|
||||
"tomorrow": "Tomorrow",
|
||||
"active": "Active",
|
||||
"offersCount": "{count} offer | {count} offers"
|
||||
"offersCount": "{count} offer | {count} offers",
|
||||
"viewDetails": "View details",
|
||||
"restaurant": "Restaurant"
|
||||
},
|
||||
"taxi": {
|
||||
"title": "Transport Hub",
|
||||
@ -115,7 +164,8 @@
|
||||
"allZones": "All zones",
|
||||
"dayShift": "Day",
|
||||
"afternoonShift": "Afternoon",
|
||||
"nightShift": "Night"
|
||||
"nightShift": "Night",
|
||||
"errorLoading": "Error loading transport section"
|
||||
},
|
||||
"shuttle": {
|
||||
"title": "Tourist Trips & Shuttles",
|
||||
@ -128,9 +178,21 @@
|
||||
"filterRoute": "Filter by route",
|
||||
"allRoutes": "All routes",
|
||||
"tripType": "Trip type",
|
||||
"oneWay": "Outbound",
|
||||
"roundTrip": "Return",
|
||||
"both": "Both"
|
||||
"oneWay": "One way",
|
||||
"roundTrip": "Round trip",
|
||||
"both": "Both",
|
||||
"detailTitle": "Trip Detail",
|
||||
"origin": "Origin",
|
||||
"destination": "Destination",
|
||||
"departureTimes": "Departure Times",
|
||||
"languages": "Languages",
|
||||
"pricePerPerson": "Price per passenger",
|
||||
"private": "Private",
|
||||
"bookingInfo": "Booking & Information",
|
||||
"contactOperator": "Contact the operator directly to confirm availability.",
|
||||
"bookWhatsapp": "Book via WhatsApp",
|
||||
"callOperator": "Call Operator",
|
||||
"errorLoading": "Could not load trip information"
|
||||
},
|
||||
"busStop": {
|
||||
"loadingDetails": "Loading bus stop details...",
|
||||
@ -140,14 +202,149 @@
|
||||
"accessible": "Accessible"
|
||||
},
|
||||
"discover": {
|
||||
"title": "Discover",
|
||||
"subtitle": "Explore the best places in Chiriqui",
|
||||
"searchPlaceholder": "Explore the best places in Chiriqui",
|
||||
"title": "Explore Chiriquí! 🌿",
|
||||
"subtitle": "Discover the best places near you",
|
||||
"searchPlaceholder": "Search restaurants, hotels...",
|
||||
"filterLabel": "Filter by area:",
|
||||
"allAreas": "All",
|
||||
"loading": "Searching for treasures...",
|
||||
"empty": "No places found in this area yet.",
|
||||
"loading": "Loading places...",
|
||||
"error": "Could not load places. Check your connection.",
|
||||
"empty": "No places yet",
|
||||
"emptyDesc": "Business and tourist places will be available here soon.",
|
||||
"noResults": "No results",
|
||||
"noResultsDesc": "We couldn't find any places matching that filter.",
|
||||
"viewAll": "View all places",
|
||||
"exploreMore": "Explore Place",
|
||||
"tourism": "Tourism"
|
||||
"tourism": "Tourism",
|
||||
"results": "{count} place | {count} places",
|
||||
"in": "in",
|
||||
"lookingMore": "Looking for something else?",
|
||||
"exploreWithoutFilters": "Explore without filters to discover everything",
|
||||
"sections": {
|
||||
"byArea": "🗺️ By Area",
|
||||
"featured": "✨ Featured",
|
||||
"allPlaces": "🏙️ All places"
|
||||
},
|
||||
"categories": {
|
||||
"all": "All",
|
||||
"restaurant": "Restaurant",
|
||||
"hotel": "Hotel",
|
||||
"cafe": "Cafe",
|
||||
"commerce": "Commerce",
|
||||
"tourism": "Tourism",
|
||||
"drinks": "Drinks"
|
||||
}
|
||||
},
|
||||
"business": {
|
||||
"detailsTitle": "Explore Our History For Refined Cuisine And A Timeless Atmosphere",
|
||||
"detailsDescription": "Our story is one of growth, exploration, and unforgettable culinary memories, where each chapter is served with elegance.",
|
||||
"timelessHeritage": "Timeless Heritage",
|
||||
"timelessHeritageDesc": "Signature dishes that evolve with local inspiration and culture.",
|
||||
"worldClassDishes": "World Class Dishes",
|
||||
"worldClassDishesDesc": "Gastronomic experience designed to delight the most demanding senses.",
|
||||
"emotionElegance": "Emotion and Elegance",
|
||||
"emotionEleganceDesc": "Evenings enhanced by the timeless charm of an exclusive atmosphere.",
|
||||
"unmatchedExperience": "Unmatched Experience",
|
||||
"unmatchedExperienceDesc": "Personalized service from a dedicated host for your comfort.",
|
||||
"address": "Address",
|
||||
"contact": "Contact",
|
||||
"socialMedia": "Social Media",
|
||||
"availableOffers": "Available Offers",
|
||||
"viewBusiness": "View Business",
|
||||
"loadingPremium": "Loading premium experience..."
|
||||
},
|
||||
"profile": {
|
||||
"title": "Profile",
|
||||
"myCoupons": "My Coupons",
|
||||
"emptyCoupons": "You don't have any coupons",
|
||||
"exploreOffers": "Explore the benefits we have for you for using SIBU.",
|
||||
"viewOffers": "View Offers",
|
||||
"viewCode": "View Code",
|
||||
"usedAt": "Used on:",
|
||||
"claimedAt": "Claimed on:",
|
||||
"editProfile": "Edit Profile",
|
||||
"photoOptional": "Optional photo",
|
||||
"nameLabel": "Full Name",
|
||||
"namePlaceholder": "Your name",
|
||||
"passwordOptional": "New Password (Optional)",
|
||||
"passwordPlaceholder": "Minimum 6 characters",
|
||||
"passwordHint": "Leave blank if you don't want to change it.",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save Changes",
|
||||
"saving": "Saving...",
|
||||
"qrTitle": "Discount Coupon",
|
||||
"qrCode": "REDEMPTION CODE",
|
||||
"qrInstructions": "Show this code to the establishment manager to validate your promotion.",
|
||||
"understood": "Understood",
|
||||
"pending": "Pending",
|
||||
"redeemed": "Redeemed",
|
||||
"expired": "Expired",
|
||||
"updateSuccess": "Profile updated successfully",
|
||||
"updateError": "Update error:",
|
||||
"user": "User",
|
||||
"logoutTitle": "Logout"
|
||||
},
|
||||
"auth": {
|
||||
"back": "Back",
|
||||
"brandingSubtitle": "Public Transport System",
|
||||
"loginTab": "Login",
|
||||
"registerTab": "Create Account",
|
||||
"sessionExpired": "Your session has expired. Please log in again.",
|
||||
"footer": "SIBU © 2026 • Chiriquí Transport System",
|
||||
"googleLogin": "Continue with Google",
|
||||
"googleRegister": "Sign up with Google",
|
||||
"orEmail": "or with email",
|
||||
"emailLabel": "Email address",
|
||||
"emailPlaceholder": "you@email.com",
|
||||
"passLabel": "Password",
|
||||
"keepSession": "Keep me logged in",
|
||||
"loggingIn": "Logging in...",
|
||||
"creatingAccount": "Creating account...",
|
||||
"noAccount": "Don't have an account?",
|
||||
"registerHere": "Register here",
|
||||
"hasAccount": "Already have an account?",
|
||||
"loginHere": "Login",
|
||||
"successTitle": "Successful registration!",
|
||||
"fullNameLabel": "Full name",
|
||||
"fullNamePlaceholder": "Your name",
|
||||
"passMin8": "Minimum 8 characters",
|
||||
"smartLocation": "Allow to detect my location automatically (Smart Location)",
|
||||
"emailRegistered": "Email is already registered.",
|
||||
"invalidCreds": "Incorrect email or password."
|
||||
},
|
||||
"routesView": {
|
||||
"title": "Transport",
|
||||
"busTab": "Bus Routes",
|
||||
"taxiTab": "Local Taxis",
|
||||
"originPlaceholder": "Origin City",
|
||||
"destPlaceholder": "Destination City",
|
||||
"searchBtn": "Search Routes",
|
||||
"allCorregimientos": "All corregimientos",
|
||||
"english": "English",
|
||||
"availableRoutes": "Available Routes",
|
||||
"recommendedDrivers": "Recommended Drivers",
|
||||
"active": "ACTIVE",
|
||||
"minutes": "min",
|
||||
"km": "km",
|
||||
"findSchedules": "View Schedules",
|
||||
"contact": "Contact",
|
||||
"noTaxis": "No taxis available in this area.",
|
||||
"noRoutes": "No routes found for your search."
|
||||
},
|
||||
"splash": {
|
||||
"subtitle": "Boquete Public Transport",
|
||||
"starting": "Starting SIBU...",
|
||||
"offline": "Starting offline mode...",
|
||||
"verifying": "Verifying data...",
|
||||
"ready": "Ready to use"
|
||||
},
|
||||
"report": {
|
||||
"title": "Send Report",
|
||||
"instruction": "Tell us what's happening or send us a suggestion. The administrative team will review your message.",
|
||||
"placeholder": "Write your message here...",
|
||||
"success": "Report sent successfully! Thanks for your collaboration.",
|
||||
"error": "There was an error sending the report. Please try again.",
|
||||
"cancel": "Cancel",
|
||||
"send": "Send Report"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user