Files
hihala-dashboard/src/locales/en.json
fahed 70af4962a6
All checks were successful
Deploy HiHala Dashboard / deploy (push) Successful in 6s
feat: multi-user auth with role-based access
- Server checks PIN against env (super admin) + NocoDB Users table
- Session stores name + role (admin/viewer)
- Admin: sees Settings page (seasons + users management)
- Viewer: sees Dashboard + Comparison only, no Settings
- Users CRUD on Settings page: add name + PIN + role, delete
- Settings link + nav hidden for non-admin users

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 22:17:44 +03:00

200 lines
5.7 KiB
JSON

{
"app": {
"name": "HiHala Data",
"loading": "Loading data...",
"error": "Unable to load data",
"retry": "Retry",
"offline": "Offline",
"refresh": "Refresh data"
},
"nav": {
"dashboard": "Dashboard",
"comparison": "Comparison",
"compare": "Compare",
"slides": "Slides",
"settings": "Settings",
"labels": "Labels",
"labelsOn": "Labels On",
"labelsOff": "Labels Off",
"labelsTooltip": "Show values on charts",
"vat": "VAT"
},
"toggle": {
"on": "On",
"off": "Off",
"incl": "Incl",
"excl": "Excl"
},
"dataSources": {
"museums": "Events",
"coffees": "Coffees",
"ecommerce": "eCommerce",
"soon": "soon"
},
"filters": {
"title": "Filters",
"year": "Year",
"district": "District",
"channel": "Channel",
"museum": "Event",
"quarter": "Quarter",
"allYears": "All Years",
"allDistricts": "All Districts",
"allChannels": "All Channels",
"allMuseums": "All Events",
"allQuarters": "All Quarters",
"season": "Season",
"allSeasons": "All Seasons",
"reset": "Reset Filters"
},
"metrics": {
"revenue": "Revenue",
"totalRevenue": "Total Revenue",
"visitors": "Visitors",
"totalVisitors": "Total Visitors",
"tickets": "Tickets",
"totalTickets": "Total Tickets",
"avgRevenue": "Avg Rev/Visitor",
"avgRevenuePerVisitor": "Avg Revenue/Visitor",
"pilgrims": "Pilgrims",
"captureRate": "Capture Rate"
},
"dashboard": {
"title": "Dashboard",
"subtitle": "Event analytics from ERP",
"noData": "No data found",
"noDataMessage": "No records match your current filters. Try adjusting your selection.",
"quarterlyComparison": "Quarterly Comparison: 2024 vs 2025",
"revenueTrends": "Revenue Trends",
"visitorsByMuseum": "Visitors by Event",
"revenueByMuseum": "Revenue by Event",
"quarterlyRevenue": "Quarterly Revenue (YoY)",
"districtPerformance": "District Performance",
"channelPerformance": "Channel Performance",
"captureRateChart": "Capture Rate vs Umrah Pilgrims"
},
"table": {
"quarter": "Quarter",
"rev2024": "Rev 2024",
"rev2025": "Rev 2025",
"change": "Change",
"visitors2024": "Visitors 2024",
"visitors2025": "Visitors 2025",
"capture2024": "Capture 2024",
"capture2025": "Capture 2025"
},
"time": {
"daily": "Daily",
"weekly": "Weekly",
"monthly": "Monthly",
"q1": "Q1",
"q2": "Q2",
"q3": "Q3",
"q4": "Q4",
"h1": "H1",
"h2": "H2",
"fullYear": "Full Year"
},
"months": {
"january": "January",
"february": "February",
"march": "March",
"april": "April",
"may": "May",
"june": "June",
"july": "July",
"august": "August",
"september": "September",
"october": "October",
"november": "November",
"december": "December"
},
"comparison": {
"title": "Period Comparison",
"subtitle": "Select a period and year — automatically compares with the same period in the previous year",
"selectPeriod": "Select Period",
"period": "Period",
"from": "From",
"to": "To",
"custom": "Custom",
"previousPeriod": "Previous Period",
"currentPeriod": "Current Period",
"vs": "vs",
"noData": "No data for this period",
"noDataMessage": "No records found for the selected date range and filters.",
"trend": "Trend",
"byMuseum": "By Event",
"pendingData": "Data not published yet"
},
"slides": {
"title": "Presentation Builder",
"subtitle": "Create slides with charts and export as HTML or PDF",
"addSlide": "Add Slide",
"preview": "Preview",
"exportHtml": "Export HTML",
"slidesCount": "Slides",
"noSlides": "No slides yet",
"addFirst": "Add your first slide",
"slideTitle": "Slide Title",
"chartType": "Chart Type",
"metric": "Metric",
"startDate": "Start Date",
"endDate": "End Date",
"showYoY": "Show Year-over-Year Comparison",
"exit": "Exit",
"revenueTrend": "Revenue Trend",
"byMuseum": "By Event",
"kpiSummary": "KPI Summary",
"yoyComparison": "YoY Comparison"
},
"charts": {
"revenueTrend": "Revenue Trend",
"visitors": "Visitors",
"revenue": "Revenue",
"quarterly": "Quarterly",
"district": "District",
"channel": "Channel",
"captureRate": "Capture Rate"
},
"settings": {
"title": "Settings",
"subtitle": "Configure dashboard settings and hijri seasons",
"seasons": "Hijri Seasons",
"seasonsHint": "Define seasons with their Gregorian date ranges. These appear as filter presets and chart overlays.",
"seasonName": "Season",
"startDate": "Start Date",
"endDate": "End Date",
"actions": "Actions",
"namePlaceholder": "e.g. Ramadan",
"add": "Add",
"delete": "Delete",
"users": "Users",
"usersHint": "Add users with a PIN code. Viewers can see the dashboard but not settings.",
"userName": "Name",
"userPin": "PIN",
"userRole": "Role"
},
"login": {
"subtitle": "Enter your PIN to access the dashboard",
"placeholder": "PIN code",
"submit": "Login",
"invalid": "Invalid PIN code",
"error": "Connection error. Please try again."
},
"errors": {
"config": "The dashboard is not configured. Please set up the ERP API connection.",
"network": "Cannot reach the database server. Please check your internet connection.",
"auth": "Access denied. The API token may be invalid or expired.",
"timeout": "The database server is taking too long to respond. Please try again.",
"unknown": "Something went wrong while loading data. Please try again."
},
"language": {
"switch": "عربي"
},
"export": {
"exportAll": "Export All Charts",
"exportSlides": "Export for Slides",
"exporting": "Exporting..."
}
}