From 67298f67ef7e8ff1d58a28e87f202992d29f1275 Mon Sep 17 00:00:00 2001 From: David Kebler Date: Wed, 8 Apr 2020 08:50:47 -0700 Subject: [PATCH] added hacs --- custom_components/hacs/.translations/da.json | 191 ++++++++++++++ custom_components/hacs/.translations/de.json | 199 +++++++++++++++ custom_components/hacs/.translations/el.json | 186 ++++++++++++++ custom_components/hacs/.translations/en.json | 236 +++++++++++++++--- custom_components/hacs/.translations/es.json | 198 +++++++++++++++ custom_components/hacs/.translations/fr.json | 198 +++++++++++++++ custom_components/hacs/.translations/hu.json | 194 ++++++++++++++ custom_components/hacs/.translations/it.json | 198 +++++++++++++++ custom_components/hacs/.translations/nb.json | 197 +++++++++++++++ custom_components/hacs/.translations/nl.json | 197 +++++++++++++++ custom_components/hacs/.translations/nn.json | 198 +++++++++++++++ custom_components/hacs/.translations/pl.json | 198 +++++++++++++++ .../hacs/.translations/pt-BR.json | 182 ++++++++++++++ custom_components/hacs/.translations/ro.json | 176 +++++++++++++ custom_components/hacs/.translations/ru.json | 193 ++++++++++++++ custom_components/hacs/.translations/sl.json | 198 +++++++++++++++ custom_components/hacs/.translations/sv.json | 188 ++++++++++++++ .../hacs/.translations/zh-Hans.json | 198 +++++++++++++++ custom_components/hacs/__init__.py | 3 + .../hacs/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 6129 bytes .../__pycache__/config_flow.cpython-37.pyc | Bin 0 -> 4016 bytes .../configuration_schema.cpython-37.pyc | Bin 0 -> 1874 bytes .../hacs/__pycache__/const.cpython-37.pyc | Bin 0 -> 3235 bytes .../__pycache__/constrains.cpython-37.pyc | Bin 0 -> 2425 bytes .../hacs/__pycache__/globals.cpython-37.pyc | Bin 0 -> 1089 bytes .../hacs/__pycache__/http.cpython-37.pyc | Bin 0 -> 2895 bytes .../hacs/__pycache__/sensor.cpython-37.pyc | Bin 0 -> 3197 bytes .../hacs/__pycache__/setup.cpython-37.pyc | Bin 0 -> 3130 bytes .../hacs/__pycache__/store.cpython-37.pyc | Bin 0 -> 909 bytes .../ws_api_handlers.cpython-37.pyc | Bin 0 -> 8698 bytes custom_components/hacs/config_flow.py | 2 +- .../hacs/configuration_schema.py | 13 +- custom_components/hacs/const.py | 2 +- .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 10796 bytes .../__pycache__/backup.cpython-37.pyc | Bin 0 -> 3631 bytes .../__pycache__/configuration.cpython-37.pyc | Bin 0 -> 2409 bytes .../hacsbase/__pycache__/const.cpython-37.pyc | Bin 0 -> 530 bytes .../hacsbase/__pycache__/data.cpython-37.pyc | Bin 0 -> 4265 bytes .../__pycache__/exceptions.cpython-37.pyc | Bin 0 -> 546 bytes .../__pycache__/task_factory.cpython-37.pyc | Bin 0 -> 2564 bytes custom_components/hacs/hacsbase/backup.py | 45 ++++ .../hacs/hacsbase/configuration.py | 2 + .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 169 bytes .../__pycache__/download.cpython-37.pyc | Bin 0 -> 2115 bytes .../__pycache__/template.cpython-37.pyc | Bin 0 -> 849 bytes .../__pycache__/download.cpython-37.pyc | Bin 0 -> 4121 bytes .../__pycache__/filters.cpython-37.pyc | Bin 0 -> 1274 bytes .../__pycache__/get_defaults.cpython-37.pyc | Bin 0 -> 1399 bytes .../__pycache__/information.cpython-37.pyc | Bin 0 -> 5163 bytes .../__pycache__/install.cpython-37.pyc | Bin 0 -> 3194 bytes .../helpers/__pycache__/misc.cpython-37.pyc | Bin 0 -> 980 bytes .../__pycache__/network.cpython-37.pyc | Bin 0 -> 431 bytes .../register_repository.cpython-37.pyc | Bin 0 -> 1455 bytes .../validate_repository.cpython-37.pyc | Bin 0 -> 2498 bytes custom_components/hacs/helpers/download.py | 3 +- custom_components/hacs/helpers/information.py | 7 +- custom_components/hacs/helpers/install.py | 16 +- custom_components/hacs/helpers/network.py | 20 +- custom_components/hacs/manifest.json | 4 +- .../hacs/repositories/__init__.py | 2 + .../__pycache__/__init__.cpython-37.pyc | Bin 0 -> 796 bytes .../__pycache__/appdaemon.cpython-37.pyc | Bin 0 -> 2631 bytes .../__pycache__/integration.cpython-37.pyc | Bin 0 -> 3217 bytes .../__pycache__/manifest.cpython-37.pyc | Bin 0 -> 1366 bytes .../__pycache__/netdaemon.cpython-37.pyc | Bin 0 -> 2650 bytes .../__pycache__/plugin.cpython-37.pyc | Bin 0 -> 3095 bytes .../__pycache__/python_script.cpython-37.pyc | Bin 0 -> 2440 bytes .../__pycache__/removed.cpython-37.pyc | Bin 0 -> 829 bytes .../__pycache__/repository.cpython-37.pyc | Bin 0 -> 11706 bytes .../__pycache__/repositorydata.cpython-37.pyc | Bin 0 -> 2578 bytes .../__pycache__/theme.cpython-37.pyc | Bin 0 -> 2335 bytes .../hacs/repositories/netdaemon.py | 90 +++++++ .../hacs/repositories/repositorydata.py | 2 +- custom_components/hacs/sensor.py | 5 +- 74 files changed, 3672 insertions(+), 69 deletions(-) create mode 100644 custom_components/hacs/.translations/da.json create mode 100644 custom_components/hacs/.translations/de.json create mode 100644 custom_components/hacs/.translations/el.json create mode 100644 custom_components/hacs/.translations/es.json create mode 100644 custom_components/hacs/.translations/fr.json create mode 100644 custom_components/hacs/.translations/hu.json create mode 100644 custom_components/hacs/.translations/it.json create mode 100644 custom_components/hacs/.translations/nb.json create mode 100644 custom_components/hacs/.translations/nl.json create mode 100644 custom_components/hacs/.translations/nn.json create mode 100644 custom_components/hacs/.translations/pl.json create mode 100644 custom_components/hacs/.translations/pt-BR.json create mode 100644 custom_components/hacs/.translations/ro.json create mode 100644 custom_components/hacs/.translations/ru.json create mode 100644 custom_components/hacs/.translations/sl.json create mode 100644 custom_components/hacs/.translations/sv.json create mode 100644 custom_components/hacs/.translations/zh-Hans.json create mode 100644 custom_components/hacs/__pycache__/__init__.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/config_flow.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/configuration_schema.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/const.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/constrains.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/globals.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/http.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/sensor.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/setup.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/store.cpython-37.pyc create mode 100644 custom_components/hacs/__pycache__/ws_api_handlers.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/__init__.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/backup.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/configuration.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/const.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/data.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/exceptions.cpython-37.pyc create mode 100644 custom_components/hacs/hacsbase/__pycache__/task_factory.cpython-37.pyc create mode 100644 custom_components/hacs/handler/__pycache__/__init__.cpython-37.pyc create mode 100644 custom_components/hacs/handler/__pycache__/download.cpython-37.pyc create mode 100644 custom_components/hacs/handler/__pycache__/template.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/download.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/filters.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/get_defaults.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/information.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/install.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/misc.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/network.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/register_repository.cpython-37.pyc create mode 100644 custom_components/hacs/helpers/__pycache__/validate_repository.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/__init__.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/appdaemon.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/integration.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/manifest.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/netdaemon.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/plugin.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/python_script.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/removed.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/repository.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/repositorydata.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/__pycache__/theme.cpython-37.pyc create mode 100644 custom_components/hacs/repositories/netdaemon.py diff --git a/custom_components/hacs/.translations/da.json b/custom_components/hacs/.translations/da.json new file mode 100644 index 0000000..8e45229 --- /dev/null +++ b/custom_components/hacs/.translations/da.json @@ -0,0 +1,191 @@ +{ + "common": { + "about": "Om", + "appdaemon_apps": "AppDaemon-apps", + "background_task": "Baggrundsopgave kører. Denne side vil genindlæses automatisk.", + "check_log_file": "Tjek din logfil for flere detaljer.", + "continue": "Fortsæt", + "disabled": "Deaktiveret", + "documentation": "Dokumentation", + "hacs_is_disabled": "HACS er deaktiveret", + "installed": "installeret", + "integration": "Integration", + "integrations": "Integrationer", + "manage": "administrer", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python-script", + "python_scripts": "Python-scripts", + "repositories": "Repositories", + "settings": "indstillinger", + "theme": "Tema", + "themes": "Temaer", + "version": "Version" + }, + "config": { + "abort": { + "single_instance_allowed": "Kun en enkelt konfiguration af HACS er tilladt." + }, + "error": { + "auth": "Personlig adgangstoken er ikke korrekt." + }, + "step": { + "user": { + "data": { + "appdaemon": "Aktiver opdagelse & sporing af AppDaemon-apps", + "python_script": "Aktivér opdagelse og sporing af python_scripts", + "sidepanel_icon": "Sidepanelikon", + "sidepanel_title": "Sidepanelets titel", + "theme": "Aktivér opdagelse og sporing af temaer", + "token": "GitHub personlig adgangstoken" + }, + "description": "Hvis du har brug for hjælp til konfigurationen, så kig her: https:\/\/hacs.xyz\/docs\/configuration\/start" + } + } + }, + "confirm": { + "add_to_lovelace": "Er du sikker på, at du vil tilføje dette til dine Lovelace-ressourcer?", + "bg_task": "Handlingen er deaktiveret, mens baggrundsopgaver kører.", + "cancel": "Annuller", + "continue": "Er du sikker på, at du vil fortsætte?", + "delete": "Er du sikker på, at du vil slette '{Item}'?", + "delete_installed": "'{item}' er installeret. Du skal afinstallere det, før du kan slette det.", + "exist": "{item} findes allerede", + "generic": "Er du sikker?", + "home_assistant_is_restarting": "Vent venligst - Home Assistant genstarter nu.", + "home_assistant_version_not_correct": "Du kører Home Assistant version '{haversion}', men dette repository kræver som minimum version '{minversion}'.", + "no": "Nej", + "no_upgrades": "Der er ingen opdateringer tilgængelig", + "ok": "OK", + "overwrite": "Dette vil overskrive den.", + "reload_data": "Dette genindlæser data fra alle repositories, som HACS kender til. Dette vil tage nogen tid at fuldføre.", + "restart_home_assistant": "Er du sikker på, at du vil genstarte Home Assistant?", + "uninstall": "Er du sikker på, at du vil afinstallere '{Item}'?", + "upgrade_all": "Dette vil opdatere alle repositories. Sørg for at du har læst udgivelsesnoterne for dem alle, inden du fortsætter.", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Aktiver opdagelse og sporing af AppDaemon-apps", + "country": "Filtrer med landekode.", + "debug": "Aktiver debug.", + "experimental": "Aktivér eksperimentelle funktioner", + "not_in_use": "Ikke i brug med YAML", + "release_limit": "Antal udgivelser, der skal vises.", + "sidepanel_icon": "Sidepanelikon", + "sidepanel_title": "Sidepanelets titel" + } + } + } + }, + "repository_banner": { + "config_flow": "Denne integration understøtter config_flow. Det betyder, at du nu kan gå til integrationssektionen i din brugerflade for at konfigurere den.", + "config_flow_title": "Brugerfladekonfiguration understøttet", + "integration_not_loaded": "Denne integration er ikke indlæst i Home Assistant.", + "no_restart_required": "Ingen genstart påkrævet", + "not_loaded": "Ikke indlæst", + "plugin_not_loaded": "Dette plugin er ikke føjet til dine Lovelace-ressourcer.", + "restart": "Du skal genstarte Home Assistant.", + "restart_pending": "Afventer genstart" + }, + "repository": { + "add_to_lovelace": "Tilføj til Lovelace", + "authors": "Forfattere", + "available": "Tilgængelig", + "back_to": "Tilbage til", + "changelog": "Udgivelsesnoter", + "downloads": "Downloads", + "flag_this": "Marker denne", + "frontend_version": "Frontend-version", + "github_stars": "GitHub-stjerner", + "goto_integrations": "Gå til integrationer", + "hide": "Skjul", + "hide_beta": "Skjul beta", + "install": "Installer", + "installed": "Installeret", + "lovelace_copy_example": "Kopiér eksemplet til din Udklipsholder", + "lovelace_instruction": "Tilføj dette til din lovelace-konfiguration", + "lovelace_no_js_type": "Kunne ikke afgøre typen af dette plugin, tjek venligst repository.", + "newest": "nyeste", + "note_appdaemon": "Du skal stadig føje den til filen 'apps.yaml'", + "note_installed": "Når det er installeret, vil dette være placeret i", + "note_integration": "du skal stadig føje den til filen 'configuration.yaml'", + "note_plugin": "du skal stadig tilføje det til din lovelace-konfiguration ('ui-lovelace.yaml' eller Tekstbaseret redigering)", + "open_issue": "Opret issue", + "open_plugin": "Åbn plugin", + "reinstall": "Geninstaller", + "repository": "Repository", + "restart_home_assistant": "Genstart Home Assistant", + "show_beta": "Vis beta", + "uninstall": "Afinstaller", + "update_information": "Opdater oplysninger", + "upgrade": "Opdater" + }, + "settings": { + "add_custom_repository": "TILFØJ ET BRUGERDEFINERET REPOSITORY", + "adding_new_repo": "Tilføjer nyt repository '{repo}'", + "adding_new_repo_category": "Med kategorien '{category}'.", + "bg_task_custom": "Brugerdefinerede repositories er skjult, mens opgaver i baggrunden kører.", + "category": "Kategori", + "compact_mode": "Kompakt tilstand", + "custom_repositories": "BRUGERDEFINEREDE REPOSITORIES", + "delete": "Slet", + "display": "Visning", + "grid": "Gitter", + "hacs_repo": "HACS-repo", + "hidden_repositories": "Skjulte repositories", + "missing_category": "Du skal vælge en kategori", + "open_repository": "Åbn repository", + "reload_data": "Genindlæs data", + "reload_window": "Genindlæs vindue", + "repository_configuration": "Konfiguration af repository", + "save": "Gem", + "table": "Tabel", + "table_view": "Tabelvisning", + "unhide": "Vis", + "upgrade_all": "Opdater alle" + }, + "store": { + "ascending": "stigende", + "clear_new": "Marker alle som set", + "descending": "faldende", + "last_updated": "Sidst opdateret", + "name": "Navn", + "new_repositories": "Nye repositories", + "pending_upgrades": "Afventende opdateringer", + "placeholder_search": "Indtast en søgeterm...", + "sort": "sorter", + "stars": "Stjerner", + "status": "Status" + }, + "time": { + "ago": "siden", + "day": "dag", + "days": "dage", + "hour": "time", + "hours": "timer", + "minute": "minut", + "minutes": "minutter", + "month": "måned", + "months": "måneder", + "one": "Et", + "one_day_ago": "en dag siden", + "one_hour_ago": "en time siden", + "one_minute_ago": "et minut siden", + "one_month_ago": "en måned siden", + "one_second_ago": "et sekund siden", + "one_year_ago": "et år siden", + "second": "sekund", + "seconds": "sekunder", + "x_days_ago": "{x} dage siden", + "x_hours_ago": "{x} timer siden", + "x_minutes_ago": "{x} minutter siden", + "x_months_ago": "{x} måneder siden", + "x_seconds_ago": "{x} sekunder siden", + "x_years_ago": "{x} år siden", + "year": "år", + "years": "år" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/de.json b/custom_components/hacs/.translations/de.json new file mode 100644 index 0000000..f96ac00 --- /dev/null +++ b/custom_components/hacs/.translations/de.json @@ -0,0 +1,199 @@ +{ + "common": { + "about": "Über", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Hintergrundprozess läuft. Diese Seite lädt neu, sobald dieser fertig ist.", + "check_log_file": "Überprüfe die Logdatei für weitere Informationen.", + "continue": "Fortfahren", + "disabled": "Deaktiviert", + "documentation": "Dokumentation", + "hacs_is_disabled": "HACS ist deaktiviert", + "installed": "Installiert", + "integration": "Integration", + "integrations": "Integrationen", + "manage": "verwalten", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python Skript", + "python_scripts": "Python Skripte", + "repositories": "Repositories", + "settings": "Einstellungen", + "theme": "Theme", + "themes": "Themes", + "version": "Version" + }, + "config": { + "abort": { + "single_instance_allowed": "Es ist nur eine einzelne HACS-Instanz erlaubt." + }, + "error": { + "auth": "Persönlicher Zugriffstoken ist falsch." + }, + "step": { + "user": { + "data": { + "appdaemon": "AppDaemon App-Entdeckung & Nachverfolgung aktivieren", + "netdaemon": "NetDaemon App-Entdeckung & Nachverfolgung aktivieren", + "python_script": "Python Script-Entdeckung & Nachverfolgung aktivieren", + "sidepanel_icon": "Sidepanel Symbol", + "sidepanel_title": "Sidepanel Titel", + "theme": "Theme-Entdeckung & Nachverfolgung aktivieren", + "token": "Persönlicher GitHub Zugriffstoken" + }, + "description": "Wenn du Hilfe mit den Einstellungen brauchst, kannst du hier nachsehen: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Möchtest du dies wirklich zu deinen Lovelace-Ressourcen hinzufügen?", + "bg_task": "Die Aktion ist deaktiviert, während Hintergrundprozesse ausgeführt werden.", + "cancel": "Abbrechen", + "continue": "Bist du dir sicher, dass du fortfahren möchtest?", + "delete": "Möchtest du '{item}' wirklich löschen?", + "delete_installed": "'{item}' ist installiert. Du musst es deinstallieren, bevor du es löschen kannst.", + "exist": "{item} existiert bereits", + "generic": "Bist du dir sicher?", + "home_assistant_is_restarting": "Bitte warte, Home Assistant wird jetzt neu gestartet.", + "home_assistant_version_not_correct": "Du benutzt die Home Assistant-Version '{haversion}', für dieses Repository muss jedoch die Mindestversion '{minversion}' installiert sein.", + "no": "Nein", + "no_upgrades": "Keine Upgrades ausstehend", + "ok": "OK", + "overwrite": "Dadurch wird die Datei überschrieben.", + "reload_data": "Hierdurch werden die Daten aller Repositories die HACS kennt neu geladen. Dies wird einige Zeit in Anspruch nehmen.", + "restart_home_assistant": "Bist du dir sicher, dass du Home Assistant neu starten möchtest?", + "uninstall": "Möchtest du '{item}' wirklich deinstallieren?", + "upgrade_all": "Hierdurch werden all diese Repositories aktualisiert. Stelle sicher, dass du die Versionshinweise vorher gelesen hast.", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "AppDaemon App-Entdeckung & Nachverfolgung aktivieren", + "country": "Nach Ländercode filtern.", + "debug": "Debug aktivieren.", + "experimental": "Experimentelle Funktionen aktivieren", + "netdaemon": "NetDaemon App-Entdeckung & Nachverfolgung aktivieren", + "not_in_use": "Nicht in Verwendung mit YAML", + "release_limit": "Anzahl anzuzeigender Releases.", + "sidepanel_icon": "Sidepanel Symbol", + "sidepanel_title": "Sidepanel Titel" + } + } + } + }, + "repository_banner": { + "config_flow": "Diese Integration unterstützt config_flow. Das bedeutet, dass du jetzt in den Integrationsbereich deiner Benutzeroberfläche wechseln kannst, um es zu konfigurieren.", + "config_flow_title": "UI-Konfiguration unterstützt", + "integration_not_loaded": "Diese Integration ist in Home Assistant nicht geladen.", + "no_restart_required": "Kein Neustart erforderlich", + "not_loaded": "Nicht geladen", + "plugin_not_loaded": "Dieses Plugin wurde deinen Lovelace-Ressourcen nicht hinzugefügt.", + "restart": "Du musst Home Assistant neu starten.", + "restart_pending": "Neustart ausstehend" + }, + "repository": { + "add_to_lovelace": "Zu Lovelace hinzufügen", + "authors": "Autoren", + "available": "Verfügbar", + "back_to": "Zurück zu", + "changelog": "Änderungsprotokoll", + "downloads": "Downloads", + "flag_this": "Melden", + "frontend_version": "Frontend Version", + "github_stars": "GitHub Sterne", + "goto_integrations": "Gehe zu Integrationen", + "hide": "Verstecken", + "hide_beta": "Beta verstecken", + "install": "Installieren", + "installed": "Installiert", + "lovelace_copy_example": "Beispiel in die Zwischenablage kopieren", + "lovelace_instruction": "Zum Hinzufügen zu deinen Lovelace-Einstellungen, benutze Folgendes", + "lovelace_no_js_type": "Konnte die Art dieses Plugins nicht erkennen. Prüfe das Repository.", + "newest": "neueste", + "note_appdaemon": "du musst es dann noch in die Datei 'apps.yaml' hinzufügen", + "note_installed": "Wird installiert nach", + "note_integration": "du musst es dann noch in die Datei 'configuration.yaml' hinzufügen", + "note_plugin": "du musst es dann noch in deine Lovelace-Einstellungen ('ui-lovelace.yaml' oder im Raw-Konfigurationseditor) hinzufügen", + "note_plugin_post_107": "Du musst es noch zu deiner Lovelace-Konfiguration hinzufügen ('configuration.yaml' oder der Ressourceneditor '\/config\/lovelace\/resources')", + "open_issue": "Problem melden", + "open_plugin": "Plugin öffnen", + "reinstall": "Neu installieren", + "repository": "Repository", + "restart_home_assistant": "Home Assistant neu starten", + "show_beta": "Beta anzeigen", + "uninstall": "Deinstallieren", + "update_information": "Aktualisierungsinformationen", + "upgrade": "Aktualisieren" + }, + "settings": { + "add_custom_repository": "BENUTZERDEFINIERTES REPOSITORY HINZUFÜGEN", + "adding_new_repo": "Hinzufügen eines neuen Repository '{repo}'", + "adding_new_repo_category": "Mit der Kategorie '{category}'.", + "bg_task_custom": "Custom Repositorys werden ausgeblendet, während Hintergrundaufgaben ausgeführt werden.", + "category": "Kategorie", + "compact_mode": "Kompakter Modus", + "custom_repositories": "BENUTZERDEFINIERTE REPOSITORIES", + "delete": "Löschen", + "display": "Anzeige", + "grid": "Gitter", + "hacs_repo": "HACS repo", + "hidden_repositories": "versteckte Repositories", + "missing_category": "Du musst eine Kategorie auswählen.", + "open_repository": "Repository öffnen", + "reload_data": "Daten neu laden", + "reload_window": "Fenster neu laden", + "repository_configuration": "Repository Konfiguration", + "save": "Speichern", + "table": "Tabelle", + "table_view": "Tabellenansicht", + "unhide": "einblenden", + "upgrade_all": "Alles aktualisieren" + }, + "store": { + "ascending": "Aufsteigend", + "clear_new": "Alle neuen Repositories als gesehen markieren", + "descending": "Absteigend", + "last_updated": "Zuletzt aktualisiert", + "name": "Name", + "new_repositories": "Neue Repositories", + "pending_upgrades": "Ausstehende Upgrades", + "placeholder_search": "Suchbegriff eingeben…", + "sort": "Sortieren", + "stars": "Sterne", + "status": "Status" + }, + "time": { + "ago": "vor", + "day": "Tag", + "days": "Tage", + "hour": "Stunde", + "hours": "Stunden", + "minute": "Minute", + "minutes": "Minuten", + "month": "Monat", + "months": "Monate", + "one": "Eins", + "one_day_ago": "vor einem Tag", + "one_hour_ago": "vor einer Stunde", + "one_minute_ago": "vor einer Minute", + "one_month_ago": "vor einem Monat", + "one_second_ago": "vor einer Sekunde", + "one_year_ago": "vor einem Jahr", + "second": "Sekunde", + "seconds": "Sekunden", + "x_days_ago": "vor {x} Tagen", + "x_hours_ago": "vor {x} Stunden", + "x_minutes_ago": "vor {x} Minuten", + "x_months_ago": "vor {x} Monaten", + "x_seconds_ago": "vor {x} Sekunden", + "x_years_ago": "vor {x} Jahren", + "year": "Jahr", + "years": "Jahre" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/el.json b/custom_components/hacs/.translations/el.json new file mode 100644 index 0000000..0d446ad --- /dev/null +++ b/custom_components/hacs/.translations/el.json @@ -0,0 +1,186 @@ +{ + "common": { + "about": "Σχετικά με", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Τρέχει μια διεργασία στο παρασκήνιο, η σελίδα θα ανανεωθεί μόλις αυτό ολοκληρωθεί.", + "check_log_file": "Ελέγξτε το αρχείο καταγραφής για περισσότερες λεπτομέρειες.", + "continue": "Να συνεχίσει", + "disabled": "Απενεργοποιημένο", + "documentation": "Τεκμηρίωση", + "hacs_is_disabled": "Το HACS είναι απενεργοποιημένο", + "installed": "εγκατεστημένο", + "integration": "Ενσωμάτωση", + "integrations": "Ενσωματωμένα", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Πρόσθετο", + "plugins": "Πρόσθετα", + "python_script": "Πρόγραμμα Python", + "python_scripts": "Προγράμματα Python", + "repositories": "Αποθετήρια", + "settings": "ρυθμίσεις", + "theme": "Θέμα", + "themes": "Θέματα", + "version": "Έκδοση" + }, + "config": { + "abort": { + "single_instance_allowed": "Μονάχα μία ρύθμιση των παραμέτρων του HACS επιτρέπεται." + }, + "error": { + "auth": "Το διακριτικό πρόσβασης δεν είναι σωστό." + }, + "step": { + "user": { + "data": { + "appdaemon": "Ενεργοποίηση εύρεσης & παρακολούθησης για το AppDaemon", + "netdaemon": "Ενεργοποίηση εύρεσης & παρακολούθησης για το NetDaemon", + "python_script": "Ενεργοποίηση εύρεσης & παρακολούθησης για τα python_scripts", + "sidepanel_icon": "Εικονίδιο πλαϊνού πάνελ", + "sidepanel_title": "Τίτλος πλαϊνού πάνελ", + "theme": "Ενεργοποίηση εύρεσης & παρακολούθησης για τα θεμάτων", + "token": "Διακριτικό πρόσβασης του GitHub" + }, + "description": "Εάν χρειαστείτε βοήθεια με τις ρυθμίσεις ανατρέξτε εδώ: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Είστε βέβαιοι ότι θέλετε να προσθέσετε αυτό στους πόρους του Lovelace;", + "bg_task": "Η ενέργεια είναι απενεργοποιημένη όσο εκτελούνται εργασίες στο παρασκήνιο", + "cancel": "Ακύρωση", + "continue": "Είστε βέβαιοι ότι θέλετε να συνεχίσετε;", + "delete": "Είστε σίγουροι ότι θέλετε να διαγράψετε το '{item}';", + "delete_installed": "Το '{item}' είναι εγκατεστημένο, πρέπει να το απεγκαταστήσετε πριν να το διαγράψετε.", + "exist": "{item} υπάρχει ήδη", + "generic": "Είστε βέβαιοι;", + "home_assistant_is_restarting": "Περιμένετε, το Home Assistant επανεκκινείται τώρα.", + "no": "Οχι", + "no_upgrades": "Δεν υπάρχουν αναβαθμίσεις σε εκκρεμότητα", + "ok": "Εντάξει", + "overwrite": "Αυτό θα το αντικαταστήσει.", + "restart_home_assistant": "Είστε βέβαιοι ότι θέλετε να κάνετε επανεκκίνηση του Home Assistant;", + "uninstall": "Είστε βέβαιοι ότι θέλετε να απεγκαταστήσετε το '{item}';", + "upgrade_all": "Αυτό θα αναβαθμίσει όλα αυτά τα αποθετήρια, βεβαιωθείτε ότι έχετε διαβάσει τις σημειώσεις έκδοσης για όλα πριν προχωρήσετε.", + "yes": "Ναι" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Ενεργοποίηση εύρεσης & παρακολούθησης για το AppDaemon", + "country": "Κριτήριο με βάση τον κωδικό χώρας.", + "debug": "Ενεργοποίηση εντοπισμού σφαλμάτων.", + "experimental": "Ενεργοποίση πειραματικών λειτουργιών", + "netdaemon": "Ενεργοποίηση εύρεσης & παρακολούθησης για το NetDaemon", + "release_limit": "Αριθμός εκδόσεων που να παραθέτονται.", + "sidepanel_icon": "Εικονίδιο πλαϊνού πάνελ", + "sidepanel_title": "Τίτλος πλαϊνού πάνελ" + } + } + } + }, + "repository_banner": { + "integration_not_loaded": "Αυτή η ενσωμάτωση δεν φορτώθηκε στο Home Assistant.", + "no_restart_required": "Δεν απαιτείται επανεκκίνηση", + "not_loaded": "Δεν έχει φορτωθεί", + "plugin_not_loaded": "Αυτό το πρόσθετο δεν προστέθηκε στους πόρους του Lovelace.", + "restart": "Πρέπει να κάνετε επανεκκίνηση του Home Assistant.", + "restart_pending": "Επανεκκίνηση σε εκκρεμότητα" + }, + "repository": { + "add_to_lovelace": "Προσθήκη στο Lovelace", + "authors": "Συγγραφείς", + "available": "Διαθέσιμο", + "back_to": "Πίσω στο", + "changelog": "Σημειώσεις των αλλαγών", + "downloads": "Λήψεις", + "flag_this": "Σημείωσε αυτό", + "frontend_version": "Έκδοση Frontend", + "hide": "Απόκρυψη", + "hide_beta": "Απόκριση του beta", + "install": "Εγκατάσταση", + "installed": "Εγκατεστημένο", + "lovelace_copy_example": "Αντίγραψε το παράδειγμα στο πρόχειρο", + "lovelace_instruction": "Όταν το προσθέσετε στις ρυθμίσεις του lovelace χρησιμοποιήστε τούτο", + "lovelace_no_js_type": "Δεν καταφέραμε να προσδιορίσουμε τον τύπο αυτού του προσθέτου, ελέξτε το αποθετήριο.", + "newest": "νεότερο", + "note_appdaemon": "εξακολουθεί να χρειάζεται να το προσθέσετε στο αρχείο 'apps.yaml'", + "note_installed": "Όταν εγκατασταθεί, θα προστεθεί στο", + "note_integration": "εξακολουθεί να χρειάζεται να το προσθέσετε στο αρχείο 'configuration.yaml'", + "note_plugin": "εξακολουθεί να χρειάζετε να το προσθέσετε στις ρυθμίσεις του lovelace ('ui-lovelace.yaml' ή μέσω του γραφικού επεξεργαστή των ρυθμίσεων)", + "open_issue": "Εκκρεμόν ζήτημα", + "open_plugin": "Ανοιχτό πρόσθετο", + "reinstall": "Επανεγκατάσταση", + "repository": "Αποθετήριο", + "restart_home_assistant": "Επανεκκίνηση του Home Assistant", + "show_beta": "Εμφάνιση του beta", + "uninstall": "Απεγκατάσταση", + "update_information": "Ενημέρωση πληροφοριών", + "upgrade": "Ενημέρωση" + }, + "settings": { + "add_custom_repository": "ΠΡΟΣΘΕΣΤΕ ΕΝΑ ΕΙΔΙΚΟ ΑΠΟΘΕΤΗΡΙΟ", + "adding_new_repo_category": "Με κατηγορία '{category}'.", + "category": "Κατηγορία", + "compact_mode": "Συμπαγής λειτουργία", + "custom_repositories": "ΕΙΔΙΚΑ ΑΠΟΘΕΤΗΡΙΑ", + "delete": "Διαγραφή", + "display": "Εμφάνιση", + "grid": "Πλέγμα", + "hacs_repo": "Αποθετήριο του HACS", + "hidden_repositories": "κρυφά αποθετήρια", + "missing_category": "Πρέπει να επιλέξετε μια κατηγορία", + "open_repository": "Ανοίξτε το αποθετήριο", + "reload_data": "Επαναφόρτωση δεδομένων", + "reload_window": "Επαναφόρτωση του παραθύρου", + "save": "Αποθήκευση", + "table": "Πίνακας", + "table_view": "Προβολή πίνακα", + "upgrade_all": "Αναβάθμιση όλων" + }, + "store": { + "ascending": "αύξουσα", + "clear_new": "Απαλοιφή όλων των νέων αποθετηρίων", + "descending": "φθίνουσα", + "last_updated": "Τελευταία ενημέρωση", + "name": "Ονομα", + "new_repositories": "Νέα αποθετήρια", + "pending_upgrades": "Εκκρεμείς αναβαθμίσεις", + "placeholder_search": "Παρακαλώ πληκτρολογήστε έναν όρο προς αναζήτηση...", + "sort": "είδος", + "stars": "Αστέρια", + "status": "Κατάσταση" + }, + "time": { + "ago": "πριν", + "day": "ημέρα", + "days": "ημέρες", + "hour": "ώρα", + "hours": "ώρες", + "minute": "λεπτό", + "minutes": "λεπτά", + "month": "μήνας", + "months": "μήνες", + "one": "Ένα", + "one_day_ago": "πριν από μία ημέρα", + "one_hour_ago": "πριν από μια ώρα", + "one_minute_ago": "πριν από ένα λεπτό", + "one_month_ago": "πριν από ένα μήνα", + "one_second_ago": "πριν από ένα δευτερόλεπτο", + "one_year_ago": "πριν από ένα χρόνο", + "second": "δευτερόλεπτο", + "seconds": "δευτερόλεπτα", + "x_days_ago": "{x} ημέρες πριν", + "x_hours_ago": "{x} ώρες πριν", + "x_minutes_ago": "{x} λεπτά πριν", + "x_months_ago": "{x} μήνες πριν", + "x_seconds_ago": "{x} δευτερόλεπτα πριν", + "x_years_ago": "{x} χρόνια πριν", + "year": "έτος", + "years": "χρόνια" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/en.json b/custom_components/hacs/.translations/en.json index 1e55666..387c89f 100644 --- a/custom_components/hacs/.translations/en.json +++ b/custom_components/hacs/.translations/en.json @@ -1,39 +1,199 @@ -{ - "config": { - "abort": { - "single_instance_allowed": "Only a single configuration of HACS is allowed." - }, - "error": { - "auth": "Personal Access Token is not correct." - }, - "step": { - "user": { - "data": { - "token": "GitHub Personal Access Token", - "appdaemon": "Enable AppDaemon apps discovery & tracking", - "sidepanel_icon": "Side panel icon", - "sidepanel_title": "Side panel title" - }, - "description": "If you need help with the configuration have a look here: https:\/\/hacs.xyz\/docs\/configuration\/start", - "title": "HACS (Home Assistant Community Store)" - } - }, - "title": "HACS (Home Assistant Community Store)" - }, - "options": { - "step": { - "user": { - "data": { - "not_in_use": "Not in use with YAML", - "country": "Filter with country code.", - "experimental": "Enable experimental features", - "release_limit": "Number of releases to show.", - "debug": "Enable debug.", - "appdaemon": "Enable AppDaemon apps discovery & tracking", - "sidepanel_icon": "Side panel icon", - "sidepanel_title": "Side panel title" - } - } - } - } +{ + "common": { + "about": "About", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Background task running, this page will reload when it's done.", + "check_log_file": "Check your log file for more details.", + "continue": "Continue", + "disabled": "Disabled", + "documentation": "Documentation", + "hacs_is_disabled": "HACS is disabled", + "installed": "installed", + "integration": "Integration", + "integrations": "Integrations", + "manage": "manage", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python Script", + "python_scripts": "Python Scripts", + "repositories": "Repositories", + "settings": "settings", + "theme": "Theme", + "themes": "Themes", + "version": "Version" + }, + "config": { + "abort": { + "single_instance_allowed": "Only a single configuration of HACS is allowed." + }, + "error": { + "auth": "Personal Access Token is not correct." + }, + "step": { + "user": { + "data": { + "appdaemon": "Enable AppDaemon apps discovery & tracking", + "netdaemon": "Enable NetDaemon apps discovery & tracking", + "python_script": "Enable python_scripts discovery & tracking", + "sidepanel_icon": "Side panel icon", + "sidepanel_title": "Side panel title", + "theme": "Enable Themes discovery & tracking", + "token": "GitHub Personal Access Token" + }, + "description": "If you need help with the configuration have a look here: https:\/\/hacs.xyz\/docs\/configuration\/start\/", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Are you sure you want to add this to your Lovelace resources?", + "bg_task": "Action is disabled while background tasks is running.", + "cancel": "Cancel", + "continue": "Are you sure you want to continue?", + "delete": "Are you sure you want to delete \"{item}\"?", + "delete_installed": "'{item}' is installed, you need to uninstall it before you can delete it.", + "exist": "{item} already exists", + "generic": "Are you sure?", + "home_assistant_is_restarting": "Hold on, Home Assistant is now restarting.", + "home_assistant_version_not_correct": "You are running Home Assistant version '{haversion}', but this repository requires minimum version '{minversion}' to be installed.", + "no": "No", + "no_upgrades": "No upgrades pending", + "ok": "OK", + "overwrite": "Doing this will overwrite it.", + "reload_data": "This reloads the data of all repositories HACS knows about, this will take some time to finish.", + "restart_home_assistant": "Are you sure you want to restart Home Assistant?", + "uninstall": "Are you sure you want to uninstall \"{item}\"?", + "upgrade_all": "This will upgrade all of these repositories, make sure that you have read the release notes for all of them before proceeding.", + "yes": "Yes" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Enable AppDaemon apps discovery & tracking", + "country": "Filter with country code.", + "debug": "Enable debug.", + "experimental": "Enable experimental features", + "netdaemon": "Enable NetDaemon apps discovery & tracking", + "not_in_use": "Not in use with YAML", + "release_limit": "Number of releases to show.", + "sidepanel_icon": "Side panel icon", + "sidepanel_title": "Side panel title" + } + } + } + }, + "repository_banner": { + "config_flow": "This integration supports config_flow, that means that you now can go to the integration section of your UI to configure it.", + "config_flow_title": "UI Configuration supported", + "integration_not_loaded": "This integration is not loaded in Home Assistant.", + "no_restart_required": "No restart required", + "not_loaded": "Not loaded", + "plugin_not_loaded": "This plugin is not added to your Lovelace resources.", + "restart": "You need to restart Home Assistant.", + "restart_pending": "Restart pending" + }, + "repository": { + "add_to_lovelace": "Add to Lovelace", + "authors": "Authors", + "available": "Available", + "back_to": "Back to", + "changelog": "Change log", + "downloads": "Downloads", + "flag_this": "Flag this", + "frontend_version": "Frontend version", + "github_stars": "GitHub stars", + "goto_integrations": "Go to integrations", + "hide": "Hide", + "hide_beta": "Hide beta", + "install": "Install", + "installed": "Installed", + "lovelace_copy_example": "Copy the example to your clipboard", + "lovelace_instruction": "When you add this to your lovelace configuration use this", + "lovelace_no_js_type": "Could not determine the type of this plugin, check the repository.", + "newest": "newest", + "note_appdaemon": "you still need to add it to your 'apps.yaml' file", + "note_installed": "When installed, this will be located in", + "note_integration": "you still need to add it to your 'configuration.yaml' file", + "note_plugin": "you still need to add it to your lovelace configuration ('ui-lovelace.yaml' or the raw UI config editor)", + "note_plugin_post_107": "you still need to add it to your lovelace configuration ('configuration.yaml' or the resource editor '\/config\/lovelace\/resources')", + "open_issue": "Open issue", + "open_plugin": "Open plugin", + "reinstall": "Reinstall", + "repository": "Repository", + "restart_home_assistant": "Restart Home Assistant", + "show_beta": "Show beta", + "uninstall": "Uninstall", + "update_information": "Update information", + "upgrade": "Update" + }, + "settings": { + "add_custom_repository": "ADD CUSTOM REPOSITORY", + "adding_new_repo": "Adding new repository '{repo}'", + "adding_new_repo_category": "With category '{category}'.", + "bg_task_custom": "Custom repositories are hidden while background tasks is running.", + "category": "Category", + "compact_mode": "Compact mode", + "custom_repositories": "CUSTOM REPOSITORIES", + "delete": "Delete", + "display": "Display", + "grid": "Grid", + "hacs_repo": "HACS repo", + "hidden_repositories": "hidden repositories", + "missing_category": "You need to select a category", + "open_repository": "Open repository", + "reload_data": "Reload data", + "reload_window": "Reload window", + "repository_configuration": "Repository configuration", + "save": "Save", + "table": "Table", + "table_view": "Table view", + "unhide": "unhide", + "upgrade_all": "Upgrade all" + }, + "store": { + "ascending": "ascending", + "clear_new": "Clear all new repositories", + "descending": "descending", + "last_updated": "Last updated", + "name": "Name", + "new_repositories": "New Repositories", + "pending_upgrades": "Pending upgrades", + "placeholder_search": "Please enter a search term...", + "sort": "sort", + "stars": "Stars", + "status": "Status" + }, + "time": { + "ago": "ago", + "day": "day", + "days": "days", + "hour": "hour", + "hours": "hours", + "minute": "minute", + "minutes": "minutes", + "month": "month", + "months": "months", + "one": "One", + "one_day_ago": "one day ago", + "one_hour_ago": "one hour ago", + "one_minute_ago": "one minute ago", + "one_month_ago": "one month ago", + "one_second_ago": "one second ago", + "one_year_ago": "one year ago", + "second": "second", + "seconds": "seconds", + "x_days_ago": "{x} days ago", + "x_hours_ago": "{x} hours ago", + "x_minutes_ago": "{x} minutes ago", + "x_months_ago": "{x} months ago", + "x_seconds_ago": "{x} seconds ago", + "x_years_ago": "{x} years ago", + "year": "year", + "years": "years" + } } \ No newline at end of file diff --git a/custom_components/hacs/.translations/es.json b/custom_components/hacs/.translations/es.json new file mode 100644 index 0000000..ccc56f4 --- /dev/null +++ b/custom_components/hacs/.translations/es.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "Acerca de", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Ejecutando tareas en segundo plano. Se refrescará automaticamente esta página al finalizar.", + "check_log_file": "Compruebe el archivo de registro para obtener más detalles.", + "continue": "Continuar", + "disabled": "Deshabilitado", + "documentation": "Documentación", + "hacs_is_disabled": "HACS está deshabilitado", + "installed": "instalado", + "integration": "Integración", + "integrations": "Integraciones", + "manage": "Administrar", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python Script", + "python_scripts": "Python Scripts", + "repositories": "Repositorios", + "settings": "configuraciones", + "theme": "Tema", + "themes": "Temas", + "version": "Versión" + }, + "config": { + "abort": { + "single_instance_allowed": "Sólo se permite una única configuración de HACS." + }, + "error": { + "auth": "El token de acceso personal no es correcto." + }, + "step": { + "user": { + "data": { + "appdaemon": "Habilitar el descubrimiento y seguimiento de las aplicaciones de AppDaemon", + "netdaemon": "Habilitar el descubrimiento y seguimiento de las aplicaciones de NetDaemon", + "python_script": "Habilitar el descubrimiento y seguimiento en python_scripts", + "sidepanel_icon": "Ícono del panel lateral", + "sidepanel_title": "Título del panel lateral", + "theme": "Habilitar el descubrimiento y seguimiento de temas", + "token": "Token de acceso personal de GitHub" + }, + "description": "Si necesitas ayuda con la configuración, visita la siguiente pagina: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "¿Está seguro de que desea agregar esto a sus recursos de Lovelace?", + "bg_task": "La acción está deshabilitada mientras se ejecutan tareas en segundo plano.", + "cancel": "Cancelar", + "continue": "Estás seguro de que quieres continuar?", + "delete": "¿Seguro que quieres eliminar '{item}'?", + "delete_installed": "'{item}' está instalado, debe desinstalarlo antes de poder eliminarlo.", + "exist": "{item} ya existe", + "generic": "¿Estás seguro?", + "home_assistant_is_restarting": "Espera, Home Assistant se está reiniciando.", + "home_assistant_version_not_correct": "Está ejecutando la versión '{haversion}' de Home Assistant, pero este repositorio requiere la instalación de la versión '{minversion}' mínima.", + "no": "No", + "no_upgrades": "No hay actualizaciones pendientes", + "ok": "OK", + "overwrite": "Si lo hace, se sobrescribirá.", + "reload_data": "Esto recarga los datos de todos los repositorios que HACS conoce, esto tardará algún tiempo en finalizar.", + "restart_home_assistant": "¿Está seguro de que desea reiniciar Home Assistant?", + "uninstall": "¿Está seguro de que desea desinstalar '{item}'?", + "upgrade_all": "Esto actualizará todos estos repositorios, asegúrese de que ha leído las notas de la versión de todos ellos antes de continuar.", + "yes": "Si" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Habilitar el descubrimiento y seguimiento de las aplicaciones de AppDaemon", + "country": "Filtrar por el código de país.", + "debug": "Habilitar depuración.", + "experimental": "Habilitar funciones experimentales", + "netdaemon": "Habilitar el descubrimiento y seguimiento de las aplicaciones de NetDaemon", + "not_in_use": "No usarse con YAML", + "release_limit": "Número de versiones a mostrar.", + "sidepanel_icon": "Icono del panel lateral", + "sidepanel_title": "Título del panel lateral" + } + } + } + }, + "repository_banner": { + "config_flow": "Esta integración soporta config_flow, lo que significa que ahora puede ir a la sección de integración de su UI para configurarlo.", + "config_flow_title": "Configuración de UI soportada", + "integration_not_loaded": "Esta integración no se carga en Home Assistant.", + "no_restart_required": "No es necesario reiniciar", + "not_loaded": "No está cargado", + "plugin_not_loaded": "Este plugin no se añade a sus recursos de Lovelace.", + "restart": "Es necesario reiniciar Home Assistant.", + "restart_pending": "Reinicio pendiente" + }, + "repository": { + "add_to_lovelace": "Añadir a Lovelace", + "authors": "Autores", + "available": "Disponible", + "back_to": "Volver a", + "changelog": "Registro de cambios", + "downloads": "Descargas", + "flag_this": "Marcar esto", + "frontend_version": "Versión del frontend", + "github_stars": "Estrellas de GitHub", + "goto_integrations": "Ir a integraciones", + "hide": "Ocultar", + "hide_beta": "Ocultar beta", + "install": "Instalar", + "installed": "Instalado", + "lovelace_copy_example": "Copiar el ejemplo al clipboard", + "lovelace_instruction": "Agregue lo siguiente en su configuración de lovelace", + "lovelace_no_js_type": "No se pudo determinar el tipo de plugin, revise el repositorio.", + "newest": "más nuevo", + "note_appdaemon": "deberá agregar esto a su archivo 'apps.yaml'", + "note_installed": "Al instalarse se encontrará en", + "note_integration": "deberá agregar esto a su archivo 'configuration.yaml'", + "note_plugin": "deberá agregar esto a su configuración de lovelace ('ui-lovelace.yaml' o en el editor UI de lovelace)", + "open_issue": "Abrir issue", + "open_plugin": "Abrir plugin", + "reinstall": "Reinstalar", + "repository": "Repositorio", + "restart_home_assistant": "Reiniciar Home Assistant", + "show_beta": "Mostrar beta", + "uninstall": "Desinstalar", + "update_information": "Actualizar información", + "upgrade": "Actualizar" + }, + "settings": { + "add_custom_repository": "AGREGAR REPOSITORIO PERSONALIZADO", + "adding_new_repo": "Añadiendo un nuevo repositorio '{repo}'.", + "adding_new_repo_category": "Con la categoría '{category}'.", + "bg_task_custom": "Los repositorios personalizados están ocultos mientras se ejecutan las tareas en segundo plano.", + "category": "Categoría", + "compact_mode": "Modo compacto", + "custom_repositories": "REPOSITORIOS PERSONALIZADOS", + "delete": "Eliminar", + "display": "Mostrar", + "grid": "Cuadrícula", + "hacs_repo": "HACS repo", + "hidden_repositories": "repositorios ocultos", + "missing_category": "Es necesario seleccionar una categoría", + "open_repository": "Abrir repositorio", + "reload_data": "Recargar datos", + "reload_window": "Recargar ventana", + "repository_configuration": "Configuración del repositorio", + "save": "Grabar", + "table": "Tabla", + "table_view": "Vista de la tabla", + "unhide": "mostrar", + "upgrade_all": "Actualizar todo" + }, + "store": { + "ascending": "ascendente", + "clear_new": "Borrar todos los nuevos repositorios", + "descending": "descendente", + "last_updated": "Última actualización", + "name": "Nombre", + "new_repositories": "Nuevos Repositorios", + "pending_upgrades": "Actualizaciones pendientes", + "placeholder_search": "Por favor escriba una palabra clave de búsqueda...", + "sort": "ordenar", + "stars": "Estrellas", + "status": "Estado" + }, + "time": { + "ago": "hace", + "day": "dia", + "days": "dias", + "hour": "hora", + "hours": "horas", + "minute": "minuto", + "minutes": "minutos", + "month": "mes", + "months": "meses", + "one": "Uno", + "one_day_ago": "hace un día", + "one_hour_ago": "hace una hora", + "one_minute_ago": "hace un minuto", + "one_month_ago": "hace un mes", + "one_second_ago": "hace un segundo", + "one_year_ago": "hace un año", + "second": "segundo", + "seconds": "segundos", + "x_days_ago": "hace {x} dias", + "x_hours_ago": "hace {x} horas", + "x_minutes_ago": "hace {x} minutos", + "x_months_ago": "hace {x} meses", + "x_seconds_ago": "hace {x} segundos", + "x_years_ago": "hace {x} años", + "year": "año", + "years": "años" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/fr.json b/custom_components/hacs/.translations/fr.json new file mode 100644 index 0000000..2d2f487 --- /dev/null +++ b/custom_components/hacs/.translations/fr.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "À propos de", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Applications AppDaemon", + "background_task": "Tache de fond en cours, cette page se rechargera une fois terminée", + "check_log_file": "Consultez votre fichier journal pour plus de détails.", + "continue": "Continuer", + "disabled": "Désactivé", + "documentation": "Documentation", + "hacs_is_disabled": "HACS est désactivé", + "installed": "installés", + "integration": "Intégration", + "integrations": "Intégrations", + "manage": "gérer", + "netdaemon": "NetDaemon", + "netdaemon_apps": "Applications NetDaemon", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Script Python", + "python_scripts": "Scripts Python", + "repositories": "Dépôts", + "settings": "paramètres", + "theme": "Thème", + "themes": "Thèmes", + "version": "Version" + }, + "config": { + "abort": { + "single_instance_allowed": "Une seule configuration de HACS est autorisée." + }, + "error": { + "auth": "Le jeton personnel d'accès est invalide." + }, + "step": { + "user": { + "data": { + "appdaemon": "Activer la découverte et le suivi des applications AppDaemon", + "netdaemon": "Activer la découverte et le suivi des applications NetDaemon", + "python_script": "Activer la découverte et le suivi des scripts python", + "sidepanel_icon": "Icône de la barre latérale", + "sidepanel_title": "Titre de la barre latérale", + "theme": "Activer la découverte et le suivi des thèmes", + "token": "Jeton d'accès personnel GitHub" + }, + "description": "Si vous avez besoin d'aide pour la configuration, jetez un œil ici: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Êtes-vous sûr de vouloir l'ajouter à vos ressources Lovelace ?", + "bg_task": "L'action est désactivée pendant l'exécution de tâches en arrière-plan.", + "cancel": "Annuler", + "continue": "Es-tu sur de vouloir continuer?", + "delete": "Êtes-vous sûr de vouloir supprimer '{item}'?", + "delete_installed": "'{item}' est installé, vous devez le désinstaller avant de pouvoir le supprimer.", + "exist": "{item} existe déjà", + "generic": "Êtes-vous sûr?", + "home_assistant_is_restarting": "Attendez, Home Assistant redémarre maintenant.", + "home_assistant_version_not_correct": "Vous utilisez la version '{haversion}' de Home Assistant, mais ce référentiel nécessite l'installation de la version minimale '{minversion}'.", + "no": "Non", + "no_upgrades": "Aucune mise à niveau en attente", + "ok": "OK", + "overwrite": "En faisant cela, cela l'écrasera.", + "reload_data": "Cela recharge les données de tous les dépôts dont HACS a connaissance, cela prendra un certain temps à terminer.", + "restart_home_assistant": "Voulez-vous vraiment redémarrer Home Assistant ?", + "uninstall": "Êtes-vous sûr de vouloir désinstaller '{item}'?", + "upgrade_all": "Cela mettra à niveau tous ces dépôts, assurez-vous d'avoir lu les notes de publication pour chacun d'entre eux avant de continuer.", + "yes": "Oui" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Activer la découverte et le suivi des applications AppDaemon", + "country": "Filtrer par code pays.", + "debug": "Activez le débogage.", + "experimental": "Activer les fonctionnalités expérimentales", + "netdaemon": "Activer la découverte et le suivi des applications NetDaemon", + "not_in_use": "Non utilisé avec YAML", + "release_limit": "Nombre de recensés à afficher.", + "sidepanel_icon": "Icône de la barre latérale", + "sidepanel_title": "Titre de la barre latérale" + } + } + } + }, + "repository_banner": { + "config_flow": "Cette intégration prend en charge config_flow, ce qui signifie que vous pouvez maintenant accéder à la section d'intégration de votre interface utilisateur pour le configurer.", + "config_flow_title": "Configuration de l'interface utilisateur prise en charge", + "integration_not_loaded": "Cette intégration n'est pas chargée dans Home Assistant.", + "no_restart_required": "Aucun redémarrage requis", + "not_loaded": "Non chargé", + "plugin_not_loaded": "Ce plugin n'est pas ajouté à vos ressources Lovelace.", + "restart": "Vous devez redémarrer Home Assistant.", + "restart_pending": "Redémarrage en attente" + }, + "repository": { + "add_to_lovelace": "Ajouter à Lovelace", + "authors": "Auteurs", + "available": "Disponible", + "back_to": "Retour", + "changelog": "Change log", + "downloads": "Téléchargements", + "flag_this": "Marquer", + "frontend_version": "Version de l'interface", + "github_stars": "Étoiles GitHub", + "goto_integrations": "Aller aux intégrations", + "hide": "Masquer", + "hide_beta": "Masquer les bêta", + "install": "Installer", + "installed": "Installé", + "lovelace_copy_example": "Copier cet exemple dans le presse-papier", + "lovelace_instruction": "Quand vous l'ajoutez à votre configuration lovelace, utilisez", + "lovelace_no_js_type": "Impossible de déterminer le type de plugin, veuillez vérifier le dépôt", + "newest": "nouveau", + "note_appdaemon": "vous devez toujours l'ajouter à votre fichier 'apps.yaml'", + "note_installed": "Une fois installé, il se trouvera dans", + "note_integration": "Vous devez toujours l'ajouter à votre fichier 'configuration.yaml'", + "note_plugin": "Vous devez toujours l'ajouter à votre configuration lovelace ('ui-lovelace.yaml' ou l'éditeur de configuration de l'interface)", + "open_issue": "Ouvrir un ticket", + "open_plugin": "Ouvrir le plugin", + "reinstall": "Réinstaller", + "repository": "Dépôt", + "restart_home_assistant": "Redémarrer Home Assistant", + "show_beta": "Afficher les bêta", + "uninstall": "Désinstaller", + "update_information": "Mettre à jour les informations", + "upgrade": "Mettre à jour" + }, + "settings": { + "add_custom_repository": "AJOUTER UN DÉPÔT PERSONNALISÉ", + "adding_new_repo": "Ajout d'un nouveau dépôt '{repo}'", + "adding_new_repo_category": "Avec la catégorie '{category}'.", + "bg_task_custom": "Les dépôts personnalisés sont masqués pendant l'exécution de tâches en arrière-plan.", + "category": "Catégorie", + "compact_mode": "Mode compact", + "custom_repositories": "DÉPÔTS PERSONNALISÉS", + "delete": "Supprimer", + "display": "Affichage", + "grid": "Grille", + "hacs_repo": "Dépôt HACS", + "hidden_repositories": "dépôts cachés", + "missing_category": "Vous devez sélectionner une catégorie", + "open_repository": "Ouvrir dépôt", + "reload_data": "Recharger les données", + "reload_window": "Recharger la fenêtre", + "repository_configuration": "Configuration de dépôt", + "save": "Enregistrer", + "table": "Tableau", + "table_view": "Vue table", + "unhide": "Afficher", + "upgrade_all": "Tout mettre à jour" + }, + "store": { + "ascending": "ascendant", + "clear_new": "Effacer tous les nouveaux dépôts", + "descending": "descendant", + "last_updated": "Dernière mise à jour", + "name": "Nom", + "new_repositories": "Nouveaux dépôts", + "pending_upgrades": "Mises à niveau en attente", + "placeholder_search": "Veuillez entrer un terme de recherche...", + "sort": "Trier", + "stars": "Étoiles", + "status": "Statut" + }, + "time": { + "ago": "il y a", + "day": "jour", + "days": "jours", + "hour": "heure", + "hours": "heures", + "minute": "minute", + "minutes": "minutes", + "month": "mois", + "months": "mois", + "one": "Un", + "one_day_ago": "il y a 1 jour", + "one_hour_ago": "il y a 1 heure", + "one_minute_ago": "il y a 1 minute", + "one_month_ago": "il y a 1 mois", + "one_second_ago": "il y a 1 seconde", + "one_year_ago": "il y a 1 an", + "second": "seconde", + "seconds": "secondes", + "x_days_ago": "il y a {x} jours", + "x_hours_ago": "il y a {x} heures", + "x_minutes_ago": "il y a {x} minutes", + "x_months_ago": "il y a {x} mois", + "x_seconds_ago": "il y a {x} secondes", + "x_years_ago": "il y a {x} ans", + "year": "an", + "years": "ans" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/hu.json b/custom_components/hacs/.translations/hu.json new file mode 100644 index 0000000..657e261 --- /dev/null +++ b/custom_components/hacs/.translations/hu.json @@ -0,0 +1,194 @@ +{ + "common": { + "about": "Névjegy", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Appok", + "background_task": "Éppen háttérfeladat fut, ez az oldal frissülni fog, ha kész.", + "check_log_file": "További részletekért ellenőrizd a naplófájlt.", + "continue": "Folytatás", + "disabled": "Tiltva", + "documentation": "Dokumentáció", + "hacs_is_disabled": "A HACS le van tiltva", + "installed": "Telepített", + "integration": "Integráció", + "integrations": "Integrációk", + "manage": "kezelés", + "plugin": "Bővítmény", + "plugins": "Bővítmények", + "python_script": "Python Szkript", + "python_scripts": "Python Szkriptek", + "repositories": "Tárolók", + "settings": "beállítások", + "theme": "Téma", + "themes": "Témák", + "version": "Verzió" + }, + "config": { + "abort": { + "single_instance_allowed": "Csak egyetlen HACS-konfiguráció megengedett." + }, + "error": { + "auth": "A Személyes Hozzáférési Token nem megfelelő." + }, + "step": { + "user": { + "data": { + "appdaemon": "AppDaemon appok felfedezésének és nyomon követésének engedélyezése", + "python_script": "Python szkriptek felfedezésének és nyomon követésének engedélyezése", + "sidepanel_icon": "Oldalsó panel ikon", + "sidepanel_title": "Oldalsó panel cím", + "theme": "Témák felfedezésének és nyomon követésének engedélyezése", + "token": "GitHub Személyes Hozzáférési Token" + }, + "description": "Ha segítségre van szükséged a konfigurációval kapcsolatban, akkor tekintsd meg ezt az oldalt: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Biztosan hozzá szeretnéd ezt adni a Lovelace erőforrásokhoz?", + "bg_task": "A művelet le van tiltva, amíg háttérfeladat fut.", + "cancel": "Mégse", + "continue": "Biztosan folytatni szeretnéd?", + "delete": "Biztosan törölni szeretnéd a(z) '{item}'-t?", + "delete_installed": "A(z) '{item}' telepítve van, törlés előtt el kell távolítanod.", + "exist": "{item} már létezik", + "generic": "Biztos vagy benne?", + "home_assistant_is_restarting": "Várj, a Home Assistant éppen újraindul.", + "home_assistant_version_not_correct": "A Home Assistant '{haversion}' verzióját használod, de ehhez a tárolóhoz legalább a(z) '{minversion}' verzióra van szükség.", + "no": "Nem", + "no_upgrades": "Nincs függőben lévő frissítés", + "ok": "OK", + "overwrite": "Ezzel felül fogod írni.", + "reload_data": "Ez újratölti a HACS által ismert összes tároló adatát, ami némi időbe telhet.", + "restart_home_assistant": "Biztosan újraindítod a Home Assistant programot?", + "uninstall": "Biztosan el szeretnéd távolítani a(z) '{item}'-t?", + "upgrade_all": "Ez frissíteni fogja az összes tárolót. Győzödj meg róla, hogy elolvastad az összes kiadási megjegyzést, mielőtt továbblépnél.", + "yes": "Igen" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "AppDaemon appok felfedezésének és nyomon követésének engedélyezése", + "country": "Szűrés országkóddal.", + "debug": "Hibakeresés engedélyezése.", + "experimental": "Kísérleti funkciók engedélyezése", + "not_in_use": "YAML-lel nem használható", + "release_limit": "Megjelenítendő kiadások száma.", + "sidepanel_icon": "Oldalsó panel ikon", + "sidepanel_title": "Oldalsó panel cím" + } + } + } + }, + "repository_banner": { + "config_flow": "Ez az integráció támogatja a config_flow-t, vagyis a felhasználói felületen az integrációk menüben lehet konfigurálni.", + "config_flow_title": "A felhasználói felület konfigurációja támogatott", + "integration_not_loaded": "Ez az integráció nincs betöltve a Home Assistantban.", + "no_restart_required": "Nincs szükség újraindításra", + "not_loaded": "Nincs betöltve", + "plugin_not_loaded": "Ez a bővítmény nincs hozzáadva a Lovelace erőforrásokhoz.", + "restart": "Indítsd újra a Home Assistant programot.", + "restart_pending": "Újraindítás függőben" + }, + "repository": { + "add_to_lovelace": "Hozzáadás a Lovelace-hez", + "authors": "Szerzők", + "available": "Elérhető", + "back_to": "Vissza -", + "changelog": "Változási napló", + "downloads": "Letöltések", + "flag_this": "Megjelölés", + "frontend_version": "Frontend verzió", + "github_stars": "GitHub csillagok", + "goto_integrations": "Ugrás az integrációkhoz", + "hide": "Elrejtés", + "hide_beta": "Béta elrejtése", + "install": "Telepítés", + "installed": "Telepített", + "lovelace_copy_example": "Példa másolása a vágólapra", + "lovelace_instruction": "Amikor hozzáadod ezt a lovelace konfigurációdhoz, használd ezt", + "lovelace_no_js_type": "Nem sikerült meghatározni a beépülő modul típusát, ellenőrizd a tárolót.", + "newest": "legújabb", + "note_appdaemon": "de még hozzá kell adnod az 'apps.yaml' fájlhoz", + "note_installed": "Telepítéskor a következő helyre kerül:", + "note_integration": "de még hozzá kell adnod a 'configuration.yaml' fájlhoz", + "note_plugin": "de még hozzá kell adnod a lovelace konfigurációhoz (az 'ui-lovelace.yaml' fájlban vagy a Lovelace felületen a konfiguráció szerkesztőben)", + "open_issue": "Probléma jelentése", + "open_plugin": "Bővítmény megnyitása", + "reinstall": "Újratelepítés", + "repository": "Tároló", + "restart_home_assistant": "Home Assistant újraindítása", + "show_beta": "Béta megjelenítése", + "uninstall": "Eltávolítás", + "update_information": "Frissítési információk", + "upgrade": "Frissítés" + }, + "settings": { + "add_custom_repository": "EGYÉNI TÁROLÓ HOZZÁADÁSA", + "adding_new_repo": "Új tároló hozzáadása '{repo}'", + "adding_new_repo_category": "A '{category}' kategóriával.", + "bg_task_custom": "Az egyéni tárolók rejtve vannak, amíg háttérfeladat fut.", + "category": "Kategória", + "compact_mode": "Kompakt mód", + "custom_repositories": "EGYÉNI TÁROLÓK", + "delete": "Törlés", + "display": "Megjelenítés", + "grid": "Rács", + "hacs_repo": "HACS tároló", + "hidden_repositories": "rejtett tárolók", + "missing_category": "Ki kell választanod egy kategóriát", + "open_repository": "Tároló megnyitása", + "reload_data": "Adatok újratöltése", + "reload_window": "Ablak újratöltése", + "repository_configuration": "Tároló konfiguráció", + "save": "Mentés", + "table": "Táblázat", + "table_view": "Táblázat nézet", + "unhide": "felfedés", + "upgrade_all": "Minden frissítése" + }, + "store": { + "ascending": "növekvő", + "clear_new": "Új tárolók megjelölése látottként", + "descending": "csökkenő", + "last_updated": "Utolsó frissítés", + "name": "Név", + "new_repositories": "Új tárolók", + "pending_upgrades": "Függőben lévő frissítések", + "placeholder_search": "Kérlek adj meg egy keresési kifejezést...", + "sort": "rendezés", + "stars": "Csillag", + "status": "Állapot" + }, + "time": { + "ago": "ezelőtt", + "day": "nap", + "days": "nap", + "hour": "óra", + "hours": "óra", + "minute": "perc", + "minutes": "perc", + "month": "hónap", + "months": "hónap", + "one": "Egy", + "one_day_ago": "egy nappal ezelőtt", + "one_hour_ago": "egy órával ezelőtt", + "one_minute_ago": "egy perccel ezelőtt", + "one_month_ago": "egy hónappal ezelőtt", + "one_second_ago": "egy másodperccel ezelőtt", + "one_year_ago": "egy évvel ezelőtt", + "second": "másodperc", + "seconds": "másodperc", + "x_days_ago": "{x} nappal ezelőtt", + "x_hours_ago": "{x} órával ezelőtt", + "x_minutes_ago": "{x} perccel ezelőtt", + "x_months_ago": "{x} hónappal ezelőtt", + "x_seconds_ago": "{x} másodperccel ezelőtt", + "x_years_ago": "{x} évvel ezelőtt", + "year": "év", + "years": "év" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/it.json b/custom_components/hacs/.translations/it.json new file mode 100644 index 0000000..fc42529 --- /dev/null +++ b/custom_components/hacs/.translations/it.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "Informazioni su", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Applicazioni AppDaemon", + "background_task": "Attività in esecuzione, questa pagina sarà ricaricata al termine.", + "check_log_file": "Controlla il tuo file di registro per maggiori dettagli.", + "continue": "Continua", + "disabled": "Disabilitato", + "documentation": "Documentazione", + "hacs_is_disabled": "HACS è disabilitato", + "installed": "Installati", + "integration": "Integrazione", + "integrations": "Integrazioni", + "manage": "gestione", + "netdaemon": "NetDaemon", + "netdaemon_apps": "Applicazioni NetDaemon", + "plugin": "Plugin", + "plugins": "Plugin", + "python_script": "Script python", + "python_scripts": "Script python", + "repositories": "Repository", + "settings": "Impostazioni", + "theme": "Tema", + "themes": "Temi", + "version": "Versione" + }, + "config": { + "abort": { + "single_instance_allowed": "È consentita una sola configurazione di HACS." + }, + "error": { + "auth": "Il token di accesso personale non è corretto." + }, + "step": { + "user": { + "data": { + "appdaemon": "Abilita il rilevamento e il monitoraggio delle applicazioni AppDaemon", + "netdaemon": "Abilita il rilevamento e il monitoraggio delle applicazioni NetDaemon", + "python_script": "Abilita il rilevamento e il monitoraggio dei python_scripts", + "sidepanel_icon": "Icona nel pannello laterale", + "sidepanel_title": "Titolo nel pannello laterale", + "theme": "Abilita individuazione e tracciamento dei temi", + "token": "Token di accesso personale GitHub" + }, + "description": "Se hai bisogno di aiuto con la configurazione dai un'occhiata qui: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Sei sicuro di voler aggiungerlo alle tue risorse Lovelace?", + "bg_task": "L'azione è disabilitata mentre sono in esecuzione attività in background.", + "cancel": "Annulla", + "continue": "Sei sicuro di voler continuare?", + "delete": "Sei sicuro di voler disinstallare '{item}'?", + "delete_installed": "'{item}' è installato, è necessario disinstallarlo prima di poterlo eliminare.", + "exist": "{item} esiste già", + "generic": "Sei sicuro?", + "home_assistant_is_restarting": "Aspetta, Home Assistant si sta riavviando.", + "home_assistant_version_not_correct": "Stai eseguendo la versione Home Assistant '{haversion}', ma questo repository richiede l'installazione della versione minima '{minversion}'.", + "no": "No", + "no_upgrades": "Nessun aggiornamento in sospeso", + "ok": "OK", + "overwrite": "In questo modo lo sovrascriverà.", + "reload_data": "Questo ricarica i dati di tutte le repository di cui HACS è a conoscenza, ci vorrà del tempo per finire.", + "restart_home_assistant": "Sei sicuro di voler riavviare Home Assistant?", + "uninstall": "Sei sicuro di voler disinstallare '{item}'?", + "upgrade_all": "Questa azione aggiornerà tutti i repository, assicurati di aver letto le note di rilascio prima di procedere.", + "yes": "Sì" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Abilita il rilevamento e il monitoraggio delle applicazioni AppDaemon", + "country": "Filtra con prefisso internazionale.", + "debug": "Abilita debug.", + "experimental": "Abilita funzionalità sperimentali", + "netdaemon": "Abilita il rilevamento e il monitoraggio delle applicazioni NetDaemon", + "not_in_use": "Non in uso con YAML", + "release_limit": "Numero di versioni da mostrare.", + "sidepanel_icon": "Icona nel pannello laterale", + "sidepanel_title": "Titolo nel pannello laterale" + } + } + } + }, + "repository_banner": { + "config_flow": "Questa integrazione supporta config_flow, questo significa che è ora possibile passare alla sezione \"IntegrazionI\" dell'interfaccia utente per la configurazione.", + "config_flow_title": "Configurazione dell'interfaccia utente supportata", + "integration_not_loaded": "Questa integrazione non è caricata in Home Assistant.", + "no_restart_required": "Non è necessario riavviare", + "not_loaded": "Non caricato", + "plugin_not_loaded": "Questo plugin non è stato aggiunto alle risorse di Lovelace.", + "restart": "È necessario riavviare Home Assistant.", + "restart_pending": "Riavvio in attesa" + }, + "repository": { + "add_to_lovelace": "Aggiungi a Lovelace", + "authors": "Autori", + "available": "Disponibile", + "back_to": "Torna a", + "changelog": "Change log", + "downloads": "Downloads", + "flag_this": "Spunta questo", + "frontend_version": "Frontend versione", + "github_stars": "GitHub stelle", + "goto_integrations": "Vai alle Integrazioni", + "hide": "Nascondi", + "hide_beta": "Nascondi beta", + "install": "Installa", + "installed": "Installato", + "lovelace_copy_example": "Copia l'esempio negli appunti", + "lovelace_instruction": "Quando lo aggiungi nella configurazione di lovelace, usa questo", + "lovelace_no_js_type": "Impossibile determinare il tipo di plugin, verificare il repository.", + "newest": "Più recente", + "note_appdaemon": "dovrai aggiungerlo nel file 'apps.yaml'", + "note_installed": "Una volta installato, si troverà in", + "note_integration": "dovrai aggiungerlo nel file 'configuration.yaml'", + "note_plugin": "devi aggiungere la configurazione nel file 'ui-lovelace.yaml' oppure via Editor RAW della UI.", + "open_issue": "Segnala anomalia", + "open_plugin": "Apri plugin", + "reinstall": "Reinstalla", + "repository": "Archivio Software (Repository)", + "restart_home_assistant": "Riavvia Home Assistant", + "show_beta": "Visualizza beta", + "uninstall": "Rimuovi", + "update_information": "Aggiorna informazioni", + "upgrade": "Aggiorna" + }, + "settings": { + "add_custom_repository": "AGGIUNGI REPOSITORY PERSONALIZZATA", + "adding_new_repo": "Aggiunta di un nuovo repository '{repo}'", + "adding_new_repo_category": "Con la categoria '{category}'.", + "bg_task_custom": "I repository personalizzati sono nascosti mentre sono in esecuzione attività in background.", + "category": "Categoria", + "compact_mode": "Modalità compatta", + "custom_repositories": "REPOSITORY PERSONALIZZATE", + "delete": "Cancella", + "display": "Visualizza", + "grid": "Griglia", + "hacs_repo": "HACS repo", + "hidden_repositories": "repository nascosti", + "missing_category": "Devi selezionare una categoria", + "open_repository": "Apri il repository", + "reload_data": "Ricarica i dati", + "reload_window": "Ricarica la finestra", + "repository_configuration": "Configurazione del repository", + "save": "Salva", + "table": "Tabella", + "table_view": "Vista tabella", + "unhide": "Mostra", + "upgrade_all": "Aggiorna tutto" + }, + "store": { + "ascending": "ascendente", + "clear_new": "Ripulisci i nuovi repository", + "descending": "discendente", + "last_updated": "Ultimo aggiornamento", + "name": "Nome", + "new_repositories": "Nuovi repository", + "pending_upgrades": "Aggiornamenti in sospeso", + "placeholder_search": "Inserire un termine di ricerca", + "sort": "Ordinare", + "stars": "Stelle", + "status": "Stato" + }, + "time": { + "ago": "fa", + "day": "giorno", + "days": "giorni", + "hour": "ora", + "hours": "ore", + "minute": "minuto", + "minutes": "minuti", + "month": "mese", + "months": "mesi", + "one": "Un", + "one_day_ago": "un giorno fa", + "one_hour_ago": "un'ora fa", + "one_minute_ago": "un minuto fa", + "one_month_ago": "un mese fa", + "one_second_ago": "un secondo fa", + "one_year_ago": "un anno fa", + "second": "secondo", + "seconds": "secondi", + "x_days_ago": "{x} giorni fa", + "x_hours_ago": "{x} ore fa", + "x_minutes_ago": "{x} minuti fa", + "x_months_ago": "{x} mesi fa", + "x_seconds_ago": "{x} secondi fa", + "x_years_ago": "{x} anni fa", + "year": "anno", + "years": "anni" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/nb.json b/custom_components/hacs/.translations/nb.json new file mode 100644 index 0000000..0a7ef22 --- /dev/null +++ b/custom_components/hacs/.translations/nb.json @@ -0,0 +1,197 @@ +{ + "common": { + "about": "Om", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apper", + "background_task": "Bakgrunnsoppgaven kjører. Denne siden lastes inn på nytt når den er ferdig.", + "check_log_file": "Sjekk loggfilen din for mer informasjon.", + "continue": "Fortsett", + "disabled": "Deaktivert", + "documentation": "dokumentasjon", + "hacs_is_disabled": "HACS er deaktivert", + "installed": "Installert", + "integration": "Integrasjon", + "integrations": "Integrasjoner", + "manage": "manage", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apper", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python-skript", + "python_scripts": "Python-skript", + "repositories": "Repositories", + "settings": "Innstillinger", + "theme": "Tema", + "themes": "Temaer", + "version": "Versjon" + }, + "config": { + "abort": { + "single_instance_allowed": "Bare en konfigurasjon av HACS er tillatt." + }, + "error": { + "auth": "Personlig tilgangstoken er ikke korrekt." + }, + "step": { + "user": { + "data": { + "appdaemon": "Aktiver oppdagelse og sporing av AppDaemon-apper", + "netdaemon": "Aktiver oppdagelse og sporing av NetDaemon-apper", + "python_script": "Aktiver oppdagelse og sporing av python_scripts", + "sidepanel_icon": "Sidepanel ikon", + "sidepanel_title": "Sidepanel tittel", + "theme": "Aktiver oppdagelse og sporing av temaer", + "token": "GitHub Personal Access Token" + }, + "description": "Hvis du trenger hjelp med konfigurasjonen, ta en titt her: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Er du sikker på at du vil legge dette til i dine Lovelace resources?", + "bg_task": "Handlingen er deaktivert mens bakgrunnsoppgaver kjører.", + "cancel": "Avbryt", + "continue": "Er du sikker på at du vil fortsette?", + "delete": "Er du sikker på at du vil fjerne '{item}'?", + "delete_installed": "'{item}' er installert, du må avinstallere det før du kan slette det.", + "exist": "{item} eksisterer allerede", + "generic": "Er du sikker?", + "home_assistant_is_restarting": "Vent, Home Assistant starter nå på nytt.", + "home_assistant_version_not_correct": "Du kjører Home Assistant '{haversion}', men denne krever minimum versjon '{minversion}' for å bli installert.", + "no": "Nei", + "no_upgrades": "Ingen oppgraderinger tilgjengelig", + "ok": "OK", + "overwrite": "Å gjøre dette vil overskrive det.", + "reload_data": "Dette laster inn dataene til alle repositories HACS vet om, dette vil ta litt tid å fullføre.", + "restart_home_assistant": "Er du sikker på at du vil starte Home Assistant på nytt?", + "uninstall": "Er du sikker på at du vil avinstallere '{item}'?", + "upgrade_all": "Dette vil oppgradere alle disse repositorene, sørg for at du har lest utgivelses notatene for dem alle før du fortsetter.", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Aktiver oppdagelse og sporing av AppDaemon-apper", + "country": "Filtrer med landskode.", + "debug": "Aktiver debug", + "experimental": "Aktiver eksperimentelle funksjoner", + "netdaemon": "Aktiver oppdagelse og sporing av NetDaemon-apper", + "not_in_use": "Ikke i bruk med YAML", + "release_limit": "Antall utgivelser som skal vises.", + "sidepanel_icon": "Sidepanel ikon", + "sidepanel_title": "Sidepanel tittel" + } + } + } + }, + "repository_banner": { + "config_flow": "Denne integrasjonen støtter config_flow, det betyr at du nå kan gå til integrasjoner i brukergrensesnittet for å konfigurere den.", + "config_flow_title": "UI konfigurasjon støttet", + "integration_not_loaded": "Integrasjonen er ikke lastet inn i Home Assistant.", + "no_restart_required": "Ingen omstart kreves", + "not_loaded": "Ikke lastet inn", + "plugin_not_loaded": "Denne pluginen er ikke lagt til i lovelace under \"resource\" delen av konfigurasjonen.", + "restart": "Du må restart Home Assistant", + "restart_pending": "Restart er nødvendig" + }, + "repository": { + "add_to_lovelace": "Legg til i Lovelace", + "authors": "Laget av", + "available": "Tilgjengelig", + "back_to": "Tilbake til", + "changelog": "Endringslogg", + "downloads": "Nedlastinger", + "flag_this": "Flag dette", + "frontend_version": "Frontend versjon", + "github_stars": "GitHub-stjerner", + "goto_integrations": "Gå til integrasjoner", + "hide": "Skjul", + "hide_beta": "Skjul beta", + "installed": "Installert", + "lovelace_copy_example": "Kopier eksemplet til utklippstavlen", + "lovelace_instruction": "Når du legger til dette i lovelace-konfigurasjonen din, bruk dette", + "lovelace_no_js_type": "Kunne ikke bestemme typen for denne plugin, sjekk repository.", + "newest": "Nyeste", + "note_appdaemon": "du må fortsatt legge den til i 'apps.yaml' filen", + "note_installed": "Når det er installert, vil dette ligge i", + "note_integration": "du må fortsatt legge den til 'configuration.yaml' filen", + "note_plugin": "du må fortsatt legge den til i lovelace-konfigurasjonen ('ui-lovelace.yaml' eller den rå UI-konfigurasjonsredigereren)", + "open_issue": "Meld et problem", + "open_plugin": "Åpne plugin", + "reinstall": "Installer på nytt", + "repository": "Repository", + "restart_home_assistant": "Start Home Assistant på nytt", + "show_beta": "Vis beta", + "uninstall": "Avinstaller", + "update_information": "Oppdater informasjon", + "upgrade": "Oppdater" + }, + "settings": { + "add_custom_repository": "LEGG TIL REPOSITORY", + "adding_new_repo": "Legger til ny repository '{repo}'", + "adding_new_repo_category": "Med kategori '{category}'.", + "bg_task_custom": "Custom repositories er skjult mens bakgrunnsoppgaver kjører.", + "category": "Kategori", + "compact_mode": "Kompakt modus", + "custom_repositories": "TILPASSEDE REPOSITORIER", + "delete": "Slett", + "display": "Vise", + "grid": "Nett", + "hacs_repo": "HACS repo", + "hidden_repositories": "Gjemte repositories", + "missing_category": "Du må velge en kategori", + "open_repository": "Åpne repository", + "reload_data": "Last inn data på nytt", + "reload_window": "Last inn vinduet på nytt", + "repository_configuration": "Repository konfigurasjon", + "save": "Lagre", + "table": "Tabell", + "table_view": "Tabellvisning", + "unhide": "Vis igjen", + "upgrade_all": "Oppgradere alle" + }, + "store": { + "ascending": "stigende", + "clear_new": "Tøm nye repositories", + "descending": "synkende", + "last_updated": "Sist oppdatert", + "name": "Navn", + "new_repositories": "Nye repositories", + "pending_upgrades": "Venter på oppgradering", + "placeholder_search": "Skriv inn et søkeord ...", + "sort": "sorter", + "stars": "Stjerner", + "status": "Status" + }, + "time": { + "ago": "siden", + "day": "dag", + "days": "dager", + "hour": "time", + "hours": "timer", + "minute": "minutt", + "minutes": "minutter", + "month": "måned", + "months": "måneder", + "one": "En", + "one_day_ago": "for en dag siden", + "one_hour_ago": "en time siden", + "one_minute_ago": "ett minutt siden", + "one_month_ago": "en måned siden", + "one_second_ago": "ett sekund siden", + "one_year_ago": "ett år siden", + "second": "sekund", + "seconds": "sekunder", + "x_days_ago": "{x} dager siden", + "x_hours_ago": "{x} timer siden", + "x_minutes_ago": "{x} minutter siden", + "x_months_ago": "{x} måneder siden", + "x_seconds_ago": "{x} sekunder siden", + "x_years_ago": "{x} år siden", + "year": "år", + "years": "år" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/nl.json b/custom_components/hacs/.translations/nl.json new file mode 100644 index 0000000..5a8de78 --- /dev/null +++ b/custom_components/hacs/.translations/nl.json @@ -0,0 +1,197 @@ +{ + "common": { + "about": "Over", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Achtergrond taak is draaiende, de pagina herhaalt zichzelf wanneer dit klaar is.", + "check_log_file": "Controleer het logbestand voor meer details.", + "continue": "Doorgaan", + "disabled": "Uitgeschakeld", + "documentation": "Documentatie", + "hacs_is_disabled": "HACS is uitgeschakeld", + "installed": "geinstalleerd", + "integration": "Integratie", + "integrations": "Integraties", + "manage": "beheer", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python Script", + "python_scripts": "Python Scripts", + "repositories": "Repositories", + "settings": "instellingen", + "theme": "Thema", + "themes": "Themas", + "version": "Versie" + }, + "config": { + "abort": { + "single_instance_allowed": "Je kunt maar een enkele configuratie van HACS tegelijk hebben." + }, + "error": { + "auth": "Persoonlijke Toegang Token is niet correct." + }, + "step": { + "user": { + "data": { + "appdaemon": "Zet AppDaemon apps ontdekken & traceren aan", + "netdaemon": "Zet NetDaemon apps ontdekken & traceren aan", + "python_script": "Zet python_scripts ontdekken & traceren aan", + "sidepanel_icon": "Zijpaneel icoon", + "sidepanel_title": "Zijpaneel titel", + "theme": "Zet Themes ontdekken & traceren aan", + "token": "GitHub Persoonlijke Toegang Token" + }, + "description": "Als je hulp nodig hebt met de configuratie, kun je hier verder kijken: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Weet u zeker dat u dit wilt toevoegen aan uw Lovelace bronnen?", + "bg_task": "Actie is geblokkeerd terwijl achtergrondtaken actief zijn.", + "cancel": "Annuleer", + "continue": "Weet je zeker dat je wilt doorgaan?", + "delete": "Weet u zeker dat u '{item}' wilt verwijderen?", + "delete_installed": "'{item}' is geïnstalleerd, je dient het eerst te deïnstalleren voordat je het kan verwijderen.", + "exist": "{item} bestaat al.", + "generic": "Weet je het zeker?", + "home_assistant_is_restarting": "Een moment alstublieft, Home Assistant is aan het herstarten.", + "no": "Nee", + "no_upgrades": "Geen upgrades in afwachting.", + "ok": "Oké", + "overwrite": "Door dit te doen, wordt het overschreven.", + "reload_data": "Dit zal alle bekende data herladen van alle repositories van HACS. Dit kan even duren", + "restart_home_assistant": "Weet u zeker dat u Home Assistant opnieuw wilt starten?", + "uninstall": "Weet u zeker dat u '{item}' wilt verwijderen?", + "upgrade_all": "Hiermee worden al deze repositories geüpgraded. Zorg ervoor dat u de release-opmerkingen van allen heeft gelezen voordat u doorgaat.", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Zet AppDaemon apps ontdekken & traceren aan", + "country": "Filter met land code.", + "debug": "Schakel debug in.", + "experimental": "Zet experimentele functies aan", + "netdaemon": "Zet NetDaemon apps ontdekken & traceren aan", + "not_in_use": "Niet in gebruik met YAML", + "release_limit": "Aantal releases om te laten zien.", + "sidepanel_icon": "Zijpaneel icoon", + "sidepanel_title": "Zijpaneel titel" + } + } + } + }, + "repository_banner": { + "config_flow": "Deze integratie ondersteunt config_flow, wat betekent dat u via uw \"Instellingen\" naar \"Integraties\" kunt gaan om het te configureren.", + "config_flow_title": "UI-configuratie ondersteund", + "integration_not_loaded": "Deze integratie wordt niet geladen in Home Assistant.", + "no_restart_required": "Geen herstart vereist", + "not_loaded": "Niet geladen", + "plugin_not_loaded": "Deze plugin wordt niet toegevoegd aan je Lovelace resources.", + "restart": "U moet Home Assistant opnieuw starten.", + "restart_pending": "Wachten op herstart" + }, + "repository": { + "add_to_lovelace": "Toevoegen aan Lovelace", + "authors": "Auteurs", + "available": "Beschikbaar", + "back_to": "Terug naar", + "changelog": "Changelog", + "downloads": "Downloads", + "flag_this": "Vlag dit", + "frontend_version": "Frontend versie", + "github_stars": "GitHub-sterren", + "goto_integrations": "Ga naar integraties", + "hide": "Verberg", + "hide_beta": "Verberg beta", + "install": "Installeer", + "installed": "Geinstalleerd", + "lovelace_copy_example": "Kopier het voorbeeld naar je klembord", + "lovelace_instruction": "Wanneer je dit gaat toevoegen aan je lovelace configuratie gebruik dit", + "lovelace_no_js_type": "Kon niet achterhalen welk type plugin dit is, controleer de repository van de plugin.", + "newest": "nieuwste", + "note_appdaemon": "je moet het nog steeds toevoegen aan je 'apps.yaml' bestand", + "note_installed": "Wanneer geïnstalleerd, staat het in", + "note_integration": "je moet het nog steeds toevoegen aan je 'configuration.yaml' bestand", + "note_plugin": "je moet het nog steeds toevoegen aan je lovelace configuratie ('ui-lovelace.yaml') of raw UI config editor.", + "open_issue": "Meld probleem", + "open_plugin": "Open plugin", + "reinstall": "Herinstalleer", + "repository": "Repository", + "restart_home_assistant": "Start Home Assistant opnieuw", + "show_beta": "Laat beta zien", + "uninstall": "Verwijder", + "update_information": "Update informatie", + "upgrade": "Update" + }, + "settings": { + "add_custom_repository": "VOEG EIGEN REPOSITORY TOE", + "adding_new_repo": "Nieuwe repository '{repo}' toevoegen", + "adding_new_repo_category": "Met categorie '{category}'.", + "bg_task_custom": "Aangepaste repositories zijn verborgen terwijl de achtergrondtaken actief zijn.", + "category": "Categorie", + "compact_mode": "Compacte modus", + "custom_repositories": "EIGEN REPOSITORIES", + "delete": "Verwijder", + "display": "Weergave", + "grid": "Rooster", + "hacs_repo": "HACS repo", + "hidden_repositories": "verborgen repositories", + "missing_category": "Je moet een categorie selecteren.", + "open_repository": "Open repository", + "reload_data": "Herlaad data", + "reload_window": "Herlaad venster", + "repository_configuration": "Repository configuratie", + "save": "Opslaan", + "table": "Tabel", + "table_view": "Tabelweergave", + "unhide": "zichtbaar maken", + "upgrade_all": "Upgrade alles" + }, + "store": { + "ascending": "oplopend", + "clear_new": "Wissen van alle nieuwe repositories", + "descending": "Aflopend", + "last_updated": "Laatste update", + "name": "Naam", + "new_repositories": "Nieuwe Repositories", + "pending_upgrades": "Upgrades in afwachting", + "placeholder_search": "Typ iets om te zoeken...", + "sort": "sorteer", + "stars": "Sterren", + "status": "Status" + }, + "time": { + "ago": "geleden", + "day": "dag", + "days": "dagen", + "hour": "uur", + "hours": "uren", + "minute": "minuut", + "minutes": "minuten", + "month": "maand", + "months": "maanden", + "one": "Eén", + "one_day_ago": "een dag geleden", + "one_hour_ago": "een uur geleden", + "one_minute_ago": "een minuut geleden", + "one_month_ago": "een maand geleden", + "one_second_ago": "een seconde geleden", + "one_year_ago": "een jaar geleden", + "second": "seconde", + "seconds": "seconden", + "x_days_ago": "{x} dagen geleden", + "x_hours_ago": "{x} uur geleden", + "x_minutes_ago": "{x} minuten geleden", + "x_months_ago": "{x} maanden geleden", + "x_seconds_ago": "{x} seconden geleden", + "x_years_ago": "{x} jaar geleden", + "year": "jaar", + "years": "jaren" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/nn.json b/custom_components/hacs/.translations/nn.json new file mode 100644 index 0000000..5c1fc0c --- /dev/null +++ b/custom_components/hacs/.translations/nn.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "Om", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDeamon-appar", + "background_task": "Bakgrunnsoppgåve køyrer. Denne sida kjem til å laste seg omatt når ho er ferdig.", + "check_log_file": "Sjå i loggfila di for meir detaljar.", + "continue": "Hald fram", + "disabled": "Deaktivert", + "documentation": "Dokumentasjon", + "hacs_is_disabled": "HACS er deaktivert", + "installed": "Installert", + "integration": "Integrasjon", + "integrations": "Integrasjonar", + "manage": "Handtere", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDeamon-appar", + "plugin": "Tillegg", + "plugins": "Tillegg", + "python_script": "Pythonskript", + "python_scripts": "Pythonskript", + "repositories": "Repositories", + "settings": "innstillingar", + "theme": "Tema", + "themes": "Tema", + "version": "Versjon" + }, + "config": { + "abort": { + "single_instance_allowed": "Berre éin enkelt konfigurasjon av HACS er tillete." + }, + "error": { + "auth": "Personleg tilgangsnøkkel er ikkje korrekt." + }, + "step": { + "user": { + "data": { + "appdaemon": "Aktiver AppDeamon-appar-oppdaging og sporing", + "netdaemon": "Aktiver NetDeamon-appar-oppdaging og sporing", + "python_script": "Aktiver pythonscript-oppdaging og sporing", + "sidepanel_icon": "Sidepanelikon", + "sidepanel_title": "Sidepaneltittel", + "theme": "Aktiver tema-oppdaging og sporing", + "token": "Personleg GitHub tilgangsnøkkel" + }, + "description": "Dersom du treng hjelp med konfigurasjonen, ta ein kik her: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Er du sikker på at du vil legge til dette i Lovelace-ressursane dine?", + "bg_task": "Handlinga er deaktivert medan bakgrunnsoppgåveene køyrer.", + "cancel": "Avbryt", + "continue": "Er du sikker på at du vil halde fram?", + "delete": "Er du sikker på at du vil slette '{item}'?", + "delete_installed": "'{item}' er installert. Du må avinstallere det før du kan slette det.", + "exist": "{item} eksisterer allereie", + "generic": "Er du sikker?", + "home_assistant_is_restarting": "Vent... Home Assistant starter på nytt no.", + "home_assistant_version_not_correct": "Du køyrer Home Assistant-versjonen '{haversion}', men dette kodedepoet krev minimum versjon '{minversion}' for å bli installert.", + "no": "Nei", + "no_upgrades": "Ingen ventande oppgradringer", + "ok": "OK", + "overwrite": "Ved å gjere dette kjem du til å overskrive.", + "reload_data": "Dette laster inn dataa til depota HACS veit om, og dette vil ta litt tid å fullføre.", + "restart_home_assistant": "Er du sikker på at du vil starte Home Assistant på nytt?", + "uninstall": "Er du sikker på at du vil avinstallere '{item}'?", + "upgrade_all": "Dette kjem til å oppgradere alle depota. Ver sikker på at du har lest alle versjonsmerknadene før du held fram.", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Aktiver AppDeamon-appar-oppdaging og sporing", + "country": "Filterer med landskode", + "debug": "Aktiver debug.", + "experimental": "Aktiver ekspreimentelle funksjonar", + "netdaemon": "Aktiver NetDeamon-appar-oppdaging og sporing", + "not_in_use": "Kan ikkje brukast saman med YAML", + "release_limit": "Talet på utgivingar", + "sidepanel_icon": "Sidepanelikon", + "sidepanel_title": "Sidepaneltittel" + } + } + } + }, + "repository_banner": { + "config_flow": "Denne integrasjonen støttar config_flow, som betyr at du no kan gå til integrasjonssida i brukargrensesnittet for å konfigurere den.", + "config_flow_title": "UI-konfigurasjon støtta", + "integration_not_loaded": "Integrasjonen er ikkje lasta inn i Home Assistant.", + "no_restart_required": "Ingen omstart kravd", + "not_loaded": "Ikkje lasta", + "plugin_not_loaded": "Tillegget er ikkje lagt til i Lovelace-ressursane dine.", + "restart": "Du må starte Home Assistant på nytt", + "restart_pending": "Omstart venter" + }, + "repository": { + "add_to_lovelace": "Legg til i Lovelace", + "authors": "Forfatter(e)", + "available": "Tilgjengeleg", + "back_to": "Tilbake til", + "changelog": "Endre logg", + "downloads": "Nedlastinger", + "flag_this": "Marker dette", + "frontend_version": "Frontend-versjon", + "github_stars": "GitHub-stjerner", + "goto_integrations": "Gå til integrasjonar", + "hide": "Gøym", + "hide_beta": "Gøym beta", + "install": "Installer", + "installed": "Installert", + "lovelace_copy_example": "Kopier eksempelet til utklippsbreittet ditt", + "lovelace_instruction": "Når du legg til dette i Lovelace-konfigurasjonen din, bruk dette", + "lovelace_no_js_type": "Kunne ikkje slå fast typen til dette tilegget. Sjå i repositoryet.", + "newest": "nyaste", + "note_appdaemon": "du må framleis legge dette til i \"apps.yaml\"-fila di", + "note_installed": "Når dette er installert, kjem den til å vere plassert i", + "note_integration": "du må framleis legge dette til i \"configuration.yaml\"-fila di", + "note_plugin": "du må framleis dette til i Lovelace-konfigurasjonen (\"ui-lovelace.yaml\" eller i rå-brukargrensesnittredigeraren", + "open_issue": "Opne problem", + "open_plugin": "Opne tillegg", + "reinstall": "Installer på nytt", + "repository": "Repository", + "restart_home_assistant": "Start Home Assistant på nytt", + "show_beta": "Vis beta", + "uninstall": "Avinstaller", + "update_information": "Oppdater informasjonen", + "upgrade": "Oppdater" + }, + "settings": { + "add_custom_repository": "LEGG TIL EIN ANNAN REPOSITORY", + "adding_new_repo": "Legger til ny repository '{repo}'", + "adding_new_repo_category": "Med kategori '{category}'.", + "bg_task_custom": "Custom repositories er skjult medan bakgrunnsoppgaver køyrer.", + "category": "Kategori", + "compact_mode": "Kompaktmodus", + "custom_repositories": "VANLEG REPOSITORY", + "delete": "Slett", + "display": "Vis", + "grid": "rutenett", + "hacs_repo": "HACS repo", + "hidden_repositories": "gøymde repositories", + "missing_category": "Du må velje éin kategori", + "open_repository": "Opne repository", + "reload_data": "Last om dataa", + "reload_window": "Last inn vindauget på nytt", + "repository_configuration": "Repository-konfigurasjon", + "save": "Lagre", + "table": "Tavle", + "table_view": "Tabellvisning", + "unhide": "vis", + "upgrade_all": "Oppdater alle" + }, + "store": { + "ascending": "stigande", + "clear_new": "Fjern alle nye repositories", + "descending": "synkande", + "last_updated": "Sist oppdatert", + "name": "Namn", + "new_repositories": "Ny repository", + "pending_upgrades": "Ventande oppgraderinger", + "placeholder_search": "Ver vennleg og skriv inn ei søkefrase", + "sort": "Sorter", + "stars": "Stjerner", + "status": "Status" + }, + "time": { + "ago": "sidan", + "day": "dag", + "days": "dagar", + "hour": "time", + "hours": "timar", + "minute": "minutt", + "minutes": "minutt", + "month": "månad", + "months": "månadar", + "one": "Éin", + "one_day_ago": "for éin dag sidan", + "one_hour_ago": "éin time sidan", + "one_minute_ago": "eitt minutt sidan", + "one_month_ago": "ein månad sidan", + "one_second_ago": "eitt sekund sidan", + "one_year_ago": "eitt år sidan", + "second": "sekund", + "seconds": "sekund", + "x_days_ago": "{x} dagar siden", + "x_hours_ago": "{x} timer sidan", + "x_minutes_ago": "{x} minutt sidan", + "x_months_ago": "{x} månadar sidan", + "x_seconds_ago": "{x} sekund sidan", + "x_years_ago": "{x} år sidan", + "year": "år", + "years": "år" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/pl.json b/custom_components/hacs/.translations/pl.json new file mode 100644 index 0000000..b76329d --- /dev/null +++ b/custom_components/hacs/.translations/pl.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "O", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Aplikacje AppDaemon", + "background_task": "Wykonywanie zadania w tle, ta strona zostanie odświeżona, gdy zadanie zostanie ukończone.", + "check_log_file": "Sprawdź plik dziennika, aby uzyskać więcej informacji.", + "continue": "Kontynuuj", + "disabled": "Wyłączony", + "documentation": "Dokumentacja", + "hacs_is_disabled": "HACS jest wyłączony", + "installed": "zainstalowane", + "integration": "Integracja", + "integrations": "Integracje", + "manage": "zarządzaj", + "netdaemon": "NetDaemon", + "netdaemon_apps": "Aplikacje NetDaemon", + "plugin": "Wtyczka", + "plugins": "Wtyczki", + "python_script": "Skrypt Python", + "python_scripts": "Skrypty Python", + "repositories": "Repozytoria", + "settings": "ustawienia", + "theme": "Motyw", + "themes": "Motywy", + "version": "Wersja" + }, + "config": { + "abort": { + "single_instance_allowed": "Dozwolona jest tylko jedna konfiguracja HACS." + }, + "error": { + "auth": "Osobisty token dostępu jest nieprawidłowy." + }, + "step": { + "user": { + "data": { + "appdaemon": "Włącz wykrywanie i śledzenie aplikacji AppDaemon", + "netdaemon": "Włącz wykrywanie i śledzenie aplikacji NetDaemon", + "python_script": "Włącz wykrywanie i śledzenie skryptów Python", + "sidepanel_icon": "Ikona w panelu bocznym", + "sidepanel_title": "Tytuł w panelu bocznym", + "theme": "Włącz wykrywanie i śledzenie motywów", + "token": "Osobisty token dostępu GitHub" + }, + "description": "Jeśli potrzebujesz pomocy w konfiguracji, przejdź na stronę: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Na pewno chcesz dodać to do swoich zasobów Lovelace?", + "bg_task": "Akcja jest wyłączona podczas wykonywania zadań w tle.", + "cancel": "Anuluj", + "continue": "Na pewno chcesz kontynuować?", + "delete": "Na pewno chcesz usunąć '{item}'?", + "delete_installed": "'{item}' jest zainstalowany, musisz go odinstalować zanim będziesz mógł go usunąć.", + "exist": "{item} już istnieje", + "generic": "Jesteś pewny?", + "home_assistant_is_restarting": "Poczekaj, Home Assistant jest teraz ponownie uruchamiany.", + "home_assistant_version_not_correct": "Używasz Home Assistant'a w wersji '{haversion}', a to repozytorium wymaga wersji minimum '{minversion}'.", + "no": "Nie", + "no_upgrades": "Brak oczekujących aktualizacji", + "ok": "Ok", + "overwrite": "Spowoduje to zastąpienie istniejącej kopii.", + "reload_data": "To przeładowuje dane wszystkich repozytoriów, o których wie HACS, może to trochę potrwać.", + "restart_home_assistant": "Na pewno chcesz ponownie uruchomić Home Assistant'a?", + "uninstall": "Na pewno chcesz odinstalować '{item}'?", + "upgrade_all": "To uaktualni wszystkie te repozytoria, upewnij się, że przeczytałeś uwagi do wydania dla wszystkich z nich przed kontynuacją.", + "yes": "Tak" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Włącz wykrywanie i śledzenie aplikacji AppDaemon", + "country": "Filtruj według kodu kraju", + "debug": "Włącz debugowanie.", + "experimental": "Włącz funkcje eksperymentalne", + "netdaemon": "Włącz wykrywanie i śledzenie aplikacji NetDaemon", + "not_in_use": "Nieużywany z YAML", + "release_limit": "Liczba wydań do wyświetlenia", + "sidepanel_icon": "Ikona w panelu bocznym", + "sidepanel_title": "Tytuł w panelu bocznym" + } + } + } + }, + "repository_banner": { + "config_flow": "Ta integracja obsługuje config_flow, co oznacza, że możesz teraz przejść do sekcji integracji w interfejsie użytkownika, aby ją skonfigurować.", + "config_flow_title": "Obsługiwana konfiguracja poprzez interfejs użytkownika", + "integration_not_loaded": "Ta integracja nie jest załadowana do Home Assistant'a.", + "no_restart_required": "Ponowne uruchomienie nie jest wymagane", + "not_loaded": "Nie załadowano", + "plugin_not_loaded": "Ta wtyczka nie jest dodana do zasobów Lovelace.", + "restart": "Musisz ponownie uruchomić Home Assistant'a.", + "restart_pending": "Oczekiwanie na ponowne uruchomienie" + }, + "repository": { + "add_to_lovelace": "Dodaj do Lovelace", + "authors": "Autorzy", + "available": "Dostępna", + "back_to": "Wróć do", + "changelog": "Lista zmian", + "downloads": "Ilość pobrań", + "flag_this": "Oflaguj", + "frontend_version": "Wersja frontendu", + "github_stars": "Gwiazdki GitHub", + "goto_integrations": "Przejdź do integracji", + "hide": "Ukryj", + "hide_beta": "Ukryj wydania beta", + "install": "Zainstaluj", + "installed": "Zainstalowano", + "lovelace_copy_example": "Skopiuj przykład do schowka", + "lovelace_instruction": "Interfejs użytkownika użyje tej wtyczki po dodaniu konfiguracji", + "lovelace_no_js_type": "Nie można określić typu tej wtyczki, sprawdź repozytorium.", + "newest": "najnowsza", + "note_appdaemon": "musisz jeszcze dodać aplikację do pliku 'apps.yaml'", + "note_installed": "Po zainstalowaniu dodatek będzie znajdować się w", + "note_integration": "musisz jeszcze dodać integrację do pliku 'configuration.yaml'", + "note_plugin": "musisz jeszcze dodać wtyczkę do konfiguracji interfejsu użytkownika (plik 'ui-lovelace.yaml' lub edytor interfejsu użytkownika)", + "open_issue": "Powiadom o problemie", + "open_plugin": "Otwórz dodatek", + "reinstall": "Przeinstaluj", + "repository": "Repozytorium", + "restart_home_assistant": "Uruchom ponownie Home Assistant'a", + "show_beta": "Wyświetl wydania beta", + "uninstall": "Odinstaluj", + "update_information": "Informacje o aktualizacji", + "upgrade": "Uaktualnij" + }, + "settings": { + "add_custom_repository": "DODAJ REPOZYTORIUM NIESTANDARDOWE", + "adding_new_repo": "Dodawanie nowego repozytorium '{repo}'", + "adding_new_repo_category": "Z kategorią '{category}'.", + "bg_task_custom": "Niestandardowe repozytoria są ukryte podczas wykonywania zadań w tle.", + "category": "Kategoria", + "compact_mode": "Tryb kompaktowy", + "custom_repositories": "REPOZYTORIA NIESTANDARDOWE", + "delete": "Usuń", + "display": "Sposób wyświetlania", + "grid": "Siatka", + "hacs_repo": "Repozytorium HACS", + "hidden_repositories": "ukryte repozytoria", + "missing_category": "Musisz wybrać kategorię", + "open_repository": "Otwórz repozytorium", + "reload_data": "Wczytaj ponownie dane", + "reload_window": "Załaduj ponownie okno", + "repository_configuration": "Konfiguracja repozytorium", + "save": "Zapisz", + "table": "tabela", + "table_view": "Widok tabeli", + "unhide": "pokaż", + "upgrade_all": "Uaktualnij wszystkie" + }, + "store": { + "ascending": "rosnąco", + "clear_new": "Wyczyść wszystkie nowe repozytoria", + "descending": "malejąco", + "last_updated": "Ostatnia aktualizacja", + "name": "Nazwa", + "new_repositories": "Nowe repozytoria", + "pending_upgrades": "Oczekujące aktualizacje", + "placeholder_search": "Wprowadź wyszukiwane hasło...", + "sort": "sortowanie", + "stars": "Gwiazdki", + "status": "Status" + }, + "time": { + "ago": "temu", + "day": "dzień", + "days": "dni", + "hour": "godzina", + "hours": "godziny", + "minute": "minuta", + "minutes": "minuty", + "month": "miesiąc", + "months": "miesięcy", + "one": "Jeden", + "one_day_ago": "jeden dzień temu", + "one_hour_ago": "jedna godzina temu", + "one_minute_ago": "jedna minuta temu", + "one_month_ago": "jeden miesiąc temu", + "one_second_ago": "jedna sekunda temu", + "one_year_ago": "jeden rok temu", + "second": "sekunda", + "seconds": "sekundy", + "x_days_ago": "{x} dni temu", + "x_hours_ago": "{x} godzin(-y) temu", + "x_minutes_ago": "{x} minut(-y) temu", + "x_months_ago": "{x} miesi(-ące\/-ęcy) temu", + "x_seconds_ago": "{x} sekund(-y) temu", + "x_years_ago": "{x} lat(-a) temu", + "year": "rok", + "years": "lata" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/pt-BR.json b/custom_components/hacs/.translations/pt-BR.json new file mode 100644 index 0000000..e7089af --- /dev/null +++ b/custom_components/hacs/.translations/pt-BR.json @@ -0,0 +1,182 @@ +{ + "common": { + "about": "Sobre", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Apps", + "background_task": "Tarefa em segundo plano em execução, esta página será recarregada quando terminar.", + "continue": "Continuar", + "disabled": "Desativado", + "documentation": "Documentação", + "hacs_is_disabled": "HACS está desativado", + "installed": "instalado", + "integration": "Integração", + "integrations": "Integrações", + "manage": "gerenciar", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Apps", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python Script", + "python_scripts": "Python Scripts", + "repositories": "Repositórios", + "settings": "configurações", + "theme": "Tema", + "themes": "Temas", + "version": "Versão" + }, + "config": { + "abort": { + "single_instance_allowed": "Apenas uma configuração do HACS é permitida." + }, + "error": { + "auth": "Token de acesso pessoal incorreto." + }, + "step": { + "user": { + "data": { + "appdaemon": "Habilitar AppDaemon apps descoberta & rastreamento", + "netdaemon": "Habilitar NetDaemon apps descoberta & rastreamento", + "python_script": "Habilitar python_scripts descoberta & rastreamento", + "sidepanel_icon": "Icone do painel lateral", + "sidepanel_title": "Titulo do painel lateral", + "theme": "Habilitar temas descoberta & rastreamento", + "token": "GitHub Token de acesso pessoal" + }, + "description": "Se você preciar de ajuda com a configuração olhe aqui: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "cancel": "Cancelar", + "continue": "Tem certeza que quer continuar?", + "delete": "Tem certeza de que deseja excluir '{item}'?", + "exist": "{item} já existe", + "home_assistant_is_restarting": "Espere, o Home Assistant está agora a reiniciar.", + "no": "Não", + "ok": "OK", + "restart_home_assistant": "Tem certeza de que deseja reiniciar o Home Assistant?", + "uninstall": "Tem certeza de que deseja desinstalar '{item}'?", + "yes": "Sim" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Habilitar AppDaemon apps descoberta & rastreamento", + "country": "Filtro pelo código do país.", + "experimental": "Ativar recursos experimentais", + "netdaemon": "Habilitar NetDaemon apps descoberta & rastreamento", + "not_in_use": "Não está em uso com o YAML", + "release_limit": "Número de lançamentos a serem exibidos.", + "sidepanel_icon": "Icone do painel lateral", + "sidepanel_title": "Titulo do painel lateral" + } + } + } + }, + "repository_banner": { + "integration_not_loaded": "Esta integração não é carregada no Home Assistant.", + "no_restart_required": "Não é necessário reiniciar", + "not_loaded": "Não carregado", + "restart": "Você precisa reiniciar o Home Assistant.", + "restart_pending": "Reiniciar pendente" + }, + "repository": { + "add_to_lovelace": "Adicionar a Lovelace", + "authors": "Autores", + "available": "Disponível", + "back_to": "Voltar para", + "changelog": "Changelog", + "downloads": "Downloads", + "flag_this": "Sinalizar isso", + "frontend_version": "Versão Frontend", + "github_stars": "Estrelas de GitHub", + "goto_integrations": "Ir para integrações", + "hide": "Esconder", + "hide_beta": "Esconder beta", + "install": "Instalar", + "installed": "Instalado", + "lovelace_copy_example": "Copie este exemplo para seu clipboard", + "lovelace_instruction": "Quando você adicionar isso à sua configuração do lovelace, use este", + "lovelace_no_js_type": "Não foi possível determinar o tipo deste plug-in, verifique o repositório.", + "newest": "O mais novo", + "note_appdaemon": "Você ainda precisa adicioná-lo ao seu arquivo 'apps.yaml'", + "note_installed": "Quando instalado, ele estará localizado em", + "note_integration": "Você ainda precisa adicioná-lo ao seu arquivo 'configuration.yaml'", + "note_plugin": "você ainda precisará adicioná-lo à sua configuração do lovelace ('ui-lovelace.yaml' ou o editor de configuração da interface do usuário)", + "open_issue": "Open issue", + "open_plugin": "Plugin aberto", + "reinstall": "Reinstalar", + "repository": "Repositório", + "restart_home_assistant": "Reiniciar Home Assistant", + "show_beta": "Mostrar beta", + "uninstall": "Desinstalar", + "update_information": "Atualizar informação", + "upgrade": "Melhorar" + }, + "settings": { + "add_custom_repository": "ADICIONAR REPOSITÓRIO PERSONALIZADO", + "adding_new_repo": "Adicionando novo repositório '{repo}'", + "adding_new_repo_category": "Com a categoria '{category}'.", + "category": "Categoria", + "compact_mode": "Modo compacto", + "custom_repositories": "REPOSITÓRIOS PERSONALIZADOS", + "delete": "Deletar", + "display": "Display", + "grid": "Grade", + "hacs_repo": "HACS repo", + "hidden_repositories": "repositórios ocultos", + "missing_category": "Você precisa selecionar uma categoria", + "open_repository": "Repositório aberto", + "reload_data": "Recarregar dados", + "reload_window": "Recarregar janela", + "repository_configuration": "Configuração do Repositório", + "save": "Salvar", + "table": "Tabela", + "table_view": "Vista de mesa", + "unhide": "reexibir", + "upgrade_all": "Atualizar tudo" + }, + "store": { + "ascending": "ascendente", + "clear_new": "Limpar todos os novos repositórios", + "descending": "descendente", + "last_updated": "Última atualização", + "name": "Nome", + "new_repositories": "Novos Repositórios", + "pending_upgrades": "Atualizações pendentes", + "placeholder_search": "Por favor insira um termo de pesquisa...", + "stars": "Estrelas", + "status": "Status" + }, + "time": { + "ago": "atrás", + "day": "dia", + "days": "dias", + "hour": "hora", + "hours": "horas", + "minute": "minuto", + "minutes": "minutos", + "month": "mês", + "months": "meses", + "one": "Um", + "one_day_ago": "um dia atrás", + "one_hour_ago": "uma hora atrás", + "one_minute_ago": "um minuto atrás", + "one_month_ago": "um mês atrás", + "one_second_ago": "um segundo atrás", + "one_year_ago": "um ano atrás", + "second": "segundo", + "seconds": "segundos", + "x_days_ago": "{x} dias atrás", + "x_hours_ago": "{x} horas atrás", + "x_minutes_ago": "{x} minutos atrás", + "x_months_ago": "{x} meses atrás", + "x_seconds_ago": "{x} segundos atrás", + "x_years_ago": "{x} anos atrás", + "year": "ano", + "years": "anos" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/ro.json b/custom_components/hacs/.translations/ro.json new file mode 100644 index 0000000..d6884aa --- /dev/null +++ b/custom_components/hacs/.translations/ro.json @@ -0,0 +1,176 @@ +{ + "common": { + "about": "Despre", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Aplicații AppDaemon", + "background_task": "Activitatea de fundal se execută, această pagină se va reîncărca atunci când este gata.", + "continue": "Continua", + "disabled": "Dezactivat", + "documentation": "Documentație", + "hacs_is_disabled": "HACS este dezactivat", + "installed": "instalat", + "integration": "Integrare", + "integrations": "Integrări", + "netdaemon": "NetDaemon", + "netdaemon_apps": "Aplicații NetDaemon", + "plugin": "Plugin", + "plugins": "Plugin-uri", + "python_script": "Script Python", + "python_scripts": "Scripturi Python", + "repositories": "Depozite", + "settings": "setări", + "theme": "Temă", + "themes": "Teme", + "version": "Versiune" + }, + "config": { + "abort": { + "single_instance_allowed": "Doar o singură configurație pentru HACS este permisă." + }, + "error": { + "auth": "Token-ul de acces personal nu este corect." + }, + "step": { + "user": { + "data": { + "appdaemon": "Activați descoperirea și urmărirea aplicațiilor AppDaemon", + "netdaemon": "Activați descoperirea și urmărirea aplicațiilor NetDaemon", + "python_script": "Activați descoperirea și urmărirea python_scripts", + "sidepanel_icon": "Pictogramă Panou lateral", + "sidepanel_title": "Titlu panou lateral", + "theme": "Activați descoperirea și urmărirea temelor", + "token": "Token de acces personal GitHub" + }, + "description": "Dacă aveți nevoie de ajutor pentru configurare, uitați-vă aici: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "bg_task": "Acțiunea este dezactivată în timp ce activitățile de fundal se execută.", + "cancel": "Anulare", + "delete": "Sigur doriți să ștergeți '{item}'?", + "exist": "{item} există deja", + "no": "Nu", + "ok": "OK", + "uninstall": "Sigur doriți să dezinstalați '{item}'?", + "yes": "Da" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Activați descoperirea și urmărirea aplicațiilor AppDaemon", + "country": "Filtrează cu codul țării.", + "experimental": "Activați funcțiile experimentale", + "netdaemon": "Activați descoperirea și urmărirea aplicațiilor NetDaemon", + "not_in_use": "Nu este utilizat cu YAML", + "release_limit": "Număr de versiuni afișate.", + "sidepanel_icon": "Pictogramă Panou lateral", + "sidepanel_title": "Titlu panou lateral" + } + } + } + }, + "repository_banner": { + "integration_not_loaded": "Această integrare nu este încărcată în Home Assistant.", + "no_restart_required": "Nu este necesară repornirea", + "restart": "Trebuie să reporniți Home Assistant.", + "restart_pending": "Reporniți în așteptare" + }, + "repository": { + "add_to_lovelace": "Adăugați la Lovelace", + "authors": "Autori", + "available": "Disponibil", + "back_to": "Înapoi la", + "changelog": "Jurnal modificari", + "downloads": "Descărcări", + "flag_this": "Semnalizează", + "frontend_version": "Versiune frontend", + "github_stars": "Stele GitHub", + "hide": "Ascunde", + "hide_beta": "Ascundere beta", + "install": "Instalează", + "installed": "Instalat", + "lovelace_copy_example": "Copiați exemplul în clipboard", + "lovelace_instruction": "Când adăugați acest lucru la configurația lovelace, folosiți acest", + "lovelace_no_js_type": "Nu s-a putut determina tipul acestui plugin, verificați \"repository\".", + "newest": "cele mai noi", + "note_appdaemon": "mai trebuie să o adăugați in fișierul „apps.yaml”", + "note_installed": "Când este instalat, acesta va fi localizat în", + "note_integration": "mai trebuie să o adăugați in fișierul „configuration.yaml”", + "note_plugin": "mai trebuie să o adăugați la configurația lovelace ('ui-lovelace.yaml' sau in editorul UI)", + "open_issue": "Deschidere problemă", + "open_plugin": "Deschide plugin", + "reinstall": "Reinstalare", + "repository": "Depozit", + "restart_home_assistant": "Reporniți Home Assistant", + "show_beta": "Afișare beta", + "uninstall": "Dezinstalare", + "update_information": "Actualizare informație", + "upgrade": "Actualizare" + }, + "settings": { + "add_custom_repository": "ADĂUGARE DEPOZIT PERSONALIZAT", + "adding_new_repo": "Adăugarea unui depozit nou '{repo}'", + "adding_new_repo_category": "Cu categoria '{categoria}'.", + "category": "Categorie", + "compact_mode": "Modul compact", + "custom_repositories": "DEPOZITE PERSONALIZATE", + "delete": "Șterge", + "display": "Afişeaza", + "grid": "Grilă", + "hacs_repo": "HACS repo", + "hidden_repositories": "depozite ascunse", + "missing_category": "Trebuie să selectați o categorie", + "open_repository": "Deschideți depozitul", + "reload_data": "Reîncărcați datele", + "reload_window": "Reîncărcați fereastra", + "repository_configuration": "Configurația depozitului", + "save": "Salveaza", + "table": "Tabel", + "table_view": "Vizualizare tabel", + "unhide": "Unhide", + "upgrade_all": "Actualizați toate" + }, + "store": { + "ascending": "ascendent", + "descending": "descendent", + "last_updated": "Ultima actualizare", + "name": "Nume", + "new_repositories": "Noi depozite", + "placeholder_search": "Vă rugăm să introduceți un termen de căutare ...", + "sort": "fel", + "stars": "Stele", + "status": "Starea" + }, + "time": { + "ago": "în urmă", + "day": "zi", + "days": "zi", + "hour": "oră", + "hours": "ore", + "minute": "minut", + "minutes": "minute", + "month": "lună", + "months": "luni", + "one": "Unu", + "one_day_ago": "acum o zi", + "one_hour_ago": "acum o oră", + "one_minute_ago": "acum un minut", + "one_month_ago": "acum o luna", + "one_second_ago": "acum o secunda", + "one_year_ago": "acum un an", + "second": "al doilea", + "seconds": "secunde", + "x_days_ago": "{x} zile în urmă", + "x_hours_ago": "{x} ore în urmă", + "x_minutes_ago": "{x} minute în urmă", + "x_months_ago": "{x} luni în urmă", + "x_seconds_ago": "{x} secunde în urmă", + "x_years_ago": "{x} ani în urmă", + "year": "an", + "years": "ani" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/ru.json b/custom_components/hacs/.translations/ru.json new file mode 100644 index 0000000..7cde0bf --- /dev/null +++ b/custom_components/hacs/.translations/ru.json @@ -0,0 +1,193 @@ +{ + "common": { + "about": "О проекте", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Приложения AppDaemon", + "background_task": "Выполняется фоновая задача, страница перезагрузится по готовности.", + "check_log_file": "Проверьте логи для получения более подробной информации.", + "continue": "Продолжить", + "disabled": "Отключено", + "documentation": "Документация", + "hacs_is_disabled": "HACS отключен", + "installed": "установлено", + "integration": "Интеграция", + "integrations": "Интеграции", + "manage": "управлять", + "netdaemon": "NetDaemon", + "netdaemon_apps": "Приложения NetDaemon", + "plugin": "Плагин", + "plugins": "Плагины", + "python_script": "Скрипт Python", + "python_scripts": "Скрипты Python", + "repositories": "Репозитории", + "settings": "настройки", + "theme": "Тема", + "themes": "Темы", + "version": "Версия" + }, + "config": { + "abort": { + "single_instance_allowed": "Разрешена только одна настройка HACS." + }, + "error": { + "auth": "Неверный токен персонального доступа." + }, + "step": { + "user": { + "data": { + "appdaemon": "Включить поиск и отслеживание приложений AppDaemon", + "netdaemon": "Включить поиск и отслеживание приложений NetDaemon", + "python_script": "Включить поиск и отслеживание скриптов Python", + "sidepanel_icon": "Иконка в боковом меню", + "sidepanel_title": "Название в боковом меню", + "theme": "Включить поиск и отслеживание тем", + "token": "Персональный токен доступа GitHub" + }, + "description": "Если вам нужна помощь с настройкой, посмотрите: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Вы уверены, что хотите добавить это в ресурсы Lovelace?", + "bg_task": "Действие отключено во время выполнения фоновых задач.", + "cancel": "Отмена", + "continue": "Вы уверены, что хотите продолжить?", + "delete": "Вы уверены, что хотите удалить '{item}'?", + "delete_installed": "'{item}' установлен, вам нужно нажать 'Удалить', чтобы удалить его.", + "exist": "{item} уже существует.", + "generic": "Вы уверены?", + "no": "Нет", + "no_upgrades": "Нет обновлений", + "ok": "ОК", + "overwrite": "После подтверждения файлы будут перезаписаны.", + "reload_data": "Выполняется перезагрузка данных всех репозиториев в HACS, это займет некоторое время.", + "restart_home_assistant": "Вы уверены, что хотите перезапустить Home Assistant?", + "uninstall": "Вы уверены, что хотите удалить '{item}'?", + "yes": "Да" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Включить поиск и отслеживание приложений AppDaemon", + "country": "Фильтр по стране.", + "debug": "Включить отладку.", + "experimental": "Вкл. экспериментальные функции", + "netdaemon": "Включить поиск и отслеживание приложений NetDaemon", + "not_in_use": "Не используется с YAML", + "release_limit": "Число доступных версий.", + "sidepanel_icon": "Иконка в боковом меню", + "sidepanel_title": "Название в боковом меню" + } + } + } + }, + "repository_banner": { + "integration_not_loaded": "Эта интеграция не загружена в Home Assistant.", + "no_restart_required": "Перезагрузка не требуется", + "not_loaded": "Не загружено", + "plugin_not_loaded": "Этот плагин не добавлен к ресурсам Lovelace.", + "restart": "Вам нужно перезапустить Home Assistant.", + "restart_pending": "Ожидается перезапуск" + }, + "repository": { + "add_to_lovelace": "Добавить в Lovelace", + "authors": "Авторы", + "available": "Доступно", + "back_to": "Назад к", + "changelog": "Изменения", + "downloads": "Загрузки", + "flag_this": "Пожаловаться", + "frontend_version": "Версия", + "github_stars": "Звезды GitHub", + "goto_integrations": "Перейти к интеграции", + "hide": "Скрыть", + "hide_beta": "Скрыть бета", + "install": "Установить", + "installed": "Установлено", + "lovelace_copy_example": "Скопируйте пример в буфер обмена", + "lovelace_instruction": "Для добавления в конфигурацию Lovelace, используйте", + "lovelace_no_js_type": "Не удалось определить тип этого плагина, проверьте репозиторий.", + "newest": "новейшая", + "note_appdaemon": "вам всё ещё нужно добавить код для настройки приложения в файл 'apps.yaml'", + "note_installed": "После установки, файлы будут расположены в", + "note_integration": "вам всё ещё нужно добавить код для настройки интеграции в файл 'configuration.yaml'", + "note_plugin": "вам всё ещё нужно добавить код для настройки плагина в конфигурацию Lovelace ('ui-lovelace.yaml')", + "open_issue": "Сообщить о проблеме", + "open_plugin": "Открыть плагин", + "reinstall": "Переустановить", + "repository": "Репозиторий", + "restart_home_assistant": "Перезагрузка Home Assistant", + "show_beta": "Показать бета", + "uninstall": "Удалить", + "update_information": "Обновить информацию", + "upgrade": "Обновить" + }, + "settings": { + "add_custom_repository": "ДОБАВИТЬ СВОЙ РЕПОЗИТОРИЙ", + "adding_new_repo": "Добавление нового репозитория '{repo}'", + "adding_new_repo_category": "С категорией '{category}'.", + "bg_task_custom": "Свои репозитории скрыты во время выполнения фоновых задач.", + "category": "Категория", + "compact_mode": "Компактный режим", + "custom_repositories": "СВОИ РЕПОЗИТОРИИ", + "delete": "Удалить", + "display": "Вид", + "grid": "Сетка", + "hacs_repo": "Репозиторий HACS", + "hidden_repositories": "Скрытые репозитории", + "missing_category": "Вы должны выбрать категорию", + "open_repository": "Открыть репозиторий", + "reload_data": "Перезагрузить", + "reload_window": "Перезагрузить окно", + "repository_configuration": "Конфигурация репозитория", + "save": "Сохранить", + "table": "Таблица", + "table_view": "Таблица", + "unhide": "Показать", + "upgrade_all": "Обновить всё" + }, + "store": { + "ascending": "по возрастанию", + "clear_new": "Очистить все новые репозитории", + "descending": "по убыванию", + "last_updated": "Последнее обновление", + "name": "Название", + "new_repositories": "Новые репозитории", + "pending_upgrades": "Ожидается обновление", + "placeholder_search": "Пожалуйста, введите условие для поиска...", + "sort": "Сортировка", + "stars": "Звезды", + "status": "Статус" + }, + "time": { + "ago": "назад", + "day": "день", + "days": "дней", + "hour": "час", + "hours": "часов", + "minute": "минута", + "minutes": "минут", + "month": "месяц", + "months": "месяца", + "one": "Одна", + "one_day_ago": "один день назад", + "one_hour_ago": "час назад", + "one_minute_ago": "минуту назад", + "one_month_ago": "месяц назад", + "one_second_ago": "одну секунду назад", + "one_year_ago": "один год назад", + "second": "секунда", + "seconds": "секунд", + "x_days_ago": "{x} дней назад", + "x_hours_ago": "{x} часов назад", + "x_minutes_ago": "{x} минут назад", + "x_months_ago": "{x} месяцев назад", + "x_seconds_ago": "{x} секунд назад", + "x_years_ago": "{x} лет назад", + "year": "год", + "years": "лет" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/sl.json b/custom_components/hacs/.translations/sl.json new file mode 100644 index 0000000..ada106e --- /dev/null +++ b/custom_components/hacs/.translations/sl.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "O tem", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon Aplikacije", + "background_task": "V ozadju se izvaja naloga, ko se konča, se bo stran osvežila.", + "check_log_file": "Za več podrobnosti preverite datoteko dnevnika.", + "continue": "Nadaljuj", + "disabled": "Onemogočeno", + "documentation": "Dokumentacija", + "hacs_is_disabled": "HACS je onemogočen", + "installed": "Nameščeno", + "integration": "Integracija", + "integrations": "Integracije", + "manage": "upravljanje", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Aplikacije", + "plugin": "vtičnik", + "plugins": "Vtičniki", + "python_script": "Python skripta", + "python_scripts": "Python skripte", + "repositories": "Repozitoriji", + "settings": "nastavitve", + "theme": "Tema", + "themes": "Teme", + "version": "Različica" + }, + "config": { + "abort": { + "single_instance_allowed": "Dovoljena je samo ena konfiguracija HACS." + }, + "error": { + "auth": "Osebni dostopni žeton ni pravilen." + }, + "step": { + "user": { + "data": { + "appdaemon": "Omogoči odkrivanje in sledenje aplikacij AppDaemon", + "netdaemon": "Omogoči odkrivanje in sledenje aplikacij NetDaemon", + "python_script": "Omogoči odkrivanje in sledenje python_scripts", + "sidepanel_icon": "Ikona stranske plošče", + "sidepanel_title": "Naslov stranske plošče", + "theme": "Omogoči odkrivanje in sledenje tem", + "token": "GitHub žeton za osebni dostop" + }, + "description": "Če potrebujete pomoč pri konfiguraciji, poglejte tukaj: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Ali si prepričan, da želiš to dodati med svoje vire Lovelace?", + "bg_task": "Dejanje je onemogočeno, medtem ko se izvajajo opravila v ozadju.", + "cancel": "Prekliči", + "continue": "Ali ste prepričani, da želite nadaljevati?", + "delete": "Ali ste prepričani, da želite izbrisati '{item}'?", + "delete_installed": "'{item}' je nameščen, pred odstranitvijo ga morate odstraniti.", + "exist": "{item} že obstaja", + "generic": "Ali si prepričan?", + "home_assistant_is_restarting": "Počakaj, Home Assistant se zdaj znova zaganja.", + "home_assistant_version_not_correct": "Uporabljate Home Assistant verzije '{haversion}', vendar to skladišče zahteva nameščeno najmanj različico '{minversion}'.", + "no": "Ne", + "no_upgrades": "Ni nadgradenj", + "ok": "V redu", + "overwrite": "Če to storite, bo to prepisano.", + "reload_data": "Ponovno se naložijo podatki vseh shramb HA, to bo trajalo nekaj časa.", + "restart_home_assistant": "Ali ste prepričani, da želite znova zagnati Home Assistant?", + "uninstall": "Ali ste prepričani, da želite odstraniti '{item}'?", + "upgrade_all": "To bo nadgradil vse te repozitorije, preden nadaljujete poskrbite, da ste prebrali vse opombe ob izdaji.", + "yes": "Da" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Omogoči odkrivanje in sledenje aplikacij AppDaemon", + "country": "Filtrirajte s kodo države.", + "debug": "Omogoči odpravljanje napak.", + "experimental": "Omogočite poskusne funkcije", + "netdaemon": "Omogoči odkrivanje in sledenje aplikacij NetDaemon", + "not_in_use": "Ni v uporabi z YAML", + "release_limit": "Število izdaj, ki jih želite prikazati.", + "sidepanel_icon": "Ikona stranske plošče", + "sidepanel_title": "Naslov stranske plošče" + } + } + } + }, + "repository_banner": { + "config_flow": "Ta integracija podpira config_flow, kar pomeni, da lahko zdaj greste na odsek integracije vašega uporabniškega vmesnika, da ga konfigurirate.", + "config_flow_title": "Konfiguracija uporabniškega vmesnika je podprta", + "integration_not_loaded": "Ta integracija ni naložena v programu Home Assistant.", + "no_restart_required": "Ponovni zagon ni potreben", + "not_loaded": "Ni naloženo", + "plugin_not_loaded": "Ta vtičnik ni dodan vašim virom Lovelace.", + "restart": "Znova morate zagnati Home Assistant.", + "restart_pending": "Vnovični zagon v čakanju" + }, + "repository": { + "add_to_lovelace": "Dodaj v Lovelace", + "authors": "Avtorji", + "available": "Na voljo", + "back_to": "Nazaj na", + "changelog": "Dnevnik sprememb", + "downloads": "Prenosi", + "flag_this": "Označite to", + "frontend_version": "Frontend različica", + "github_stars": "GitHub zvezde", + "goto_integrations": "Pojdite na integracije", + "hide": "Skrij", + "hide_beta": "Skrij različico beta", + "install": "Namestite", + "installed": "Nameščeno", + "lovelace_copy_example": "Kopirajte primer v odložišče", + "lovelace_instruction": "Ko ga boste dodajali v svojo lovelace konfiguracijo uporabite to:", + "lovelace_no_js_type": "Ni bilo mogoče določiti vrsto tega vtičnika, preverite repozitorij.", + "newest": "najnovejše", + "note_appdaemon": "Še vedno ga morate dodati v svojo 'apps.yaml' datoteko", + "note_installed": "Ko bo nameščen, se bo nahajal v", + "note_integration": "Še vedno ga morate dodati v svojo 'configuration.yaml' datoteko", + "note_plugin": "vendar ga še vedno morate dodati v svojo lovelace konfiguracijo ('ui-lovelace.yaml' ali \"raw\" UI config urejevalnik)", + "open_issue": "Odprite težavo", + "open_plugin": "Odprite vtičnik", + "reinstall": "Znova namestite", + "repository": "Repozitorij", + "restart_home_assistant": "Znova zaženite Home Assistant", + "show_beta": "Pokaži različico beta", + "uninstall": "Odstranite", + "update_information": "Posodobite podatke", + "upgrade": "Nadgradnja" + }, + "settings": { + "add_custom_repository": "DODAJTE SVOJ REPOZITORIJ", + "adding_new_repo": "Dodajanje novega repozitorija '{repo}'", + "adding_new_repo_category": "S kategorijo '{category}'.", + "bg_task_custom": "Med izvajanjem nalog v ozadju so repozitoriji po meri skriti.", + "category": "Kategorija", + "compact_mode": "Kompaktni način", + "custom_repositories": "VAŠI REPOZITORIJI", + "delete": "Izbriši", + "display": "Prikaz", + "grid": "Mreža", + "hacs_repo": "HACS repo", + "hidden_repositories": "skriti repozitoriji", + "missing_category": "Izbrati moraš kategorijo", + "open_repository": "Odprite skladišče", + "reload_data": "Ponovno naloži podatke", + "reload_window": "Ponovno naloži okno", + "repository_configuration": "Konfiguracija skladišč", + "save": "Shranite", + "table": "Tabela", + "table_view": "Pogled tabele", + "unhide": "Razkrij", + "upgrade_all": "Nadgradite vse" + }, + "store": { + "ascending": "naraščajoče", + "clear_new": "Počisti vse nove repozitorije", + "descending": "padajoče", + "last_updated": "Nazadnje posodobljeno", + "name": "Ime", + "new_repositories": "Novi repozitoriji", + "pending_upgrades": "Nadgradnje na čakanju", + "placeholder_search": "Prosim vnesite iskalni izraz ...", + "sort": "razvrsti", + "stars": "Zvezd", + "status": "Stanje" + }, + "time": { + "ago": "nazaj", + "day": "dan", + "days": "Dni", + "hour": "ura", + "hours": "Ur", + "minute": "minuta", + "minutes": "minut", + "month": "mesec", + "months": "mesecev", + "one": "Eno", + "one_day_ago": "pred enim dnevom", + "one_hour_ago": "pred eno uro", + "one_minute_ago": "pred eno minuto", + "one_month_ago": "pred enim mesecem", + "one_second_ago": "pred sekundo", + "one_year_ago": "pred enim letom", + "second": "drugič", + "seconds": "sekund", + "x_days_ago": "{x} dni nazaj", + "x_hours_ago": "{x} ur nazaj", + "x_minutes_ago": "{x} minut nazaj", + "x_months_ago": "{x} mesecev nazaj", + "x_seconds_ago": "{x} sekund nazaj", + "x_years_ago": "{x} let nazaj", + "year": "leto", + "years": "Let" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/sv.json b/custom_components/hacs/.translations/sv.json new file mode 100644 index 0000000..e08e9a7 --- /dev/null +++ b/custom_components/hacs/.translations/sv.json @@ -0,0 +1,188 @@ +{ + "common": { + "about": "Om", + "appdaemon": "AppDaemon", + "appdaemon_apps": "Appdaemon Applikationer", + "background_task": "Bakgrundsjobb körs, denna sida kommer att laddas igen när det är klart.", + "continue": "Fortsätta", + "disabled": "Inaktiverad", + "documentation": "Dokumentation", + "hacs_is_disabled": "HACS är inaktiverat", + "installed": "installerad", + "integration": "Integration", + "integrations": "Integrationer", + "netdaemon": "NetDaemon", + "netdaemon_apps": "NetDaemon Applikationer", + "plugin": "Plugin", + "plugins": "Plugins", + "python_script": "Python skript", + "python_scripts": "Python skript", + "repositories": "Repositories", + "settings": "inställningar", + "theme": "Tema", + "themes": "Teman", + "version": "Version" + }, + "config": { + "abort": { + "single_instance_allowed": "Endast en konfiguration kan användas i HACS." + }, + "error": { + "auth": "Personal Access Token är inte korrekt." + }, + "step": { + "user": { + "data": { + "appdaemon": "Upptäck och följ Appdaemon applikationer", + "netdaemon": "Upptäck och följ NetDaemon applikationer", + "python_script": "Upptäck och följ python_scripts", + "sidepanel_icon": "Ikon för sidpanel", + "sidepanel_title": "Rubrik för sidpanel", + "theme": "Upptäck och följ teman", + "token": "GitHub Personal Access Token" + }, + "description": "Om du behöver hjälp med konfigurationen, se här: https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "Är du säker på att du vill lägga till detta till dina Lovelace-resurser?", + "bg_task": "Åtgärden är inaktiverad medan aktiviteter i bakgrunden körs", + "cancel": "Avbryt", + "continue": "Är du säker på att du vill fortsätta?", + "delete": "Är du säker på att du vill ta bort '{item}'?", + "delete_installed": "'{item}' är installerat, du måste avinstallera det innan du kan ta bort det.", + "exist": "{item} existerar redan", + "generic": "Är du säker?", + "no": "Nej", + "no_upgrades": "Inga uppgraderingar väntar", + "ok": "OK", + "overwrite": "Detta kommer att skriva över den.", + "restart_home_assistant": "Är du säker på att du vill starta om Home Assistant?", + "uninstall": "Är du säker på att du vill avinstallera '{item}'?", + "upgrade_all": "Detta kommer uppgradera alla dessa repositories, säkerhetsställ att du läst release anteckningarna för dem alla innan du fortsätter", + "yes": "Ja" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "Upptäck och följ Appdaemon applikationer", + "country": "Filtrera på landskod.", + "debug": "Aktivera felsökning", + "experimental": "Använd experimentella funktioner", + "netdaemon": "Upptäck och följ NetDaemon applikationer", + "release_limit": "Antalet releaser som visas.", + "sidepanel_icon": "Ikon för sidpanel", + "sidepanel_title": "Rubrik för sidpanel" + } + } + } + }, + "repository_banner": { + "integration_not_loaded": "Denna integration inte laddats i Hem Assistent.", + "no_restart_required": "Ingen omstart krävs", + "not_loaded": "Ej laddad", + "plugin_not_loaded": "Detta plugin är inte tillagt till din Lovelaceresurs.", + "restart": "Du måste starta om Home Assistant.", + "restart_pending": "Omstart väntar" + }, + "repository": { + "add_to_lovelace": "Lägg till i Lovelace", + "authors": "Författare", + "available": "Tillgänglig", + "back_to": "Tillbaka till", + "changelog": "Ändringslogg", + "downloads": "Nedladdningar", + "flag_this": "Flagga denna", + "frontend_version": "Frontend-version", + "github_stars": "GitHub stjärnor", + "goto_integrations": "Gå till integrationer", + "hide": "Göm", + "hide_beta": "Göm betaversioner", + "install": "Installera", + "installed": "Installerad", + "lovelace_copy_example": "Kopiera exemplet till urklipp", + "lovelace_instruction": "När du lägger till denna till din lovelace konfiguration, använd", + "lovelace_no_js_type": "Kan inte avgöra villken typ av plugin, kontrollera i GIT \nrepository", + "newest": "nyaste", + "note_appdaemon": "du behöver fortfarande lägga till den till filen 'apps.yaml'", + "note_installed": "När den är installerad kommer den finnas i", + "note_integration": "du behöver fortfarande lägga den till filen 'configuration.yaml'", + "note_plugin": "du behöver fortfarande lägga till den till din lovelace konfiguration ('ui-lovelace.yaml' eller raw UI config redigerare)", + "open_issue": "Rapportera problem", + "open_plugin": "Öppna plugin", + "reinstall": "Ominstallera", + "repository": "Repository", + "restart_home_assistant": "Starta om Home Assistant", + "show_beta": "Visa betaversioner", + "uninstall": "Avinstallera", + "update_information": "Uppdatera information", + "upgrade": "Uppdatera" + }, + "settings": { + "add_custom_repository": "LÄGG TILL ETT REPOSITORY", + "adding_new_repo": "Lägger till nytt repository '{repo}'", + "adding_new_repo_category": "Med kategori '{kategori}'.", + "bg_task_custom": "Anpassade repositories är dolda under tiden aktiviteter i bakgrunden körs", + "category": "Kategori", + "compact_mode": "Kompakt läge", + "custom_repositories": "REPOSITORIES", + "delete": "Ta bort", + "display": "Visa", + "grid": "Rutnät", + "hacs_repo": "HACS repo", + "hidden_repositories": "dolda förråd", + "missing_category": "Du behöver välja en kategori", + "open_repository": "Öppna Repository", + "reload_data": "Ladda om data", + "reload_window": "Ladda om fönstret", + "save": "Spara", + "table": "Tabell", + "table_view": "Tabellvy", + "unhide": "ta fram", + "upgrade_all": "Uppgradera alla" + }, + "store": { + "ascending": "stigande", + "clear_new": "Rensa alla nya förvar", + "last_updated": "Senast uppdaterad", + "name": "Namn", + "new_repositories": "Nya förvar", + "pending_upgrades": "Väntande uppgraderingar", + "placeholder_search": "Skriv ett sökord...", + "sort": "sortera", + "stars": "Stjärnor", + "status": "Status" + }, + "time": { + "ago": "sedan", + "day": "dag", + "days": "dagar", + "hour": "timme", + "hours": "timmar", + "minute": "minut", + "minutes": "minuter", + "month": "månad", + "months": "månader", + "one": "Ett", + "one_day_ago": "för en dag sedan", + "one_hour_ago": "för en timme sedan", + "one_minute_ago": "en minut sedan", + "one_month_ago": "en månad sedan", + "one_second_ago": "för en sekund sedan", + "one_year_ago": "ett år sedan", + "second": "andra", + "seconds": "sekunder", + "x_days_ago": "{x} dagar sedan", + "x_hours_ago": "{x} timmar sedan", + "x_minutes_ago": "{x} minuter sedan", + "x_months_ago": "{x} månader sedan", + "x_seconds_ago": "{x} sekunder sedan", + "x_years_ago": "{x} år sedan", + "year": "år", + "years": "år" + } +} \ No newline at end of file diff --git a/custom_components/hacs/.translations/zh-Hans.json b/custom_components/hacs/.translations/zh-Hans.json new file mode 100644 index 0000000..73ecd24 --- /dev/null +++ b/custom_components/hacs/.translations/zh-Hans.json @@ -0,0 +1,198 @@ +{ + "common": { + "about": "关于", + "appdaemon": "AppDaemon", + "appdaemon_apps": "AppDaemon应用", + "background_task": "后台任务正在运行,完成后将重新加载此页面。", + "check_log_file": "请查看日志文件以了解更多信息。", + "continue": "继续", + "disabled": "禁用", + "documentation": "文档", + "hacs_is_disabled": "HACS已禁用", + "installed": "已安装", + "integration": "自定义组件", + "integrations": "自定义组件", + "manage": "管理", + "netdaemon": "NetDaemon应用", + "netdaemon_apps": "NetDaemon应用", + "plugin": "Lovelace插件", + "plugins": "Lovelace插件", + "python_script": "Python脚本", + "python_scripts": "Python脚本", + "repositories": "仓库数量", + "settings": "设置", + "theme": "主题", + "themes": "主题", + "version": "版本" + }, + "config": { + "abort": { + "single_instance_allowed": "仅允许单个HACS配置。" + }, + "error": { + "auth": "个人访问令牌不正确。" + }, + "step": { + "user": { + "data": { + "appdaemon": "启用AppDaemon应用发现和跟踪", + "netdaemon": "启用NetDaemon应用发现和跟踪", + "python_script": "启用python_scripts发现和跟踪", + "sidepanel_icon": "侧面板图标", + "sidepanel_title": "侧面板标题", + "theme": "启用主题发现和跟踪", + "token": "GitHub个人访问令牌" + }, + "description": "如果您需要有关配置的帮助,请在此处查看:https:\/\/hacs.xyz\/docs\/configuration\/start", + "title": "HACS (Home Assistant Community Store)" + } + }, + "title": "HACS (Home Assistant Community Store)" + }, + "confirm": { + "add_to_lovelace": "您确定要将此添加到Lovelace资源中吗?", + "bg_task": "后台任务正在运行时,操作被禁用。", + "cancel": "取消", + "continue": "你确定你要继续吗?", + "delete": "是否确实要删除\"{item}\"?", + "delete_installed": "已安装 '{item}',需要先将其卸载,然后才能将其删除。", + "exist": "{item}已经存在", + "generic": "你确定吗?", + "home_assistant_is_restarting": "请等待,Home Assistant现在正在重新启动。", + "home_assistant_version_not_correct": "您正在运行Home Assistant的版本为'{haversion}',但是这个需要安装最低版本是'{minversion}'。", + "no": "取消", + "no_upgrades": "暂无升级", + "ok": "确定", + "overwrite": "这样做会覆盖它。", + "reload_data": "这将重新加载HACS知道的所有仓库的数据,这需要一些时间才能完成。", + "restart_home_assistant": "您确定要重新启动Home Assistant吗?", + "uninstall": "您确定要卸载“ {item} ”吗?", + "upgrade_all": "这将升级所有这些仓库,请确保在继续之前已阅读所有仓库的发行说明。", + "yes": "确定" + }, + "options": { + "step": { + "user": { + "data": { + "appdaemon": "启用AppDaemon应用发现和跟踪", + "country": "用国家代码过滤。", + "debug": "启用调试。", + "experimental": "启用实验功能", + "netdaemon": "启用NetDaemon应用发现和跟踪", + "not_in_use": "不适用于 YAML", + "release_limit": "要显示的发行数量。", + "sidepanel_icon": "侧面板图标", + "sidepanel_title": "侧面板标题" + } + } + } + }, + "repository_banner": { + "config_flow": "此组件支持config_flow,这意味着您现在可以转到UI的“集成”部分进行配置。", + "config_flow_title": "支持UI配置", + "integration_not_loaded": "此集成未加载到Home Assistant中。", + "no_restart_required": "无需重启", + "not_loaded": "未加载", + "plugin_not_loaded": "该插件未添加到您的Lovelace资源中。", + "restart": "您需要重新启动Home Assistant。", + "restart_pending": "重新启动待处理" + }, + "repository": { + "add_to_lovelace": "添加到Lovelace", + "authors": "作者", + "available": "版本号", + "back_to": "返回", + "changelog": "更新日志", + "downloads": "下载", + "flag_this": "标记", + "frontend_version": "前端版本", + "github_stars": "GitHub星级", + "goto_integrations": "转到组件", + "hide": "隐藏", + "hide_beta": "隐藏测试版", + "install": "安装", + "installed": "已安装版本", + "lovelace_copy_example": "复制样例代码到你的剪贴板", + "lovelace_instruction": "您仍然需要将下列代码添加到lovelace配置中(“ ui-lovelace.yaml”或原始配置编辑器):", + "lovelace_no_js_type": "无法确定此插件的类型,请检查仓库。", + "newest": "最新", + "note_appdaemon": "您仍然需要将其添加到“ apps.yaml”文件中", + "note_installed": "安装后,它将位于", + "note_integration": "您仍然需要将其添加到“ configuration.yaml”文件中", + "note_plugin": "您仍然需要将其添加到lovelace配置中(“ ui-lovelace.yaml”或原始配置编辑器)ui-lovelace.yaml", + "open_issue": "提交问题", + "open_plugin": "打开插件", + "reinstall": "重新安装", + "repository": "仓库", + "restart_home_assistant": "重新启动Home Assistant", + "show_beta": "显示测试版", + "uninstall": "卸载", + "update_information": "更新信息", + "upgrade": "升级" + }, + "settings": { + "add_custom_repository": "添加自定义仓库", + "adding_new_repo": "添加新的仓库 '{repo}'", + "adding_new_repo_category": "类别为 '{category}'。", + "bg_task_custom": "自定义仓库在后台任务运行时被隐藏。", + "category": "类别", + "compact_mode": "紧凑模式", + "custom_repositories": "自定义仓库", + "delete": "删除", + "display": "视图方式", + "grid": "网格", + "hacs_repo": "HACS仓库", + "hidden_repositories": "隐藏的仓库", + "missing_category": "您需要选择一个类别", + "open_repository": "打开仓库", + "reload_data": "重载数据", + "reload_window": "重新加载窗口", + "repository_configuration": "仓库数据配置", + "save": "保存", + "table": "列表", + "table_view": "表视图", + "unhide": "取消隐藏", + "upgrade_all": "升级全部" + }, + "store": { + "ascending": "升序", + "clear_new": "清除所有新仓库标记", + "descending": "降序", + "last_updated": "最近更新时间", + "name": "名称", + "new_repositories": "新仓库", + "pending_upgrades": "待升级", + "placeholder_search": "搜索项目...", + "sort": "排序", + "stars": "星级", + "status": "状态" + }, + "time": { + "ago": "过去", + "day": "天", + "days": "天", + "hour": "小时", + "hours": "小时", + "minute": "分", + "minutes": "分", + "month": "月", + "months": "月", + "one": "一", + "one_day_ago": "一天前", + "one_hour_ago": "一个小时之前", + "one_minute_ago": "一分钟前", + "one_month_ago": "一个月前", + "one_second_ago": "一秒钟前", + "one_year_ago": "一年前", + "second": "秒", + "seconds": "秒", + "x_days_ago": "{x}天前", + "x_hours_ago": "{x}小时前", + "x_minutes_ago": "{x}分钟前", + "x_months_ago": "{x}个月前", + "x_seconds_ago": "{x}秒前", + "x_years_ago": "{x}年前", + "year": "年", + "years": "年" + } +} \ No newline at end of file diff --git a/custom_components/hacs/__init__.py b/custom_components/hacs/__init__.py index c9cd91d..1b94fbc 100644 --- a/custom_components/hacs/__init__.py +++ b/custom_components/hacs/__init__.py @@ -30,6 +30,7 @@ from custom_components.hacs.setup import ( ) from custom_components.hacs.globals import get_hacs + from custom_components.hacs.helpers.network import internet_connectivity_check SCHEMA = hacs_base_config_schema() @@ -165,6 +166,8 @@ async def hacs_startup(): hacs.common.categories = ELEMENT_TYPES if hacs.configuration.appdaemon: hacs.common.categories.append("appdaemon") + if hacs.configuration.netdaemon: + hacs.common.categories.append("netdaemon") if hacs.configuration.python_script: hacs.configuration.python_script = False if hacs.configuration.config_type == "yaml": diff --git a/custom_components/hacs/__pycache__/__init__.cpython-37.pyc b/custom_components/hacs/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ac153cabfcbf93c7c63601d3ba3918bd6d63dfc0 GIT binary patch literal 6129 zcmcIoOLH98b?)wY^*k{cfFQt^ni53{A~=v_NsbwnVuS<@q(nd=pjTJLU5)7rpa=aJ z-@Zd~rXVi@mn$1pY2~UomDC`+4Rghjik zQ(G}8g=M?U7<8mdahYh>IWix1oExQ%Y*fU(O2JLXxp5<~a=!A3j z9GC0Ce0a&e6fW2cTyF%I!$o^BT(XzKEB2M}s(qE)o58j4x_v#oVc+0-D|jumY>Ue? z!Oie>`*kk2gEzuk_O0+u`_1sSeVf~6gFE3{_FG);1k2&u_S?E9E}dxhU9oVYiMzs> ztax*$`bU~D`uD`5xa;dEb-np-413kPde@Nuz`O3< zK>oh>nr9*Zz%zEV<(uQbtvwhfDh@3Xh)_hz3f;&(5YpO@rPYhWa2WY&Wc8$QmGGui zNw-#e1cES@!t#W2{UEX2y?CfBb?7ISA1QGlUFFBoiZuv?n+QvaeXvzAC@?1O4QV8Lo7+F})y8lSl~yl~_Wc6~W2G+=v@ETE zzP`2VY-~SXU)$N)+}T}24e66zbk-f`sgMcQ;W(&vl2M{W=o|_+P=}5m?Z?YTI`@Ei zu7l-hD^^d0>y6Tx9U-6kJ%NTt@i6i*`ih&3qMnnTh0_asEFuvJaYt`E?{$N~32;~v zoG;UMoIPyc$=99q4n^puOWcvS#REDhC+k`+rsap*kJmQ0(&qXn>yK$~yI*~}zLQpX zQ=fgBRz6>Uva`9pg$Y_<*E=HSiE^VP?PPT+em3+a3zUwinQd^GNdyh%2G;e^Rqk>j zt+}4(BqB;;na&5X>p8qODF$)kt5}ZGRwC4J;Oxs7V&#)C4}@Ye@VZLEmJu4Tib(X7 z{}hOEcp+&e+Z!#SB%Ukj_6!m$eg%9Le80h${0$PNooHVhNJmzE3aVD zX^|>hX*r39vL_&s3Qj>`t7*}r^XWhYndIKd>pD)N&P@JKI6h3{7 zj(6)yi3VjNYX}jmblIFQ<0ja z_(qQJWnv;6$(xiAhUDv%5H95{N^T=b8#!QjU^+*)eK-I%g%kKthLMnIU5c}dpEmgV z=fDE6S!1TA=O^x7AUsKzcDa;I{~pb-jS@ zC$vohM+1KXNZTmp5NR<)YB@*;Quhj8@zg+GqMSqyy2hmGm0A2P8s$~g%!zhV$W(-9X8c%PRL9m% zwreZDg={J1;FrVxt)RK18h)!NXZW=v5=&-7uPT~ry4r#oX3naa3c{gBJ7#O_XO7+ z<*PuXC8z@+paOLtxIK}UgZKdEKP{4Nl;n}gJ4lud7PI^jHIO=ZAyw}G3QY-Vx=fBF zDUupeqoKDUQ>HqT8+N6c_*icL0V%$aTheCL4|(+q(jHlv%qC^eAUSy@Uq3D2I+jVD zf1yQIQB#$pn*35noh4^Zs$PX8_mvhIUuvpG98UCX%-3X6%t;}WV88x%+TXLpRpVH5 z$TXOfmYT^iQ0%uSv!{fHjss=D`6VcZ1+VJWpf;%evPT>{&Z1gEZuGCHtH?3m3HqID z>iP-BJ2$9p@|vog*3J29sFrIS%_Ft&OB zL<6q3&T+NTW=`Jp8ng$dzdfbLod3War*r-~sQYSx*L-_r=$ikFZlc~6zyAH z6KdG-S}?lH7x@0}0^i@gny;cWxa+Ji{k?Auxj^;)%B1T}WnlDI(cV34Z|AZx`tP9K z=F>NvcbG%ntKlrsikdlj*PA_~eGjd_%xT}dK>N#_wsS^1Ot!-9aI4{SlSUB{>*(?PgY&+FMZUs) zD=mhxC*(EE%0_5>c`LTyw>^vH5oxM3-)-C`6R>*DiQi4D@Gm?UHYiG~7?Typ|9x?u z%-OT<3`XjZ9a`xR)E!zJl#UcV4k6sgvqtgIN)A~OW_Hc;l|}v!^-$b#&huGe4QV~| zgTOk9;%An>&*O)PDZV#Tlrh+dLt(AKGslr5rg@1UhbZ}4ne84$CuCkdQoXLVKU6~m zHn55mxpc?>{`oFZK}I zNYdLGbW1|YSV}U$>}tq1jjH4UmwZU=Gn8b`IQ55h1b^cAdhWy^#~Sp|EELh=p(^9qNS_E?Yzk zH$9|FQX{Y*#1x~-4elTZJ@VuxDt7b24M{7{Tp59tU1EW!g}q@ib(S(G&55I)kVPJw zs}YCQ2%G4%G?2Kh@)G*tz>^+1cXVXQ?dn-j_pBEIRmZyGf~1EMh$$pRKy6Q zQ>Ya>1xaf;ivei2XHLSuppwS`2E_m#`}Xj@smvz)`8;ZchuUA&5E~RuppJib`wPU4 zOu^CJXpvO+q;!mjqEj-erQC^_hZ9kT6A@%iMCLf;BiRWYbuh95qmsK8a6D*C4Pz$f z$H1*H`gNy~k3|Fm6HtN)sEw~~K=B2+qHzN&-nZNc3LB1Jciei&-Zd$BvJ~UXPe>h6 z6M_( zz_IB|F6C!n@~`+33TURGK?4YC0DFs!8!C0UgrI=v&u~Kuf)@W9dCq zS1!j%Yfs}~I8ehFm%4zm-EjRl(^>Aom#oj4hp+&7lbJqL6g4SbChx-@CGxi>tq% z6kZGfLP3Ll_j|7dUD80bix-a?`IDEd(|#H>?Aoh`Ve=d#lbX%U3Yi=G<{un^Xe!Cn zJ{dUs-YbY{Y4l2Wad{k5+qeF|G4#&E#^;r*=Rl9OGaD4PH1>^G@I46PJvT`BdfK;N zK{ORk?!K|vvdcRUHr5}nrRFxv)(z6~PWIebU;E^f?Ju15FL$4;;Wco3>(S;^7E8O8!234VzBus-~mAWoZ>X+n28X?v*Cv8p(hW*jPGxrvK*f`Paz5i&rq zi)9>g|(L|?(Vzq$FmQAx3EyN z@cjFq-+uLvre*z$KBi9@jRz?C-%xQYusGv(!UAUAcHrRcByL&?N@+PLGa7f3O6mok zX_t~}S_^8XT~6w0BWR#q;a;+kHiM>VSChqbDOgIEgJmOEOIFfr!8OyaC#&gNu*NLG zPS?f884IpIvUr0pyt4R$@Q!YXCU3rWgPZ7GRB-so9Ad~*~=GI>Odz{JYv~0byxwHEyR@=kKZ_N5OhpH#~D(*%! z&|ZJ@5puk?^(G6;3Y6%Q1?Zu-jk1N3Q_RKIu@xd@u%tb%@AP98 zM@c*u?G6rE35ArIr1QGDNDlsL$tBGB&xiL43*GAubCspAVLHhAuylTp%rhAc$<^(_ zNPA%zW8pBoLA%oSmOZ|HN&WUzsA~jB28B%d9ZLQeRE4g`)+sx) zHkG5*=f7Lk@q2~Q{iuj%I$mKn?(dI$1gk&Hg>37MJnkPR0_V?F)bENAL7Ke~92PB0 z5#?FGqf07#F8Ue{Kr>c}&@PWuq}>QnuU(4LR!ssHEWI8^`KaFwyF)2q?rHezdeI&2 zXHsdm7v;IUPVx?-RC?5^hf3rsEVf#itO5;`FpG@za+vqB7t?e=f~GB7F4EK*9R(*C z43%+zQ7zNZVzE%J#2_T8JLt^UQCW7Gd91;jtYLd>l{M`eTe8P*Uv~PX`E$Ofz%{;q z3k~BNrr4>i9C*w=vCkO#T<*Mf5WDX97kg0OSiXqOp)^=QP?P#9^97HUpJWAs_+;R= zc1h=_Ek{?(31Y76G%(3{U7kdLX?9Ms5G|;kud_s#_Y7#rD)ck{nOIETr4GuJb5qH8 z@YzPm$sLyMG8@JjzjN6jSG@4%)TKofjB-MW%P3dZX{B9*SQk+NBaI215mt^asioHo z4-lFaaF?63{S|3y649Ypp97lqo2ShAZkD%X3gnN4j9rDl%%wHSSerYs#a+t1R%!hA z9bkx5$f!bH->BQJ`IBdFAi78~UyTOB&kp?9h=1U}5I>Q^?`N3VRYRoL$Un@GbmVh@ z6UL(csPOk}tsP{ei1>8!OkN7i&iW>bzK)Wi$kB|jGFFNEQ^gMAM4am-ui=C(CRgzq zugt|>dlaP!VqybBCLddlyhZKXRQag>Pr&Hq3%OAo_BWW36CJQh$SwP7@LZWO^9lKb z;NIlZGc-nb6>tAFRIp48Am;eCvr&LkTO&AnLBF}Nv8$^)}h)9Y?>5yOH8k~}AW^6K1SH+Y^ zTnc&lHsl_n?BLSHRo0JE5r(=JhH1u!!1ho#!tl=s zy~#)=40+Z?cjb$RPxf|pJCdxg*S2;$op9^%=H4Fa-QRx_e!lzov0kF?hg(k}R}9J( zNXvJrBFxYY+#Fy&sZhO)%M$f}NELyJIm?Cf8O$MMmJ6sTGINSckGTMxvhBHzWzPff zxL(aj&^5%fG>ZFOh|M0d@&lCo161<_hC84jF6c=?T1vcTXbTI<#`|^oGfY8bg51sW zg&5xiT>M@^R@$@3B)3x8LNScw7*RQ6BzMjki6M-$bqu!v?nzQ{nnu*VU=3pkvgRJG zO`Cvsm@DWiPR{5@=Za?E(QJy90>_XcY#U30FJ1dA>PLsd;Kk&C#G8!sraIll#7jEO zt`oX8i8_2qJ52O5X!{2JF6K6-%(SG~qM$HZ{s|3bomekTHiP%vHkeCa4&m&vePkbj zdOo-1edQjN;6{nhSr%Y zL03Ur9^?GD28@A!PFvNs%-760QgQ O;P@q!hFx>kKmISUAs3|p literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/configuration_schema.cpython-37.pyc b/custom_components/hacs/__pycache__/configuration_schema.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5f6254616baf160a9c0d214885b2c25dc785746c GIT binary patch literal 1874 zcmcgt&u<$=6yDii{+&39(>N(mg9^xqBqw@66~c8k#KN&H+ZA*rSZ#L3$(Hr5J3EFX zayUS*Nc;ggv`79L?sMhTBUetmH@1~FQm-9rzIpS#-FY+beY1X4D&;k3|Ni~!j}O55 z2PeyBf$=r;^fv&ixf&%@kBF;NgPM^sHeHiw)N(CqyEe_Z8JcyoH0S1M-p$j3TcAa^ zNK0;suDC07)m;rWS{~`F%+^?$u3Z~+oo+n0-1Sf!5n#)-a;?)%dIz`-m~CAXTBY01 zO}9ezfmYwSynEDW4rL)Lydr>gBJFm!*=Re`63I_2 zmaAz<*~E`oMl4&gX zg|sL;nVz~O&LZZg%!|TtC}feHPZ$r!EEaxrSU02%0bs+jFdw~9l>8!X&cu|*fsWgT zhT|IaCiJuhrkHBoSw5-KKmM<^f(pY&aI6D^YVWK-AS+qSiz6N)zT& zONrQ4A~r$9=8KHTz9hYU} zvC|ng+Pn(y@b?gQ0HofExq*fe!gu3+uwdN}(T!!C!#(tGtHLa5GT+XkY+ryoEdoGk zNJZaK#o$;gSW4v_eb_LN30>tJ9}wE_8f2INlJn|}9B4n3uk;z2>Dy3`nf_3Fw*DPh zkSlWeQ8O8zgfXkZr|vE30VUR8*?DjS)CoFLr;+x2%ePNedHqzNQCy!kV2Kp|ao|8U zvGqJD>wFhx^-Y=aJemZaC-ZPOrV}wurm0G)v>-KbH}HrYKbCw0VI84@u!(>w=35B& z5k5xv1mRNvY2sHw)!^n7D)4K&R#j02$vzw>bQ-a*P|0Zxz|^y(Xxv;4u$D8UdaqLa EAGNUIEC2ui literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/const.cpython-37.pyc b/custom_components/hacs/__pycache__/const.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..be9484662e58bb0dca677573604482eaf6fdb22d GIT binary patch literal 3235 zcmeHJX>{XO8MWmli8Gl%TT0ngy3GKI%ak>gQd^c~#geSCWTz2O)sw4<4YB1~^324; zw6t_*D`lr0XxYoYL(9JJE&C#N%D$I<%6gSd!kqGF&VgSXoOAu8_wIM^{XY2|r8qT} zOYn31trwg-Go47>7T;`q4)Nk_BG@M+5=b}+B%LG#M?lI+A?>7*aWcqaY*}!!Ugp{a z#t#b4m?vC6enWzH6TF*14wF33VGE|P71Ov2?s{FunZz;9798uP$UE*}%9+C5a6Img z6L1gQ6ZgWsaUa|l_k)NNaethIlW_`8#c9}v?RWqlhzDT?v&iFgJQzE01|EWk;$e6= z9)U+<4v)f_cr?z!V{kSKC_+LBGRja;fr@!lp+Sd%8cgg&9Tsdf(8L1H!6F;hgFQQA5X#oT!0JlWL$)c z@f2KwOK}-4#}&8|SK+C68lH}4;F-7@&%!l$HlBm$;(2&JUVsWs@XK@Q|#pm#Od;wp?m+)nL1z*M2@O4D^2EK`J z;oJBQzKieS`?w81zz^{w{1`vMPw_MS9KXOX@hkiqzrpSJEq;gJ;}7^F{)9i{5bnTV z@K^i|f5$(rP9i}h34urvX(B^pi7{fFm>_b*B(a5jo@w=W_2!hVqxhVPF?y%PhS4AuI2j2E5y++QSKD*!8ck}TdhJhz2zr#Ct;XSX|nxYX+P{7~HGiNnByxR+BA4|l%NXU_KHLotl`tNu{z zd1QvZIPkj6a3^~Fl)B>n1G&*KH}ju=a!2*3bGfEB2>9sc#L+G5jWKKMa5V9VDd*JP zYdy4EOy26Pit7(#z43qR(C>Raverpr+Z%Xuxuf|3t&9Fw`j1itO>=}oIT8w7OAfCs zUYEGm2$k4LC`6smi3Oq&2?d)g`9+JU5UeQ{iA6#t;YLL#VJrH7k)SiD!E1wch8YP4^$dwC^BVLw$T#R|P}AT{b!Io1rN%mw^Dvpkq@GC) zlRR@V5=_>Z%wy8eq@KxqCiQocQ)g|RT6NadW&WOcZjoChSEH{UKR;?WnRkJ@7V}%| z#bT{RPCecu&x-5lXR$|%bFnyAtH_o54!KIq<1A&a8gp7Do-u>P--^ZFEP6}ywKzwc zS?u{pusIK#dp5OgYTK-{sb@34O>dj^HuKo@w>kR;ISqOhsHM=mL9Yh0H>la5N0WUv zIg2K1o8&f`ae@8G^jPG+L$0%6Y@d$CTo?Y5>pBxgL6=>v#*ydNF0D$fZbxHHxo)X7 zBg&R)dOsbSeQ-EEkqf-TosE){IDEoVZttcDzuqRfiF*BdyK z>jEyBg=k9FWL-9F*IqO^sH|G9)80A$PI?Q4x}h3MG-la_y4^6NZ0w-PHzo!W|504~ zy5lsyoqD@F%NuXXBi@~B?^vD&Azy>h_?cZF!xir=zTp$War`GUo!tBrgk(0AOKug$ gQ$lk6Z+tvGxn=WiWB32-|H1?|pZmXl0f(>t3Al7+vj6}9 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/constrains.cpython-37.pyc b/custom_components/hacs/__pycache__/constrains.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..860bdc0322a37e8a14a8a5cd42647ce54fd907f1 GIT binary patch literal 2425 zcmah~&u`l{6c!~}mTlQ_vMk8jEz=4VMXE@bX^T>f+EVcQvGmA zx=Rdum+n0DJ``||`zQ7<>^kteQ+L~Sr@cqTw$h@Q4L&`Qk0Rg4?|uBbUaxBK`{$3J ze)to-zwl-D)4{n7jZ-jG>u8ivJtiGO4Qj@EVswne?3hG@_flL+td0dfp;lZ@?2Zk7 zxl^Gwt^BNYsU23>+@oi^z*JR4MRYnv;h_4`}fZMQ9aCWZqy$Wktt zAEmtY8up;=zb0Teb-BL%uzhr}=RN%9&eqY+q4(fmd+TWTV81Qb-WYkbb-2H~e{Yk> zjb|a_QI>jf*cDzs>h(kBiGG-R4156*b}xhhKj0(lX6uX3TQ>t-boRrgx1sSXV1)Ku z<5f!9njqkP z!W?14`-Q%V4&#++b*#T4$e6bF)Oj=mZ6gOQ>be*6cf-?&ixz-aW4H^3+mU+4r8)3L zUs`IMORJl)#23=yXIzAdtmUwH7{pARW5rpo2Y}iEi$oOoF&u}97)d+M0(B13NO*4n zF00{!Hkfs2ya@(@s**JTtEoH0CTesJ6>_BnO+j@NoE$1aAaMXmn9p^79sJVNqC}X# zLh>&S1%?6aF`*PnqXiH^QuqAG-H5x-{5Ybm(dy%D=%!&vfnf9D(G@pi(EDS^T#>m$ z9=f6rbD~s)J*IL)2+KKyxJ9-MMppa2cfN#N+1uUU-Fvv_-QV)Q-8pPSU9tBtauv)b zVeg|qCti+C1^TW+d>VT3j>j{Gla{|;le6m zSS4%;4Fbnj(EJ}dWe7qR%+awFYXBV_nWKYHA;}avhrpp8l-F5P$*z`=2^7mCE!{9R zp+Bjz&xnTqu{JfR;?83&)xXQ*&Dcyz6a7N`aUs5hTsx0Vj^jL$jeNh7eDxY2% zYal?ECib{|;!Nw*8QZ|3dR|d4$kXc}E)A%wC8(?BOqKD(S@?7a=bWHQGIg~Oxw5r; za4!<~hsQgoK{!BFmX04~y-4(j$NnIKi=v`*BJ_GASx4dUx-5eNOX&I1P@gSKeq$c$fvgpkW#=<_vFS~7iA02vek>TV?X9O z93S8pP}7vYD=||wtClU~spJrE32A?oWONvZw~$X9CDYVxy-6J1(M`jy*>z~O{{U@Z BMAQHP literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/globals.cpython-37.pyc b/custom_components/hacs/__pycache__/globals.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6d8c9c951a878d4ff0c0746ece846958e19e449a GIT binary patch literal 1089 zcmaJ=J8u&~5T4mvUoMW#Bhc^=kr2&+Wb*?o3qcAh7jbtISkCR)n4EoP_W~H5X>5tK z`~#=t*U(=}MG0jpX7+r>ArdRi>~kL9H?z;{^(xT#_5Jhf-vZzVZ^}V?ct&C#ks3n4 zf(jHaArML^hh|4fRiRlbw+sGGNH6U`(hkWB5^JA=xvx-(7{_7`2q~I*XyjFMz z$lmGvWNROD`LZ7xU*_@+&A~xR)fy%OHTdPU{UWNgKw+Vh%~Aa7OUW<4v8Zwizy9F3unmJtvi`N+!7C zUtoZWdS~gSk|~=znX~SJN=Gxll<&=>0?tvH?ram9F>`fqk(h_1ETwk~N>_MJiLgEq zT4uOSv9M_KN}PO%v@i57*=qg*mv~^F^&Y8vBqhNI+#Ua8*tPToPp&jt(X897H`adi zHI8HpP~#O->dWGQuY%fk&4Sus6sM6c3TR7Krp+1Wds`V=X4nOwM=k84i&e2NG`CF0 ouV^lswlTT2ZRYlFs}Y!BZ5?~9aiUJ+sLj0Fk0DVy-mWMA0JmA@GXMYp literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/http.cpython-37.pyc b/custom_components/hacs/__pycache__/http.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6a4a911d14dde5d61b3cc58d8eb2aada9aa03322 GIT binary patch literal 2895 zcmb7G&2JmW6`%d&he(N{6n_+rJ1yD@axKa^#VFh&vizX{u3=bCo$R5DC1*q~z1(GH zmX^3CeQ~Y@dgv{1ApyPg@93qs-uK#5j=koT-y2epoj3)$#13cP%)a-VH}C!C-Dx)K z49|c6{pwFigR%e6;QVpX`2?>%K_ghegeC063M~9Pi9K=x$0C`VxFav{Oy5iVQ6;FD zzMoV_wV*bt2X!;9BrBsv(6HD8CaR+L6%#e-y>@~o#&xlR@rrC>yeb-^`4tP+gnh`i zSBuSqz5PQz$n!CmsTgN*n(NLtz{DPHTc!Un>-VKXZ~Y(}$vv%OokwZ@$5=)(QvMXeF(uV+xs(qPsQ;q%}Xv6sO&E?gw?U7aqll)Wx-3 z8kqj>OC`UYNS#YzCV$)c&AjIT06p|isQ!spucFD>%zkZsic>gXux}Sv5292g(iq{- zWS1|s=??j7o%Ts)LM8P$OSRl~N>|I|sH`j(maFgD{|8e|82a|tyS*$uiu=30iO#c8 z*vm#xAaN81`z{?%XFM$(m}nC`!pZES^|nJgn0y2;Rl_iiMluY`dKiu}F#)2mY=q&L zlPFovRKieXJ&2nGCe@SKtq2YRMICMq)p2_$58V;>Jns1(|1gMvG<3E|Bpcc zLo_E-o=R*7R+d{^V1M$Ej2P4iZGi7d%F&9d;2=t0Pr(4A5+o5W-Bo&eoW!}Jyeccl zkxGG9)iB!j6versh*uzSR=VW3(oYOCem^-VYd*xQX(_XP>ym{Ov3#ev^1kR^mDqhAcy_#}znToa|NsmH~9v?4lz=ZYyQWM(NjGf}9IkQxE zh7cb*>K6VH(7As`jAtLPxeZAL!S7Irr|so@^)pOa>iX&>58NT}0484z$ zoagd0>o1mSEV0&4TQfFu&R`2^Ntl3s?uwO}J6soy+e|b~Z}m2txrfYr)fQ_r2MAkl z%ub)N^p?x=jpudf4JR&hdy@mc~@RP9T-Yf5O_61Ar&tY-6DcWM=&+xI?}b51uxr>Gq*udSU&#ic{3UQlw}y?5uc2mE}dsK>}GWJ+hKi(mZMRdBJU^pRO3 zslT;$i?!Y3L(;x zSr`i!i&0UGqP(mOWF)|=r6-ljR9U-s(vxFizp{G%`L=J^L0yBEpl0?+Cttdzt%8P3 zNuX|G{`;h1cm{HP3k^uau7fn%)~emM8&<;*NXxOUy0vMyot9O#SFKHq=;zv3?6&1w z+*ziF0cKdVCm4(PCv=IQKHRZn!>=4l7aZv=Bf5kR8y4I+lxZw_e5KoIMBtm PY4Z)MWjCBwqt*Tn>;WHt literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/sensor.cpython-37.pyc b/custom_components/hacs/__pycache__/sensor.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..411e8824838d1fee31c8f05eb303fb69f05d3808 GIT binary patch literal 3197 zcmbVO&2JM&6yHyOZek};C~XQ0{SdBdCjrwWsA{1El^ie)mqtpWrsJ-1Jj@yO=?2GZ)lzbl9&L)b8cF?2Z> z1uu^J{y?m{d=hz%ONc`ep-;J3CO-G#XOvAGKkCQ7DQpS;`S;cJY|pwk=1CknUL20% z2zK%HA!xIn{kk=ph_jhcj)!-dcPuN_0V4V{(YA*>7`s=_AS zl@r|vedc?VOGPrWjO(W>GN5u3YC1!?0=x%fej(CZF!&k}s&rKdFpa2Pofb{Kg`VNyYjc`DmuW`WUQox?&m@#DyLd+|8QLM|<#J6g{tsX!oApP*;^K4n}OksDHBg>E$N zyB-LmOqgLzXdo*5X9s-FL0ZFLCLj^zapXT8Q^zN)2y=!wA)X9QgZ^n#Rx?mCV%~#w zT;`}zQ8js|=g;}^>MaLnr2d_&b7LO=P zChS9mg#OAA^eS5gf`en;lvG2LZx(xU2ut#w%>39jh(Sy!046Pv0x3$*7J)C3vgAv^ zS4dUzW#BEcB>4*P%cLgxD)4o(B6*9ff(OsYV4a4;v}7y@2TTST4w&jhJyaZJ072oX z(^RkSMUbd&;HMPwTN4F`CvF06WposCKZzM+aYJPv!1hzNL0kK<+i^aDkJ3PjR#4M3 zCncgaTQLt&#Dk`Mjawc8NgzNEv;&Ve7DfEEsl@V0bN zeo}xre1BCrRDXq{^>ppAl2q}{5$b16HCz2*L_iZe8PaJb0|l3`WO-1s_=G1kgePb_ z=Azbfy(a?}k0atFE`P$V05nk>(TMobz!{GQ%q3J9Akh^i59AJFHo?jlhH)e+(>GZ0 z3hoHE2|b_@y9{C)nzWv%%uPBuZAmMuE@O$ffu=!sDOv>ruAo_9)w)(!)AKpY=6B4k ziv<9O^f;P%YKzaO$?n=&7TSBeb`slTPGxsVhCZL!DBauG+T3zCJks21-|(94?LKMl z^fte2dfPXyx4oUMjdp*h+4FYV?cPSe*(dF5&9-}EyXkIhU2B4su5XjgcDwBnspaC> zVHW`0HjJ!38tK`bYV%6*PQ5Np^+F$Ga@%n~?{9{I`8E_-T)vs3(9>ED1ha3++&Sr5Fdl51dyfvLB@@egxhO0!r*@V@y}vXRaT(y@1YM z$*R*R$_HzL5Qeotl>6f#kYZRH=ND#@=Q3x__TaiEJIoNxPHhm-Ew3 zDud2(=lbo#+N>PuhH7C!QVqE4dU_@2f&bVH6_?=whkbZ5U%1aUZmUP#n?# z`aW;rVFtQCHYFiXIz5+DhPfq6hcF@Tc_I%m^1zZEUGT)o@IWWe0`gajFpAPw*#YEh UEXf>U8=3_sJgZmCl3B0)0~+)NPyhe` literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/setup.cpython-37.pyc b/custom_components/hacs/__pycache__/setup.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8815614fe42d97359b0d8ed8f7f2dd372ab8a93b GIT binary patch literal 3130 zcmZ`*-)}2N72erhuh;gjq1ti3yH zX2v(Q=@(<8Zr|(cg-GY>E-yjs6D64ch#Z)9=t0jo`gWW7>xI7Tus7cyH6q zQ>VMNcy!9tY?_?S_)z5)m&sWrlB0vCr@hZ%gHD&|`t!qIoF2b>0%C*aa#+1!Vh)}7 zC>zSd4~J}u6T7a!qv_zSci%ZUM&oeARC*3JAh%H#Y+A`&Rc7|KV53|rChn<+_(lAA z@F0Yrz#~6}Mmbl`r88eFoohnL4Y?#sfNc_rC(1?8uH0jXxA91Ms88?%P#H z4cf^H98t}Ciw>f;pL4}VB13Rbbn9Mk5&x1;cy+-OCPXFPf3}Fs1j^2`S)uyglh=Q+ z_}yXbG; zg+N*j#%!pxk1A2eMe34CG}iI3;%E72W)H7xW}^^%naWJG=%A=ZBPMh>6uHWWS<&^h zj~M9Y-4}F&t%LJ#j`$jU;frtY+m-i+GpVXF9aiPE;*2Y~ZxEE23%%)F@8HQz@ZJm0 z7?zOVfyQwI*CkC7l8$LZknGJ! zKZYz%AkEo_N@NL~T`-yC+=gC$mN1?Tz-dNRl`J^`M}Q-_>gjkoSLYQ^C15>OIy{45 zQH)a^3uaJ)P%4=`0XL!0ZP-8ocSxxNi??pxA&t7S1TQy-5R;=y3RhgU!5B1wtZyYf#G6n2iiW-cFZ{TojhcimkaW&BG)w&Sz2KGmG7$#k0f~KgR zrv_ae-7}r*=JTwWu|uSr2b|KxZ`iXufiKIiKx6YHA_4KqOMU=3vgNgj!0}tBAgdsc zd;*W5dQ%Ubl3Y5adx_+UHPI`5q+L~mGT<$}aWHnS>q{sK2)YVE(@2}QdSdm|r#1Ko zI67_u9oIkhX!uwE($AgC+R|UvXyZ-C%xZx}L~#Wmf75Qz7K}$U{&N6(KwU8IKz{v0 zZC=?q9ok;a2I-M=4VBg8sf)H(1jo*tQdb;8?;9cNetgy*Cl@eA!<^T)z zK1Y)1x;i=nGJCepv>oidSIkB^f1b08x7jEgVg-(DB3#Hco92rcDeUoj&1Z`p!)a%E z!Q}p0`*`8?#GXtQ;_!=4S$W{k9T7ih?fdLxlw17G!euP69a5kra zz*bj~7l5j6K08cTR~_*R80n2w@k+&v^PG>wH&Od_n=`j_2eZ6TY0fQ3Hh(wp%oa2Y zLidJ(`#QUvOQeRG=ogC-fel7_7bu8zyx%%GNh(odB9{;RD-OL z#<~3mKWul`%Q>>7xmekY$M+vtb#w=;fo&pebJA|Xlt_*S*7`r z3>Lf;Qk(D`dXf>Xx1L9{>7+~*L}BS+ojj*)@>=wAcKBp}lDwK6MhCNLijdG;7#$ej zV3>#CEUAd4f>!hs`RrInI3L{;r*cl&895+=JtHTqVuBs}`awn_QZaz#ZuVX%E&{ud zftHqMr4)hSmIrgKiohV00PtdRrOQCb`$p=F=h@~@VYu-YJT)O8@5=TP(~+wgAkrQ> z1YGyIS(j;&!&xJ@b{E{3njOn^?KMZ#zLw2Id?9)pHvGCfPE|S2j>hQ<5=D}#VyQ}5 zS~JGu#!Yp&T-P@*Iwy!ZX);~tVH#bXTXaZ$>QX&~Scq!b4FVN zLEDzJNBgprnp+u&b;*k?Z8@{*5@UwHlR;(!2qL@lESF|&tSl}V(C^xK literal 0 HcmV?d00001 diff --git a/custom_components/hacs/__pycache__/ws_api_handlers.cpython-37.pyc b/custom_components/hacs/__pycache__/ws_api_handlers.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d994e9aa00c18ad3f7b006497b8b02526b615970 GIT binary patch literal 8698 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 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/config_flow.py b/custom_components/hacs/config_flow.py index 2650782..7bf329d 100644 --- a/custom_components/hacs/config_flow.py +++ b/custom_components/hacs/config_flow.py @@ -47,7 +47,7 @@ class HacsFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): """Show the configuration form to edit location data.""" return self.async_show_form( step_id="user", - data_schema=vol.Schema(hacs_base_config_schema(user_input)), + data_schema=vol.Schema(hacs_base_config_schema(user_input, True)), errors=self._errors, ) diff --git a/custom_components/hacs/configuration_schema.py b/custom_components/hacs/configuration_schema.py index 6b97709..704ea4f 100644 --- a/custom_components/hacs/configuration_schema.py +++ b/custom_components/hacs/configuration_schema.py @@ -8,6 +8,7 @@ TOKEN = "token" SIDEPANEL_TITLE = "sidepanel_title" SIDEPANEL_ICON = "sidepanel_icon" APPDAEMON = "appdaemon" +NETDAEMON = "netdaemon" PYTHON_SCRIPT = "python_script" THEME = "theme" @@ -18,7 +19,7 @@ RELEASE_LIMIT = "release_limit" EXPERIMENTAL = "experimental" -def hacs_base_config_schema(config: dict = {}) -> dict: +def hacs_base_config_schema(config: dict = {}, config_flow: bool = False) -> dict: """Return a shcema configuration dict for HACS.""" if not config: config = { @@ -26,14 +27,24 @@ def hacs_base_config_schema(config: dict = {}) -> dict: SIDEPANEL_ICON: "mdi:alpha-c-box", SIDEPANEL_TITLE: "HACS", APPDAEMON: False, + NETDAEMON: False, PYTHON_SCRIPT: False, THEME: False, } + if config_flow: + return { + vol.Required(TOKEN, default=config.get(TOKEN)): str, + vol.Optional(SIDEPANEL_TITLE, default=config.get(SIDEPANEL_TITLE)): str, + vol.Optional(SIDEPANEL_ICON, default=config.get(SIDEPANEL_ICON)): str, + vol.Optional(APPDAEMON, default=config.get(APPDAEMON)): bool, + vol.Optional(NETDAEMON, default=config.get(NETDAEMON)): bool, + } return { vol.Required(TOKEN, default=config.get(TOKEN)): str, vol.Optional(SIDEPANEL_TITLE, default=config.get(SIDEPANEL_TITLE)): str, vol.Optional(SIDEPANEL_ICON, default=config.get(SIDEPANEL_ICON)): str, vol.Optional(APPDAEMON, default=config.get(APPDAEMON)): bool, + vol.Optional(NETDAEMON, default=config.get(NETDAEMON)): bool, vol.Optional(PYTHON_SCRIPT, default=config.get(PYTHON_SCRIPT)): bool, vol.Optional(THEME, default=config.get(THEME)): bool, } diff --git a/custom_components/hacs/const.py b/custom_components/hacs/const.py index b91f130..47f44f2 100644 --- a/custom_components/hacs/const.py +++ b/custom_components/hacs/const.py @@ -1,7 +1,7 @@ """Constants for HACS""" NAME_LONG = "HACS (Home Assistant Community Store)" NAME_SHORT = "HACS" -VERSION = "master" +VERSION = "0.23.2" DOMAIN = "hacs" PROJECT_URL = "https://github.com/hacs/integration/" CUSTOM_UPDATER_LOCATIONS = [ diff --git a/custom_components/hacs/hacsbase/__pycache__/__init__.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b9fec3b3a4d068b9da1b0acfe666ea4cedea1ab5 GIT binary patch literal 10796 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 E4>@W*a{vGU literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/__pycache__/configuration.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/configuration.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7d4a15d5c52749330e4f012dfc7e3684a65b2ed6 GIT binary patch literal 2409 zcma)8%WvF77@x7dyWY({@@^h|xM}*>mTshq1Bxm{n?if2qKZN*SpwsDCL1?i+nJed z6U#w}^vYjQklG{v0{;Z}xpL}}D<{5hHd$EUfFu9rH=jR`zxU>TtJNTI{r>B>U;p9~ z@*8f>E(gdbaLfAujQE66W+l|8u-b_=uzj1N%t@R<#jjAp>5D3>u<8%=Az?Mo}qcHP z@`jPScS%hADc%H~y5TLu8=y1gw~c<&=y!~M%kXK#+rT^ijM14k@>wIFG3U&gb7qZv z-pJ>G&-)8Te*yTSzi9Y5qjS#aECFBkmyCP`_^Q8b_<7(L{1wA58vRwHe+l@Mf8NMF z;FtXihOZf&i$>=P@OA$Z_rS-iz^}3EuZe$|-C$i<*Z38%w8?J%Xt7)DgVzouZk*Kwy zMy6tPbF>CLRpMw{Pn~YnQOEvyAP*y@ zYniDpsXJM^lZArCX+L0D%8T}^SFbieZ7@t@b+nUu)%Lx|k994|h8P*$nf?hEf zu6S?3Evo<}c|joKw7By*S3{9{p~vD#d4lJHOFR%;(#v)|_`Wwvz*#3lpSnSS>Olb9 zkv!S`nTRWJ>>nRNII-(DqM=mTAix|zq*I9B9yGgw9kB0I?d-_>NY|k8U&t)IjwV_F z#3~lHCPv7q#@H*I2{pKlR}X+Fm%r0SFCU3}3_B%?+!Qyk69uSjCaqEeQQ#JB@C$K zfLJbdX#;MH7ITwvGMZgWw*_`<<5a3JjktDpvMkYdpDSU5djcIEr3EvhYm!5aE77fpEWw1X`=DnhIn zQ*NS-tb;I(VBDTXHis~euz;|Lu!OLTfNq*978j6RMDPH#4MjPs<{P+eLiAM}4LFQW zCVHrbbK!4*#cYy+cFRqGhUM5z`al0hnwIOhb&HyFx~{kbr)US$sb|0*-XHzXvBwig wqG>pN^Irq0XBrm)2U3rp{U0Jty=W>&CG#KVYxnLbUmxR4l^AwNJbGaN3G42C3IG5A literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/__pycache__/const.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/const.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2ae36720e5b6bc81647175082f1d4b8a3a69ef3b GIT binary patch literal 530 zcmaix!H&}~5QdXBg)XQ<;?(2ZR+Xxj6DNd7mxv;o;fCd|GfS3-F2K_wm5~Uop1t$7fYTPInx3yh5QQ zoPYgx4l0AWDmnOwqVO+f79oN1(>Y1k!cES&OH0 zfgq&jMxZTEEwwPNgW>$^dVn@L&O!ye;3c;+Y6Y09{TS4iOVBw7)XMx~`X>UkqtQKY zZ`5^`O~O&Hc}fUVDIv{^coi-E4*|Ijmhs0ZOwMd02>r_-8HUk{#8-<&v|I)6$=v@Z zdLBk3_!L|Q;VQm!s-D?OoBq6-rb=dFGfiuQQj%1aTO}>*)b5~7Yl_^;P*1jprvIi? TtSw4XLiG-(T literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/__pycache__/data.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/data.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..87fad747e940b6ce7f1b6bbb990ef1d68adf1ffc GIT binary patch literal 4265 zcmZ`+OOxBi5ylKa5+wNC<#HdE;qf`_{wq-r4oK2P170FD=C@crd1r{WB z2jFU#1^Ti&L6|2!NF zT=_juyM;e|_GtIv?{{FN`oQT&kKCg$^5RgQfu@X_-#H_1-;Lr9SF28RHtO4vbK=@@ zXh$&3Rcom-2pwVX%W#;gJGwFlZfqZb1=W=9Fg$UEE$7xfH&PakXCv^kRp}1AD0by? z)>$7nJ^$d2@4zp*4#L%X3>?n|>*<0E{khgNgduY9%!#}xz%wsQa7a;^cnWmNq&9E0 z`+*Zh-97_L_`xTd{}g^v3q%Yza?TRXW-&k4;0Z4QWBSB;IPzl83A~BhofPqOT>++d zI)+38Dj$%0Wf40Dj>FN6$PM=YuE_={UvF>s!_mGs*zS+PfkV3=4v)f-JBp)ioK9lT ziQH|p+dVo{rfqxhQroV<@(4pu<0Up}%n#F@k1vjcbMO@ZgkL1!aEaz?KJ&S+N3E=F z$SuKkaU?g(3;v2REiTZQDRg=k{ZjU{vS(QsFZFZ%Avos&_-rvh^LSjjtDUpuxTj6o z=|5;~^{)2xZ&RLdzb4pWQNF~MU!UqDL$Ik1y@tO+a+PEgP3gI6eqvq|Ck(y8~bkWeGRxOYbQ5!jUS9@Yx6% zB2vZuaS+%eXXvWRz9*v?f;)>k4JiOY{-A7Pw_jYxXeXGgSsux_y{QYm3oA_{`pOV@Ks+KX8_O93FYV zUX2r1MsSMxM!|G>VGoFGQX||hRA&>56e-L*@6#=-d~^onHiT#F#N$ZS_MHCVK!)QH zzCSutrtl(XFK~sd!Ud?DaQDUoS->{%NEE3`YH%za@@WOg7UN9V!w~(p=w@LgkpU#; zF!>>h_t28LIK4pucnL=?qqsuDnKvVO6?JVC*HF9xLYbK(BKaoj-a=j7IdQxI_dUOs z;zFY=Zv^>gNc)u-TN0^Tc2K;J;sX$>j_w{f6Yw(F7>{DvMYTTmgwprGRi!ilAzEBz zpain5;}k#)Ax)K*&Zl$!AjFk*A%vT-GTH&5@fI_9S?4UzI5(NeS_WrV41-l!iIup) z^Dy#LUtE=bH}n=;VUy~9dCC5l3K*^A2I1nm-0A#t)=?fiS=!}I< zf5Fb$35%X2JbEH>WJmW6J125P==oVe$uaVIm@n$KO3hZ{oS@xWmWV=%%5?>xU(<`d6k+q2iis(2NbyNX&0EvGT2s zGev0^Y)s9s%_rKI+K4~V(1)GX$?790d7!*$W3eNMt-A!|ofJ*$aF<_9YKvJA!oVaF zgG(9rr6=SXH1DM#ybsM3ObE3}<*p~%qcDb?FcR%ad2R%`{x$pKr17*pSKR|}x#C)9 zQ<`W4^M(8f#V=6YKtX6C$}kXaN{6ya{t`!SqWBdGq5=zA%1YVMM)WJwi|oS@P_r!4 z7#3uEXDK=7Tq#2-@8I%JaI}?T$PvPJPu>0)ykq;}o?4fwr!JIjsrBM#r+qi&e-ko6 z>_Ot_6bZTML5P;nktzr25^@I6>atE$27+3m?^My9oBAQLAvMxHeGb#2+aNUFWcW3h z$;%+i`U;?P1uCX8tLh~{d7W{#!RvtW7UMeNzNyz?P7_gFU!XWMywfRQ4#iwz+p1(E z+m3BeI@>SK1sPnxB(lJz63@z@ONvH?^m2osxA9{@x>oq7=R&;z2N9)KAk zVHc>ETdXvx4>fdV392EmY-VebLNqa_5X&x8e@-BlU74e ze5hL>+_IV~1?h5oALEj=7RvH@$`rWI>8063mqmpB+IlL!QMmU+^J$6CJ6{ ZTPfGv#!!newE&%E-#XA-S+9mB`!ACARAvAG literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/__pycache__/exceptions.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/exceptions.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b0789b2d457d6dfaaaf9d0c11965202c9ea524b9 GIT binary patch literal 546 zcmb7AJx{|h5Otii4OJ^uNNfxl>C#MW2vs0HCYEj;u!4P|m6|x%j#N6Zz@K63KVi?x zFJNWjE}`kd!b$gX7yItL=ZoR6&oI6|UhcQ}{iJ3W0TxqCdxD_YoZT?xDgMS32k+IN zbL@Q;U>^X--dCL&8+SK{m!)+&i>}rZ3b)j`ok-l!hKJP@(~b~;%{|=Bm51{j=lyDU zn@HOZZw9ln024hVb}1)!Zf=oLLwv?3AbQgwXx%hbkN$-Slskb`(>x7S2Q6VOyuSR`mMT1J O-twIMT4D_RQSbv3#(MVv literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/__pycache__/task_factory.cpython-37.pyc b/custom_components/hacs/hacsbase/__pycache__/task_factory.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..dce0e781ba9019b37e36abd0cc43c070119d691b GIT binary patch literal 2564 zcmdT`Pj4JG6t`z)XJ%)2(>6(IL@6w#mAVlm5>x^tgj%ZplTZpxMavu*CS&hr(%G5C z_K0S+&85A<2jH}O73c zgKy45?+^T#7aKY^ph^LP5k@l-RxJ%Fd|R0{v_qR#Iwy2MXJ?I}8@fj4WZuvZebaAb z&0!D*lyGO-V(yHFZRUj?PNqxDhp#ht32U<8C1Jq}D?H2SHtDqv!7thBQQcJOkTagC z7(SM7-hXg6RrkuB+s_g{QfZNcwsS8|I=BT@o&_-=6A}ToAi)tVwzlr{EZtDBSZYs{d7kD2IG`hW*8iD^ zHZ1z5xJ`96tJ054DvSWY;n!#thsJ~kJ)fI8?+8{ zR0G$&pfigS~xj)do)(nVOgXf|B z$0T2Oh-yC##4i+V7%Lql*FWcdO>*mr*=?`6HD1{&x(4d5D!Tj`PfEqdYd5n@@R;q_ z8VEo&>Ct%Q3sEFoN>p8ym3I6AM!GvX9x3`qgIx?w#uaDXG)JxE5IQCyqF&v-Grsb$ z%#q@^g($?k-CG%t1$szIAt0!go8FRW0`A()iot*j-C%sD90+DY?%q3w+4+Cf9w zi{*Zvq=j||vD)QAVElAL6lKl?-U8iT^r^k?V_}G9iI$luRV4=>~lph8;jhk?S=he%hgAe|bWu zbauoMi1$YjZ%f&I3u69+lIOsw@oUPNHsCtZJ$KKWSjdvcn4nE4I}qJrkw@i-#gJ<72m&vaz^knr zfO{dd17opn_RB1b@_5L_c{3<8&PPB3Y`Eyz74X4vw$e>LPjDv#u`J_0$6J5wd=rdH zOb!GPw;%?q^ol*cd=m9n7yds2Al`tJh36`u7gG8O%*7>`Cf-Ex77Bz~bWywwq6S%9 zM#VcQ5U>S;w+uX$laFEORX{JE3TU+=!T4iA3LH^+0v`)h{uZbVX>&p+)(h*Hfcf?0z(Q%^yPJGS#5L~a@!1wMhNB6k8Wry`|;q||-_93Q}Q zc`9@r1Ks@5y#)>yz*_}2cJ1+{Q^A|B+3NZDKH(LKA{|80uwZ3|{dN?6SH@X2B9?IT z7g1b6aTUci6vx3dJxo~w->hY*67!@_eaBz(13xhO-Z|}IGKEwtR$*BCc#AQAnsiy+ z({`K|gH-L7JMkzrnCbObUfqpd{F^|5ukOaty_F^#==c9^0ngy-%Z)h#i@e4V>E<>c z#-rUr@G5RdV%;2Y^|^TiOqwxAIqmG)|D;0jQ%tcEPY3|eHdd=m+csowE3p3tq_=La literal 0 HcmV?d00001 diff --git a/custom_components/hacs/hacsbase/backup.py b/custom_components/hacs/hacsbase/backup.py index 2702dcc..acd20c1 100644 --- a/custom_components/hacs/hacsbase/backup.py +++ b/custom_components/hacs/hacsbase/backup.py @@ -70,3 +70,48 @@ class Backup: while os.path.exists(self.backup_path): sleep(0.1) self.logger.debug(f"Backup dir {self.backup_path} cleared") + + +class BackupNetDaemon: + """BackupNetDaemon.""" + + def __init__(self, repository): + """Initialize.""" + self.repository = repository + self.logger = Logger("hacs.backup") + self.backup_path = ( + tempfile.gettempdir() + "/hacs_persistent_netdaemon/" + repository.data.name + ) + + def create(self): + """Create a backup in /tmp""" + if os.path.exists(self.backup_path): + shutil.rmtree(self.backup_path) + while os.path.exists(self.backup_path): + sleep(0.1) + os.makedirs(self.backup_path, exist_ok=True) + + for filename in os.listdir(self.repository.content.path.local): + if filename.endswith(".yaml"): + source_file_name = f"{self.repository.content.path.local}/{filename}" + target_file_name = f"{self.backup_path}/{filename}" + shutil.copyfile(source_file_name, target_file_name) + + def restore(self): + """Create a backup in /tmp""" + if os.path.exists(self.backup_path): + for filename in os.listdir(self.backup_path): + if filename.endswith(".yaml"): + source_file_name = f"{self.backup_path}/{filename}" + target_file_name = ( + f"{self.repository.content.path.local}/{filename}" + ) + shutil.copyfile(source_file_name, target_file_name) + + def cleanup(self): + """Create a backup in /tmp""" + if os.path.exists(self.backup_path): + shutil.rmtree(self.backup_path) + while os.path.exists(self.backup_path): + sleep(0.1) + self.logger.debug(f"Backup dir {self.backup_path} cleared") diff --git a/custom_components/hacs/hacsbase/configuration.py b/custom_components/hacs/hacsbase/configuration.py index 2e86984..c9bb80e 100644 --- a/custom_components/hacs/hacsbase/configuration.py +++ b/custom_components/hacs/hacsbase/configuration.py @@ -11,6 +11,8 @@ class Configuration: # Main configuration: appdaemon_path: str = "appdaemon/apps/" appdaemon: bool = False + netdaemon_path: str = "netdaemon/apps/" + netdaemon: bool = False config: dict = {} config_entry: dict = {} config_type: str = None diff --git a/custom_components/hacs/handler/__pycache__/__init__.cpython-37.pyc b/custom_components/hacs/handler/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..50f46496dd03d0e523851f879407f56406657aa4 GIT binary patch literal 169 zcmZ?b<>g`kf{*9x;$(pIV-N=h7=a82ATH(r5-AK(3@MDk44O<;BA$7fC7FpinN_I@ z8Hsr*IjKd(dVZRWx7g$3Q}UDJ<5w~iF#)xJiC;$g$@zI{nd$n;rNt%rx$(*Qxdr)o rsd**E`WcDIAOdWHetdi;(AfBRy@JYH95%W6DWy57b|5Ew24V&P?qw~Z literal 0 HcmV?d00001 diff --git a/custom_components/hacs/handler/__pycache__/download.cpython-37.pyc b/custom_components/hacs/handler/__pycache__/download.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2b77c7285dab58bf6687ae91e98706d72ae00eb GIT binary patch literal 2115 zcmZWq&yO256t+D-lT5PN>~>iSlu%AVG*Jr&s47&I0*izywLMUBAexMw>|`h7U_0#Y zFw;Y~*QymqDx{=0{thnOxch{}X^&icf#*q5fpFw!zvt&?`_1>g+^W~B2-;u2Km4{2 zvpOZk)g;pPOCP(Z({_Szo_JBiN6G&160_#J*iUvh=@nIy{IkG+HR#S70}9} zZq~t{oZ(0KYuIxa-9ryhZb34t+0|+r+9o6IQJgUOemhKQTQD^jXI3MeJC{NR9pyDaxbEUn_#6AqA z6b6*qlT1qZlG=jrsNL1M+7>LN!Zr@>h>K~cI*zvHBGIrllG;s5P-s^$IZq(6VBgJ| zRKFnc25fqHtp|A-#p7Nymx@mZ5ueU@3VD(}vmZoC6DE3_hjeGBdS`XnjcH)=y#>K! z8w7G(?8DEtd>oJ_vB@rOSykL51lxGe7H@%1WRhT71G;%#iMJmCg$gKAB8@D7UjIUp zRRG2cpiSW@l4E6^5qX`uVD-T270xq!+Avtl0TsEOJ3t@%LxUsl0R42SaC3J7C@c{N z7Qmpp@Rl$Fn!LMfKZ7adPbv$8H7x!BY}aUIiRFuORy8&SC(zm%dD<;J6)cPvyoRW| zBu`s~uj-3N?&bcHY$BVOt24}u)(vZ(VR2AKY%KA5zD2i|m^NQW1@L0AMYlm~fmY3{ z&k^0uE5IqMsFk;C=C$=cve>3Od2PctV>>svh)J5*(-vF!2|RSO36A0O_KxQ*Irh;AAZkPwCZN9|1w9yQs#k!LA=Jt znKM_TD<5e$9;aL|O^%0mI+nJlKoIS-6o>+z+GRp;Av3Exk(u3%q|`(VK^1-ed| z%$)9NI89#S-ud6qGQYR7_k^id+5SB?<>je7p@!kp)fL;>+n@3|m{MTpv4|CG(@=$m zjlj<h@-2qj8kA!3T(8b650=AUX~DT^BGIEQwGsalyC{};ZobPP#wYx zrExQlqVhNfi#^Wb8Bp_ZuHr=3B0f7c9(*{_j+`Yi(3YLVQbB|`9dScScmmUvS7lmU zFjsQQMwm8n6;?8r#;2+2)&;tiB3Hc@qR8K5hbk;YX_L(P(>^fPLQz z@GcH;3%9L3+*tpbxItQAt>P9Dw;)ERrM9HtZ zeaMm-q+(SuhhcQYMWt%@YxhjB{{#V1gC054?ABKr6%dZZ2I(W5F+w5e< u#mDA!Qe#hYkFxBB03Ys7$J2X{d_5TS5Uf8xwx51F2>r6jeh~=HV5=7Z90iDD zPBOeC0l_wQGG|Ex3NhvG0}5R3U7|^6eR^IgT`b31EXyp^VyvpNETo?PhB;`0P4`3l z1!C`A5ywJC_Gfmvuq~x?*y;hG#wkiM$2Yz_-Nh-{keqVB)m%F@y2l%*c2Wvo-P8l@ z)TD{KO}`J=gyBT=ky+b9n|z2#;8V@AZI)~2jjq%d1r z6Qy<3c(S2wJfNm4B`FkxqyO|`8G}k0&M>{!eU+cgiH3mRVANL7$2<~EvJ=g@$!#zUrF&<)h0zDUSOC82|5iw@GG|AI& tzO!kRz(s-=R@Ak~N+BC*&8dd%BN)LX(|x%tc$JA)7&2x3qXZZ@{{Z&}?Ee4& literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/download.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/download.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d36671205fc0cacc0222adbc1229257e81fccc9b GIT binary patch literal 4121 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 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/get_defaults.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/get_defaults.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4f7ec21af8a53f51ba1170c78460b8db76127242 GIT binary patch literal 1399 zcmZXUJ#X7a7{~8;#}~=6A-k@f7D1!Ii;7wTGGr=>G-weADBPigQvr>@@=g+MlE>Vg zfJmS+)EW9AJji1|M?XOKTRU~^+NsY&%7Tp?z=!v)=lTDC)QjESHi7o=>_=Nn8 zgS*C|^Bf-Y27(|XBB<~(I->AqnU}K>%lU{?oadRJ2cw|w`&pPrqlgmOlI)tww%ifH z4HKb=KJZbe9=C2h(H1)}-WA?Yq~BSdoXM<|+VrgIO{MJ#If>_)?P*ymlUk)yX$Jp5 zCgi;Dxz@L@etenQv-z*?VB7uvT_Q`Hs-jO_@PnF8rH0-f+&13cvgk7xOjA39lTi{| zIaPY$0xj)a7m0`WLyO=+Vg7{2{0?DCR-T1Iujz^jPcXrSf5TS1q7}ai^+^RqES^?m z4daS_MsDdVB7!rr^4~qG{O`yw-BnO|Yp)6}*)65y?ehzAL5i<9vHYs7f1_j-QnK8u z*xIi`+;IWtMX(Crhp)-cr0`x7{EdFN{NkmwW-E`<(}xl{K8q8x>?CtzReqYpTA1bj z-ALu7Dr8~J^2to)@-#LkH8w8nX`=FcUZi$$YG*Q+26Za4`7|xuPFjFYI!0-oUoW5c z1C4yRT~rs6XcTrqT$ZvBt~Hrw*|>;vsTpqbrPfOKBOSmWCASX4g1;MJJmIIwKZ0S^Bb0Na2O02r5BF!(y$g24oP00sjv`0}I%#PLgmo@Xi+#)X^d+EU$x-Tlag zMgl`M80tzE`Vro=kKq8rCm2v$eTV_=Yr+xq-0{bTV3y_yEE+t2=g0x=(r)7euJ!j^ zI35d?jK}(O7`slKs^+VX%T(iM+;F#l58Z}}2HP(`B4>b-3^wEp(qf`?UK8KQ!tJ7z rjv1>R7inT^95m)~uco@Xy0GZ$T#0!mzoD?hbRYm(P(z1y*wOL-*tdPX literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/information.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/information.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..af7ad8b9735666bc177cda48807d2915ab30339d GIT binary patch literal 5163 zcmcgwO>Y~=8Q$4%QY1yovSP=HyiJ-oOl>L+QWOP*KyhS8X=^1-fF@<(5Npm#BDLJ5 zXIF{1SnAN^2c*3^oMS6|xaon5X-CJuTEiTT)fW@qMo z-p|=v^?Fso??3-I`QWdY73E*_F#T!hY@tM-q2fwM;f$+3>oByMuMV}2Hq<*hBf9Pz zL$hPbzTsO#yJMqoa_bYNQ{gtRpsn&MUqZXYYrKxO#vR_|7d~N~I$z-zL22++ehKX| zU*k`pZSu?f3fc?&Nq!aW3V(_}jrJm6=hx7#a`j!M^@HTOcf9yW1di}VVbqU9F?RaF zUMPlc+z$h%zvsBYxcxQQPA}8GL=DV8`pHHw4EFl_8@;0_4u{=dI2?t67sS!V0r1;6@cfY{qKz5pv`6Et zLeE`V%qARHP${a-s`%SXFIv$6wFI6(ub})LB^sfM0sY5};EtLcK#y+$c6O>t__Z_j zO~AgROw?56>Y*)Op*g8K&`%Anas5n1YjE>Sov5*ys#ps`(v{eX?LGCdDh5oUKfU$7 z6ky9ro_qrWiVr*oOvhl-3HPMDfT=KXq}@c{j6U2?Dx16?x%YjKC&uOmQL398Q&OuU z8Otu5KS)t~@?P_7+in(+2At9Z;TO!wWMCvO@PmQZ{TD5mux}XzfHt|CMN+g5?*noJc_45YokOmD1fnoEu!D~nounjfF4Tb?%-j(mNN&zldX~9p$H{=TVM~N0)kgl zeTF^#L| zDcN7irAqYD@ytne9dV%W_zh?=3!3EX2iidY98Th)O74i<%O^C;*oK2Tw8X90d{$`6D%P=64eM0$bzn;t zwJdf6RBVURR7=AKLFr@{7J zk`V=oeXw+|N+1uE->VPcW~4?VTvw!hkKFhGAxmw)l(FLlWq(xN^!rgv5$aXa--uQ> zmE=b58p~sL%d>3yVbArWSKH?=Cd<2_jLyzpcocBw`XhFIH(7r@Jo32{gfZ;Xew=i+uvGK{DvDmF+GMM6UMe$L6a6N82F}c6HTiF7O%?I% zXP8^67UgrK0I#FSbb_p4fXH;HiZ!?_ST0k7Ul&vr)EkIkId!X`YM|bV^@93hLDfNh zKQ;;~B7j`i0M$pLAy?og?8Hj0zEPwT)2zygLnn3xSZ-(L$UoYLk}SDwv~a{?owI#5(Sj;h;fmS5hPXr{hS-Z$q@y0U~JGE15 zVB(!G(ZjjA6;AtB2TR@B+scD4-%}o(9KS7R?_jne{*65 zE*uCjruZtgPwTvL#tP?-HB%^Hx#m~2CW1vBYS;KqwUcQq<(e|~;&uS9l)$Dx^eFed znP}}nlvwSfA*W9D=6yIp-$P%JK|Nv{rL6vc-z_M$YN_HmG~#)x<`qU<2kj3iQ;+?^ zg3d`pfs_7*xBmLS`0chDx%Yb(OJr7_QAW~C1m!+?(tLw@7ioqGU+l#ZBFfZgq(2oK zG~*?jVMHUpA0v+^cXqyZX9bthsE@S2OGlwwX4F~!(DnPdwv)GyGJ85ECH&~MA;PaB8W0~CK{1v z+CnEk)A1{$;`eUQB~D)Lq=65NGbU=1V#0LuzJ)jJZskF(xJ_%{spg5%9=k(-w^hv< zAq~u`2*4taKEmx_QQ|f}599;#hDClz{1VkH-_^S3bbPbkIp!Bne7Xc9Cs z2g3I*7()Edbhc73M43C&_bM0-p9ki|BHqS%7UUs*MYP9@LcBxc3+A*9+LtKblmd;k z)H~uDwU;uh+vQ=e+Z8{?b5?WvVSZtBNB#Wfp@H7H{*5mlZTjMYiaerdPd_Ee`+D}` zV`ulG`?%$_%WG(qXKD29L*BsU6;oc+ghMpSVq{d5RxQm)s*xbM31Vf2aS4I^0AOzp nLw@9YxOD;o2bB&#(IhXT*>!u_uG*Dq#a_1?_D$Qgmu&NY#h=@q literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/install.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/install.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98744e53482f37eed992c1378a98f5ce7bbcee02 GIT binary patch literal 3194 zcmai0L5~}^6&`Y=(MT(4*PFGyjZ;@~8Yc=IZPFM)3lv72Yyju71sbDC1vG=%AtjA= zG^3ECwO5dPsDqwz@S(S)fc8?L|DedBmtG6>&TD`GIX1_f`aRA_E5r^eVaUhF_sGY` z@4d%&TdjtJ-+%w}$4@5DInLKKSp7JNckt;1jd1#oV1g&C&uq{89KD;klS;qBXs(h} zCtlyPbTz3>{JuY__v?1-C5_2ee+zU?_@6obrl^Ys`j*%dP4sQi5^eO`f`90Ax96P? zQk{oM(izEQDphBYsg9D!S_};j7!qp+sfuA;oyWn3qf3+jb*2fKX zYNfVB1#+i()9SJXTei-zL;5>A+gAV1x5qonOBn5rcgD|s;Rx)4)!SIjJ!hETd-hy@ zd3ojB5#CkjF^B!-x{#&4zq2}5^>-KAu-sj^#qM^8{U=Plus(}xN6zvm3+J4z{E)Wu z=gIEX7$%U@bDv}Gx}5|1PU_J68%|V6vvP*^{@D|*-hh@j?x1~fd}G`=sX_Xif+uh%<;c!0 zUn=-ym+(Q?g9h54k6)%XxVb(($GW=$C;+#S`j!tWe`WLZ`KvS{yaU7a`K|Y|39#0Q z3n+(#$&SwDRClsLCm+cRM4$DJ=6COdb1Ic4F$mntCbDx^>llHM=ABq~(k$;p*<^~9 zjuY8=5a%N-gNagWUd_XyJ}~uE=ECCqdv-9tc0kb)Ac|-y06h?~k`dzQ>|nk_a|ba3 zV5qEt_q$zlX*LyME`xQzof-c$Ok!dhPb!ruZMLE?4a%b_7olQyOEZEzTTPe>bVAb> zauCjvJUCWi8jXyrWGV3s678cw9CkW*p3y?*0`)2U2xxY9k^?1ZOb zoP@YTP>Xtzj**p4dUTJG{bQwcA+c*LV?JwepLy(g&e;{#=04xCa{FwTw|N8fE`t@I)^StT>AP>3wWh2oM`ZmM?J-<7xDemj)MZw2ct(%n*RC@MS< z9K^kaPB2Ka2kK?w?3a5y1tzmiz(=61_E0xT9^rv_@wHT^F+#^QLVcD-0U|ar^^5Aw zRF5_#z!uFfh`NR5H~91oG!Ab9UQG+CCcxKVdjJdpkm!8^56Q2=LoXU~!F%{L*^)bt z9jc8~wU#cuYfz`1ab;W;l`q|M4#-q-N#6X8yT$F~Sx3#%&V!LmZ3f?rM@rGFknGL3 zZDzd)%lKEwX{J^xbX~(^f!tu1wI@C5dWsBGchDI37^$)J%mDeixB>Eamluv9`+w-2 z*TEa&(-a~O0@8;k6mi!+pa7z6tPj2fQ9>D2Row&4$M6H_cM7_g1f%VIzRs}f5{;W0DL%@j2v8vlS8fyE2Xra*Ytx?2 zj+0oA3K2XepNYN}l&1Lfbu@&&CflLJW&Z_D<0h*xMY7!;Qwsu-MM0phV63j8G1s4p zlpcYlH%zkQFwqtT=CvOYBFSTz+>@(!uD0d3fAjw-l!bt*Vo_gT`7sUq=GMJcIkctF srePaS7Ektg8}PGXN)c-OUr#bIOXM9wn%+ZGDcwU3YP$aW{=Q%TA6XE3FaQ7m literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/misc.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/misc.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0c9b130961a2845f00e6482b749f47df83783c75 GIT binary patch literal 980 zcmYjQzi$&U6t>TImmjnUHKA%HggmgE1POCgAp{a)p#wz>891(IU*g8GBil#SDq?{@ zqeCiC`}6bbr(Xo2-(mCLVgN7UvCqLV zG)4@wNa8W(5hE9v#Vq+Aj|q?97qj$&uoi1WBw^7J$~xz}Z@FA>L#tYqPH1IEbS`Xp z1#IXr!#*|K)kc*#1i-=?YQBcYeg?NhC+Gw-JnNYLH9iWl=!CFn7MT&?*o+tn>ny$A zGqR61S;=L};uU7eKDunNl(kk7tnFrPuOJJ~IC|flfx0QDs+e=Cs|Fjs&{jBY&S<3# ztu3cQHUCsbE5{WZ9Qu0#(8Ls>IUk4D*LZmK7i^86tuggD&pPAYEmuA-l&H9MCiLlJ zR=C2q%K})SlJDQ)yGiw(s+KYj>^`vzDV%Qsqby3;JK-dUQFd=@{6J<0$k&5msZ}K= z!?Lzc&+}5x7g}-U>~LC?;2Lr4Fi0|3ocZ2_yZn}>DVP9}4Qz;P;dZozQ{2T}vV+^$ z^dXuNPZU4(L`!BO2$aDE3+s)R2e5IVoWtKD(+7kDvU>~%rIr}9d=l=A17$DcC0gMP z!Ye$BK__zlZlhB{kF}OmRMhI)l%R^Ga00kxZd!mqg@HDn(o-QNEu_`-m{VtJ$g8Me z(7h-NIe7CSOMF*Yp{y$u43dB({(%;nnk z0Qtw8mvYG~mruoH%1sW}O63Ny+k+h2d}~o3$1uPcn@14KQs2sRrpr7x`++eeHpBIC eXthbYQ>&@k6l@>NHLE3m5xyInf&*G|zxNMuq!I-H literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/network.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/network.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..79b69f206b5fa577b0cc69570b839ee8596d4b25 GIT binary patch literal 431 zcmY*Vu};G<5RH>G4X6b%!_YMhiP#ZBup$-^Lk6N?yNT7rj?ONq9hmqT{-hgwRwhQ) zPTaMsDo(n0&(^zlr@I-C4?T?EulMH_)^B?3B0zGDY0nXamwSQHk|~U?bhuU{i)JU0)C))?_cm*@>xV1`3Rm5G2(r~fEG-mepnR3 y@S^A=Yxqn$AX$GxW)+l98NHnablXkye$6c#QbT;%8ZmF=6&=9RypWC9DEI@RMQ+Ie literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/register_repository.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/register_repository.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98476d0b9f2e4b6362f403527a4583d0ce16147b GIT binary patch literal 1455 zcmZ`(OK&4Z5bmBw&)BgYC)tGEMM5L-TCb3O*$W5|3koDC+MqaMcYRKa?e$QPjDb<^jnIt9fJD~7f^&@$YW;)rIg+A4%#*FYs1)};) z=Z`Xz8U=cZF0^y}BQ9`Z%q;$OMhg5AQS(Y_6!;!kpW~%jXg_0qe~}jE%DO~{h>`;Y zp7p6ctxfCvj9P^`t+{oWH>M5#dlhljgmY`Ud5PD$ZSfo2ZLPMct>V+#gmnD0*S(e^LKB`^&d_Z4Opof6=4>veo`sI=m9=Vbrno8$iB>G8>P z_lu*){r-MGZ!0Q$L7cHM_Y}o>tv?IWG>FGe{*Ds}Cr&cxkMF%Ops#d^<9lGD+U3cY z`R2FkwlsG}33qba8F@j-XgA-jdaUy8_(_z8EMs}|O2K&%WD`f?ZoXLpxoN}TLlYs{ z;AM+e<{d+70hPq_6;N5fQI^e{y&KTZn_TtW;B9{{vLtd<*d%6gCb}w0cdZ;S!3k(e z0xA*sGz28iAu{5In(XpYEZ~(yl8DU9=0fT*dm-(zB2WZL80QHWfGbT|Or-&p@MLW? z4?{QhA|@@cLiAC(YqkuEHQEEhGWu-oc zNqF2?Qad#be(M=a}=YQntX_tRWNF%smG_Z|Zn)(`;U=6o$9V9m1hV>4tZP;z& z2cV&88r&1y()s(~<4Fgfc52dcU7Gl=D;r*rjG;~DLoW@ga=mp6bw%trOom=4O7`W$ u*C?s{hMr*Ebx}k`c1gQJP?qSG={=B1`{O8~^N@Y2o|90GVc-V*+T=gTWT<2S literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/__pycache__/validate_repository.cpython-37.pyc b/custom_components/hacs/helpers/__pycache__/validate_repository.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..816e3af48936ed7f9917fb2f768571fbbfdf18f9 GIT binary patch literal 2498 zcmZ`*&2Jk;6rb5$uh*YRo%AE&BTgv=hsvo?4;<18Xo2(+sus~=sVr;n*j{Hp+?jD2 zTk9T3j~v1oAvs4R{tNDKpA!-%E=XK^;=S=lQmWe8+4*?y&3nIj?>GBtsgx)1`}dD$ z-##x9@)r)~KLa`+!y~?f#wQKpQ{M<_WHbzleKRy8t6@c%Mn;dV(2lZ=tnOz*C(1Q) zx^IX1sL&`x#YQnIHA*m-^_}OWQTB6w9^OlS;Q^@?N7r{**k`;dld7LoTS*iparM9p z1K*PYblVB9a@J2oAQK)iQU4qKA~mWipWOZOi$LxUnx7rESRaLJhH^Sgx?Qg&R6Yn6eq?2^Y!^lTL?mmGN0~&{35syzZb6;4&8) zPi?#$u^V}D&}Krqtt6H#mVjOU6p&vCKL=61xVa6>?Vz*W8VH$0ARP6R7{tXkg1_C> zhbp$`9-YCo-XE%^nIrRMNJ1hUXo%sMMOrrb3iKB!=U{*tt5N&^Gq-{0BJ6 z^~$0R@=KHD)I@3MpX*g7E54ymv5=Za^n3actALKpXXYdF4T+6MD3|H2@?RJ7T3Z%; zEicdOb^D0&-xm_r)S_>p#o%7Qd2EP}Kyz`T^0jB^Q>er8Xk}K1(+a6#h1B;(>-Xmb zGz5}jq8cZ%$_@h|>!XWj)&f!Wc&i%#<Wq~`9bX93e9|NvQUS(vm&the1M#{AZ zVW{I$=T4c&O`1K{lB#gVX_fb+0C`+7a@^`}^3IP1s5X?_K6RO-FGy%LW z^Ie2PSus15$_gaxcpj}evpYwqoOj>_q1OzVGC6B2+Y^FGp-f<7m7BvZxQ(75JE|-| z0lC9C(xkHVos`2?qphZ(^*!0G<@mA|K_ccG*v+x|4av7=wsa``Ll|+qwjh^grv8^g zybP;r@Q5Zf#IUIW|8;m*=qk-qAZxmAI?!t3h8EW?YSU$qaj0Wdj0(t=Va5iHim^(| zMjqBKfaC>~fcYZ51pOlX^?rM`WtDYZKWVwHDtbZE31oNB^!kB5W%c$ew@w{{t#`tt z2{}AXI6OqP^%_YOZ^BJpUmzoN?li8xPGNeX)n}gy`e0sfeIX2AFOg1ho&WmmbYkiI kO~-l$Z@gJK)~#}OqQoDB>=u4s2s{D{uvyj!t!AC#e^*MttN;K2 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/helpers/download.py b/custom_components/hacs/helpers/download.py index 63d59c1..20414db 100644 --- a/custom_components/hacs/helpers/download.py +++ b/custom_components/hacs/helpers/download.py @@ -136,11 +136,12 @@ async def download_zip(repository, validate): async def download_content(repository): """Download the content of a directory.""" contents = gather_files_to_download(repository) + repository.logger.debug(repository.data.filename) if not contents: raise HacsException("No content to download") for content in contents: - if repository.data.content_in_root and repository.data.filename is not None: + if repository.data.content_in_root and repository.data.filename: if content.name != repository.data.filename: continue repository.logger.debug(f"Downloading {content.name}") diff --git a/custom_components/hacs/helpers/information.py b/custom_components/hacs/helpers/information.py index 2107d66..2fde31f 100644 --- a/custom_components/hacs/helpers/information.py +++ b/custom_components/hacs/helpers/information.py @@ -63,7 +63,10 @@ async def get_releases(repository, prerelease=False, returnlimit=5): async def get_integration_manifest(repository): """Return the integration manifest.""" - manifest_path = f"{repository.content.path.remote}/manifest.json" + if repository.data.content_in_root: + manifest_path = "manifest.json" + else: + manifest_path = f"{repository.content.path.remote}/manifest.json" if not manifest_path in [x.full_path for x in repository.tree]: raise HacsException(f"No file found '{manifest_path}'") try: @@ -142,7 +145,7 @@ def get_file_name_plugin(repository): if f"{location+'/' if location else ''}{filename}" in [ x.full_path for x in tree ]: - repository.data.file_name = filename + repository.data.file_name = filename.split("/")[-1] repository.content.path.remote = location break diff --git a/custom_components/hacs/helpers/install.py b/custom_components/hacs/helpers/install.py index b2a5c3b..7eab265 100644 --- a/custom_components/hacs/helpers/install.py +++ b/custom_components/hacs/helpers/install.py @@ -3,7 +3,7 @@ import os import tempfile from custom_components.hacs.globals import get_hacs from custom_components.hacs.hacsbase.exceptions import HacsException -from custom_components.hacs.hacsbase.backup import Backup +from custom_components.hacs.hacsbase.backup import Backup, BackupNetDaemon from custom_components.hacs.helpers.download import download_content @@ -11,6 +11,7 @@ async def install_repository(repository): """Common installation steps of the repository.""" persistent_directory = None await repository.update_repository() + repository.validate.errors = [] if not repository.can_install: raise HacsException( @@ -23,7 +24,11 @@ async def install_repository(repository): else: repository.ref = f"tags/{version}" - if repository.data.persistent_directory: + if repository.status.installed and repository.data.category == "netdaemon": + persistent_directory = BackupNetDaemon(repository) + persistent_directory.create() + + elif repository.data.persistent_directory: if os.path.exists( f"{repository.content.path.local}/{repository.data.persistent_directory}" ): @@ -86,6 +91,13 @@ async def reload_after_install(repository): ) except Exception: # pylint: disable=broad-except pass + elif repository.data.category == "netdaemon": + try: + await repository.hacs.hass.services.async_call( + "hassio", "addon_restart", {"addon": "e466aeb3_netdaemon"} + ) + except Exception: # pylint: disable=broad-except + pass def installation_complete(repository): diff --git a/custom_components/hacs/helpers/network.py b/custom_components/hacs/helpers/network.py index f15fc5d..acc0a1f 100644 --- a/custom_components/hacs/helpers/network.py +++ b/custom_components/hacs/helpers/network.py @@ -1,20 +1,8 @@ """Verify network.""" -import socket +from socket import gaierror +from integrationhelper import Logger -def internet_connectivity_check(): +def internet_connectivity_check(host="api.github.com"): """Verify network connectivity.""" - hosts = [{"host": "github.com", "port": 443, "connection": False}] - - for host in hosts: - try: - socket.setdefaulttimeout(3) - socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect( - (host["host"], host["port"]) - ) - - host["connection"] = True - except Exception: # pylint: disable=broad-except - host["connection"] = False - - return False not in [x["connection"] for x in hosts] + return True diff --git a/custom_components/hacs/manifest.json b/custom_components/hacs/manifest.json index 652a743..95c49e0 100644 --- a/custom_components/hacs/manifest.json +++ b/custom_components/hacs/manifest.json @@ -9,7 +9,7 @@ "persistent_notification", "lovelace" ], - "documentation": "https://hacs.xyz", + "documentation": "https://hacs.xyz/docs/configuration/start", "domain": "hacs", "issues": "https://hacs.xyz/docs/issues", "name": "HACS (Home Assistant Community Store)", @@ -17,7 +17,7 @@ "aiofiles==0.4.0", "aiogithubapi==0.5.0", "backoff==1.10.0", - "hacs_frontend==20200229193422", + "hacs_frontend==20200309184730", "integrationhelper==0.2.2", "semantic_version==2.8.4" ] diff --git a/custom_components/hacs/repositories/__init__.py b/custom_components/hacs/repositories/__init__.py index e992d78..ddd6003 100644 --- a/custom_components/hacs/repositories/__init__.py +++ b/custom_components/hacs/repositories/__init__.py @@ -3,6 +3,7 @@ from custom_components.hacs.repositories.theme import HacsTheme from custom_components.hacs.repositories.integration import HacsIntegration from custom_components.hacs.repositories.python_script import HacsPythonScript from custom_components.hacs.repositories.appdaemon import HacsAppdaemon +from custom_components.hacs.repositories.netdaemon import HacsNetdaemon from custom_components.hacs.repositories.plugin import HacsPlugin RERPOSITORY_CLASSES = { @@ -10,5 +11,6 @@ RERPOSITORY_CLASSES = { "integration": HacsIntegration, "python_script": HacsPythonScript, "appdaemon": HacsAppdaemon, + "netdaemon": HacsNetdaemon, "plugin": HacsPlugin, } diff --git a/custom_components/hacs/repositories/__pycache__/__init__.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4aad74a78b2946934b8fad2848ad99cead9ea64b GIT binary patch literal 796 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 cLsx4UI1~J~&eQL)%5C&q+F|g6+{4fLA41|t<8 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/manifest.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/manifest.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d2b8872757d1c03980f857a5d982396233c2a41b GIT binary patch literal 1366 zcmZuxO^+ir5VhT%q^GAd$;@PCSwN_@oPtDhL_*ODEuRN=4=f0&C9pbeXX4%NcGh;J zNtES4_R2rt5AaX8arc!IN3NWx@=Qh}fm?oEWxuYJUzPKu-%kmQzyJ8@#}8vd{zT_6 zz$c%;v`+v8DTttg)wE#+qi9EUR7CKO>$vF@9ZF>MqANP0`wRV&h@ME^5RvTJo)$e3 zJtyO%?KkPuvQ-OdUA`<^QLFYU*NeQ&ja+G~oHmdhY*wU!)0+`Ries4pCkgBQ zuznQyCxM^N$Q3CDawt0w3Gj}Ce|qO<;k&c&T|e08!9EH0DA3qPoI>tyS=YPr$c`QxoxaU*M4 zTIrL8swEPA(%e?g$EdwOUn(KFkc)C%J3cpMTP=N0=%!Sy^}R~3TW2=DztjyxvQV6| zb$+yx25tO7p^U7sT z9n@k^f2NM^$!oeJJIdMhyF2n3`C;^$xoAgs3|84gvX3Zv_2_$GfKt)+?dQ_vH?6UD z(&h`Jn_Q^MfkfMjrwTHM9zC2r7o{u5vB5k{2LaRbJu4l?7)QY``UgHozK>qY&2Pk9 z0QH}brl9viT}`XCb-Lk|ZdSSlIc#Y6>D@(8(oPRyCM(bgGXu>k_a4NtCjcZ$Xu`Vi zq;y2Lm-ov&xucKY@(JfyL(YB5d85U;MmyvD)w-;2cY2(|HRIf%zCNthA(k-ZV0^>(d)|`!C=^(xWE$ zvK)ro7qJ`g$hmNmS9)Jt`a^c#( zq5W;J!&lRZkS1i{zEm@2JRa-VM8j#Gvmzb~6DF}1BXF>Z@-m6@Nvt23Mp7196xw)p z>f0|SkPvAtBpPdi+=jO27*C0OD3@UoLKiWXAUYWPh5YmWCde74qs?ThbU9{8Ii8dS z$W@!D@8&|^RH)5`N&U%=?0_^JsttrVO&Y?lO`EhjhhSNRqdzw+L5SglZ;ZkX80rEL z@G8k@=73)@0xo*^nF~I3s?|F}Pi4_v7~Zc|j`i3?&u;d7>}j>v7$ehbkA zw#cg%DXzR~@#AGa3t$D_S-{;N9C=SSU>?rb_7P98tsq^cgGXNoas!YQQ zn@%Jm$@q33EKZX|DAn^U@JzHY)`W9CWFKXnhNM}W-^h*~fOo2QfDmWN4ItN=&JuO# zy0h+hkay>30Plc$uy(-<=@P81(CYGOFuy|X0@j$8m;x5o*MK<*YjuV@cX0&@<_Vx9 zNFiOB&nZB|tvYwaD1{is*e3ehw|aqm7bKarS!Csj&o=Q+#BCimzB)xs`{cQgV4n(s zfFr2qF1gjlX(LZ=K4l#i9c$fVU_f(QbTTOWkdW&$`#fu(GfQM&UWa|q2;_BJ{KG6_ zO;~|<*5n?Xlez_SOh~(C6FFcVUN?}XSt8HRE!X?l3f=}Sqw&qeCXz(wZ_77;o=m9T zs)d>fMgY?3ebWTTiaZ^sTA2t+J-|9GMy50K?$ipCmr)94iM)d36`3L5#1C&F!K|nw z@jw1wttFp8BmQ4eh;`zu0OtOKNVj_9bVy!0-)mvV!>SA&ugTcBku=dQy2oQyuL$W(<9PYn_Ah*H* literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/plugin.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/plugin.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3482de454429e3340ae7a051424c3630d87540b0 GIT binary patch literal 3095 zcmZ`*TaO$^6|U;r^jvq>yWrR|VF*TeA~a)=!X-i>5J(&;T3Ly~FalcbuA15I?dcv@ z^~B!REDx+j-uMGi(C#C@1KxSB*F5==*Sx@Yy62YInNgjpuIs7uednC|Rkzz>`2F`k zfBEyjyNrEKAM2lk#@i_RK7?RnCb+OtKIW+H)SB62n=|1EH+5$2*hSkDjntbp#tpQ& z@Kb-*95*?8kBO#eJ!7IJ-3xo%64pm-&@OMjlZIONC%Nj+)5SE-bU)7e_kQ`#N5khh zksS}X@jl3>Q>mVFeB-lsFO2kua-QqB$ko|%tM2Yn_ivs?a$dxFM)M|dCW1+v${-78 zGNSF)KYP{C_t20G*I{Ez@Ui^~o8W@Ne&&xIy4Eu`cIir}J>iQc>V{~EHfmpVL>G1Q z6XvjS3)ktH7AbMRx=6WS*V_w4q$&NVc2P(RokA4sf?e_}#@UiDSz-mYsB1@9)wf%H zdqD$Ve$q@@pE6-D`DI%;S6sL^*r)6>8)KcM8}y1j;nAwZ#jM7XW6Zh0e!;%r(9$p4 z?`LrlhiP2O;j!^*!WpOmu#y5Tx7IF%>Ogqki_ADfn%w7_H9O_8L^CBqD=F&KH zmhtqNF67L#qdc3$(_kJJCpd4O#)WC1uaH?`oVqv7qcBxuQsbo+Q3jTAv`i;zADtjV zGYBGLSrGh_eenivNPCW=g)Z`0fcwt#4EyO39X;AyGnRT(TV^;vQ$1`&MU!Awi~IH8 zx^0z*ThNDVV?;z&`jKKD%D+(b-yxRll3lU);T-pXcL7{3IB+Mt?8FiL)K_m6ZiTyd z*$_4mwt%DinSH_kTCt*<=bc*W0njD3_>ka)`rFexb?evcPq)r#Zkrg9^z;Pnz03V2 zzrtCMClBeoW^z!mq4_&70nmX9<;}{kipsJ2x=@R#SSVS!XXzHl z+of>`EE-CtGSu?H;F{SZ3gubw@oHPuz^&B{5;q}?r{pXzq#~;rTgeHno~L0XfqR@y zQ)&G5TH{Hja;4QbX!$p*<+=!qg*FY;s#wg`E$VfvdFWh3k<@x%sc+GWACUO=M)c7# zhwIIQ4c2F*n0^I<**)90dfei#*gfvsKJW1k-{ z7&pyBp=)FAL21*dcK|NiR9*Y3X{^qA!Cz_L)!2G}GQcVnTl^aDSPpy?w%qm7mn_>@ zlN^JdHkCF1frfy^DDO|LbIQ16S6H$3(R2Ih-KC9~dgt6(Itgri#g^8or*79Xsc$ov z-)E0+BfbI`(EpF*-Gsnv717H0VQx%cbIP_*B{GK4PQt&pdD*vW&Cbc@Gc}EZfuMS0Tqdi6ds@(`_ z9}G}=jx0@Y0OQcIuK=swz?z3Bnw*#cLLX4J0OJw&EFW&-p-p*~Mtokrw&N&YT)-As4&aEK&cG{IJV zxc#d%sZWBOvW-&Fk+kk~{Oi8&ANuWTY|vK3R`n)?If&sN(>lnX$P{s=ez~-^?xcv9 zC JJ64B^{eS5;JMaJi literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/python_script.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/python_script.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91990ee1c0438a77a83d4719fa67fc1ea0106db0 GIT binary patch literal 2440 zcmbtWPjB2r6rZuZUfcU8NmHOLEo@7Lx}t12^uVElK%t}(imIl7v=R)iXLe)bwYM{~ z&{zovQnh>lZdIk^g2aU{!3W?zS57^0<-~ilf0{J(gjXIvzc+p}@4ese&3@c!MFg(D z|NQZrD-A;a!k78wfv^s@+JJ$RKH-!*IUPBDhZ62`FLy^?-vhbE{k%5v`@WUyd3_Z0 z14=$4JmBF&!b9QhyZw+yTcq2lF5bvvr8UCNzj&Q#q(^`{RKG1h5Wz-R42T5vWy0(63=o4@uwWbsoU8&SCrT3?37Y^g|59EaSqr zZ3tU7g6g%G1Y}yr3<>TWFMQVE#$BmzVbEls9MD5T$u8X`nZsN@eR|x1_gdz&Iy{3c z%%Ueygr{?DgL`OaP2J)({4(>v?(fnkPY|PcA!~fN|A1Tl4#O@vAcy1@uxA6yN-~-`vSZ8XW*)0? zcaJ`J5A^;gaywhfma`T02;@@-tGn(YrR4r2@P}WV27rWB z_$7b?>L_}fhTN=NNXp&noaLRi#Oo+6CyAa&VM$!obUajR)k-H-oubqo%y*u~h3>v$ zmf&Rs6#staQ??)_sI^!C*f3d^S}ucDuHbMA?V*-JAc2*Ml#ZoVKcs+}Kos0c5;JUE zDF&tv)y(5Wm|(ty@r9J7RB{#loyM6yIMEYj>ekt0EYF~}X6J!&k|aW@t|!l;I$Z4E z1oM5!F8X?XF`UPVtMe7v0#Q5YSY3jFxNR43<9M_Q*zw`%Q;$0Ij2F;0=$2`9`2?E& z!{Gv02r#681=dv%jsi=a;?5Ropm)rnrlB|NLwPxcvbt64ju@s;xfr`-Z}Vo?mG6QV zvpTDgJYtr0uym=-$BR)nk50S>^Hcx>aoW^_kgE$Pf;u{X5e;^{1xTsjG7h$i?zD>UpaNm@Vm(); zYaGGwhcHXM0RwTCspq^5$JM11r9R=R8{y%Ar!X825o4p0PvBT)rpeg-Nu19tb;fv^ zFeaC9gV=#BHsu;hh%wWeHTXop$-I$W literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/removed.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/removed.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f7df1ddfbb51f1aeec46b492916ed36b64ba9361 GIT binary patch literal 829 zcmZWoF^|(Q6t*2VNz;^rk%3btq#)F8Ocgo-f~`mgCr~7?(%8LAo5nrc1yU83-pW7V z5AbW)y)ZB_vNG|U(xVbDdN1Geb6&phIeFCYM+ofKw@+`sV}yRVWN#F}3Anxofujs@ z%t?haEbxqQkJHci8R8x8Um@;q$rfiGCofPMtdr-HnJ7#$l`2tUA>RoO_odXOk*XAW z@DnRb@$d`gT^?Q0Ean)<_Ux_G9mCT-!DeiuYqpK`mB_WMEv?FWZsS%@ zUNO@w#Z#bP%xn3+68v0nkVAQH@`3jz5wO*`OJk`^qo546GHe`&Kg<;GFS{OIS)U#BJ zYO1>MLhH>%^A)KZfPX(27P6j}=fh&9ja;xoE|#(uwb8?iywJmI(QrhNwC6ThHnz8F zX)s5l@1!_Qh(tKT>pTBVZ*Z_X?K^^Xz7Rk#Vr(J#s&Y7H>~fV?yNYsOn)S3%_K2~( zt|bU5Wvv-g9VjXHJ{7nSx}9_)Wd)-K-Rh=Wb?OenkxSj|-NQPD5Rn-Fy+~V0sSRLq hvH&jBP0eE677p69U0p95j&{T!!Y_ifV@q-9{Q=Ws*l_>= literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/repository.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/repository.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94f2ced28d7b2f4a5c172d1ba8b8e992bda65b86 GIT binary patch literal 11706 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 literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/__pycache__/theme.cpython-37.pyc b/custom_components/hacs/repositories/__pycache__/theme.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8cf0e6ef73089e55382c8feb88521a61a4bdcfbc GIT binary patch literal 2335 zcmaJ@OOG5i5VpH}`Y}5*`%EC4hem<}Bf-ppNFad_5C|Iytxz5ywFIWq_RMzEkBQv_ z+173jY^3~%XwmKkiQmBw;O-mZlp|M8RJrG|A`v~ZySi*w*~oHi75wKc0N| zXF$kb__25#5I%;c_Mqb=B%E?9qq!AYlyI9nnVmbK19FSISu1x#*T`Px<$mZ>@&(~O z51tYp2`{dTW;R|p?22{IWmXnE)FKF}G z+lyj#S4>NlRHZz8VKwS5sy}}mi)odV1uW~0lY+Bxk_lEsxrou);<4v~dLINqLJ9}6 zI1TM*WDLjR_ESG}xWijdNeIW`9=zRV`=R%YI3)C8^KBiV)BCvXdfmKMyN_{S_~5$* z4SlNbp{vLVIiu%dRaiL?DhS^h(24u!7KAQ1wNL2J7<@1FWyXDwAn0rj-kr27e=#0F0w33oZP518 z^>icMR8K(OI@>-1kCZ%m0v>S14wAACzJ|acJ0lBUAKmZQJ&qecTMV4CU^R( zlC!v)Nn!G@ZdK7ljWnq@`-$ooWz|QFvm`32!KH8=KJv0)KhDkTpprshf+^irRU|9* zQvww5MZt|E5kGB9G1eXgCyQbsF$x+i8O{K`m@LamZh}^BVYiLr{?dgjq%5V9J2-X; z$6WAK&6M_x$Jta~L2b*-1LZ7^g;E1Y?t(fDmiyQKVzY99wyrI^>$rY<;gKy_bcpU$ zA39?9Y=?H}4t1yt&7!Z{z#(Wo&~DKB`ie)du(PBTQfo=6yYO+5QfiA^_fP|sVL`GA zGXDeu48gTiCv9Oh0NG8wGasuHlIRpQhBTZ)_}#jDS4iVIS1qoa6RbA zx8W6T&x0y2ERr6KtRR<{@zVq@Se8@y1}ax^dksDZz1ktBw0-vIX#oP!Mmm3AjU{@Fv_2INJSvxQPf6$ii!I<7mphQd>79WTV?xW_WXs;4fVvP>B z51{xzjFcFP#qF<5<$)2iP7RX+{$AuJAsT$q`)YHIWa@zbVRPz_FyLl?nE2*r{|o3Q BUI_pI literal 0 HcmV?d00001 diff --git a/custom_components/hacs/repositories/netdaemon.py b/custom_components/hacs/repositories/netdaemon.py new file mode 100644 index 0000000..5c3ed1e --- /dev/null +++ b/custom_components/hacs/repositories/netdaemon.py @@ -0,0 +1,90 @@ +"""Class for netdaemon apps in HACS.""" +from integrationhelper import Logger + +from .repository import HacsRepository +from ..hacsbase.exceptions import HacsException + +from custom_components.hacs.helpers.filters import get_first_directory_in_directory + + +class HacsNetdaemon(HacsRepository): + """Netdaemon apps in HACS.""" + + def __init__(self, full_name): + """Initialize.""" + super().__init__() + self.data.full_name = full_name + self.data.category = "netdaemon" + self.content.path.local = self.localpath + self.content.path.remote = "apps" + self.logger = Logger(f"hacs.repository.{self.data.category}.{full_name}") + + @property + def localpath(self): + """Return localpath.""" + return f"{self.hacs.system.config_path}/netdaemon/apps/{self.data.name}" + + async def validate_repository(self): + """Validate.""" + await self.common_validate() + + # Custom step 1: Validate content. + if self.repository_manifest: + if self.data.content_in_root: + self.content.path.remote = "" + + if self.content.path.remote == "apps": + self.data.domain = get_first_directory_in_directory( + self.tree, self.content.path.remote + ) + self.content.path.remote = f"apps/{self.data.name}" + + compliant = False + for treefile in self.treefiles: + if treefile.startswith(f"{self.content.path.remote}") and treefile.endswith( + ".cs" + ): + compliant = True + break + if not compliant: + raise HacsException( + f"Repostitory structure for {self.ref.replace('tags/','')} is not compliant" + ) + + # Handle potential errors + if self.validate.errors: + for error in self.validate.errors: + if not self.hacs.system.status.startup: + self.logger.error(error) + return self.validate.success + + async def registration(self): + """Registration.""" + if not await self.validate_repository(): + return False + + # Run common registration steps. + await self.common_registration() + + # Set local path + self.content.path.local = self.localpath + + async def update_repository(self): + """Update.""" + if self.hacs.github.ratelimits.remaining == 0: + return + await self.common_update() + + # Get appdaemon objects. + if self.repository_manifest: + if self.data.content_in_root: + self.content.path.remote = "" + + if self.content.path.remote == "apps": + self.data.domain = get_first_directory_in_directory( + self.tree, self.content.path.remote + ) + self.content.path.remote = f"apps/{self.data.name}" + + # Set local path + self.content.path.local = self.localpath diff --git a/custom_components/hacs/repositories/repositorydata.py b/custom_components/hacs/repositories/repositorydata.py index e26ae6d..60b6775 100644 --- a/custom_components/hacs/repositories/repositorydata.py +++ b/custom_components/hacs/repositories/repositorydata.py @@ -38,7 +38,7 @@ class RepositoryData: @property def name(self): """Return the name.""" - if self.category == "integration": + if self.category in ["integration", "netdaemon"]: return self.domain return self.full_name.split("/")[-1] diff --git a/custom_components/hacs/sensor.py b/custom_components/hacs/sensor.py index 46f1d85..cda52de 100644 --- a/custom_components/hacs/sensor.py +++ b/custom_components/hacs/sensor.py @@ -93,7 +93,4 @@ class HACSSensor(HACSDevice): "available version": repository.display_available_version, } ) - return { - "repositories": data, - "attribution": "It is expected to see [object Object] here, for more info see https://hacs.xyz/docs/basic/sensor", - } + return {"repositories": data}