217 files

This commit is contained in:
Home Assistant Version Control
2026-07-30 23:59:38 +00:00
parent d43a63ad29
commit 7b5e46e702
217 changed files with 15978 additions and 3912 deletions
@@ -108,6 +108,7 @@
"trigger_val": "Hodnota spouštěče",
"complete_title": "Dokončit: ",
"checklist": "Kontrolní seznam",
"require_on_completion": "Vyžadovat při dokončení",
"checklist_steps_optional": "Kroky kontrolního seznamu (volitelné)",
"checklist_placeholder": "Vyčistit filtr\nVyměnit těsnění\nOtestovat tlak",
"checklist_help": "Jeden krok na řádek. Max 100 položek.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Prázdné = zobrazit všechny stavy.",
"card_filter_objects": "Filtrovat podle objektů",
"card_filter_objects_help": "Prázdné = zobrazit všechny objekty.",
"card_filter_areas": "Filtrovat podle oblastí",
"card_filter_areas_help": "Prázdné = zobrazit všechny oblasti.",
"card_filter_entities": "Filtrovat podle entit (entity_ids)",
"card_filter_entities_help": "Vyberte entity sensor / binary_sensor z této integrace. Prázdné = všechny.",
"card_loading_objects": "Načítání objektů…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Název panelu",
"settings_notifications": "Oznámení",
"settings_notify_service": "Služba oznámení",
"settings_install_assist_sentences": "Nainstalovat věty pro Assist",
"settings_install_assist_sentences_hint": "Zkopíruje hlasové věty do vaší konfigurace, aby je klasický agent Assist rozpoznal. Soubor, který jste upravili, nebude nikdy přepsán.",
"test_notification": "Testovací oznámení",
"send_test": "Odeslat test",
"testing": "Odesílání…",
"test_notification_success": "Testovací oznámení odesláno",
"test_notification_failed": "Testovací oznámení se nezdařilo",
"notify_per_person": "Doručování podle osoby",
"notify_no_own_device": "Žádné vlastní zařízení — použije domácí službu",
"settings_notify_due_soon": "Oznámit když brzy",
"settings_notify_overdue": "Oznámit když po termínu",
"settings_notify_triggered": "Oznámit když spuštěno",
@@ -487,6 +494,7 @@
"groupby_user": "Podle uživatele",
"filter_label": "Filtr",
"user_label": "Uživatel",
"photo_label": "Fotografie",
"sort_label": "Řazení",
"group_by_label": "Seskupit podle",
"state_value_help": "Použijte hodnotu stavu HA (obvykle malými písmeny, např. \"on\"/\"off\"). Velikost písmen se při uložení normalizuje.",
@@ -722,6 +730,9 @@
"part_restock": "Upravit zásobu",
"restock_quantity_label": "Zakoupené množství",
"consumes_parts_label": "Spotřebovává díly",
"shared_parts_other_objects": "Díly z jiných objektů",
"shared_parts_help": "Několik objektů může sdílet jeden sklad. Dokončení tohoto úkolu odečte zásobu z vlastnícího objektu.",
"shared_part_unknown": "Neznámý díl",
"parts_load_failed": "Nepodařilo se načíst díly tohoto objektu — možnosti spotřeby dílů nyní nejsou k dispozici.",
"settings_export_selection": "Omezit na vybrané objekty (volitelné)",
"settings_docs_archive": "Archiv dokumentů (se soubory)",
@@ -109,6 +109,7 @@
"trigger_val": "Udløserværdi",
"complete_title": "Fuldfør: ",
"checklist": "Tjekliste",
"require_on_completion": "Kræv ved fuldførelse",
"checklist_steps_optional": "Tjeklistetrin (valgfrit)",
"checklist_placeholder": "Rengør filter\nUdskift pakning\nTest tryk",
"checklist_help": "Ét trin pr. linje. Maks. 100 elementer.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Tom = vis alle statusser.",
"card_filter_objects": "Filtrer efter objekter",
"card_filter_objects_help": "Tom = vis alle objekter.",
"card_filter_areas": "Filtrer efter områder",
"card_filter_areas_help": "Tom = vis alle områder.",
"card_filter_entities": "Filtrer efter enheder (entity_ids)",
"card_filter_entities_help": "Vælg sensor- / binary_sensor-enheder fra denne integration. Tom = alle.",
"card_loading_objects": "Indlæser objekter…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Sidepanelets titel",
"settings_notifications": "Notifikationer",
"settings_notify_service": "Notifikationstjeneste",
"settings_install_assist_sentences": "Installer Assist-sætninger",
"settings_install_assist_sentences_hint": "Kopierer stemmesætningerne til din konfiguration, så den klassiske Assist-agent genkender dem. En fil, du selv har redigeret, overskrives aldrig.",
"test_notification": "Testnotifikation",
"send_test": "Send test",
"testing": "Sender…",
"test_notification_success": "Testnotifikation sendt",
"test_notification_failed": "Testnotifikation mislykkedes",
"notify_per_person": "Levering pr. person",
"notify_no_own_device": "Ingen egen enhed — bruger husstandens tjeneste",
"settings_notify_due_soon": "Notificer ved snart forfalden",
"settings_notify_overdue": "Notificer ved forfalden",
"settings_notify_triggered": "Notificer ved udløst",
@@ -488,6 +495,7 @@
"groupby_user": "Efter bruger",
"filter_label": "Filter",
"user_label": "Bruger",
"photo_label": "Foto",
"sort_label": "Sortering",
"group_by_label": "Grupper efter",
"state_value_help": "Brug HA-tilstandsværdien (normalt med små bogstaver, f.eks. \"on\"/\"off\"). Store/små bogstaver normaliseres ved lagring.",
@@ -722,6 +730,9 @@
"part_restock": "Justér lager",
"restock_quantity_label": "Købt mængde",
"consumes_parts_label": "Forbruger dele",
"shared_parts_other_objects": "Dele fra andre objekter",
"shared_parts_help": "Flere objekter kan dele det samme lager. Når opgaven fuldføres, trækkes der fra det ejende objekt.",
"shared_part_unknown": "Ukendt del",
"parts_load_failed": "Kunne ikke indlæse objektets reservedele — forbrugsindstillingerne er ikke tilgængelige lige nu.",
"settings_export_selection": "Begræns til valgte objekter (valgfrit)",
"settings_docs_archive": "Dokumentarkiv (med filer)",
@@ -109,6 +109,7 @@
"trigger_val": "Trigger-Wert",
"complete_title": "Erledigt: ",
"checklist": "Checkliste",
"require_on_completion": "Beim Abschließen verlangen",
"checklist_steps_optional": "Checkliste-Schritte (optional)",
"checklist_placeholder": "Filter reinigen\nDichtung ersetzen\nDruck testen",
"checklist_help": "Ein Schritt pro Zeile. Max. 100 Einträge.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Leer = alle Status zeigen.",
"card_filter_objects": "Nach Objekten filtern",
"card_filter_objects_help": "Leer = alle Objekte zeigen.",
"card_filter_areas": "Nach Bereichen filtern",
"card_filter_areas_help": "Leer = alle Bereiche zeigen.",
"card_filter_entities": "Nach Entitäten filtern (entity_ids)",
"card_filter_entities_help": "Wähle Sensor-/Binary-Sensor-Entitäten dieser Integration. Leer = alle.",
"card_loading_objects": "Lade Objekte…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Panel-Titel",
"settings_notifications": "Benachrichtigungen",
"settings_notify_service": "Benachrichtigungsdienst",
"settings_install_assist_sentences": "Assist-Sätze installieren",
"settings_install_assist_sentences_hint": "Kopiert die Sprachbefehle in deine Konfiguration, damit der klassische Assist-Agent sie erkennt. Eine selbst bearbeitete Datei wird nie überschrieben.",
"test_notification": "Test-Benachrichtigung",
"send_test": "Test senden",
"testing": "Sende…",
"test_notification_success": "Test-Benachrichtigung gesendet",
"test_notification_failed": "Test-Benachrichtigung fehlgeschlagen",
"notify_per_person": "Zustellung pro Person",
"notify_no_own_device": "Kein eigenes Gerät — nutzt den Haushaltsdienst",
"settings_notify_due_soon": "Bei baldiger Fälligkeit benachrichtigen",
"settings_notify_overdue": "Bei Überfälligkeit benachrichtigen",
"settings_notify_triggered": "Bei Auslösung benachrichtigen",
@@ -488,6 +495,7 @@
"groupby_user": "Nach Verantwortlichem",
"filter_label": "Filter",
"user_label": "Benutzer",
"photo_label": "Foto",
"sort_label": "Sortierung",
"group_by_label": "Gruppieren nach",
"state_value_help": "Verwende den HA-Zustandswert (meist kleingeschrieben, z.B. \"on\"/\"off\"). Groß-/Kleinschreibung wird beim Speichern normalisiert.",
@@ -722,6 +730,9 @@
"part_restock": "Bestand anpassen",
"restock_quantity_label": "Gekaufte Menge",
"consumes_parts_label": "Verbraucht Teile",
"shared_parts_other_objects": "Teile anderer Objekte",
"shared_parts_help": "Mehrere Objekte können sich einen Bestand teilen. Beim Abschließen wird vom besitzenden Objekt abgebucht.",
"shared_part_unknown": "Unbekanntes Teil",
"parts_load_failed": "Die Teile dieses Objekts konnten nicht geladen werden — die Teileverbrauch-Optionen sind gerade nicht verfügbar.",
"settings_export_selection": "Auf ausgewählte Objekte beschränken (optional)",
"settings_docs_archive": "Dokumentenarchiv (mit Dateien)",
@@ -109,6 +109,7 @@
"trigger_val": "Trigger value",
"complete_title": "Complete: ",
"checklist": "Checklist",
"require_on_completion": "Require on completion",
"checklist_steps_optional": "Checklist steps (optional)",
"checklist_placeholder": "Clean filter\nReplace seal\nTest pressure",
"checklist_help": "One step per line. Max 100 items.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Empty = show all statuses.",
"card_filter_objects": "Filter by objects",
"card_filter_objects_help": "Empty = show all objects.",
"card_filter_areas": "Filter by areas",
"card_filter_areas_help": "Empty = show all areas.",
"card_filter_entities": "Filter by entities (entity_ids)",
"card_filter_entities_help": "Pick sensor / binary_sensor entities from this integration. Empty = all.",
"card_loading_objects": "Loading objects…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Sidebar panel title",
"settings_notifications": "Notifications",
"settings_notify_service": "Notification service",
"settings_install_assist_sentences": "Install Assist sentences",
"settings_install_assist_sentences_hint": "Copies the voice sentences into your configuration so the classic Assist agent recognises them. A file you edited yourself is never overwritten.",
"test_notification": "Test notification",
"send_test": "Send test",
"testing": "Sending…",
"test_notification_success": "Test notification sent",
"test_notification_failed": "Test notification failed",
"notify_per_person": "Per-person delivery",
"notify_no_own_device": "No own device — uses the household service",
"settings_notify_due_soon": "Notify when due soon",
"settings_notify_overdue": "Notify when overdue",
"settings_notify_triggered": "Notify when triggered",
@@ -494,6 +501,7 @@
"groupby_user": "By user",
"filter_label": "Filter",
"user_label": "User",
"photo_label": "Photo",
"sort_label": "Sort",
"group_by_label": "Group by",
"state_value_help": "Use the HA state value (usually lowercase, e.g. \"on\"/\"off\"). Case is normalised on save.",
@@ -728,6 +736,9 @@
"part_restock": "Adjust stock",
"restock_quantity_label": "Quantity bought",
"consumes_parts_label": "Consumes parts",
"shared_parts_other_objects": "Parts from other objects",
"shared_parts_help": "Several objects can share one stock. Completing this task takes from the owning object.",
"shared_part_unknown": "Unknown part",
"parts_load_failed": "Couldn't load this object's parts — the consumes-parts options are unavailable right now.",
"adopt_problem_button": "Adopt problem sensors",
"adopt_problem_title": "Adopt problem sensors",
@@ -108,6 +108,7 @@
"trigger_val": "Valor del disparador",
"complete_title": "Completada: ",
"checklist": "Lista de verificación",
"require_on_completion": "Exigir al completar",
"checklist_steps_optional": "Pasos de la lista de verificación (opcional)",
"checklist_placeholder": "Limpiar filtro\nReemplazar junta\nProbar presión",
"checklist_help": "Un paso por línea. Máx. 100 elementos.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Vacío = mostrar todos los estados.",
"card_filter_objects": "Filtrar por objetos",
"card_filter_objects_help": "Vacío = mostrar todos los objetos.",
"card_filter_areas": "Filtrar por áreas",
"card_filter_areas_help": "Vacío = mostrar todas las áreas.",
"card_filter_entities": "Filtrar por entidades (entity_ids)",
"card_filter_entities_help": "Selecciona entidades sensor / binary_sensor de esta integración. Vacío = todas.",
"card_loading_objects": "Cargando objetos…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Título del panel lateral",
"settings_notifications": "Notificaciones",
"settings_notify_service": "Servicio de notificación",
"settings_install_assist_sentences": "Instalar frases de Assist",
"settings_install_assist_sentences_hint": "Copia las frases de voz en tu configuración para que el agente clásico de Assist las reconozca. Un archivo que hayas editado nunca se sobrescribe.",
"test_notification": "Notificación de prueba",
"send_test": "Enviar prueba",
"testing": "Enviando…",
"test_notification_success": "Notificación de prueba enviada",
"test_notification_failed": "La notificación de prueba falló",
"notify_per_person": "Entrega por persona",
"notify_no_own_device": "Sin dispositivo propio — usa el servicio del hogar",
"settings_notify_due_soon": "Notificar cuando esté próxima",
"settings_notify_overdue": "Notificar cuando esté vencida",
"settings_notify_triggered": "Notificar cuando se active",
@@ -487,6 +494,7 @@
"groupby_user": "Por usuario",
"filter_label": "Filtro",
"user_label": "Usuario",
"photo_label": "Foto",
"sort_label": "Ordenar",
"group_by_label": "Agrupar por",
"state_value_help": "Usa el valor de estado de HA (normalmente en minúsculas, p. ej. \"on\"/\"off\"). Las mayúsculas se normalizan al guardar.",
@@ -722,6 +730,9 @@
"part_restock": "Ajustar existencias",
"restock_quantity_label": "Cantidad comprada",
"consumes_parts_label": "Consume piezas",
"shared_parts_other_objects": "Piezas de otros objetos",
"shared_parts_help": "Varios objetos pueden compartir un mismo stock. Al completar esta tarea se descuenta del objeto propietario.",
"shared_part_unknown": "Pieza desconocida",
"parts_load_failed": "No se pudieron cargar las piezas de este objeto — las opciones de consumo de piezas no están disponibles ahora.",
"settings_export_selection": "Limitar a los objetos seleccionados (opcional)",
"settings_docs_archive": "Archivo de documentos (con archivos)",
@@ -109,6 +109,7 @@
"trigger_val": "Laukaisuarvo",
"complete_title": "Suorita: ",
"checklist": "Tarkistuslista",
"require_on_completion": "Vaadi valmistuessa",
"checklist_steps_optional": "Tarkistuslistan vaiheet (valinnainen)",
"checklist_placeholder": "Puhdista suodatin\nVaihda tiiviste\nTarkista paine",
"checklist_help": "Yksi vaihe riviä kohden. Enintään 100 kohdetta.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Tyhjä = näytä kaikki tilat.",
"card_filter_objects": "Suodata kohteiden mukaan",
"card_filter_objects_help": "Tyhjä = näytä kaikki kohteet.",
"card_filter_areas": "Suodata alueiden mukaan",
"card_filter_areas_help": "Tyhjä = näytä kaikki alueet.",
"card_filter_entities": "Suodata entiteettien mukaan (entity_id)",
"card_filter_entities_help": "Valitse sensor- / binary_sensor-entiteetit tästä integraatiosta. Tyhjä = kaikki.",
"card_loading_objects": "Ladataan kohteita…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Sivupalkin paneelin otsikko",
"settings_notifications": "Ilmoitukset",
"settings_notify_service": "Ilmoituspalvelu",
"settings_install_assist_sentences": "Asenna Assist-lauseet",
"settings_install_assist_sentences_hint": "Kopioi äänikomennot asetuksiisi, jotta perinteinen Assist-agentti tunnistaa ne. Itse muokkaamaasi tiedostoa ei koskaan korvata.",
"test_notification": "Testi-ilmoitus",
"send_test": "Lähetä testi",
"testing": "Lähetetään…",
"test_notification_success": "Testi-ilmoitus lähetetty",
"test_notification_failed": "Testi-ilmoitus epäonnistui",
"notify_per_person": "Toimitus henkilöittäin",
"notify_no_own_device": "Ei omaa laitetta — käyttää kotitalouden palvelua",
"settings_notify_due_soon": "Ilmoita, kun erääntyy pian",
"settings_notify_overdue": "Ilmoita, kun myöhässä",
"settings_notify_triggered": "Ilmoita, kun laukaistu",
@@ -488,6 +495,7 @@
"groupby_user": "Käyttäjän mukaan",
"filter_label": "Suodata",
"user_label": "Käyttäjä",
"photo_label": "Valokuva",
"sort_label": "Lajittele",
"group_by_label": "Ryhmittele",
"state_value_help": "Käytä HA:n tila-arvoa (yleensä pienillä kirjaimilla, esim. \"on\"/\"off\"). Kirjainkoko normalisoidaan tallennettaessa.",
@@ -722,6 +730,9 @@
"part_restock": "Muuta varastoa",
"restock_quantity_label": "Ostettu määrä",
"consumes_parts_label": "Kuluttaa osia",
"shared_parts_other_objects": "Muiden kohteiden osat",
"shared_parts_help": "Useat kohteet voivat jakaa saman varaston. Tämän tehtävän suorittaminen vähentää omistavan kohteen varastoa.",
"shared_part_unknown": "Tuntematon osa",
"parts_load_failed": "Kohteen osia ei voitu ladata — osien kulutusvalinnat eivät ole juuri nyt käytettävissä.",
"settings_export_selection": "Rajaa valittuihin kohteisiin (valinnainen)",
"settings_docs_archive": "Asiakirja-arkisto (tiedostoineen)",
@@ -108,6 +108,7 @@
"trigger_val": "Valeur du déclencheur",
"complete_title": "Terminé : ",
"checklist": "Checklist",
"require_on_completion": "Exiger à la clôture",
"checklist_steps_optional": "Étapes de la checklist (optionnel)",
"checklist_placeholder": "Nettoyer le filtre\nRemplacer le joint\nTester la pression",
"checklist_help": "Une étape par ligne. Max 100 éléments.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Vide = afficher tous les statuts.",
"card_filter_objects": "Filtrer par objets",
"card_filter_objects_help": "Vide = afficher tous les objets.",
"card_filter_areas": "Filtrer par zones",
"card_filter_areas_help": "Vide = afficher toutes les zones.",
"card_filter_entities": "Filtrer par entités (entity_ids)",
"card_filter_entities_help": "Choisissez des entités sensor / binary_sensor de cette intégration. Vide = toutes.",
"card_loading_objects": "Chargement des objets…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Titre du panneau latéral",
"settings_notifications": "Notifications",
"settings_notify_service": "Service de notification",
"settings_install_assist_sentences": "Installer les phrases Assist",
"settings_install_assist_sentences_hint": "Copie les phrases vocales dans votre configuration afin que l'agent Assist classique les reconnaisse. Un fichier que vous avez modifié n'est jamais écrasé.",
"test_notification": "Notification de test",
"send_test": "Envoyer le test",
"testing": "Envoi en cours…",
"test_notification_success": "Notification de test envoyée",
"test_notification_failed": "Échec de la notification de test",
"notify_per_person": "Distribution par personne",
"notify_no_own_device": "Aucun appareil propre — utilise le service du foyer",
"settings_notify_due_soon": "Notifier quand bientôt dû",
"settings_notify_overdue": "Notifier quand en retard",
"settings_notify_triggered": "Notifier quand déclenché",
@@ -487,6 +494,7 @@
"groupby_user": "Par utilisateur",
"filter_label": "Filtre",
"user_label": "Utilisateur",
"photo_label": "Photo",
"sort_label": "Tri",
"group_by_label": "Grouper par",
"state_value_help": "Utilisez la valeur d'état HA (généralement en minuscules, p.ex. \"on\"/\"off\"). La casse est normalisée à l'enregistrement.",
@@ -722,6 +730,9 @@
"part_restock": "Ajuster le stock",
"restock_quantity_label": "Quantité achetée",
"consumes_parts_label": "Consomme des pièces",
"shared_parts_other_objects": "Pièces d'autres objets",
"shared_parts_help": "Plusieurs objets peuvent partager un même stock. Terminer cette tâche décompte du stock de l'objet propriétaire.",
"shared_part_unknown": "Pièce inconnue",
"parts_load_failed": "Impossible de charger les pièces de cet objet — les options de consommation de pièces sont indisponibles pour le moment.",
"settings_export_selection": "Limiter aux objets sélectionnés (facultatif)",
"settings_docs_archive": "Archive de documents (avec fichiers)",
@@ -109,6 +109,7 @@
"trigger_val": "ट्रिगर मान",
"complete_title": "पूर्ण करें: ",
"checklist": "चेकलिस्ट",
"require_on_completion": "पूर्ण करते समय आवश्यक",
"checklist_steps_optional": "चेकलिस्ट चरण (वैकल्पिक)",
"checklist_placeholder": "फ़िल्टर साफ़ करें\nसील बदलें\nदबाव जाँचें",
"checklist_help": "प्रति पंक्ति एक चरण। अधिकतम 100 आइटम।",
@@ -363,6 +364,8 @@
"card_filter_status_help": "खाली = सभी स्थितियाँ दिखाएँ।",
"card_filter_objects": "वस्तुओं के अनुसार फ़िल्टर करें",
"card_filter_objects_help": "खाली = सभी वस्तुएँ दिखाएँ।",
"card_filter_areas": "क्षेत्रों के अनुसार फ़िल्टर करें",
"card_filter_areas_help": "खाली = सभी क्षेत्र दिखाएँ।",
"card_filter_entities": "एंटिटी के अनुसार फ़िल्टर करें (entity_ids)",
"card_filter_entities_help": "इस इंटीग्रेशन से sensor / binary_sensor एंटिटी चुनें। खाली = सभी।",
"card_loading_objects": "वस्तुएँ लोड हो रही हैं…",
@@ -432,11 +435,15 @@
"settings_panel_title": "साइडबार पैनल शीर्षक",
"settings_notifications": "सूचनाएँ",
"settings_notify_service": "सूचना सेवा",
"settings_install_assist_sentences": "Assist वाक्य इंस्टॉल करें",
"settings_install_assist_sentences_hint": "वॉइस वाक्यों को आपके कॉन्फ़िगरेशन में कॉपी करता है ताकि क्लासिक Assist एजेंट उन्हें पहचान सके। आपके द्वारा संपादित फ़ाइल कभी अधिलेखित नहीं होती।",
"test_notification": "परीक्षण सूचना",
"send_test": "परीक्षण भेजें",
"testing": "भेजा जा रहा है…",
"test_notification_success": "परीक्षण सूचना भेजी गई",
"test_notification_failed": "परीक्षण सूचना विफल",
"notify_per_person": "प्रति व्यक्ति वितरण",
"notify_no_own_device": "कोई निजी डिवाइस नहीं — घरेलू सेवा का उपयोग करता है",
"settings_notify_due_soon": "जल्द देय होने पर सूचित करें",
"settings_notify_overdue": "अतिदेय होने पर सूचित करें",
"settings_notify_triggered": "ट्रिगर होने पर सूचित करें",
@@ -488,6 +495,7 @@
"groupby_user": "उपयोगकर्ता के अनुसार",
"filter_label": "फ़िल्टर",
"user_label": "उपयोगकर्ता",
"photo_label": "फ़ोटो",
"sort_label": "क्रमबद्ध करें",
"group_by_label": "इसके अनुसार समूहित करें",
"state_value_help": "HA स्थिति मान का उपयोग करें (आमतौर पर लोअरकेस, उदा. \"on\"/\"off\")। सहेजने पर केस सामान्यीकृत हो जाता है।",
@@ -722,6 +730,9 @@
"part_restock": "स्टॉक समायोजित करें",
"restock_quantity_label": "खरीदी गई मात्रा",
"consumes_parts_label": "पुर्ज़े खपत",
"shared_parts_other_objects": "अन्य वस्तुओं के पुर्ज़े",
"shared_parts_help": "कई वस्तुएँ एक ही स्टॉक साझा कर सकती हैं। यह कार्य पूरा करने पर स्वामी वस्तु के स्टॉक से घटाया जाता है।",
"shared_part_unknown": "अज्ञात पुर्ज़ा",
"parts_load_failed": "इस ऑब्जेक्ट के पुर्ज़े लोड नहीं हो सके — पुर्ज़ा-खपत विकल्प अभी उपलब्ध नहीं हैं।",
"settings_export_selection": "चयनित ऑब्जेक्ट तक सीमित करें (वैकल्पिक)",
"settings_docs_archive": "दस्तावेज़ संग्रह (फ़ाइलों सहित)",
@@ -109,6 +109,7 @@
"trigger_val": "Kiváltó érték",
"complete_title": "Elvégzés: ",
"checklist": "Ellenőrzőlista",
"require_on_completion": "Befejezéskor kötelező",
"checklist_steps_optional": "Ellenőrzőlista lépései (opcionális)",
"checklist_placeholder": "Szűrő tisztítása\nTömítés cseréje\nNyomáspróba",
"checklist_help": "Soronként egy lépés. Legfeljebb 100 elem.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Üres = minden állapot megjelenik.",
"card_filter_objects": "Szűrés objektumok szerint",
"card_filter_objects_help": "Üres = minden objektum megjelenik.",
"card_filter_areas": "Szűrés területek szerint",
"card_filter_areas_help": "Üres = minden terület megjelenik.",
"card_filter_entities": "Szűrés entitások szerint (entity_id-k)",
"card_filter_entities_help": "Válasszon sensor / binary_sensor entitásokat ebből az integrációból. Üres = mind.",
"card_loading_objects": "Objektumok betöltése…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Oldalsáv-panel címe",
"settings_notifications": "Értesítések",
"settings_notify_service": "Értesítési szolgáltatás",
"settings_install_assist_sentences": "Assist mondatok telepítése",
"settings_install_assist_sentences_hint": "Átmásolja a hangmondatokat a konfigurációdba, hogy a klasszikus Assist ügynök felismerje őket. Az általad szerkesztett fájlt soha nem írja felül.",
"test_notification": "Tesztértesítés",
"send_test": "Teszt küldése",
"testing": "Küldés…",
"test_notification_success": "Tesztértesítés elküldve",
"test_notification_failed": "A tesztértesítés nem sikerült",
"notify_per_person": "Kézbesítés személyenként",
"notify_no_own_device": "Nincs saját eszköz — a háztartási szolgáltatást használja",
"settings_notify_due_soon": "Értesítés, ha hamarosan esedékes",
"settings_notify_overdue": "Értesítés lejáratkor",
"settings_notify_triggered": "Értesítés kiváltáskor",
@@ -494,6 +501,7 @@
"groupby_user": "Felhasználó szerint",
"filter_label": "Szűrő",
"user_label": "Felhasználó",
"photo_label": "Fénykép",
"sort_label": "Rendezés",
"group_by_label": "Csoportosítás",
"state_value_help": "A HA állapotértékét használja (általában kisbetűs, pl. „on”/„off”). A kis- és nagybetűk mentéskor normalizálódnak.",
@@ -728,6 +736,9 @@
"part_restock": "Készlet módosítása",
"restock_quantity_label": "Vásárolt mennyiség",
"consumes_parts_label": "Felhasznált alkatrészek",
"shared_parts_other_objects": "Más objektumok alkatrészei",
"shared_parts_help": "Több objektum is használhatja ugyanazt a készletet. A feladat elvégzése a tulajdonos objektum készletéből von le.",
"shared_part_unknown": "Ismeretlen alkatrész",
"parts_load_failed": "Az objektum alkatrészei nem tölthetők be — a felhasznált alkatrészek beállításai most nem érhetők el.",
"adopt_problem_button": "Problémaérzékelők átvétele",
"adopt_problem_title": "Problémaérzékelők átvétele",
@@ -108,6 +108,7 @@
"trigger_val": "Valore trigger",
"complete_title": "Completato: ",
"checklist": "Checklist",
"require_on_completion": "Richiedi al completamento",
"checklist_steps_optional": "Passaggi della checklist (opzionale)",
"checklist_placeholder": "Pulire il filtro\nSostituire la guarnizione\nTestare la pressione",
"checklist_help": "Un passaggio per riga. Max 100 elementi.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Vuoto = mostra tutti gli stati.",
"card_filter_objects": "Filtra per oggetti",
"card_filter_objects_help": "Vuoto = mostra tutti gli oggetti.",
"card_filter_areas": "Filtra per aree",
"card_filter_areas_help": "Vuoto = mostra tutte le aree.",
"card_filter_entities": "Filtra per entità (entity_ids)",
"card_filter_entities_help": "Seleziona entità sensor / binary_sensor da questa integrazione. Vuoto = tutte.",
"card_loading_objects": "Caricamento oggetti…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Titolo pannello laterale",
"settings_notifications": "Notifiche",
"settings_notify_service": "Servizio di notifica",
"settings_install_assist_sentences": "Installa le frasi di Assist",
"settings_install_assist_sentences_hint": "Copia le frasi vocali nella tua configurazione affinché l'agente Assist classico le riconosca. Un file modificato da te non viene mai sovrascritto.",
"test_notification": "Notifica di test",
"send_test": "Invia test",
"testing": "Invio in corso…",
"test_notification_success": "Notifica di test inviata",
"test_notification_failed": "Notifica di test non riuscita",
"notify_per_person": "Consegna per persona",
"notify_no_own_device": "Nessun dispositivo proprio — usa il servizio della casa",
"settings_notify_due_soon": "Notifica quando in scadenza",
"settings_notify_overdue": "Notifica quando scaduto",
"settings_notify_triggered": "Notifica quando attivato",
@@ -487,6 +494,7 @@
"groupby_user": "Per utente",
"filter_label": "Filtro",
"user_label": "Utente",
"photo_label": "Foto",
"sort_label": "Ordinamento",
"group_by_label": "Raggruppa per",
"state_value_help": "Usa il valore di stato HA (di solito minuscolo, es. \"on\"/\"off\"). Il case viene normalizzato al salvataggio.",
@@ -722,6 +730,9 @@
"part_restock": "Correggi scorta",
"restock_quantity_label": "Quantità acquistata",
"consumes_parts_label": "Consuma ricambi",
"shared_parts_other_objects": "Ricambi di altri oggetti",
"shared_parts_help": "Più oggetti possono condividere una sola scorta. Completando questa attività si preleva dall'oggetto proprietario.",
"shared_part_unknown": "Ricambio sconosciuto",
"parts_load_failed": "Impossibile caricare i ricambi di questo oggetto — le opzioni di consumo ricambi non sono al momento disponibili.",
"settings_export_selection": "Limita agli oggetti selezionati (facoltativo)",
"settings_docs_archive": "Archivio documenti (con file)",
@@ -109,6 +109,7 @@
"trigger_val": "トリガー値",
"complete_title": "完了: ",
"checklist": "チェックリスト",
"require_on_completion": "完了時に必須",
"checklist_steps_optional": "チェックリストの手順(任意)",
"checklist_placeholder": "フィルター清掃\nシール交換\n圧力テスト",
"checklist_help": "1行に1手順。最大100項目。",
@@ -363,6 +364,8 @@
"card_filter_status_help": "空欄=すべての状態を表示。",
"card_filter_objects": "対象で絞り込み",
"card_filter_objects_help": "空欄=すべての対象を表示。",
"card_filter_areas": "エリアで絞り込み",
"card_filter_areas_help": "空欄=すべてのエリアを表示。",
"card_filter_entities": "エンティティで絞り込み(entity_ids",
"card_filter_entities_help": "この統合のsensorbinary_sensorエンティティを選択。空欄=すべて。",
"card_loading_objects": "対象を読み込み中…",
@@ -432,11 +435,15 @@
"settings_panel_title": "サイドバーパネルのタイトル",
"settings_notifications": "通知",
"settings_notify_service": "通知サービス",
"settings_install_assist_sentences": "Assist の文を導入する",
"settings_install_assist_sentences_hint": "音声フレーズを設定に複製し、従来の Assist エージェントが認識できるようにします。自分で編集したファイルが上書きされることはありません。",
"test_notification": "テスト通知",
"send_test": "テスト送信",
"testing": "送信中…",
"test_notification_success": "テスト通知を送信しました",
"test_notification_failed": "テスト通知に失敗しました",
"notify_per_person": "メンバーごとの配信",
"notify_no_own_device": "個人の端末なし — 家庭用サービスを使用",
"settings_notify_due_soon": "期限間近で通知",
"settings_notify_overdue": "期限超過で通知",
"settings_notify_triggered": "トリガー発生で通知",
@@ -488,6 +495,7 @@
"groupby_user": "ユーザー別",
"filter_label": "絞り込み",
"user_label": "ユーザー",
"photo_label": "写真",
"sort_label": "並べ替え",
"group_by_label": "グループ化",
"state_value_help": "HAの状態値を使用してください(通常は小文字、例: \"on\"/\"off\")。保存時に大文字小文字は正規化されます。",
@@ -722,6 +730,9 @@
"part_restock": "在庫を調整",
"restock_quantity_label": "購入数量",
"consumes_parts_label": "部品を消費",
"shared_parts_other_objects": "他の対象の部品",
"shared_parts_help": "複数の対象で同じ在庫を共有できます。このタスクを完了すると、所有する対象の在庫から差し引かれます。",
"shared_part_unknown": "不明な部品",
"parts_load_failed": "このオブジェクトの部品を読み込めませんでした — 部品消費オプションは現在利用できません。",
"settings_export_selection": "選択したオブジェクトに限定(任意)",
"settings_docs_archive": "ドキュメントアーカイブ(ファイル付き)",
@@ -109,6 +109,7 @@
"trigger_val": "트리거 값",
"complete_title": "완료: ",
"checklist": "체크리스트",
"require_on_completion": "완료 시 필수 입력",
"checklist_steps_optional": "체크리스트 단계 (선택)",
"checklist_placeholder": "필터 청소\n씰 교체\n압력 테스트",
"checklist_help": "한 줄에 한 단계씩 입력하세요. 최대 100개.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "비워두면 모든 상태를 표시합니다.",
"card_filter_objects": "객체로 필터",
"card_filter_objects_help": "비워두면 모든 객체를 표시합니다.",
"card_filter_areas": "구역으로 필터",
"card_filter_areas_help": "비워두면 모든 구역을 표시합니다.",
"card_filter_entities": "엔티티로 필터 (entity_ids)",
"card_filter_entities_help": "이 통합구성요소의 sensor / binary_sensor 엔티티를 선택하세요. 비워두면 전체.",
"card_loading_objects": "객체 불러오는 중…",
@@ -432,11 +435,15 @@
"settings_panel_title": "사이드바 패널 제목",
"settings_notifications": "알림",
"settings_notify_service": "알림 서비스",
"settings_install_assist_sentences": "Assist 문장 설치",
"settings_install_assist_sentences_hint": "음성 문장을 설정에 복사하여 기존 Assist 에이전트가 인식하도록 합니다. 직접 수정한 파일은 절대 덮어쓰지 않습니다.",
"test_notification": "테스트 알림",
"send_test": "테스트 보내기",
"testing": "보내는 중…",
"test_notification_success": "테스트 알림을 보냈습니다",
"test_notification_failed": "테스트 알림 전송 실패",
"notify_per_person": "사용자별 전송",
"notify_no_own_device": "개인 기기 없음 — 가정 서비스 사용",
"settings_notify_due_soon": "기한 임박 시 알림",
"settings_notify_overdue": "기한 초과 시 알림",
"settings_notify_triggered": "트리거 시 알림",
@@ -494,6 +501,7 @@
"groupby_user": "사용자별",
"filter_label": "필터",
"user_label": "사용자",
"photo_label": "사진",
"sort_label": "정렬",
"group_by_label": "그룹화",
"state_value_help": "HA 상태 값을 사용하세요(보통 소문자, 예: \"on\"/\"off\"). 대소문자는 저장 시 정규화됩니다.",
@@ -728,6 +736,9 @@
"part_restock": "재고 조정",
"restock_quantity_label": "구매 수량",
"consumes_parts_label": "사용하는 부품",
"shared_parts_other_objects": "다른 객체의 부품",
"shared_parts_help": "여러 객체가 하나의 재고를 공유할 수 있습니다. 이 작업을 완료하면 소유 객체의 재고에서 차감됩니다.",
"shared_part_unknown": "알 수 없는 부품",
"parts_load_failed": "이 객체의 부품을 불러올 수 없습니다 — 부품 사용 옵션을 지금은 쓸 수 없습니다.",
"adopt_problem_button": "문제 센서 가져오기",
"adopt_problem_title": "문제 센서 가져오기",
@@ -109,6 +109,7 @@
"trigger_val": "Utløserverdi",
"complete_title": "Fullfør: ",
"checklist": "Sjekkliste",
"require_on_completion": "Krev ved fullføring",
"checklist_steps_optional": "Sjekklistetrinn (valgfritt)",
"checklist_placeholder": "Rengjør filter\nBytt pakning\nTest trykk",
"checklist_help": "Ett trinn per linje. Maks 100 elementer.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Tom = vis alle statuser.",
"card_filter_objects": "Filtrer etter objekter",
"card_filter_objects_help": "Tom = vis alle objekter.",
"card_filter_areas": "Filtrer etter områder",
"card_filter_areas_help": "Tom = vis alle områder.",
"card_filter_entities": "Filtrer etter entiteter (entity_ids)",
"card_filter_entities_help": "Velg sensor-/binary_sensor-entiteter fra denne integrasjonen. Tom = alle.",
"card_loading_objects": "Laster objekter…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Tittel på sidepanel",
"settings_notifications": "Varsler",
"settings_notify_service": "Varslingstjeneste",
"settings_install_assist_sentences": "Installer Assist-setninger",
"settings_install_assist_sentences_hint": "Kopierer talesetningene til konfigurasjonen din slik at den klassiske Assist-agenten gjenkjenner dem. En fil du selv har endret, blir aldri overskrevet.",
"test_notification": "Testvarsel",
"send_test": "Send test",
"testing": "Sender…",
"test_notification_success": "Testvarsel sendt",
"test_notification_failed": "Testvarsel mislyktes",
"notify_per_person": "Levering per person",
"notify_no_own_device": "Ingen egen enhet — bruker husstandens tjeneste",
"settings_notify_due_soon": "Varsle når noe forfaller snart",
"settings_notify_overdue": "Varsle når noe er forfalt",
"settings_notify_triggered": "Varsle når noe utløses",
@@ -488,6 +495,7 @@
"groupby_user": "Etter bruker",
"filter_label": "Filter",
"user_label": "Bruker",
"photo_label": "Bilde",
"sort_label": "Sorter",
"group_by_label": "Grupper etter",
"state_value_help": "Bruk HA-tilstandsverdien (vanligvis små bokstaver, f.eks. \"on\"/\"off\"). Store/små bokstaver normaliseres ved lagring.",
@@ -722,6 +730,9 @@
"part_restock": "Juster lager",
"restock_quantity_label": "Kjøpt mengde",
"consumes_parts_label": "Forbruker deler",
"shared_parts_other_objects": "Deler fra andre objekter",
"shared_parts_help": "Flere objekter kan dele samme lager. Når oppgaven fullføres, trekkes det fra det eiende objektet.",
"shared_part_unknown": "Ukjent del",
"parts_load_failed": "Kunne ikke laste objektets deler — forbruksvalgene er ikke tilgjengelige nå.",
"settings_export_selection": "Begrens til valgte objekter (valgfritt)",
"settings_docs_archive": "Dokumentarkiv (med filer)",
@@ -108,6 +108,7 @@
"trigger_val": "Triggerwaarde",
"complete_title": "Voltooid: ",
"checklist": "Checklist",
"require_on_completion": "Vereisen bij afronden",
"checklist_steps_optional": "Checklist-stappen (optioneel)",
"checklist_placeholder": "Filter schoonmaken\nPakking vervangen\nDruk testen",
"checklist_help": "Eén stap per regel. Max. 100 items.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Leeg = alle statussen tonen.",
"card_filter_objects": "Filteren op objecten",
"card_filter_objects_help": "Leeg = alle objecten tonen.",
"card_filter_areas": "Filteren op gebieden",
"card_filter_areas_help": "Leeg = alle gebieden tonen.",
"card_filter_entities": "Filteren op entiteiten (entity_ids)",
"card_filter_entities_help": "Kies sensor/binary_sensor entiteiten van deze integratie. Leeg = alle.",
"card_loading_objects": "Objecten laden…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Titel zijbalkpaneel",
"settings_notifications": "Meldingen",
"settings_notify_service": "Meldingsservice",
"settings_install_assist_sentences": "Assist-zinnen installeren",
"settings_install_assist_sentences_hint": "Kopieert de spraakzinnen naar je configuratie zodat de klassieke Assist-agent ze herkent. Een bestand dat je zelf hebt bewerkt wordt nooit overschreven.",
"test_notification": "Testmelding",
"send_test": "Test versturen",
"testing": "Verzenden…",
"test_notification_success": "Testmelding verzonden",
"test_notification_failed": "Testmelding mislukt",
"notify_per_person": "Bezorging per persoon",
"notify_no_own_device": "Geen eigen apparaat — gebruikt de huishoudelijke dienst",
"settings_notify_due_soon": "Melding bij bijna verlopen",
"settings_notify_overdue": "Melding bij achterstallig",
"settings_notify_triggered": "Melding bij geactiveerd",
@@ -487,6 +494,7 @@
"groupby_user": "Per gebruiker",
"filter_label": "Filter",
"user_label": "Gebruiker",
"photo_label": "Foto",
"sort_label": "Sorteren",
"group_by_label": "Groeperen op",
"state_value_help": "Gebruik de HA-statuswaarde (meestal in kleine letters, bv. \"on\"/\"off\"). Hoofdletters worden bij opslaan genormaliseerd.",
@@ -722,6 +730,9 @@
"part_restock": "Voorraad aanpassen",
"restock_quantity_label": "Gekochte hoeveelheid",
"consumes_parts_label": "Verbruikt onderdelen",
"shared_parts_other_objects": "Onderdelen van andere objecten",
"shared_parts_help": "Meerdere objecten kunnen één voorraad delen. Bij afronden wordt van het eigenaarsobject afgeboekt.",
"shared_part_unknown": "Onbekend onderdeel",
"parts_load_failed": "Kon de onderdelen van dit object niet laden — de verbruiksopties zijn nu niet beschikbaar.",
"settings_export_selection": "Beperken tot geselecteerde objecten (optioneel)",
"settings_docs_archive": "Documentenarchief (met bestanden)",
@@ -108,6 +108,7 @@
"trigger_val": "Wartość wyzwalacza",
"complete_title": "Wykonaj: ",
"checklist": "Lista kontrolna",
"require_on_completion": "Wymagaj przy zakończeniu",
"checklist_steps_optional": "Kroki listy kontrolnej (opcjonalne)",
"checklist_placeholder": "Wyczyść filtr\nWymień uszczelkę\nSprawdź ciśnienie",
"checklist_help": "Jeden krok na linię. Maks. 100 elementów.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Puste = pokaż wszystkie statusy.",
"card_filter_objects": "Filtruj wg obiektów",
"card_filter_objects_help": "Puste = pokaż wszystkie obiekty.",
"card_filter_areas": "Filtruj wg obszarów",
"card_filter_areas_help": "Puste = pokaż wszystkie obszary.",
"card_filter_entities": "Filtruj wg encji (entity_ids)",
"card_filter_entities_help": "Wybierz encje sensor / binary_sensor z tej integracji. Puste = wszystkie.",
"card_loading_objects": "Ładowanie obiektów…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Tytuł panelu bocznego",
"settings_notifications": "Powiadomienia",
"settings_notify_service": "Usługa powiadomień",
"settings_install_assist_sentences": "Zainstaluj zdania Assist",
"settings_install_assist_sentences_hint": "Kopiuje zdania głosowe do Twojej konfiguracji, aby klasyczny agent Assist je rozpoznawał. Plik zmieniony przez Ciebie nigdy nie zostanie nadpisany.",
"test_notification": "Powiadomienie testowe",
"send_test": "Wyślij test",
"testing": "Wysyłanie…",
"test_notification_success": "Powiadomienie testowe wysłane",
"test_notification_failed": "Powiadomienie testowe nie powiodło się",
"notify_per_person": "Dostarczanie dla każdej osoby",
"notify_no_own_device": "Brak własnego urządzenia — używa usługi domowej",
"settings_notify_due_soon": "Powiadom gdy wkrótce",
"settings_notify_overdue": "Powiadom gdy zaległe",
"settings_notify_triggered": "Powiadom gdy wyzwolone",
@@ -487,6 +494,7 @@
"groupby_user": "Wg użytkownika",
"filter_label": "Filtr",
"user_label": "Użytkownik",
"photo_label": "Zdjęcie",
"sort_label": "Sortowanie",
"group_by_label": "Grupuj wg",
"state_value_help": "Użyj wartości stanu HA (zwykle małymi literami, np. \"on\"/\"off\"). Wielkość liter jest normalizowana przy zapisie.",
@@ -722,6 +730,9 @@
"part_restock": "Koryguj stan",
"restock_quantity_label": "Kupiona ilość",
"consumes_parts_label": "Zużywa części",
"shared_parts_other_objects": "Części z innych obiektów",
"shared_parts_help": "Kilka obiektów może korzystać z jednego zapasu. Wykonanie tego zadania odejmuje ze stanu obiektu będącego właścicielem.",
"shared_part_unknown": "Nieznana część",
"parts_load_failed": "Nie udało się wczytać części tego obiektu — opcje zużycia części są teraz niedostępne.",
"settings_export_selection": "Ogranicz do wybranych obiektów (opcjonalnie)",
"settings_docs_archive": "Archiwum dokumentów (z plikami)",
@@ -109,6 +109,7 @@
"trigger_val": "Valor do gatilho",
"complete_title": "Concluir: ",
"checklist": "Checklist",
"require_on_completion": "Exigir ao concluir",
"checklist_steps_optional": "Etapas do checklist (opcional)",
"checklist_placeholder": "Limpar o filtro\nTrocar a vedação\nTestar a pressão",
"checklist_help": "Uma etapa por linha. Máx. 100 itens.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Vazio = mostrar todos os status.",
"card_filter_objects": "Filtrar por objetos",
"card_filter_objects_help": "Vazio = mostrar todos os objetos.",
"card_filter_areas": "Filtrar por áreas",
"card_filter_areas_help": "Vazio = mostrar todas as áreas.",
"card_filter_entities": "Filtrar por entidades (entity_ids)",
"card_filter_entities_help": "Escolha entidades sensor / binary_sensor desta integração. Vazio = todas.",
"card_loading_objects": "Carregando objetos…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Título do painel na barra lateral",
"settings_notifications": "Notificações",
"settings_notify_service": "Serviço de notificação",
"settings_install_assist_sentences": "Instalar frases do Assist",
"settings_install_assist_sentences_hint": "Copia as frases de voz para a sua configuração para que o agente Assist clássico as reconheça. Um arquivo que você editou nunca é sobrescrito.",
"test_notification": "Notificação de teste",
"send_test": "Enviar teste",
"testing": "Enviando…",
"test_notification_success": "Notificação de teste enviada",
"test_notification_failed": "Falha na notificação de teste",
"notify_per_person": "Entrega por pessoa",
"notify_no_own_device": "Sem dispositivo próprio — usa o serviço da casa",
"settings_notify_due_soon": "Notificar quando vencer em breve",
"settings_notify_overdue": "Notificar quando atrasada",
"settings_notify_triggered": "Notificar quando acionada",
@@ -494,6 +501,7 @@
"groupby_user": "Por usuário",
"filter_label": "Filtro",
"user_label": "Usuário",
"photo_label": "Foto",
"sort_label": "Ordenar",
"group_by_label": "Agrupar por",
"state_value_help": "Use o valor de estado do HA (geralmente minúsculo, ex.: \"on\"/\"off\"). Maiúsculas e minúsculas são normalizadas ao salvar.",
@@ -728,6 +736,9 @@
"part_restock": "Ajustar estoque",
"restock_quantity_label": "Quantidade comprada",
"consumes_parts_label": "Consome peças",
"shared_parts_other_objects": "Peças de outros objetos",
"shared_parts_help": "Vários objetos podem compartilhar o mesmo estoque. Concluir esta tarefa desconta do objeto proprietário.",
"shared_part_unknown": "Peça desconhecida",
"parts_load_failed": "Não foi possível carregar as peças deste objeto — as opções de consumo de peças estão indisponíveis no momento.",
"adopt_problem_button": "Adotar sensores de problema",
"adopt_problem_title": "Adotar sensores de problema",
@@ -108,6 +108,7 @@
"trigger_val": "Valor do acionador",
"complete_title": "Concluída: ",
"checklist": "Lista de verificação",
"require_on_completion": "Exigir ao concluir",
"checklist_steps_optional": "Passos da lista de verificação (opcional)",
"checklist_placeholder": "Limpar filtro\nSubstituir vedação\nTestar pressão",
"checklist_help": "Um passo por linha. Máx. 100 itens.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Vazio = mostrar todos os estados.",
"card_filter_objects": "Filtrar por objetos",
"card_filter_objects_help": "Vazio = mostrar todos os objetos.",
"card_filter_areas": "Filtrar por áreas",
"card_filter_areas_help": "Vazio = mostrar todas as áreas.",
"card_filter_entities": "Filtrar por entidades (entity_ids)",
"card_filter_entities_help": "Selecione entidades sensor / binary_sensor desta integração. Vazio = todas.",
"card_loading_objects": "A carregar objetos…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Título do painel lateral",
"settings_notifications": "Notificações",
"settings_notify_service": "Serviço de notificação",
"settings_install_assist_sentences": "Instalar frases do Assist",
"settings_install_assist_sentences_hint": "Copia as frases de voz para a sua configuração para que o agente Assist clássico as reconheça. Um ficheiro que editou nunca é substituído.",
"test_notification": "Notificação de teste",
"send_test": "Enviar teste",
"testing": "A enviar…",
"test_notification_success": "Notificação de teste enviada",
"test_notification_failed": "Falha na notificação de teste",
"notify_per_person": "Entrega por pessoa",
"notify_no_own_device": "Sem dispositivo próprio — usa o serviço da casa",
"settings_notify_due_soon": "Notificar quando próxima",
"settings_notify_overdue": "Notificar quando atrasada",
"settings_notify_triggered": "Notificar quando acionada",
@@ -483,6 +490,7 @@
"sort_group": "Grupo",
"filter_label": "Filtro",
"user_label": "Utilizador",
"photo_label": "Foto",
"sort_label": "Ordenar",
"group_by_label": "Agrupar por",
"state_value_help": "Use o valor de estado HA (normalmente em minúsculas, p. ex. \"on\"/\"off\"). As maiúsculas são normalizadas ao guardar.",
@@ -722,6 +730,9 @@
"part_restock": "Ajustar estoque",
"restock_quantity_label": "Quantidade comprada",
"consumes_parts_label": "Consome peças",
"shared_parts_other_objects": "Peças de outros objetos",
"shared_parts_help": "Vários objetos podem partilhar o mesmo stock. Concluir esta tarefa desconta do objeto proprietário.",
"shared_part_unknown": "Peça desconhecida",
"parts_load_failed": "Não foi possível carregar as peças deste objeto — as opções de consumo de peças estão indisponíveis.",
"settings_export_selection": "Limitar aos objetos selecionados (opcional)",
"settings_docs_archive": "Arquivo de documentos (com ficheiros)",
@@ -108,6 +108,7 @@
"trigger_val": "Значение триггера",
"complete_title": "Выполнить: ",
"checklist": "Контрольный список",
"require_on_completion": "Требовать при завершении",
"checklist_steps_optional": "Шаги контрольного списка (необязательно)",
"checklist_placeholder": "Очистить фильтр\nЗаменить уплотнитель\nПроверить давление",
"checklist_help": "Один шаг на строку. Макс. 100 элементов.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Пусто = показать все статусы.",
"card_filter_objects": "Фильтровать по объектам",
"card_filter_objects_help": "Пусто = показать все объекты.",
"card_filter_areas": "Фильтровать по зонам",
"card_filter_areas_help": "Пусто = показать все зоны.",
"card_filter_entities": "Фильтровать по сущностям (entity_ids)",
"card_filter_entities_help": "Выберите сущности sensor / binary_sensor из этой интеграции. Пусто = все.",
"card_loading_objects": "Загрузка объектов…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Заголовок панели",
"settings_notifications": "Уведомления",
"settings_notify_service": "Сервис уведомлений",
"settings_install_assist_sentences": "Установить фразы Assist",
"settings_install_assist_sentences_hint": "Копирует голосовые фразы в вашу конфигурацию, чтобы классический агент Assist их распознавал. Файл, который вы изменили, никогда не перезаписывается.",
"test_notification": "Тестовое уведомление",
"send_test": "Отправить тест",
"testing": "Отправка…",
"test_notification_success": "Тестовое уведомление отправлено",
"test_notification_failed": "Не удалось отправить тестовое уведомление",
"notify_per_person": "Доставка по пользователям",
"notify_no_own_device": "Нет своего устройства — используется общий сервис",
"settings_notify_due_soon": "Уведомлять, когда срок скоро истекает",
"settings_notify_overdue": "Уведомлять при просрочке",
"settings_notify_triggered": "Уведомлять при срабатывании",
@@ -487,6 +494,7 @@
"groupby_user": "По пользователю",
"filter_label": "Фильтр",
"user_label": "Пользователь",
"photo_label": "Фото",
"sort_label": "Сортировка",
"group_by_label": "Группировать по",
"state_value_help": "Используйте значение состояния HA (обычно в нижнем регистре, напр. \"on\"/\"off\"). Регистр нормализуется при сохранении.",
@@ -722,6 +730,9 @@
"part_restock": "Изменить запас",
"restock_quantity_label": "Куплено, шт.",
"consumes_parts_label": "Расходует детали",
"shared_parts_other_objects": "Детали других объектов",
"shared_parts_help": "Несколько объектов могут использовать один запас. Выполнение этой задачи списывает детали у объекта-владельца.",
"shared_part_unknown": "Неизвестная деталь",
"parts_load_failed": "Не удалось загрузить запчасти этого объекта — параметры расхода запчастей сейчас недоступны.",
"settings_export_selection": "Ограничить выбранными объектами (необязательно)",
"settings_docs_archive": "Архив документов (с файлами)",
@@ -108,6 +108,7 @@
"trigger_val": "Utlösarvärde",
"complete_title": "Slutför: ",
"checklist": "Checklista",
"require_on_completion": "Kräv vid slutförande",
"checklist_steps_optional": "Checkliststeg (valfritt)",
"checklist_placeholder": "Rengör filter\nByt tätning\nTesta tryck",
"checklist_help": "Ett steg per rad. Max 100 objekt.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Tomt = visa alla statusar.",
"card_filter_objects": "Filtrera efter objekt",
"card_filter_objects_help": "Tomt = visa alla objekt.",
"card_filter_areas": "Filtrera efter områden",
"card_filter_areas_help": "Tomt = visa alla områden.",
"card_filter_entities": "Filtrera efter entiteter (entity_ids)",
"card_filter_entities_help": "Välj sensor- / binary_sensor-entiteter från denna integration. Tomt = alla.",
"card_loading_objects": "Laddar objekt…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Sidopanelens titel",
"settings_notifications": "Notifikationer",
"settings_notify_service": "Notifikationstjänst",
"settings_install_assist_sentences": "Installera Assist-meningar",
"settings_install_assist_sentences_hint": "Kopierar rösmeningarna till din konfiguration så att den klassiska Assist-agenten känner igen dem. En fil du själv har ändrat skrivs aldrig över.",
"test_notification": "Testnotifikation",
"send_test": "Skicka test",
"testing": "Skickar…",
"test_notification_success": "Testnotifikation skickad",
"test_notification_failed": "Testnotifikation misslyckades",
"notify_per_person": "Leverans per person",
"notify_no_own_device": "Ingen egen enhet — använder hushållets tjänst",
"settings_notify_due_soon": "Notifiera när snart förfallande",
"settings_notify_overdue": "Notifiera när försenad",
"settings_notify_triggered": "Notifiera när utlöst",
@@ -487,6 +494,7 @@
"groupby_user": "Per användare",
"filter_label": "Filter",
"user_label": "Användare",
"photo_label": "Foto",
"sort_label": "Sortering",
"group_by_label": "Gruppera efter",
"state_value_help": "Använd HA-tillståndsvärdet (vanligtvis med små bokstäver, t.ex. \"on\"/\"off\"). Versaler normaliseras vid sparande.",
@@ -722,6 +730,9 @@
"part_restock": "Justera lager",
"restock_quantity_label": "Köpt antal",
"consumes_parts_label": "Förbrukar delar",
"shared_parts_other_objects": "Delar från andra objekt",
"shared_parts_help": "Flera objekt kan dela samma lager. När uppgiften slutförs dras det från det ägande objektet.",
"shared_part_unknown": "Okänd del",
"parts_load_failed": "Kunde inte läsa in objektets delar — förbrukningsalternativen är inte tillgängliga just nu.",
"settings_export_selection": "Begränsa till valda objekt (valfritt)",
"settings_docs_archive": "Dokumentarkiv (med filer)",
@@ -109,6 +109,7 @@
"trigger_val": "Tetikleme değeri",
"complete_title": "Tamamla: ",
"checklist": "Kontrol listesi",
"require_on_completion": "Tamamlarken zorunlu tut",
"checklist_steps_optional": "Kontrol listesi adımları (isteğe bağlı)",
"checklist_placeholder": "Filtreyi temizle\nContayı değiştir\nBasıncı test et",
"checklist_help": "Her satıra bir adım. En fazla 100 madde.",
@@ -363,6 +364,8 @@
"card_filter_status_help": "Boş = tüm durumları göster.",
"card_filter_objects": "Nesnelere göre filtrele",
"card_filter_objects_help": "Boş = tüm nesneleri göster.",
"card_filter_areas": "Alanlara göre filtrele",
"card_filter_areas_help": "Boş = tüm alanları göster.",
"card_filter_entities": "Varlıklara göre filtrele (entity_id)",
"card_filter_entities_help": "Bu entegrasyonun sensor / binary_sensor varlıklarını seçin. Boş = tümü.",
"card_loading_objects": "Nesneler yükleniyor…",
@@ -432,11 +435,15 @@
"settings_panel_title": "Kenar çubuğu paneli başlığı",
"settings_notifications": "Bildirimler",
"settings_notify_service": "Bildirim servisi",
"settings_install_assist_sentences": "Assist cümlelerini yükle",
"settings_install_assist_sentences_hint": "Sesli komut cümlelerini yapılandırmanıza kopyalar, böylece klasik Assist aracısı bunları tanır. Kendi düzenlediğiniz bir dosyanın üzerine asla yazılmaz.",
"test_notification": "Test bildirimi",
"send_test": "Test gönder",
"testing": "Gönderiliyor…",
"test_notification_success": "Test bildirimi gönderildi",
"test_notification_failed": "Test bildirimi başarısız oldu",
"notify_per_person": "Kişi bazında iletim",
"notify_no_own_device": "Kendi cihazı yok — ev servisini kullanır",
"settings_notify_due_soon": "Vade yaklaştığında bildir",
"settings_notify_overdue": "Geciktiğinde bildir",
"settings_notify_triggered": "Tetiklendiğinde bildir",
@@ -494,6 +501,7 @@
"groupby_user": "Kullanıcıya göre",
"filter_label": "Filtre",
"user_label": "Kullanıcı",
"photo_label": "Fotoğraf",
"sort_label": "Sırala",
"group_by_label": "Grupla",
"state_value_help": "HA durum değerini kullanın (genellikle küçük harf, örn. \"on\"/\"off\"). Büyük/küçük harf kaydederken normalleştirilir.",
@@ -728,6 +736,9 @@
"part_restock": "Stoku ayarla",
"restock_quantity_label": "Satın alınan miktar",
"consumes_parts_label": "Parça tüketir",
"shared_parts_other_objects": "Diğer nesnelerin parçaları",
"shared_parts_help": "Birden fazla nesne aynı stoğu paylaşabilir. Bu görev tamamlandığında stok, sahibi olan nesneden düşülür.",
"shared_part_unknown": "Bilinmeyen parça",
"parts_load_failed": "Bu nesnenin parçaları yüklenemedi — parça tüketimi seçenekleri şu anda kullanılamıyor.",
"adopt_problem_button": "Sorun sensörlerini devral",
"adopt_problem_title": "Sorun sensörlerini devral",
@@ -108,6 +108,7 @@
"trigger_val": "Значення тригера",
"complete_title": "Виконати: ",
"checklist": "Чекліст",
"require_on_completion": "Вимагати при завершенні",
"checklist_steps_optional": "Кроки чекліста (необов'язково)",
"checklist_placeholder": "Очистити фільтр\nЗамінити ущільнювач\nПеревірити тиск",
"checklist_help": "Один крок на рядок. Макс. 100 елементів.",
@@ -362,6 +363,8 @@
"card_filter_status_help": "Порожньо = показати всі статуси.",
"card_filter_objects": "Фільтрувати за об'єктами",
"card_filter_objects_help": "Порожньо = показати всі об'єкти.",
"card_filter_areas": "Фільтрувати за зонами",
"card_filter_areas_help": "Порожньо = показати всі зони.",
"card_filter_entities": "Фільтрувати за сутностями (entity_ids)",
"card_filter_entities_help": "Виберіть сутності sensor / binary_sensor з цієї інтеграції. Порожньо = всі.",
"card_loading_objects": "Завантаження об'єктів…",
@@ -431,11 +434,15 @@
"settings_panel_title": "Заголовок панелі",
"settings_notifications": "Сповіщення",
"settings_notify_service": "Служба сповіщень",
"settings_install_assist_sentences": "Встановити фрази Assist",
"settings_install_assist_sentences_hint": "Копіює голосові фрази до вашої конфігурації, щоб класичний агент Assist їх розпізнавав. Файл, який ви редагували, ніколи не перезаписується.",
"test_notification": "Тестове сповіщення",
"send_test": "Надіслати тест",
"testing": "Надсилання…",
"test_notification_success": "Тестове сповіщення надіслано",
"test_notification_failed": "Не вдалося надіслати тестове сповіщення",
"notify_per_person": "Доставка за особами",
"notify_no_own_device": "Немає власного пристрою — використовується загальна служба",
"settings_notify_due_soon": "Сповіщати, коли термін наближається",
"settings_notify_overdue": "Сповіщати про прострочення",
"settings_notify_triggered": "Сповіщати про спрацювання",
@@ -487,6 +494,7 @@
"groupby_user": "За користувачем",
"filter_label": "Фільтр",
"user_label": "Користувач",
"photo_label": "Фото",
"sort_label": "Сортування",
"group_by_label": "Групувати за",
"state_value_help": "Використовуйте значення стану HA (зазвичай у нижньому регістрі, напр. \"on\"/\"off\"). Регістр нормалізується при збереженні.",
@@ -722,6 +730,9 @@
"part_restock": "Змінити запас",
"restock_quantity_label": "Куплена кількість",
"consumes_parts_label": "Витрачає деталі",
"shared_parts_other_objects": "Деталі інших об'єктів",
"shared_parts_help": "Кілька об'єктів можуть використовувати один запас. Виконання цього завдання списує деталі з об'єкта-власника.",
"shared_part_unknown": "Невідома деталь",
"parts_load_failed": "Не вдалося завантажити запчастини цього об'єкта — параметри витрати запчастин зараз недоступні.",
"settings_export_selection": "Обмежити вибраними об'єктами (необов'язково)",
"settings_docs_archive": "Архів документів (з файлами)",
@@ -109,6 +109,7 @@
"trigger_val": "触发值",
"complete_title": "完成: ",
"checklist": "检查清单",
"require_on_completion": "完成时必填",
"checklist_steps_optional": "检查步骤 (可选)",
"checklist_placeholder": "清理过滤器\n更换密封圈\n测试压力",
"checklist_help": "每行一个步骤。最多 100 项。",
@@ -363,6 +364,8 @@
"card_filter_status_help": "留空则显示所有状态。",
"card_filter_objects": "按维护项过滤",
"card_filter_objects_help": "留空则显示所有维护项。",
"card_filter_areas": "按区域过滤",
"card_filter_areas_help": "留空则显示所有区域。",
"card_filter_entities": "按实体过滤 (entity_ids)",
"card_filter_entities_help": "选择该集成的传感器或二进制传感器实体。留空则显示全部。",
"card_loading_objects": "正在加载维护项…",
@@ -432,11 +435,15 @@
"settings_panel_title": "侧边栏面板标题",
"settings_notifications": "通知",
"settings_notify_service": "通知服务",
"settings_install_assist_sentences": "安装 Assist 语句",
"settings_install_assist_sentences_hint": "将语音语句复制到你的配置中,让传统 Assist 代理能够识别它们。你自己修改过的文件永远不会被覆盖。",
"test_notification": "测试通知",
"send_test": "发送测试",
"testing": "正在发送…",
"test_notification_success": "测试通知已发送",
"test_notification_failed": "测试通知发送失败",
"notify_per_person": "按成员分别投递",
"notify_no_own_device": "无个人设备 — 使用家庭通知服务",
"settings_notify_due_soon": "到期前通知提醒",
"settings_notify_overdue": "超期后通知提醒",
"settings_notify_triggered": "触发时通知提醒",
@@ -488,6 +495,7 @@
"groupby_user": "按负责人",
"filter_label": "过滤器",
"user_label": "用户",
"photo_label": "照片",
"sort_label": "排序",
"group_by_label": "分组依据",
"state_value_help": "使用 HA 状态值(通常为小写,例如 \"on\"/\"off\")。保存时大小写会自动规范化。",
@@ -722,6 +730,9 @@
"part_restock": "调整库存",
"restock_quantity_label": "购买数量",
"consumes_parts_label": "消耗配件",
"shared_parts_other_objects": "其他设备的配件",
"shared_parts_help": "多个设备可以共用同一批库存。完成此任务将从所属设备的库存中扣减。",
"shared_part_unknown": "未知配件",
"parts_load_failed": "无法加载此对象的配件 — 配件消耗选项暂时不可用。",
"settings_export_selection": "仅限所选对象(可选)",
"settings_docs_archive": "文档存档(含文件)",
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1,2 @@
/*! maintenance_supporter frontend 2.44.1 */
var d="maintenance-supporter",C=`ll-strategy-dashboard-${d}`,L="hui-maintenance-supporter-strategy-editor",D="/maintenance_supporter_strategy/maintenance-dashboard-strategy.js",m=null;function k(){return m||(m=import(D)),m}async function N(){let r=await k();if(!r.MaintenanceDashboardStrategy)throw new Error("[maintenance-supporter] strategy bundle loaded but did not export MaintenanceDashboardStrategy");return r.MaintenanceDashboardStrategy}var p=class extends HTMLElement{static getCreateSuggestions(c){return{title:"Maintenance Supporter",icon:"mdi:wrench-clock"}}static async getConfigElement(){return await k(),document.createElement(L)}static async generate(c,h){return(await N()).generate(c,h)}};function M(){try{customElements.define(C,p)}catch{}}M();var w=window;w.customStrategies=w.customStrategies||[];w.customStrategies.some(r=>r.type===d&&r.strategyType==="dashboard")||w.customStrategies.push({type:d,strategyType:"dashboard",name:"Maintenance Supporter",description:"Auto-generated dashboard. Group views by area, status, floor, or due date \u2014 picked from the strategy editor or YAML.",documentationURL:"https://github.com/iluebbe/maintenance_supporter#dashboard-strategy"});(()=>{let r=window;if(r.__msStrategyHealActive)return;r.__msStrategyHealActive=!0;let c=/^\/(auth|config|developer-tools|profile|hassio|history|logbook|map|media-browser|energy|todo|calendar)\b/,h=/Timeout waiting for strategy element ll-strategy-(dashboard-)?maintenance-supporter/i,g=`custom:${d}`;function E(a){let t=[document.documentElement],n=0;for(;t.length&&n<9e3;){let o=t.pop();if(n++,!o)continue;let e=o;if(e.nodeType===1&&e.tagName&&e.tagName.toLowerCase()===a)return e;e.shadowRoot&&t.push(e.shadowRoot);let i=o.children;if(i)for(let l of Array.from(i))t.push(l)}return null}function S(a){let t=a?.views;if(!Array.isArray(t)||!t.length)return null;let n=window.location.pathname.split("/").filter(Boolean).pop()||"",o=t.find(i=>i?.path===n);if(o)return o;let e=Number(n);return Number.isInteger(e)&&t[e]?t[e]:t[0]}function R(){try{let t=E("ha-panel-lovelace")?.lovelace;if(!t)return!1;let n=o=>o?.type;for(let o of[t.config,t.rawConfig]){if(!o)continue;if(n(o.strategy)===g)return!0;let e=S(o);if(e&&n(e.strategy)===g)return!0}return!1}catch{return!1}}function _(){let a=!1,t=0,n=!1,o=!1,e=[document.documentElement],i=0;for(;e.length&&i<9e3;){let l=e.pop();if(i++,!l)continue;let u=l;if(u.nodeType===1&&u.tagName){let s=u.tagName.toLowerCase();(s==="hui-view"||s==="hui-sections-view")&&(a=!0),(s==="ha-card"||s==="hui-card")&&t++,s==="hui-empty-state-card"&&(o=!0),s==="hui-error-card"&&h.test(u.textContent||"")&&(n=!0)}u.shadowRoot&&e.push(u.shadowRoot);let b=l.children;if(b)for(let s of Array.from(b))e.push(s)}return n?!0:o?!1:a&&t<3&&R()}let A="/maintenance_supporter_strategy_shim.js",y=0,v=0;function T(){let a=Date.now();a-v<5e3||y>=3||(v=a,y+=1,import(`${A}?heal=${a}`).catch(()=>{}).finally(()=>{let t=window.location.pathname+window.location.search;history.pushState(null,"","/lovelace"),window.dispatchEvent(new CustomEvent("location-changed")),window.setTimeout(()=>{history.pushState(null,"",t),window.dispatchEvent(new CustomEvent("location-changed"))},200)}))}function f(){if(c.test(window.location.pathname))return;let a=0,t=Date.now(),n=window.setInterval(()=>{a++;try{if(Date.now()-t<6e3)return;if(c.test(window.location.pathname)){window.clearInterval(n);return}_()?T():window.clearInterval(n),a>=30&&window.clearInterval(n)}catch{window.clearInterval(n)}},500)}try{document.readyState==="loading"?window.addEventListener("DOMContentLoaded",f):f(),window.addEventListener("location-changed",()=>{c.test(window.location.pathname)||f()})}catch{}})();
@@ -1,56 +1,56 @@
import{a as f}from"./chunk-Q7DQUCT7.js";import{a as h,b as o,d as b,e as m,f as g,g as n,h as _,i as a,k as v,s as p}from"./chunk-X7OW5OLQ.js";import{a as i}from"./chunk-PEGRBZWY.js";var s=class extends m{constructor(){super(...arguments);this._config={type:""};this._status=null;this._busy=!1;this._error="";this._localMonthly="";this._localYearly="";this._dirty=!1;this._loaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._loaded&&(this._loaded=!0,this._load(),v(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/budget_status"});this._status=t,this._localMonthly=t.monthly_budget?String(t.monthly_budget):"",this._localYearly=t.yearly_budget?String(t.yearly_budget):"",this._dirty=!1}catch(t){this._error=p(t,this._lang)}}async _save(){if(this._isAdmin){this._busy=!0,this._error="";try{let t=parseFloat(this._localMonthly),e=parseFloat(this._localYearly),r={};!isNaN(t)&&t>=0&&(r.budget_monthly=t),!isNaN(e)&&e>=0&&(r.budget_yearly=e),await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/global/update",settings:r}),await this._load()}catch(t){this._error=p(t,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_budget"),window.dispatchEvent(new CustomEvent("location-changed"))}render(){let t=this._lang,e=this._status;if(!e)return o`<ha-card><div class="loading">${a("loading",t)||"Loading\u2026"}</div></ha-card>`;let r=e.currency_symbol||_,l=e.monthly_budget?Math.min(100,(e.monthly_spent||0)/e.monthly_budget*100):0,d=e.yearly_budget?Math.min(100,(e.yearly_spent||0)/e.yearly_budget*100):0,u=l>=100?"danger":l>=80?"warning":"ok",y=d>=100?"danger":d>=80?"warning":"ok";return o`
/*! maintenance_supporter frontend 2.44.1 */
import{a as v}from"./chunk-TF44IC56.js";import{a as u,b as o,d as h,e as b,f as y,g as l,h as g,i as r,k as m,t as p}from"./chunk-RLJYCMAK.js";import{a as n}from"./chunk-KRBXISES.js";var x=80,s=class extends b{constructor(){super(...arguments);this._config={type:""};this._status=null;this._busy=!1;this._error="";this._localMonthly="";this._localYearly="";this._dirty=!1;this._loaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._loaded&&(this._loaded=!0,this._load(),m(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/budget_status"});this._status=t,this._localMonthly=t.monthly_budget?String(t.monthly_budget):"",this._localYearly=t.yearly_budget?String(t.yearly_budget):"",this._dirty=!1}catch(t){this._error=p(t,this._lang)}}async _save(){if(this._isAdmin){this._busy=!0,this._error="";try{let t=parseFloat(this._localMonthly),a=parseFloat(this._localYearly),i={};!isNaN(t)&&t>=0&&(i.budget_monthly=t),!isNaN(a)&&a>=0&&(i.budget_yearly=a),await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/global/update",settings:i}),await this._load()}catch(t){this._error=p(t,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_budget"),window.dispatchEvent(new CustomEvent("location-changed"))}render(){let t=this._lang,a=this._status;if(!a)return o`<ha-card><div class="loading">${r("loading",t)||"Loading\u2026"}</div></ha-card>`;let i=a.currency_symbol||g,_=a.alert_threshold_pct??x,f=[{label:r("budget_monthly",t)||"Monthly",spent:a.monthly_spent||0,budget:a.monthly_budget||0},{label:r("budget_yearly",t)||"Yearly",spent:a.yearly_spent||0,budget:a.yearly_budget||0}];return o`
<ha-card>
<div class="card-content">
<div class="header">
<div class="title">
<span class="emoji">💰</span>
<span>${this._config.title||a("settings_budget",t)||"Budget"}</span>
<span>${this._config.title||r("settings_budget",t)||"Budget"}</span>
</div>
<span class="currency">${r}</span>
<span class="currency">${i}</span>
</div>
${this._error?o`<div class="error">${this._error}</div>`:b}
${this._error?o`<div class="error">${this._error}</div>`:h}
<div class="track">
<div class="track-label-row">
<label>${a("budget_monthly",t)||"Monthly"}</label>
<span class="track-numbers ${u}">
${(e.monthly_spent||0).toFixed(0)} / ${(e.monthly_budget||0).toFixed(0)} ${r}
</span>
</div>
<div class="bar"><div class="bar-fill ${u}" style="width:${l}%"></div></div>
</div>
<div class="track">
<div class="track-label-row">
<label>${a("budget_yearly",t)||"Yearly"}</label>
<span class="track-numbers ${y}">
${(e.yearly_spent||0).toFixed(0)} / ${(e.yearly_budget||0).toFixed(0)} ${r}
</span>
</div>
<div class="bar"><div class="bar-fill ${y}" style="width:${d}%"></div></div>
</div>
${f.map(e=>{if(!(e.budget>0))return o`
<div class="track spent-only">
<div class="track-label-row">
<label>${e.label}</label>
<span class="track-numbers ok">${e.spent.toFixed(0)} ${i}</span>
</div>
</div>
`;let d=Math.min(100,Math.max(0,e.spent/e.budget*100)),c=d>=100?"danger":d>=_?"warning":"ok";return o`
<div class="track">
<div class="track-label-row">
<label>${e.label}</label>
<span class="track-numbers ${c}">
${e.spent.toFixed(0)} / ${e.budget.toFixed(0)} ${i}
</span>
</div>
<div class="bar"><div class="bar-fill ${c}" style="width:${d}%"></div></div>
</div>
`})}
${this._isAdmin?o`
<div class="inputs-row">
<div class="input-field">
<label>${a("budget_monthly_set",t)||"Set monthly"}</label>
<label>${r("budget_monthly_set",t)||"Set monthly"}</label>
<div class="input-wrap">
<input type="number" min="0" step="1"
.value=${this._localMonthly}
?disabled=${this._busy}
@input=${c=>{this._localMonthly=c.target.value,this._dirty=!0}} />
<span class="input-suffix">${r}</span>
@input=${e=>{this._localMonthly=e.target.value,this._dirty=!0}} />
<span class="input-suffix">${i}</span>
</div>
</div>
<div class="input-field">
<label>${a("budget_yearly_set",t)||"Set yearly"}</label>
<label>${r("budget_yearly_set",t)||"Set yearly"}</label>
<div class="input-wrap">
<input type="number" min="0" step="1"
.value=${this._localYearly}
?disabled=${this._busy}
@input=${c=>{this._localYearly=c.target.value,this._dirty=!0}} />
<span class="input-suffix">${r}</span>
@input=${e=>{this._localYearly=e.target.value,this._dirty=!0}} />
<span class="input-suffix">${i}</span>
</div>
</div>
</div>
@@ -59,20 +59,20 @@ import{a as f}from"./chunk-Q7DQUCT7.js";import{a as h,b as o,d as b,e as m,f as
@click=${this._save}
?disabled=${this._busy||!this._dirty}>
<ha-icon icon="${this._dirty?"mdi:content-save":"mdi:check"}"></ha-icon>
${this._dirty?a("save",t)||"Save":a("saved",t)||"Saved"}
${this._dirty?r("save",t)||"Save":r("saved",t)||"Saved"}
</button>
<button class="btn link" @click=${this._onDeepLink}>
${a("budget_advanced",t)||"Currency, alerts\u2026"}
${r("budget_advanced",t)||"Currency, alerts\u2026"}
</button>
</div>
`:o`
<button class="btn link" @click=${this._onDeepLink}>
${a("budget_open_panel",t)||"Open in panel"}
${r("budget_open_panel",t)||"Open in panel"}
</button>
`}
</div>
</ha-card>
`}};s.styles=[f,h`
`}};s.styles=[v,u`
.currency {
font-size: 14px; font-weight: 600;
color: var(--secondary-text-color);
@@ -122,4 +122,4 @@ import{a as f}from"./chunk-Q7DQUCT7.js";import{a as h,b as o,d as b,e as m,f as
pointer-events: none;
}
.actions { display: flex; gap: 8px; align-items: center; }
`],i([g({attribute:!1})],s.prototype,"hass",2),i([n()],s.prototype,"_config",2),i([n()],s.prototype,"_status",2),i([n()],s.prototype,"_busy",2),i([n()],s.prototype,"_error",2),i([n()],s.prototype,"_localMonthly",2),i([n()],s.prototype,"_localYearly",2),i([n()],s.prototype,"_dirty",2);customElements.get("maintenance-budget-section-card")||customElements.define("maintenance-budget-section-card",s);window.customCards=window.customCards||[];window.customCards.push({type:"maintenance-budget-section-card",name:"Maintenance Supporter \u2014 Budget",description:"Inline monthly + yearly budget editor",preview:!1});export{s as MaintenanceBudgetSectionCard};
`],n([y({attribute:!1})],s.prototype,"hass",2),n([l()],s.prototype,"_config",2),n([l()],s.prototype,"_status",2),n([l()],s.prototype,"_busy",2),n([l()],s.prototype,"_error",2),n([l()],s.prototype,"_localMonthly",2),n([l()],s.prototype,"_localYearly",2),n([l()],s.prototype,"_dirty",2);customElements.get("maintenance-budget-section-card")||customElements.define("maintenance-budget-section-card",s);window.customCards=window.customCards||[];window.customCards.push({type:"maintenance-budget-section-card",name:"Maintenance Supporter \u2014 Budget",description:"Inline monthly + yearly budget editor",preview:!1});export{s as MaintenanceBudgetSectionCard};
@@ -1 +1,2 @@
/*! maintenance_supporter frontend 2.44.1 */
var s=Object.defineProperty;var l=Object.getOwnPropertyDescriptor;var t=(a,r,c,o)=>{for(var e=o>1?void 0:o?l(r,c):r,i=a.length-1,d;i>=0;i--)(d=a[i])&&(e=(o?d(r,c,e):d(e))||e);return o&&e&&s(r,c,e),e};var m={ok:"var(--success-color, #4caf50)",due_soon:"var(--warning-color, #ff9800)",overdue:"var(--error-color, #f44336)",triggered:"var(--deep-orange-color, #ff5722)",archived:"var(--disabled-color, #9e9e9e)",paused:"var(--info-color, #2196f3)"},v={ok:"mdi:check-circle",due_soon:"mdi:alert-circle",overdue:"mdi:alert-octagon",triggered:"mdi:bell-alert",archived:"mdi:archive-outline",paused:"mdi:pause-circle-outline",completed:"mdi:check-circle",skipped:"mdi:skip-next",missed:"mdi:calendar-remove",reset:"mdi:refresh"};export{t as a,m as b,v as c};
@@ -1,4 +1,5 @@
import{a as r}from"./chunk-X7OW5OLQ.js";var a=r`
/*! maintenance_supporter frontend 2.44.1 */
import{a as r}from"./chunk-RLJYCMAK.js";var a=r`
ha-card { overflow: hidden; }
.card-content {
padding: 16px;
@@ -1,4 +1,5 @@
import{a as m}from"./chunk-Q7DQUCT7.js";import{a as u,b as s,d as l,e as h,f as g,g as o,i,k as _,s as p}from"./chunk-X7OW5OLQ.js";import{a}from"./chunk-PEGRBZWY.js";var e=class extends h{constructor(){super(...arguments);this._config={type:""};this._groups={};this._loaded=!1;this._busy=!1;this._error="";this._newName="";this._editingId=null;this._editingName="";this._hasInitiallyLoaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._hasInitiallyLoaded&&(this._hasInitiallyLoaded=!0,this._load(),_(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/groups"});this._groups=t.groups||{},this._loaded=!0}catch(t){this._error=p(t,this._lang)}}async _addGroup(){if(!this._isAdmin)return;let t=this._newName.trim();if(t){this._busy=!0,this._error="";try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/create",name:t}),this._newName="",await this._load()}catch(r){this._error=p(r,this._lang)}finally{this._busy=!1}}}_startEdit(t){this._editingId=t,this._editingName=this._groups[t]?.name||""}async _saveEdit(){if(!this._isAdmin||!this._editingId)return;let t=this._editingName.trim();if(t){this._busy=!0,this._error="";try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/update",group_id:this._editingId,name:t}),this._editingId=null,this._editingName="",await this._load()}catch(r){this._error=p(r,this._lang)}finally{this._busy=!1}}}async _deleteGroup(t,r){if(!this._isAdmin)return;let n=(i("group_delete_confirm",this._lang)||'Delete group "{name}"?').replace("{name}",r);if(window.confirm(n)){this._busy=!0;try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/delete",group_id:t}),await this._load()}catch(d){this._error=p(d,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_groups"),window.dispatchEvent(new CustomEvent("location-changed"))}_onKeyDown(t,r){t.key==="Enter"?(t.preventDefault(),r()):t.key==="Escape"&&(t.preventDefault(),this._editingId=null,this._editingName="")}render(){let t=this._lang;if(!this._loaded)return s`<ha-card><div class="loading">${i("loading",t)||"Loading\u2026"}</div></ha-card>`;let r=Object.keys(this._groups);return s`
/*! maintenance_supporter frontend 2.44.1 */
import{a as m}from"./chunk-TF44IC56.js";import{a as u,b as s,d as l,e as h,f as g,g as o,i,k as _,t as p}from"./chunk-RLJYCMAK.js";import{a}from"./chunk-KRBXISES.js";var e=class extends h{constructor(){super(...arguments);this._config={type:""};this._groups={};this._loaded=!1;this._busy=!1;this._error="";this._newName="";this._editingId=null;this._editingName="";this._hasInitiallyLoaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._hasInitiallyLoaded&&(this._hasInitiallyLoaded=!0,this._load(),_(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/groups"});this._groups=t.groups||{},this._loaded=!0}catch(t){this._error=p(t,this._lang)}}async _addGroup(){if(!this._isAdmin)return;let t=this._newName.trim();if(t){this._busy=!0,this._error="";try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/create",name:t}),this._newName="",await this._load()}catch(r){this._error=p(r,this._lang)}finally{this._busy=!1}}}_startEdit(t){this._editingId=t,this._editingName=this._groups[t]?.name||""}async _saveEdit(){if(!this._isAdmin||!this._editingId)return;let t=this._editingName.trim();if(t){this._busy=!0,this._error="";try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/update",group_id:this._editingId,name:t}),this._editingId=null,this._editingName="",await this._load()}catch(r){this._error=p(r,this._lang)}finally{this._busy=!1}}}async _deleteGroup(t,r){if(!this._isAdmin)return;let n=(i("group_delete_confirm",this._lang)||'Delete group "{name}"?').replace("{name}",r);if(window.confirm(n)){this._busy=!0;try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/group/delete",group_id:t}),await this._load()}catch(d){this._error=p(d,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_groups"),window.dispatchEvent(new CustomEvent("location-changed"))}_onKeyDown(t,r){t.key==="Enter"?(t.preventDefault(),r()):t.key==="Escape"&&(t.preventDefault(),this._editingId=null,this._editingName="")}render(){let t=this._lang;if(!this._loaded)return s`<ha-card><div class="loading">${i("loading",t)||"Loading\u2026"}</div></ha-card>`;let r=Object.keys(this._groups);return s`
<ha-card>
<div class="card-content">
<div class="header">
@@ -1,4 +1,5 @@
import{a as m}from"./chunk-Q7DQUCT7.js";import{a as h,b as n,d as c,e as _,f as v,g as r,i as e,k as f,s as l}from"./chunk-X7OW5OLQ.js";import{a as i}from"./chunk-PEGRBZWY.js";var a=class extends _{constructor(){super(...arguments);this._config={type:""};this._state=null;this._busy=!1;this._error="";this._localStart="";this._localEnd="";this._localBuffer=7;this._dirty=!1;this._loaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._loaded&&(this._loaded=!0,this._load(),f(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/state"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||"",this._localBuffer=t.buffer_days??7,this._dirty=!1}catch(t){this._error=l(t,this._lang)}}async _toggleEnabled(t){this._busy=!0,this._error="";try{let s=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",enabled:t});this._state=s}catch(s){this._error=l(s,this._lang)}finally{this._busy=!1}}async _save(){if(this._isAdmin){this._busy=!0,this._error="";try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",start:this._localStart||null,end:this._localEnd||null,buffer_days:this._localBuffer});this._state=t,this._dirty=!1}catch(t){this._error=l(t,this._lang)}finally{this._busy=!1}}}async _endNow(){if(this._isAdmin&&window.confirm(e("vacation_end_now_confirm",this._lang)||"End vacation immediately?")){this._busy=!0;try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/end_now"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||""}catch(t){this._error=l(t,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_vacation"),window.dispatchEvent(new CustomEvent("location-changed"))}render(){let t=this._lang,s=this._state;if(!s)return n`<ha-card><div class="loading">${e("loading",t)||"Loading\u2026"}</div></ha-card>`;let p=s.is_active===!0,d=s.enabled===!0,u=s.exempt_task_ids?.length??0,b=p?e("vacation_status_active",t)||"Active now":d?e("vacation_status_scheduled",t)||"Scheduled":e("vacation_status_inactive",t)||"Inactive",g=p?"active":d?"scheduled":"inactive";return n`
/*! maintenance_supporter frontend 2.44.1 */
import{a as m}from"./chunk-TF44IC56.js";import{a as h,b as n,d as c,e as _,f as v,g as r,i as e,k as f,t as l}from"./chunk-RLJYCMAK.js";import{a as i}from"./chunk-KRBXISES.js";var a=class extends _{constructor(){super(...arguments);this._config={type:""};this._state=null;this._busy=!1;this._error="";this._localStart="";this._localEnd="";this._localBuffer=7;this._dirty=!1;this._loaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return this.hass?.language||"en"}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),t.has("hass")&&this.hass&&!this._loaded&&(this._loaded=!0,this._load(),f(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/state"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||"",this._localBuffer=t.buffer_days??7,this._dirty=!1}catch(t){this._error=l(t,this._lang)}}async _toggleEnabled(t){this._busy=!0,this._error="";try{let s=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",enabled:t});this._state=s}catch(s){this._error=l(s,this._lang)}finally{this._busy=!1}}async _save(){if(this._isAdmin){this._busy=!0,this._error="";try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",start:this._localStart||null,end:this._localEnd||null,buffer_days:this._localBuffer});this._state=t,this._dirty=!1}catch(t){this._error=l(t,this._lang)}finally{this._busy=!1}}}async _endNow(){if(this._isAdmin&&window.confirm(e("vacation_end_now_confirm",this._lang)||"End vacation immediately?")){this._busy=!0;try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/end_now"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||""}catch(t){this._error=l(t,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_vacation"),window.dispatchEvent(new CustomEvent("location-changed"))}render(){let t=this._lang,s=this._state;if(!s)return n`<ha-card><div class="loading">${e("loading",t)||"Loading\u2026"}</div></ha-card>`;let p=s.is_active===!0,d=s.enabled===!0,u=s.exempt_task_ids?.length??0,b=p?e("vacation_status_active",t)||"Active now":d?e("vacation_status_scheduled",t)||"Scheduled":e("vacation_status_inactive",t)||"Inactive",g=p?"active":d?"scheduled":"inactive";return n`
<ha-card>
<div class="card-content">
<div class="header">
File diff suppressed because one or more lines are too long