From 94473bdeaa548ea1b9e572ba5ff6f4a63812bfb0 Mon Sep 17 00:00:00 2001 From: Proddy Date: Sat, 28 Jan 2023 16:20:16 +0100 Subject: [PATCH] merge PL translation update - https://github.com/emsesp/EMS-ESP32/pull/929 --- interface/src/framework/ap/APStatusForm.tsx | 2 +- .../framework/network/NetworkStatusForm.tsx | 2 +- interface/src/framework/ntp/NTPStatusForm.tsx | 2 +- interface/src/framework/security/UserForm.tsx | 5 ++- interface/src/i18n/pl/index.ts | 44 +++++++++---------- src/emsdevice.cpp | 5 ++- src/emsdevice.h | 10 ++--- src/emsesp.cpp | 24 +++++----- src/locale_translations.h | 1 + 9 files changed, 51 insertions(+), 44 deletions(-) diff --git a/interface/src/framework/ap/APStatusForm.tsx b/interface/src/framework/ap/APStatusForm.tsx index ffac701bd..ba5e1cb4d 100644 --- a/interface/src/framework/ap/APStatusForm.tsx +++ b/interface/src/framework/ap/APStatusForm.tsx @@ -38,7 +38,7 @@ const APStatusForm: FC = () => { case APNetworkStatus.ACTIVE: return LL.ACTIVE(); case APNetworkStatus.INACTIVE: - return LL.INACTIVE(); + return LL.INACTIVE(0); case APNetworkStatus.LINGERING: return 'Lingering until idle'; default: diff --git a/interface/src/framework/network/NetworkStatusForm.tsx b/interface/src/framework/network/NetworkStatusForm.tsx index 8c90f0006..4eb7bcba0 100644 --- a/interface/src/framework/network/NetworkStatusForm.tsx +++ b/interface/src/framework/network/NetworkStatusForm.tsx @@ -67,7 +67,7 @@ const NetworkStatusForm: FC = () => { const networkStatus = ({ status }: NetworkStatus) => { switch (status) { case NetworkConnectionStatus.WIFI_STATUS_NO_SHIELD: - return LL.INACTIVE(); + return LL.INACTIVE(1); case NetworkConnectionStatus.WIFI_STATUS_IDLE: return LL.IDLE(); case NetworkConnectionStatus.WIFI_STATUS_NO_SSID_AVAIL: diff --git a/interface/src/framework/ntp/NTPStatusForm.tsx b/interface/src/framework/ntp/NTPStatusForm.tsx index 95ff551c1..2077576c7 100644 --- a/interface/src/framework/ntp/NTPStatusForm.tsx +++ b/interface/src/framework/ntp/NTPStatusForm.tsx @@ -74,7 +74,7 @@ const NTPStatusForm: FC = () => { case NTPSyncStatus.NTP_DISABLED: return LL.NOT_ENABLED(); case NTPSyncStatus.NTP_INACTIVE: - return LL.INACTIVE(); + return LL.INACTIVE(0); case NTPSyncStatus.NTP_ACTIVE: return LL.ACTIVE(); default: diff --git a/interface/src/framework/security/UserForm.tsx b/interface/src/framework/security/UserForm.tsx index 22ec43fa5..4111a5a90 100644 --- a/interface/src/framework/security/UserForm.tsx +++ b/interface/src/framework/security/UserForm.tsx @@ -3,6 +3,7 @@ import Schema, { ValidateFieldsError } from 'async-validator'; import CancelIcon from '@mui/icons-material/Cancel'; import PersonAddIcon from '@mui/icons-material/PersonAdd'; +import SaveIcon from '@mui/icons-material/Save'; import { Button, Checkbox, Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'; @@ -88,13 +89,13 @@ const UserForm: FC = ({ creating, validator, user, setUser, onDon {LL.CANCEL()} diff --git a/interface/src/i18n/pl/index.ts b/interface/src/i18n/pl/index.ts index 05861c1af..a710c6267 100644 --- a/interface/src/i18n/pl/index.ts +++ b/interface/src/i18n/pl/index.ts @@ -49,7 +49,7 @@ const pl: BaseTranslation = { APPLY_CHANGES: 'Apply Changes ({0})', // TODO translate UPDATE: 'Update', // TODO translate REMOVE: 'Usuń', - PROBLEM_UPDATING: 'Problem z aktualizacją!', + PROBLEM_UPDATING: 'Problem z uaktualnieniem!', PROBLEM_LOADING: 'Problem z załadowaniem!', ACCESS_DENIED: 'Brak dostępu!', ANALOG_SENSOR: 'urządzenia podłączonego do EMS-ESP', @@ -74,7 +74,7 @@ const pl: BaseTranslation = { EMS_BUS_WARNING: 'Brak połączenia z magistralą EMS. Jeśli ten błąd występuje dłużej niż kilka sekund, sprawdź ustawienia oraz profil płytki interfejsu.', EMS_BUS_SCANNING: 'Trwa skanowanie urządzeń na magistrali EMS...', CONNECTED: '{{połączono|połączenie|}}', - TX_ISSUES: 'Problem z zapisem na magistralę EMS. Spróbuj wybrać inny "Tryb transmisji (Tx)".', + TX_ISSUES: 'problem z zapisem na magistralę EMS, spróbuj wybrać inny "Tryb transmisji (Tx)"', DISCONNECTED: 'brak połączenia', EMS_SCAN: 'Czy na pewno wykonać pełne skanowanie magistrali EMS?', EMS_BUS_STATUS: 'Status magistrali EMS', @@ -105,9 +105,9 @@ const pl: BaseTranslation = { NUM_MINUTES: '{num} minu{{t|ta|ty|ty|t}}', APPLICATION_SETTINGS: 'Ustawienia aplikacji', CUSTOMIZATIONS: 'Personalizacja', - APPLICATION_RESTARTING: 'Trwa ponowne uruchamianie...', + APPLICATION_RESTARTING: 'Trwa ponowne uruchamianie', INTERFACE_BOARD_PROFILE: 'Profil płytki interfejsu', - BOARD_PROFILE_TEXT: 'Wybierz z listy gotowy profil płytki interfejsu lub wybierając "własny..." skonfiguruj posiadany sprzęt samodzielnie.', + BOARD_PROFILE_TEXT: 'Wybierz z listy gotowy profil płytki interfejsu lub "własny..." i samodzielnie skonfiguruj posiadany sprzęt.', BOARD_PROFILE: 'Profil płytki', CUSTOM: 'własny', GPIO_OF: 'GPIO {0}', @@ -141,7 +141,7 @@ const pl: BaseTranslation = { LOG_HEX: 'Loguj telegramy EMS w systemie szesnastkowym (hex)', ENABLE_SYSLOG: 'Aktywuj SysLog', LOG_LEVEL: 'Poziom logowania', - MARK_INTERVAL: 'Oznaczaj interwały (0=brak)', + MARK_INTERVAL: 'Znaczniki interwałów (0=brak)', SECONDS: 'sekund', MINUTES: 'minut', HOURS: 'godzin', @@ -203,9 +203,9 @@ const pl: BaseTranslation = { FLASH: 'Flash (rozmiar / taktowanie)', APPSIZE: 'Aplikacja (wykorzystane / wolne)', FILESYSTEM: 'System plików (wykorzystane / wolne)', - BUFFER_SIZE: 'maksymalny rozmiar bufora', + BUFFER_SIZE: 'Maksymalna pojemność bufora (ilość wpisów)', COMPACT: 'Kompaktowy', - ENABLE_OTA: 'Aktywuj aktualizacje OTA', + ENABLE_OTA: 'Aktywuj aktualizację OTA', DOWNLOAD_CUSTOMIZATION_TEXT: 'Pobierz personalizacje', DOWNLOAD_SETTINGS_TEXT: 'Pobierz ustawienia aplikacji. Uważaj jeśli udostępniasz plik z ustawieniami, ponieważ zawiera on hasła oraz inne wrażliwe informacje!', UPLOAD_TEXT: 'Wyślij firmware (.bin), ustawienia lub personalizacje (.json). Opcjonalnie, wyślij wcześniej plik walidacji (.md5).', @@ -223,23 +223,23 @@ const pl: BaseTranslation = { USER: '{{Użytkownik|użytkownika|}}', MODIFY: 'Edycja', SU_TEXT: 'Hasło "su" (super-użytkownika) służy do podpisywania tokenów autoryzujących oraz włączania uprawnień administratora w konsoli.', - NOT_ENABLED: 'nieaktywny', + NOT_ENABLED: 'nie aktywowano', ERRORS_OF: 'Błędy {0}', DISCONNECT_REASON: 'Przyczyna braku połączenia', ENABLE_MQTT: 'Aktywuj MQTT', BROKER: 'brokera', CLIENT: 'klienta', - BASE_TOPIC: 'Prefiks bazowy', + BASE_TOPIC: 'Prefiks bazowy (unikalny!)', OPTIONAL: 'opcjonalny', FORMATTING: 'Formatowanie', MQTT_FORMAT: 'Sposób publikowania danych', - MQTT_NEST_1: 'zagnieżdżone w pojedynczym temacie', - MQTT_NEST_2: 'jako indywidualne tematy', + MQTT_NEST_1: 'zagnieżdżone w jednym temacie', + MQTT_NEST_2: 'jako oddzielne tematy', MQTT_RESPONSE: 'Rezultat wykonania komendy publikuj w temacie "response"', - MQTT_PUBLISH_TEXT_1: 'Publikuj tematy z pojedynczą wartością bezpośrednio po zmianie', - MQTT_PUBLISH_TEXT_2: 'Publikuj w temacie "command" (ioBroker)', + MQTT_PUBLISH_TEXT_1: 'Tematy z pojedynczą wartością publikuj po jej zmianie', + MQTT_PUBLISH_TEXT_2: 'Publikuj w tematach "command" (ioBroker)', MQTT_PUBLISH_TEXT_3: 'Włącz opcję "MQTT discovery" (Home Assistant, Domoticz)', - MQTT_PUBLISH_TEXT_4: 'Prefiks dla tematów "MQTT discovery"', + MQTT_PUBLISH_TEXT_4: 'Prefiks dla "MQTT discovery"', MQTT_PUBLISH_INTERVALS: 'Interwały publikowania', MQTT_INT_BOILER: 'Kotły i pompy ciepła', MQTT_INT_THERMOSTATS: 'Termostaty', @@ -251,10 +251,10 @@ const pl: BaseTranslation = { MQTT_ENTITY_FORMAT: 'Format "Entity ID"', MQTT_ENTITY_FORMAT_0: 'długa nazwa (jak w v3.4)', MQTT_ENTITY_FORMAT_1: 'krótka nazwa', - MQTT_ENTITY_FORMAT_2: 'instancja + krótka nazwa', + MQTT_ENTITY_FORMAT_2: 'prefiks bazowy + krótka nazwa', MQTT_CLEAN_SESSION: 'Ustawiaj flagę "Clean session"', MQTT_RETAIN_FLAG: 'Ustawiaj flagę "Retain"', - INACTIVE: 'nieaktywny', + INACTIVE: 'nieaktywn{{y|a|}}', ACTIVE: 'aktywny', UNKNOWN: 'nieznany', SET_TIME: '{{Ustaw zegar|Ustawianie zegara|}}', @@ -265,17 +265,17 @@ const pl: BaseTranslation = { NTP_SERVER: 'Serwer NTP', TIME_ZONE: 'Strefa czasowa', ACCESS_POINT: '{{Punkt|punktu|}} {{dostępowy|dostępowego|}}', - AP_PROVIDE: 'Aktywuj punkt dostępowy', - AP_PROVIDE_TEXT_1: 'zawsze', - AP_PROVIDE_TEXT_2: 'gdy połączenie WiFi jest rozłączone', - AP_PROVIDE_TEXT_3: 'nigdy', + AP_PROVIDE: 'Punkt dostępowy', + AP_PROVIDE_TEXT_1: 'zawsze aktywny', + AP_PROVIDE_TEXT_2: 'aktywny jeśli brak połączenia z siecią', + AP_PROVIDE_TEXT_3: 'nieaktywny', AP_PREFERRED_CHANNEL: 'Preferowany kanał', AP_HIDE_SSID: 'Ukryj SSID', AP_CLIENTS: 'Liczba klientów', AP_MAX_CLIENTS: 'Maksymalna liczba klientów', AP_LOCAL_IP: 'Lokalny adres IP', NETWORK_SCAN: 'Skanowanie sieci WiFi', - IDLE: 'uśpiony', + IDLE: 'bezczynna', LOST: 'zostało utracone.', SCANNING: 'Skanuję', SCAN_AGAIN: 'Skanuj ponownie', @@ -285,7 +285,7 @@ const pl: BaseTranslation = { TX_POWER: 'Moc nadawania', HOSTNAME: 'Nazwa w sieci', NETWORK_DISABLE_SLEEP: 'Wyłącz tryb usypiania WiFi', - NETWORK_LOW_BAND: 'Używaj zmniejszonej przepustowości WiFi', + NETWORK_LOW_BAND: 'Używaj mniejszej szerokości pasma WiFi (20MHz)', NETWORK_USE_DNS: 'Włącz wsparcie dla mDNS', NETWORK_ENABLE_CORS: 'Włącz wsparcie dla CORS', NETWORK_CORS_ORIGIN: 'CORS origin', diff --git a/src/emsdevice.cpp b/src/emsdevice.cpp index f95b6d9fa..63848c0ba 100644 --- a/src/emsdevice.cpp +++ b/src/emsdevice.cpp @@ -124,7 +124,7 @@ const char * EMSdevice::device_type_2_device_name(const uint8_t device_type) { case DeviceType::HEATSOURCE: return F_(heatsource); default: - return Helpers::translated_word(FL_(unknown)); + return Helpers::translated_word(FL_(unknown), true); } } @@ -159,7 +159,7 @@ const char * EMSdevice::device_type_2_device_name_translated() { default: break; } - return Helpers::translated_word(FL_(unknown)); + return Helpers::translated_word(FL_(unknown_device)); } // returns device_type from a non-translated EN string @@ -474,6 +474,7 @@ void EMSdevice::add_device_value(uint8_t tag, uint16_t max) { // initialize the device value depending on it's type // ignoring DeviceValueType::CMD and DeviceValueType::TIME + if (type == DeviceValueType::STRING) { *(char *)(value_p) = {'\0'}; // this is important for string functions like strlen() to work later } else if (type == DeviceValueType::INT) { diff --git a/src/emsdevice.h b/src/emsdevice.h index 8972bedb3..f35c80896 100644 --- a/src/emsdevice.h +++ b/src/emsdevice.h @@ -446,11 +446,11 @@ class EMSdevice { bool ha_config_firstrun_ = true; // this means a first setup of HA is needed after a restart struct TelegramFunction { - uint16_t telegram_type_id_; // it's type_id - const char * telegram_type_name_; // e.g. RC20Message - bool fetch_; // if this type_id be queried automatically - bool received_; - process_function_p process_function_; + const uint16_t telegram_type_id_; // it's type_id + const char * telegram_type_name_; // e.g. RC20Message + bool fetch_; // if this type_id be queried automatically + bool received_; + const process_function_p process_function_; TelegramFunction(uint16_t telegram_type_id, const char * telegram_type_name, bool fetch, bool received, const process_function_p process_function) : telegram_type_id_(telegram_type_id) diff --git a/src/emsesp.cpp b/src/emsesp.cpp index bc036898b..9cfd7f606 100644 --- a/src/emsesp.cpp +++ b/src/emsesp.cpp @@ -1070,41 +1070,45 @@ bool EMSESP::add_device(const uint8_t device_id, const uint8_t product_id, const // check for known device IDs if (device_id == EMSdevice::EMS_DEVICE_ID_RFSENSOR) { // see: https://github.com/emsesp/EMS-ESP32/issues/103#issuecomment-911717342 and https://github.com/emsesp/EMS-ESP32/issues/624 - name = "rf room temperature sensor"; + name = "RF room temperature sensor"; device_type = DeviceType::THERMOSTAT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_ROOMTHERMOSTAT) { - name = "generic thermostat"; + name = "Generic thermostat"; device_type = DeviceType::THERMOSTAT; flags = DeviceFlags::EMS_DEVICE_FLAG_RC10 | DeviceFlags::EMS_DEVICE_FLAG_NO_WRITE; } else if (device_id == EMSdevice::EMS_DEVICE_ID_RS232) { name = "RS232"; device_type = DeviceType::CONNECT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_TERMINAL) { - name = "terminal"; + name = "Terminal"; device_type = DeviceType::CONNECT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_SERVICEKEY) { - name = "service key"; + name = "Service Key"; device_type = DeviceType::CONNECT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_CASCADE) { - name = "cascade"; + name = "Cascade"; device_type = DeviceType::CONNECT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_EASYCOM) { // see https://github.com/emsesp/EMS-ESP/issues/460#issuecomment-709553012 - name = "modem"; + name = "Modem"; device_type = DeviceType::CONNECT; } else if (device_id == EMSdevice::EMS_DEVICE_ID_CONVERTER) { - name = "converter"; // generic + name = "Converter"; // generic } else if (device_id == EMSdevice::EMS_DEVICE_ID_CLOCK) { - name = "clock"; // generic + name = "Clock"; // generic device_type = DeviceType::CONTROLLER; } else if (device_id == EMSdevice::EMS_DEVICE_ID_CONTROLLER) { - name = "generic controller"; + name = "Generic Controller"; device_type = DeviceType::CONTROLLER; } else if (device_id == EMSdevice::EMS_DEVICE_ID_BOILER) { - name = "generic boiler"; + name = "Generic Boiler"; device_type = DeviceType::BOILER; flags = DeviceFlags::EMS_DEVICE_FLAG_HEATPUMP; LOG_WARNING("Unknown EMS boiler. Using generic profile. Please report on GitHub."); + } else if (device_id >= 0x68 && device_id <= 0x6F) { + // test for https://github.com/emsesp/EMS-ESP32/issues/882 + name = "Cascaded Controller"; + device_type = DeviceType::CONTROLLER; } else { LOG_WARNING("Unrecognized EMS device (device ID 0x%02X, no product ID). Please report on GitHub.", device_id); return false; diff --git a/src/locale_translations.h b/src/locale_translations.h index bd526a9a1..bf5e83d39 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -47,6 +47,7 @@ MAKE_PSTR_LIST(alert_device, "Alert Module", "Alarmmodul", "Alert Module", "Larm MAKE_PSTR_LIST(pump_device, "Pump Module", "Pumpenmodul", "Pump Module", "Pumpmodul") MAKE_PSTR_LIST(heatsource_device, "Heatsource", "Heizquelle", "Heatsource", "Värmekälla") MAKE_PSTR_LIST(sensors_device, "Sensors", "Sensoren", "Sensoren", "Sensorer", "czujniki", "Sensorer", "Capteurs") +MAKE_PSTR_LIST(unknown_device, "Unknown", "Unbekannt", "Onbekend", "Okänt", "Nieznane urządzenie", "Ukjent", "Inconnu") // commands MAKE_PSTR_LIST(info_cmd, "lists all values", "Liste aller Werte")