feat: added multilanguage for portal

This commit is contained in:
Yurii
2024-06-21 02:01:38 +03:00
parent 8b50fdec21
commit 2648918dda
27 changed files with 2469 additions and 1308 deletions

331
src_data/locales/en.json Normal file
View File

@@ -0,0 +1,331 @@
{
"values": {
"logo": "OpenTherm Gateway",
"nav": {
"license": "License",
"source": "Source code",
"help": "Help",
"issues": "Issues & questions",
"releases": "Releases"
},
"button": {
"upgrade": "Upgrade",
"restart": "Restart",
"save": "Save",
"saved": "Saved",
"refresh": "Refresh",
"restore": "Restore",
"restored": "Restored",
"backup": "Backup",
"wait": "Please wait...",
"uploading": "Uploading...",
"success": "Success",
"error": "Error"
},
"index": {
"title": "OpenTherm Gateway",
"section": {
"network": "Network",
"system": "System"
},
"system": {
"build": {
"title": "Build",
"version": "Version",
"date": "Date",
"sdk": "Core/SDK"
},
"uptime": "Uptime",
"memory": {
"title": "Free memory",
"maxFreeBlock": "max free block",
"min": "min"
},
"board": "Board",
"chip": {
"model": "Chip",
"cores": "Cores",
"freq": "frequency"
},
"flash": {
"size": "Flash size",
"realSize": "real size"
},
"lastResetReason": "Last reset reason"
}
},
"dashboard": {
"name": "Dashboard",
"title": "Dashboard - OpenTherm Gateway",
"section": {
"control": "Control",
"states": "States and sensors",
"otDiag": "OpenTherm diagnostic"
},
"thermostat": {
"heating": "Heating",
"dhw": "DHW",
"temp.current": "Current",
"enable": "Enable",
"turbo": "Turbo mode"
},
"state": {
"ot": "OpenTherm connected",
"mqtt": "MQTT connected",
"emergency": "Emergency",
"heating": "Heating",
"dhw": "DHW",
"flame": "Flame",
"fault": "Fault",
"diag": "Diagnostic",
"extpump": "External pump",
"modulation": "Modulation",
"pressure": "Pressure",
"dhwFlowRate": "DHW flow rate",
"faultCode": "Fault code",
"indoorTemp": "Indoor temp",
"outdoorTemp": "Outdoor temp",
"heatingTemp": "Heating temp",
"heatingSetpointTemp": "Heating setpoint temp",
"heatingReturnTemp": "Heating return temp",
"dhwTemp": "DHW temp",
"exhaustTemp": "Exhaust temp"
}
},
"network": {
"title": "Network - OpenTherm Gateway",
"name": "Network settings",
"section": {
"static": "Static settings",
"availableNetworks": "Available networks",
"staSettings": "WiFi settings",
"apSettings": "AP settings"
},
"scan": {
"pos": "#",
"info": "Info"
},
"wifi": {
"ssid": "SSID",
"password": "Password",
"channel": "Channel",
"signal": "Signal",
"connected": "Connected"
},
"params": {
"hostname": "Hostname",
"dhcp": "Use DHCP",
"mac": "MAC",
"ip": "IP",
"subnet": "Subnet",
"gateway": "Gateway",
"dns": "DNS"
},
"sta": {
"channel.note": "set 0 for auto select"
}
},
"settings": {
"title": "Settings - OpenTherm Gateway",
"name": "Settings",
"section": {
"portal": "Portal settings",
"system": "System settings",
"diag": "Diagnostic",
"heating": "Heating settings",
"dhw": "DHW settings",
"emergency": "Emergency mode settings",
"emergency.events": "Events",
"emergency.regulators": "Using regulators",
"equitherm": "Equitherm settings",
"pid": "PID settings",
"ot": "OpenTherm settings",
"ot.options": "Options",
"mqtt": "MQTT settings",
"outdorSensor": "Outdoor sensor settings",
"indoorSensor": "Indoor sensor settings",
"extPump": "External pump settings"
},
"enable": "Enable",
"note": {
"restart": "After changing these settings, the device must be restarted for the changes to take effect.",
"blankNotUse": "blank - not use"
},
"temp": {
"min": "Minimum temperature",
"max": "Maximum temperature"
},
"portal": {
"login": "Login",
"password": "Password",
"auth": "Require authentication"
},
"system": {
"unit": "Unit system",
"metric": "Metric <small>(celsius, liters, bar)</small>",
"imperial": "Imperial <small>(fahrenheit, gallons, psi)</small>",
"statusLedGpio": "Status LED GPIO",
"debug": "Debug mode",
"serial": {
"enable": "Enable Serial port",
"baud": {
"title": "Serial port baud rate",
"note": "Available: 9600, 19200, 38400, 57600, 74880, 115200"
}
},
"telnet": {
"enable": "Enable Telnet",
"port": {
"title": "Telnet port",
"note": "Default: 23"
}
}
},
"heating": {
"hyst": "Hysteresis",
"maxMod": "Max modulation level"
},
"emergency": {
"desc": "<b>!</b> Emergency mode can be useful <u>only</u> when using Equitherm and/or PID (when normal work) and when reporting indoor/outdoor temperature via MQTT or API. In this mode, sensor values that are reported via MQTT/API are not used.",
"target": {
"title": "Target temperature",
"note": "<u>Indoor temperature</u> if Equitherm or PID is <b>enabled</b><br /><u>Heat carrier temperature</u> if Equitherm and PID <b>is disabled</b>"
},
"treshold": "Treshold time <small>(sec)</small>",
"events": {
"network": "On network fault",
"mqtt": "On MQTT fault"
},
"regulators": {
"equitherm": "Equitherm <small>(requires at least an external/boiler <u>outdoor</u> sensor)</small>",
"pid": "PID <small>(requires at least an external/BLE <u>indoor</u> sensor)</small>"
}
},
"equitherm": {
"n": "N factor",
"k": "K factor",
"t": {
"title": "T factor",
"note": "Not used if PID is enabled"
}
},
"pid": {
"p": "P factor",
"i": "I factor",
"d": "D factor",
"dt": "DT <small>in seconds</small>"
},
"ot": {
"inGpio": "In GPIO",
"outGpio": "Out GPIO",
"ledGpio": "RX LED GPIO",
"memberIdCode": "Master MemberID code",
"options": {
"dhwPresent": "DHW present",
"summerWinterMode": "Summer/winter mode",
"heatingCh2Enabled": "Heating CH2 always enabled",
"heatingCh1ToCh2": "Duplicate heating CH1 to CH2",
"dhwToCh2": "Duplicate DHW to CH2",
"dhwBlocking": "DHW blocking",
"modulationSyncWithHeating": "Sync modulation with heating",
"getMinMaxTemp": "Get min/max temp from boiler"
},
"faultState": {
"gpio": "Fault state GPIO",
"note": "Can be useful to switch on another boiler <u>via relay</u>. Blank - not use.",
"invert": "Invert fault state"
},
"nativeHeating": {
"title": "Native heating control (boiler)",
"note": "Works <u>ONLY</u> if the boiler requires the desired room temperature and regulates the temperature of the coolant itself. Not compatible with PID and Equitherm regulators and hysteresis in firmware."
}
},
"mqtt": {
"homeAssistantDiscovery": "Home Assistant Discovery",
"server": "Server",
"port": "Port",
"user": "User",
"password": "Password",
"prefix": "Prefix",
"interval": "Publish interval <small>(sec)</small>"
},
"tempSensor": {
"source": {
"type": "Source type",
"boiler": "From boiler via OpenTherm",
"manual": "Manual via MQTT/API",
"ext": "External (DS18B20)",
"ble": "BLE device <i>(ONLY for some ESP32 which support BLE)</i>"
},
"gpio": "GPIO",
"offset": "Temp offset <small>(calibration)</small>",
"bleAddress": {
"title": "BLE address",
"note": "ONLY for some ESP32 which support BLE"
}
},
"extPump": {
"use": "Use external pump",
"gpio": "Relay GPIO",
"postCirculationTime": "Post circulation time <small>(min)</small>",
"antiStuckInterval": "Anti stuck interval <small>(days)</small>",
"antiStuckTime": "Anti stuck time <small>(min)</small>"
}
},
"upgrade": {
"title": "Upgrade - OpenTherm Gateway",
"name": "Upgrade",
"section": {
"backupAndRestore": "Backup & restore",
"backupAndRestore.desc": "In this section you can save and restore a backup of ALL settings.",
"upgrade": "Upgrade",
"upgrade.desc": "In this section you can upgrade the firmware and filesystem of your device.<br />Latest releases can be downloaded from the <a href=\"https://github.com/Laxilef/OTGateway/releases\" target=\"_blank\">Releases page</a> of the project repository."
},
"note": {
"disclaimer1": "After a successful upgrade the filesystem, ALL settings will be reset to default values! Save backup before upgrading.",
"disclaimer2": "After a successful upgrade, the device will automatically reboot after 10 seconds."
},
"settingsFile": "Settings file",
"fw": "Firmware",
"fs": "Filesystem"
}
}
}

