Files
gree-controller/lang/en.json
T
2026-08-30 09:50:03 +02:00

774 lines
41 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"meta": {
"code": "en",
"name": "English",
"native_name": "English",
"locale": "en-GB"
},
"translations": {
"meta.description": "Local GREE air conditioner controller",
"status.connecting": "Connecting…",
"status.connected": "Connected",
"status.disconnected": "Disconnected",
"status.connectionError": "Connection error",
"status.online": "Online",
"status.offline": "Offline",
"controls.language": "Language",
"controls.theme": "Theme",
"theme.system": "System",
"theme.light": "Light",
"theme.dark": "Dark",
"nav.navigation": "Navigation",
"nav.dashboard": "Dashboard",
"nav.devices": "Devices",
"nav.zones": "Zones",
"nav.history": "History",
"nav.more": "More",
"nav.schedules": "Schedules",
"nav.automations": "Automations",
"nav.settings": "Settings",
"nav.logs": "Events",
"nav.logsAndEvents": "Events and logs",
"actions.refresh": "Refresh",
"actions.discover": "Discover",
"actions.discovering": "Searching…",
"actions.add": "Add",
"actions.show": "Show",
"actions.save": "Save",
"actions.cancel": "Cancel",
"actions.edit": "Edit",
"actions.delete": "Delete",
"actions.read": "Read",
"actions.bind": "Bind",
"actions.noChange": "No change",
"actions.turnOn": "Turn on",
"actions.turnOff": "Turn off",
"dashboard.home": "Home",
"dashboard.title": "Comfort under control",
"dashboard.loading": "Loading devices…",
"dashboard.quickControl": "Manual control",
"dashboard.summary": "{online} of {total} devices online{active}.",
"dashboard.summaryActive": ", {count} running",
"dashboard.empty": "No devices. Start discovery or add a device manually.",
"dashboard.metricOnline": "Online",
"dashboard.metricActive": "Active",
"dashboard.metricDemand": "Zones requesting",
"devices.lan": "LAN network",
"devices.addManual": "Add manually",
"devices.add": "Add device",
"devices.ipAddress": "IP address",
"devices.protocol": "Protocol",
"devices.keyOptional": "Key (optional)",
"devices.keyPlaceholder": "Leave empty for automatic bind",
"devices.simulated": "Simulated device",
"devices.simulator": "simulator",
"devices.power": "Power",
"devices.currentTemperature": "Temperature",
"devices.outdoor": "outside",
"devices.quiet": "Quiet",
"devices.swing": "Swing",
"devices.turbo": "Turbo",
"devices.emptyTitle": "No devices",
"devices.emptyText": "Use Discover while the controller is on the same LAN.",
"devices.readDone": "Device state updated",
"devices.bound": "Device bound",
"devices.added": "Device added",
"devices.disabledZoneTechnicalOnly": "This zone is disabled. Manual control of its unit is available only from the Devices view.",
"zones.automation": "Automation",
"zones.new": "New zone",
"zones.description": "Zones define thermostat logic and sensor configuration. Use Quick thermostats on the Dashboard for current temperature, preset and mode changes.",
"zones.hysteresis": "Hysteresis °C",
"zones.source": "Temperature strategy",
"zones.greeSensor": "GREE only",
"zones.combinedSensor": "GREE + room sensor",
"zones.externalSensor": "Room sensor only",
"zones.minOn": "Min. ON (s)",
"zones.minOff": "Min. OFF (s)",
"zones.greeSource": "GREE sensor",
"zones.combinedSource": "GREE + room sensor",
"zones.externalSource": "room sensor",
"zones.measurement": "Control temperature",
"zones.demand": "Demand",
"zones.emptyTitle": "No zones",
"zones.emptyText": "Add a zone to control temperature automatically.",
"zones.roomSensorEntity": "Room sensor entity_id",
"zones.roomSensorWeight": "Room sensor weight %",
"zones.maxDifference": "Max. sensor difference °C",
"zones.sensorHelp": "This sensor belongs only to this zone. If it becomes unavailable, the controller automatically falls back to the GREE sensor.",
"zones.greeTemp": "GREE",
"zones.externalTemp": "Room",
"zones.usedSource": "used",
"zones.sourceDevice": "GREE",
"zones.sourceExternal": "room sensor",
"zones.sourceCombined": "combined",
"zones.sourceFallback": "GREE fallback",
"zones.sourceDiscrepancy": "GREE fallback: sensor mismatch",
"zones.sourceUnavailable": "unavailable",
"schedules.calendar": "Calendar",
"schedules.weekdays": "Weekdays",
"schedules.crossMidnight": "Intervals crossing midnight are supported",
"schedules.emptyTitle": "No schedules",
"schedules.emptyText": "Set a temperature by day and time.",
"automations.rules": "Rules",
"automations.namePlaceholder": "Emergency cooling",
"automations.trigger": "Trigger",
"automations.tempAbove": "Temperature above",
"automations.tempBelow": "Temperature below",
"automations.time": "Time",
"automations.measurementDevice": "Measurement device",
"automations.thresholdC": "Threshold °C",
"automations.action": "Action",
"automations.triggerAt": "at {time}",
"automations.triggerAbove": "above {temperature}",
"automations.triggerBelow": "below {temperature}",
"automations.triggerSummary": "Trigger {trigger} · action: {device}",
"automations.last": "Last",
"automations.emptyTitle": "No automations",
"automations.emptyText": "Add a temperature or time rule.",
"history.measurements": "Measurements",
"history.title": "Climate history",
"history.6h": "6 hours",
"history.24h": "24 hours",
"history.7d": "7 days",
"history.30d": "30 days",
"history.noData": "No measurements for the selected period",
"settings.system": "System",
"settings.controller": "Controller",
"settings.clientId": "Client identifier",
"settings.pollInterval": "Poll interval (s)",
"settings.zoneInterval": "Zone interval (s)",
"settings.broadcast": "Broadcast address",
"settings.discoveryTimeout": "Discovery timeout (ms)",
"settings.simulationMode": "Simulation mode",
"settings.haTokenKeep": "Leave empty to keep the saved token",
"settings.haTokenSaved": "Token saved — leave empty to keep it",
"settings.haLongLivedToken": "Long-Lived Access Token",
"settings.defaultEntity": "Default entity_id",
"settings.testHa": "Test HA",
"settings.systemState": "System status",
"settings.version": "Version",
"settings.uptime": "Uptime",
"settings.apiAuth": "API authentication",
"settings.enabled": "enabled",
"settings.disabled": "disabled",
"logs.diagnostics": "Diagnostics",
"logs.emptyTitle": "No events",
"logs.emptyText": "The event log is empty.",
"common.name": "Name",
"common.zone": "Zone",
"common.device": "Device",
"common.mode": "Mode",
"common.target": "Target",
"common.targetC": "Target °C",
"common.temperature": "Temperature",
"common.temperatureC": "Temperature °C",
"common.schedule": "Schedule",
"common.automation": "Automation",
"common.enabled": "Enabled",
"common.disabled": "Disabled",
"common.active": "Active",
"common.from": "From",
"common.to": "To",
"common.power": "Power",
"common.on": "ON",
"common.off": "OFF",
"common.noDevice": "No device",
"common.noZone": "No zone",
"common.cooldown": "Cooldown",
"common.cooldownSeconds": "Cooldown (s)",
"common.removed": "Removed",
"common.updated": "Data refreshed",
"common.saved": "Saved",
"placeholder.livingRoom": "Living room",
"placeholder.night": "Night",
"mode.auto": "Auto",
"mode.cool": "Cooling",
"mode.dry": "Dry",
"mode.fan": "Fan",
"mode.heat": "Heating",
"fan.auto": "Auto",
"fan.low": "Low",
"fan.mediumLow": "Medium-low",
"fan.medium": "Medium",
"fan.mediumHigh": "Medium-high",
"fan.high": "High",
"auth.required": "Authentication required",
"auth.token": "Access token",
"auth.connect": "Connect",
"auth.invalid": "Invalid access token",
"error.http": "HTTP error {status}",
"confirm.delete": "Delete {label}?",
"label.device": "device",
"label.zone": "zone",
"label.schedule": "schedule",
"label.automation": "automation",
"toast.found": "Found: {count}",
"toast.haTemperature": "Home Assistant: {temperature}°C",
"day.1": "Mon",
"day.2": "Tue",
"day.3": "Wed",
"day.4": "Thu",
"day.5": "Fri",
"day.6": "Sat",
"day.7": "Sun",
"settings.haSensorInput": "Home Assistant sensor input",
"settings.haSensorInputHint": "Optional. Used only when a room zone reads an external Home Assistant temperature sensor.",
"settings.haIntegrationAccess": "Home Assistant integration access",
"settings.haIntegrationHint": "Create a controller token and paste it into the GREE Controller integration in Home Assistant.",
"settings.newToken": "Create new token",
"settings.noTokens": "No integration tokens",
"settings.noTokensHint": "Create a token before adding GREE Controller to Home Assistant.",
"settings.tokenCreated": "Token created",
"settings.tokenCreatedHint": "Copy this token now. It will not be shown again.",
"settings.created": "Created",
"actions.copy": "Copy",
"actions.revoke": "Revoke",
"actions.done": "Done",
"confirm.revokeToken": "Revoke this Home Assistant access token?",
"toast.tokenCreated": "Home Assistant access token created",
"toast.tokenCopied": "Token copied",
"toast.tokenRevoked": "Token revoked",
"devices.protocolAuto": "Auto (V1 + V2)",
"devices.rename": "Name / protocol",
"devices.protocolChangeHint": "Changing protocol clears the saved device key and performs a new bind on the next request.",
"discovery.title": "Discover GREE devices",
"discovery.help": "Auto searches both AES-ECB and AES-GCM devices. Multiple passes improve discovery when several Wi-Fi modules answer the same broadcast.",
"discovery.protocol": "Discovery protocol",
"discovery.passes": "Scan passes",
"discovery.timeout": "Total scan time (ms)",
"zones.quickHint": "Quick target and mode control",
"actions.later": "Later",
"discovery.nameDevices": "Name discovered devices",
"discovery.nameDevicesHelp": "Give each new unit a friendly room name. The technical model and MAC remain available in diagnostics.",
"dashboard.quickThermostats": "Thermostats",
"common.unavailable": "Unavailable",
"mode.off": "Off",
"house.seasonMode": "Home climate mode",
"house.smartThermostat": "Smart thermostat",
"house.setpointStrategy": "Cooling or heating controls zones automatically. “Do not control” leaves devices and manually activated zones untouched by the house thermostat.",
"house.outdoor": "Outdoor",
"house.modeUpdated": "Home climate mode updated",
"zones.modePolicy": "Mode policy",
"zones.modePolicyHint": "If this zone should use the global Heating/Cooling mode selected in GREE Controller, leave “Follow global mode” unchanged. “Cooling only” or “Heating only” forces a fixed mode only for this zone.",
"zones.followHouse": "Follow global mode",
"zones.followHouseShort": "Global",
"zones.globalModeUnavailable": "Select global Heating or Cooling first",
"zones.profileTemperatures": "Comfort / sleep / away temperatures",
"zones.minAdjust": "Minimum adjustment interval (s)",
"zones.standbyOffset": "Standby setpoint offset °C",
"zones.smartFan": "Smart fan assist",
"zones.deviceTarget": "AC target",
"zones.overrideUntil": "Manual until",
"zones.scheduleControl": "Schedule control",
"zones.manualNoBoundary": "Manual · no next transition",
"zones.requesting": "Demand active",
"zones.satisfied": "Target reached",
"zones.quickHintSmart": "Quick changes last until the next schedule transition; without a schedule they stay active.",
"preset.auto": "Auto",
"preset.comfort": "Comfort",
"preset.sleep": "Sleep",
"preset.away": "Away",
"preset.custom": "Custom",
"schedules.quickSetup": "Quick schedule setup",
"schedules.quickSetupHint": "Choose a zone and a ready-made daily rhythm. You can edit every generated entry afterwards.",
"schedules.templateFamily": "Family",
"schedules.templateChild": "Child room",
"schedules.templateBedroom": "Bedroom",
"schedules.templateWorkday": "Workday",
"schedules.templateAlways": "Always comfort",
"schedules.chooseZone": "Choose a zone first",
"schedules.templateApplied": "Schedule preset applied",
"schedules.profile": "Profile",
"settings.outdoorEntity": "Outdoor temperature entity_id",
"settings.outdoorAssist": "Use outdoor temperature as smart-control assist",
"settings.allowInvalidTls": "Allow invalid/self-signed HTTPS certificate",
"settings.allowInvalidTlsHint": "Use only for a trusted local Home Assistant server, for example https://192.168.50.25.",
"zones.sleepNow": "Sleep",
"house.autoAll": "Auto schedule",
"house.comfortAll": "Comfort all",
"house.sleepAll": "Sleep all",
"house.awayAll": "Away all",
"house.presetUpdated": "Home preset updated",
"schedules.replaceConfirm": "Replace the current schedule for this zone with the selected preset? You can edit every generated entry afterwards.",
"automations.smartHintTitle": "Use thermostat presets for daily comfort",
"automations.smartHint": "Schedules and zone presets handle normal heating/cooling automatically. Keep automations for special exceptions so they do not fight the thermostat.",
"history.allZones": "All zones",
"history.temperatureOverview": "Temperature overview",
"history.temperatureOverviewHint": "GREE, room sensor, control temperature, targets and outdoor temperature.",
"history.operationOverview": "Targets and operation",
"history.operationOverviewHint": "Zone targets, compressor demand, power and fan activity over the same period.",
"history.greeSensor": "GREE sensor",
"history.roomSensor": "Room sensor",
"history.controlTemperature": "Control temperature",
"history.comfortTarget": "Comfort target",
"history.deviceSetpoint": "Device setpoint",
"history.outdoorTemperature": "Outdoor temperature",
"history.fanSpeed": "Fan speed",
"history.demand": "Demand",
"history.power": "Power",
"history.targetShort": "Target",
"history.sensor": "Indoor unit",
"history.homeAssistant": "Home Assistant",
"history.assist": "Outdoor assist",
"history.tabOverview": "Overview",
"history.tabZones": "Zones",
"history.tabDevices": "GREE devices",
"history.tabSensors": "HA sensors",
"history.tabCustom": "Custom chart",
"history.overviewHint": "All rooms, units and available outdoor measurements in one place.",
"history.customHint": "Compose your own chart from GREE, zone and Home Assistant data.",
"history.allDevices": "All GREE devices",
"history.allSensors": "All HA sensors",
"history.haSensor": "HA sensor",
"history.deviceSamples": "GREE samples",
"history.zoneSamples": "Zone samples",
"history.haSamples": "HA samples",
"history.greeHistory": "Device polling history",
"history.zoneHistory": "Thermostat history",
"history.haHistory": "External sensor history",
"history.allGreeIndoor": "All GREE indoor temperatures",
"history.allGreeIndoorHint": "Indoor temperature reported by every GREE unit, independent of zones.",
"history.allOutdoor": "Outdoor temperatures",
"history.allOutdoorHint": "Outdoor values reported by GREE units plus the optional Home Assistant outdoor sensor.",
"history.allZoneControl": "All zone control temperatures",
"history.allZoneControlHint": "The temperature actually used by the thermostat in every zone.",
"history.greeOutdoor": "GREE outdoor",
"history.deviceIndoor": "GREE indoor temperature",
"history.deviceIndoorHint": "Indoor sensor history for the selected unit or all units.",
"history.deviceOutdoor": "GREE outdoor temperature",
"history.deviceOutdoorHint": "Outdoor temperature reported by compatible GREE units. Units without this sensor are omitted.",
"history.deviceTargets": "GREE target temperatures",
"history.deviceTargetsHint": "Setpoints sent to each GREE unit over time.",
"history.deviceTarget": "Device target",
"history.indoorTemperature": "Indoor temperature",
"history.haSensors": "Home Assistant temperatures",
"history.haSensorsHint": "Room and outdoor temperature entities read from Home Assistant.",
"history.customTitle": "Chart composer",
"history.customDescription": "Mix any GREE, zone or Home Assistant temperature series. Save it locally or copy a shareable URL.",
"history.addSeries": "Add series",
"history.noCustomSeries": "Add at least one series to the chart.",
"history.chartName": "Chart name",
"history.copyLink": "Copy link",
"history.series": "series",
"history.noSavedCharts": "No saved custom charts yet.",
"history.customChart": "Custom climate chart",
"history.customChartHint": "Your selected data sources on one timeline.",
"history.chartSaved": "Custom chart saved",
"history.linkCopied": "Chart link copied",
"toast.successTitle": "Done",
"toast.errorTitle": "Something went wrong",
"plan.eyebrow": "Control plan",
"plan.title": "What happens next",
"plan.house": "Whole house",
"plan.houseSummary": "{zones} enabled zones · {demand} requesting action",
"plan.noEvents": "No scheduled changes in the next days",
"plan.loading": "Loading current automation plan…",
"plan.rules": "Extra automations",
"plan.ruleCount": "{count} active rules",
"plan.event": "Change",
"plan.groupSummary": "Group zones: {zones} · requesting action: {demand}",
"plan.groupOff": "Group is turned off",
"zones.enable": "Enable zone",
"zones.disable": "Disable zone",
"history.90d": "90 days",
"history.1y": "1 year",
"settings.metrics": "Metrics storage",
"settings.retentionDays": "Local retention (days)",
"settings.compaction": "Compact old metrics",
"settings.compactionHint": "SQLite keeps recent data locally and compacts older samples to the resolution used by charts.",
"settings.greeCommands": "GREE commands",
"settings.greeTraffic": "GREE traffic",
"settings.greeTrafficHint": "Live counters of UDP frames received from configured air conditioners since controller startup.",
"settings.receivedFramesTotal": "Received frames total",
"settings.receivedFramesDevices": "Air conditioners",
"settings.suppressBeep": "Try to suppress command beeps",
"settings.suppressBeepHint": "Only changed properties are sent. Buzzer suppression is also requested when supported by the unit firmware.",
"settings.influx": "Long-term InfluxDB history",
"settings.influxHint": "Optional archive for older history. InfluxDB 1.x and 2.x are supported. Samples older than the handoff age are removed from SQLite only after a successful archive write.",
"settings.influxEnabled": "Enable InfluxDB archive",
"settings.influxVersion": "InfluxDB version",
"settings.influxThreshold": "Use archive for history older than (days)",
"settings.influxDatabase": "Database",
"settings.influxUsername": "Username",
"settings.influxPassword": "Password",
"settings.influxOrg": "Organization",
"settings.influxBucket": "Bucket",
"settings.influxToken": "Token",
"settings.secretKeep": "Leave empty to keep saved secret",
"settings.secretSaved": "Secret already saved — leave empty to keep it",
"settings.debug": "On-screen debug",
"settings.debugOverlay": "Show debug window on every page",
"settings.debugGreeFrames": "Include GREE protocol frames",
"settings.backup": "Configuration backup",
"settings.backupHint": "Export/import application configuration. Exported files can contain GREE device keys plus Home Assistant, InfluxDB and notification secrets; metrics and API access tokens are not included.",
"settings.export": "Export settings",
"settings.import": "Import settings",
"settings.importConfirm": "Replace the current application configuration with this file? Existing metrics and API access tokens will be kept.",
"debug.title": "Live debug",
"debug.clear": "Clear",
"debug.apiAndGree": "Requests, events + GREE frames",
"debug.apiOnly": "Requests and application events",
"debug.empty": "No debug events yet.",
"toast.exported": "Configuration exported",
"toast.imported": "Configuration imported",
"nav.simulation": "Simulator",
"simulation.eyebrow": "Simulator",
"simulation.title": "Automation simulator",
"simulation.description": "Live preview of the thermostat and automation logic. The flow board shows how sensor readings, schedules, night mode and thermostat decisions become commands sent to each GREE unit.",
"simulation.timelineEyebrow": "Timeline",
"simulation.timelineTitle": "What will happen next",
"simulation.zoneEyebrow": "Zones",
"simulation.zoneTitle": "Thermostat decision flow",
"simulation.rulesEyebrow": "Rules",
"simulation.rulesTitle": "Automation rules",
"simulation.houseMode": "House mode",
"simulation.strategy": "Strategy: {strategy}",
"simulation.outdoor": "Outdoor",
"simulation.generatedAt": "Generated: {time}",
"simulation.activeZones": "Active zones",
"simulation.requestingZones": "Zones with demand: {count}",
"simulation.rulesLabel": "Active rules",
"simulation.eventsQueued": "Queued events: {count}",
"simulation.house": "House",
"simulation.stepRoom": "Room reading",
"simulation.stepTarget": "Target",
"simulation.stepDecision": "Decision",
"simulation.stepCommand": "Unit command",
"simulation.hysteresis": "Hysteresis {value}°C",
"simulation.deviceSetpoint": "Device setpoint",
"simulation.quietIfSupported": "If supported",
"simulation.manual": "Manual",
"simulation.noCommand": "No command preview",
"simulation.noActionPreview": "No direct action payload",
"simulation.ruleOnDevice": "Action target: {device}",
"simulation.nextReady": "Ready again",
"simulation.noRules": "No active automation rules.",
"simulation.waitingForData": "Waiting for data",
"simulation.stateDemand": "Demand",
"simulation.stateSatisfied": "Satisfied",
"simulation.reasonDisabled": "Zone is disabled, so the thermostat does not send control commands.",
"simulation.reasonHouseOff": "House “Do not control” leaves this zone under manual control and sends no commands to the air conditioner.",
"simulation.reasonWaiting": "The simulator is waiting for a valid room temperature and target.",
"simulation.reasonDemand": "Room needs {mode}. Thermostat compares the reading with the target {target}°C using hysteresis {hysteresis}°C.",
"simulation.reasonSatisfied": "Target is reached. The thermostat moves the unit into standby around {standby}°C to keep the room quiet and stable.",
"simulation.activeTargetLabel": "Active target before device rounding: {value}°C",
"simulation.standbyTargetLabel": "Standby target before device rounding: {value}°C",
"common.fan": "Fan",
"devices.nameProtocol": "Name / protocol",
"history.range": "Range",
"settings.controllerHint": "Runtime and LAN discovery settings.",
"settings.nightMode": "Night mode",
"settings.nightModeHint": "During selected hours the thermostat limits fan speed and can request Quiet plus native Sleep on compatible units.",
"settings.nightModeEnabled": "Enable night mode",
"settings.nightStart": "Start",
"settings.nightEnd": "End",
"settings.nightMaxFan": "Maximum fan speed",
"settings.nightForceQuiet": "Use Quiet when supported",
"settings.metricsAndLogs": "Metrics and logs",
"settings.eventRetentionDays": "Event/log retention (days)",
"settings.debugHint": "Live diagnostics displayed on every application page.",
"settings.sensorAliases": "Sensor aliases",
"settings.sensorAliasesHint": "Friendly names are used only in charts and selectors. Home Assistant requests always use the original entity_id.",
"settings.aliasPlaceholder": "Friendly name",
"settings.noSensorAliases": "No Home Assistant sensors are known yet. Add an entity_id below.",
"settings.aliasRequired": "Enter both entity_id and alias.",
"settings.saveHint": "Save changes made in the blocks above.",
"logs.retention": "Log retention",
"logs.retentionHint": "Old event rows are removed automatically during maintenance.",
"logs.keepFor": "Keep for",
"logs.retentionSaved": "Log retention set to {days} days.",
"simulation.flowEyebrow": "Live flow",
"simulation.flowTitle": "Automation flow board",
"simulation.legendInput": "Input",
"simulation.legendLogic": "Logic",
"simulation.legendAction": "Action",
"simulation.fanMax": "fan max",
"simulation.globalInput": "Global input",
"simulation.thermostat": "Thermostat",
"simulation.callForComfort": "Comfort demand",
"simulation.standby": "Quiet standby",
"simulation.nextEvent": "Next event",
"simulation.noEventShort": "No event",
"simulation.schedule": "Schedule",
"common.days": "days",
"actions.clear": "Clear",
"simulation.scheduled": "Scheduled",
"settings.nightNativeSleep": "Use native Sleep when supported",
"devices.features": "Unit features",
"devices.noExtraFeatures": "No additional features detected yet.",
"devices.light": "Panel light",
"devices.xfan": "X-FAN",
"devices.health": "Health",
"devices.air": "Air",
"devices.sleep": "Sleep",
"nav.nightMode": "Night mode",
"nav.homeAssistant": "Home Assistant / Sensors",
"night.eyebrow": "Comfort",
"night.description": "Configure quieter thermostat behavior for sleeping hours without mixing it with application settings.",
"night.saveHint": "Save night-mode changes.",
"homeAssistant.eyebrow": "Integration",
"homeAssistant.description": "Connection, temperature sensors, friendly aliases and access tokens for the Home Assistant integration.",
"homeAssistant.saveHint": "Save Home Assistant and sensor changes.",
"notifications.title": "Notifications",
"notifications.hint": "Send important events or only problems/anomalies.",
"notifications.enable": "Enable notifications",
"notifications.mode": "Mode",
"notifications.problems": "Errors and anomalies only",
"notifications.important": "Important events + problems",
"notifications.provider": "Provider",
"notifications.pushoverToken": "Pushover application token",
"notifications.pushoverUser": "Pushover user/group key",
"notifications.slackWebhook": "Slack incoming webhook",
"notifications.discordWebhook": "Discord webhook",
"notifications.cooldown": "Cooldown (s)",
"notifications.failureThreshold": "Communication failures before alert",
"notifications.targetTimeout": "Target not reached timeout (min)",
"notifications.test": "Send test notification",
"zones.copyFrom": "Copy thermostat settings from…",
"zones.copySettings": "Copy settings",
"automations.preset": "Preset…",
"automations.presetHot": "High temperature cooling",
"automations.presetCold": "Low temperature heating",
"automations.presetMorning": "Morning comfort",
"automations.presetNightOff": "Night power off",
"actions.apply": "Apply",
"logs.level": "Level",
"logs.category": "Category",
"logs.all": "All",
"logs.errors": "Errors",
"logs.warnings": "Warnings",
"logs.integrations": "Integrations",
"logs.systemOther": "System/other",
"zones.copyDifferent": "Choose a different thermostat profile",
"zones.copiedFrom": "Thermostat settings copied from {name}",
"house.noControl": "Do not control",
"house.powerAllEyebrow": "Global power",
"house.powerAllTitle": "All air conditioners",
"house.powerAllHint": "Whole-house automation control. “Turn all off” performs a one-shot OFF for groups and units and stops automation; later remote/Devices control is still allowed. “Turn all on” resumes automation but never starts a unit without an effective Heating/Cooling mode.",
"house.powerOnAll": "Turn all on",
"house.powerOffAll": "Turn all off",
"house.powerOnDone": "Whole-house automation resumed",
"house.powerOffDone": "All air conditioners turned off",
"house.powerPartial": "Could not change power on {count} devices",
"preset.manual": "Manual",
"nav.groups": "Groups",
"groups.eyebrow": "Group control",
"groups.dashboardTitle": "Selected air conditioners",
"groups.dashboardHint": "Control each group independently with its own heating/cooling mode and Auto/Comfort/Sleep/Away profile.",
"groups.manage": "Manage groups",
"groups.new": "New group",
"groups.description": "Combine thermostat zones, for example upstairs and downstairs, and control only that set. One group can use Sleep + Cooling while another uses Comfort + Heating.",
"groups.group": "Group",
"groups.namePlaceholder": "Upstairs",
"groups.members": "Group members",
"groups.membersHint": "Groups are built from thermostat zones so their temperature profiles and schedules keep working.",
"groups.noMembers": "No members",
"groups.mixed": "Mixed",
"groups.followHouse": "Global mode",
"groups.mode": "Mode",
"groups.profile": "Profile",
"groups.masterOff": "Whole-house automation is off. Pressing ON for this group resumes automation; units start only when an effective Heating/Cooling mode exists.",
"groups.memberCount": "{count} zones",
"groups.emptyTitle": "No groups yet",
"groups.emptyText": "Create a group to control selected air conditioners together.",
"groups.partial": "Group updated, but {count} device commands failed.",
"groups.controlUpdated": "Group control updated.",
"groups.noZones": "Create thermostat zones before creating a group.",
"automations.targetType": "Target type",
"automations.groupHint": "For a group, Auto means follow the whole-house heating/cooling mode. Group profiles are applied to all member zones.",
"simulation.openTab": "Open simulator only in new tab",
"simulation.fullscreen": "Full screen",
"simulation.exitFullscreen": "Exit full screen",
"simulation.viewBy": "View by",
"simulation.unitsView": "Individual units",
"simulation.groupsView": "Groups",
"simulation.show": "Show",
"simulation.allUnits": "All units",
"simulation.allGroups": "All groups",
"groups.chooseMember": "Select at least one thermostat zone.",
"zones.configuration": "Zone configuration",
"zones.currentStatus": "Current status",
"zones.controlOnDashboard": "Current control is available in Quick thermostats on the Dashboard.",
"zones.controlNow": "Control",
"zones.noGroup": "no group",
"zones.coolOnly": "Cooling only",
"zones.heatOnly": "Heating only",
"zones.manualDeviceControl": "Manual control active",
"zones.manualDeviceDescription": "A setting change was detected directly on the air conditioner or remote. Automation for this zone is paused.",
"zones.manualDeviceUntil": "Manual control / remote until {time}",
"zones.manualDeviceNoBoundary": "Manual control / remote · until resumed",
"zones.resumeAutomation": "Resume automation",
"zones.localThermostatControl": "Local thermostat",
"zones.localThermostatOn": "Local control · on",
"zones.localThermostatOff": "Local control · off",
"zones.localThermostatOnDescription": "This zone runs locally regardless of the group power gate. Sensor, hysteresis, profile and GREE regulation remain active.",
"zones.localThermostatOffDescription": "This zone is locally off. Without an active countdown it remains outside group control until automation is resumed manually.",
"zones.unitPowerLocalHint": "Turns this zone's local thermostat on or off; this is not remote-style or direct device control.",
"zones.localPowerUpdated": "Local thermostat state updated",
"zones.turnThermostatOn": "Turn thermostat on",
"zones.turnThermostatOff": "Turn thermostat off",
"zones.waiting": "Waiting",
"zones.noMeasurement": "No measurement",
"zones.localThermostatOffDescriptionTimed": "This zone is locally off. Automation takes control again in {time}.",
"zones.localThermostatResuming": "Timer elapsed — automation is taking control…",
"zones.resumeNow": "Resume now",
"zones.controlOwner": "Control",
"zones.ownerAutomation": "Automation",
"zones.ownerLocalThermostat": "Local thermostat",
"zones.ownerExternal": "Remote / external control",
"zones.ownerHaDirect": "HA — direct control",
"zones.ownerWebDirect": "Web — direct control",
"zones.ownerGlobalOff": "Globally off",
"zones.ownerSince": "since",
"zones.ownerResume": "until",
"zones.lockoutUntil": "lockout until",
"settings.haSensorStaleAfterMinutes": "Maximum HA sensor reading age (min)",
"settings.haSensorStaleAfterHint": "If the HA sensor is not updated within this time, the reading is treated as stale. The thermostat falls back to the GREE sensor when available.",
"zones.quickThermostat": "Quick thermostat",
"zones.temporaryTitle": "Temporary mode",
"zones.temporaryActive": "Temporary Quick Thermostat active",
"zones.temporaryScheduled": "Temporary Quick Thermostat scheduled",
"zones.temporaryStop": "Finish and return to automation",
"zones.temporaryTarget": "Quick thermostat temperature",
"zones.temporaryStartRule": "When to start",
"zones.temporaryStartNow": "Immediately",
"zones.temporaryStartDelay": "After a delay",
"zones.temporaryStartAt": "At a specific date and time",
"zones.temporaryStartDelayMinutes": "Start in (min)",
"zones.temporaryStartAtDate": "Start at",
"zones.temporaryFinishRule": "When to return to automation",
"zones.temporaryDuration": "After a duration",
"zones.temporaryUntil": "At a specific date and time",
"zones.temporaryReached": "When a temperature condition is reached",
"zones.temporaryStable": "After a temperature condition stays stable",
"zones.temporaryScheduleBoundary": "At the next schedule transition",
"zones.temporaryDurationMinutes": "Run time (min)",
"zones.temporaryUntilDate": "Finish at",
"zones.temporaryCondition": "Condition",
"zones.temporaryWithin": "within target ± tolerance",
"zones.temporaryAtOrBelow": "temperature ≤ target",
"zones.temporaryAtOrAbove": "temperature ≥ target",
"zones.temporaryTolerance": "Tolerance °C",
"zones.temporaryHoldMinutes": "Condition must hold for (min)",
"zones.temporarySafetyLimit": "Safety limit (min, optional)",
"zones.temporaryStableHint": "If temperature leaves the condition, the hold countdown resets and starts again after the condition is met again.",
"zones.temporaryScheduleHint": "Quick Thermostat will finish at the next change of the active schedule entry for this zone.",
"zones.temporaryStart": "Start temporarily",
"zones.temporaryUpdate": "Update rules",
"zones.temporaryShort": "Timed",
"zones.temporaryStartHint": "Run Quick Thermostat temporarily or until a condition is met.",
"zones.temporaryOverride": "Temporary · {time}",
"zones.temporaryWithinShort": "{target}°C ±{tolerance}°C",
"zones.temporaryAtOrBelowShort": "≤ {target}°C · tol. {tolerance}°C",
"zones.temporaryAtOrAboveShort": "≥ {target}°C · tol. {tolerance}°C",
"zones.temporaryHoldingStatus": "Condition met: {condition}. Stability countdown is running.",
"zones.temporaryWaitingStable": "Waiting for continuous condition: {condition}.",
"zones.temporaryWaitingReached": "Waiting for condition: {condition}.",
"zones.temporaryUntilScheduleStatus": "Until the next schedule transition",
"zones.temporaryTimeStatus": "Until automatic return to automation",
"zones.temporaryScheduledStatus": "Scheduled start: {time}. Normal automation continues unchanged until then.",
"zones.temporaryStartingStatus": "Starting Quick Thermostat…",
"zones.temporaryWaitingMaster": "The session is waiting for MASTER to be enabled and is not consuming active runtime.",
"zones.temporaryPausedManual": "The session is paused by manual/remote control. Active runtime and condition hold time are not advancing.",
"zones.temporaryStopped": "Temporary mode finished — automation resumed control",
"zones.temporaryStarted": "Temporary Quick Thermostat started",
"zones.temporaryScheduledToast": "Temporary Quick Thermostat has been scheduled",
"zones.temporaryInvalidStartAt": "Enter a valid start date and time",
"zones.temporaryInvalidUntil": "Enter a valid finish date and time",
"zones.temporaryEndAfterStart": "The finish time must be after Quick Thermostat starts",
"zones.automationToggleHint": "Enables or disables thermostat automation for this zone. This is not temporary control.",
"dashboard.sections": "Dashboard sections",
"dashboard.tabMain": "Main",
"dashboard.tabThermostats": "Thermostats",
"dashboard.tabManual": "Manual control",
"dashboard.toolbarWorking": "{active}/{total} running",
"notifications.alertTypes": "Alert types",
"notifications.alertTypesHint": "Choose which alerts may be delivered. Thresholds above still define when an applicable alert is raised.",
"notifications.alertStaleSensor": "Stale Home Assistant sensor readings",
"notifications.alertSensorErrors": "Other Home Assistant sensor errors",
"notifications.alertCommunication": "Device communication problems",
"notifications.alertTargetTimeout": "Target temperature timeout",
"notifications.alertAutomation": "Automation errors and conflicts",
"notifications.alertControlErrors": "Thermostat and group control errors",
"notifications.alertImportantEvents": "Important state changes",
"notifications.alertOther": "Other warnings and errors",
"notifications.testSent": "Test notification sent",
"actions.close": "Close",
"actions.remove": "Remove",
"plan.strategySetpoint": "Setpoint",
"simulation.running": "RUNNING",
"simulation.idle": "IDLE",
"logs.info": "Info",
"logs.days7": "7 days",
"logs.days14": "14 days",
"logs.days30": "30 days",
"logs.days90": "90 days",
"logs.days180": "180 days",
"logs.days365": "365 days",
"history.hoverHint": "Hover, tap or use ←/→ for exact values. Use +/ to zoom and swipe to pan.",
"actions.saving": "Saving…",
"actions.retry": "Retry",
"auth.connecting": "Connecting…",
"confirm.discardChanges": "Discard unsaved changes?",
"status.offlineHint": "Live updates are unavailable. Displayed data may be stale.",
"validation.required": "This field is required.",
"validation.url": "Enter a valid http:// or https:// URL.",
"validation.range": "Enter a value from {min} to {max}.",
"validation.invalid": "Check this value.",
"validation.entityId": "Use a Home Assistant entity_id such as sensor.living_room_temperature.",
"validation.fixFields": "Correct the highlighted fields before saving.",
"history.zoomControls": "Chart zoom",
"history.zoomOut": "Zoom out",
"history.zoomReset": "Reset zoom",
"history.zoomIn": "Zoom in",
"house.powerOffConfirm": "Turn off all air conditioners and disable all groups?",
"zones.temporaryStarting": "Starting…",
"notifications.applicationTokenPlaceholder": "Application token",
"notifications.userKeyPlaceholder": "User/group key",
"settings.testingHa": "Testing…",
"settings.settingsSections": "Settings sections",
"settings.applicationSettings": "Application",
"settings.greeSettings": "GREE",
"settings.applicationRuntime": "Application runtime",
"settings.applicationRuntimeHint": "Application-wide behavior that does not change GREE transport or discovery.",
"settings.simulationModeHint": "When enabled, a prominent simulation warning is shown throughout the application.",
"settings.greeConnection": "GREE connection",
"settings.greeConnectionHint": "Controller identity, polling intervals and LAN discovery transport.",
"settings.systemStatusTitle": "Controller health",
"settings.systemStateHint": "Live runtime, connectivity and storage details useful during setup and diagnostics.",
"settings.controlEngine": "Control engine",
"settings.ready": "Ready",
"settings.syncing": "Synchronizing",
"settings.websocket": "Live connection",
"settings.runtimeMode": "Runtime mode",
"settings.runtimeSimulation": "Simulation",
"settings.runtimeLive": "Live devices",
"settings.devicesConfigured": "Configured devices",
"settings.devicesOnline": "Devices online",
"settings.simulatedDevices": "Simulated devices",
"settings.receivedFrames": "GREE frames received",
"settings.httpBind": "HTTP bind",
"settings.greeInterface": "GREE interface",
"settings.database": "Database",
"settings.basePath": "Base path",
"settings.healthy": "Healthy",
"settings.attention": "Check status",
"debug.filterAria": "Debug source",
"debug.all": "All",
"debug.requests": "Requests",
"debug.gree": "GREE",
"debug.emptyRequests": "No HTTP requests captured yet.",
"debug.emptyGree": "No GREE frames captured yet.",
"simulation.bannerTitle": "SIMULATION MODE",
"simulation.bannerText": "Simulation mode is enabled. Treat current states and results as test data.",
"settings.pollCycle": "Device poll interval",
"settings.zoneCycle": "Zone control interval",
"settings.homeAssistantStatus": "Home Assistant",
"settings.influxStatus": "InfluxDB history",
"settings.notificationsStatus": "Notifications",
"settings.debugStatus": "Debug overlay",
"settings.configured": "configured",
"settings.notConfigured": "not configured"
}
}