mirror of
https://github.com/home-assistant/frontend.git
synced 2025-08-30 19:40:29 +00:00
Compare commits
3 Commits
template-e
...
attributes
Author | SHA1 | Date | |
---|---|---|---|
![]() |
39200b62d5 | ||
![]() |
0eb28ea733 | ||
![]() |
62d471888f |
@@ -1,13 +0,0 @@
|
||||
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.148.1/containers/python-3/.devcontainer/base.Dockerfile
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/python:0-3.9
|
||||
|
||||
ENV \
|
||||
DEBIAN_FRONTEND=noninteractive \
|
||||
DEVCONTAINER=true \
|
||||
PATH=$PATH:./node_modules/.bin
|
||||
|
||||
# Install nvm
|
||||
COPY .nvmrc /tmp/.nvmrc
|
||||
RUN \
|
||||
su vscode -c \
|
||||
"source /usr/local/share/nvm/nvm.sh && nvm install $(cat /tmp/.nvmrc) 2>&1"
|
@@ -1,31 +0,0 @@
|
||||
{
|
||||
"name": "Home Assistant Frontend",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"context": ".."
|
||||
},
|
||||
"appPort": 8123,
|
||||
"context": "..",
|
||||
"postCreateCommand": "script/bootstrap",
|
||||
"extensions": [
|
||||
"github.vscode-pull-request-github",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||
"esbenp.prettier-vscode",
|
||||
"bierner.lit-html",
|
||||
"runem.lit-plugin",
|
||||
"ms-python.vscode-pylance"
|
||||
],
|
||||
"settings": {
|
||||
"terminal.integrated.shell.linux": "/bin/bash",
|
||||
"files.eol": "\n",
|
||||
"editor.tabSize": 2,
|
||||
"editor.formatOnPaste": false,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnType": true,
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
},
|
||||
"files.trimTrailingWhitespace": true
|
||||
}
|
||||
}
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -35,6 +35,3 @@ yarn-error.log
|
||||
|
||||
#asdf
|
||||
.tool-versions
|
||||
|
||||
# Home Assistant config
|
||||
/config
|
||||
|
71
.vscode/tasks.json
vendored
71
.vscode/tasks.json
vendored
@@ -37,37 +37,6 @@
|
||||
"instanceLimit": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Develop Supervisor panel",
|
||||
"type": "gulp",
|
||||
"task": "develop-hassio",
|
||||
"problemMatcher": {
|
||||
"owner": "ha-build",
|
||||
"source": "ha-build",
|
||||
"fileLocation": "absolute",
|
||||
"severity": "error",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "(SyntaxError): (.+): (.+) \\((\\d+):(\\d+)\\)",
|
||||
"severity": 1,
|
||||
"file": 2,
|
||||
"message": 3,
|
||||
"line": 4,
|
||||
"column": 5
|
||||
}
|
||||
],
|
||||
"background": {
|
||||
"activeOnStart": true,
|
||||
"beginsPattern": "Changes detected. Starting compilation",
|
||||
"endsPattern": "Build done @"
|
||||
}
|
||||
},
|
||||
"isBackground": true,
|
||||
"group": "build",
|
||||
"runOptions": {
|
||||
"instanceLimit": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Develop Gallery",
|
||||
"type": "gulp",
|
||||
@@ -164,45 +133,5 @@
|
||||
"instanceLimit": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Run HA Core in devcontainer",
|
||||
"type": "shell",
|
||||
"command": "script/core",
|
||||
"isBackground": true,
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"runOptions": {
|
||||
"instanceLimit": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"label": "Run HA Core for Supervisor in devcontainer",
|
||||
"type": "shell",
|
||||
"command": "HASSIO=${input:supervisorHost} HASSIO_TOKEN=${input:supervisorToken} script/core",
|
||||
"isBackground": true,
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"problemMatcher": [],
|
||||
"runOptions": {
|
||||
"instanceLimit": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"inputs": [
|
||||
{
|
||||
"id": "supervisorHost",
|
||||
"type": "promptString",
|
||||
"description": "The IP of the Supervisor host running the Remote API proxy add-on"
|
||||
},
|
||||
{
|
||||
"id": "supervisorToken",
|
||||
"type": "promptString",
|
||||
"description": "The token for the Remote API proxy add-on"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@@ -7,8 +7,6 @@ import "../components/demo-cards";
|
||||
|
||||
const ENTITIES = [
|
||||
getEntity("sensor", "brightness", "12", {}),
|
||||
getEntity("sensor", "brightness_medium", "53", {}),
|
||||
getEntity("sensor", "brightness_high", "87", {}),
|
||||
getEntity("plant", "bonsai", "ok", {}),
|
||||
getEntity("sensor", "not_working", "unavailable", {}),
|
||||
getEntity("sensor", "outside_humidity", "54", {
|
||||
@@ -23,10 +21,16 @@ const CONFIGS = [
|
||||
{
|
||||
heading: "Basic example",
|
||||
config: `
|
||||
- type: gauge
|
||||
entity: sensor.brightness
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "With title",
|
||||
config: `
|
||||
- type: gauge
|
||||
title: Humidity
|
||||
entity: sensor.outside_humidity
|
||||
name: Outside Humidity
|
||||
`,
|
||||
},
|
||||
{
|
||||
@@ -35,7 +39,6 @@ const CONFIGS = [
|
||||
- type: gauge
|
||||
entity: sensor.outside_temperature
|
||||
unit_of_measurement: C
|
||||
name: Outside Temperature
|
||||
`,
|
||||
},
|
||||
{
|
||||
@@ -43,45 +46,19 @@ const CONFIGS = [
|
||||
config: `
|
||||
- type: gauge
|
||||
entity: sensor.brightness
|
||||
name: Brightness Low
|
||||
severity:
|
||||
red: 75
|
||||
red: 32
|
||||
green: 0
|
||||
yellow: 50
|
||||
yellow: 23
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "Setting Severity Levels",
|
||||
config: `
|
||||
- type: gauge
|
||||
entity: sensor.brightness_medium
|
||||
name: Brightness Medium
|
||||
severity:
|
||||
red: 75
|
||||
green: 0
|
||||
yellow: 50
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "Setting Severity Levels",
|
||||
config: `
|
||||
- type: gauge
|
||||
entity: sensor.brightness_high
|
||||
name: Brightness High
|
||||
severity:
|
||||
red: 75
|
||||
green: 0
|
||||
yellow: 50
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "Setting Min (0) and Max (15) Values",
|
||||
heading: "Setting Min and Max Values",
|
||||
config: `
|
||||
- type: gauge
|
||||
entity: sensor.brightness
|
||||
name: Brightness
|
||||
min: 0
|
||||
max: 15
|
||||
max: 38
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@@ -8,43 +8,29 @@ import "../components/demo-cards";
|
||||
const ENTITIES = [
|
||||
getEntity("light", "bed_light", "on", {
|
||||
friendly_name: "Bed Light",
|
||||
brightness: 255,
|
||||
brightness: 130,
|
||||
}),
|
||||
getEntity("light", "dim_on", "on", {
|
||||
friendly_name: "Dining Room",
|
||||
supported_features: 1,
|
||||
brightness: 100,
|
||||
}),
|
||||
getEntity("light", "dim_off", "off", {
|
||||
friendly_name: "Dining Room",
|
||||
getEntity("light", "dim", "off", {
|
||||
supported_features: 1,
|
||||
}),
|
||||
getEntity("light", "unavailable", "unavailable", {
|
||||
friendly_name: "Lost Light",
|
||||
supported_features: 1,
|
||||
}),
|
||||
];
|
||||
|
||||
const CONFIGS = [
|
||||
{
|
||||
heading: "Switchable Light",
|
||||
heading: "Basic example",
|
||||
config: `
|
||||
- type: light
|
||||
entity: light.bed_light
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "Dimmable Light On",
|
||||
heading: "Dim",
|
||||
config: `
|
||||
- type: light
|
||||
entity: light.dim_on
|
||||
`,
|
||||
},
|
||||
{
|
||||
heading: "Dimmable Light Off",
|
||||
config: `
|
||||
- type: light
|
||||
entity: light.dim_off
|
||||
entity: light.dim
|
||||
`,
|
||||
},
|
||||
{
|
||||
|
@@ -90,6 +90,7 @@
|
||||
"codemirror": "^5.49.0",
|
||||
"comlink": "^4.3.0",
|
||||
"core-js": "^3.6.5",
|
||||
"cpx": "^1.5.0",
|
||||
"cropperjs": "^1.5.7",
|
||||
"deep-clone-simple": "^1.1.1",
|
||||
"deep-freeze": "^0.0.1",
|
||||
@@ -161,7 +162,6 @@
|
||||
"@typescript-eslint/parser": "^4.4.0",
|
||||
"babel-loader": "^8.1.0",
|
||||
"chai": "^4.2.0",
|
||||
"cpx": "^1.5.0",
|
||||
"del": "^4.0.0",
|
||||
"eslint": "^6.8.0",
|
||||
"eslint-config-airbnb-typescript": "^7.2.1",
|
||||
|
55
script/core
55
script/core
@@ -1,55 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Helper to start Home Assistant Core inside the devcontainer
|
||||
|
||||
# Stop on errors
|
||||
set -e
|
||||
|
||||
if [ -z "${DEVCONTAINER}" ]; then
|
||||
echo "This task should only run inside a devcontainer, for local install HA Core in a venv."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -z "${CODESPACES}" ]; then
|
||||
WORKSPACE="/root/workspace/frontend"
|
||||
else
|
||||
WORKSPACE="/workspaces/frontend"
|
||||
fi
|
||||
|
||||
if [ -z $(which hass) ]; then
|
||||
echo "Installing Home Asstant core from dev."
|
||||
python3 -m pip install --upgrade \
|
||||
colorlog \
|
||||
git+git://github.com/home-assistant/home-assistant.git@dev
|
||||
fi
|
||||
|
||||
if [ ! -d "${WORKSPACE}/config" ]; then
|
||||
echo "Creating default configuration."
|
||||
mkdir -p "${WORKSPACE}/config";
|
||||
hass --script ensure_config -c config
|
||||
echo "demo:
|
||||
|
||||
logger:
|
||||
default: info
|
||||
logs:
|
||||
homeassistant.components.frontend: debug
|
||||
" >> "${WORKSPACE}/config/configuration.yaml"
|
||||
|
||||
if [ ! -z "${HASSIO}" ]; then
|
||||
echo "
|
||||
# frontend:
|
||||
# development_repo: ${WORKSPACE}
|
||||
|
||||
hassio:
|
||||
development_repo: ${WORKSPACE}" >> "${WORKSPACE}/config/configuration.yaml"
|
||||
else
|
||||
echo "
|
||||
frontend:
|
||||
development_repo: ${WORKSPACE}
|
||||
|
||||
# hassio:
|
||||
# development_repo: ${WORKSPACE}" >> "${WORKSPACE}/config/configuration.yaml"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
hass -c "${WORKSPACE}/config"
|
@@ -77,11 +77,6 @@ export const domainIcon = (
|
||||
return "hass:calendar";
|
||||
}
|
||||
break;
|
||||
|
||||
case "sun":
|
||||
return stateObj?.state === "above_horizon"
|
||||
? FIXED_DOMAIN_ICONS[domain]
|
||||
: "hass:weather-night";
|
||||
}
|
||||
|
||||
if (domain in FIXED_DOMAIN_ICONS) {
|
||||
|
@@ -1,3 +1,4 @@
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
import { mdiClose, mdiMenuDown, mdiMenuUp } from "@mdi/js";
|
||||
import "@polymer/paper-input/paper-input";
|
||||
import "@polymer/paper-item/paper-item";
|
||||
@@ -14,13 +15,14 @@ import {
|
||||
query,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import memoizeOne from "memoize-one";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import { computeDomain } from "../../common/entity/compute_domain";
|
||||
import { PolymerChangedEvent } from "../../polymer-types";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { formatAttributeName } from "../../util/hass-attributes-util";
|
||||
import "../ha-svg-icon";
|
||||
import "./state-badge";
|
||||
import { formatAttributeName } from "../../util/hass-attributes-util";
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
|
||||
export type HaEntityPickerEntityFilterFunc = (entityId: HassEntity) => boolean;
|
||||
|
||||
@@ -41,6 +43,41 @@ const rowRenderer = (root: HTMLElement, _owner, model: { item: string }) => {
|
||||
);
|
||||
};
|
||||
|
||||
const SELECTABLE_ATTRIBUTES: { [key: string]: string[] } = {
|
||||
light: ["brightness"],
|
||||
climate: [
|
||||
"current_temperature",
|
||||
"fan_mode",
|
||||
"preset_mode",
|
||||
"swing_mode",
|
||||
"temperature",
|
||||
"current_hundity",
|
||||
"humidity",
|
||||
"hvac_action",
|
||||
],
|
||||
fan: ["speed"],
|
||||
air_quality: [
|
||||
"nitrogen_oxide",
|
||||
"particulate_matter_10",
|
||||
"particulate_matter_2_5",
|
||||
],
|
||||
cover: ["current_position", "current_tilt_position"],
|
||||
device_tracker: ["battery"],
|
||||
humidifier: ["humidty"],
|
||||
media_player: ["media_title"],
|
||||
vacuum: ["battery_level", "status"],
|
||||
water_heater: ["current_temperature", "temperature", "operation_mode"],
|
||||
weather: [
|
||||
"temperature",
|
||||
"humidity",
|
||||
"ozone",
|
||||
"pressure",
|
||||
"wind_bearing",
|
||||
"wind_speed",
|
||||
"visibility",
|
||||
],
|
||||
};
|
||||
|
||||
@customElement("ha-entity-attribute-picker")
|
||||
class HaEntityAttributePicker extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
@@ -68,9 +105,8 @@ class HaEntityAttributePicker extends LitElement {
|
||||
|
||||
protected updated(changedProps: PropertyValues) {
|
||||
if (changedProps.has("_opened") && this._opened) {
|
||||
const state = this.entityId ? this.hass.states[this.entityId] : undefined;
|
||||
(this._comboBox as any).items = state
|
||||
? Object.keys(state.attributes)
|
||||
(this._comboBox as any).items = this.entityId
|
||||
? this._selectableAttributes(this.entityId)
|
||||
: [];
|
||||
}
|
||||
}
|
||||
@@ -85,7 +121,6 @@ class HaEntityAttributePicker extends LitElement {
|
||||
.value=${this._value}
|
||||
.allowCustomValue=${this.allowCustomValue}
|
||||
.renderer=${rowRenderer}
|
||||
attr-for-value="bind-value"
|
||||
@opened-changed=${this._openedChanged}
|
||||
@value-changed=${this._valueChanged}
|
||||
>
|
||||
@@ -137,6 +172,17 @@ class HaEntityAttributePicker extends LitElement {
|
||||
`;
|
||||
}
|
||||
|
||||
private _selectableAttributes = memoizeOne((entity: string) => {
|
||||
const stateObj = this.hass.states[entity];
|
||||
if (!stateObj) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return Object.keys(stateObj.attributes).filter((attr) =>
|
||||
SELECTABLE_ATTRIBUTES[computeDomain(entity)].includes(attr)
|
||||
);
|
||||
});
|
||||
|
||||
private _clearValue(ev: Event) {
|
||||
ev.stopPropagation();
|
||||
this._setValue("");
|
||||
|
@@ -154,8 +154,11 @@ export class HaStateLabelBadge extends LitElement {
|
||||
case "device_tracker":
|
||||
case "updater":
|
||||
case "person":
|
||||
case "sun":
|
||||
return stateIcon(state);
|
||||
case "sun":
|
||||
return state.state === "above_horizon"
|
||||
? domainIcon(domain)
|
||||
: "hass:brightness-3";
|
||||
case "timer":
|
||||
return state.state === "active"
|
||||
? "hass:timer-outline"
|
||||
|
@@ -2,22 +2,6 @@ import "@vaadin/vaadin-date-picker/theme/material/vaadin-date-picker";
|
||||
|
||||
const VaadinDatePicker = customElements.get("vaadin-date-picker");
|
||||
|
||||
const documentContainer = document.createElement("template");
|
||||
documentContainer.setAttribute("style", "display: none;");
|
||||
documentContainer.innerHTML = `
|
||||
<dom-module id="ha-date-input-styles" theme-for="vaadin-text-field">
|
||||
<template>
|
||||
<style>
|
||||
[part="input-field"] {
|
||||
top: 2px;
|
||||
height: 30px;
|
||||
}
|
||||
</style>
|
||||
</template>
|
||||
</dom-module>
|
||||
`;
|
||||
document.head.appendChild(documentContainer.content);
|
||||
|
||||
export class HaDateInput extends VaadinDatePicker {
|
||||
constructor() {
|
||||
super();
|
||||
|
@@ -14,7 +14,7 @@ class HaLabeledSlider extends PolymerElement {
|
||||
}
|
||||
|
||||
.title {
|
||||
margin: 5px 0 8px;
|
||||
margin: 4px 0 8px;
|
||||
color: var(--primary-text-color);
|
||||
}
|
||||
|
||||
|
@@ -22,10 +22,7 @@ import {
|
||||
AreaRegistryEntry,
|
||||
subscribeAreaRegistry,
|
||||
} from "../../data/area_registry";
|
||||
import type {
|
||||
DataEntryFlowProgressedEvent,
|
||||
DataEntryFlowStep,
|
||||
} from "../../data/data_entry_flow";
|
||||
import type { DataEntryFlowStep } from "../../data/data_entry_flow";
|
||||
import {
|
||||
DeviceRegistryEntry,
|
||||
subscribeDeviceRegistry,
|
||||
@@ -227,19 +224,6 @@ class DataEntryFlowDialog extends LitElement {
|
||||
|
||||
protected firstUpdated(changedProps: PropertyValues) {
|
||||
super.firstUpdated(changedProps);
|
||||
this.hass.connection.subscribeEvents<DataEntryFlowProgressedEvent>(
|
||||
async (ev) => {
|
||||
if (ev.data.flow_id !== this._step?.flow_id) {
|
||||
return;
|
||||
}
|
||||
const step = await this._params!.flowConfig.fetchFlow(
|
||||
this.hass,
|
||||
this._step?.flow_id
|
||||
);
|
||||
this._processStep(step);
|
||||
},
|
||||
"data_entry_flow_progressed"
|
||||
);
|
||||
this.addEventListener("flow-update", (ev) => {
|
||||
const { step, stepPromise } = (ev as any).detail;
|
||||
this._processStep(step || stepPromise);
|
||||
|
@@ -162,11 +162,7 @@ export const showConfigFlowDialog = (
|
||||
},
|
||||
|
||||
renderShowFormProgressHeader(hass, step) {
|
||||
return (
|
||||
hass.localize(
|
||||
`component.${step.handler}.config.step.${step.step_id}.title`
|
||||
) || hass.localize(`component.${step.handler}.title`)
|
||||
);
|
||||
return hass.localize(`component.${step.handler}.title`);
|
||||
},
|
||||
|
||||
renderShowFormProgressDescription(hass, step) {
|
||||
|
@@ -8,7 +8,11 @@ import {
|
||||
property,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { DataEntryFlowStepExternal } from "../../data/data_entry_flow";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import {
|
||||
DataEntryFlowProgressedEvent,
|
||||
DataEntryFlowStepExternal,
|
||||
} from "../../data/data_entry_flow";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { FlowConfig } from "./show-dialog-data-entry-flow";
|
||||
import { configFlowContentStyles } from "./styles";
|
||||
@@ -47,6 +51,18 @@ class StepFlowExternal extends LitElement {
|
||||
|
||||
protected firstUpdated(changedProps) {
|
||||
super.firstUpdated(changedProps);
|
||||
this.hass.connection.subscribeEvents<DataEntryFlowProgressedEvent>(
|
||||
async (ev) => {
|
||||
if (ev.data.flow_id !== this.step.flow_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
fireEvent(this, "flow-update", {
|
||||
stepPromise: this.flowConfig.fetchFlow(this.hass, this.step.flow_id),
|
||||
});
|
||||
},
|
||||
"data_entry_flow_progressed"
|
||||
);
|
||||
window.open(this.step.url);
|
||||
}
|
||||
|
||||
|
@@ -8,8 +8,12 @@ import {
|
||||
property,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import "../../components/ha-circular-progress";
|
||||
import { DataEntryFlowStepProgress } from "../../data/data_entry_flow";
|
||||
import {
|
||||
DataEntryFlowProgressedEvent,
|
||||
DataEntryFlowStepProgress,
|
||||
} from "../../data/data_entry_flow";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { FlowConfig } from "./show-dialog-data-entry-flow";
|
||||
import { configFlowContentStyles } from "./styles";
|
||||
@@ -39,6 +43,22 @@ class StepFlowProgress extends LitElement {
|
||||
`;
|
||||
}
|
||||
|
||||
protected firstUpdated(changedProps) {
|
||||
super.firstUpdated(changedProps);
|
||||
this.hass.connection.subscribeEvents<DataEntryFlowProgressedEvent>(
|
||||
async (ev) => {
|
||||
if (ev.data.flow_id !== this.step.flow_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
fireEvent(this, "flow-update", {
|
||||
stepPromise: this.flowConfig.fetchFlow(this.hass, this.step.flow_id),
|
||||
});
|
||||
},
|
||||
"data_entry_flow_progressed"
|
||||
);
|
||||
}
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return [
|
||||
configFlowContentStyles,
|
||||
|
@@ -207,7 +207,6 @@ export class QuickBar extends LitElement {
|
||||
.item=${item}
|
||||
index=${ifDefined(index)}
|
||||
graphic="icon"
|
||||
class=${this._commandMode ? "command-item" : ""}
|
||||
>
|
||||
${item.iconPath
|
||||
? html`<ha-svg-icon
|
||||
@@ -527,9 +526,6 @@ export class QuickBar extends LitElement {
|
||||
|
||||
mwc-list-item {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
mwc-list-item.command-item {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
`,
|
||||
|
@@ -1,88 +0,0 @@
|
||||
import "../../panels/developer-tools/template/developer-tools-template";
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import "../../components/ha-code-editor";
|
||||
import "@material/mwc-list/mwc-list";
|
||||
import "@material/mwc-list/mwc-list-item";
|
||||
import {
|
||||
css,
|
||||
CSSResultArray,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
} from "lit-element";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import "../../components/ha-circular-progress";
|
||||
import "../../components/ha-dialog";
|
||||
import "../../components/ha-header-bar";
|
||||
import { haStyle } from "../../resources/styles";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import { TemplateEditorParams } from "./show-dialog-template-editor";
|
||||
|
||||
@customElement("ha-template-editor")
|
||||
export class TemplateEditor extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@internalProperty() private _opened = false;
|
||||
|
||||
@internalProperty() private _startingTemplate?: string;
|
||||
|
||||
public showDialog(params: TemplateEditorParams) {
|
||||
this._startingTemplate = `${params.startingTemplate}\n\n\n\n`;
|
||||
this._opened = true;
|
||||
}
|
||||
|
||||
public closeDialog() {
|
||||
this._opened = false;
|
||||
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||
}
|
||||
|
||||
protected render() {
|
||||
if (!this._opened) {
|
||||
return html``;
|
||||
}
|
||||
|
||||
return html`<ha-dialog
|
||||
.heading=${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.editor"
|
||||
)}
|
||||
open
|
||||
@closed=${this.closeDialog}
|
||||
hideActions
|
||||
>
|
||||
<div class="content">
|
||||
<developer-tools-template
|
||||
.narrow=${true}
|
||||
.hass=${this.hass}
|
||||
.simple=${true}
|
||||
.startingTemplate=${this._startingTemplate}
|
||||
></developer-tools-template>
|
||||
</div>
|
||||
</ha-dialog>`;
|
||||
}
|
||||
|
||||
static get styles(): CSSResultArray {
|
||||
return [
|
||||
haStyle,
|
||||
css`
|
||||
:host {
|
||||
width: 100%;
|
||||
--mdc-dialog-max-width: 700px;
|
||||
--mdc-dialog-min-width: 700px;
|
||||
--mdc-dialog-max-height: calc(100% - 72px);
|
||||
--mdc-dialog-min-height: 400px;
|
||||
--dialog-content-padding: 0px;
|
||||
--template-results-width: 100%;
|
||||
--mdc-dialog-content-ink-color: var(--primary-text-color);
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
"ha-template-editor": TemplateEditor;
|
||||
}
|
||||
}
|
@@ -1,21 +0,0 @@
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
|
||||
export interface TemplateEditorParams {
|
||||
startingTemplate?: string;
|
||||
}
|
||||
|
||||
export const loadTemplateEditor = () =>
|
||||
import(
|
||||
/* webpackChunkName: "template-editor-dialog" */ "./ha-template-editor"
|
||||
);
|
||||
|
||||
export const showTemplateEditor = (
|
||||
element: HTMLElement,
|
||||
dialogParams: TemplateEditorParams
|
||||
): void => {
|
||||
fireEvent(element, "show-dialog", {
|
||||
dialogTag: "ha-template-editor",
|
||||
dialogImport: loadTemplateEditor,
|
||||
dialogParams,
|
||||
});
|
||||
};
|
@@ -94,7 +94,6 @@ export class HaTimeCondition extends LitElement implements ConditionElement {
|
||||
.value=${after?.startsWith("input_datetime.") ? after : ""}
|
||||
@value-changed=${this._valueChanged}
|
||||
.hass=${this.hass}
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>`
|
||||
: html`<paper-input
|
||||
.label=${this.hass.localize(
|
||||
|
@@ -68,7 +68,6 @@ export class HaTimeTrigger extends LitElement implements TriggerElement {
|
||||
.value=${at?.startsWith("input_datetime.") ? at : ""}
|
||||
@value-changed=${this._valueChanged}
|
||||
.hass=${this.hass}
|
||||
allow-custom-entity
|
||||
></ha-entity-picker>`
|
||||
: html`<paper-input
|
||||
.label=${this.hass.localize(
|
||||
|
@@ -13,7 +13,6 @@ import {
|
||||
import { isComponentLoaded } from "../../../common/config/is_component_loaded";
|
||||
import "../../../components/ha-card";
|
||||
import "../../../components/ha-icon-next";
|
||||
import "../../../components/ha-svg-icon";
|
||||
import "../../../components/ha-menu-button";
|
||||
import { CloudStatus } from "../../../data/cloud";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
@@ -21,8 +20,7 @@ import { HomeAssistant } from "../../../types";
|
||||
import "../ha-config-section";
|
||||
import { configSections } from "../ha-panel-config";
|
||||
import "./ha-config-navigation";
|
||||
import { mdiClose, mdiCloudLock } from "@mdi/js";
|
||||
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
|
||||
import { mdiCloudLock } from "@mdi/js";
|
||||
|
||||
const CONF_HAPPENING = new Date() < new Date("2020-12-13T23:00:00Z");
|
||||
|
||||
@@ -71,22 +69,17 @@ class HaConfigDashboard extends LitElement {
|
||||
</ha-card>
|
||||
`
|
||||
: ""}
|
||||
${CONF_HAPPENING && !localStorage.dismissConf2020
|
||||
${CONF_HAPPENING
|
||||
? html`
|
||||
<ha-card class="conf-card">
|
||||
<a
|
||||
<ha-card class="conf-card"
|
||||
><a
|
||||
target="_blank"
|
||||
href="https://www.home-assistant.io/conference"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
<img src="/static/images/conference.png" />
|
||||
<div class="carrot"><ha-icon-next></ha-icon-next></div>
|
||||
</a>
|
||||
<ha-svg-icon
|
||||
.path=${mdiClose}
|
||||
@click=${this._dismissConference}
|
||||
></ha-svg-icon>
|
||||
</ha-card>
|
||||
<div class="carrot"><ha-icon-next></ha-icon-next></div></a
|
||||
></ha-card>
|
||||
`
|
||||
: ""}
|
||||
${Object.values(configSections).map(
|
||||
@@ -164,33 +157,6 @@ class HaConfigDashboard extends LitElement {
|
||||
`;
|
||||
}
|
||||
|
||||
private async _dismissConference() {
|
||||
if (
|
||||
await showConfirmationDialog(this, {
|
||||
title: "Home Assistant Conference",
|
||||
text: html`
|
||||
If you've
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://hopin.to/events/home-assistant-conference"
|
||||
rel="noopener noreferrer"
|
||||
>bought your ticket</a
|
||||
>
|
||||
or have
|
||||
<a
|
||||
target="_blank"
|
||||
href="https://www.youtube.com/watch?v=xSB_MuKkgxE"
|
||||
rel="noopener noreferrer"
|
||||
>subscribed to the livestream</a
|
||||
>, you might want to dismiss this banner. Do you want to continue?
|
||||
`,
|
||||
})
|
||||
) {
|
||||
localStorage.dismissConf2020 = "1";
|
||||
this.requestUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
static get styles(): CSSResultArray {
|
||||
return [
|
||||
haStyle,
|
||||
@@ -230,12 +196,6 @@ class HaConfigDashboard extends LitElement {
|
||||
align-items: center;
|
||||
color: white;
|
||||
}
|
||||
.conf-card ha-svg-icon {
|
||||
position: absolute;
|
||||
bottom: -4px;
|
||||
left: -4px;
|
||||
color: #a2cdf3;
|
||||
}
|
||||
.promo-advanced {
|
||||
text-align: center;
|
||||
color: var(--secondary-text-color);
|
||||
|
@@ -173,8 +173,6 @@ export class DialogEntityEditor extends LitElement {
|
||||
<div class="content">
|
||||
${this.hass.localize(
|
||||
"ui.dialogs.entity_registry.no_unique_id",
|
||||
"entity_id",
|
||||
this._params!.entity_id,
|
||||
"faq_link",
|
||||
html`<a
|
||||
href="${documentationUrl(this.hass, "/faq/unique_id")}"
|
||||
|
@@ -48,10 +48,6 @@ class HaPanelDevTemplate extends LitElement {
|
||||
|
||||
@property() public narrow!: boolean;
|
||||
|
||||
@property() public simple = false;
|
||||
|
||||
@property() public startingTemplate?: string;
|
||||
|
||||
@internalProperty() private _error?: string;
|
||||
|
||||
@internalProperty() private _rendering = false;
|
||||
@@ -76,9 +72,7 @@ class HaPanelDevTemplate extends LitElement {
|
||||
}
|
||||
|
||||
protected firstUpdated() {
|
||||
if (this.startingTemplate) {
|
||||
this._template = this.startingTemplate;
|
||||
} else if (localStorage && localStorage["panel-dev-template-template"]) {
|
||||
if (localStorage && localStorage["panel-dev-template-template"]) {
|
||||
this._template = localStorage["panel-dev-template-template"];
|
||||
} else {
|
||||
this._template = DEMO_TEMPLATE;
|
||||
@@ -88,6 +82,13 @@ class HaPanelDevTemplate extends LitElement {
|
||||
}
|
||||
|
||||
protected render() {
|
||||
const type = typeof this._templateResult?.result;
|
||||
const resultType =
|
||||
type === "object"
|
||||
? Array.isArray(this._templateResult?.result)
|
||||
? "list"
|
||||
: "dict"
|
||||
: type;
|
||||
return html`
|
||||
<div
|
||||
class="content ${classMap({
|
||||
@@ -96,7 +97,42 @@ class HaPanelDevTemplate extends LitElement {
|
||||
})}"
|
||||
>
|
||||
<div class="edit-pane">
|
||||
${this.simple ? "" : this._renderDescription()}
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.description"
|
||||
)}
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a
|
||||
href="http://jinja.pocoo.org/docs/dev/templates/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.jinja_documentation"
|
||||
)}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/configuration/templating/"
|
||||
)}"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.template_extensions"
|
||||
)}</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.editor"
|
||||
)}
|
||||
</p>
|
||||
<ha-code-editor
|
||||
mode="jinja2"
|
||||
.value=${this._template}
|
||||
@@ -111,156 +147,103 @@ class HaPanelDevTemplate extends LitElement {
|
||||
</mwc-button>
|
||||
</div>
|
||||
|
||||
${this._renderResult()}
|
||||
<div class="render-pane">
|
||||
${this._rendering
|
||||
? html`<ha-circular-progress
|
||||
class="render-spinner"
|
||||
active
|
||||
size="small"
|
||||
></ha-circular-progress>`
|
||||
: ""}
|
||||
${this._templateResult
|
||||
? html`${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.result_type"
|
||||
)}:
|
||||
${resultType}`
|
||||
: ""}
|
||||
<!-- prettier-ignore -->
|
||||
<pre
|
||||
class="rendered ${classMap({
|
||||
error: Boolean(this._error),
|
||||
[resultType]: resultType,
|
||||
})}"
|
||||
>${this._error}${type === "object"
|
||||
? JSON.stringify(this._templateResult!.result, null, 2)
|
||||
: this._templateResult?.result}</pre>
|
||||
${this._templateResult?.listeners.time
|
||||
? html`
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.time"
|
||||
)}
|
||||
</p>
|
||||
`
|
||||
: ""}
|
||||
${!this._templateResult?.listeners
|
||||
? ""
|
||||
: this._templateResult.listeners.all
|
||||
? html`
|
||||
<p class="all_listeners">
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.all_listeners"
|
||||
)}
|
||||
</p>
|
||||
`
|
||||
: this._templateResult.listeners.domains.length ||
|
||||
this._templateResult.listeners.entities.length
|
||||
? html`
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.listeners"
|
||||
)}
|
||||
</p>
|
||||
<ul>
|
||||
${this._templateResult.listeners.domains
|
||||
.sort()
|
||||
.map(
|
||||
(domain) =>
|
||||
html`
|
||||
<li>
|
||||
<b
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.domain"
|
||||
)}</b
|
||||
>: ${domain}
|
||||
</li>
|
||||
`
|
||||
)}
|
||||
${this._templateResult.listeners.entities
|
||||
.sort()
|
||||
.map(
|
||||
(entity_id) =>
|
||||
html`
|
||||
<li>
|
||||
<b
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.entity"
|
||||
)}</b
|
||||
>: ${entity_id}
|
||||
</li>
|
||||
`
|
||||
)}
|
||||
</ul>
|
||||
`
|
||||
: !this._templateResult?.listeners.time
|
||||
? html` <span class="all_listeners">
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.no_listeners"
|
||||
)}
|
||||
</span>`
|
||||
: html``}
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
private _renderResult() {
|
||||
const type = typeof this._templateResult?.result;
|
||||
const resultType =
|
||||
type === "object"
|
||||
? Array.isArray(this._templateResult?.result)
|
||||
? "list"
|
||||
: "dict"
|
||||
: type;
|
||||
|
||||
return html`<div class="render-pane">
|
||||
${this._rendering
|
||||
? html`<ha-circular-progress
|
||||
class="render-spinner"
|
||||
active
|
||||
size="small"
|
||||
></ha-circular-progress>`
|
||||
: ""}
|
||||
${this._templateResult
|
||||
? html`${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.result_type"
|
||||
)}:
|
||||
${resultType}`
|
||||
: ""}
|
||||
<!-- prettier-ignore -->
|
||||
<pre
|
||||
class="rendered ${classMap({
|
||||
error: Boolean(this._error),
|
||||
[resultType]: resultType,
|
||||
})}"
|
||||
>${this._error}${type === "object"
|
||||
? JSON.stringify(this._templateResult!.result, null, 2)
|
||||
: this._templateResult?.result}</pre>
|
||||
${this._templateResult?.listeners.time
|
||||
? html`
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.time"
|
||||
)}
|
||||
</p>
|
||||
`
|
||||
: ""}
|
||||
${!this._templateResult?.listeners
|
||||
? ""
|
||||
: this._templateResult.listeners.all
|
||||
? html`
|
||||
<p class="all_listeners">
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.all_listeners"
|
||||
)}
|
||||
</p>
|
||||
`
|
||||
: this._templateResult.listeners.domains.length ||
|
||||
this._templateResult.listeners.entities.length
|
||||
? html`
|
||||
<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.listeners"
|
||||
)}
|
||||
</p>
|
||||
<ul>
|
||||
${this._templateResult.listeners.domains
|
||||
.sort()
|
||||
.map(
|
||||
(domain) =>
|
||||
html`
|
||||
<li>
|
||||
<b
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.domain"
|
||||
)}</b
|
||||
>: ${domain}
|
||||
</li>
|
||||
`
|
||||
)}
|
||||
${this._templateResult.listeners.entities
|
||||
.sort()
|
||||
.map(
|
||||
(entity_id) =>
|
||||
html`
|
||||
<li>
|
||||
<b
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.entity"
|
||||
)}</b
|
||||
>: ${entity_id}
|
||||
</li>
|
||||
`
|
||||
)}
|
||||
</ul>
|
||||
`
|
||||
: !this._templateResult?.listeners.time
|
||||
? html` <span class="all_listeners">
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.no_listeners"
|
||||
)}
|
||||
</span>`
|
||||
: html``}
|
||||
</div>`;
|
||||
}
|
||||
|
||||
private _renderDescription() {
|
||||
return html`<p>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.description"
|
||||
)}
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a
|
||||
href="http://jinja.pocoo.org/docs/dev/templates/"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.jinja_documentation"
|
||||
)}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="${documentationUrl(
|
||||
this.hass,
|
||||
"/docs/configuration/templating/"
|
||||
)}"
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
>
|
||||
${this.hass.localize(
|
||||
"ui.panel.developer-tools.tabs.templates.template_extensions"
|
||||
)}</a
|
||||
>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
${this.hass.localize("ui.panel.developer-tools.tabs.templates.editor")}
|
||||
</p>`;
|
||||
}
|
||||
|
||||
static get styles(): CSSResultArray {
|
||||
return [
|
||||
haStyle,
|
||||
css`
|
||||
:root {
|
||||
--template-results-width: 50%;
|
||||
}
|
||||
|
||||
:host {
|
||||
-ms-user-select: initial;
|
||||
-webkit-user-select: initial;
|
||||
@@ -281,12 +264,12 @@ class HaPanelDevTemplate extends LitElement {
|
||||
}
|
||||
|
||||
.horizontal .edit-pane {
|
||||
max-width: var(--template-results-width, 50%);
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.render-pane {
|
||||
position: relative;
|
||||
max-width: var(--template-results-width, 50%);
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.render-spinner {
|
||||
|
@@ -104,10 +104,6 @@ const _customCreate = <T extends keyof CreateElementConfigTypes>(
|
||||
`Custom element doesn't exist: ${tag}.`,
|
||||
config
|
||||
);
|
||||
// Custom elements are required to have a - in the name
|
||||
if (!tag.includes("-")) {
|
||||
return element;
|
||||
}
|
||||
element.style.display = "None";
|
||||
const timer = window.setTimeout(() => {
|
||||
element.style.display = "";
|
||||
@@ -248,26 +244,20 @@ export const getLovelaceElementClass = async <
|
||||
|
||||
if (customTag) {
|
||||
const customCls = customElements.get(customTag);
|
||||
if (customCls) {
|
||||
return customCls;
|
||||
}
|
||||
return (
|
||||
customCls ||
|
||||
new Promise((resolve, reject) => {
|
||||
// We will give custom components up to TIMEOUT seconds to get defined
|
||||
setTimeout(
|
||||
() => reject(new Error(`Custom element not found: ${customTag}`)),
|
||||
TIMEOUT
|
||||
);
|
||||
|
||||
// Custom elements are required to have a - in the name
|
||||
if (!customTag.includes("-")) {
|
||||
throw new Error(`Custom element not found: ${customTag}`);
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
// We will give custom components up to TIMEOUT seconds to get defined
|
||||
setTimeout(
|
||||
() => reject(new Error(`Custom element not found: ${customTag}`)),
|
||||
TIMEOUT
|
||||
);
|
||||
|
||||
customElements
|
||||
.whenDefined(customTag)
|
||||
.then(() => resolve(customElements.get(customTag)));
|
||||
});
|
||||
customElements
|
||||
.whenDefined(customTag)
|
||||
.then(() => resolve(customElements.get(customTag)));
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
const tag = `hui-${type}-${tagSuffix}`;
|
||||
|
@@ -115,6 +115,7 @@ export class HuiEntityCardEditor extends LitElement
|
||||
</div>
|
||||
<div class="side-by-side">
|
||||
<ha-entity-attribute-picker
|
||||
allow-custom-value
|
||||
.hass=${this.hass}
|
||||
.entityId=${this._entity}
|
||||
.label="${this.hass.localize(
|
||||
|
@@ -52,7 +52,7 @@ class StateCardDisplay extends LocalizeMixin(PolymerElement) {
|
||||
|
||||
${this.stateInfoTemplate}
|
||||
<div class$="[[computeClassNames(stateObj)]]">
|
||||
[[computeStateDisplay(localize, stateObj, hass.language)]]
|
||||
[[computeStateDisplay(localize, stateObj, language)]]
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
@@ -7,15 +7,10 @@ import {
|
||||
} from "../dialogs/quick-bar/show-dialog-quick-bar";
|
||||
import { HomeAssistant } from "../types";
|
||||
import { storeState } from "../util/ha-pref-storage";
|
||||
import {
|
||||
showTemplateEditor,
|
||||
TemplateEditorParams,
|
||||
} from "../dialogs/template-editor/show-dialog-template-editor";
|
||||
|
||||
declare global {
|
||||
interface HASSDomEvents {
|
||||
"hass-quick-bar": QuickBarParams;
|
||||
"hass-template-editor": TemplateEditorParams;
|
||||
"hass-enable-shortcuts": HomeAssistant["enableShortcuts"];
|
||||
}
|
||||
}
|
||||
@@ -37,27 +32,18 @@ export default <T extends Constructor<HassElement>>(superClass: T) =>
|
||||
tinykeys(window, {
|
||||
e: (ev) => this._showQuickBar(ev),
|
||||
c: (ev) => this._showQuickBar(ev, true),
|
||||
t: (ev) => this._showTemplateEditor(ev),
|
||||
});
|
||||
}
|
||||
|
||||
private _showQuickBar(e: KeyboardEvent, commandMode = false) {
|
||||
if (!this._canShowDialogWithShortcut(e)) {
|
||||
if (!this._canShowQuickBar(e)) {
|
||||
return;
|
||||
}
|
||||
|
||||
showQuickBar(this, { commandMode });
|
||||
}
|
||||
|
||||
private _showTemplateEditor(e: KeyboardEvent) {
|
||||
if (!this._canShowDialogWithShortcut(e)) {
|
||||
return;
|
||||
}
|
||||
|
||||
showTemplateEditor(this, { startingTemplate: "{{ states.sun.sun }}" });
|
||||
}
|
||||
|
||||
private _canShowDialogWithShortcut(e: KeyboardEvent) {
|
||||
private _canShowQuickBar(e: KeyboardEvent) {
|
||||
return (
|
||||
this.hass?.user?.is_admin &&
|
||||
this.hass.enableShortcuts &&
|
||||
|
@@ -598,7 +598,7 @@
|
||||
"control": "Control",
|
||||
"related": "Related",
|
||||
"dismiss": "Dismiss",
|
||||
"no_unique_id": "This entity (\"{entity_id}\") does not have a unique ID, therefore its settings cannot be managed from the UI. See the {faq_link} for more detail.",
|
||||
"no_unique_id": "This entity does not have a unique ID, therefore its settings cannot be managed from the UI. See the {faq_link} for more detail.",
|
||||
"faq": "documentation",
|
||||
"editor": {
|
||||
"name": "Name",
|
||||
|
@@ -10,7 +10,8 @@ Code distributed by Google as part of the polymer project is also
|
||||
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
||||
*/
|
||||
import { AppStorageBehavior } from "@polymer/app-storage/app-storage-behavior";
|
||||
import { Polymer } from "@polymer/polymer/polymer-legacy";
|
||||
import { Polymer } from "@polymer/polymer/lib/legacy/polymer-fn";
|
||||
import "@polymer/polymer/polymer-legacy";
|
||||
|
||||
/**
|
||||
* app-localstorage-document synchronizes storage between an in-memory
|
||||
|
@@ -584,7 +584,7 @@
|
||||
"entries_not_found": "No s'han trobat entrades al registre.",
|
||||
"messages": {
|
||||
"became_unavailable": "no està disponible",
|
||||
"changed_to_state": "ha canviat a {state}",
|
||||
"changed_to_state": "a canviat a {state}",
|
||||
"cleared_device_class": "s'ha esborrat (no s'ha detectat cap {device_class})",
|
||||
"detected_device_class": "s'ha detectat {device_class}",
|
||||
"rose": "rosa",
|
||||
|
@@ -511,23 +511,16 @@
|
||||
"continue": "Συνέχεια",
|
||||
"copied": "Αντιγράφηκε",
|
||||
"delete": "Διαγραφή",
|
||||
"disable": "Απενεργοποίηση",
|
||||
"enable": "Ενεργοποίηση",
|
||||
"error_required": "Υποχρεωτικό",
|
||||
"leave": "Αποχώρηση",
|
||||
"loading": "Φόρτωση",
|
||||
"menu": "Μενού",
|
||||
"next": "Επόμενο",
|
||||
"no": "Όχι",
|
||||
"not_now": "Όχι τώρα",
|
||||
"overflow_menu": "Μενού υπερχείλισης",
|
||||
"previous": "Προηγούμενο",
|
||||
"refresh": "Ανανέωση",
|
||||
"remove": "Αφαίρεση",
|
||||
"rename": "Μετονομασία",
|
||||
"save": "Αποθήκευση",
|
||||
"skip": "Παράλειψη",
|
||||
"stay": "Παραμονή",
|
||||
"successfully_deleted": "Η διαγραφή ολοκληρώθηκε με επιτυχία",
|
||||
"successfully_saved": "Αποθηκεύτηκε με επιτυχία",
|
||||
"undo": "Αναίρεση",
|
||||
@@ -631,7 +624,7 @@
|
||||
"season": "Σεζόν",
|
||||
"track": "Κομμάτι",
|
||||
"tv_show": "Τηλεοπτική εκπομπή",
|
||||
"url": "URL",
|
||||
"url": "Διεύθυνση Url",
|
||||
"video": "Βίντεο"
|
||||
},
|
||||
"content-type": {
|
||||
@@ -728,10 +721,8 @@
|
||||
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτήν την καταχώριση;",
|
||||
"delete": "Διαγραφή",
|
||||
"enabled_cause": "Απενεργοποιήθηκε από {cause}.",
|
||||
"enabled_delay_confirm": "Τα ενεργοποιημένα στοιχεία θα προστεθούν στο Home Assistant σε {delay} δευτερόλεπτα",
|
||||
"enabled_description": "Οι απενεργοποιημένες οντότητες δεν θα προστεθούν στον Home Assistant.",
|
||||
"enabled_label": "Ενεργοποίηση οντότητας",
|
||||
"enabled_restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την ενεργοποίηση των στοιχείων",
|
||||
"entity_id": "Αναγνωριστικό οντότητας",
|
||||
"icon": "Εικονίδιο",
|
||||
"icon_error": "Το εικονίδιο πρέπει να είναι στη μορφή 'πρόθεμα:όνομα_εικόνας', για παράδειγμα: 'mdi:home'",
|
||||
@@ -804,13 +795,6 @@
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Έλεγχοι",
|
||||
"cover": {
|
||||
"close_cover": "Κλείσιμο",
|
||||
"close_tile_cover": "Κλείσιμο καλύμματος",
|
||||
"open_cover": "Άνοιγμα",
|
||||
"open_tilt_cover": "Άνοιγμα καλύμματος",
|
||||
"stop_cover": "Το κάλυμμα να παραμένει σταθερό"
|
||||
},
|
||||
"details": "Λεπτομέρειες",
|
||||
"dismiss": "Κλείσιμο διαλόγου.",
|
||||
"edit": "Επεξεργασία οντότητας",
|
||||
@@ -874,28 +858,6 @@
|
||||
},
|
||||
"quick-bar": {
|
||||
"commands": {
|
||||
"navigation": {
|
||||
"areas": "Περιοχές",
|
||||
"automation": "Αυτοματισμοί",
|
||||
"core": "Γενικά",
|
||||
"customize": "Μορφοποιήσεις",
|
||||
"devices": "Συσκευές",
|
||||
"entities": "Στοιχεία",
|
||||
"helpers": "Βοηθήματα",
|
||||
"info": "Πληροφορίες",
|
||||
"integrations": "Ενσωματώσεις",
|
||||
"logs": "Συμβάντα",
|
||||
"lovelace": "Διαχειριστικά Lovelace",
|
||||
"navigate_to": "Μεταβείτε στο {panel}",
|
||||
"navigate_to_config": "Μεταβείτε στη διαμόρφωση του {panel}",
|
||||
"person": "Άνθρωποι",
|
||||
"scene": "Σκηνές",
|
||||
"script": "Scripts",
|
||||
"server_control": "Στοιχεία ελέγχου Server",
|
||||
"tags": "Ετικέτες",
|
||||
"users": "Χρήστες",
|
||||
"zone": "Ζώνες"
|
||||
},
|
||||
"reload": {
|
||||
"automation": "Επαναφόρτωση αυτοματισμών",
|
||||
"command_line": "Επαναφόρτωση οντοτήτων γραμμής εντολών",
|
||||
@@ -1459,7 +1421,7 @@
|
||||
"will_be_auto_renewed": "Θα ανανεωθεί αυτόματα"
|
||||
},
|
||||
"dialog_cloudhook": {
|
||||
"available_at": "Το webhook είναι διαθέσιμο στον ακόλουθο σύνδεσμο URL:",
|
||||
"available_at": "Το webhook είναι διαθέσιμο στον ακόλουθο σύνδεσμο:",
|
||||
"close": "Κλείστε",
|
||||
"confirm_disable": "Είστε σίγουροι ότι θέλετε να απενεργοποιήσετε αυτό το webhook;",
|
||||
"copied_to_clipboard": "Αντιγράφτηκε στο πρόχειρο",
|
||||
@@ -1665,12 +1627,12 @@
|
||||
"disable_selected": {
|
||||
"button": "Απενεργοποίηση επιλεγμένων",
|
||||
"confirm_text": "Οι απενεργοποιημένες οντότητες δεν θα προστεθούν στον Home Assistant",
|
||||
"confirm_title": "Θέλετε να απενεργοποιήσετε {number} {number, plural,\n one {στοιχείο}\n other {στοιχεία}\n};"
|
||||
"confirm_title": "Θέλετε να απενεργοποιήσετε {number} οντότητες;"
|
||||
},
|
||||
"enable_selected": {
|
||||
"button": "Ενεργοποίηση επιλεγμένων",
|
||||
"confirm_text": "Αυτό θα τα καταστήσει ξανά διαθέσιμα στο Home Assistant, εάν είναι τώρα απενεργοποιημένα.",
|
||||
"confirm_title": "Θέλετε να ενεργοποιήσετε {number} {number, plural,\n one {στοιχείο}\n other {στοιχεία}\n};"
|
||||
"confirm_title": "Θέλετε να ενεργοποιήσετε {number} οντότητες;"
|
||||
},
|
||||
"filter": {
|
||||
"filter": "Φίλτρο",
|
||||
@@ -1692,9 +1654,9 @@
|
||||
"remove_selected": {
|
||||
"button": "Αφαίρεση επιλεγμένων",
|
||||
"confirm_partly_text": "Μπορείτε να αφαιρέσετε μόνο {removable} από τις επιλεγμένες {selected} οντότητες. Οι οντότητες μπορούν να καταργηθούν μόνο όταν η ενοποίηση δεν παρέχει πλέον τις οντότητες. Μερικές φορές πρέπει να κάνετε επανεκκίνηση του Home Assistant για να μπορέσετε να καταργήσετε τις οντότητες μιας καταργημένης ενοποίησης. Είστε βέβαιοι ότι θέλετε να καταργήσετε τις αφαιρούμενες οντότητες;",
|
||||
"confirm_partly_title": "Μόνο {number} {number, plural,\n one {επιλεγμένο στοιχείο μπορεί να αφαιρεθεί}\n other {επιλεγμένα στοιχεία μπορούν να αφαιρεθούν}\n}.",
|
||||
"confirm_partly_title": "Μόνο {number} επιλεγμένες οντότητες μπορούν να καταργηθούν.",
|
||||
"confirm_text": "Θα πρέπει να τα αφαιρέσετε από το Lovelace config και τους αυτοματισμούς σας εάν περιέχουν αυτές τις οντότητες.",
|
||||
"confirm_title": "Θέλετε να αφαιρέσετε {number} {number, plural,\n one {στοιχείο}\n other {στοιχεία}\n};"
|
||||
"confirm_title": "θέλετε να αφαιρέσετε {number} οντότητες;"
|
||||
},
|
||||
"search": "Οντότητες αναζήτησης",
|
||||
"selected": "Επιλέχθηκαν {number} ",
|
||||
@@ -1743,8 +1705,6 @@
|
||||
"info": {
|
||||
"built_using": "Κατασκευάστηκε με χρήση",
|
||||
"caption": "Πληροφορίες",
|
||||
"copy_github": "Για το GitHub",
|
||||
"copy_raw": "Μη επεξεργασμένο κείμενο",
|
||||
"custom_uis": "Προσαρμοσμένα περιβάλλοντα χρήστη:",
|
||||
"description": "Δείτε πληροφορίες σχετικά με την εγκατάσταση του Home Assistant",
|
||||
"developed_by": "Αναπτύχθηκε από ένα μάτσο απίθανων ανθρώπων.",
|
||||
@@ -1760,42 +1720,6 @@
|
||||
"server": "Διακομιστής",
|
||||
"source": "Πηγή",
|
||||
"system_health_error": "Το στοιχείο Υγεία Συστήματος δεν έχει φορτωθεί. Προσθέστε 'system_health:' στη ρύθμιση παραμέτρων configuration.yaml",
|
||||
"system_health": {
|
||||
"checks": {
|
||||
"cloud": {
|
||||
"alexa_enabled": "Alexa Ενεργή",
|
||||
"can_reach_cert_server": "Προσέγγιση διακομιστή πιστοποιητικών",
|
||||
"can_reach_cloud": "Προσέγγιση Home Assistant Cloud",
|
||||
"can_reach_cloud_auth": "Προσέγγιση διακομιστή ελέγχου ταυτότητας",
|
||||
"google_enabled": "Google Ενεργή",
|
||||
"logged_in": "Συνδεδεμένοι",
|
||||
"relayer_connected": "Συνδεδεμένος αναμεταδότης",
|
||||
"remote_connected": "Απομακρυσμένη λειτουργία Συνδεδεμένη",
|
||||
"remote_enabled": "Απομακρυσμένη λειτουργία Ενεργή",
|
||||
"subscription_expiration": "Λήξη συνδρομής"
|
||||
},
|
||||
"homeassistant": {
|
||||
"arch": "Αρχιτεκτονική CPU",
|
||||
"dev": "Ανάπτυξη",
|
||||
"docker": "Docker",
|
||||
"hassio": "HassOS",
|
||||
"installation_type": "Τύπος εγκατάστασης",
|
||||
"os_name": "Όνομα λειτουργικού συστήματος",
|
||||
"os_version": "Έκδοση λειτουργικού συστήματος",
|
||||
"python_version": "Έκδοση Python",
|
||||
"timezone": "Ζώνη ώρας",
|
||||
"version": "Έκδοση",
|
||||
"virtualenv": "Εικονικό περιβάλλον"
|
||||
},
|
||||
"lovelace": {
|
||||
"dashboards": "Πίνακες ελέγχου",
|
||||
"mode": "Λειτουργία",
|
||||
"resources": "Πόροι"
|
||||
}
|
||||
},
|
||||
"manage": "Διαχείριση",
|
||||
"more_info": "Περισσότερες πληροφορίες"
|
||||
},
|
||||
"title": "Πληροφορίες"
|
||||
},
|
||||
"integration_panel_move": {
|
||||
@@ -1921,7 +1845,7 @@
|
||||
"title": "Τίτλος",
|
||||
"title_required": "Απαιτείται τίτλος.",
|
||||
"update": "Ενημέρωση",
|
||||
"url": "URL",
|
||||
"url": "Διεύθυνση url",
|
||||
"url_error_msg": "Η διεύθυνση URL πρέπει να περιέχει ένα - και δεν μπορεί να περιέχει κενά ή ειδικούς χαρακτήρες, εκτός από _ και -"
|
||||
},
|
||||
"picker": {
|
||||
@@ -1949,7 +1873,7 @@
|
||||
"new_resource": "Προσθέστε νέο πόρο",
|
||||
"type": "Τύπος πόρου",
|
||||
"update": "Ενημέρωση",
|
||||
"url": "URL",
|
||||
"url": "Διεύθυνση Url",
|
||||
"url_error_msg": "Η διεύθυνση URL είναι υποχρεωτικό πεδίο",
|
||||
"warning_header": "Προσέξτε!",
|
||||
"warning_text": "Η προσθήκη πόρων μπορεί να είναι επικίνδυνη, βεβαιωθείτε ότι γνωρίζετε την προέλευση των πόρων και ότι τους εμπιστεύεστε. Οι κακοί πόροι θα μπορούσαν να βλάψουν σοβαρά το σύστημά σας."
|
||||
@@ -1958,11 +1882,11 @@
|
||||
"add_resource": "Προσθήκη πόρου",
|
||||
"headers": {
|
||||
"type": "Τύπος",
|
||||
"url": "URL"
|
||||
"url": "Διεύθυνση Url"
|
||||
},
|
||||
"no_resources": "Δεν υπάρχουν πόροι"
|
||||
},
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την αφαίρεση. Ανανέωση τώρα;",
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την κατάργηση, θέλετε να ανανεώσετε τώρα;",
|
||||
"refresh_header": "Θέλετε να ανανεώσετε;",
|
||||
"types": {
|
||||
"css": "Stylesheet",
|
||||
@@ -2212,9 +2136,7 @@
|
||||
"sequence_sentence": "Η ακολουθία των ενεργειών αυτού του σεναρίου."
|
||||
},
|
||||
"picker": {
|
||||
"add_script": "Δημιουργήστε νέο script",
|
||||
"duplicate": "Κλονοποίηση",
|
||||
"duplicate_script": "Κλονοποίηση Script",
|
||||
"add_script": "Δημιουργήστε νέο σενάριο",
|
||||
"edit_script": "Επεξεργασία σεναρίου",
|
||||
"header": "Πρόγραμμα επεξεργασίας σεναρίων",
|
||||
"headers": {
|
||||
@@ -2251,7 +2173,7 @@
|
||||
"input_text": "Επαναφόρτωση κειμένων εισόδου",
|
||||
"introduction": "Ορισμένα τμήματα του Home Assistant μπορούν να επαναφορτωθούν χωρίς να απαιτείται επανεκκίνηση. Πατώντας \"επαναφόρτωση\" θα ξεφορτωθεί η τρέχουσα παραμετροποίηση YAML και θα φορτωθεί η νέα.",
|
||||
"min_max": "Επαναφόρτωση οντοτήτων ελάχιστων / μέγιστων",
|
||||
"mqtt": "Επαναφόρτωση χειροκίνητων στοιχείων MQTT",
|
||||
"mqtt": "Επανάληψη φόρτωσης μη αυτόματα ρυθμισμένων οντοτήτων mqtt",
|
||||
"person": "Επαναφόρτωση ατόμων",
|
||||
"ping": "Επαναφόρτωση οντοτήτων δυαδικών αισθητήρων ping",
|
||||
"reload": "Επαναφόρτωση {domain}",
|
||||
@@ -2259,7 +2181,7 @@
|
||||
"rpi_gpio": "Επαναφόρτωση οντοτήτων Raspberry Pi GPIO",
|
||||
"scene": "Επαναφόρτωση σκηνών",
|
||||
"script": "Επαναφόρτωση σεναρίων",
|
||||
"smtp": "Επαναφόρτωση υπηρεσιών ειδοποίησης SMTP",
|
||||
"smtp": "Επανάληψη φόρτωσης υπηρεσιών ειδοποίησης smtp",
|
||||
"statistics": "Επαναφόρτωση οντοτήτων στατιστικών",
|
||||
"telegram": "Επαναφόρτωση υπηρεσιών ειδοποίησης telegram",
|
||||
"template": "Επαναφόρτωση οντοτήτων προτύπου",
|
||||
@@ -2288,8 +2210,6 @@
|
||||
"add_tag": "Προσθήκη ετικέτας",
|
||||
"automation_title": "Η ετικέτα {name} σαρώθηκε",
|
||||
"caption": "Ετικέτες",
|
||||
"confirm_remove": "Είστε βέβαιοι ότι θέλετε να καταργήσετε την ετικέτα {tag} ;",
|
||||
"confirm_remove_title": "Κατάργηση ετικέτας;",
|
||||
"create_automation": "Δημιουργία αυτοματοποίησης με ετικέτα",
|
||||
"description": "Διαχείριση ετικετών",
|
||||
"detail": {
|
||||
@@ -2349,7 +2269,6 @@
|
||||
"update_user": "Ενημέρωση"
|
||||
},
|
||||
"picker": {
|
||||
"add_user": "Προσθήκη χρήστη",
|
||||
"headers": {
|
||||
"group": "Ομάδα",
|
||||
"name": "Ονομασία",
|
||||
@@ -2630,8 +2549,6 @@
|
||||
"filter_attributes": "Φιλτράρισμα χαρακτηριστικών",
|
||||
"filter_entities": "Φιλτράρισμα οντοτήτων",
|
||||
"filter_states": "Φιλτράρισμα καταστάσεων",
|
||||
"last_changed": "Τελευταία αλλαγή",
|
||||
"last_updated": "Τελευταία αναβάθμιση",
|
||||
"more_info": "Περισσότερες πληροφορίες",
|
||||
"no_entities": "Δεν υπάρχουν οντότητες",
|
||||
"set_state": "Ορίστε την κατάσταση",
|
||||
@@ -2718,7 +2635,7 @@
|
||||
}
|
||||
},
|
||||
"changed_toast": {
|
||||
"message": "Οι ρυθμίσεις του Lovelace UI για αυτόν τον πίνακα ελέγχου έχουν επικαιροποιηθεί. Θέλεις να κάνεις ανανέωση για να δεις τις αλλαγές;",
|
||||
"message": "Η παραμετροποίηση του Lovelace για αυτή την επισκόπηση έχει επικαιροποιηθεί, θέλεις να κάνεις ανανέωση για να δεις τις αλλαγές;",
|
||||
"refresh": "Ανανέωση"
|
||||
},
|
||||
"editor": {
|
||||
@@ -2730,11 +2647,11 @@
|
||||
"navigate": "Πλοήγηση",
|
||||
"none": "Καμία ενέργεια",
|
||||
"toggle": "Εναλλαγή",
|
||||
"url": "URL"
|
||||
"url": "Διεύθυνση Url"
|
||||
},
|
||||
"editor_service_data": "Τα δεδομένα υπηρεσίας μπορούν να εισαχθούν μόνο στον επεξεργαστή κώδικα",
|
||||
"navigation_path": "Διαδρομή πλοήγησης",
|
||||
"url_path": "Διαδρομή URL"
|
||||
"url_path": "Διαδρομή διεύθυνσης URL"
|
||||
},
|
||||
"card": {
|
||||
"alarm-panel": {
|
||||
@@ -2852,7 +2769,7 @@
|
||||
"theme": "Θέμα",
|
||||
"title": "Τίτλος",
|
||||
"unit": "Μονάδα",
|
||||
"url": "URL"
|
||||
"url": "Διεύθυνση url"
|
||||
},
|
||||
"glance": {
|
||||
"columns": "Στήλες",
|
||||
@@ -2883,10 +2800,6 @@
|
||||
"description": "Η κάρτα \"Φως\" σας επιτρέπει να αλλάξετε τη φωτεινότητα του φωτός.",
|
||||
"name": "Φως"
|
||||
},
|
||||
"logbook": {
|
||||
"description": "Η κάρτα Συμβάντων εμφανίζει μια λίστα γεγονότων για διάφορα στοιχεία.",
|
||||
"name": "Κάρτα Συμβάντων"
|
||||
},
|
||||
"map": {
|
||||
"dark_mode": "Σκοτεινή λειτουργία;",
|
||||
"default_zoom": "Προεπιλεγμένο ζουμ",
|
||||
@@ -2959,18 +2872,11 @@
|
||||
"entity": "Οντότητα",
|
||||
"no_description": "Δεν υπάρχει διαθέσιμη περιγραφή"
|
||||
},
|
||||
"common": {
|
||||
"add": "Προσθήκη",
|
||||
"clear": "Καθαρισμός",
|
||||
"edit": "Επεξεργασία",
|
||||
"none": "Κανένας"
|
||||
},
|
||||
"edit_badges": {
|
||||
"panel_mode": "Αυτά τα σήματα δεν θα εμφανιστούν, επειδή αυτή η προβολή βρίσκεται σε \"Λειτουργία πίνακα\"."
|
||||
},
|
||||
"edit_card": {
|
||||
"add": "Προσθήκη κάρτας",
|
||||
"clear": "Καθαρισμός",
|
||||
"confirm_cancel": "Είστε βέβαιοι ότι θέλετε να ακυρώσετε;",
|
||||
"delete": "Διαγραφή κάρτας",
|
||||
"duplicate": "Διπλότυπη κάρτα",
|
||||
@@ -3011,22 +2917,6 @@
|
||||
}
|
||||
},
|
||||
"header": "Επεξεργασία περιβάλλοντος χρήστη",
|
||||
"header-footer": {
|
||||
"choose_header_footer": "Επιλογή {type}",
|
||||
"footer": "Υποσέλιδο",
|
||||
"header": "Κεφαλίδα",
|
||||
"types": {
|
||||
"buttons": {
|
||||
"name": "Κουμπιά"
|
||||
},
|
||||
"graph": {
|
||||
"name": "Γράφημα"
|
||||
},
|
||||
"picture": {
|
||||
"name": "Εικόνα"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"open": "Ανοίξτε το μενού Lovelace",
|
||||
"raw_editor": "Πρόγραμμα επεξεργασίας ρύθμισης παραμέτρων raw"
|
||||
@@ -3071,13 +2961,6 @@
|
||||
"dashboard_label": "Πίνακας Επισκόπησης",
|
||||
"header": "Επιλέξτε μια προβολή"
|
||||
},
|
||||
"sub-element-editor": {
|
||||
"types": {
|
||||
"footer": "Πρόγραμμα επεξεργασίας υποσέλιδου",
|
||||
"header": "Επεξεργασία κεφαλίδας",
|
||||
"row": "Πρόγραμμα επεξεργασίας Σειράς Στοιχείου"
|
||||
}
|
||||
},
|
||||
"suggest_card": {
|
||||
"add": "Προσθήκη στο Lovelace UI",
|
||||
"create_own": "Επιλέξτε άλλη κάρτα",
|
||||
@@ -3102,7 +2985,7 @@
|
||||
},
|
||||
"reload_lovelace": "Επαναφόρτωση Lovelace",
|
||||
"reload_resources": {
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την επαναφόρτωση. Ανανέωση τώρα;",
|
||||
"refresh_body": "Πρέπει να ανανεώσετε τη σελίδα για να ολοκληρώσετε την επαναφόρτωση, θέλετε να την ανανεώσετε τώρα;",
|
||||
"refresh_header": "Θέλετε να ανανεώσετε;"
|
||||
},
|
||||
"unused_entities": {
|
||||
|
@@ -508,22 +508,15 @@
|
||||
"close": "Cerrar",
|
||||
"continue": "Continuar",
|
||||
"delete": "Eliminar",
|
||||
"disable": "Deshabilitar",
|
||||
"enable": "Habilitar",
|
||||
"error_required": "Requerido",
|
||||
"leave": "Salir",
|
||||
"loading": "Cargando",
|
||||
"menu": "Menú",
|
||||
"next": "Siguiente",
|
||||
"no": "No",
|
||||
"not_now": "Ahora no",
|
||||
"overflow_menu": "Menú de desbordamiento",
|
||||
"previous": "Anterior",
|
||||
"refresh": "Actualizar",
|
||||
"remove": "Eliminar",
|
||||
"rename": "Renombrar",
|
||||
"save": "Guardar",
|
||||
"stay": "Permanecer",
|
||||
"successfully_deleted": "Eliminado exitosamente",
|
||||
"successfully_saved": "Guardado correctamente",
|
||||
"undo": "Deshacer",
|
||||
@@ -575,11 +568,7 @@
|
||||
"no_history_found": "No se encontró historial de estado."
|
||||
},
|
||||
"logbook": {
|
||||
"entries_not_found": "No se encontraron entradas en el libro de registro.",
|
||||
"messages": {
|
||||
"was_at_state": "estaba en {state}",
|
||||
"was_locked": "fue cerrado"
|
||||
}
|
||||
"entries_not_found": "No se encontraron entradas en el libro de registro."
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Su navegador no soporta el elemento de audio.",
|
||||
@@ -675,10 +664,8 @@
|
||||
"confirm_delete": "¿Está seguro de que desea eliminar esta entrada?",
|
||||
"delete": "Eliminar",
|
||||
"enabled_cause": "Deshabilitado por {cause}.",
|
||||
"enabled_delay_confirm": "Las entidades habilitadas se agregarán a Home Assistant en {delay} segundos",
|
||||
"enabled_description": "Las entidades deshabilitadas no serán agregadas a Home Assistant.",
|
||||
"enabled_label": "Habilitar entidad",
|
||||
"enabled_restart_confirm": "Reinicie Home Assistant para terminar de habilitar las entidades",
|
||||
"entity_id": "Identificación de la entidad",
|
||||
"icon": "Sobrescribir icono",
|
||||
"icon_error": "Los iconos deben estar en el formato 'prefijo:nombre del icono', por ejemplo, 'mdi: home'",
|
||||
@@ -698,13 +685,6 @@
|
||||
"ok": "De acuerdo"
|
||||
},
|
||||
"helper_settings": {
|
||||
"counter": {
|
||||
"initial": "Valor inicial",
|
||||
"maximum": "Valor máximo",
|
||||
"minimum": "Valor mínimo",
|
||||
"restore": "Restaurar el último valor conocido cuando se inicia Home Assistant",
|
||||
"step": "Número de incremento"
|
||||
},
|
||||
"generic": {
|
||||
"icon": "Ícono",
|
||||
"name": "Nombre"
|
||||
@@ -740,9 +720,6 @@
|
||||
},
|
||||
"platform_not_loaded": "La integración {platform} no está cargada. Añádela a su archivo de configuración agregando 'default_config:' o ''{platform}:''.",
|
||||
"required_error_msg": "Este campo es requerido",
|
||||
"timer": {
|
||||
"duration": "Duración"
|
||||
},
|
||||
"yaml_not_editable": "La configuración de esta entidad no se puede editar desde la interfaz de usuario. Solo las entidades configuradas desde la interfaz de usuario se pueden configurar desde la interfaz de usuario."
|
||||
},
|
||||
"image_cropper": {
|
||||
@@ -866,7 +843,6 @@
|
||||
"notification_drawer": {
|
||||
"click_to_configure": "Haga clic en el botón para configurar {entity}.",
|
||||
"close": "Cerrar",
|
||||
"dismiss_all": "Descartar todo",
|
||||
"empty": "Sin Notificaciones",
|
||||
"title": "Notificaciones"
|
||||
},
|
||||
@@ -1185,16 +1161,6 @@
|
||||
"only_editable": "Solo las automatizaciones definidas en automations.yaml son editables.",
|
||||
"pick_automation": "Elija la automatización a editar",
|
||||
"show_info_automation": "Mostrar información acerca de la automatización"
|
||||
},
|
||||
"thingtalk": {
|
||||
"link_devices": {
|
||||
"header": "¡Excelente! Ahora necesitamos vincular algunos dispositivos"
|
||||
},
|
||||
"task_selection": {
|
||||
"error_unsupported": "No pudimos crear una automatización para eso (¿aún?).",
|
||||
"for_example": "Por ejemplo:",
|
||||
"language_note": "Nota: Solo se admite el inglés por ahora."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cloud": {
|
||||
@@ -1407,7 +1373,6 @@
|
||||
"different_include": "Posiblemente a través de un dominio, un globo o una inclusión diferente.",
|
||||
"pick_attribute": "Elija un atributo para sobrescribir",
|
||||
"picker": {
|
||||
"documentation": "Documentación de personalización",
|
||||
"entity": "Entidad",
|
||||
"header": "Personalizaciones",
|
||||
"introduction": "Ajustar los atributos por entidad. Las personalizaciones agregadas/editadas tendrán efecto inmediatamente. Las personalizaciones eliminadas entrarán en vigor cuando se actualice la entidad."
|
||||
@@ -1422,23 +1387,18 @@
|
||||
"add_prompt": "Aún no se ha agregado ningún {name} con este dispositivo. Puede agregar uno haciendo clic en el botón + de arriba.",
|
||||
"automation": {
|
||||
"actions": {
|
||||
"caption": "Cuando algo se desencadena...",
|
||||
"no_actions": "Sin acciones",
|
||||
"unknown_action": "Acción desconocida"
|
||||
"caption": "Cuando algo se desencadena..."
|
||||
},
|
||||
"automations": "Automatizaciones",
|
||||
"conditions": {
|
||||
"caption": "Sólo hacer algo si...",
|
||||
"no_conditions": "Sin condiciones",
|
||||
"unknown_condition": "Condición desconocida"
|
||||
"caption": "Sólo hacer algo si..."
|
||||
},
|
||||
"create": "Crear automatización con dispositivo",
|
||||
"no_automations": "Sin automatizaciones",
|
||||
"no_device_automations": "No hay automatizaciones disponibles para este dispositivo.",
|
||||
"triggers": {
|
||||
"caption": "Haz algo cuando ..."
|
||||
},
|
||||
"unknown_automation": "Automatización desconocida"
|
||||
}
|
||||
},
|
||||
"cant_edit": "Solo puede editar elementos que se crean en la interfaz de usuario.",
|
||||
"caption": "Dispositivos",
|
||||
@@ -1556,20 +1516,16 @@
|
||||
"no_helpers": "¡Parece que todavía no tiene auxiliares!"
|
||||
},
|
||||
"types": {
|
||||
"counter": "Contador",
|
||||
"input_boolean": "Alternar",
|
||||
"input_datetime": "Fecha y/o hora",
|
||||
"input_number": "Número",
|
||||
"input_select": "Desplegable",
|
||||
"input_text": "Texto",
|
||||
"timer": "Temporizador"
|
||||
"input_text": "Texto"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"built_using": "Construido usando",
|
||||
"caption": "Información",
|
||||
"copy_github": "Para GitHub",
|
||||
"copy_raw": "Texto sin formato",
|
||||
"custom_uis": "Interfaces de usuario personalizadas:",
|
||||
"description": "Información sobre la instalación de Home Assistant",
|
||||
"developed_by": "Desarrollado por un grupo de personas increíbles.",
|
||||
@@ -1585,35 +1541,6 @@
|
||||
"server": "servidor",
|
||||
"source": "Fuente:",
|
||||
"system_health_error": "El componente de mantenimiento del sistema no está cargado. Agregue 'system_health:' a configuration.yaml",
|
||||
"system_health": {
|
||||
"checks": {
|
||||
"cloud": {
|
||||
"alexa_enabled": "Alexa habilitada",
|
||||
"google_enabled": "Google habilitado",
|
||||
"logged_in": "Conectado",
|
||||
"remote_connected": "Remoto conectado",
|
||||
"remote_enabled": "Remoto habilitado",
|
||||
"subscription_expiration": "Vencimiento de la suscripción"
|
||||
},
|
||||
"homeassistant": {
|
||||
"arch": "Arquitectura de CPU",
|
||||
"dev": "Desarrollo",
|
||||
"docker": "Docker",
|
||||
"hassio": "HassOS",
|
||||
"installation_type": "Tipo de instalación",
|
||||
"os_name": "Nombre del sistema operativo",
|
||||
"os_version": "Versión del sistema operativo",
|
||||
"python_version": "Versión de Python",
|
||||
"version": "Versión"
|
||||
},
|
||||
"lovelace": {
|
||||
"mode": "Modo",
|
||||
"resources": "Recursos"
|
||||
}
|
||||
},
|
||||
"manage": "Administrar",
|
||||
"more_info": "más información"
|
||||
},
|
||||
"title": "Información"
|
||||
},
|
||||
"integration_panel_move": {
|
||||
@@ -1869,8 +1796,7 @@
|
||||
},
|
||||
"select_instance": {
|
||||
"header": "Seleccione una instancia OpenZWave",
|
||||
"introduction": "Tiene más de una instancia de OpenZWave en ejecución. ¿Qué instancia te gustaría gestionar?",
|
||||
"none_found": "No pudimos encontrar una instancia de OpenZWave. Si cree que esto es incorrecto, verifique sus configuraciones de OpenZWave y MQTT y asegúrese de que Home Assistant pueda comunicarse con su corredor de MQTT."
|
||||
"introduction": "Tiene más de una instancia de OpenZWave en ejecución. ¿Qué instancia te gustaría gestionar?"
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@@ -1881,7 +1807,6 @@
|
||||
"create_person": "Crear persona",
|
||||
"description": "Gestione las personas que rastrea Home Assistant.",
|
||||
"detail": {
|
||||
"allow_login": "Permitir que la persona inicie sesión",
|
||||
"confirm_delete_user": "¿Está seguro de que desea eliminar la cuenta de usuario de {name} ? La persona ya no podrá iniciar sesión, pero aún puede rastrear al usuario.",
|
||||
"create": "Crear",
|
||||
"delete": "Eliminar",
|
||||
@@ -1898,10 +1823,8 @@
|
||||
"update": "Actualizar"
|
||||
},
|
||||
"introduction": "Aquí puede definir cada persona de interés en Home Assistant.",
|
||||
"learn_more": "Más información sobre las personas",
|
||||
"no_persons_created_yet": "Parece que todavía no has creado ninguna persona.",
|
||||
"note_about_persons_configured_in_yaml": "Nota: las personas configuradas a través de configuration.yaml no se pueden editar a través de la interfaz de usuario.",
|
||||
"person_not_found": "No pudimos encontrar a la persona que intentaba editar.",
|
||||
"person_not_found_title": "Persona no encontrada"
|
||||
},
|
||||
"scene": {
|
||||
@@ -1978,7 +1901,6 @@
|
||||
"restart": "Reiniciar",
|
||||
"single": "Individual (predeterminado)"
|
||||
},
|
||||
"save_script": "Guardar script",
|
||||
"sequence": "Secuencia",
|
||||
"sequence_sentence": "La secuencia de acciones de este script."
|
||||
},
|
||||
@@ -1992,7 +1914,6 @@
|
||||
"introduction": "El editor de scripts le permite crear y editar scripts. Por favor, siga el siguiente enlace para leer las instrucciones para asegurarse de que ha configurado Home Assistant correctamente.",
|
||||
"learn_more": "Aprenda más sobre los scripts",
|
||||
"no_scripts": "No pudimos encontrar ningún script editable",
|
||||
"run_script": "Ejecutar script",
|
||||
"show_info": "Mostrar información sobre el script",
|
||||
"trigger_script": "Desencadenar script"
|
||||
}
|
||||
@@ -2045,12 +1966,9 @@
|
||||
"add_tag": "Añadir etiqueta",
|
||||
"automation_title": "La etiqueta {name} ha sido escaneada",
|
||||
"caption": "Etiquetas",
|
||||
"confirm_remove": "¿Está seguro de que desea eliminar la etiqueta {tag}?",
|
||||
"confirm_remove_title": "¿Eliminar etiqueta?",
|
||||
"create_automation": "Crea automatización con etiqueta",
|
||||
"description": "Gestionar etiquetas",
|
||||
"detail": {
|
||||
"companion_apps": "aplicaciones complementarias",
|
||||
"create": "Crear",
|
||||
"create_and_write": "Crear y escribir",
|
||||
"delete": "Eliminar",
|
||||
@@ -2059,15 +1977,13 @@
|
||||
"new_tag": "Nueva etiqueta",
|
||||
"tag_id": "ID de etiqueta",
|
||||
"tag_id_placeholder": "Autogenerado cuando se deja vacío",
|
||||
"update": "Actualizar",
|
||||
"usage": "Una etiqueta puede activar una automatización cuando se escanea, puede usar etiquetas NFC, códigos QR o cualquier otro tipo de etiqueta. Utilice nuestro {companion_link} para escribir esta etiqueta en una etiqueta NFC programable o cree un código QR a continuación."
|
||||
"update": "Actualizar"
|
||||
},
|
||||
"edit": "Editar",
|
||||
"headers": {
|
||||
"last_scanned": "Último escaneado",
|
||||
"name": "Nombre"
|
||||
},
|
||||
"learn_more": "Más información sobre las etiquetas",
|
||||
"never_scanned": "Nunca escaneado",
|
||||
"no_tags": "Sin etiquetas",
|
||||
"write": "Escribir"
|
||||
@@ -2103,7 +2019,6 @@
|
||||
"update_user": "Actualizar"
|
||||
},
|
||||
"picker": {
|
||||
"add_user": "Agregar usuario",
|
||||
"headers": {
|
||||
"group": "Grupo",
|
||||
"name": "Nombre",
|
||||
@@ -2471,14 +2386,6 @@
|
||||
"refresh": "Actualizar"
|
||||
},
|
||||
"editor": {
|
||||
"action-editor": {
|
||||
"actions": {
|
||||
"more-info": "Más información",
|
||||
"navigate": "Navegar",
|
||||
"none": "Sin acción",
|
||||
"url": "URL"
|
||||
}
|
||||
},
|
||||
"card": {
|
||||
"alarm-panel": {
|
||||
"available_states": "Estados disponibles",
|
||||
@@ -2507,12 +2414,6 @@
|
||||
"entities": {
|
||||
"description": "La tarjeta de entidades es el tipo de tarjeta más común. Agrupa elementos en listas.",
|
||||
"name": "Entidades",
|
||||
"secondary_info_values": {
|
||||
"brightness": "Brillo",
|
||||
"last-changed": "Última modificación",
|
||||
"none": "Sin información secundaria",
|
||||
"position": "Posición"
|
||||
},
|
||||
"show_header_toggle": "¿Mostrar alternancia de encabezado?",
|
||||
"toggle": "Alternar entidades."
|
||||
},
|
||||
@@ -2638,7 +2539,7 @@
|
||||
"shopping-list": {
|
||||
"description": "La tarjeta Lista de Compras le permite agregar, editar, marcar y borrar artículos de su lista.",
|
||||
"integration_not_loaded": "Esta tarjeta requiere que se configure la integración `shopping_list`.",
|
||||
"name": "Lista de compras"
|
||||
"name": "Lista de la compra"
|
||||
},
|
||||
"thermostat": {
|
||||
"description": "La tarjeta del termostato le da el control de su entidad climática. Permitiéndole cambiar la temperatura y el modo de la entidad.",
|
||||
@@ -2662,18 +2563,11 @@
|
||||
"entity": "Entidad",
|
||||
"no_description": "No hay descripción disponible."
|
||||
},
|
||||
"common": {
|
||||
"add": "Agregar",
|
||||
"clear": "Limpiar",
|
||||
"edit": "Editar",
|
||||
"none": "Ninguno"
|
||||
},
|
||||
"edit_badges": {
|
||||
"panel_mode": "Estas insignias no se mostrarán porque esta vista está en \"Modo Panel\"."
|
||||
},
|
||||
"edit_card": {
|
||||
"add": "Agregar tarjeta",
|
||||
"clear": "Limpiar",
|
||||
"confirm_cancel": "¿Está seguro de que desea cancelar?",
|
||||
"delete": "Eliminar tarjeta",
|
||||
"duplicate": "Tarjeta duplicada",
|
||||
@@ -2712,21 +2606,6 @@
|
||||
}
|
||||
},
|
||||
"header": "Editar interfaz de usuario",
|
||||
"header-footer": {
|
||||
"footer": "Pie de página",
|
||||
"header": "Encabezado",
|
||||
"types": {
|
||||
"buttons": {
|
||||
"name": "Botones"
|
||||
},
|
||||
"graph": {
|
||||
"name": "Gráfico"
|
||||
},
|
||||
"picture": {
|
||||
"name": "Imagen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"open": "Abre el menú de la interfaz de usuario de Lovelace",
|
||||
"raw_editor": "Editor de configuración en texto"
|
||||
@@ -2764,11 +2643,6 @@
|
||||
"yaml_control": "Para tomar el control en modo YAML, cree un archivo YAML con el nombre que especificó en su configuración para este tablero, o el valor predeterminado 'ui-lovelace.yaml'.",
|
||||
"yaml_mode": "Está utilizando el modo YAML para este panel, lo que significa que no puede cambiar su configuración de Lovelace desde la interfaz de usuario. Si desea administrar este panel de control desde la interfaz de usuario, elimine 'mode: yaml' de su configuración de Lovelace en 'configuration.yaml.'."
|
||||
},
|
||||
"sub-element-editor": {
|
||||
"types": {
|
||||
"header": "Editor de encabezado"
|
||||
}
|
||||
},
|
||||
"suggest_card": {
|
||||
"add": "Agregar a Lovelace UI",
|
||||
"create_own": "Elegir una tarjeta diferente",
|
||||
@@ -2985,9 +2859,6 @@
|
||||
"more_integrations": "Más"
|
||||
},
|
||||
"intro": "¿Estás listo para despertar tu hogar, reclamar tu privacidad y unirte a una comunidad mundial de experimentadores?",
|
||||
"restore": {
|
||||
"in_progress": "Restauración en progreso"
|
||||
},
|
||||
"user": {
|
||||
"create_account": "Crear una cuenta",
|
||||
"data": {
|
||||
@@ -3106,9 +2977,6 @@
|
||||
"header": "Vibrar"
|
||||
}
|
||||
},
|
||||
"shopping_list": {
|
||||
"start_conversation": "Iniciar conversación"
|
||||
},
|
||||
"shopping-list": {
|
||||
"add_item": "Agregar elemento",
|
||||
"clear_completed": "Borrar completados",
|
||||
|
@@ -320,7 +320,7 @@
|
||||
"hail": "Grêle",
|
||||
"lightning": "Orage",
|
||||
"lightning-rainy": "Orage / Pluvieux",
|
||||
"partlycloudy": "Éclaircies",
|
||||
"partlycloudy": "Partiellement nuageux",
|
||||
"pouring": "Averses",
|
||||
"rainy": "Pluvieux",
|
||||
"snowy": "Neigeux",
|
||||
|
@@ -585,8 +585,8 @@
|
||||
"messages": {
|
||||
"became_unavailable": "elérhetetlenné vált",
|
||||
"changed_to_state": "állapota megváltozott: {state}",
|
||||
"cleared_device_class": "{device_class} észlelés befejeződött",
|
||||
"detected_device_class": "{device_class} észlelve",
|
||||
"cleared_device_class": "{device_class} érzékelés befejeződött",
|
||||
"detected_device_class": "{device_class}-t érzékelt",
|
||||
"rose": "felkelt",
|
||||
"set": "lenyugodott",
|
||||
"turned_off": "ki lett kapcsolva",
|
||||
@@ -805,9 +805,7 @@
|
||||
"more_info_control": {
|
||||
"controls": "Vezérlők",
|
||||
"cover": {
|
||||
"close_cover": "Árnyékoló zárása",
|
||||
"close_tile_cover": "Árnyékoló döntésének zárása",
|
||||
"open_cover": "Árnyékoló nyitása",
|
||||
"open_tilt_cover": "Árnyékoló döntésének nyitása",
|
||||
"stop_cover": "Árnyékoló mozgásának leállítása"
|
||||
},
|
||||
@@ -1743,7 +1741,6 @@
|
||||
"info": {
|
||||
"built_using": "Buildelve:",
|
||||
"caption": "Infó",
|
||||
"copy_github": "A GitHub számára",
|
||||
"copy_raw": "Nyers szöveg",
|
||||
"custom_uis": "Egyéni felhasználói felületek:",
|
||||
"description": "Telepítési információ megtekintése a Home Assistant-ról",
|
||||
|
@@ -2957,7 +2957,7 @@
|
||||
"clear": "削除",
|
||||
"confirm_cancel": "キャンセルしてもよいですか?",
|
||||
"delete": "カードを削除",
|
||||
"duplicate": "カードの複製",
|
||||
"duplicate": "重複するカード",
|
||||
"edit": "編集",
|
||||
"header": "カード設定",
|
||||
"move": "ビューに移動",
|
||||
|
@@ -1743,8 +1743,6 @@
|
||||
"info": {
|
||||
"built_using": "Bygget med",
|
||||
"caption": "Informasjon",
|
||||
"copy_github": "",
|
||||
"copy_raw": "Rå tekst",
|
||||
"custom_uis": "Tilpassede brukergrensesnitt:",
|
||||
"description": "Vise informasjon om installasjonen av Home Assistant",
|
||||
"developed_by": "Utviklet av en gjeng med fantastiske mennesker.",
|
||||
|
@@ -1743,8 +1743,6 @@
|
||||
"info": {
|
||||
"built_using": "Gebouwd met behulp van",
|
||||
"caption": "Info",
|
||||
"copy_github": "Voor GitHub",
|
||||
"copy_raw": "Ruwe tekst",
|
||||
"custom_uis": "Aangepaste UI's:",
|
||||
"description": "Informatie over je Home Assistant installatie",
|
||||
"developed_by": "Ontwikkeld door een stel geweldige mensen.",
|
||||
|
@@ -1743,8 +1743,6 @@
|
||||
"info": {
|
||||
"built_using": "Zbudowany przy użyciu",
|
||||
"caption": "Informacje",
|
||||
"copy_github": "Dla GitHuba",
|
||||
"copy_raw": "Tekst",
|
||||
"custom_uis": "Niestandardowe interfejsy użytkownika:",
|
||||
"description": "Informacje o instalacji Home Assistant",
|
||||
"developed_by": "Opracowany przez grono wspaniałych ludzi.",
|
||||
|
@@ -730,7 +730,6 @@
|
||||
"enabled_cause": "Desativado por {cause}.",
|
||||
"enabled_description": "Entidades desativadas não serão adicionadas ao Home Assistant.",
|
||||
"enabled_label": "Ativar entidade",
|
||||
"enabled_restart_confirm": "Reinicie o Home Assistant para ativar as entidades",
|
||||
"entity_id": "Identificação da entidade",
|
||||
"icon": "Substituição do ícone",
|
||||
"icon_error": "Os ícones devem estar no formato 'prefixo:nome do ícone', por exemplo 'mdi:home'.",
|
||||
@@ -751,12 +750,6 @@
|
||||
"ok": "OK"
|
||||
},
|
||||
"helper_settings": {
|
||||
"counter": {
|
||||
"initial": "Valor inicial",
|
||||
"maximum": "Valor máximo",
|
||||
"minimum": "Valor mínimo",
|
||||
"step": "Tamanho do passo"
|
||||
},
|
||||
"generic": {
|
||||
"icon": "Ícone",
|
||||
"name": "Nome"
|
||||
@@ -792,9 +785,6 @@
|
||||
},
|
||||
"platform_not_loaded": "A integração {platform} não foi carregada. Por favor, adicione ao ficheiro configuration.yaml, 'default_config:' ou ''{platform}:''.",
|
||||
"required_error_msg": "Este campo é obrigatório",
|
||||
"timer": {
|
||||
"duration": "Duração"
|
||||
},
|
||||
"yaml_not_editable": "As configurações desta entidade não podem ser editadas a partir do IU. Apenas as entidades adiccionadas a partir da IU são configuráveis a partir da IU."
|
||||
},
|
||||
"image_cropper": {
|
||||
@@ -802,10 +792,6 @@
|
||||
},
|
||||
"more_info_control": {
|
||||
"controls": "Controlos",
|
||||
"cover": {
|
||||
"close_cover": "Fechar a capa",
|
||||
"open_cover": "Abrir capa"
|
||||
},
|
||||
"details": "Detalhes",
|
||||
"dismiss": "Descartar diálogo",
|
||||
"edit": "Editar entidade",
|
||||
@@ -869,28 +855,6 @@
|
||||
},
|
||||
"quick-bar": {
|
||||
"commands": {
|
||||
"navigation": {
|
||||
"areas": "Áreas",
|
||||
"automation": "Automação",
|
||||
"core": "Geral",
|
||||
"customize": "Personalização",
|
||||
"devices": "Dispositivos",
|
||||
"entities": "Entidades",
|
||||
"helpers": "Auxiliares",
|
||||
"info": "Informação",
|
||||
"integrations": "Integrações",
|
||||
"logs": "Logs",
|
||||
"lovelace": "Painéis Lovelace",
|
||||
"navigate_to": "Navegar até {panel}",
|
||||
"navigate_to_config": "Navegar para a configuração {painel}",
|
||||
"person": "Pessoas",
|
||||
"scene": "Cenários",
|
||||
"script": "Script",
|
||||
"server_control": "Controlo do servidor",
|
||||
"tags": "Etiquetas",
|
||||
"users": "Utilizadores",
|
||||
"zone": "Zonas"
|
||||
},
|
||||
"reload": {
|
||||
"automation": "Recarregar automações",
|
||||
"command_line": "Recarregar entidades de linha de comando",
|
||||
@@ -925,7 +889,6 @@
|
||||
"zone": "Recarregar zonas"
|
||||
},
|
||||
"server_control": {
|
||||
"perform_action": "Servidor de {action}",
|
||||
"restart": "Recomeçar",
|
||||
"stop": "Parar"
|
||||
}
|
||||
@@ -986,7 +949,6 @@
|
||||
"notification_drawer": {
|
||||
"click_to_configure": "Clique no botão para configurar {entity}",
|
||||
"close": "Fechar",
|
||||
"dismiss_all": "Dispensar todos",
|
||||
"empty": "Sem Notificações",
|
||||
"title": "Notificações"
|
||||
},
|
||||
@@ -1197,7 +1159,6 @@
|
||||
},
|
||||
"unsupported_condition": "Condição não suportada: {condition}"
|
||||
},
|
||||
"copy_to_clipboard": "Copiar para a Área de Transferência",
|
||||
"default_name": "Nova Automação",
|
||||
"description": {
|
||||
"label": "Descrição",
|
||||
@@ -1247,7 +1208,6 @@
|
||||
},
|
||||
"event": {
|
||||
"context_user_pick": "Selecionar o utilizador",
|
||||
"context_user_picked": "Evento do utilizador",
|
||||
"event_data": "Dados do evento",
|
||||
"event_type": "Tipo de evento",
|
||||
"label": "Evento"
|
||||
@@ -1347,11 +1307,7 @@
|
||||
},
|
||||
"thingtalk": {
|
||||
"create": "Criar automação",
|
||||
"link_devices": {
|
||||
"header": "Ótimo! Agora precisamos conectar alguns dispositivos"
|
||||
},
|
||||
"task_selection": {
|
||||
"error_empty": "Entre um comando ou salte este passo.",
|
||||
"for_example": "Por exemplo:",
|
||||
"header": "Criar uma nova automação",
|
||||
"language_note": "Nota: Por enquanto, apenas o inglês é suportado."
|
||||
@@ -1569,7 +1525,6 @@
|
||||
"different_include": "Possivelmente através de um domínio, um glob ou um include diferente.",
|
||||
"pick_attribute": "Escolha um atributo para substituir.",
|
||||
"picker": {
|
||||
"documentation": "Documentação de configuração",
|
||||
"entity": "Entidade",
|
||||
"header": "Personalizações",
|
||||
"introduction": "Ajustar atributos por entidade. Personalizações acrescentadas/editadas terão efeitos imediatos. Remoção de personalizações terão efeito quando a entidade for atualizada."
|
||||
@@ -1584,23 +1539,18 @@
|
||||
"add_prompt": "Nenhum {name} foi adicionado a usar este dispositivo ainda. Podes adicionar um clicando no botão + acima.",
|
||||
"automation": {
|
||||
"actions": {
|
||||
"caption": "Quando alguma coisa é despoletada...",
|
||||
"no_actions": "Nenhuma ação",
|
||||
"unknown_action": "Ação desconhecida"
|
||||
"caption": "Quando alguma coisa é despoletada..."
|
||||
},
|
||||
"automations": "Automações",
|
||||
"conditions": {
|
||||
"caption": "Só fazer alguma coisa se...",
|
||||
"no_conditions": "Sem condições",
|
||||
"unknown_condition": "Condição desconhecida"
|
||||
"caption": "Só fazer alguma coisa se..."
|
||||
},
|
||||
"create": "Criar automação com dispositivo",
|
||||
"no_automations": "Sem automações",
|
||||
"no_device_automations": "Não há automações disponíveis para este dispositivo.",
|
||||
"triggers": {
|
||||
"caption": "Fazer alguma coisa quando..."
|
||||
},
|
||||
"unknown_automation": "Automação desconhecida"
|
||||
}
|
||||
},
|
||||
"cant_edit": "Só pode editar itens que são criados na IU.",
|
||||
"caption": "Dispositivos",
|
||||
@@ -1662,8 +1612,6 @@
|
||||
},
|
||||
"filter": {
|
||||
"filter": "Filtro",
|
||||
"hidden_entities": "{number} {number, plural,\n one {entidade}\n other {entidades}\n} escondidas",
|
||||
"show_all": "Mostrar tudo",
|
||||
"show_disabled": "Mostrar entidades desativadas",
|
||||
"show_readonly": "Mostrar entidades somente de leitura.",
|
||||
"show_unavailable": "Mostrar entidades indisponíveis"
|
||||
@@ -1719,19 +1667,16 @@
|
||||
"no_helpers": "Parece que ainda não tem áreas!"
|
||||
},
|
||||
"types": {
|
||||
"counter": "Contador",
|
||||
"input_boolean": "Interruptor",
|
||||
"input_datetime": "Data e/ou hora",
|
||||
"input_number": "Número",
|
||||
"input_select": "Lista de selecção",
|
||||
"input_text": "Texto",
|
||||
"timer": "Temporizador"
|
||||
"input_text": "Texto"
|
||||
}
|
||||
},
|
||||
"info": {
|
||||
"built_using": "Construído com",
|
||||
"caption": "Informação",
|
||||
"copy_github": "Para GitHub",
|
||||
"custom_uis": "IUs personalizados:",
|
||||
"description": "Ver informações sobre a instalação do Home Assistant",
|
||||
"developed_by": "Desenvolvido por um punhado de pessoas incríveis.",
|
||||
@@ -1751,9 +1696,6 @@
|
||||
"checks": {
|
||||
"cloud": {
|
||||
"alexa_enabled": "Alexa ativa",
|
||||
"can_reach_cert_server": "Ligar ao Servidor de Certificados",
|
||||
"can_reach_cloud": "Ligar ao Home Assistant Cloud",
|
||||
"can_reach_cloud_auth": "Ligar ao servidor de autenticação",
|
||||
"google_enabled": "Google ativo",
|
||||
"logged_in": "Ligado em",
|
||||
"remote_connected": "Ligado remotamente",
|
||||
@@ -1980,7 +1922,6 @@
|
||||
"network": "Rede",
|
||||
"node_id": "ID de nó",
|
||||
"ozw_instance": "Instância OpenZWave",
|
||||
"wakeup_instructions": "Instruções ao acordar",
|
||||
"zwave": "Z-Wave"
|
||||
},
|
||||
"device_info": {
|
||||
@@ -2099,7 +2040,6 @@
|
||||
"update": "Atualizar"
|
||||
},
|
||||
"introduction": "Aqui pode definir cada pessoa de interesse no Home Assistant.",
|
||||
"learn_more": "Saiba mais sobre pessoas",
|
||||
"no_persons_created_yet": "Parece que você ainda não criou nenhuma pessoa.",
|
||||
"note_about_persons_configured_in_yaml": "Nota: pessoas configuradas via configuration.yaml não podem ser editadas via UI.",
|
||||
"person_not_found": "Não conseguimos encontrar a pessoa que estavas a tentar editar.",
|
||||
@@ -2320,7 +2260,6 @@
|
||||
"update_user": "Atualizar"
|
||||
},
|
||||
"picker": {
|
||||
"add_user": "Adicionar Utilizador",
|
||||
"headers": {
|
||||
"group": "Grupo",
|
||||
"name": "Nome",
|
||||
@@ -2601,8 +2540,6 @@
|
||||
"filter_attributes": "Filtrar atributos",
|
||||
"filter_entities": "Filtrar entidades",
|
||||
"filter_states": "Filtrar estados",
|
||||
"last_changed": "Última modificação",
|
||||
"last_updated": "Última atualização",
|
||||
"more_info": "Mais informações",
|
||||
"no_entities": "Sem entidades",
|
||||
"set_state": "Definir Estado",
|
||||
@@ -2829,9 +2766,6 @@
|
||||
"description": "O cartão Glance é útil para agrupar vários sensores numa visão geral compacta.",
|
||||
"name": "Relance"
|
||||
},
|
||||
"grid": {
|
||||
"name": "Grelha"
|
||||
},
|
||||
"history-graph": {
|
||||
"description": "O cartão Gráfico de histórico permite exibir um gráfico para cada uma das entidades listadas.",
|
||||
"name": "Gráfico de histórico"
|
||||
@@ -2930,9 +2864,6 @@
|
||||
"edit": "Editar",
|
||||
"none": "Nenhum"
|
||||
},
|
||||
"edit_badges": {
|
||||
"panel_mode": "Estes crachás não serão exibidos porque esta vista está em \"Modo Painel\"."
|
||||
},
|
||||
"edit_card": {
|
||||
"add": "Adicionar Cartão",
|
||||
"clear": "Limpar",
|
||||
@@ -3356,8 +3287,7 @@
|
||||
},
|
||||
"push_notifications": {
|
||||
"add_device_prompt": {
|
||||
"input_label": "Nome do dispositivo",
|
||||
"title": "Como se deve chamar este dispositivo?"
|
||||
"input_label": "Nome do dispositivo"
|
||||
},
|
||||
"description": "Enviar notificações para este dispositivo.",
|
||||
"error_load_platform": "Configurar notify.html5.",
|
||||
|
@@ -367,7 +367,7 @@
|
||||
},
|
||||
"climate": {
|
||||
"aux_heat": "Дополнительный нагрев",
|
||||
"away_mode": "Режим \"не дома\"",
|
||||
"away_mode": "Режим ожидания",
|
||||
"cooling": "{name} охлаждение",
|
||||
"current_temperature": "{name} текущая температура",
|
||||
"currently": "Сейчас",
|
||||
@@ -514,7 +514,7 @@
|
||||
"disable": "Отключить",
|
||||
"enable": "Включить",
|
||||
"error_required": "Обязательное поле",
|
||||
"leave": "Выйти",
|
||||
"leave": "Покинуть",
|
||||
"loading": "Загрузка",
|
||||
"menu": "Меню",
|
||||
"next": "Далее",
|
||||
@@ -1756,15 +1756,9 @@
|
||||
"system_health": {
|
||||
"checks": {
|
||||
"cloud": {
|
||||
"alexa_enabled": "Интеграция с Alexa",
|
||||
"can_reach_cert_server": "Доступ к серверу сертификатов",
|
||||
"can_reach_cloud": "Доступ к Home Assistant Cloud",
|
||||
"can_reach_cloud_auth": "Доступ к серверу аутентификации",
|
||||
"google_enabled": "Интеграция с Google",
|
||||
"logged_in": "Вход в систему",
|
||||
"relayer_connected": "Relayer подключен",
|
||||
"remote_connected": "Удалённый доступ подключен",
|
||||
"remote_enabled": "Удалённый доступ активирован",
|
||||
"subscription_expiration": "Срок действия подписки"
|
||||
},
|
||||
"homeassistant": {
|
||||
|
@@ -676,11 +676,11 @@
|
||||
},
|
||||
"relative_time": {
|
||||
"duration": {
|
||||
"day": "{count} {count, plural,\n one {dan}\n other {dni}\n}",
|
||||
"hour": "{count} {count, plural,\n one {ura}\n two {uri}\n three {ure}\n four {ure}\n other {ur}\n}",
|
||||
"day": "{count} {count, plural,\none {Dan}\nother {Dni}\n}",
|
||||
"hour": "{count} {count, plural,\n one {Ura}\n other {Ur}\n}",
|
||||
"minute": "{count} {count, plural,\n one {minuta}\n other {minut}\n}",
|
||||
"second": "{count} {count, plural,\none {sekunda}\nother {sekund}\n}",
|
||||
"week": "{count} {count, plural,\none {Teden}\ntwo {Tedna}\nthree {Tedne}\nfour {Tedne}\nother {Tednov}\n}"
|
||||
"week": "{count} {count, plural,\none {Teden}\nother {Tednov}\n}"
|
||||
},
|
||||
"future": "Čez {time}",
|
||||
"future_duration": {
|
||||
@@ -805,9 +805,7 @@
|
||||
"more_info_control": {
|
||||
"controls": "Kontrolniki",
|
||||
"cover": {
|
||||
"close_cover": "Zapri pokrov",
|
||||
"close_tile_cover": "Zapri nagib pokrova",
|
||||
"open_cover": "Odpri pokrov",
|
||||
"open_tilt_cover": "Odpri nagib pokrova",
|
||||
"stop_cover": "Zaustavite premikanje pokrova"
|
||||
},
|
||||
@@ -874,28 +872,6 @@
|
||||
},
|
||||
"quick-bar": {
|
||||
"commands": {
|
||||
"navigation": {
|
||||
"areas": "Področja",
|
||||
"automation": "Avtomatizacije",
|
||||
"core": "Splošno",
|
||||
"customize": "Prilagoditve",
|
||||
"devices": "Naprave",
|
||||
"entities": "Entitete",
|
||||
"helpers": "Pomočniki",
|
||||
"info": "Informacije",
|
||||
"integrations": "Integracije",
|
||||
"logs": "Dnevniki",
|
||||
"lovelace": "Nadzorne plošče Lovelace",
|
||||
"navigate_to": "Pojdi na {panel}",
|
||||
"navigate_to_config": "Pojdi na nastavitve {location}",
|
||||
"person": "Osebe",
|
||||
"scene": "Scene",
|
||||
"script": "Skripti",
|
||||
"server_control": "Nadzor strežnika",
|
||||
"tags": "Značke",
|
||||
"users": "Uporabniki",
|
||||
"zone": "Območja"
|
||||
},
|
||||
"reload": {
|
||||
"automation": "Znova naloži avtomatizacije",
|
||||
"command_line": "Znova naloži entitete ukazne vrstice",
|
||||
@@ -977,10 +953,10 @@
|
||||
}
|
||||
},
|
||||
"duration": {
|
||||
"day": "{count} {count, plural,\none {dan}\nother {dni}\n}",
|
||||
"hour": "{count} {count, plural,\n one {ura}\n two {uri}\n three {ure}\n four {ure}\n other {ur}\n}",
|
||||
"minute": "{count} {count, plural,\n one {minuta}\n two {minuti}\n three {minute}\n four {minute}\n other {minut}\n}",
|
||||
"second": "{count} {count, plural,\none {sekunda}\ntwo {sekundi}\nthree {sekunde}\nfour {sekunde}\nother {sekund}\n}",
|
||||
"day": "{count} {count, plural,\none {Dan}\nother {Dni}\n}",
|
||||
"hour": "{count} {count, plural,\n one {Ura}\n other {Ur}\n}",
|
||||
"minute": "{count} {count, plural,\n one {Minuta}\n other {Minut}\n}",
|
||||
"second": "{count} {count, plural,\none {Sekunda}\nother {Sekund}\n}",
|
||||
"week": "{count} {count, plural,\none {Teden}\nother {Tednov}\n}"
|
||||
},
|
||||
"login-form": {
|
||||
@@ -1251,7 +1227,7 @@
|
||||
"trigger": "Sprožilec"
|
||||
},
|
||||
"event": {
|
||||
"context_user_pick": "Izberite uporabnika",
|
||||
"context_user_pick": "Dodaj uporabnika",
|
||||
"context_user_picked": "Dogodek uporabnikove sprožitve",
|
||||
"context_users": "Omeji na dogodke, ki jih sproži",
|
||||
"event_data": "Podatki o dogodku",
|
||||
@@ -1417,7 +1393,7 @@
|
||||
"instance_is_available": "Vaš primerek je na voljo na",
|
||||
"instance_will_be_available": "Vaš primerek bo na voljo na",
|
||||
"link_learn_how_it_works": "Naučite se, kako deluje",
|
||||
"title": "Oddaljeno upravljanje"
|
||||
"title": "Daljinsko Upravljanje"
|
||||
},
|
||||
"sign_out": "Izpis",
|
||||
"thank_you_note": "Zahvaljujemo se vam za to, da ste del Home Assistant Cloud-a. Zaradi ljudi, kot ste vi, smo sposobni narediti dobro izkušnjo avtomatizacije doma za vsakogar. hvala!",
|
||||
@@ -1430,7 +1406,7 @@
|
||||
"no_hooks_yet": "Izgleda, da še nimate webhooks-ov. Začnite s konfiguracijo ",
|
||||
"no_hooks_yet_link_automation": "webhook avtomatizacije",
|
||||
"no_hooks_yet_link_integration": "integracijo, ki temelji na Webhook-u",
|
||||
"no_hooks_yet2": " ali z ustvarjanjem ",
|
||||
"no_hooks_yet2": "ali z ustvarjanjem",
|
||||
"title": "Webhooks"
|
||||
}
|
||||
},
|
||||
@@ -1591,7 +1567,7 @@
|
||||
}
|
||||
},
|
||||
"devices": {
|
||||
"add_prompt": "{name} še niso bile dodana za to napravo. Lahko jih dodaš s klikom na gumb + spodaj.",
|
||||
"add_prompt": "Noben {name} še ni bil dodan s to napravo. Lahko ga dodaš s klikom na gumb + spodaj.",
|
||||
"automation": {
|
||||
"actions": {
|
||||
"caption": "Ko se nekaj sproži ...",
|
||||
@@ -1665,12 +1641,12 @@
|
||||
"disable_selected": {
|
||||
"button": "Onemogoči izbrane",
|
||||
"confirm_text": "Onemogočene entitete ne bodo dodane v Home Assistant.",
|
||||
"confirm_title": "Ali želite odstraniti {number} {number, plural,\n one {entiteto}\n two {entiteti}\n other {entitete}\n}?"
|
||||
"confirm_title": "Ali želite onemogočiti {number} entitet?"
|
||||
},
|
||||
"enable_selected": {
|
||||
"button": "Omogoči izbrane",
|
||||
"confirm_text": "Naprave bodo znova na voljo v Home Assistant-u, če so zdaj onemogočene.",
|
||||
"confirm_title": "Ali želite omogočiti {number} {number, plural,\n one {entiteto}\n two {entiteti}\n other {entitete}\n}?"
|
||||
"confirm_title": "Ali želite omogočiti {number} entiteto/i/e?"
|
||||
},
|
||||
"filter": {
|
||||
"filter": "Filter",
|
||||
@@ -1692,9 +1668,9 @@
|
||||
"remove_selected": {
|
||||
"button": "Odstrani izbrane",
|
||||
"confirm_partly_text": "Lahko odstranite le {removable} izbranih {selected} entitet. Entitete je mogoče odstraniti le, če integracija ne zagotavlja več entitet. Včasih morate znova zagnati Home Assistant, preden lahko odstranite entitete odstranjene integracije. Ali ste prepričani, da želite odstraniti odstranljive entitete?",
|
||||
"confirm_partly_title": "Samo {number} {number, plural,\n one {izbrana entiteta}\n two {izbrani entiteti}\n tree {izbrane entitete}\n four {izbrane entitete}\n other {izbranih entitet}\n} je lahko odstranjenih.",
|
||||
"confirm_partly_title": "Odstranjene so lahko le izbrane {number} entitete.",
|
||||
"confirm_text": "Če vsebujejo te entitete, bi jih morali odstraniti iz vašega Lovelace config-a in avtomatizacije.",
|
||||
"confirm_title": "Ali želite odstraniti {number} {number, plural,\n one {entiteto}\n two {entiteti}\n other {entitete}\n}?"
|
||||
"confirm_title": "Ali želite odstraniti {number} entiteto-i/e?"
|
||||
},
|
||||
"search": "Iskanje entitet",
|
||||
"selected": "{številka} izbrana/ih",
|
||||
@@ -1743,8 +1719,6 @@
|
||||
"info": {
|
||||
"built_using": "Zgrajen z uporabo",
|
||||
"caption": "Info",
|
||||
"copy_github": "Za GitHub",
|
||||
"copy_raw": "Surovo besedilo",
|
||||
"custom_uis": "Uporabniški vmesniki po meri:",
|
||||
"description": "Ogled informacij o namestitvi Home Assistant",
|
||||
"developed_by": "Razvija ga kup osupljivih ljudi.",
|
||||
@@ -1819,7 +1793,7 @@
|
||||
"entity_unavailable": "entiteta ni na voljo",
|
||||
"firmware": "Firmware: {version}",
|
||||
"hub": "Povezan prek",
|
||||
"manuf": "naredil: {manufacturer}",
|
||||
"manuf": "po {manufacturer}",
|
||||
"no_area": "Brez območja",
|
||||
"no_device": "Entitete brez naprav",
|
||||
"no_devices": "Ta integracija je brez naprav.",
|
||||
@@ -1950,7 +1924,7 @@
|
||||
"type": "Vrsta vira",
|
||||
"update": "Posodobi",
|
||||
"url": "URL",
|
||||
"url_error_msg": "URL je obvezno polje",
|
||||
"url_error_msg": "Url je obvezno polje",
|
||||
"warning_header": "Bodite previdni!",
|
||||
"warning_text": "Dodajanje virov je lahko nevarno, prepričajte se, da poznate vir vira in jim zaupate. Slabi viri lahko resno škodijo vašemu sistemu."
|
||||
},
|
||||
@@ -1962,7 +1936,7 @@
|
||||
},
|
||||
"no_resources": "Brez virov"
|
||||
},
|
||||
"refresh_body": "Če želite dokončati odstranitev, morate osvežiti stran. Jo morda želite osvežiti zdaj?",
|
||||
"refresh_body": "Če želite dokončati odstranitev, morate osvežiti stran, ali jo želite zdaj osvežiti?",
|
||||
"refresh_header": "Ali želite osvežiti?",
|
||||
"types": {
|
||||
"css": "Slogovna stran",
|
||||
@@ -2015,8 +1989,6 @@
|
||||
"network_status": {
|
||||
"details": {
|
||||
"driverallnodesqueried": "Poizvedena so bila vsa vozlišča",
|
||||
"driverallnodesqueriedsomedead": "Poizvedena so bila vsa vozlišča. Nekatera vozlišča so bila najdena mrtva.",
|
||||
"driverawakenodesqueries": "Poizvedena so bila vsa budna vozlišča",
|
||||
"driverfailed": "Povezava s krmilnikom Z-Wave ni uspela",
|
||||
"driverready": "Inicializacija krmilnika Z-Wave",
|
||||
"driverremoved": "Gonilnik je odstranjen",
|
||||
@@ -2040,29 +2012,22 @@
|
||||
"node_config": {
|
||||
"header": "Konfiguracija vozlišča",
|
||||
"help_source": "Opisi konfiguracijskih parametrov in besedilo pomoči zagotavlja projekt OpenZWave.",
|
||||
"introduction": "Upravljajte različne konfiguracijske parametre za vozlišče Z-Wave.",
|
||||
"wakeup_help": "Vozlišča, ki jih napajajo baterije morajo biti budna, da lahko spreminjate njihovo konfiguracijo. Če vozlišče ni budno, bo OpenZWave poskusil posodobiti konfiguracijo vozlišča naslednjič, ko se zbudi, kar pa bi lahko bilo več ur (ali dni) kasneje. Sledite tem korakom, da zbudite napravo:"
|
||||
"introduction": "Upravljajte različne konfiguracijske parametre za vozlišče Z-Wave."
|
||||
},
|
||||
"node_metadata": {
|
||||
"product_manual": "Priročnik za izdelek"
|
||||
},
|
||||
"node_query_stages": {
|
||||
"associations": "Osveževanje pridružitvenih skupin in članstev",
|
||||
"cacheload": "Nalaganje informacij iz datotek predpomnilnika OpenZWave. Vozlišča na bateriji bodo ostala na tej stopnji, dokler se vozlišče ne zbudi.",
|
||||
"complete": "Postopek intervjuja je končan",
|
||||
"configuration": "Pridobitev konfiguracijskih vrednosti iz vozlišča",
|
||||
"dynamic": "Pridobivanje pogosto spreminjajočih se vrednosti iz vozlišča",
|
||||
"instances": "Pridobivanje podatkov o tem, katere instance ali kanale naprava podpira",
|
||||
"manufacturerspecific1": "Pridobivanje identifikacijskih kod proizvajalca in izdelka iz vozlišča",
|
||||
"manufacturerspecific2": "Pridobivanje dodatnih identifikacijskih kod proizvajalca in izdelka iz vozlišča",
|
||||
"neighbors": "Pridobivanje seznama sosedov",
|
||||
"nodeinfo": "Pridobivanje podprtih razredov ukazov iz vozlišča",
|
||||
"nodeplusinfo": "Pridobivanje informacij o Z-Wave + iz vozlišča",
|
||||
"probe": "Preverjanje, ali je vozlišče budno / živo",
|
||||
"protocolinfo": "Pridobivanje osnovnih zmožnosti Z-Wave tega vozlišča od krmilnika",
|
||||
"session": "Pridobitev redko spreminjajočih se vrednosti iz vozlišča",
|
||||
"static": "Pridobivanje statičnih vrednosti iz naprave.",
|
||||
"versions": "Pridobivanje informacij o različicah vdelane programske opreme in o ukaznih razredov",
|
||||
"wakeup": "Nastavljanje podpore za vrste in sporočila za prebujanje"
|
||||
},
|
||||
"node": {
|
||||
@@ -2074,14 +2039,12 @@
|
||||
"id": "ID",
|
||||
"manufacturer": "Proizvajalec",
|
||||
"model": "Model",
|
||||
"query_stage": "Stopnja poizvedbe",
|
||||
"zwave_plus": "Z-Wave Plus"
|
||||
},
|
||||
"refresh_node": {
|
||||
"battery_note": "Če vozlišče napaja baterijo, se pred nadaljevanjem prepričajte, da ga zbudite",
|
||||
"button": "Osveži vozlišče",
|
||||
"complete": "Osveževanje vozlišča je končano",
|
||||
"description": "To bo OpenZWave-u sporočilo, naj znova vzpostavi komunikacijo s vozliščem in posodobi njegove ukazne razrede, zmožnosti in vrednosti vozlišča.",
|
||||
"node_status": "Stanje vozlišča",
|
||||
"refreshing_description": "Osveževanje informacij o vozlišču ...",
|
||||
"start_refresh_button": "Začni osveževanje",
|
||||
@@ -2091,9 +2054,7 @@
|
||||
"wakeup_instructions_source": "Navodila za prebujanje so pridobljena iz podatkovne zbirke naprav OpenZWave."
|
||||
},
|
||||
"select_instance": {
|
||||
"header": "Izberite OpenZWave instanco",
|
||||
"introduction": "Izvaja se več kot ena OpenZWave instanca. S katero instanco bi radi upravljali?",
|
||||
"none_found": "OpenZWave instance ni bilo mogoče najti. Če menite, da je prišlo do napake, preverite vašo OpenZWave in MQTT konfiguracijo in zagotovite, da Home Assistant lahko komunicira z vašim MQTT posrednikom."
|
||||
"header": "Izberite OpenZWave instanco"
|
||||
},
|
||||
"services": {
|
||||
"add_node": "Dodaj vozlišče",
|
||||
@@ -2251,7 +2212,7 @@
|
||||
"input_text": "Ponovno naloži vhodna besedila",
|
||||
"introduction": "Nekateri deli programa Home Assistant se lahko naložijo brez ponovnega zagona. S ponovnim nalaganjem se trenutna konfiguracija YAML zamenja in naloži nova.",
|
||||
"min_max": "Znova naloži entitete min/max",
|
||||
"mqtt": "Znova naložite ročno konfigurirane entitete MQTT",
|
||||
"mqtt": "Ročno osveži konfigurirane entitete MQTT",
|
||||
"person": "Ponovno naloži osebe",
|
||||
"ping": "Znova naloži entitete binarnega senzorja PING",
|
||||
"reload": "Znova naloži {domain}",
|
||||
@@ -2349,7 +2310,6 @@
|
||||
"update_user": "Posodobi"
|
||||
},
|
||||
"picker": {
|
||||
"add_user": "Dodaj uporabnika",
|
||||
"headers": {
|
||||
"group": "Skupina",
|
||||
"name": "Ime",
|
||||
@@ -2630,8 +2590,6 @@
|
||||
"filter_attributes": "Filter atributov",
|
||||
"filter_entities": "Filter entitet",
|
||||
"filter_states": "Filter stanj",
|
||||
"last_changed": "Zadnja sprememba",
|
||||
"last_updated": "Zadnja osvežitev",
|
||||
"more_info": "Več informacij",
|
||||
"no_entities": "Brez entitet",
|
||||
"set_state": "Nastavi stanje",
|
||||
@@ -2718,7 +2676,7 @@
|
||||
}
|
||||
},
|
||||
"changed_toast": {
|
||||
"message": "Nastavitve uporabniškega vmesnika Lovelace za to nadzorno ploščo so bile posodobljene. Če želite videti spremembe, jo osvežite.",
|
||||
"message": "Nastavitve uporabniškega vmesnika Lovelace za to nadzorno ploščo so bile posodobljene, če želite videti spremembe jo morate osvežiti.",
|
||||
"refresh": "Osveži"
|
||||
},
|
||||
"editor": {
|
||||
@@ -2734,7 +2692,7 @@
|
||||
},
|
||||
"editor_service_data": "Podatke o storitvah lahko vnesete samo v urejevalniku kode",
|
||||
"navigation_path": "Navigacijska pot",
|
||||
"url_path": "Pot URL-ja"
|
||||
"url_path": "Url pot"
|
||||
},
|
||||
"card": {
|
||||
"alarm-panel": {
|
||||
@@ -2883,10 +2841,6 @@
|
||||
"description": "Kartica Light omogoča spreminjanje svetlosti luči.",
|
||||
"name": "Luči"
|
||||
},
|
||||
"logbook": {
|
||||
"description": "Na kartici Dnevnik je prikazan seznam dogodkov za entitete.",
|
||||
"name": "Dnevnik"
|
||||
},
|
||||
"map": {
|
||||
"dark_mode": "Temni način?",
|
||||
"default_zoom": "Privzeta povečava",
|
||||
@@ -3102,7 +3056,7 @@
|
||||
},
|
||||
"reload_lovelace": "Ponovno naloži uporabniški vmesnik",
|
||||
"reload_resources": {
|
||||
"refresh_body": "Če želite dokončati ponovno nalaganje, morate osvežiti stran. Ali jo želite zdaj osvežiti?",
|
||||
"refresh_body": "Če želite dokončati ponovno nalaganje, morate osvežiti stran, ali jo želite zdaj osvežiti?",
|
||||
"refresh_header": "Ali želite osvežiti?"
|
||||
},
|
||||
"unused_entities": {
|
||||
|
@@ -806,10 +806,7 @@
|
||||
"controls": "控制项",
|
||||
"cover": {
|
||||
"close_cover": "关闭卷帘",
|
||||
"close_tile_cover": "关闭翻转式卷帘",
|
||||
"open_cover": "打开卷帘",
|
||||
"open_tilt_cover": "打开翻转式卷帘",
|
||||
"stop_cover": "停止卷帘移动"
|
||||
"open_cover": "打开卷帘"
|
||||
},
|
||||
"details": "详情",
|
||||
"dismiss": "关闭对话框",
|
||||
|
@@ -1743,8 +1743,6 @@
|
||||
"info": {
|
||||
"built_using": "建置使用",
|
||||
"caption": "更多資訊",
|
||||
"copy_github": "GitHub",
|
||||
"copy_raw": "原始文字",
|
||||
"custom_uis": "自定介面:",
|
||||
"description": "檢視 Home Assistant 安裝資訊",
|
||||
"developed_by": "由一群充滿熱情的人們所開發。",
|
||||
|
Reference in New Issue
Block a user