{
    "menu": {
        "LiveView": "Live View",
        "Settings": "Settings",
        "NetworkSettings": "Network Settings",
        "NTPSettings": "NTP Settings",
        "MQTTSettings": "MQTT Settings",
        "InverterSettings": "Inverter Settings",
        "SecuritySettings": "Security Settings",
        "LoggingSettings": "Logging Settings",
        "DTUSettings": "DTU Settings",
        "DeviceManager": "Device-Manager",
        "ConfigManagement": "Config Management",
        "FirmwareUpgrade": "Firmware Upgrade",
        "DeviceReboot": "Device Reboot",
        "Info": "Info",
        "System": "System",
        "Network": "Network",
        "NTP": "NTP",
        "MQTT": "MQTT",
        "Console": "Console",
        "About": "About",
        "Logout": "Logout",
        "Login": "Login"
    },
    "base": {
        "Loading": "Loading...",
        "Reload": "Reload",
        "Cancel": "Cancel",
        "Save": "Save",
        "Refreshing": "Refreshing",
        "Pull": "Pull down to refresh",
        "Release": "Release to refresh",
        "Close": "Close",
        "Yes": "Yes",
        "No": "No"
    },
    "wait": {
        "NotReady": "OpenDTU is not yet ready",
        "PleaseWait": "Please wait. You will be automatically redirected to the home page."
    },
    "Error": {
        "Oops": "Oops!"
    },
    "localeswitcher": {
        "Dark": "Dark",
        "Light": "Light",
        "Auto": "Auto"
    },
    "dataagedisplay": {
        "DataAge": "Data Age",
        "SecondsSince": "0 seconds | 1 second | {n} seconds"
    },
    "apiresponse": {
        "1001": "Settings saved!",
        "1002": "No values found!",
        "1003": "Data too large!",
        "1004": "Failed to parse data!",
        "1005": "Values are missing!",
        "1006": "Write failed!",
        "2001": "Serial cannot be zero!",
        "2002": "Poll interval must be greater zero!",
        "2003": "Invalid power level setting!",
        "2004": "The frequency must be set between {min} and {max} kHz and must be a multiple of 250kHz!",
        "2005": "Invalid country selection!",
        "3001": "Not deleted anything!",
        "3002": "Configuration resettet. Rebooting now...",
        "3003": "File successful deleted. Restart to apply changes!",
        "4001": "@:apiresponse.2001",
        "4002": "Name must between 1 and {max} characters long!",
        "4003": "Only {max} inverters are supported!",
        "4004": "Inverter created!",
        "4005": "Invalid ID specified!",
        "4006": "Invalid amount of max channel setting given!",
        "4007": "Inverter changed!",
        "4008": "Inverter deleted!",
        "4009": "Inverter order saved!",
        "5001": "@:apiresponse.2001",
        "5002": "Limit must between 1 and {max}!",
        "5003": "Invalid type specified!",
        "5004": "Invalid inverter specified!",
        "6001": "Reboot triggered!",
        "6002": "Reboot cancled!",
        "7001": "MQTT Server must between 1 and {max} characters long!",
        "7002": "Username must not longer then {max} characters!",
        "7003": "Password must not longer then {max} characters!",
        "7004": "Topic must not longer then {max} characters!",
        "7005": "Topic must not contain space characters!",
        "7006": "Topic must end with slash (/)!",
        "7007": "Port must be a number between 1 and 65535!",
        "7008": "Certificate must not longer then {max} characters!",
        "7009": "LWT topic must not longer then {max} characters!",
        "7010": "LWT topic must not contain space characters!",
        "7011": "LWT online value must not longer then {max} characters!",
        "7012": "LWT offline value must not longer then {max} characters!",
        "7013": "Publish interval must be a number between {min} and {max}!",
        "7014": "Hass topic must not longer then {max} characters!",
        "7015": "Hass topic must not contain space characters!",
        "7016": "LWT QOS must not greater then {max}!",
        "7017": "Client ID must not longer then {max} characters!",
        "7018": "Hass topic must end with slash (/)!",
        "8001": "IP address is invalid!",
        "8002": "Netmask is invalid!",
        "8003": "Gateway is invalid!",
        "8004": "DNS Server IP 1 is invalid!",
        "8005": "DNS Server IP 2 is invalid!",
        "8006": "Administrative AccessPoint Timeout value is invalid",
        "8007": "Syslog Server must between 1 and {max} characters long!",
        "8008": "Port must be a number between 1 and 65535!",
        "9001": "NTP Server must between 1 and {max} characters long!",
        "9002": "Timezone must between 1 and {max} characters long!",
        "9003": "Timezone description must between 1 and {max} characters long!",
        "9004": "Year must be a number between {min} and {max}!",
        "9005": "Month must be a number between {min} and {max}!",
        "9006": "Day must be a number between {min} and {max}!",
        "9007": "Hour must be a number between {min} and {max}!",
        "9008": "Minute must be a number between {min} and {max}!",
        "9009": "Second must be a number between {min} and {max}!",
        "9010": "Time updated!",
        "10001": "Password must between 8 and {max} characters long!",
        "10002": "Authentication successful!",
        "11001": "@:apiresponse.2001",
        "11002": "@:apiresponse.5004",
        "12001": "Profile name must between 1 and {max} characters long!"
    },
    "home": {
        "LiveData": "Live Data",
        "SerialNumber": "Serial Number: ",
        "CurrentLimit": "Current Limit",
        "ShowSetInverterLimit": "Show / Set Inverter Limit",
        "TurnOnOff": "Turn Inverter on/off",
        "ShowInverterInfo": "Show Inverter Info",
        "ShowEventlog": "Show Eventlog",
        "UnreadMessages": "unread messages",
        "Loading": "@:base.Loading",
        "EventLog": "Event Log",
        "InverterInfo": "Inverter Info",
        "LimitSettings": "Limit Settings",
        "LastLimitSetStatus": "Last Limit Set Status",
        "SetLimit": "Set Limit",
        "Relative": "Relative (%)",
        "Absolute": "Absolute (W)",
        "LimitHint": "<b>Hint:</b> If you set the limit as absolute value the display of the current value will only be updated after ~4 minutes.",
        "SetPersistent": "Set Limit Persistent",
        "SetNonPersistent": "Set Limit Non-Persistent",
        "PowerSettings": "Power Settings",
        "LastPowerSetStatus": "Last Power Set Status",
        "TurnOn": "Turn On",
        "TurnOff": "Turn Off",
        "Restart": "Restart",
        "Failure": "Failure",
        "Pending": "Pending",
        "Ok": "Ok",
        "Unknown": "Unknown",
        "ShowGridProfile": "Show Grid Profile",
        "GridProfile": "Grid Profile",
        "LoadingInverter": "Waiting for data... (can take up to 10 seconds)",
        "RadioStats": "Radio Statistics",
        "TxRequest": "TX Request Count",
        "RxSuccess": "RX Success",
        "RxFailNothing": "RX Fail: Receive Nothing",
        "RxFailPartial": "RX Fail: Receive Partial",
        "RxFailCorrupt": "RX Fail: Receive Corrupt",
        "TxReRequest": "TX Re-Request Fragment",
        "StatsReset": "Reset Statistics",
        "StatsResetting": "Resetting...",
        "Rssi": "RSSI of last received packet",
        "RssiHint": "HM inverters only support RSSI values < -64 dBm and > -64 dBm. In this case, -80 dbm and -30 dbm is shown.",
        "dBm": "{dbm} dBm"
    },
    "eventlog": {
        "Start": "Start",
        "Stop": "Stop",
        "Id": "ID",
        "Message": "Message"
    },
    "devinfo": {
        "NoInfo": "No Information available",
        "NoInfoLong": "Did not receive any valid data from the inverter till now. Still trying...",
        "UnknownModel": "Unknown model! Please report the \"Hardware Part Number\" and model (e.g. HM-350) as an issue <a href=\"https://github.com/tbnobody/OpenDTU/issues\" target=\"_blank\">here</a>.",
        "Serial": "Serial",
        "ProdYear": "Production Year",
        "ProdWeek": "Production Week",
        "Model": "Model",
        "DetectedMaxPower": "Detected max. Power",
        "BootloaderVersion": "Bootloader Version",
        "FirmwareVersion": "Firmware Version",
        "FirmwareBuildDate": "Firmware Build Date",
        "HardwarePartNumber": "Hardware Part Number",
        "HardwareVersion": "Hardware Version",
        "SupportsPowerDistributionLogic": "'Power Distribution Logic' supported",
        "Yes": "@:base.Yes",
        "No": "@:base.No"
    },
    "gridprofile": {
        "NoInfo": "@:devinfo.NoInfo",
        "NoInfoLong": "@:devinfo.NoInfoLong",
        "Name": "Name",
        "Version": "Version",
        "Enabled": "@:wifistationinfo.Enabled",
        "Disabled": "@:wifistationinfo.Disabled",
        "GridprofileSupport": "Support the development",
        "GridprofileSupportLong": "Please see <a href=\"https://github.com/tbnobody/OpenDTU/wiki/Grid-Profile-Parser\" target=\"_blank\">here</a> for further information."
    },
    "systeminfo": {
        "SystemInfo": "System Info",
        "VersionError": "Error fetching version information",
        "VersionNew": "New version available! Show changes!",
        "VersionOk": "Up to date!"
    },
    "firmwareinfo": {
        "FirmwareInformation": "Firmware Information",
        "Hostname": "Hostname",
        "SdkVersion": "SDK Version",
        "ConfigVersion": "Config Version",
        "FirmwareVersion": "Firmware Version / Git Hash",
        "FirmwareBranch": "Firmware Branch",
        "PioEnv": "PIO Environment",
        "FirmwareVersionHint": "Click here to show information about your current version",
        "FirmwareUpdate": "Firmware Update",
        "FirmwareUpdateHint": "Click here to view the changes between your version and the latest version",
        "FrmwareUpdateAllow": "By activating the update check, a request is sent to GitHub.com each time the page is called up to retrieve the currently available version. If you do not agree with this, leave this function deactivated.",
        "ResetReason0": "Reset Reason CPU 0",
        "ResetReason1": "Reset Reason CPU 1",
        "ConfigSaveCount": "Config save count",
        "Uptime": "Uptime",
        "UptimeValue": "0 days {time} | 1 day {time} | {count} days {time}"
    },
    "hardwareinfo": {
        "HardwareInformation": "Hardware Information",
        "ChipModel": "Chip Model",
        "ChipRevision": "Chip Revision",
        "ChipCores": "Chip Cores",
        "CpuFrequency": "CPU Frequency",
        "Mhz": "MHz",
        "CpuTemperature": "CPU Temperature",
        "FlashSize": "Flash Memory Size"
    },
    "memoryinfo": {
        "MemoryInformation": "Memory Information",
        "Type": "Type",
        "Usage": "Usage",
        "Free": "Free",
        "Used": "Used",
        "Size": "Size",
        "Heap": "Heap",
        "PsRam": "PSRAM",
        "LittleFs": "LittleFs",
        "Sketch": "Sketch"
    },
    "heapdetails": {
        "HeapDetails": "Heap Details",
        "TotalFree": "Total free",
        "LargestFreeBlock": "Biggest contiguous free block",
        "MaxUsage": "Maximum usage since start",
        "Fragmentation": "Level of fragmentation"
    },
    "taskdetails": {
        "TaskDetails": "Task Details",
        "Name": "Name",
        "StackFree": "Stack Free",
        "Priority": "Priority",
        "Task_idle0": "Idle (CPU Core 0)",
        "Task_idle1": "Idle (CPU Core 1)",
        "Task_wifi": "Wi-Fi",
        "Task_tit": "TCP/IP",
        "Task_looptask": "Arduino Main Loop",
        "Task_asynctcp": "Async TCP",
        "Task_mqttclient": "MQTT Client"
    },
    "radioinfo": {
        "RadioInformation": "Radio Information",
        "Status": "{module} Status",
        "ChipStatus": "{module} Chip Status",
        "ChipType": "{module} Chip Type",
        "Connected": "connected",
        "NotConnected": "not connected",
        "Configured": "configured",
        "NotConfigured": "not configured",
        "Unknown": "Unknown"
    },
    "networkinfo": {
        "NetworkInformation": "Network Information"
    },
    "wifistationinfo": {
        "WifiStationInfo": "WiFi Information (Station)",
        "Status": "Status",
        "Enabled": "enabled",
        "Disabled": "disabled",
        "Ssid": "SSID",
        "Bssid": "BSSID",
        "Quality": "Quality",
        "Rssi": "RSSI"
    },
    "wifiapinfo": {
        "WifiApInfo": "WiFi Information (Access Point)",
        "Status": "@:wifistationinfo.Status",
        "Enabled": "@:wifistationinfo.Enabled",
        "Disabled": "@:wifistationinfo.Disabled",
        "Ssid": "@:wifistationinfo.Ssid",
        "Stations": "# Stations"
    },
    "interfacenetworkinfo": {
        "NetworkInterface": "Network Interface ({iface})",
        "Hostname": "@:firmwareinfo.Hostname",
        "IpAddress": "IP Address",
        "Netmask": "Netmask",
        "DefaultGateway": "Default Gateway",
        "Dns": "DNS {num}",
        "MacAddress": "MAC Address"
    },
    "interfaceapinfo": {
        "NetworkInterface": "Network Interface (Access Point)",
        "IpAddress": "@:interfacenetworkinfo.IpAddress",
        "MacAddress": "@:interfacenetworkinfo.MacAddress"
    },
    "ntpinfo": {
        "NtpInformation": "NTP Information",
        "ConfigurationSummary": "Configuration Summary",
        "Server": "Server",
        "Timezone": "Timezone",
        "TimezoneDescription": "Timezone Description",
        "CurrentTime": "Current Time",
        "Status": "Status",
        "Synced": "synced",
        "NotSynced": "not synced",
        "LocalTime": "Local Time",
        "Sunrise": "Sunrise",
        "Sunset": "Sunset",
        "NotAvailable": "Not Available",
        "Mode": "Mode",
        "Day": "Day",
        "Night": "Night"
    },
    "mqttinfo": {
        "MqttInformation": "MQTT Information",
        "ConfigurationSummary": "@:ntpinfo.ConfigurationSummary",
        "Status": "@:ntpinfo.Status",
        "Enabled": "Enabled",
        "Disabled": "Disabled",
        "Server": "@:ntpinfo.Server",
        "Port": "Port",
        "ClientId": "Client ID",
        "Username": "Username",
        "BaseTopic": "Base Topic",
        "PublishInterval": "Publish Interval",
        "Seconds": "{sec} seconds",
        "CleanSession": "CleanSession flag",
        "Retain": "Retain",
        "Tls": "TLS",
        "RootCertifcateInfo": "Root CA Certifcate Info",
        "TlsCertLogin": "Login with TLS Certificate",
        "ClientCertifcateInfo": "Client Certifcate Info",
        "HassSummary": "Home Assistant MQTT Auto Discovery Configuration Summary",
        "Expire": "Expire",
        "IndividualPanels": "Individual Panels",
        "RuntimeSummary": "Runtime Summary",
        "ConnectionStatus": "Connection Status",
        "Connected": "connected",
        "Disconnected": "disconnected"
    },
    "console": {
        "Console": "Console",
        "VirtualDebugConsole": "Virtual Debug Console",
        "EnableAutoScroll": "Enable Auto Scroll",
        "ClearConsole": "Clear Console",
        "CopyToClipboard": "Copy to clipboard",
        "Download": "Download",
        "RegularExpression": "Regular Expression",
        "Lines": "{lines} Lines",
        "LogLevel": "Log Level ({cnt})"
    },
    "inverterchannelinfo": {
        "String": "String {num}",
        "Phase": "Phase {num}",
        "General": "General"
    },
    "invertertotalinfo": {
        "TotalYieldTotal": "Total Yield Total",
        "TotalYieldDay": "Total Yield Day",
        "TotalPower": "Total Power"
    },
    "inverterchannelproperty": {
        "Power": "Power",
        "Voltage": "Voltage",
        "Current": "Current",
        "Power DC": "Power DC",
        "YieldDay": "YieldDay",
        "YieldTotal": "YieldTotal",
        "Frequency": "Frequency",
        "Temperature": "Temperature",
        "PowerFactor": "PowerFactor",
        "ReactivePower": "ReactivePower",
        "Efficiency": "Efficiency",
        "Irradiation": "Irradiation"
    },
    "maintenancereboot": {
        "DeviceReboot": "Device Reboot",
        "PerformReboot": "Perform Reboot",
        "Reboot": "Reboot!",
        "Cancel": "@:base.Cancel",
        "RebootOpenDTU": "Reboot OpenDTU",
        "RebootQuestion": "Do you really want to reboot the device?",
        "RebootHint": "<b>Note:</b> A manual reboot does not normally have to be performed. OpenDTU performs any required reboot (e.g. after a firmware update) automatically. Settings are also adopted without rebooting. If you need to reboot due to an error, please consider reporting it at <a href=\"https://github.com/tbnobody/OpenDTU/issues\" class=\"alert-link\" target=\"_blank\">https://github.com/tbnobody/OpenDTU/issues</a>."
    },
    "dtuadmin": {
        "DtuSettings": "DTU Settings",
        "DtuConfiguration": "DTU Configuration",
        "Serial": "Serial",
        "SerialHint": "Both the inverter and the DTU have a serial number. The DTU serial number is randomly generated at the first start and does not normally need to be changed.",
        "PollInterval": "Poll Interval",
        "Seconds": "Seconds",
        "NrfPaLevel": "NRF24 Transmitting power",
        "CmtPaLevel": "CMT2300A Transmitting power",
        "NrfPaLevelHint": "Used for HM-Inverters. Make sure your power supply is stable enough before increasing the transmit power.",
        "CmtPaLevelHint": "Used for HMS/HMT-Inverters. Make sure your power supply is stable enough before increasing the transmit power.",
        "CmtCountry": "CMT2300A Region/Country",
        "CmtCountryHint": "Each country has different frequency allocations.",
        "country_0": "Europe ({min}MHz - {max}MHz)",
        "country_1": "North America ({min}MHz - {max}MHz)",
        "country_2": "Brazil ({min}MHz - {max}MHz)",
        "CmtFrequency": "CMT2300A Frequency",
        "CmtFrequencyHint": "Make sure to only use frequencies that are allowed in the respective country! After a frequency change, it can take up to 15min until a connection is established.",
        "CmtFrequencyWarning": "The selected frequency is outside the allowed range in your selected region/country. Make sure that this selection does not violate any local regulations.",
        "MHz": "{mhz} MHz",
        "dBm": "{dbm} dBm",
        "Min": "Minimum ({db} dBm)",
        "Low": "Low ({db} dBm)",
        "High": "High ({db} dBm)",
        "Max": "Maximum ({db} dBm)"
    },
    "securityadmin": {
        "SecuritySettings": "Security Settings",
        "AdminPassword": "Admin password",
        "Password": "Password",
        "RepeatPassword": "Repeat Password",
        "PasswordHint": "<b>Hint:</b> The administrator password is used to access this web interface (user 'admin'), but also to connect to the device when in AP mode. It must be 8..64 characters.",
        "Permissions": "Permissions",
        "ReadOnly": "Allow readonly access to web interface without password"
    },
    "ntpadmin": {
        "NtpSettings": "NTP Settings",
        "NtpConfiguration": "NTP Configuration",
        "TimeServer": "Time Server",
        "TimeServerHint": "The default value is fine as long as OpenDTU has direct access to the internet.",
        "Timezone": "Timezone",
        "TimezoneConfig": "Timezone Config",
        "LocationConfiguration": "Location Configuration",
        "Longitude": "Longitude",
        "Latitude": "Latitude",
        "SunSetType": "Sunset type",
        "SunSetTypeHint": "Affects the day/night calculation. It can take up to one minute until the new type will be applied.",
        "OFFICIAL": "Standard dawn (90.8°)",
        "NAUTICAL": "Nautical dawn (102°)",
        "CIVIL": "Civil dawn (96°)",
        "ASTONOMICAL": "Astronomical dawn (108°)",
        "ManualTimeSynchronization": "Manual Time Synchronization",
        "CurrentOpenDtuTime": "Current OpenDTU Time",
        "CurrentLocalTime": "Current Local Time",
        "SynchronizeTime": "Synchronize Time",
        "SynchronizeTimeHint": "<b>Hint:</b> You can use the manual time synchronization to set the current time of OpenDTU if no NTP server is available. But be aware, that in case of power cycle the time gets lost. Also note that time accuracy will be skewed badly, as it can not be resynchronised regularly and the ESP32 microcontroller does not have a real time clock."
    },
    "networkadmin": {
        "NetworkSettings": "Network Settings",
        "WifiConfiguration": "WiFi Configuration",
        "WifiSsid": "WiFi SSID",
        "WifiPassword": "WiFi Password",
        "Hostname": "Hostname",
        "HostnameHint": "<b>Hint:</b> The text <span class=\"font-monospace\">%06X</span> will be replaced with the last 6 digits of the ESP ChipID in hex format.",
        "EnableDhcp": "Enable DHCP",
        "StaticIpConfiguration": "Static IP Configuration",
        "IpAddress": "IP Address",
        "Netmask": "Netmask",
        "DefaultGateway": "Default Gateway",
        "Dns": "DNS Server {num}",
        "AdminAp": "WiFi Configuration (Admin AccessPoint)",
        "ApTimeout": "AccessPoint Timeout",
        "ApTimeoutHint": "Time which the AccessPoint is kept open. A value of 0 means infinite.",
        "Minutes": "minutes",
        "EnableMdns": "Enable mDNS",
        "MdnsSettings": "mDNS Settings",
        "EnableSyslog": "Enable Syslog",
        "SyslogSettings": "Syslog Settings",
        "SyslogHostname": "Syslog Server",
        "SyslogPort": "Port"
    },
    "mqttadmin": {
        "MqttSettings": "MQTT Settings",
        "MqttConfiguration": "MQTT Configuration",
        "EnableMqtt": "Enable MQTT",
        "EnableHass": "Enable Home Assistant MQTT Auto Discovery",
        "MqttBrokerParameter": "MQTT Broker Parameter",
        "Hostname": "Hostname",
        "HostnameHint": "Hostname or IP address",
        "Port": "Port",
        "ClientId": "Client ID",
        "Username": "Username",
        "UsernameHint": "Username, leave empty for anonymous connection",
        "Password": "Password",
        "PasswordHint": "Password, leave empty for anonymous connection",
        "BaseTopic": "Base Topic",
        "BaseTopicHint": "Base topic, will be prepend to all published topics (e.g. inverter/)",
        "PublishInterval": "Publish Interval",
        "Seconds": "seconds",
        "CleanSession": "Enable CleanSession flag",
        "EnableRetain": "Enable Retain Flag",
        "EnableTls": "Enable TLS",
        "RootCa": "CA-Root-Certificate (default Letsencrypt)",
        "TlsCertLoginEnable": "Enable TLS Certificate Login",
        "ClientCert": "TLS Client-Certificate",
        "ClientKey": "TLS Client-Key",
        "LwtParameters": "LWT Parameters",
        "LwtTopic": "LWT Topic",
        "LwtTopicHint": "LWT topic, will be append base topic",
        "LwtOnline": "LWT Online message",
        "LwtOnlineHint": "Message that will be published to LWT topic when online",
        "LwtOffline": "LWT Offline message",
        "LwtOfflineHint": "Message that will be published to LWT topic when offline",
        "LwtQos": "QoS (Quality of Service)",
        "QOS0": "0 (At most once)",
        "QOS1": "1 (At least once)",
        "QOS2": "2 (Exactly once)",
        "HassParameters": "Home Assistant MQTT Auto Discovery Parameters",
        "HassPrefixTopic": "Prefix Topic",
        "HassPrefixTopicHint": "The prefix for the discovery topic",
        "HassRetain": "Enable Retain Flag",
        "HassExpire": "Enable Expiration",
        "HassIndividual": "Individual Panels"
    },
    "inverteradmin": {
        "InverterSettings": "Inverter Settings",
        "AddInverter": "Add a new Inverter",
        "Serial": "Serial",
        "Name": "Name",
        "Add": "Add",
        "AddHint": "<b>Hint:</b> You can set additional parameters after you have created the inverter. Use the pen icon in the inverter list.",
        "InverterList": "Inverter List",
        "Status": "Status",
        "Send": "Send",
        "Receive": "Receive",
        "StatusHint": "<b>Hint:</b> The inverter is powered by its DC input. If there is no sun, the inverter is off. Requests can still be sent.",
        "Type": "Type",
        "Action": "Action",
        "SaveOrder": "Save order",
        "DeleteInverter": "Delete inverter",
        "EditInverter": "Edit inverter",
        "General": "General",
        "String": "String",
        "Advanced": "Advanced",
        "InverterSerial": "Inverter Serial:",
        "InverterName": "Inverter Name:",
        "InverterNameHint": "Here you can specify a custom name for your inverter.",
        "InverterStatus": "Receive / Send",
        "PollEnable": "Poll inverter data",
        "PollEnableNight": "Poll inverter data at night",
        "CommandEnable": "Send commands",
        "CommandEnableNight": "Send commands at night",
        "StringName": "Name string {num}:",
        "StringNameHint": "Here you can specify a custom name for the respective port of your inverter.",
        "StringMaxPower": "Max power string {num}:",
        "StringMaxPowerHint": "Enter the max power of the connected solar panels.",
        "StringYtOffset": "Yield total offset string {num}:",
        "StringYtOffsetHint": "This offset is applied the read yield total value from the inverter. This can be used to set the yield total of the inverter to zero if a used inverter is used. But you can still try polling data.",
        "InverterHint": "*) Enter the W<sub>p</sub> of the channel to calculate irradiation.",
        "ReachableThreshold": "Reachable Threshold",
        "ReachableThresholdHint": "Defines how many requests are allowed to fail until the inverter is treated is not reachable.",
        "ZeroRuntime": "Zero runtime data",
        "ZeroRuntimeHint": "Zero runtime data (no yield data) if inverter becomes unreachable.",
        "ZeroDay": "Zero daily yield at midnight",
        "ZeroDayHint": "This only works if the inverter is unreachable. If data is read from the inverter, it's values will be used. (Reset only occours on power cycle)",
        "ClearEventlog": "Clear Eventlog at midnight",
        "Cancel": "@:base.Cancel",
        "Save": "@:base.Save",
        "DeleteMsg": "Are you sure you want to delete the inverter \"{name}\" with serial number {serial}?",
        "Delete": "Delete",
        "YieldDayCorrection": "Yield Day Correction",
        "YieldDayCorrectionHint": "Sum up daily yield even if the inverter is restarted. Value will be reset at midnight"
    },
    "fileadmin": {
        "ConfigManagement": "Config Management",
        "BackupHeader": "Backup: Configuration File Backup",
        "Restore": "Restore",
        "NoFileSelected": "No file selected",
        "RestoreHeader": "Restore: Restore the Configuration File",
        "Back": "Back",
        "UploadSuccess": "Upload Success",
        "RestoreHint": "<b>Note:</b> This operation replaces the configuration file with the restored configuration and restarts OpenDTU to apply all settings.",
        "ResetHeader": "Initialize: Perform Factory Reset",
        "FactoryResetButton": "Restore Factory-Default Settings",
        "ResetHint": "<b>Note:</b> Click Restore Factory-Default Settings to restore and initialize the factory-default settings and reboot.",
        "FactoryReset": "Factory Reset",
        "ResetMsg": "Are you sure you want to delete the current configuration and reset all settings to their factory defaults?",
        "ResetConfirm": "Factory Reset!",
        "Download": "Download",
        "Delete": "Delete",
        "DeleteMsg": "Are you sure you want to delete file: '{name}'? You have to manually reboot the device to apply config changes!",
        "Name": "Name",
        "Size": "Size",
        "Action": "Action",
        "Cancel": "@:base.Cancel",
        "InvalidJson": "JSON file is formatted incorrectly.",
        "InvalidJsonContent": "JSON file has the wrong content."
    },
    "login": {
        "Login": "Login",
        "SystemLogin": "System Login",
        "Username": "Username",
        "UsernameRequired": "Username is required",
        "Password": "Password",
        "PasswordRequired": "Password is required",
        "LoginButton": "Login"
    },
    "firmwareupgrade": {
        "FirmwareUpgrade": "Firmware Upgrade",
        "Loading": "@:base.Loading",
        "OtaError": "OTA Error",
        "Back": "Back",
        "Retry": "Retry",
        "OtaStatus": "OTA Status",
        "OtaSuccess": "The firmware upload was successful. The device was restarted automatically. When the device is accessible again, the interface is automatically reloaded.",
        "FirmwareUpload": "Firmware Upload",
        "UploadProgress": "Upload Progress"
    },
    "about": {
        "AboutOpendtu": "About OpenDTU",
        "Documentation": "Documentation",
        "DocumentationBody": "The firmware and hardware documentation can be found here: <a href=\"https://www.opendtu.solar\" target=\"_blank\">https://www.opendtu.solar</a>",
        "ProjectOrigin": "Project Origin",
        "ProjectOriginBody1": "This project was started from <a href=\"https://www.mikrocontroller.net/topic/525778\" target=\"_blank\">this discussion. (Mikrocontroller.net)</a>",
        "ProjectOriginBody2": "The Hoymiles protocol was decrypted through the voluntary efforts of many participants. OpenDTU, among others, was developed based on this work. The project is licensed under an Open Source License (<a href=\"https://www.gnu.de/documents/gpl-2.0.de.html\" target=\"_blank\">GNU General Public License version 2</a>).",
        "ProjectOriginBody3": "The software was developed to the best of our knowledge and belief. Nevertheless, no liability can be accepted for a malfunction or guarantee loss of the inverter.",
        "ProjectOriginBody4": "OpenDTU is freely available. If you paid money for the software, you probably got ripped off.",
        "NewsUpdates": "News & Updates",
        "NewsUpdatesBody": "New updates can be found on Github: <a href=\"https://github.com/tbnobody/OpenDTU\" target=\"_blank\">https://github.com/tbnobody/OpenDTU</a>",
        "ErrorReporting": "Error Reporting",
        "ErrorReportingBody": "Please report issues using the feature provided by <a href=\"https://github.com/tbnobody/OpenDTU/issues\" target=\"_blank\">Github</a>",
        "Discussion": "Discussion",
        "DiscussionBody": "Discuss with us on <a href=\"https://discord.gg/46hWaXsn\" target=\"_blank\">Discord</a> or <a href=\"https://github.com/tbnobody/OpenDTU/discussions\" target=\"_blank\">Github</a>"
    },
    "hints": {
        "RadioProblem": "Could not connect to a configured radio module. Please check the wiring.",
        "TimeSync": "The clock has not yet been synchronised. Without a correctly set clock, no requests are made to the inverter. This is normal shortly after the start. However, after a longer runtime (>1 minute), it indicates that the NTP server is not accessible.",
        "TimeSyncLink": "Please check your time settings.",
        "DefaultPassword": "You are using the default password for the web interface and the emergency access point. This is potentially insecure.",
        "DefaultPasswordLink": "Please change the password.",
        "PinMappingIssue": "You are using a generic firmware image, but have not yet uploaded a file with device profiles (<code>pin_mapping.json</code>) or have not selected a profile defined there. Please refer to the <a href=\"https://opendtu.solar/firmware/device_profiles/\" target=\"_blank\" class=\"alert-link\">documentation</a> for details."
    },
    "deviceadmin": {
        "DeviceManager": "Device-Manager",
        "ParseError": "Parse error in 'pin_mapping.json': {error}",
        "PinAssignment": "Connection settings",
        "SelectedProfile": "Selected profile",
        "DefaultProfile": "(Default settings)",
        "ProfileHint": "Your device may stop responding if you select an incompatible profile. In this case, you must perform a deletion via the serial interface.",
        "Display": "Display",
        "PowerSafe": "Switch off if no solar",
        "PowerSafeHint": "Turn off the display if no inverter is producing.",
        "Screensaver": "OLED Anti burn-in",
        "ScreensaverHint": "Move the display a little bit on each update to prevent burn-in. (Useful especially for OLED displays)",
        "DiagramMode": "Diagram mode",
        "off": "Off",
        "small": "Small",
        "fullscreen": "Fullscreen",
        "DiagramDuration": "Diagram duration",
        "DiagramDurationHint": "The time period which is shown in the diagram.",
        "Seconds": "Seconds",
        "Contrast": "Contrast ({contrast})",
        "Rotation": "Rotation",
        "rot0": "No rotation",
        "rot90": "90 degree rotation",
        "rot180": "180 degree rotation",
        "rot270": "270 degree rotation",
        "DisplayLanguage": "Display language",
        "en": "English",
        "de": "German",
        "fr": "French",
        "Leds": "LEDs",
        "EqualBrightness": "Equal brightness",
        "LedBrightness": "LED {led} brightness ({brightness})"
    },
    "pininfo": {
        "Category": "Category",
        "Name": "Name",
        "Number": "Number",
        "ValueSelected": "Selected",
        "ValueActive": "Active"
    },
    "inputserial": {
        "format_hoymiles": "Hoymiles serial number format",
        "format_converted": "Already converted serial number",
        "format_herf_valid": "E-Star HERF format (will be saved converted): {serial}",
        "format_herf_invalid": "E-Star HERF format: Invalid checksum",
        "format_unknown": "Unknown format"
    },
    "loggingadmin": {
        "LoggingSettings": "Logging Settings",
        "LogLevel": "Log Level",
        "DefaultLevel": "Default log level",
        "Module": "Module",
        "Module_CORE": "ESP-IDF Core",
        "Module_hoymiles": "Hoymiles RF",
        "Module_mqtt": "MQTT Client",
        "Module_network": "Network",
        "Module_webapi": "Web API",
        "CoreHint": "Warning: A too detailed log level of the ESP-IDF Core module can significantly impact performance and lead to unpredictable behavior. The log level setting should only be temporarily adjusted for targeted troubleshooting. The default setting 'Error' is sufficient for normal operation.",
        "log_inherit": "Inherit from default",
        "log_none": "None",
        "log_error": "(E) Error",
        "log_warn": "(W) Warning",
        "log_info": "(I) Info",
        "log_debug": "(D) Debug",
        "log_verbose": "(V) Verbose"
    }
}
