Pass profile timezone through DashboardData so the frontend can compute the current hour and highlight it on the heatmap (white ring + orange triangle marker). Only activates when the dashboard date matches today in the profile timezone. In cold weather (peak < 22°C, risk low), the risk card now shows a teal "Comfortable" presentation with a checkmark icon instead of the generic green "Low" shield.
284 lines
13 KiB
JSON
284 lines
13 KiB
JSON
{
|
|
"app": {
|
|
"name": "HeatGuard",
|
|
"tagline": "Personalized heat preparedness"
|
|
},
|
|
"nav": {
|
|
"dashboard": "Dashboard",
|
|
"setup": "Setup",
|
|
"guide": "Guide",
|
|
"language": "Language"
|
|
},
|
|
"setup": {
|
|
"title": "Setup",
|
|
"profiles": {
|
|
"title": "Profiles",
|
|
"help": "A profile represents a location you want to monitor.",
|
|
"name": { "label": "Name", "tooltip": "A descriptive name for this location" },
|
|
"latitude": { "label": "Latitude", "tooltip": "Decimal degrees (e.g. 52.52)" },
|
|
"longitude": { "label": "Longitude", "tooltip": "Decimal degrees (e.g. 13.405)" },
|
|
"timezone": { "label": "Timezone", "tooltip": "IANA timezone (e.g. Europe/Berlin)" },
|
|
"geolocate": {
|
|
"button": "Use my location",
|
|
"loading": "Detecting location\u2026",
|
|
"denied": "Location permission denied.",
|
|
"unavailable": "Location unavailable.",
|
|
"timeout": "Location request timed out."
|
|
},
|
|
"add": "Add Profile",
|
|
"save": "Save Profile",
|
|
"edit": "Edit",
|
|
"delete": "Delete",
|
|
"noItems": "No profiles yet. Create one to get started."
|
|
},
|
|
"rooms": {
|
|
"title": "Rooms",
|
|
"help": "Add rooms to monitor. Properties affect heat calculations.",
|
|
"name": { "label": "Name", "tooltip": "Room name (e.g. Office, Bedroom)" },
|
|
"area": { "label": "Area (m\u00b2)", "tooltip": "Floor area. Affects solar gain through windows." },
|
|
"ceilingHeight": { "label": "Ceiling Height (m)", "tooltip": "Room height. Affects air volume for ventilation calculations." },
|
|
"floor": { "label": "Floor", "tooltip": "Floor number (0 = ground). Higher floors tend to be warmer." },
|
|
"orientation": {
|
|
"label": "Orientation",
|
|
"tooltip": "Primary window direction. Affects solar gain timing.",
|
|
"options": { "N": "North", "NE": "Northeast", "E": "East", "SE": "Southeast", "S": "South", "SW": "Southwest", "W": "West", "NW": "Northwest" }
|
|
},
|
|
"shadingType": {
|
|
"label": "Shading",
|
|
"tooltip": "Type of exterior shading (none, blinds, shutters, awning).",
|
|
"options": { "none": "None", "blinds": "Blinds", "shutters": "Shutters", "awning": "Awning" }
|
|
},
|
|
"shadingFactor": { "label": "Shading Factor", "tooltip": "0 = fully shaded, 1 = no shading. External shutters \u2248 0.2, internal blinds \u2248 0.6." },
|
|
"ventilation": { "label": "Ventilation", "tooltip": "Ventilation type (natural, mechanical, sealed)." },
|
|
"ventilationAch": { "label": "Ventilation ACH", "tooltip": "Air Changes per Hour. Sealed \u2248 0.3, natural \u2248 1.5, open windows \u2248 5.0." },
|
|
"windowFraction": { "label": "Window Fraction", "tooltip": "Fraction of wall area that is window (0\u20131). Typical: 0.15." },
|
|
"shgc": { "label": "SHGC", "tooltip": "Solar Heat Gain Coefficient (0\u20131). Low-E glass \u2248 0.3, clear glass \u2248 0.8." },
|
|
"insulation": {
|
|
"label": "Insulation",
|
|
"tooltip": "Wall insulation quality (poor, average, good, excellent).",
|
|
"options": { "poor": "Poor", "average": "Average", "good": "Good", "excellent": "Excellent" }
|
|
},
|
|
"indoorTemp": {
|
|
"label": "Indoor Temp (\u00b0C)",
|
|
"tooltip": "Current or target indoor temperature. Default 25\u00b0C."
|
|
},
|
|
"add": "Add Room",
|
|
"save": "Save Room",
|
|
"noItems": "No rooms yet. Add rooms to your profile."
|
|
},
|
|
"devices": {
|
|
"title": "Devices",
|
|
"help": "Heat-producing devices in each room.",
|
|
"name": { "label": "Name", "tooltip": "Device name (e.g. Desktop PC, TV)" },
|
|
"room": { "label": "Room", "tooltip": "Which room this device is in" },
|
|
"type": { "label": "Type", "tooltip": "Device category" },
|
|
"wattsIdle": { "label": "Watts (Idle)", "tooltip": "Power draw when idle/standby" },
|
|
"wattsTypical": { "label": "Watts (Typical)", "tooltip": "Power draw during normal use" },
|
|
"wattsPeak": { "label": "Watts (Peak)", "tooltip": "Power draw at maximum load (e.g. gaming)" },
|
|
"dutyCycle": { "label": "Duty Cycle", "tooltip": "Fraction of time active (0\u20131). Fridge \u2248 0.3, PC \u2248 1.0." },
|
|
"add": "Add Device",
|
|
"save": "Save Device",
|
|
"noItems": "No devices yet."
|
|
},
|
|
"occupants": {
|
|
"title": "Occupants",
|
|
"help": "People in each room. Metabolic heat contributes to room temperature.",
|
|
"room": { "label": "Room", "tooltip": "Which room" },
|
|
"count": { "label": "Count", "tooltip": "Number of people" },
|
|
"activity": {
|
|
"label": "Activity Level",
|
|
"tooltip": "Sleeping \u2248 70W, Sedentary \u2248 100W, Light \u2248 130W, Moderate \u2248 200W, Heavy \u2248 300W per person.",
|
|
"options": { "sleeping": "Sleeping", "sedentary": "Sedentary", "light": "Light", "moderate": "Moderate", "heavy": "Heavy" }
|
|
},
|
|
"vulnerable": { "label": "Vulnerable", "tooltip": "Check if elderly, young children, or health-compromised. Adds care reminders." },
|
|
"add": "Add Occupants",
|
|
"save": "Save Occupants",
|
|
"noItems": "No occupants yet."
|
|
},
|
|
"ac": {
|
|
"title": "AC Units",
|
|
"help": "Air conditioning units and their room assignments.",
|
|
"name": { "label": "Name", "tooltip": "AC unit name" },
|
|
"type": {
|
|
"label": "Type",
|
|
"tooltip": "portable, window, split, central",
|
|
"options": { "portable": "Portable", "window": "Window", "split": "Split", "central": "Central" }
|
|
},
|
|
"capacity": { "label": "Capacity (BTU)", "tooltip": "Cooling capacity in BTU/h. Typical portable: 8,000\u201314,000 BTU." },
|
|
"eer": { "label": "EER", "tooltip": "Energy Efficiency Ratio. Higher = more efficient. Typical: 8\u201312." },
|
|
"dehumidify": { "label": "Dehumidify", "tooltip": "Whether the unit has a dehumidify mode" },
|
|
"rooms": { "label": "Assigned Rooms", "tooltip": "Which rooms this AC unit serves" },
|
|
"add": "Add AC Unit",
|
|
"save": "Save AC Unit",
|
|
"noItems": "No AC units yet."
|
|
},
|
|
"toggles": {
|
|
"title": "Toggles",
|
|
"help": "Activity toggles affect heat calculations for the current day.",
|
|
"gaming": "Gaming (devices at peak power)",
|
|
"cooking": "Cooking (additional kitchen heat)",
|
|
"laundry": "Laundry / Dryer running",
|
|
"guests": "Extra guests present"
|
|
},
|
|
"forecast": {
|
|
"title": "Forecast",
|
|
"help": "Fetch weather forecast data for your profile location.",
|
|
"fetch": "Fetch Forecast",
|
|
"lastFetched": "Last fetched",
|
|
"never": "Never",
|
|
"fetching": "Fetching forecast\u2026"
|
|
},
|
|
"llm": {
|
|
"title": "AI Summary",
|
|
"help": "Configure an AI provider for personalized heat summaries.",
|
|
"provider": "Provider",
|
|
"model": "Model",
|
|
"apiKey": "API Key",
|
|
"apiKeyPlaceholder": "Enter API key",
|
|
"modelPlaceholder": "Model name (leave blank for default)",
|
|
"save": "Save Settings",
|
|
"serverProvider": "Server provider",
|
|
"configured": "Configured on server",
|
|
"notConfigured": "No AI provider configured on the server.",
|
|
"providerOptions": { "anthropic": "Anthropic", "openai": "OpenAI", "gemini": "Google Gemini" }
|
|
}
|
|
},
|
|
"dashboard": {
|
|
"title": "Heat Report",
|
|
"riskLevel": "Risk Level",
|
|
"peakTemp": "Peak Temperature",
|
|
"minNightTemp": "Min Night Temp",
|
|
"poorNightCool": "Poor Night Cooling",
|
|
"timeline": "24h Timeline",
|
|
"roomBudgets": "Room Heat Budgets",
|
|
"actions": "Actions",
|
|
"careChecklist": "Care Checklist",
|
|
"warnings": "Weather Warnings",
|
|
"riskWindows": "Risk Windows",
|
|
"llmSummary": "AI Summary",
|
|
"noData": "No data yet. Set up your profile and fetch a forecast.",
|
|
"getStarted": "Get Started",
|
|
"goToSetup": "Go to Setup",
|
|
"goToGuide": "Read the Guide",
|
|
"loading": "Loading\u2026",
|
|
"computing": "Computing heat analysis\u2026",
|
|
"error": "Failed to load data. Please try again.",
|
|
"internalGains": "Internal Gains",
|
|
"solarGain": "Solar Gain",
|
|
"ventGain": "Ventilation Gain",
|
|
"totalGain": "Total Gain",
|
|
"acCapacity": "AC Capacity",
|
|
"headroom": "Headroom",
|
|
"comfortable": "Comfortable",
|
|
"marginal": "Marginal",
|
|
"overloaded": "Overloaded",
|
|
"fetchForecastFirst": "No forecast data. Fetch a forecast in Setup first.",
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"riskLow": "Low",
|
|
"riskModerate": "Moderate",
|
|
"riskHigh": "High",
|
|
"riskExtreme": "Extreme",
|
|
"noActions": "No actions",
|
|
"effort": "Effort",
|
|
"impact": "Impact",
|
|
"aiDisclaimer": "AI-generated summary. Not a substitute for professional advice.",
|
|
"riskComfort": "Comfortable",
|
|
"coolComfort": "No cooling needed",
|
|
"coolVentilate": "Open windows",
|
|
"coolAC": "AC cooling",
|
|
"coolOverloaded": "AC overloaded",
|
|
"coolSealed": "Keep sealed",
|
|
"aiActions": "AI-recommended actions",
|
|
"legendTemp": "Temperature",
|
|
"legendCooling": "Cooling",
|
|
"refreshForecast": "Refresh Forecast",
|
|
"refreshing": "Refreshing\u2026",
|
|
"forecastRefreshed": "Forecast refreshed",
|
|
"quickSettings": "Quick Settings",
|
|
"qsIndoorTemp": "Indoor Temp (\u00b0C)",
|
|
"qsIndoorHumidity": "Indoor Humidity (%)",
|
|
"qsApply": "Apply",
|
|
"legendAI": "AI Actions",
|
|
"category": {
|
|
"shading": "Shading",
|
|
"ventilation": "Ventilation",
|
|
"internal_gains": "Heat Sources",
|
|
"ac_strategy": "AC Strategy",
|
|
"hydration": "Hydration",
|
|
"care": "Care"
|
|
}
|
|
},
|
|
"guide": {
|
|
"title": "Getting Started",
|
|
"intro": "HeatGuard helps you prepare for heat events by analyzing your living space, weather forecasts, and providing personalized hour-by-hour action plans.",
|
|
"step1": {
|
|
"title": "1. Create a Profile",
|
|
"text": "Go to Setup and create a profile for your location. Enter your coordinates (use the 'Use my location' button for auto-detection) and timezone."
|
|
},
|
|
"step2": {
|
|
"title": "2. Add Rooms",
|
|
"text": "Add the rooms you want to monitor. Set the area, orientation (which direction windows face), ceiling height, and window properties. These affect solar gain and ventilation calculations."
|
|
},
|
|
"step3": {
|
|
"title": "3. Add Devices & Occupants",
|
|
"text": "Add heat-producing devices (computers, TVs, appliances) and occupants to each room. Each person and device contributes to the internal heat load."
|
|
},
|
|
"step4": {
|
|
"title": "4. Configure AC Units",
|
|
"text": "If you have air conditioning, add your units and assign them to rooms. This allows HeatGuard to calculate whether your cooling capacity is sufficient."
|
|
},
|
|
"step5": {
|
|
"title": "5. Fetch a Forecast",
|
|
"text": "On the Setup page, click 'Fetch Forecast' to get the latest weather data for your location. Forecasts cover the next 3 days."
|
|
},
|
|
"step6": {
|
|
"title": "6. View the Dashboard",
|
|
"text": "Return to the Dashboard to see your personalized heat analysis: risk level, temperature timeline, room heat budgets, and recommended actions."
|
|
},
|
|
"params": {
|
|
"title": "Understanding Room Parameters",
|
|
"shgc": "SHGC (Solar Heat Gain Coefficient): How much solar energy passes through windows. Low-E glass \u2248 0.3, clear single pane \u2248 0.8.",
|
|
"ventilation": "Ventilation ACH (Air Changes per Hour): How often the room's air volume is replaced. Sealed room \u2248 0.3, open windows \u2248 5.0.",
|
|
"shading": "Shading Factor: 0 = fully shaded (no sun enters), 1 = no shading. External shutters \u2248 0.2, internal blinds \u2248 0.6.",
|
|
"orientation": "Orientation: South-facing rooms get the most midday sun. East faces morning sun, West faces afternoon sun."
|
|
},
|
|
"risk": {
|
|
"title": "Understanding Risk Levels",
|
|
"low": "Low: Temperatures below 30\u00b0C. Normal conditions.",
|
|
"moderate": "Moderate: Temperatures 30\u201335\u00b0C. Take basic precautions.",
|
|
"high": "High: Temperatures 35\u201340\u00b0C. Significant heat stress risk.",
|
|
"extreme": "Extreme: Temperatures above 40\u00b0C. Dangerous conditions."
|
|
},
|
|
"budget": {
|
|
"title": "Understanding Heat Budgets",
|
|
"text": "Each room's heat budget compares total heat gains (devices + people + solar + ventilation) against AC cooling capacity. Status: Comfortable (>20% headroom), Marginal (0\u201320% headroom), Overloaded (gains exceed capacity)."
|
|
},
|
|
"tips": {
|
|
"title": "Tips for Accuracy",
|
|
"tip1": "Measure your room area and window sizes for better solar gain estimates.",
|
|
"tip2": "Check device power ratings on labels or manufacturer specs.",
|
|
"tip3": "Close external shutters/blinds during peak sun hours for maximum effect.",
|
|
"tip4": "Use the gaming toggle on days when you'll be running devices at full load."
|
|
}
|
|
},
|
|
"footer": {
|
|
"source": "Source Code",
|
|
"license": "GPL-3.0 License"
|
|
},
|
|
"common": {
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"saving": "Saving\u2026",
|
|
"saved": "Saved",
|
|
"error": "Something went wrong.",
|
|
"confirm": "Are you sure?",
|
|
"loading": "Loading\u2026",
|
|
"noProfile": "No profile selected.",
|
|
"watts": "W",
|
|
"btuh": "BTU/h"
|
|
}
|
|
}
|