From edfbbe68b03896ea041ea40b7fb95db9b693ac68 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Wed, 22 Jul 2026 17:28:16 +0200 Subject: [PATCH] language code "cs" --- CHANGELOG_LATEST.md | 2 + docs/dump_entities.csv | 44 +++++-------------- interface/src/App.tsx | 2 +- .../src/app/settings/ApplicationSettings.tsx | 2 +- .../components/inputs/LanguageSelector.tsx | 2 +- interface/src/i18n/{cz => cs}/index.ts | 4 +- src/core/helpers.cpp | 2 +- src/core/locale_translations.h | 6 +-- src/core/modbus_entity_parameters.hpp | 14 ------ src/core/system.cpp | 2 +- src/emsesp_version.h | 2 +- src/web/WebSettingsService.cpp | 3 ++ 12 files changed, 26 insertions(+), 59 deletions(-) rename interface/src/i18n/{cz => cs}/index.ts (99%) diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 1b6f99537..6846c6bc3 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -21,6 +21,7 @@ For more details go to [emsesp.org](https://emsesp.org/). - possible memory leaks fixed. - repeated startup schedules compute value - call `system/message` called from scheduler processes compute twice +- water module SM100/200 as dhw1/dhw2 [#3164](https://github.com/emsesp/EMS-ESP32/issues/3164) ## Changed @@ -29,3 +30,4 @@ For more details go to [emsesp.org](https://emsesp.org/). - add option for sync thermostat to ntp, allow different time zones [#3148](https://github.com/emsesp/EMS-ESP32/discussions/3148), **defaults to sync**. - block too many GET requests [mentioned in #3104](https://github.com/emsesp/EMS-ESP32/issues/3104) - set 10 sec timeout for http requests [#3104](https://github.com/emsesp/EMS-ESP32/issues/3104) +- language code "cs" [#3161](https://github.com/emsesp/EMS-ESP32/issues/3161) diff --git a/docs/dump_entities.csv b/docs/dump_entities.csv index 30217cb4a..fa9f15503 100644 --- a/docs/dump_entities.csv +++ b/docs/dump_entities.csv @@ -5975,49 +5975,25 @@ device name,device type,product id,shortname,fullname,type [options...] \| (min/ "MM200",water,161,circ,circulation active,boolean (>=0<=0), ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,-1,1 "MM200",water,161,circmode,circulation pump mode,enum [off\|on\|auto\|own prog] (>=0<=0), ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,-1,1 "SM100, MS100",water,163,temp,current temperature,uint16,C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,-1,1 -"SM100, MS100",water,163,storagetemp1,storage intern temperature,uint16,C,false,sensor.water_dhw_storage_intern_temperature,sensor.water_dhw_storagetemp1,19,9,1/10,-1,1 -"SM100, MS100",water,163,coldtemp,cold water,uint16,C,false,sensor.water_dhw_cold_water,sensor.water_dhw_coldtemp,19,9,1/10,-1,1 -"SM100, MS100",water,163,temp5,temperature 5,uint16,C,false,sensor.water_dhw_temperature_5,sensor.water_dhw_temp5,19,9,1/10,-1,1 -"SM100, MS100",water,163,rettemp,return temperature,uint16,C,false,sensor.water_dhw_return_temperature,sensor.water_dhw_rettemp,19,9,1/10,-1,1 +"SM100, MS100",water,163,tempstatus,temperature switch in assigned dhw (MC1),int8, ,false,sensor.water_dhw_temperature_switch_in_assigned_dhw_(MC1),sensor.water_dhw_tempstatus,19,9,1,-1,1 "SM100, MS100",water,163,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,-1,1 "SM100, MS100",water,163,maxtemp,maximum temperature,uint8 (>=0<=0),C,true,number.water_dhw_maximum_temperature,number.water_dhw_maxtemp,19,9,1,-1,1 -"SM100, MS100",water,163,seltemp,selected temperature,uint8 (>=0<=0),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,-1,1 -"SM100, MS100",water,163,redtemp,reduced temperature,uint8 (>=0<=0),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,-1,1 -"SM100, MS100",water,163,hottemp,extra hot temperature,uint8 (>=0<=0),C,true,number.water_dhw_extra_hot_temperature,number.water_dhw_hottemp,19,9,1,-1,1 -"SM100, MS100",water,163,dailytemp,daily temperature,uint8 (>=0<=0),C,true,number.water_dhw_daily_temperature,number.water_dhw_dailytemp,19,9,1,-1,1 +"SM100, MS100",water,163,difftemp,start differential temperature,int8 (>=0<=0),C,true,number.water_dhw_start_differential_temperature,number.water_dhw_difftemp,19,9,1,-1,1 "SM100, MS100",water,163,disinfectiontemp,disinfection temperature,uint8 (>=0<=0),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,-1,1 +"SM100, MS100",water,163,redtemp,reduced temperature,uint8 (>=0<=0),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,-1,1 +"SM100, MS100",water,163,requiredtemp,required temperature,uint8 (>=0<=0),C,true,number.water_dhw_required_temperature,number.water_dhw_requiredtemp,19,9,1,-1,1 "SM100, MS100",water,163,circ,circulation active,boolean (>=0<=0), ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,-1,1 -"SM100, MS100",water,163,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous] (>=0<=0), ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,-1,1 -"SM100, MS100",water,163,circtc,circulation time controlled,boolean (>=0<=0), ,true,switch.water_dhw_circulation_time_controlled,switch.water_dhw_circtc,19,9,1,-1,1 -"SM100, MS100",water,163,keepwarm,keep warm,boolean (>=0<=0), ,true,switch.water_dhw_keep_warm,switch.water_dhw_keepwarm,19,9,1,-1,1 -"SM100, MS100",water,163,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw_status_2,sensor.water_dhw_status2,19,9,1,-1,1 -"SM100, MS100",water,163,pumpmod,pump modulation,uint8,%,false,sensor.water_dhw_pump_modulation,sensor.water_dhw_pumpmod,19,9,1,-1,1 -"SM100, MS100",water,163,flow,flow rate,uint16,l/min,false,sensor.water_dhw_flow_rate,sensor.water_dhw_flow,19,9,1/10,-1,1 -"SM100, MS100",water,163,valvereturn,return valve,uint8 (>=0<=0),%,true,number.water_dhw_return_valve,number.water_dhw_valvereturn,19,9,1,-1,1 -"SM100, MS100",water,163,deltatret,temp. diff. return valve,uint8 (>=0<=0),K,true,number.water_dhw_temp._diff._return_valve,number.water_dhw_deltatret,19,9,1,-1,1 -"SM100, MS100",water,163,errordisp,error display,enum [off\|normal\|inverted] (>=0<=0), ,true,select.water_dhw_error_display,select.water_dhw_errordisp,19,9,1,-1,1 +"SM100, MS100",water,163,circmode,circulation pump mode,enum [off\|on\|auto\|own prog] (>=0<=0), ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,-1,1 "SM200, MS200",water,164,temp,current temperature,uint16,C,false,sensor.water_dhw_current_temperature,sensor.water_dhw_temp,19,9,1/10,-1,1 -"SM200, MS200",water,164,storagetemp1,storage intern temperature,uint16,C,false,sensor.water_dhw_storage_intern_temperature,sensor.water_dhw_storagetemp1,19,9,1/10,-1,1 -"SM200, MS200",water,164,coldtemp,cold water,uint16,C,false,sensor.water_dhw_cold_water,sensor.water_dhw_coldtemp,19,9,1/10,-1,1 -"SM200, MS200",water,164,temp5,temperature 5,uint16,C,false,sensor.water_dhw_temperature_5,sensor.water_dhw_temp5,19,9,1/10,-1,1 -"SM200, MS200",water,164,rettemp,return temperature,uint16,C,false,sensor.water_dhw_return_temperature,sensor.water_dhw_rettemp,19,9,1/10,-1,1 +"SM200, MS200",water,164,tempstatus,temperature switch in assigned dhw (MC1),int8, ,false,sensor.water_dhw_temperature_switch_in_assigned_dhw_(MC1),sensor.water_dhw_tempstatus,19,9,1,-1,1 "SM200, MS200",water,164,pump,pump,boolean, ,false,binary_sensor.water_dhw_pump,binary_sensor.water_dhw_pump,19,9,1,-1,1 "SM200, MS200",water,164,maxtemp,maximum temperature,uint8 (>=0<=0),C,true,number.water_dhw_maximum_temperature,number.water_dhw_maxtemp,19,9,1,-1,1 -"SM200, MS200",water,164,seltemp,selected temperature,uint8 (>=0<=0),C,true,number.water_dhw_selected_temperature,number.water_dhw_seltemp,19,9,1,-1,1 -"SM200, MS200",water,164,redtemp,reduced temperature,uint8 (>=0<=0),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,-1,1 -"SM200, MS200",water,164,hottemp,extra hot temperature,uint8 (>=0<=0),C,true,number.water_dhw_extra_hot_temperature,number.water_dhw_hottemp,19,9,1,-1,1 -"SM200, MS200",water,164,dailytemp,daily temperature,uint8 (>=0<=0),C,true,number.water_dhw_daily_temperature,number.water_dhw_dailytemp,19,9,1,-1,1 +"SM200, MS200",water,164,difftemp,start differential temperature,int8 (>=0<=0),C,true,number.water_dhw_start_differential_temperature,number.water_dhw_difftemp,19,9,1,-1,1 "SM200, MS200",water,164,disinfectiontemp,disinfection temperature,uint8 (>=0<=0),C,true,number.water_dhw_disinfection_temperature,number.water_dhw_disinfectiontemp,19,9,1,-1,1 +"SM200, MS200",water,164,redtemp,reduced temperature,uint8 (>=0<=0),C,true,number.water_dhw_reduced_temperature,number.water_dhw_redtemp,19,9,1,-1,1 +"SM200, MS200",water,164,requiredtemp,required temperature,uint8 (>=0<=0),C,true,number.water_dhw_required_temperature,number.water_dhw_requiredtemp,19,9,1,-1,1 "SM200, MS200",water,164,circ,circulation active,boolean (>=0<=0), ,true,switch.water_dhw_circulation_active,switch.water_dhw_circ,19,9,1,-1,1 -"SM200, MS200",water,164,circmode,circulation pump mode,enum [off\|1x3min\|2x3min\|3x3min\|4x3min\|5x3min\|6x3min\|continuous] (>=0<=0), ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,-1,1 -"SM200, MS200",water,164,circtc,circulation time controlled,boolean (>=0<=0), ,true,switch.water_dhw_circulation_time_controlled,switch.water_dhw_circtc,19,9,1,-1,1 -"SM200, MS200",water,164,keepwarm,keep warm,boolean (>=0<=0), ,true,switch.water_dhw_keep_warm,switch.water_dhw_keepwarm,19,9,1,-1,1 -"SM200, MS200",water,164,status2,status 2,enum [\|\|\|no heat\|\|\|heat request\|\|disinfecting\|hold], ,false,sensor.water_dhw_status_2,sensor.water_dhw_status2,19,9,1,-1,1 -"SM200, MS200",water,164,pumpmod,pump modulation,uint8,%,false,sensor.water_dhw_pump_modulation,sensor.water_dhw_pumpmod,19,9,1,-1,1 -"SM200, MS200",water,164,flow,flow rate,uint16,l/min,false,sensor.water_dhw_flow_rate,sensor.water_dhw_flow,19,9,1/10,-1,1 -"SM200, MS200",water,164,valvereturn,return valve,uint8 (>=0<=0),%,true,number.water_dhw_return_valve,number.water_dhw_valvereturn,19,9,1,-1,1 -"SM200, MS200",water,164,deltatret,temp. diff. return valve,uint8 (>=0<=0),K,true,number.water_dhw_temp._diff._return_valve,number.water_dhw_deltatret,19,9,1,-1,1 -"SM200, MS200",water,164,errordisp,error display,enum [off\|normal\|inverted] (>=0<=0), ,true,select.water_dhw_error_display,select.water_dhw_errordisp,19,9,1,-1,1 +"SM200, MS200",water,164,circmode,circulation pump mode,enum [off\|on\|auto\|own prog] (>=0<=0), ,true,select.water_dhw_circulation_pump_mode,select.water_dhw_circmode,19,9,1,-1,1 "MP100",pool,204,pooltemp,pool temperature,int16,C,false,sensor.pool_pool_temperature,sensor.pool_pooltemp,20,0,1/10,-1,1 "MP100",pool,204,poolshuntstatus,pool shunt status opening/closing,enum [stopped\|opening\|closing\|open\|close], ,false,sensor.pool_pool_shunt_status_opening/closing,sensor.pool_poolshuntstatus,20,0,1,-1,1 "MP100",pool,204,poolshunt,pool shunt open/close (0% = pool / 100% = heat),uint8,%,false,sensor.pool_pool_shunt_open/close_(0%_=_pool_/_100%_=_heat),sensor.pool_poolshunt,20,0,1,-1,1 diff --git a/interface/src/App.tsx b/interface/src/App.tsx index c92e5f9cd..b4dc685d9 100644 --- a/interface/src/App.tsx +++ b/interface/src/App.tsx @@ -19,7 +19,7 @@ const AVAILABLE_LOCALES = [ 'sk', 'sv', 'tr', - 'cz' + 'cs' ] as Locales[]; // Static toast configuration - no need to recreate on every render diff --git a/interface/src/app/settings/ApplicationSettings.tsx b/interface/src/app/settings/ApplicationSettings.tsx index 8e8e90ab7..8cb13ef95 100644 --- a/interface/src/app/settings/ApplicationSettings.tsx +++ b/interface/src/app/settings/ApplicationSettings.tsx @@ -396,7 +396,7 @@ const ApplicationSettings = () => { margin="normal" select > - Česky (CZ) + Česky (CS) Deutsch (DE) English (EN) Français (FR) diff --git a/interface/src/components/inputs/LanguageSelector.tsx b/interface/src/components/inputs/LanguageSelector.tsx index 6e0ab57f2..20a20783c 100644 --- a/interface/src/components/inputs/LanguageSelector.tsx +++ b/interface/src/components/inputs/LanguageSelector.tsx @@ -28,7 +28,7 @@ interface LanguageOption { } const LANGUAGE_OPTIONS: LanguageOption[] = [ - { key: 'cz', flag: CZflag, label: 'CZ' }, + { key: 'cs', flag: CZflag, label: 'CS' }, { key: 'de', flag: DEflag, label: 'DE' }, { key: 'en', flag: GBflag, label: 'EN' }, { key: 'fr', flag: FRflag, label: 'FR' }, diff --git a/interface/src/i18n/cz/index.ts b/interface/src/i18n/cs/index.ts similarity index 99% rename from interface/src/i18n/cz/index.ts rename to interface/src/i18n/cs/index.ts index fbce09041..a156266b7 100644 --- a/interface/src/i18n/cz/index.ts +++ b/interface/src/i18n/cs/index.ts @@ -1,6 +1,6 @@ import type { Translation } from '../i18n-types'; -const cz: Translation = { +const cs: Translation = { LANGUAGE: 'Jazyk', RETRY: 'Zkusit znovu', LOADING: 'Načítání', @@ -368,4 +368,4 @@ const cz: Translation = { }; -export default cz; +export default cs; diff --git a/src/core/helpers.cpp b/src/core/helpers.cpp index 25a8ed3db..55a538fb9 100644 --- a/src/core/helpers.cpp +++ b/src/core/helpers.cpp @@ -817,7 +817,7 @@ std::string Helpers::toUpper(std::string const & s) { // capitalizes one UTF-8 character in char array // works with Latin1 (1 byte), Polish and other (2 bytes) characters -// supports special characters for all 11 supported languages: EN, DE, NL, SV, PL, NO, FR, TR, IT, SK, CZ +// supports special characters for all 11 supported languages: EN, DE, NL, SV, PL, NO, FR, TR, IT, SK, CS #if defined(EMSESP_STANDALONE) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wtype-limits" diff --git a/src/core/locale_translations.h b/src/core/locale_translations.h index e59e4ae2f..4cf8bad79 100644 --- a/src/core/locale_translations.h +++ b/src/core/locale_translations.h @@ -30,9 +30,9 @@ #define EMSESP_LOCALE_TR "tr" #define EMSESP_LOCALE_IT "it" #define EMSESP_LOCALE_SK "sk" -#define EMSESP_LOCALE_CZ "cz" +#define EMSESP_LOCALE_CS "cs" -// IMPORTANT! translations are in the order: en, de, nl, sv, pl, no, fr, tr, it, sk, cz +// IMPORTANT! translations are in the order: en, de, nl, sv, pl, no, fr, tr, it, sk, cs // // if there is no translation, it will default to en @@ -367,7 +367,7 @@ MAKE_WORD_TRANSLATION(bookshelf, "mdi:bookshelf", "mdi:bookshelf") // MQTT Discovery - this is special device entity for 'climate' MAKE_TRANSLATION(haclimate, "haclimate", "mqtt discovery current room temperature", "Discovery aktuelle Raumtemperatur", "Discovery huidige kamertemperatuur", "MQTT Discovery för aktuell rumstemperatur", "termostat w HA", "HA Avlest temp", "découverte mqtt température actuelle", "Güncel osa sıcaklığı", "verifica temperatura ambiente attuale", "mqtt discovery aktuálna teplota v miestnosti", "mqtt discovery aktuální pokojová teplota") -// Entity translations: tag, mqtt, en, de, nl, sv, pl, no, fr, tr, it, sk, cz +// Entity translations: tag, mqtt, en, de, nl, sv, pl, no, fr, tr, it, sk, cs // Boiler MAKE_TRANSLATION(chimneysweeper, "chimneysweeper", "chimney sweeper", "Schornsteinfeger", "schoorsteenveger", "Sotare", "tryb kominiarza", "feier", "ramoneur", "baca temizleyici", "spazzacamino", "kominár", "kominík") MAKE_TRANSLATION(reset, "reset", "reset", "Reset", "Reset", "Återställ", "kasowanie komunikatu", "nullstill", "reset", "Sıfırla", "Reset", "reset", "reset") diff --git a/src/core/modbus_entity_parameters.hpp b/src/core/modbus_entity_parameters.hpp index d05fa78d7..2cd0f2bec 100644 --- a/src/core/modbus_entity_parameters.hpp +++ b/src/core/modbus_entity_parameters.hpp @@ -637,20 +637,6 @@ const std::initializer_list Modbus::modbus_register_ma REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDiffTemp), 13, 1), // difftemp REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRedTemp), 14, 1), // redtemp REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwRequiredTemp), 15, 1), // requiredtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStorageTemp1), 16, 1), // storagetemp1 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwColdTemp), 17, 1), // coldtemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwTemp5), 18, 1), // temp5 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(retTemp), 19, 1), // rettemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwHotTemp), 20, 1), // hottemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwDailyTemp), 21, 1), // dailytemp - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwCircTc), 22, 1), // circtc - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwKeepWarm), 23, 1), // keepwarm - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwStatus2), 24, 1), // status2 - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwPumpMod), 25, 1), // pumpmod - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(wwFlow), 26, 1), // flow - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(valveReturn), 27, 1), // valvereturn - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(deltaTRet), 28, 1), // deltatret - REGISTER_MAPPING(dt::WATER, TAG_TYPE_DHW, FL_(errorDisp), 29, 1), // errordisp }; } // namespace emsesp diff --git a/src/core/system.cpp b/src/core/system.cpp index f8339df10..6174a4ebe 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -61,7 +61,7 @@ const char * const languages[] = {EMSESP_LOCALE_EN, EMSESP_LOCALE_TR, EMSESP_LOCALE_IT, EMSESP_LOCALE_SK, - EMSESP_LOCALE_CZ}; + EMSESP_LOCALE_CS}; #endif static constexpr uint8_t NUM_LANGUAGES = sizeof(languages) / sizeof(const char *); diff --git a/src/emsesp_version.h b/src/emsesp_version.h index c31287b18..110b4c43a 100644 --- a/src/emsesp_version.h +++ b/src/emsesp_version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.8.3-dev.9" +#define EMSESP_APP_VERSION "3.8.3-dev.10" diff --git a/src/web/WebSettingsService.cpp b/src/web/WebSettingsService.cpp index dead86c43..66c1bd3a0 100644 --- a/src/web/WebSettingsService.cpp +++ b/src/web/WebSettingsService.cpp @@ -267,6 +267,9 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) { } settings.locale = root["locale"] | EMSESP_DEFAULT_LOCALE; + if (settings.locale == "cz") { // convert from older settings file + settings.locale = "cs"; + } EMSESP::system_.locale(settings.locale); if (Mqtt::ha_enabled() && original_settings.locale != settings.locale) { add_flags(ChangeFlags::MQTT);