331
src_data/locales/ru.json Normal file
View File

@@ -0,0 +1,331 @@
{
"values": {
"logo": "OpenTherm Gateway",
"nav": {
"license": "Лицензия",
"source": "Исходный код",
"help": "Помощь",
"issues": "Проблемы и вопросы",
"releases": "Релизы"
},
"button": {
"upgrade": "Обновить",
"restart": "Перезагрузка",
"save": "Сохранить",
"saved": "Сохранено",
"refresh": "Обновить",
"restore": "Восстановить настройки",
"restored": "Восстановлено",
"backup": "Сохранить настройки",
"wait": "Пожалуйста, подождите...",
"uploading": "Загрузка...",
"success": "Успешно",
"error": "Ошибка"
},
"index": {
"title": "OpenTherm Gateway",
"section": {
"network": "Сеть",
"system": "Система"
},
"system": {
"build": {
"title": "Билд",
"version": "Версия",
"date": "Дата",
"sdk": "Ядро/SDK"
},
"uptime": "Аптайм",
"memory": {
"title": "ОЗУ",
"maxFreeBlock": "макс. блок",
"min": "мин."
},
"board": "Плата",
"chip": {
"model": "Чип",
"cores": "Кол-во ядер",
"freq": "частота"
},
"flash": {
"size": "Размер ПЗУ",
"realSize": "реальный размер"
},
"lastResetReason": "Причина перезагрузки"
}
},
"dashboard": {
"name": "Дашборд",
"title": "Дашборд - OpenTherm Gateway",
"section": {
"control": "Управление",
"states": "Состояние и сенсоры",
"otDiag": "Диагностика OpenTherm"
},
"thermostat": {
"heating": "Отопление",
"dhw": "ГВС",
"temp.current": "Текущая",
"enable": "Вкл",
"turbo": "Турбо"
},
"state": {
"ot": "OpenTherm подключение",
"mqtt": "MQTT подключение",
"emergency": "Аварийный режим",
"heating": "Отопление",
"dhw": "ГВС",
"flame": "Пламя",
"fault": "Ошибка",
"diag": "Диагностика",
"extpump": "Внешний насос",
"modulation": "Уровень модуляции",
"pressure": "Давление",
"dhwFlowRate": "Расход ГВС",
"faultCode": "Код ошибки",
"indoorTemp": "Внутренняя темп.",
"outdoorTemp": "Наружная темп.",
"heatingTemp": "Темп. отопления",
"heatingSetpointTemp": "Уставка темп. отопления",
"heatingReturnTemp": "Темп. обратки отопления",
"dhwTemp": "Темп. ГВС",
"exhaustTemp": "Темп. выхлопных газов"
}
},
"network": {
"title": "Сеть - OpenTherm Gateway",
"name": "Настройки сети",
"section": {
"static": "Статические параметры",
"availableNetworks": "Доступные сети",
"staSettings": "Настройки подключения",
"apSettings": "Настройки точки доступа"
},
"scan": {
"pos": "#",
"info": "Инфо"
},
"wifi": {
"ssid": "Имя сети",
"password": "Пароль",
"channel": "Канал",
"signal": "Сигнал",
"connected": "Подключено"
},
"params": {
"hostname": "Имя хоста",
"dhcp": "Использовать DHCP",
"mac": "MAC адрес",
"ip": "IP адрес",
"subnet": "Адрес подсети",
"gateway": "Адрес шлюза",
"dns": "DNS адрес"
},
"sta": {
"channel.note": "установите 0 для автоматического выбора"
}
},
"settings": {
"title": "Настройки - OpenTherm Gateway",
"name": "Настройки",
"section": {
"portal": "Настройки портала",
"system": "Системные настройки",
"diag": "Диагностика",
"heating": "Настройки отопления",
"dhw": "Настройки ГВС",
"emergency": "Настройки аварийного режима",
"emergency.events": "События",
"emergency.regulators": "Используемые регуляторы",
"equitherm": "Настройки ПЗА",
"pid": "Настройки ПИД",
"ot": "Настройки OpenTherm",
"ot.options": "Опции",
"mqtt": "Настройки MQTT",
"outdorSensor": "Настройки наружного датчика температуры",
"indoorSensor": "Настройки внутреннего датчика температуры",
"extPump": "Настройки дополнительного насоса"
},
"enable": "Вкл",
"note": {
"restart": "После изменения этих настроек устройство необходимо перезагрузить, чтобы изменения вступили в силу.",
"blankNotUse": "пусто - не использовать"
},
"temp": {
"min": "Мин. температура",
"max": "Макс. температура"
},
"portal": {
"login": "Логин",
"password": "Пароль",
"auth": "Требовать аутентификацию"
},
"system": {
"unit": "Система единиц",
"metric": "Метрическая <small>(цильсии, литры, бары)</small>",
"imperial": "Imperial <small>(фаренгейты, галлоны, psi)</small>",
"statusLedGpio": "Статус LED GPIO",
"debug": "Отладка",
"serial": {
"enable": "Вкл. Serial порт",
"baud": {
"title": "Скорость Serial порта",
"note": "Доступно: 9600, 19200, 38400, 57600, 74880, 115200"
}
},
"telnet": {
"enable": "Вкл. Telnet",
"port": {
"title": "Telnet порт",
"note": "По умолчанию: 23"
}
}
},
"heating": {
"hyst": "Гистерезис",
"maxMod": "Макс. уровень модуляции"
},
"emergency": {
"desc": "<b>!</b> Аварийный режим может быть полезен <u>только</u> при использовании ПЗА и/или ПИД и при передачи наружной/внутренней температуры через MQTT или API. В этом режиме значения датчиков, передаваемые через MQTT/API, не используются.",
"target": {
"title": "Целевая температура",
"note": "Целевая <u>внутренняя температура</u> если ПЗА и/или ПИД <b>включены</b><br />Целевая <u>температура теплоносителя</u> если ПЗА и ПИД <b>выключены</b>"
},
"treshold": "Пороговое время включения <small>(сек)</small>",
"events": {
"network": "При отключении сети",
"mqtt": "При отключении MQTT"
},
"regulators": {
"equitherm": "ПЗА <small>(требуется внешний или подключенный к котлу датчик <u>наружной</u> температуры)</small>",
"pid": "ПИД <small>(требуется внешний/BLE датчик <u>внутренней</u> температуры)</small>"
}
},
"equitherm": {
"n": "Коэффициент N",
"k": "Коэффициент K",
"t": {
"title": "Коэффициент T",
"note": "Не используется, если ПИД включен"
}
},
"pid": {
"p": "Коэффициент P",
"i": "Коэффициент I",
"d": "Коэффициент D",
"dt": "DT <small>в секундах</small>"
},
"ot": {
"inGpio": "Вход GPIO",
"outGpio": "Выход GPIO",
"ledGpio": "RX LED GPIO",
"memberIdCode": "Master MemberID код",
"options": {
"dhwPresent": "Контур ГВС",
"summerWinterMode": "Летний/зимний режим",
"heatingCh2Enabled": "Канал 2 отопления всегда вкл.",
"heatingCh1ToCh2": "Дублировать параметры отопления канала 1 в канал 2",
"dhwToCh2": "Дублировать параметры ГВС в канал 2",
"dhwBlocking": "DHW blocking",
"modulationSyncWithHeating": "Синхронизировать модуляцию с отоплением",
"getMinMaxTemp": "Получать мин. и макс. температуру от котла"
},
"faultState": {
"gpio": "Fault state GPIO",
"note": "Can be useful to switch on another boiler <u>via relay</u>. Blank - not use.",
"invert": "Invert fault state"
},
"nativeHeating": {
"title": "Передать управление отоплением котлу",
"note": "Работает <u>ТОЛЬКО</u> если котел требует и принимает целевую температуру в помещении и сам регулирует температуру теплоносителя на основе встроенного режима кривых. Несовместимо с ПИД и ПЗА, а также с гистерезисом встроенного ПО."
}
},
"mqtt": {
"homeAssistantDiscovery": "Home Assistant Discovery",
"server": "Адрес сервера",
"port": "Порт",
"user": "Имя пользователя",
"password": "Пароль",
"prefix": "Префикс",
"interval": "Интервал публикации (в секундах)"
},
"tempSensor": {
"source": {
"type": "Источник данных",
"boiler": "От котла через OpenTherm",
"manual": "Вручную через MQTT/API",
"ext": "Внешний датчик (DS18B20)",
"ble": "BLE устройство <i>(ТОЛЬКО для некоторых плат ESP32 с поддержкой BLE)</i>"
},
"gpio": "GPIO",
"offset": "Смещение температуры <small>(калибровка)</small>",
"bleAddress": {
"title": "BLE адрес",
"note": "ТОЛЬКО для некоторых плат ESP32 с поддержкой BLE"
}
},
"extPump": {
"use": "Использовать доп. насос",
"gpio": "GPIO реле",
"postCirculationTime": "Время постциркуляции <small>(в минутах)</small>",
"antiStuckInterval": "Интервал защиты от блокировки <small>(в днях)</small>",
"antiStuckTime": "Время работы насоса <small>(в минутах)</small>"
}
},
"upgrade": {
"title": "Обновление - OpenTherm Gateway",
"name": "Обновление",
"section": {
"backupAndRestore": "Резервное копирование и восстановление",
"backupAndRestore.desc": "В этом разделе вы можете сохранить и восстановить резервную копию ВСЕХ настроек.",
"upgrade": "Обновление",
"upgrade.desc": "В этом разделе вы можете обновить прошивку и файловую систему вашего устройства.<br />Последнюю версию можно загрузить со страницы <a href=\"https://github.com/Laxilef/OTGateway/releases\" target=\"_blank\">Релизы</a> в репозитории проекта."
},
"note": {
"disclaimer1": "После успешного обновления файловой системы ВСЕ настройки будут сброшены на стандартные! Создайте резервную копию ПЕРЕД обновлением.",
"disclaimer2": "После успешного обновления устройство автоматически перезагрузится через 10 секунд."
},
"settingsFile": "Файл настроек",
"fw": "Прошивка",
"fs": "Файловая система"
}
}
}