diff --git a/CHANGELOG_LATEST.md b/CHANGELOG_LATEST.md index 775da9bb4..db44a66fc 100644 --- a/CHANGELOG_LATEST.md +++ b/CHANGELOG_LATEST.md @@ -10,6 +10,7 @@ - heatpump energy meters [#1463](https://github.com/emsesp/EMS-ESP32/issues/1463) - heatpump max power [#1475](https://github.com/emsesp/EMS-ESP32/issues/1475) - checkbox for MQTT-TLS enable [#1474](https://github.com/emsesp/EMS-ESP32/issues/1474) +- added SK (Slovencina) language. Thanks @misa1515 ## Fixed diff --git a/interface/package.json b/interface/package.json index 781ed6cc1..049a87929 100644 --- a/interface/package.json +++ b/interface/package.json @@ -20,7 +20,7 @@ "lint": "eslint . --cache --fix" }, "dependencies": { - "@alova/adapter-xhr": "^1.0.1", + "@alova/adapter-xhr": "^1.0.2", "@babel/core": "^7.23.6", "@emotion/react": "^11.11.1", "@emotion/styled": "^11.11.0", @@ -30,10 +30,10 @@ "@types/imagemin": "^8.0.5", "@types/lodash-es": "^4.17.12", "@types/node": "^20.10.4", - "@types/react": "^18.2.43", - "@types/react-dom": "^18.2.17", + "@types/react": "^18.2.45", + "@types/react-dom": "^18.2.18", "@types/react-router-dom": "^5.3.3", - "alova": "^2.16.0", + "alova": "^2.16.1", "async-validator": "^4.2.5", "history": "^5.3.0", "jwt-decode": "^4.0.0", @@ -43,7 +43,7 @@ "react-dom": "latest", "react-dropzone": "^14.2.3", "react-icons": "^4.12.0", - "react-router-dom": "^6.20.1", + "react-router-dom": "^6.21.0", "react-toastify": "^9.1.3", "sockette": "^2.0.6", "typesafe-i18n": "^5.26.2", @@ -55,13 +55,13 @@ "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "concurrently": "^8.2.2", - "eslint": "^8.55.0", + "eslint": "^8.56.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^17.1.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-typescript": "^3.6.1", "eslint-plugin-autofix": "^1.1.0", - "eslint-plugin-import": "^2.29.0", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-prettier": "alpha", "eslint-plugin-react": "^7.33.2", @@ -70,7 +70,7 @@ "prettier": "^3.1.1", "rollup-plugin-visualizer": "^5.11.0", "terser": "^5.26.0", - "vite": "^5.0.8", + "vite": "^5.0.10", "vite-plugin-imagemin": "^0.6.1", "vite-tsconfig-paths": "^4.2.2" }, diff --git a/interface/src/SignIn.tsx b/interface/src/SignIn.tsx index 116c1b1eb..72bd4b86a 100644 --- a/interface/src/SignIn.tsx +++ b/interface/src/SignIn.tsx @@ -22,6 +22,7 @@ import ITflag from 'i18n/IT.svg'; import NLflag from 'i18n/NL.svg'; import NOflag from 'i18n/NO.svg'; import PLflag from 'i18n/PL.svg'; +import SKflag from 'i18n/SK.svg'; import SVflag from 'i18n/SV.svg'; import TRflag from 'i18n/TR.svg'; import { I18nContext } from 'i18n/i18n-react'; @@ -150,6 +151,10 @@ const SignIn: FC = () => {  TR + + +  SK + diff --git a/interface/src/components/layout/LayoutAuthMenu.tsx b/interface/src/components/layout/LayoutAuthMenu.tsx index e9bbdaf6f..0673300d3 100644 --- a/interface/src/components/layout/LayoutAuthMenu.tsx +++ b/interface/src/components/layout/LayoutAuthMenu.tsx @@ -14,11 +14,9 @@ import { } from '@mui/material'; import { useState, useContext } from 'react'; import type { TypographyProps } from '@mui/material'; - import type { Locales } from 'i18n/i18n-types'; import type { FC, ChangeEventHandler } from 'react'; import { AuthenticatedContext } from 'contexts/authentication'; - import DEflag from 'i18n/DE.svg'; import FRflag from 'i18n/FR.svg'; import GBflag from 'i18n/GB.svg'; @@ -26,8 +24,10 @@ import ITflag from 'i18n/IT.svg'; import NLflag from 'i18n/NL.svg'; import NOflag from 'i18n/NO.svg'; import PLflag from 'i18n/PL.svg'; +import SKflag from 'i18n/SK.svg'; import SVflag from 'i18n/SV.svg'; import TRflag from 'i18n/TR.svg'; + import { I18nContext } from 'i18n/i18n-react'; import { loadLocaleAsync } from 'i18n/i18n-util.async'; @@ -110,6 +110,10 @@ const LayoutAuthMenu: FC = () => {  TR + + +  SK + diff --git a/interface/src/i18n/sk/index.ts b/interface/src/i18n/sk/index.ts new file mode 100644 index 000000000..3c8eaf8f7 --- /dev/null +++ b/interface/src/i18n/sk/index.ts @@ -0,0 +1,337 @@ +import type { Translation } from '../i18n-types'; +/* prettier-ignore */ +/* eslint-disable */ + +const sk: Translation = { + LANGUAGE: 'Jazyk', + RETRY: 'Opakovať', + LOADING: 'Načítanie', + IS_REQUIRED: '{0} je požadovaných', + SIGN_IN: 'Prihlásiť sa', + SIGN_OUT: 'Odhlásiť sa', + USERNAME: 'Užívateľské meno', + PASSWORD: 'Heslo', + SU_PASSWORD: 'su heslo', + DASHBOARD: 'Panel', + SETTINGS_OF: '{0} Nastavenia', + HELP_OF: '{0} Pomoc', + LOGGED_IN: 'Prihlásený ako {name}', + PLEASE_SIGNIN: 'Ak chcete pokračovať, prihláste sa', + UPLOAD_SUCCESSFUL: 'Nahratie úspešné', + DOWNLOAD_SUCCESSFUL: 'Stiahnutie úspešné', + INVALID_LOGIN: 'Nesprávne prihlasovacie údaje', + NETWORK: 'Sieť', + SECURITY: 'Zabezpečenie', + ONOFF_CAP: 'ZAP/VYP', + ONOFF: 'zap/vyp', + TYPE: 'Typ', + DESCRIPTION: 'Popis', + ENTITIES: 'Entity', + REFRESH: 'Obnoviť', + EXPORT: 'Export', + DEVICE_DETAILS: 'Detaily zariadenia', + ID_OF: '{0} ID', + DEVICE: 'Zariadenie', + PRODUCT: 'Produkt', + VERSION: 'Verzia', + BRAND: 'Značka', + ENTITY_NAME: 'Názov entity', + VALUE: '{{Value|value}}', + DEVICE_DATA: 'Dáta zariadenia', + SENSOR_DATA: 'Dáta snímača', + DEVICES: 'Zariadenia', + SENSORS: 'Snímače', + RUN_COMMAND: 'Volať príkaz', + CHANGE_VALUE: 'Zmena hodnoty', + CANCEL: 'Zrušiť', + RESET: 'Reset', + APPLY_CHANGES: 'Aplikovať zmeny ({0})', + UPDATE: 'Aktualizovať', + EXECUTE: 'Spustiť', + REMOVE: 'Odstrániť', + PROBLEM_UPDATING: 'Problém s aktualizáciou', + PROBLEM_LOADING: 'Problém s načítaním', + ANALOG_SENSOR: 'Analógový snímač', + ANALOG_SENSORS: 'Analógové snímače', + SETTINGS: 'Nastavenia', + UPDATED_OF: '{0} aktualizovaných', + UPDATE_OF: '{0} aktualizované', + REMOVED_OF: '{0} odstránených', + DELETION_OF: '{0} zmazaných', + OFFSET: 'Ofset', + FACTOR: 'Faktor', + FREQ: 'Frekvencia', + DUTY_CYCLE: 'Duty Cycle', + UNIT: 'UoM', + STARTVALUE: 'Počiatočná hodnota', + WARN_GPIO: 'Upozornenie: Buďte opatrní pri priraďovaní GPIO!', + EDIT: 'Editovať', + SENSOR: 'Snímač', + TEMP_SENSOR: 'Snímač teploty', + TEMP_SENSORS: 'Snímače teploty', + WRITE_CMD_SENT: 'Príkaz zápisu bol odoslaný', + EMS_BUS_WARNING: 'Zbernica EMS odpojená. Ak toto upozornenie pretrváva aj po niekoľkých sekundách, skontrolujte nastavenia a profil dosky', + EMS_BUS_SCANNING: 'Zisťovanie EMS zariadení...', + CONNECTED: 'Pripojené', + TX_ISSUES: 'Problémy s Tx – skontrolujte Tx režim', + DISCONNECTED: 'Odpojené', + EMS_SCAN: 'Naozaj chcete spustiť úplnú kontrolu zariadenia zbernice EMS?', + EMS_BUS_STATUS: 'Stav zbernice EMS', + ACTIVE_DEVICES: 'Aktívne zariadenia a snímače', + EMS_DEVICE: 'EMS zariadenie', + SUCCESS: 'ÚSPEŠNÉ', + FAIL: 'ZLYHANIE', + QUALITY: 'KVALITA', + SCAN_DEVICES: 'Scan pre nové zariadenia', + EMS_BUS_STATUS_TITLE: 'EMS zbernica & stav aktivity', + SCAN: 'Scan', + STATUS_NAMES: [ + 'EMS Telegramy prijaté (Rx)', + 'EMS Čítania (Tx)', + 'EMS Zápisy (Tx)', + 'Čítanie snímača teploty', + 'Analógové snímanie', + 'MQTT Publikovanie', + 'API volania', + 'Syslog správy' + ], + NUM_DEVICES: '{num} Zariadenia{{s}}', + NUM_TEMP_SENSORS: '{num} Teplotné snímače{{s}}', + NUM_ANALOG_SENSORS: '{num} Analógové snímače{{s}}', + NUM_DAYS: '{num} dní{{s}}', + NUM_SECONDS: '{num} sekúnd{{s}}', + NUM_HOURS: '{num} hodín{{s}}', + NUM_MINUTES: '{num} minút{{s}}', + APPLICATION_SETTINGS: 'Nastavenia aplikácie', + CUSTOMIZATIONS: 'Prispôsobenia', + APPLICATION_RESTARTING: 'EMS-ESP sa reštartuje', + INTERFACE_BOARD_PROFILE: 'Profil boardu rozhrania', + BOARD_PROFILE_TEXT: 'Vyberte vopred nakonfigurovaný profil dosky rozhrania zo zoznamu nižšie alebo vyberte možnosť Vlastné a nakonfigurujte svoje vlastné hardvérové nastavenia', + BOARD_PROFILE: 'Board profil', + CUSTOM: 'Vlastné', + GPIO_OF: '{0} GPIO', + BUTTON: 'Tlačidlo', + TEMPERATURE: 'Teplota', + PHY_TYPE: 'Eth PHY Typ', + DISABLED: 'zakázané', + TX_MODE: 'Tx režim', + HARDWARE: 'Hardware', + EMS_BUS: '{{BUS|EMS BUS}}', + GENERAL_OPTIONS: 'Všeobecné možnosti', + LANGUAGE_ENTITIES: 'Jazyk (pre entity zariadenia)', + HIDE_LED: 'Skryť LED', + ENABLE_TELNET: 'Povoliť Telnet konzolu', + ENABLE_ANALOG: 'Povoliť analógové snímače', + CONVERT_FAHRENHEIT: 'Previesť hodnoty teploty na fahrenheity', + BYPASS_TOKEN: 'Vynechajte autorizáciu prístupového tokenu pri volaniach API', + READONLY: 'Povoliť režim len na čítanie (blokuje všetky odchádzajúce príkazy EMS Tx Write)', + UNDERCLOCK_CPU: 'Podtaktovanie rýchlosti procesora', + HEATINGOFF: 'Spustite kotol s núteným vykurovaním', + ENABLE_SHOWER_TIMER: 'Povoliť časovač sprchovania', + ENABLE_SHOWER_ALERT: 'Povoliť upozornenie na sprchu', + TRIGGER_TIME: 'Čas spustenia', + COLD_SHOT_DURATION: 'Trvanie studeného záberu', + FORMATTING_OPTIONS: 'Možnosti formátovania', + BOOLEAN_FORMAT_DASHBOARD: 'Panel Boolean formát', + BOOLEAN_FORMAT_API: 'Boolean formát API/MQTT', + ENUM_FORMAT: 'Enum formát API/MQTT', + INDEX: 'Index', + ENABLE_PARASITE: 'Povolenie parazitného napájania', + LOGGING: 'Logovanie', + LOG_HEX: 'Záznam telegramov EMS v hexadecimálnej sústave', + ENABLE_SYSLOG: 'Povoliť Syslog', + LOG_LEVEL: 'Log úroveň', + MARK_INTERVAL: 'Označenie intervalu', + SECONDS: 'sekundy', + MINUTES: 'minúty', + HOURS: 'hodiny', + RESTART: 'Reštart', + RESTART_TEXT: 'EMS-ESP sa musí reštartovať, aby sa použili zmenené systémové nastavenia', + RESTART_CONFIRM: 'Ste si istí, že chcete reštartovať EMS-ESP?', + COMMAND: 'Príkaz', + CUSTOMIZATIONS_RESTART: 'Ste si istí, že chcete reštartovať EMS-ESP?', + CUSTOMIZATIONS_FULL: 'Vybrané subjekty prekročili limit. Prosím, ukladajte v dávkach', + CUSTOMIZATIONS_SAVED: 'Uložené prispôsobenia', + CUSTOMIZATIONS_HELP_1: 'Vyberte zariadenie a prispôsobte možnosti entít alebo kliknutím premenujte', + CUSTOMIZATIONS_HELP_2: 'označiť ako obľúbené', + CUSTOMIZATIONS_HELP_3: 'zakázať akciu zápisu', + CUSTOMIZATIONS_HELP_4: 'vylúčiť z MQTT a API', + CUSTOMIZATIONS_HELP_5: 'skryť z panela', + CUSTOMIZATIONS_HELP_6: 'odstrániť z pamäte', + SELECT_DEVICE: 'Zvoliť zariadenie', + SET_ALL: 'nastaviť všetko', + OPTIONS: 'Možnosti', + NAME: 'Názov', + CUSTOMIZATIONS_RESET: 'Naozaj chcete odstrániť všetky prispôsobenia vrátane vlastných nastavení snímačov teploty a analógových snímačov?', + DEVICE_ENTITIES: 'Entity zariadenia', + SUPPORT_INFORMATION: 'Informácie o podpore', + CLICK_HERE: 'Kliknite tu', + HELP_INFORMATION_1: 'Navštívte online wiki, kde nájdete pokyny na konfiguráciu EMS-ESP', + HELP_INFORMATION_2: 'Pre živý komunitný chat sa pripojte na náš Discord server', + HELP_INFORMATION_3: 'Ak chcete požiadať o funkciu alebo nahlásiť chybu', + HELP_INFORMATION_4: 'nezabudnite si stiahnuť a pripojiť informácie o vašom systéme, aby ste mohli rýchlejšie reagovať pri nahlasovaní problému', + HELP_INFORMATION_5: 'EMS-ESP je bezplatný a open source projekt. Podporte jeho budúci vývoj tým, že mu dáte hviezdičku na Github!', + UPLOAD: 'Nahrať', + DOWNLOAD: '{{S|s|s}}tiahnuť', + ABORTED: 'zrušené', + FAILED: 'chybné', + SUCCESSFUL: 'úspešné', + SYSTEM: 'Systém', + LOG_OF: '{0} Log', + STATUS_OF: '{0} Stav', + UPLOAD_DOWNLOAD: 'Nahrať/Stiahnuť', + VERSION_ON: 'Momentálne ste vo verzii', + SYSTEM_APPLY_FIRMWARE: 'na použitie nového firmvéru', + CLOSE: 'Zatvoriť', + USE: 'Použiť', + FACTORY_RESET: 'Továrenské nastavenia', + SYSTEM_FACTORY_TEXT: 'Zariadenie bolo obnovené z výroby a teraz sa reštartuje', + SYSTEM_FACTORY_TEXT_DIALOG: 'Naozaj chcete resetovať EMS-ESP na predvolené výrobné nastavenia?', + VERSION_CHECK: 'Kontrola verzie', + THE_LATEST: 'Posledná', + OFFICIAL: 'officiálna', + DEVELOPMENT: 'vývojárska', + RELEASE_IS: 'vydanie je', + RELEASE_NOTES: 'poznámky k vydaniu', + EMS_ESP_VER: 'EMS-ESP verzia', + PLATFORM: 'Zariadenie (Platforma / SDK)', + UPTIME: 'Beh systému', + CPU_FREQ: 'CPU frekvencia', + HEAP: 'Zásobník (voľné / max pridelenie)', + PSRAM: 'PSRAM (Veľkosť / Voľné)', + FLASH: 'Flash chip (Veľkosť / Rýchlosť)', + APPSIZE: 'Applikácia (Použité / Voľné)', + FILESYSTEM: 'Súborový systém (Použité / Voľné)', + BUFFER_SIZE: 'Maximálna veľkosť vyrovnávacej pamäte', + COMPACT: 'Kompaktné', + ENABLE_OTA: 'Povoliť OTA aktualizácie', + DOWNLOAD_CUSTOMIZATION_TEXT: 'Stiahnutie prispôsobení entity', + DOWNLOAD_SCHEDULE_TEXT: 'Stiahnutie plánovača udalostí', + DOWNLOAD_SETTINGS_TEXT: 'Stiahnite si nastavenia aplikácie. Pri zdieľaní nastavení buďte opatrní, pretože tento súbor obsahuje heslá a iné citlivé systémové informácie.', + UPLOAD_TEXT: 'Najskôr nahrajte nový súbor firmvéru (.bin), nastavenia alebo prispôsobenia (.json), pre voliteľné overenie nahrajte súbor (.md5)', + UPLOADING: 'Nahrávanie', + UPLOAD_DROP_TEXT: 'Zahodiť súbor alebo kliknúť sem', + ERROR: 'Neočakávaná chyba, prosím skúste to znova', + TIME_SET: 'Nastavený čas', + MANAGE_USERS: 'Správa používateľov', + IS_ADMIN: 'je Admin', + USER_WARNING: 'Musíte mať nakonfigurovaného aspoň jedného používateľa administrátora', + ADD: 'Pridať', + ACCESS_TOKEN_FOR: 'Prístupový token pre', + ACCESS_TOKEN_TEXT: 'Nižšie uvedený token sa používa pri volaniach REST API, ktoré vyžadujú autorizáciu. Môže byť odovzdaný buď ako token Bearer v hlavičke Authorization (Autorizácia), alebo v parametri dotazu URL access_token.', + GENERATING_TOKEN: 'Generovanie tokenu', + USER: 'Užívateľ', + MODIFY: 'Upraviť', + SU_TEXT: 'Heslo su (superužívateľ) sa používa na podpisovanie autentifikačných tokenov a tiež na povolenie oprávnení správcu v rámci konzoly.', + NOT_ENABLED: 'Nie je povolené', + ERRORS_OF: '{0} errory', + DISCONNECT_REASON: 'Dôvod odpojenia', + ENABLE_MQTT: 'Povoliť MQTT', + BROKER: 'Broker', + CLIENT: 'Klient', + BASE_TOPIC: 'Base', + OPTIONAL: 'voliteľné', + FORMATTING: 'Formátovanie', + MQTT_FORMAT: 'Formát témy/záťaže', + MQTT_NEST_1: 'Vnorené do jednej témy', + MQTT_NEST_2: 'Ako jednotlivé témy', + MQTT_RESPONSE: 'Publikovanie výstupu príkazu do témy `response`', + MQTT_PUBLISH_TEXT_1: 'Zverejňovanie tém jednotlivých hodnôt pri zmene', + MQTT_PUBLISH_TEXT_2: 'Publikovanie do tém príkazov (ioBroker)', + MQTT_PUBLISH_TEXT_3: 'Povolenie zisťovania MQTT', + MQTT_PUBLISH_TEXT_4: 'Predpona tém Discovery', + MQTT_PUBLISH_TEXT_5: 'Typ zistenia', + MQTT_PUBLISH_INTERVALS: 'Intervaly zverejňovania', + MQTT_INT_BOILER: 'Kotly a tepelné čerpadlá', + MQTT_INT_THERMOSTATS: 'Termostaty', + MQTT_INT_SOLAR: 'Solárne moduly', + MQTT_INT_MIXER: 'Zmiešavacie moduley', + MQTT_QUEUE: 'Fronta MQTT', + DEFAULT: 'Predvolené', + MQTT_ENTITY_FORMAT: 'ID formát entity', + MQTT_ENTITY_FORMAT_0: 'Jedna inštancia, dlhý názov (v3.4)', + MQTT_ENTITY_FORMAT_1: 'Jedna inštancia, krátky názov', + MQTT_ENTITY_FORMAT_2: 'Viacero inštancií, krátky názov', + MQTT_CLEAN_SESSION: 'Nastavenie čistej relácie', + MQTT_RETAIN_FLAG: 'Vždy nastaviť príznak Retain', + INACTIVE: 'Neaktívne', + ACTIVE: 'Aktívne', + UNKNOWN: 'Neznáme', + SET_TIME: 'Nastavený čas', + SET_TIME_TEXT: 'Na nastavenie času zadajte miestny dátum a čas nižšie', + LOCAL_TIME: 'Lokálny čas', + UTC_TIME: 'UTC čas', + ENABLE_NTP: 'Povoliť NTP', + NTP_SERVER: 'NTP Server', + TIME_ZONE: 'Časová zóna', + ACCESS_POINT: 'Prístupový bod', + AP_PROVIDE: 'Povoliť prístupový bod', + AP_PROVIDE_TEXT_1: 'vždy', + AP_PROVIDE_TEXT_2: 'keď WiFi je odpojená', + AP_PROVIDE_TEXT_3: 'nikdy', + AP_PREFERRED_CHANNEL: 'Preferovaný kanál', + AP_HIDE_SSID: 'Skryť SSID', + AP_CLIENTS: 'AP klienti', + AP_MAX_CLIENTS: 'Max klientov', + AP_LOCAL_IP: 'Lokálna IP', + NETWORK_SCAN: 'Scan WiFi siete', + IDLE: 'Nečinné', + LOST: 'Stratené', + SCANNING: 'Scanovanie', + SCAN_AGAIN: 'Scanovať znova', + NETWORK_SCANNER: 'Sieťový scanner', + NETWORK_NO_WIFI: 'WiFi siete nenájdené', + NETWORK_BLANK_SSID: 'nechajte prázdne, ak chcete zakázať WiFi a povoliť ETH', + NETWORK_BLANK_BSSID: 'ponechajte prázdne, ak chcete používať iba SSID', + TX_POWER: 'Tx výkon', + HOSTNAME: 'Hostname', + NETWORK_DISABLE_SLEEP: 'Zakázanie režimu spánku WiFi', + NETWORK_LOW_BAND: 'Používanie menšej šírky pásma WiFi', + NETWORK_USE_DNS: 'Povoliť mDNS službu', + NETWORK_ENABLE_CORS: 'Povoliť CORS', + NETWORK_CORS_ORIGIN: 'CORS origin', + NETWORK_ENABLE_IPV6: 'Povoliť podporu IPv6', + NETWORK_FIXED_IP: 'Použiť fixnú IP adresu', + NETWORK_GATEWAY: 'Brána', + NETWORK_SUBNET: 'Maska podsiete', + NETWORK_DNS: 'DNS servery', + ADDRESS_OF: '{0} adries', + ADMIN: 'Admin', + GUEST: 'Hosť', + NEW: 'Nová', + NEW_NAME_OF: 'Nových {0} názvov', + ENTITY: 'entita', + MIN: 'min', + MAX: 'max', + BLOCK_NAVIGATE_1: 'Máte neuložené zmeny', + BLOCK_NAVIGATE_2: 'Ak prejdete na inú stránku, neuložené zmeny sa stratia. Ste si istí, že chcete opustiť túto stránku?', + STAY: 'Zostať', + LEAVE: 'Opustiť', + SCHEDULER: 'Plánovač', + SCHEDULER_HELP_1: 'Automatizujte príkazy pridaním naplánovaných udalostí nižšie. Nastavte jedinečné meno na aktiváciu/deaktiváciu cez API/MQTT.', + SCHEDULER_HELP_2: 'Použite 00:00 na jednorazové spustenie pri štarte', + SCHEDULE: 'Plánovať', + TIME: 'Čas', + TIMER: 'Časovač', + SCHEDULE_UPDATED: 'Plánovanie aktualizované', + SCHEDULE_TIMER_1: 'pri spustení', + SCHEDULE_TIMER_2: 'každú minútu', + SCHEDULE_TIMER_3: 'každú hodinu', + CUSTOM_ENTITIES: 'Vlastné entity', + ENTITIES_HELP_1: 'Získavanie vlastných entít zo zbernice EMS', + ENTITIES_UPDATED: 'Aktualizované entity', + WRITEABLE: 'Zapísateľný', + SHOWING: 'Zobrazenie', + SEARCH: 'Vyhľadať', + CERT: 'Koreňový certifikát TLS (ak chcete vypnúť TLS, nechajte prázdne)', + ENABLE_TLS: 'Povoliť TLS', + ON: 'Zap', + OFF: 'Vyp', + POLARITY: 'Polarita', + ACTIVEHIGH: 'Aktívny Vysoký', + ACTIVELOW: 'Aktívny Nízky', + UNCHANGED: 'Nezmenené', + ALWAYS: 'Vždy' +}; + +export default sk; diff --git a/interface/src/project/SettingsApplication.tsx b/interface/src/project/SettingsApplication.tsx index 1f145af17..94912b32b 100644 --- a/interface/src/project/SettingsApplication.tsx +++ b/interface/src/project/SettingsApplication.tsx @@ -386,6 +386,7 @@ const SettingsApplication: FC = () => { Polski (PL) Svenska (SV) Türk (TR) + Slovenčina (SK) {data.led_gpio !== 0 && ( diff --git a/interface/yarn.lock b/interface/yarn.lock index 398cbaeda..206c629b8 100644 --- a/interface/yarn.lock +++ b/interface/yarn.lock @@ -12,10 +12,10 @@ __metadata: languageName: node linkType: hard -"@alova/adapter-xhr@npm:^1.0.1": - version: 1.0.1 - resolution: "@alova/adapter-xhr@npm:1.0.1" - checksum: 10fb023fd30408bf47433491679057458c599194040077d30c8427531b6ee4a6549bf468a7132d8ae91e99c8bdcea27dc4706b5b982033ac820f779a5016be7d +"@alova/adapter-xhr@npm:^1.0.2": + version: 1.0.2 + resolution: "@alova/adapter-xhr@npm:1.0.2" + checksum: a57d178e89e3b655191bebccbc34d22760813b97b430e16f77b6ad561e3bb4ad8a34948aa2d724f5833d675f21a337ab769a3e5f73878430c3139374c6afb6ea languageName: node linkType: hard @@ -821,10 +821,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.55.0": - version: 8.55.0 - resolution: "@eslint/js@npm:8.55.0" - checksum: 34b001a95b16501fd64f525b1de3ab0e4c252e5820b74069004934cb13977fc04ba4522a3e8f8074bd6af49da10d3444cd49fa711819f425ad73d6bf46eea82d +"@eslint/js@npm:8.56.0": + version: 8.56.0 + resolution: "@eslint/js@npm:8.56.0" + checksum: 97a4b5ccf7e24f4d205a1fb0f21cdcd610348ecf685f6798a48dd41ba443f2c1eedd3050ff5a0b8f30b8cf6501ab512aa9b76e531db15e59c9ebaa41f3162e37 languageName: node linkType: hard @@ -1262,10 +1262,10 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.13.1": - version: 1.13.1 - resolution: "@remix-run/router@npm:1.13.1" - checksum: bf1ff266744352e71fc414f983a9f7772c10ec55cf4b978d851026e6c12b39c0084f99e4e45de706b800a71889ef09f652b8e7c43e21800351cc14c5ada8c834 +"@remix-run/router@npm:1.14.0": + version: 1.14.0 + resolution: "@remix-run/router@npm:1.14.0" + checksum: cc46150f087695ba9da9aa905bcbe1d53d7e3ae4de37645c206b4bcb57a4605ebf3bdc87b9eff299562e7d68ddf80d412ac64cc60ecd2116d4aeb39cf8a0e358 languageName: node linkType: hard @@ -1583,12 +1583,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.2.17": - version: 18.2.17 - resolution: "@types/react-dom@npm:18.2.17" +"@types/react-dom@npm:^18.2.18": + version: 18.2.18 + resolution: "@types/react-dom@npm:18.2.18" dependencies: "@types/react": "npm:*" - checksum: fe0dbb3224b48515da8fe25559e3777d756a27c3f22903f0b1b020de8d68bd57eb1f0af62b52ee65d9632637950afed8cbad24d158c4f3d910d083d49bd73fba + checksum: 4ef7725b4cebd4a32e049097ddfdfd855a178e63ead97ab6d3084872e7d6c1acd71aa923488123cd1015f0e0b11489d2b44f674a1df8fe82d7827eabbec6dbf1 languageName: node linkType: hard @@ -1633,14 +1633,14 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:^18.2.43": - version: 18.2.43 - resolution: "@types/react@npm:18.2.43" +"@types/react@npm:^18.2.45": + version: 18.2.45 + resolution: "@types/react@npm:18.2.45" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: a9d90a93380bb67623f27eba83e2d05b548109f7eb6fd591f5c4a3716bc257cc7cb078455db7ea4308d5f2ff6b4fe48d9a4a560145d9384069a2b5121bc93937 + checksum: bd27fd8a959fa776965997af89cb04e43e7868416850fdff421b5539f389efa35acae3d55915c9f32d7b00fb388550302bf8a7f06010abf9ad431e5bf58cb774 languageName: node linkType: hard @@ -1809,7 +1809,7 @@ __metadata: version: 0.0.0-use.local resolution: "EMS-ESP@workspace:." dependencies: - "@alova/adapter-xhr": "npm:^1.0.1" + "@alova/adapter-xhr": "npm:^1.0.2" "@babel/core": "npm:^7.23.6" "@emotion/react": "npm:^11.11.1" "@emotion/styled": "npm:^11.11.0" @@ -1821,21 +1821,21 @@ __metadata: "@types/imagemin": "npm:^8.0.5" "@types/lodash-es": "npm:^4.17.12" "@types/node": "npm:^20.10.4" - "@types/react": "npm:^18.2.43" - "@types/react-dom": "npm:^18.2.17" + "@types/react": "npm:^18.2.45" + "@types/react-dom": "npm:^18.2.18" "@types/react-router-dom": "npm:^5.3.3" "@typescript-eslint/eslint-plugin": "npm:^6.14.0" "@typescript-eslint/parser": "npm:^6.14.0" - alova: "npm:^2.16.0" + alova: "npm:^2.16.1" async-validator: "npm:^4.2.5" concurrently: "npm:^8.2.2" - eslint: "npm:^8.55.0" + eslint: "npm:^8.56.0" eslint-config-airbnb: "npm:^19.0.4" eslint-config-airbnb-typescript: "npm:^17.1.0" eslint-config-prettier: "npm:^9.1.0" eslint-import-resolver-typescript: "npm:^3.6.1" eslint-plugin-autofix: "npm:^1.1.0" - eslint-plugin-import: "npm:^2.29.0" + eslint-plugin-import: "npm:^2.29.1" eslint-plugin-jsx-a11y: "npm:^6.8.0" eslint-plugin-prettier: "npm:alpha" eslint-plugin-react: "npm:^7.33.2" @@ -1850,14 +1850,14 @@ __metadata: react-dom: "npm:latest" react-dropzone: "npm:^14.2.3" react-icons: "npm:^4.12.0" - react-router-dom: "npm:^6.20.1" + react-router-dom: "npm:^6.21.0" react-toastify: "npm:^9.1.3" rollup-plugin-visualizer: "npm:^5.11.0" sockette: "npm:^2.0.6" terser: "npm:^5.26.0" typesafe-i18n: "npm:^5.26.2" typescript: "npm:^5.3.3" - vite: "npm:^5.0.8" + vite: "npm:^5.0.10" vite-plugin-imagemin: "npm:^0.6.1" vite-tsconfig-paths: "npm:^4.2.2" languageName: unknown @@ -1928,10 +1928,10 @@ __metadata: languageName: node linkType: hard -"alova@npm:^2.16.0": - version: 2.16.0 - resolution: "alova@npm:2.16.0" - checksum: 476aaf451c6760f46822f0e8bf834c86700ccd6e8f28b28f0381afa43a4d2bc361fa1414fe30e8494e6a5a5a49a6f744b9a59ec7f0ad179f4cf5b985a0a638ed +"alova@npm:^2.16.1": + version: 2.16.1 + resolution: "alova@npm:2.16.1" + checksum: 88f0a175ed433606ff5f564151fc92e2d16e04a04f87362cbe76c1f0c33382e49719ce48f081fe03f707c28b78200c50b933155051d9a82be1d4bfcb73f1d0f9 languageName: node linkType: hard @@ -3814,9 +3814,9 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.0": - version: 2.29.0 - resolution: "eslint-plugin-import@npm:2.29.0" +"eslint-plugin-import@npm:^2.29.1": + version: 2.29.1 + resolution: "eslint-plugin-import@npm:2.29.1" dependencies: array-includes: "npm:^3.1.7" array.prototype.findlastindex: "npm:^1.2.3" @@ -3834,10 +3834,10 @@ __metadata: object.groupby: "npm:^1.0.1" object.values: "npm:^1.1.7" semver: "npm:^6.3.1" - tsconfig-paths: "npm:^3.14.2" + tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: d6e8d016f38369892c85b866f762c03dee2b337d4f12031756e30d7490879261d1192a3c2f682fd7c4d2b923465f7a1e3d22cfdad5da1b1391c3bd39ea87af1a + checksum: 5865f05c38552145423c535326ec9a7113ab2305c7614c8b896ff905cfabc859c8805cac21e979c9f6f742afa333e6f62f812eabf891a7e8f5f0b853a32593c1 languageName: node linkType: hard @@ -3945,14 +3945,14 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^8.55.0": - version: 8.55.0 - resolution: "eslint@npm:8.55.0" +"eslint@npm:^8.56.0": + version: 8.56.0 + resolution: "eslint@npm:8.56.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.55.0" + "@eslint/js": "npm:8.56.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -3989,7 +3989,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: afd016cfbe9e9d667b3f98c14c681a7e518808f6c30856e56cbb02248900eac5bf6dc5e577a7eaec259539486db48ef7d16ef58fb14b1585ba7c84b35490c53c + checksum: ef6193c6e4cef20774b985a5cc2fd4bf6d3c4decd423117cbc4a0196617861745db291217ad3c537bc3a160650cca965bc818f55e1f3e446af1fcb293f9940a5 languageName: node linkType: hard @@ -7130,27 +7130,27 @@ __metadata: languageName: node linkType: hard -"react-router-dom@npm:^6.20.1": - version: 6.20.1 - resolution: "react-router-dom@npm:6.20.1" +"react-router-dom@npm:^6.21.0": + version: 6.21.0 + resolution: "react-router-dom@npm:6.21.0" dependencies: - "@remix-run/router": "npm:1.13.1" - react-router: "npm:6.20.1" + "@remix-run/router": "npm:1.14.0" + react-router: "npm:6.21.0" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 27efb05af0025bdcd7ecc85d2df2f53ca90bbf4db1dd4319002714b5be4e23c9434f95932d79f14a42d7c347ca882e9a0bba74a4d6331de8f7fb527c21f3f069 + checksum: 7448674817971c8138a96cef05331fb45cb6ef1f71450db9da87e3e0d0586bb55ba85fd3ca741ed7a22a40b6b6e544c11cff9e2fe3fa5957faf7b8ab74a0dcf3 languageName: node linkType: hard -"react-router@npm:6.20.1": - version: 6.20.1 - resolution: "react-router@npm:6.20.1" +"react-router@npm:6.21.0": + version: 6.21.0 + resolution: "react-router@npm:6.21.0" dependencies: - "@remix-run/router": "npm:1.13.1" + "@remix-run/router": "npm:1.14.0" peerDependencies: react: ">=16.8" - checksum: 96c25c8ca782dfa5b501540b9a491d8dca67c829a90fda237238a22881c695226fd5bbe14fcb2793bd5877aec2514d932c3293bf1f2463606fb3f2326628d766 + checksum: 10c58589d804b823caf3fd46403662769375618ae39ebae99f8df167c43440bb8ebf853548ba2bf96f21027c72c234d4fc37042643c91c9920f1cdfda5e03fab languageName: node linkType: hard @@ -8363,15 +8363,15 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.2": - version: 3.14.2 - resolution: "tsconfig-paths@npm:3.14.2" +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" dependencies: "@types/json5": "npm:^0.0.29" json5: "npm:^1.0.2" minimist: "npm:^1.2.6" strip-bom: "npm:^3.0.0" - checksum: 17f23e98612a60cf23b80dc1d3b7b840879e41fcf603868fc3618a30f061ac7b463ef98cad8c28b68733b9bfe0cc40ffa2bcf29e94cf0d26e4f6addf7ac8527d + checksum: 2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 languageName: node linkType: hard @@ -8676,9 +8676,9 @@ __metadata: languageName: node linkType: hard -"vite@npm:^5.0.8": - version: 5.0.8 - resolution: "vite@npm:5.0.8" +"vite@npm:^5.0.10": + version: 5.0.10 + resolution: "vite@npm:5.0.10" dependencies: esbuild: "npm:^0.19.3" fsevents: "npm:~2.3.3" @@ -8712,7 +8712,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: ea36e34fa45401d8e29317c3355f4d7081df09b412578bd7b6a26d44bccace9d130625f7f317a3cbc20ad2aadc5881d01d1508e8d9e36060ae44d974f505dd7e + checksum: 5421e9c7f8cf3152eace9a8b528269141635f367e5dc63c5f1fe2712a766d9757f8197733cf3f28be590afdd520130d38de90c955e6dba6edfa6f9056c1e5ea7 languageName: node linkType: hard diff --git a/src/locale_translations.h b/src/locale_translations.h index f4e4f7b66..3e6b11254 100644 --- a/src/locale_translations.h +++ b/src/locale_translations.h @@ -29,8 +29,9 @@ #define EMSESP_LOCALE_FR "fr" #define EMSESP_LOCALE_TR "tr" #define EMSESP_LOCALE_IT "it" +#define EMSESP_LOCALE_SK "sk" -// IMPORTANT! translations are in the order:,en, de, nl, sv, pl, no, fr, tr, it +// IMPORTANT! translations are in the order:,en, de, nl, sv, pl, no, fr, tr, it, sk // // if there is no translation, it will default to en // diff --git a/src/system.cpp b/src/system.cpp index 6677c5ff6..7ac9f82a0 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -64,7 +64,8 @@ const char * const languages[] = {EMSESP_LOCALE_EN, EMSESP_LOCALE_NO, EMSESP_LOCALE_FR, EMSESP_LOCALE_TR, - EMSESP_LOCALE_IT}; + EMSESP_LOCALE_IT, + EMSESP_LOCALE_SK}; #endif static constexpr uint8_t NUM_LANGUAGES = sizeof(languages) / sizeof(const char *); diff --git a/src/version.h b/src/version.h index 98c9132ab..39c83445d 100644 --- a/src/version.h +++ b/src/version.h @@ -1 +1 @@ -#define EMSESP_APP_VERSION "3.6.5-dev.4" +#define EMSESP_APP_VERSION "3.6.5-dev.5"