diff --git a/setup.py b/setup.py index 8bdc5bfc95..be9a26d294 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20190213.0", + version="20190215.0", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors", diff --git a/src/data/lovelace.ts b/src/data/lovelace.ts index 84edaa0472..fa638acb85 100644 --- a/src/data/lovelace.ts +++ b/src/data/lovelace.ts @@ -5,7 +5,6 @@ export interface LovelaceConfig { views: LovelaceViewConfig[]; background?: string; resources?: Array<{ type: "css" | "js" | "module" | "html"; url: string }>; - excluded_entities?: string[]; } export interface LovelaceViewConfig { @@ -34,7 +33,10 @@ export interface ToggleActionConfig { export interface CallServiceActionConfig { action: "call-service"; service: string; - service_data?: { [key: string]: any }; + service_data?: { + entity_id?: string | [string]; + [key: string]: any; + }; } export interface NavigateActionConfig { diff --git a/src/panels/config/zha/functions.ts b/src/panels/config/zha/functions.ts new file mode 100644 index 0000000000..e5475280ea --- /dev/null +++ b/src/panels/config/zha/functions.ts @@ -0,0 +1,7 @@ +export const formatAsPaddedHex = (value: string | number): string => { + let hex = value; + if (typeof value === "string") { + hex = parseInt(value, 16); + } + return "0x" + hex.toString(16).padStart(4, "0"); +}; diff --git a/src/panels/config/zha/zha-cluster-attributes.ts b/src/panels/config/zha/zha-cluster-attributes.ts index fb48bf5006..dcde362e43 100644 --- a/src/panels/config/zha/zha-cluster-attributes.ts +++ b/src/panels/config/zha/zha-cluster-attributes.ts @@ -28,6 +28,7 @@ import { ItemSelectedEvent, SetAttributeServiceData, } from "./types"; +import { formatAsPaddedHex } from "./functions"; export class ZHAClusterAttributes extends LitElement { public hass?: HomeAssistant; @@ -102,7 +103,10 @@ export class ZHAClusterAttributes extends LitElement { ${this._attributes.map( (entry) => html` ${entry.name + " (id: " + entry.id + ")"}${entry.name + + " (id: " + + formatAsPaddedHex(entry.id) + + ")"} ` )} diff --git a/src/panels/config/zha/zha-cluster-commands.ts b/src/panels/config/zha/zha-cluster-commands.ts index 14429982f9..ccd2291051 100644 --- a/src/panels/config/zha/zha-cluster-commands.ts +++ b/src/panels/config/zha/zha-cluster-commands.ts @@ -24,6 +24,7 @@ import { IssueCommandServiceData, ItemSelectedEvent, } from "./types"; +import { formatAsPaddedHex } from "./functions"; export class ZHAClusterCommands extends LitElement { public hass?: HomeAssistant; @@ -94,7 +95,10 @@ export class ZHAClusterCommands extends LitElement { ${this._commands.map( (entry) => html` ${entry.name + " (id: " + entry.id + ")"}${entry.name + + " (id: " + + formatAsPaddedHex(entry.id) + + ")"} ` )} diff --git a/src/panels/config/zha/zha-clusters.ts b/src/panels/config/zha/zha-clusters.ts index c45772c510..881026b218 100644 --- a/src/panels/config/zha/zha-clusters.ts +++ b/src/panels/config/zha/zha-clusters.ts @@ -16,6 +16,7 @@ import { haStyle } from "../../../resources/ha-style"; import { HomeAssistant } from "../../../types"; import "../ha-config-section"; import { ItemSelectedEvent } from "./types"; +import { formatAsPaddedHex } from "./functions"; declare global { // for fire event @@ -27,9 +28,9 @@ declare global { } const computeClusterKey = (cluster: Cluster): string => { - return `${cluster.name} (Endpoint id: ${cluster.endpoint_id}, Id: ${ - cluster.id - }, Type: ${cluster.type})`; + return `${cluster.name} (Endpoint id: ${ + cluster.endpoint_id + }, Id: ${formatAsPaddedHex(cluster.id)}, Type: ${cluster.type})`; }; export class ZHAClusters extends LitElement { diff --git a/src/panels/lovelace/cards/hui-alarm-panel-card.ts b/src/panels/lovelace/cards/hui-alarm-panel-card.ts index 50fec942a5..3fb008f6c3 100644 --- a/src/panels/lovelace/cards/hui-alarm-panel-card.ts +++ b/src/panels/lovelace/cards/hui-alarm-panel-card.ts @@ -128,9 +128,13 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { : ["disarm"] ).map((state) => { return html` - ${this._label(state)} + ${this._label(state)} + `; })} @@ -154,14 +158,14 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { ` : html` ${value === "clear" - ? this._label("clear_code") - : value} + ${value === "clear" + ? this._label("clear_code") + : value} + `; })} @@ -274,6 +278,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { width: 30%; padding: calc(var(--base-unit)); font-size: calc(var(--base-unit) * 1.1); + box-sizing: border-box; } .actions { margin: 0 8px; @@ -286,6 +291,7 @@ class HuiAlarmPanelCard extends LitElement implements LovelaceCard { .actions mwc-button { min-width: calc(var(--base-unit) * 9); color: var(--primary-color); + margin: 0 4px; } mwc-button#disarm { color: var(--google-red-500); diff --git a/src/panels/lovelace/cards/hui-entity-button-card.ts b/src/panels/lovelace/cards/hui-entity-button-card.ts index 3ca969886c..451562d563 100644 --- a/src/panels/lovelace/cards/hui-entity-button-card.ts +++ b/src/panels/lovelace/cards/hui-entity-button-card.ts @@ -138,6 +138,7 @@ class HuiEntityButtonCard extends LitElement implements LovelaceCard { display: flex; flex-direction: column; align-items: center; + text-align: center; padding: 4% 0; font-size: 1.2rem; } diff --git a/src/panels/lovelace/cards/hui-history-graph-card.js b/src/panels/lovelace/cards/hui-history-graph-card.js index 9def759e5a..737eaa8891 100644 --- a/src/panels/lovelace/cards/hui-history-graph-card.js +++ b/src/panels/lovelace/cards/hui-history-graph-card.js @@ -11,31 +11,33 @@ class HuiHistoryGraphCard extends PolymerElement { static get template() { return html` - - +
+ + +
`; } diff --git a/src/panels/lovelace/common/compute-unused-entities.ts b/src/panels/lovelace/common/compute-unused-entities.ts index 0c4fd0c331..145bf463b6 100644 --- a/src/panels/lovelace/common/compute-unused-entities.ts +++ b/src/panels/lovelace/common/compute-unused-entities.ts @@ -1,38 +1,66 @@ -import { LovelaceConfig } from "../../../data/lovelace"; +import { LovelaceConfig, ActionConfig } from "../../../data/lovelace"; import { HomeAssistant } from "../../../types"; const EXCLUDED_DOMAINS = ["zone"]; +const addFromAction = (entities: Set, actionConfig: ActionConfig) => { + if ( + actionConfig.action !== "call-service" || + !actionConfig.service_data || + !actionConfig.service_data.entity_id + ) { + return; + } + let entityIds = actionConfig.service_data.entity_id; + if (!Array.isArray(entityIds)) { + entityIds = [entityIds]; + } + for (const entityId of entityIds) { + entities.add(entityId); + } +}; + +const addEntityId = (entities: Set, entity) => { + if (typeof entity === "string") { + entities.add(entity); + return; + } + + if (entity.entity) { + entities.add(entity.entity); + } + if (entity.camera_image) { + entities.add(entity.camera_image); + } + if (entity.tap_action) { + addFromAction(entities, entity.tap_action); + } + if (entity.hold_action) { + addFromAction(entities, entity.hold_action); + } +}; + +const addEntities = (entities: Set, obj) => { + if (obj.entity) { + addEntityId(entities, obj.entity); + } + if (obj.entities) { + obj.entities.forEach((entity) => addEntityId(entities, entity)); + } + if (obj.card) { + addEntities(entities, obj.card); + } + if (obj.cards) { + obj.cards.forEach((card) => addEntities(entities, card)); + } + if (obj.badges) { + obj.badges.forEach((badge) => addEntityId(entities, badge)); + } +}; + const computeUsedEntities = (config) => { const entities = new Set(); - - const addEntityId = (entity) => { - if (typeof entity === "string") { - entities.add(entity); - } else if (entity.entity) { - entities.add(entity.entity); - } - }; - - const addEntities = (obj) => { - if (obj.entity) { - addEntityId(obj.entity); - } - if (obj.entities) { - obj.entities.forEach((entity) => addEntityId(entity)); - } - if (obj.card) { - addEntities(obj.card); - } - if (obj.cards) { - obj.cards.forEach((card) => addEntities(card)); - } - if (obj.badges) { - obj.badges.forEach((badge) => addEntityId(badge)); - } - }; - - config.views.forEach((view) => addEntities(view)); + config.views.forEach((view) => addEntities(entities, view)); return entities; }; @@ -45,9 +73,6 @@ export const computeUnusedEntities = ( .filter( (entity) => !usedEntities.has(entity) && - !( - config.excluded_entities && config.excluded_entities.includes(entity) - ) && !EXCLUDED_DOMAINS.includes(entity.split(".", 1)[0]) ) .sort(); diff --git a/src/panels/lovelace/common/handle-click.ts b/src/panels/lovelace/common/handle-click.ts index bf1e3c149d..5ee86f965f 100644 --- a/src/panels/lovelace/common/handle-click.ts +++ b/src/panels/lovelace/common/handle-click.ts @@ -33,7 +33,7 @@ export const handleClick = ( case "more-info": if (config.entity || config.camera_image) { fireEvent(node, "hass-more-info", { - entityId: config.entity ? config.entity! : config.camera_image!, + entityId: config.entity ? config.entity : config.camera_image!, }); } break; diff --git a/src/panels/lovelace/hui-editor.ts b/src/panels/lovelace/hui-editor.ts index 5b00147096..f20313998b 100644 --- a/src/panels/lovelace/hui-editor.ts +++ b/src/panels/lovelace/hui-editor.ts @@ -53,14 +53,16 @@ class LovelaceFullConfigEditor extends LitElement { @click="${this._closeEditor}" >
Edit Config
- Save - Save + + saved: this._saving! === false || this._changed === true, + })}" + icon="${this._changed ? "hass:circle-medium" : "hass:check"}" + >
@@ -113,11 +115,12 @@ class LovelaceFullConfigEditor extends LitElement { .save-button { opacity: 0; margin-left: -21px; - margin-top: -1px; - transition: opacity 1.5s; + transition: all 1.5s; } .saved { + margin-left: initial; + margin-right: -8px; opacity: 1; } `, diff --git a/src/panels/lovelace/hui-unused-entities.ts b/src/panels/lovelace/hui-unused-entities.ts index 10769275cc..949dd0f38a 100644 --- a/src/panels/lovelace/hui-unused-entities.ts +++ b/src/panels/lovelace/hui-unused-entities.ts @@ -64,7 +64,7 @@ export class HuiUnusedEntities extends LitElement { hui-entities-card { max-width: 400px; padding: 4px; - flex: 1; + flex: 1 auto; } `; diff --git a/translations/bg.json b/translations/bg.json index 6d8a1f0202..70fb9fc66c 100644 --- a/translations/bg.json +++ b/translations/bg.json @@ -708,6 +708,11 @@ "abort": { "not_whitelisted": "Вашият компютър не е в списъка с разрешени компютри." } + }, + "command_line": { + "abort": { + "login_expired": "Сесията изтече, моля влезте отново." + } } } } diff --git a/translations/ca.json b/translations/ca.json index ffb3b45dff..8787a36474 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -346,7 +346,11 @@ }, "customize": { "caption": "Personalització", - "description": "Personalitza les entitats" + "description": "Personalitza les entitats", + "picker": { + "header": "Personalització", + "introduction": "Modificació dels atributs d'entitat. Les personalitzacions afegides\/modificades apareixeran immediatament. Les personalitzacions eliminades tindran efecte quan l'entitat s'actualitzi." + } }, "automation": { "caption": "Automatització", @@ -569,7 +573,8 @@ "hub": "Connectat a través de", "firmware": "Firmware: {version}", "device_unavailable": "dispositiu no disponible", - "entity_unavailable": "entitat no disponible" + "entity_unavailable": "entitat no disponible", + "no_area": "Sense àrea" } }, "zha": { @@ -581,11 +586,42 @@ }, "area_registry": { "caption": "Registre d'àrees", - "description": "Visió general de totes les àrees de la casa." + "description": "Visió general de totes les àrees de la casa.", + "picker": { + "header": "Registre d'àrees" + }, + "no_areas": "Sembla que encara no tens cap àrea, encara.", + "create_area": "CREA ÀREA", + "editor": { + "default_name": "Àrea nova", + "delete": "SUPRIMIR", + "update": "ACTUALITZAR", + "create": "CREAR" + } }, "entity_registry": { "caption": "Registre d'entitats", - "description": "Visió general de totes les entitats conegudes." + "description": "Visió general de totes les entitats conegudes.", + "picker": { + "header": "Registre d'entitats", + "unavailable": "(no disponible)" + }, + "editor": { + "unavailable": "Aquesta entitat no està disponible actualment.", + "default_name": "Àrea nova", + "delete": "SUPRIMIR", + "update": "ACTUALITZAR" + } + }, + "person": { + "caption": "Persones", + "description": "Gestiona a quines persones fa seguiment Home Assistant.", + "detail": { + "name": "Nom", + "device_tracker_intro": "Selecciona els dispositius que pertanyen a aquesta persona.", + "device_tracker_picked": "Seguint dispositiu", + "device_tracker_pick": "Tria un dispositiu per fer-li el seguiment" + } } }, "profile": { @@ -728,6 +764,29 @@ "abort": { "not_whitelisted": "El teu ordinador no es troba accessible a la llista." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Nom d'usuari", + "password": "Contrasenya" + } + }, + "mfa": { + "data": { + "code": "Codi de verificació en dos passos" + }, + "description": "Obre el **{mfa_module_name}** al teu dispositiu per veure el codi de verificació en dos passos i verifica la teva identitat:" + } + }, + "error": { + "invalid_auth": "Nom d'usuari o contrasenya incorrectes", + "invalid_code": "El codi d'autenticació no és vàlid" + }, + "abort": { + "login_expired": "La sessió ha caducat, torna a iniciar la sessió." + } } } } @@ -769,7 +828,8 @@ "pick_card": "Tria la targeta que vols afegir.", "add": "Afegir targeta", "edit": "Editar", - "delete": "Suprimir" + "delete": "Suprimir", + "move": "Moure" }, "migrate": { "header": "Configuració incompatible", @@ -872,7 +932,8 @@ "arm_home": "Activar, a casa", "arm_away": "Activar, fora", "arm_night": "Activar, nocturn", - "armed_custom_bypass": "Bypass personalitzat" + "armed_custom_bypass": "Bypass personalitzat", + "arm_custom_bypass": "Bypass personalitzat" }, "automation": { "last_triggered": "Última execució", diff --git a/translations/cs.json b/translations/cs.json index 4032836ff0..a205eb08b9 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -33,7 +33,7 @@ "arming": "Aktivování", "disarming": "Deaktivování", "triggered": "Spuštěno", - "armed_custom_bypass": "Specifické obejítí alarmu" + "armed_custom_bypass": "Aktivní uživatelský bypass" }, "automation": { "off": "Neaktivní", @@ -851,7 +851,7 @@ "save": "Převzít kontrolu" }, "menu": { - "raw_editor": "Editor konfigurace" + "raw_editor": "Editor zdrojového kódu" } }, "menu": { @@ -931,7 +931,8 @@ "arm_home": "Aktivovat režim domov", "arm_away": "Aktivovat režim mimo domov", "arm_night": "Aktivovat noční režim", - "armed_custom_bypass": "Specifické obejítí alarmu" + "armed_custom_bypass": "Uživatelský bypass", + "arm_custom_bypass": "Uživatelský bypass" }, "automation": { "last_triggered": "Naposledy spuštěno", diff --git a/translations/da.json b/translations/da.json index 9685ee8237..4b726f3e12 100644 --- a/translations/da.json +++ b/translations/da.json @@ -764,6 +764,29 @@ "abort": { "not_whitelisted": "Din computer er ikke whitelistet." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Brugernavn", + "password": "Password" + } + }, + "mfa": { + "data": { + "code": "To-faktor godkendelseskode" + }, + "description": "Åbn **{mfa_module_name}** på din enhed for at se din to-faktor godkendelseskode og bekræft din identitet:" + } + }, + "error": { + "invalid_auth": "Ugyldigt brugernavn eller password", + "invalid_code": "Ugyldig godkendelseskode" + }, + "abort": { + "login_expired": "Session er udløbet, log ind igen." + } } } } @@ -909,7 +932,8 @@ "arm_home": "Tilkoble hjemme", "arm_away": "Tilkoble ude", "arm_night": "Tilkoblet nat", - "armed_custom_bypass": "Brugerdefineret" + "armed_custom_bypass": "Brugerdefineret", + "arm_custom_bypass": "Brugerdefineret bypass" }, "automation": { "last_triggered": "Senest udløst", diff --git a/translations/de.json b/translations/de.json index e4e371c465..9a4318d5f5 100644 --- a/translations/de.json +++ b/translations/de.json @@ -725,6 +725,11 @@ "abort": { "not_whitelisted": "Dein Computer ist nicht auf der Whitelist." } + }, + "command_line": { + "abort": { + "login_expired": "Sitzung abgelaufen, bitte erneut anmelden." + } } } } diff --git a/translations/el.json b/translations/el.json index 1a3cc56a83..00e7187787 100644 --- a/translations/el.json +++ b/translations/el.json @@ -724,6 +724,11 @@ "abort": { "not_whitelisted": "Ο υπολογιστής σας δεν είναι στη λίστα επιτρεπόμενων." } + }, + "command_line": { + "abort": { + "login_expired": "Η περίοδος σύνδεσης έληξε, συνδεθείτε ξανά." + } } } } diff --git a/translations/en.json b/translations/en.json index 03d3e2f01e..c3b4e5d8e9 100644 --- a/translations/en.json +++ b/translations/en.json @@ -932,7 +932,8 @@ "arm_home": "Arm home", "arm_away": "Arm away", "arm_night": "Arm night", - "armed_custom_bypass": "Custom bypass" + "armed_custom_bypass": "Custom bypass", + "arm_custom_bypass": "Custom bypass" }, "automation": { "last_triggered": "Last triggered", diff --git a/translations/es-419.json b/translations/es-419.json index 264bbc98d8..7b649ea02b 100644 --- a/translations/es-419.json +++ b/translations/es-419.json @@ -708,6 +708,11 @@ "abort": { "not_whitelisted": "Tu computadora no está incluida en la lista blanca." } + }, + "command_line": { + "abort": { + "login_expired": "La sesión expiró, por favor inicie sesión nuevamente." + } } } } diff --git a/translations/es.json b/translations/es.json index 2f6eb013a7..5f56196002 100644 --- a/translations/es.json +++ b/translations/es.json @@ -728,6 +728,29 @@ "abort": { "not_whitelisted": "Tu computadora no está en la lista de autorizados." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Nombre de usuario", + "password": "Contraseña" + } + }, + "mfa": { + "data": { + "code": "Código de Autenticación de Doble Factor" + }, + "description": "Abre el **{mfa_module_name}** en tú dispositivo para ver tú código de autenticación de doble factor y verificar tu identidad" + } + }, + "error": { + "invalid_auth": "Usuario o contraseña incorrecto", + "invalid_code": "Código de autenticación no válido" + }, + "abort": { + "login_expired": "La sesión ha caducado, por favor inicie sesión de nuevo." + } } } } diff --git a/translations/et.json b/translations/et.json index acea505b39..f47d0eb5b5 100644 --- a/translations/et.json +++ b/translations/et.json @@ -707,6 +707,11 @@ "abort": { "not_whitelisted": "Sinu arvuti ei ole lubatute nimekirjas." } + }, + "command_line": { + "abort": { + "login_expired": "Sessioon aegus, palun logi uuesti sisse." + } } } } diff --git a/translations/fi.json b/translations/fi.json index 3fbafb6dd3..2db0ad35e6 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -696,6 +696,11 @@ "abort": { "not_whitelisted": "Tietokonettasi ei ole sallittu." } + }, + "command_line": { + "abort": { + "login_expired": "Istunto päättyi, ole hyvä ja kirjaudu uudelleen." + } } } } diff --git a/translations/fr.json b/translations/fr.json index 3e93ff16a6..fefd4536db 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -581,11 +581,18 @@ }, "area_registry": { "caption": "Registre des pièces", - "description": "Vue d'ensemble de toutes les pièces de votre maison." + "description": "Vue d'ensemble de toutes les pièces de votre maison.", + "editor": { + "delete": "SUPPRIMER" + } }, "entity_registry": { "caption": "Registre des entités", - "description": "Vue d'ensemble de toutes les entités connues." + "description": "Vue d'ensemble de toutes les entités connues.", + "editor": { + "delete": "SUPPRIMER", + "update": "METTRE À JOUR" + } } }, "profile": { @@ -728,6 +735,29 @@ "abort": { "not_whitelisted": "Votre ordinateur n'est pas en liste blanche." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Nom d'utilisateur", + "password": "Mot de passe" + } + }, + "mfa": { + "data": { + "code": "Code d'authentification à deux facteurs" + }, + "description": "Ouvrez le **{mfa_module_name}** sur votre appareil pour afficher votre code d'authentification à deux facteurs et vérifier votre identité:" + } + }, + "error": { + "invalid_auth": "Nom d'utilisateur ou mot de passe invalide", + "invalid_code": "Code d'authentification invalide" + }, + "abort": { + "login_expired": "Session expirée, veuillez vous connecter à nouveau." + } } } } @@ -769,7 +799,8 @@ "pick_card": "Choisissez l'automatisation à ajouter", "add": "Ajouter une action", "edit": "Modifier", - "delete": "Supprimer" + "delete": "Supprimer", + "move": "Déplacer" }, "migrate": { "header": "Configuration incompatible", diff --git a/translations/he.json b/translations/he.json index 362981d2e2..b83c91fa14 100644 --- a/translations/he.json +++ b/translations/he.json @@ -346,7 +346,11 @@ }, "customize": { "caption": "התאמה אישית", - "description": "התאם אישית את הישויות שלך" + "description": "התאם אישית את הישויות שלך", + "picker": { + "header": "התאמה אישית", + "introduction": "כוונן תכונות של כל ישות. ההתאמות הנוספות שנוספו \/ ייכנסו לתוקף באופן מיידי. התאמות אישיות שהוסרו ייכנסו לתוקף כאשר הישות תעודכן." + } }, "automation": { "caption": "אוטומציה", @@ -569,7 +573,8 @@ "hub": "מחובר באמצעות", "firmware": "קושחה: {version}", "device_unavailable": "התקן אינו זמין", - "entity_unavailable": "ישות לא זמינה" + "entity_unavailable": "ישות לא זמינה", + "no_area": "ללא אזור" } }, "zha": { @@ -580,11 +585,42 @@ }, "area_registry": { "caption": "מאגר האזורים", - "description": "סקירה של כל האזורים בביתך." + "description": "סקירה של כל האזורים בביתך.", + "picker": { + "header": "מאגר האזורים" + }, + "no_areas": "נראה שעדיין אין אזורים!", + "create_area": "צור איזור", + "editor": { + "default_name": "אזור חדש", + "delete": "מחק", + "update": "עדכון", + "create": "צור" + } }, "entity_registry": { "caption": "מאגר הישויות", - "description": "סקירה של כל הישויות המוכרות" + "description": "סקירה של כל הישויות המוכרות", + "picker": { + "header": "מאגר הישויות", + "unavailable": "(לא זמין)" + }, + "editor": { + "unavailable": "ישות זו אינה זמינה כעת.", + "default_name": "אזור חדש", + "delete": "מחק", + "update": "עדכון" + } + }, + "person": { + "caption": "אנשים", + "description": "נהל את האנשים ש Home Assistant יעקב אחריהם.", + "detail": { + "name": "שם", + "device_tracker_intro": "בחר את המכשירים השייכים לאדם זה.", + "device_tracker_picked": "עקוב אחר מכשיר", + "device_tracker_pick": "בחר מכשיר למעקב" + } } }, "profile": { @@ -727,6 +763,29 @@ "abort": { "not_whitelisted": "המחשב שלך אינו רשום ברשימת ההיתרים." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "שם משתמש", + "password": "סיסמא" + } + }, + "mfa": { + "data": { + "code": "קוד אימות דו-שלבי" + }, + "description": "פתח את **{mfa_module_name}** במכשיר שלך בכדי לצפות בקוד האימות הדו-שלבי שלך ולאמת את הזהות שלך:" + } + }, + "error": { + "invalid_auth": "שם משתמש או סיסמא לא נכונים", + "invalid_code": "קוד אימות לא חוקי" + }, + "abort": { + "login_expired": "פג תוקף הפעילות באתר, היכנס שוב." + } } } } @@ -768,7 +827,8 @@ "pick_card": "בחר את הכרטיסייה שברצונך להוסיף.", "add": "הוסף כרטיסייה", "edit": "ערוך", - "delete": "מחק" + "delete": "מחק", + "move": "הזז" }, "migrate": { "header": "ההגדרה לא מתאימה", @@ -871,7 +931,8 @@ "arm_home": "דרוך בבית", "arm_away": "דרוך לא בבית", "arm_night": "דריכה לילית", - "armed_custom_bypass": "מעקף מותאם" + "armed_custom_bypass": "מעקף מותאם", + "arm_custom_bypass": "מעקף מותאם אישית" }, "automation": { "last_triggered": "הפעלה אחרונה", diff --git a/translations/hr.json b/translations/hr.json index 11aabcbc74..e8a844d491 100644 --- a/translations/hr.json +++ b/translations/hr.json @@ -680,6 +680,11 @@ "abort": { "not_whitelisted": "Računalo nije na popisu dopuštenih." } + }, + "command_line": { + "abort": { + "login_expired": "Sesija istekla, prijavite se ponovo." + } } } } diff --git a/translations/hu.json b/translations/hu.json index e3bc5bbf51..28713a55b8 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -724,6 +724,11 @@ "abort": { "not_whitelisted": "A számítógéped nem engedélyezett." } + }, + "command_line": { + "abort": { + "login_expired": "A munkamenet lejárt, kérlek, jelentkezz be újra." + } } } } diff --git a/translations/it.json b/translations/it.json index d506ee9a99..68ebe62252 100644 --- a/translations/it.json +++ b/translations/it.json @@ -785,7 +785,7 @@ "invalid_code": "Codice di autenticazione non valido" }, "abort": { - "login_expired": "Sessione scaduta, fai di nuovo il login" + "login_expired": "Sessione scaduta, effettua nuovamente il login." } } } @@ -932,7 +932,8 @@ "arm_home": "Attiva In casa", "arm_away": "Attiva Fuori Casa", "arm_night": "Attiva Notte", - "armed_custom_bypass": "Attiva con bypass" + "armed_custom_bypass": "Attiva con bypass", + "arm_custom_bypass": "Bypass personalizzato" }, "automation": { "last_triggered": "Ultima attivazione", @@ -1002,7 +1003,7 @@ }, "relative_time": { "past": "{time} fa", - "future": "mancano {time}", + "future": "{time} fa", "never": "Mai", "duration": { "second": "{count} {count, plural,\none {secondo}\nother {secondi}\n}", diff --git a/translations/ko.json b/translations/ko.json index 95e3a7a126..1c80440032 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -82,7 +82,7 @@ }, "presence": { "off": "외출", - "on": "재실중" + "on": "재실" }, "battery": { "off": "보통", @@ -97,7 +97,7 @@ "on": "연결됨" }, "cold": { - "off": "상온", + "off": "보통", "on": "저온" }, "door": { @@ -109,7 +109,7 @@ "on": "열림" }, "heat": { - "off": "상온", + "off": "보통", "on": "고온" }, "window": { @@ -118,7 +118,7 @@ }, "lock": { "off": "잠김", - "on": "열림" + "on": "해제" } }, "calendar": { @@ -178,7 +178,7 @@ "stopped": "멈춤", "locked": "잠김", "unlocked": "해제", - "ok": "좋음", + "ok": "문제없음", "problem": "문제있음" }, "input_boolean": { @@ -202,7 +202,7 @@ "standby": "준비중" }, "plant": { - "ok": "좋음", + "ok": "문제없음", "problem": "문제있음" }, "remote": { @@ -346,13 +346,17 @@ }, "customize": { "caption": "사용자화", - "description": "구성요소를 사용자화 합니다" + "description": "구성요소를 사용자화 합니다", + "picker": { + "header": "사용자화", + "introduction": "구성요소의 속성을 조정할 수 있습니다. 추가 및 수정 된 사용자화 정의는 즉시 적용되며, 제거 된 사용자화 정의는 구성요소가 업데이트 될 때 적용됩니다." + } }, "automation": { "caption": "자동화", "description": "자동화를 만들고 편집합니다", "picker": { - "header": "자동화 편집기", + "header": "자동화 편집", "introduction": "자동화 편집기를 사용하여 자동화를 작성하고 편집 할 수 있습니다. [안내](https:\/\/home-assistant.io\/docs\/automation\/editor\/) 를 읽고 Home Assistant 를 올바르게 구성했는지 확인해보세요.", "pick_automation": "편집할 자동화 선택", "no_automations": "편집 가능한 자동화를 찾을 수 없습니다", @@ -506,7 +510,7 @@ }, "delay": { "label": "지연", - "delay": "지연 시간" + "delay": "지연" }, "wait_template": { "label": "대기", @@ -569,23 +573,55 @@ "hub": "연결 경유 대상", "firmware": "펌웨어: {version}", "device_unavailable": "기기 사용불가", - "entity_unavailable": "구성요소 사용불가" + "entity_unavailable": "구성요소 사용불가", + "no_area": "영역 없음" } }, "zha": { "caption": "ZHA", "description": "Zigbee 홈 자동화 네트워크 관리", "services": { - "reconfigure": "ZHA 장치를 다시 구성 합니다. (장치 복구). 장치에 문제가 있는 경우 사용해주세요. 장치가 배터리로 작동하는 경우, 이 서비스를 사용할 때 장치가 켜져있고 통신이 가능한 상태여야 합니다." + "reconfigure": "ZHA 장치를 다시 구성 합니다. (장치 복구). 장치에 문제가 있는 경우 사용해주세요. 장치가 배터리로 작동하는 경우, 이 서비스를 사용할 때 장치가 켜져있고 통신이 가능한 상태인지 확인해주세요." } }, "area_registry": { - "caption": "영역 등록", - "description": "집에 등록된 모든 영역" + "caption": "영역", + "description": "영역을 만들고 편집합니다", + "picker": { + "header": "영역 등록" + }, + "no_areas": "등록된 영역이 없습니다. 거실, 침실과 같이 영역을 등록해보세요!", + "create_area": "영역 만들기", + "editor": { + "default_name": "새로운 영역", + "delete": "삭제", + "update": "업데이트", + "create": "만들기" + } }, "entity_registry": { - "caption": "구성요소 등록", - "description": "모든 구성요소" + "caption": "구성요소", + "description": "등록된 구성요소를 편집합니다", + "picker": { + "header": "구성요소", + "unavailable": "(사용불가)" + }, + "editor": { + "unavailable": "이 구성요소는 현재 사용할 수 없습니다.", + "default_name": "새로운 영역", + "delete": "삭제", + "update": "업데이트" + } + }, + "person": { + "caption": "구성원", + "description": "Home Assistant 가 추적하는 구성원을 관리합니다", + "detail": { + "name": "이름", + "device_tracker_intro": "이 구성원에게 속한 장치를 선택해주세요.", + "device_tracker_picked": "추적 장치", + "device_tracker_pick": "추적 할 장치 선택" + } } }, "profile": { @@ -728,6 +764,29 @@ "abort": { "not_whitelisted": "이 컴퓨터는 허용 목록에 등록되어 있지 않습니다." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "사용자 이름", + "password": "비밀번호" + } + }, + "mfa": { + "data": { + "code": "2단계 인증 코드" + }, + "description": "2단계 인증 코드 및 신원을 확인하기 위해 기기에서 **{mfa_module_name}** 을(를) 열어주세요:" + } + }, + "error": { + "invalid_auth": "사용자 이름 또는 비밀번호가 잘못되었습니다", + "invalid_code": "잘못된 인증 코드" + }, + "abort": { + "login_expired": "세션이 만료되었습니다. 다시 로그인 해주세요." + } } } } @@ -769,7 +828,8 @@ "pick_card": "추가하려는 카드를 선택해주세요", "add": "카드 추가", "edit": "편집", - "delete": "삭제" + "delete": "삭제", + "move": "이동" }, "migrate": { "header": "설정이 호환되지 않습니다", @@ -872,7 +932,8 @@ "arm_home": "재실 경비", "arm_away": "외출 경비", "arm_night": "야간 경비", - "armed_custom_bypass": "사용자 우회" + "armed_custom_bypass": "사용자 우회", + "arm_custom_bypass": "사용자 우회" }, "automation": { "last_triggered": "최근 트리거 됨", diff --git a/translations/lb.json b/translations/lb.json index e25518ffea..e69fac9224 100644 --- a/translations/lb.json +++ b/translations/lb.json @@ -785,7 +785,7 @@ "invalid_code": "Ongëlten Authentifizéierungs Code" }, "abort": { - "login_expired": "Sessioun ofgelaf, verbannt iech rëm frësch." + "login_expired": "Sessioun ofgelaaf, log dech rëm frësch an w.e.g." } } } diff --git a/translations/nb.json b/translations/nb.json index 22a2344315..81bfd66a81 100644 --- a/translations/nb.json +++ b/translations/nb.json @@ -728,6 +728,11 @@ "abort": { "not_whitelisted": "Datamaskinen din er ikke hvitlistet." } + }, + "command_line": { + "abort": { + "login_expired": "Økten er utløpt, vennligst logg inn på nytt" + } } } } diff --git a/translations/nl.json b/translations/nl.json index 09f08dfc3d..3bd99c6947 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -728,6 +728,11 @@ "abort": { "not_whitelisted": "Uw computer staat niet op de whitelist." } + }, + "command_line": { + "abort": { + "login_expired": "Sessie verlopen, meldt u opnieuw aan." + } } } } diff --git a/translations/pl.json b/translations/pl.json index 7fbe47dd74..ad648038c5 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -434,7 +434,7 @@ "webhook_id": "Identyfikator Webhook" }, "time_pattern": { - "label": "Szablon czasu ", + "label": "Szablon czasu", "hours": "Godziny", "minutes": "Minuty", "seconds": "Sekundy" @@ -579,7 +579,7 @@ }, "zha": { "caption": "ZHA", - "description": "Zarządzanie siecią ZigBee Home Automation", + "description": "Zarządzanie siecią automatyki domowej ZigBee", "services": { "reconfigure": "Ponowna konfiguracja urządzenia ZHA (uzdrawianie urządzenia). Użyj tej usługi, jeśli masz problemy z urządzeniem. Jeśli urządzenie jest zasilane bateryjnie, upewnij się, że nie jest uśpione i przyjmie polecenie rekonfiguracji." } @@ -932,7 +932,8 @@ "arm_home": "Uzbrojenie (w domu)", "arm_away": "Uzbrojenie (nieobecny)", "arm_night": "Uzbrojenie (noc)", - "armed_custom_bypass": "Uzbrój (częściowo)" + "armed_custom_bypass": "Uzbrój (częściowo)", + "arm_custom_bypass": "Niestandardowy bypass" }, "automation": { "last_triggered": "Ostatnie uruchomienie", diff --git a/translations/pt-BR.json b/translations/pt-BR.json index 428951e43c..82552351ad 100644 --- a/translations/pt-BR.json +++ b/translations/pt-BR.json @@ -703,6 +703,11 @@ "abort": { "not_whitelisted": "Seu computador não está na lista de permissões." } + }, + "command_line": { + "abort": { + "login_expired": "Sessão expirada, por favor fazer o login novamente." + } } } } diff --git a/translations/pt.json b/translations/pt.json index fca1749d38..b157e77fca 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -346,7 +346,11 @@ }, "customize": { "caption": "Personalização", - "description": "Personalizar as suas entidades" + "description": "Personalizar as suas entidades", + "picker": { + "header": "Personalização", + "introduction": "Ajustar atributos por entidade. Personalizações acrescentadas\/editadas terão efeitos imediatos. Remoção de personalizaçõe terão efeito quando a entidade for actualizada." + } }, "automation": { "caption": "Automação", @@ -569,19 +573,55 @@ "hub": "Ligado via", "firmware": "Firmware: {version}", "device_unavailable": "Dispositivo indisponível", - "entity_unavailable": "Entidade indisponível" + "entity_unavailable": "Entidade indisponível", + "no_area": "Nenhuma área" } }, "zha": { - "caption": "ZHA" + "caption": "ZHA", + "description": "Gestão de rede Zigbee Home Automation", + "services": { + "reconfigure": "Reconfigure o dispositivo ZHA (curar dispositivo). Use isto se estiver a ter problemas com o dispositivo. Se o dispositivo em questão for um dispositivo alimentado por bateria, certifique-se de que ele está ativo e a aceitar comandos ao usar este serviço." + } }, "area_registry": { "caption": "Registo de áreas", - "description": "Visão geral de todas as áreas da sua casa." + "description": "Visão geral de todas as áreas da sua casa.", + "picker": { + "header": "Registo de áreas" + }, + "no_areas": "Parece que ainda não tem áreas!", + "create_area": "CRIAR ÁREA", + "editor": { + "default_name": "Nova área", + "delete": "APAGAR", + "update": "ACTUALIZAR", + "create": "CRIAR" + } }, "entity_registry": { "caption": "Registo de Entidades", - "description": "Visão geral de todas as entidades conhecidas." + "description": "Visão geral de todas as entidades conhecidas.", + "picker": { + "header": "Registo de Entidades", + "unavailable": "(indisponível)" + }, + "editor": { + "unavailable": "Esta entidade não está atualmente disponível.", + "default_name": "Nova área", + "delete": "APAGAR", + "update": "ACTUALIZAR" + } + }, + "person": { + "caption": "Pessoas", + "description": "Gerir as que pessoas que o Home Assistant segue.", + "detail": { + "name": "Nome", + "device_tracker_intro": "Selecione os dispositivos que pertencem a esta pessoa.", + "device_tracker_picked": "Seguir dispositivo", + "device_tracker_pick": "Escolha o dispositivo a seguir" + } } }, "profile": { @@ -724,6 +764,29 @@ "abort": { "not_whitelisted": "O seu computador não está na lista de endereços permitidos." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Utilizador", + "password": "Palavra-passe" + } + }, + "mfa": { + "data": { + "code": "Código de autenticações por dois factores" + }, + "description": "Abrir **{mfa_module_name}** no seu dispositivo para ver o código de autenticação por dois factores e verificar a sua identidade:" + } + }, + "error": { + "invalid_auth": "Nome de utilizador ou palavra-passe inválidos", + "invalid_code": "Código de autenticação inválido" + }, + "abort": { + "login_expired": "Sessão expirou, por favor entre novamente." + } } } } @@ -753,6 +816,7 @@ }, "empty_state": { "title": "Bem-vindo a casa", + "no_devices": "Esta página permite-lhe controlar os seus dispositivos, no entanto, parece que ainda não tem dispositivos configurados. Vá para a página de integrações para começar.", "go_to_integrations_page": "Ir para a página das integrações." } }, @@ -764,7 +828,8 @@ "pick_card": "Escolha o cartão que deseja adicionar.", "add": "Adicionar Cartão", "edit": "Editar", - "delete": "Apagar" + "delete": "Apagar", + "move": "Mover" }, "migrate": { "header": "Configuração Incompatível", @@ -785,6 +850,9 @@ "para_sure": "Tem certeza que deseja assumir o controle sobre a interface de utilizador?", "cancel": "Cancelar", "save": "Assumir o controle" + }, + "menu": { + "raw_editor": "Editor de configuração fonte." } }, "menu": { @@ -864,7 +932,8 @@ "arm_home": "Armado casa", "arm_away": "Armado ausente", "arm_night": "Armado noite", - "armed_custom_bypass": "Desvio personalizado" + "armed_custom_bypass": "Desvio personalizado", + "arm_custom_bypass": "bypass personalizado" }, "automation": { "last_triggered": "Última ocorrência", @@ -969,10 +1038,10 @@ "sun": { "elevation": "Elevação", "rising": "Nascer do sol", - "setting": "Por do sol" + "setting": "Pôr do sol" }, "updater": { - "title": "Instruções de atualização" + "title": "Instruções para atualização" } } }, @@ -1028,7 +1097,7 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Integridade Do Sistema" + "system_health": "Saúde do sistema" }, "attribute": { "weather": { diff --git a/translations/ro.json b/translations/ro.json index 29e86406b3..b132544f30 100644 --- a/translations/ro.json +++ b/translations/ro.json @@ -694,6 +694,11 @@ "abort": { "not_whitelisted": "Calculatorul dvs. nu este pe lista albă." } + }, + "command_line": { + "abort": { + "login_expired": "Sesiunea a expirat, va rugam logati-va din nou." + } } } } diff --git a/translations/ru.json b/translations/ru.json index ad4be26502..78ec3f9548 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -932,7 +932,8 @@ "arm_home": "Охрана (дома)", "arm_away": "Охрана (не дома)", "arm_night": "Ночная охрана", - "armed_custom_bypass": "Охрана с исключениями" + "armed_custom_bypass": "Охрана с исключениями", + "arm_custom_bypass": "Охрана с исключениями" }, "automation": { "last_triggered": "Последний запуск", @@ -1002,7 +1003,7 @@ }, "relative_time": { "past": "{time} назад", - "future": "через {time}", + "future": "{time} назад", "never": "Никогда", "duration": { "second": "{count} {count, plural,\n one {сек.}\n other {сек.}\n}", diff --git a/translations/sk.json b/translations/sk.json index 12eb45a830..fb95af3cb3 100644 --- a/translations/sk.json +++ b/translations/sk.json @@ -346,7 +346,10 @@ }, "customize": { "caption": "Prispôsobenie", - "description": "Prispôsobte svoje entity" + "description": "Prispôsobte svoje entity", + "picker": { + "header": "Prispôsobenie" + } }, "automation": { "caption": "Automatizácie", @@ -568,7 +571,8 @@ "hub": "Pripojené cez", "firmware": "Firmvér: {version}", "device_unavailable": "zariadenie nie je k dispozícii", - "entity_unavailable": "entita nie je k dispozícii" + "entity_unavailable": "entita nie je k dispozícii", + "no_area": "Žiadna oblasť" } }, "zha": { @@ -577,11 +581,42 @@ }, "area_registry": { "caption": "Register oblastí", - "description": "Prehľad všetkých oblastí vo vašej domácnosti." + "description": "Prehľad všetkých oblastí vo vašej domácnosti.", + "picker": { + "header": "Register oblastí" + }, + "no_areas": "Vyzerá to, že ešte nemáte žiadne oblasti!", + "create_area": "VYTVORIŤ OBLASŤ", + "editor": { + "default_name": "Nová oblasť", + "delete": "VYMAZAŤ", + "update": "AKTUALIZOVAŤ", + "create": "VYTVORIŤ" + } }, "entity_registry": { "caption": "Register entít", - "description": "Prehľad všetkých známych entít." + "description": "Prehľad všetkých známych entít.", + "picker": { + "header": "Register entít", + "unavailable": "(nedostupné)" + }, + "editor": { + "unavailable": "Táto entita nie je momentálne k dispozícii.", + "default_name": "Nová oblasť", + "delete": "VYMAZAŤ", + "update": "AKTUALIZOVAŤ" + } + }, + "person": { + "caption": "Osoby", + "description": "Spravujte osoby, ktoré Home Assistant sleduje.", + "detail": { + "name": "Meno", + "device_tracker_intro": "Vyberte zariadenia, ktoré patria tejto osobe.", + "device_tracker_picked": "Sledovať zariadenie", + "device_tracker_pick": "Vyberte zariadenie na sledovanie" + } } }, "profile": { @@ -724,6 +759,28 @@ "abort": { "not_whitelisted": "Váš počítač nie je v zozname povolených zariadení." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Používateľské meno", + "password": "Heslo" + } + }, + "mfa": { + "data": { + "code": "Dvojfaktorový autentifikačný kód" + } + } + }, + "error": { + "invalid_auth": "Nesprávne používateľske meno alebo heslo", + "invalid_code": "Nesprávny autentifikačný kód" + }, + "abort": { + "login_expired": "Relácia vypršala, prihlásťe sa prosím znova" + } } } } @@ -764,7 +821,8 @@ "pick_card": "Vyberte kartu, ktorú chcete pridať.", "add": "Pridať kartu", "edit": "Upraviť", - "delete": "Odstrániť" + "delete": "Odstrániť", + "move": "Presunúť" }, "migrate": { "header": "Nekompatibilná konfigurácia", @@ -785,6 +843,9 @@ "para_sure": "Skutočne chcete prevziať kontrolu vášho používateľského rozhrania?", "cancel": "Zrušiť", "save": "Prevziať kontrolu" + }, + "menu": { + "raw_editor": "Raw editor konfigurácie" } }, "menu": { diff --git a/translations/sl.json b/translations/sl.json index 4c1bc01dc5..d84a9c9491 100644 --- a/translations/sl.json +++ b/translations/sl.json @@ -301,7 +301,8 @@ "period": "Obdobje" }, "logbook": { - "showing_entries": "Prikaz vnosov za" + "showing_entries": "Prikaz vnosov za", + "period": "Obdobje" }, "mailbox": { "empty": "Nimate sporočil", @@ -345,7 +346,11 @@ }, "customize": { "caption": "Prilagajanje", - "description": "Prilagodite svoje entitete" + "description": "Prilagodite svoje entitete", + "picker": { + "header": "Prilagajanje", + "introduction": "Prilagajanja atributov na subjektu. Dodane\/spremenjene prilagoditve začnejo veljati takoj. Odstranjene pa po posodobitvi subjekta." + } }, "automation": { "caption": "Avtomatizacija", @@ -433,6 +438,14 @@ "hours": "Ur", "minutes": "Minut", "seconds": "Sekund" + }, + "geo_location": { + "label": "Geolokacija", + "source": "Vir", + "zone": "Območje", + "event": "Dogodek:", + "enter": "Vnesite", + "leave": "Odidi" } } }, @@ -560,12 +573,55 @@ "hub": "Povezan prek", "firmware": "Firmware: {version}", "device_unavailable": "naprava ni na voljo", - "entity_unavailable": "subjekt ni na voljo" + "entity_unavailable": "subjekt ni na voljo", + "no_area": "Brez območja" } }, "zha": { "caption": "ZHA", - "description": "Upravljanje omrežja za avtomatizacijo doma Zigbee" + "description": "Upravljanje omrežja za avtomatizacijo doma Zigbee", + "services": { + "reconfigure": "Ponovno konfigurirajte napravo ZHA (\"pozdravite\" napravo). To uporabite, če imate z njo težave. Če ta naprava deluje na baterije, se prepričajte, da je budna in sprejema ukaze pri uporabi te storitve." + } + }, + "area_registry": { + "caption": "Register območij", + "description": "Pregled vseh območij v vašem domu.", + "picker": { + "header": "Register območij" + }, + "no_areas": "Izgleda, da še nimate območij!", + "create_area": "USTVARITE OBMOČJE", + "editor": { + "default_name": "Novo območje", + "delete": "BRISANJE", + "update": "POSODOBITEV", + "create": "USTVARITE" + } + }, + "entity_registry": { + "caption": "Register subjekta", + "description": "Pregled vseh znanih subjektov.", + "picker": { + "header": "Register subjekta", + "unavailable": "(ni na voljo)" + }, + "editor": { + "unavailable": "Ta entiteta trenutno ni na voljo.", + "default_name": "Novo območje", + "delete": "BRISANJE", + "update": "POSODOBITEV" + } + }, + "person": { + "caption": "Osebe", + "description": "Upravljajte osebe, ki jih sledi Home Assistant.", + "detail": { + "name": "Ime", + "device_tracker_intro": "Izberite naprave, ki pripadajo tej osebi.", + "device_tracker_picked": "Sledi Napravi", + "device_tracker_pick": "Izberite napravo za sledenje" + } } }, "profile": { @@ -708,6 +764,29 @@ "abort": { "not_whitelisted": "Vaš računalnik ni dodan med zaupanja vredne." } + }, + "command_line": { + "step": { + "init": { + "data": { + "username": "Uporabniško ime", + "password": "Geslo" + } + }, + "mfa": { + "data": { + "code": "Dvofaktorska koda za avtorizacijo" + }, + "description": "V svoji napravi odprite **{mfa_module_name}**, da si ogledate svojo dvofaktorsko kodo za preverjanje pristnosti in preverite svojo identiteto:" + } + }, + "error": { + "invalid_auth": "Neveljavno uporabniško ime ali geslo", + "invalid_code": "Neveljavna avtorizacijska koda" + }, + "abort": { + "login_expired": "Seja je potekla, prosimo, prijavite se znova." + } } } } @@ -734,6 +813,11 @@ "checked_items": "Označeni predmeti", "clear_items": "Počisti označene elemente", "add_item": "Dodaj element" + }, + "empty_state": { + "title": "Dobrodošli Doma", + "no_devices": "Ta stran vam omogoča nadzor nad napravami, vendar je videti, da še niste nastavili nobenih naprav. Pojdite na stran za integracije, da začnete.", + "go_to_integrations_page": "Pojdite na stran za integracije." } }, "editor": { @@ -744,7 +828,8 @@ "pick_card": "Izberite kartico, ki jo želite dodati.", "add": "Dodaj kartico", "edit": "Uredi", - "delete": "Izbriši" + "delete": "Izbriši", + "move": "Premakni" }, "migrate": { "header": "Konfiguracija Nezdružljiva", @@ -765,10 +850,16 @@ "para_sure": "Ali ste prepričani, da želite prevzeti nadzor nad vašim vmesnikom?", "cancel": "Pozabi", "save": "Prevzemite nadzor" + }, + "menu": { + "raw_editor": "Urejevalnik konfiguracije" } }, "menu": { - "configure_ui": "Konfiguriraj UI" + "configure_ui": "Konfiguriraj UI", + "unused_entities": "Neuporabljeni subjekti", + "help": "Pomoč", + "refresh": "Osveži" } } }, @@ -841,7 +932,8 @@ "arm_home": "Vklopi doma", "arm_away": "Vklopi odsoten", "arm_night": "Vklopi nočni način", - "armed_custom_bypass": "Po meri" + "armed_custom_bypass": "Po meri", + "arm_custom_bypass": "Izjeme po meri" }, "automation": { "last_triggered": "Nazadnje sprožen", @@ -1001,7 +1093,11 @@ "weblink": "Spletna povezava", "zwave": "Z-Wave", "vacuum": "Sesam", - "zha": "ZHA" + "zha": "ZHA", + "hassio": "Hass.io", + "homeassistant": "Home Assistant", + "lovelace": "Lovelace", + "system_health": "Zdravje sistema" }, "attribute": { "weather": { diff --git a/translations/sv.json b/translations/sv.json index 756977e707..03010fcbb3 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -727,6 +727,11 @@ "abort": { "not_whitelisted": "Din dator är inte vitlistad" } + }, + "command_line": { + "abort": { + "login_expired": "Sessionen avslutades. Logga in igen." + } } } } diff --git a/translations/te.json b/translations/te.json index 8e41e921d5..439409d5f1 100644 --- a/translations/te.json +++ b/translations/te.json @@ -504,6 +504,11 @@ "abort": { "not_whitelisted": "మీ కంప్యూటర్ అనుమతి జాబితాలో లేదు." } + }, + "command_line": { + "abort": { + "login_expired": "సెషన్ గడువు ముగిసింది, మళ్ళీ లాగిన్ అవ్వండి." + } } } } diff --git a/translations/tr.json b/translations/tr.json index 6ee17e4501..48737568af 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -611,6 +611,11 @@ "description": "Lütfen giriş yapmak istediğiniz bir kullanıcı seçin:" } } + }, + "command_line": { + "abort": { + "login_expired": "Oturum süresi doldu, lütfen tekrar giriş yapın." + } } } } diff --git a/translations/uk.json b/translations/uk.json index 37bb91250f..7349d06d79 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -719,6 +719,11 @@ "abort": { "not_whitelisted": "Ваш комп'ютер не включений в білий список." } + }, + "command_line": { + "abort": { + "login_expired": "Сесія закінчилася, увійдіть знову." + } } } } diff --git a/translations/vi.json b/translations/vi.json index d1390ca2bb..d0280caffb 100644 --- a/translations/vi.json +++ b/translations/vi.json @@ -662,6 +662,11 @@ "abort": { "not_whitelisted": "Máy tính của bạn không nằm trong danh sách trắng." } + }, + "command_line": { + "abort": { + "login_expired": "Phiên làm việc đã hết hạn, vui lòng đăng nhập lại." + } } } } diff --git a/translations/zh-Hans.json b/translations/zh-Hans.json index 5acaaad1a5..3773b59259 100644 --- a/translations/zh-Hans.json +++ b/translations/zh-Hans.json @@ -721,6 +721,11 @@ "abort": { "not_whitelisted": "您的电脑不在白名单内。" } + }, + "command_line": { + "abort": { + "login_expired": "会话已过期,请重新登录。" + } } } }