mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
commit
9e1a8b646b
@ -84,7 +84,8 @@
|
||||
"@typescript-eslint/no-unused-vars": 0,
|
||||
"@typescript-eslint/explicit-function-return-type": 0,
|
||||
"@typescript-eslint/explicit-module-boundary-types": 0,
|
||||
"@typescript-eslint/no-shadow": ["error"]
|
||||
"@typescript-eslint/no-shadow": ["error"],
|
||||
"lit/attribute-value-entities": 0
|
||||
},
|
||||
"plugins": ["disable", "import", "lit", "prettier", "@typescript-eslint"],
|
||||
"processor": "disable/disable"
|
||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="home-assistant-frontend",
|
||||
version="20210402.0",
|
||||
version="20210402.1",
|
||||
description="The Home Assistant frontend",
|
||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||
author="The Home Assistant Authors",
|
||||
|
@ -1,5 +1,7 @@
|
||||
type NonUndefined<T> = T extends undefined ? never : T;
|
||||
|
||||
export function ensureArray(value: undefined): undefined;
|
||||
export function ensureArray<T>(value: T | T[]): T[];
|
||||
export function ensureArray<T>(value: T | T[]): NonUndefined<T>[];
|
||||
export function ensureArray(value) {
|
||||
if (value === undefined || Array.isArray(value)) {
|
||||
return value;
|
||||
|
@ -99,7 +99,7 @@ export class HaEntityPicker extends LitElement {
|
||||
|
||||
@property({ type: Boolean }) private _opened = false;
|
||||
|
||||
@query("vaadin-combo-box-light", true) private _comboBox!: HTMLElement;
|
||||
@query("vaadin-combo-box-light", true) private comboBox!: HTMLElement;
|
||||
|
||||
public open() {
|
||||
this.updateComplete.then(() => {
|
||||
@ -208,7 +208,7 @@ export class HaEntityPicker extends LitElement {
|
||||
this.entityFilter,
|
||||
this.includeDeviceClasses
|
||||
);
|
||||
(this._comboBox as any).filteredItems = this._states;
|
||||
(this.comboBox as any).filteredItems = this._states;
|
||||
this._initedStates = true;
|
||||
}
|
||||
}
|
||||
@ -296,7 +296,7 @@ export class HaEntityPicker extends LitElement {
|
||||
|
||||
private _filterChanged(ev: CustomEvent): void {
|
||||
const filterString = ev.detail.value.toLowerCase();
|
||||
(this._comboBox as any).filteredItems = this._states.filter(
|
||||
(this.comboBox as any).filteredItems = this._states.filter(
|
||||
(state) =>
|
||||
state.entity_id.toLowerCase().includes(filterString) ||
|
||||
computeStateName(state).toLowerCase().includes(filterString)
|
||||
|
@ -18,6 +18,9 @@ import type { HomeAssistant } from "../types";
|
||||
import "./ha-svg-icon";
|
||||
import "./ha-area-picker";
|
||||
import "./device/ha-device-picker";
|
||||
import "./entity/ha-entity-picker";
|
||||
import { computeStateName } from "../common/entity/compute_state_name";
|
||||
import { computeDeviceName } from "../data/device_registry";
|
||||
|
||||
declare global {
|
||||
// for fire event
|
||||
@ -33,6 +36,7 @@ declare global {
|
||||
interface FilterValue {
|
||||
area?: string;
|
||||
device?: string;
|
||||
entity?: string;
|
||||
}
|
||||
|
||||
@customElement("ha-button-related-filter-menu")
|
||||
@ -47,6 +51,14 @@ export class HaRelatedFilterButtonMenu extends LitElement {
|
||||
|
||||
@property({ attribute: false }) public value?: FilterValue;
|
||||
|
||||
/**
|
||||
* Show no entities of these domains.
|
||||
* @type {Array}
|
||||
* @attr exclude-domains
|
||||
*/
|
||||
@property({ type: Array, attribute: "exclude-domains" })
|
||||
public excludeDomains?: string[];
|
||||
|
||||
@internalProperty() private _open = false;
|
||||
|
||||
protected render(): TemplateResult {
|
||||
@ -78,6 +90,15 @@ export class HaRelatedFilterButtonMenu extends LitElement {
|
||||
.value=${this.value?.device}
|
||||
@value-changed=${this._devicePicked}
|
||||
></ha-device-picker>
|
||||
<ha-entity-picker
|
||||
.label=${this.hass.localize(
|
||||
"ui.components.related-filter-menu.filter_by_entity"
|
||||
)}
|
||||
.hass=${this.hass}
|
||||
.value=${this.value?.entity}
|
||||
.excludeDomains=${this.excludeDomains}
|
||||
@value-changed=${this._entityPicked}
|
||||
></ha-entity-picker>
|
||||
</mwc-menu-surface>
|
||||
`;
|
||||
}
|
||||
@ -93,6 +114,25 @@ export class HaRelatedFilterButtonMenu extends LitElement {
|
||||
this._open = false;
|
||||
}
|
||||
|
||||
private async _entityPicked(ev: CustomEvent) {
|
||||
const entityId = ev.detail.value;
|
||||
if (!entityId) {
|
||||
fireEvent(this, "related-changed", { value: undefined });
|
||||
return;
|
||||
}
|
||||
const filter = this.hass.localize(
|
||||
"ui.components.related-filter-menu.filtered_by_entity",
|
||||
"entity_name",
|
||||
computeStateName((ev.currentTarget as any).comboBox.selectedItem)
|
||||
);
|
||||
const items = await findRelated(this.hass, "entity", entityId);
|
||||
fireEvent(this, "related-changed", {
|
||||
value: { entity: entityId },
|
||||
filter,
|
||||
items,
|
||||
});
|
||||
}
|
||||
|
||||
private async _devicePicked(ev: CustomEvent) {
|
||||
const deviceId = ev.detail.value;
|
||||
if (!deviceId) {
|
||||
@ -102,7 +142,10 @@ export class HaRelatedFilterButtonMenu extends LitElement {
|
||||
const filter = this.hass.localize(
|
||||
"ui.components.related-filter-menu.filtered_by_device",
|
||||
"device_name",
|
||||
(ev.currentTarget as any).comboBox.selectedItem.name
|
||||
computeDeviceName(
|
||||
(ev.currentTarget as any).comboBox.selectedItem,
|
||||
this.hass
|
||||
)
|
||||
);
|
||||
const items = await findRelated(this.hass, "device", deviceId);
|
||||
|
||||
@ -142,7 +185,8 @@ export class HaRelatedFilterButtonMenu extends LitElement {
|
||||
position: static;
|
||||
}
|
||||
ha-area-picker,
|
||||
ha-device-picker {
|
||||
ha-device-picker,
|
||||
ha-entity-picker {
|
||||
display: block;
|
||||
width: 300px;
|
||||
padding: 4px 16px;
|
||||
|
@ -177,7 +177,7 @@ class HatScriptGraph extends LitElement {
|
||||
track: trace !== undefined && trace[0].result?.choice === i,
|
||||
})}
|
||||
></hat-graph-node>
|
||||
${branch.sequence.map((action, j) =>
|
||||
${ensureArray(branch.sequence).map((action, j) =>
|
||||
this.render_node(action, `${branch_path}/sequence/${j}`)
|
||||
)}
|
||||
</hat-graph>
|
||||
@ -192,7 +192,7 @@ class HatScriptGraph extends LitElement {
|
||||
trace !== undefined && trace[0].result?.choice === "default",
|
||||
})}
|
||||
></hat-graph-node>
|
||||
${config.default?.map((action, i) =>
|
||||
${ensureArray(config.default)?.map((action, i) =>
|
||||
this.render_node(action, `${path}/default/${i}`)
|
||||
)}
|
||||
</hat-graph>
|
||||
@ -319,7 +319,7 @@ class HatScriptGraph extends LitElement {
|
||||
.badge=${repeats}
|
||||
></hat-graph-node>
|
||||
<hat-graph>
|
||||
${node.repeat.sequence.map((action, i) =>
|
||||
${ensureArray(node.repeat.sequence).map((action, i) =>
|
||||
this.render_node(action, `${path}/repeat/sequence/${i}`)
|
||||
)}
|
||||
</hat-graph>
|
||||
@ -421,43 +421,52 @@ class HatScriptGraph extends LitElement {
|
||||
return this.render_trigger(trigger, i);
|
||||
}
|
||||
);
|
||||
return html`
|
||||
<hat-graph class="parent">
|
||||
<div></div>
|
||||
<hat-graph
|
||||
branching
|
||||
id="trigger"
|
||||
.short=${trigger_nodes.length < 2}
|
||||
.track_start=${track_path}
|
||||
.track_end=${track_path}
|
||||
>
|
||||
${trigger_nodes}
|
||||
</hat-graph>
|
||||
<hat-graph id="condition">
|
||||
${ensureArray(this.trace.config.condition)?.map((condition, i) =>
|
||||
this.render_condition(condition!, i)
|
||||
try {
|
||||
return html`
|
||||
<hat-graph class="parent">
|
||||
<div></div>
|
||||
<hat-graph
|
||||
branching
|
||||
id="trigger"
|
||||
.short=${trigger_nodes.length < 2}
|
||||
.track_start=${track_path}
|
||||
.track_end=${track_path}
|
||||
>
|
||||
${trigger_nodes}
|
||||
</hat-graph>
|
||||
<hat-graph id="condition">
|
||||
${ensureArray(this.trace.config.condition)?.map((condition, i) =>
|
||||
this.render_condition(condition!, i)
|
||||
)}
|
||||
</hat-graph>
|
||||
${ensureArray(this.trace.config.action).map((action, i) =>
|
||||
this.render_node(action, `action/${i}`)
|
||||
)}
|
||||
</hat-graph>
|
||||
${ensureArray(this.trace.config.action).map((action, i) =>
|
||||
this.render_node(action, `action/${i}`)
|
||||
)}
|
||||
</hat-graph>
|
||||
<div class="actions">
|
||||
<mwc-icon-button
|
||||
.disabled=${paths.length === 0 || paths[0] === this.selected}
|
||||
@click=${this.previousTrackedNode}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiChevronUp}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
<mwc-icon-button
|
||||
.disabled=${paths.length === 0 ||
|
||||
paths[paths.length - 1] === this.selected}
|
||||
@click=${this.nextTrackedNode}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiChevronDown}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</div>
|
||||
`;
|
||||
<div class="actions">
|
||||
<mwc-icon-button
|
||||
.disabled=${paths.length === 0 || paths[0] === this.selected}
|
||||
@click=${this.previousTrackedNode}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiChevronUp}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
<mwc-icon-button
|
||||
.disabled=${paths.length === 0 ||
|
||||
paths[paths.length - 1] === this.selected}
|
||||
@click=${this.nextTrackedNode}
|
||||
>
|
||||
<ha-svg-icon .path=${mdiChevronDown}></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</div>
|
||||
`;
|
||||
} catch (err) {
|
||||
return html`
|
||||
<div class="error">
|
||||
Error rendering graph. Please download trace and share with the
|
||||
developers.
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
protected update(changedProps: PropertyValues<this>) {
|
||||
@ -539,6 +548,10 @@ class HatScriptGraph extends LitElement {
|
||||
.parent {
|
||||
margin-left: 8px;
|
||||
}
|
||||
.error {
|
||||
padding: 16px;
|
||||
max-width: 300px;
|
||||
}
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
@ -23,9 +23,9 @@ export interface ManualAutomationConfig {
|
||||
id?: string;
|
||||
alias?: string;
|
||||
description?: string;
|
||||
trigger: Trigger[];
|
||||
condition?: Condition[];
|
||||
action: Action[];
|
||||
trigger: Trigger | Trigger[];
|
||||
condition?: Condition | Condition[];
|
||||
action: Action | Action[];
|
||||
mode?: typeof MODES[number];
|
||||
max?: number;
|
||||
max_exceeded?:
|
||||
@ -161,7 +161,7 @@ export type Trigger =
|
||||
export interface LogicalCondition {
|
||||
condition: "and" | "not" | "or";
|
||||
alias?: string;
|
||||
conditions: Condition[];
|
||||
conditions: Condition | Condition[];
|
||||
}
|
||||
|
||||
export interface StateCondition {
|
||||
|
@ -22,7 +22,7 @@ export interface ScriptEntity extends HassEntityBase {
|
||||
|
||||
export interface ScriptConfig {
|
||||
alias: string;
|
||||
sequence: Action[];
|
||||
sequence: Action | Action[];
|
||||
icon?: string;
|
||||
mode?: typeof MODES[number];
|
||||
max?: number;
|
||||
@ -89,7 +89,7 @@ export interface RepeatAction {
|
||||
|
||||
interface BaseRepeat {
|
||||
alias?: string;
|
||||
sequence: Action[];
|
||||
sequence: Action | Action[];
|
||||
}
|
||||
|
||||
export interface CountRepeat extends BaseRepeat {
|
||||
@ -107,13 +107,13 @@ export interface UntilRepeat extends BaseRepeat {
|
||||
export interface ChooseActionChoice {
|
||||
alias?: string;
|
||||
conditions: string | Condition[];
|
||||
sequence: Action[];
|
||||
sequence: Action | Action[];
|
||||
}
|
||||
|
||||
export interface ChooseAction {
|
||||
alias?: string;
|
||||
choose: ChooseActionChoice[];
|
||||
default?: Action[];
|
||||
default?: Action | Action[];
|
||||
}
|
||||
|
||||
export interface VariablesAction {
|
||||
|
@ -213,21 +213,21 @@ class HaAutomationPicker extends LitElement {
|
||||
.label="${this.hass.localize(
|
||||
"ui.panel.config.automation.picker.edit_automation"
|
||||
)}"
|
||||
><ha-svg-icon .path=${
|
||||
automation.attributes.id ? mdiPencil : mdiPencilOff
|
||||
}></ha-svg-icon>
|
||||
>
|
||||
<ha-svg-icon
|
||||
.path=${automation.attributes.id ? mdiPencil : mdiPencilOff}
|
||||
></ha-svg-icon>
|
||||
</mwc-icon-button>
|
||||
</a>
|
||||
${
|
||||
!automation.attributes.id
|
||||
? html`
|
||||
<paper-tooltip animation-delay="0" position="left">
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.automation.picker.only_editable"
|
||||
)}
|
||||
</paper-tooltip>
|
||||
`
|
||||
: ""
|
||||
}
|
||||
${!automation.attributes.id
|
||||
? html`
|
||||
<paper-tooltip animation-delay="0" position="left">
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.automation.picker.only_editable"
|
||||
)}
|
||||
</paper-tooltip>
|
||||
`
|
||||
: ""}
|
||||
`,
|
||||
};
|
||||
return columns;
|
||||
@ -261,6 +261,7 @@ class HaAutomationPicker extends LitElement {
|
||||
.narrow=${this.narrow}
|
||||
.hass=${this.hass}
|
||||
.value=${this._filterValue}
|
||||
exclude-domains='["automation"]'
|
||||
@related-changed=${this._relatedFilterChanged}
|
||||
>
|
||||
</ha-button-related-filter-menu>
|
||||
|
@ -105,6 +105,7 @@ export class HaAutomationTracePathDetails extends LitElement {
|
||||
path,
|
||||
timestamp,
|
||||
result,
|
||||
error,
|
||||
changed_variables,
|
||||
...rest
|
||||
} = trace as any;
|
||||
@ -116,6 +117,8 @@ export class HaAutomationTracePathDetails extends LitElement {
|
||||
${result
|
||||
? html`Result:
|
||||
<pre>${safeDump(result)}</pre>`
|
||||
: error
|
||||
? html`<div class="error">Error: ${error}</div>`
|
||||
: ""}
|
||||
${Object.keys(rest).length === 0
|
||||
? ""
|
||||
@ -232,6 +235,10 @@ ${safeDump(trace.changed_variables).trimRight()}</pre
|
||||
pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.error {
|
||||
color: var(--error-color);
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
|
@ -469,6 +469,11 @@ export class HaAutomationTrace extends LitElement {
|
||||
|
||||
.graph {
|
||||
border-right: 1px solid var(--divider-color);
|
||||
overflow-x: auto;
|
||||
max-width: 50%;
|
||||
}
|
||||
:host([narrow]) .graph {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.info {
|
||||
|
@ -15,7 +15,6 @@ import {
|
||||
} from "lit-element";
|
||||
import { fireEvent } from "../../../common/dom/fire_event";
|
||||
import "../../../components/ha-circular-progress";
|
||||
import "../../../components/ha-dialog";
|
||||
import "../../../components/ha-expansion-panel";
|
||||
import {
|
||||
BlueprintImportResult,
|
||||
@ -24,6 +23,7 @@ import {
|
||||
} from "../../../data/blueprint";
|
||||
import { haStyleDialog } from "../../../resources/styles";
|
||||
import type { HomeAssistant } from "../../../types";
|
||||
import { createCloseHeading } from "../../../components/ha-dialog";
|
||||
|
||||
@customElement("ha-dialog-import-blueprint")
|
||||
class DialogImportBlueprint extends LitElement {
|
||||
@ -65,7 +65,10 @@ class DialogImportBlueprint extends LitElement {
|
||||
<ha-dialog
|
||||
open
|
||||
@closed=${this.closeDialog}
|
||||
.heading=${this.hass.localize("ui.panel.config.blueprint.add.header")}
|
||||
.heading=${createCloseHeading(
|
||||
this.hass,
|
||||
this.hass.localize("ui.panel.config.blueprint.add.header")
|
||||
)}
|
||||
>
|
||||
<div>
|
||||
${this._error ? html` <div class="error">${this._error}</div> ` : ""}
|
||||
|
@ -58,6 +58,9 @@ class HaSceneDashboard extends LitElement {
|
||||
|
||||
private _scenes = memoizeOne(
|
||||
(scenes: SceneEntity[], filteredScenes?: string[] | null) => {
|
||||
if (filteredScenes === null) {
|
||||
return [];
|
||||
}
|
||||
return (filteredScenes
|
||||
? scenes.filter((scene) => filteredScenes!.includes(scene.entity_id))
|
||||
: scenes
|
||||
@ -183,6 +186,7 @@ class HaSceneDashboard extends LitElement {
|
||||
.narrow=${this.narrow}
|
||||
.hass=${this.hass}
|
||||
.value=${this._filterValue}
|
||||
exclude-domains='["scene"]'
|
||||
@related-changed=${this._relatedFilterChanged}
|
||||
>
|
||||
</ha-button-related-filter-menu>
|
||||
|
@ -56,6 +56,9 @@ class HaScriptPicker extends LitElement {
|
||||
|
||||
private _scripts = memoizeOne(
|
||||
(scripts: HassEntity[], filteredScripts?: string[] | null) => {
|
||||
if (filteredScripts === null) {
|
||||
return [];
|
||||
}
|
||||
return (filteredScripts
|
||||
? scripts.filter((script) =>
|
||||
filteredScripts!.includes(script.entity_id)
|
||||
@ -193,6 +196,7 @@ class HaScriptPicker extends LitElement {
|
||||
.narrow=${this.narrow}
|
||||
.hass=${this.hass}
|
||||
.value=${this._filterValue}
|
||||
exclude-domains='["script"]'
|
||||
@related-changed=${this._relatedFilterChanged}
|
||||
>
|
||||
</ha-button-related-filter-menu>
|
||||
|
@ -75,6 +75,7 @@ export const derivedStyles = {
|
||||
"mdc-theme-on-primary": "var(--text-primary-color)",
|
||||
"mdc-theme-on-secondary": "var(--text-primary-color)",
|
||||
"mdc-theme-on-surface": "var(--primary-text-color)",
|
||||
"mdc-theme-text-disabled-on-light": "var(--disabled-text-color)",
|
||||
"mdc-theme-text-primary-on-background": "var(--primary-text-color)",
|
||||
"mdc-theme-text-secondary-on-background": "var(--secondary-text-color)",
|
||||
"mdc-theme-text-icon-on-background": "var(--secondary-text-color)",
|
||||
|
@ -399,8 +399,10 @@
|
||||
}
|
||||
},
|
||||
"related-filter-menu": {
|
||||
"filter_by_entity": "Filter by entity",
|
||||
"filter_by_device": "Filter by device",
|
||||
"filter_by_area": "Filter by area",
|
||||
"filtered_by_entity": "entity: {entity_name}",
|
||||
"filtered_by_device": "device: {device_name}",
|
||||
"filtered_by_area": "area: {area_name}"
|
||||
},
|
||||
|
@ -640,6 +640,8 @@
|
||||
"today": "Днес"
|
||||
},
|
||||
"data-table": {
|
||||
"filtering_by": "Филтриране по",
|
||||
"hidden": "{number} скрити",
|
||||
"no-data": "Няма данни",
|
||||
"search": "Търсене"
|
||||
},
|
||||
@ -745,6 +747,12 @@
|
||||
"label": "Снимка",
|
||||
"unsupported_format": "Неподдържан формат, моля, изберете JPEG, PNG или GIF изображение."
|
||||
},
|
||||
"related-filter-menu": {
|
||||
"filter_by_area": "Филтриране по област",
|
||||
"filter_by_device": "Филтриране по устройство",
|
||||
"filtered_by_area": "област: {area_name}",
|
||||
"filtered_by_device": "устройство: {device_name}"
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Област",
|
||||
"automation": "Част от следните автоматизации",
|
||||
@ -1046,6 +1054,7 @@
|
||||
},
|
||||
"errors": {
|
||||
"config": {
|
||||
"edit_in_yaml_supported": "Все още можете да редактирате вашата конфигурация в YAML.",
|
||||
"error_detected": "Открити са грешки в конфигурацията",
|
||||
"key_missing": "Липсва задължителният ключ \"{key}\".",
|
||||
"no_template_editor_support": "Шаблоните не се поддържат във визуалния редактор"
|
||||
@ -1076,6 +1085,7 @@
|
||||
"devices": "Устройства"
|
||||
},
|
||||
"delete": {
|
||||
"confirmation_text": "Всички устройства в тази област ще станат неназначени.",
|
||||
"confirmation_title": "Сигурни ли сте, че искате да изтриете тази област?"
|
||||
},
|
||||
"description": "Групирайте устройствата и обектите в области",
|
||||
@ -1225,6 +1235,7 @@
|
||||
"above": "Над",
|
||||
"below": "Под",
|
||||
"for": "Продължителност",
|
||||
"hvac_mode": "HVAC режим",
|
||||
"preset_mode": "Предварително зададен режим"
|
||||
},
|
||||
"label": "Устройство"
|
||||
@ -1413,8 +1424,8 @@
|
||||
"delete_automation": "Изтрийте автоматизацията",
|
||||
"delete_confirm": "Наистина ли искате да изтриете тази автоматизация?",
|
||||
"duplicate": "Дублиране",
|
||||
"duplicate_automation": "Дублиране на автоматизация",
|
||||
"edit_automation": "Редактиране на автоматизация",
|
||||
"duplicate_automation": "Дублиране на автоматизацията",
|
||||
"edit_automation": "Редактиране на автоматизацията",
|
||||
"header": "Редактор на автоматизации",
|
||||
"headers": {
|
||||
"name": "Име"
|
||||
@ -1458,7 +1469,7 @@
|
||||
"add_blueprint": "Импортирайте план",
|
||||
"confirm_delete_header": "Да се изтрие ли този план?",
|
||||
"confirm_delete_text": "Наистина ли искате да изтриете този план?",
|
||||
"delete_blueprint": "Изтриване на план",
|
||||
"delete_blueprint": "Изтриване на плана",
|
||||
"discover_more": "Открийте още планове",
|
||||
"header": "Редактор на планове",
|
||||
"headers": {
|
||||
@ -1485,6 +1496,7 @@
|
||||
"config_documentation": "Документация за конфигурацията",
|
||||
"devices_pin": "ПИН код за Устройства за защита",
|
||||
"enter_pin_hint": "Въведете ПИН за използване на устройства за защита",
|
||||
"not_configured_title": "Google Assistant не е активиран",
|
||||
"security_devices": "Устройства за защита",
|
||||
"title": "Google Assistant"
|
||||
},
|
||||
@ -1608,6 +1620,27 @@
|
||||
"description": "Променете общите настройки на Home Assistant",
|
||||
"section": {
|
||||
"core": {
|
||||
"analytics": {
|
||||
"header": "Анализи",
|
||||
"learn_more": "Научете повече за това как ще бъдат обработени вашите данни.",
|
||||
"needs_base": "Трябва да активирате базовия анализ, за да бъде налична тази опция",
|
||||
"preference": {
|
||||
"base": {
|
||||
"title": "Базов анализ"
|
||||
},
|
||||
"diagnostics": {
|
||||
"description": "Споделяйте доклади за сривове и диагностична информация",
|
||||
"title": "Диагностика"
|
||||
},
|
||||
"usage_supervisor": {
|
||||
"title": "Използвани интеграции и добавки"
|
||||
},
|
||||
"usage": {
|
||||
"description": "Това включва имената на вашите интеграции",
|
||||
"title": "Използвани интеграции"
|
||||
}
|
||||
}
|
||||
},
|
||||
"core_config": {
|
||||
"edit_requires_storage": "Редакторът е деактивиран, защото конфигурацията е съхранена в configuration.yaml.",
|
||||
"elevation": "Надморска височина",
|
||||
@ -1657,7 +1690,7 @@
|
||||
"no_conditions": "Няма условия",
|
||||
"unknown_condition": "Неизвестно условие"
|
||||
},
|
||||
"create": "Създаване на автоматизация с устройство",
|
||||
"create": "Създаване на автоматизация с устройството",
|
||||
"create_disable": "Не може да се създаде автоматизация с деактивирано устройство",
|
||||
"no_automations": "Няма автоматизации",
|
||||
"no_device_automations": "Няма налични автоматизации за това устройство.",
|
||||
@ -1704,14 +1737,14 @@
|
||||
"search": "Търсене на устройства"
|
||||
},
|
||||
"scene": {
|
||||
"create": "Създаване на сцена с устройство",
|
||||
"create": "Създаване на сцена с устройството",
|
||||
"create_disable": "Не може да се създаде сцена с деактивирано устройство",
|
||||
"no_scenes": "Няма сцени",
|
||||
"scenes": "Сцени"
|
||||
},
|
||||
"scenes": "Сцени",
|
||||
"script": {
|
||||
"create": "Създаване на скрипт с устройство",
|
||||
"create": "Създаване на скрипт с устройството",
|
||||
"create_disable": "Не може да се създаде скрипт с деактивирано устройство",
|
||||
"no_scripts": "Няма скриптове",
|
||||
"scripts": "Скриптове"
|
||||
@ -1751,7 +1784,8 @@
|
||||
"search": "Търсене на обекти",
|
||||
"status": {
|
||||
"ok": "ДА",
|
||||
"readonly": "Само за четене"
|
||||
"readonly": "Само за четене",
|
||||
"unavailable": "Недостъпен"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1785,6 +1819,7 @@
|
||||
"description": "Версия, състояние на системата и връзки към документация",
|
||||
"documentation": "Документация",
|
||||
"home_assistant_logo": "Лого на Home Assistant",
|
||||
"icons_by": "Икони от",
|
||||
"integrations": "Интеграции",
|
||||
"license": "Публикувано под лиценза Apache 2.0",
|
||||
"path_configuration": "Път към configuration.yaml: {path}",
|
||||
@ -1842,7 +1877,8 @@
|
||||
"open_site": "Отваряне на уеб сайт"
|
||||
},
|
||||
"loading_first_time": "Моля, изчакайте, докато се инсталира интеграцията",
|
||||
"not_all_required_fields": "Не всички задължителни полета са попълнени."
|
||||
"not_all_required_fields": "Не всички задължителни полета са попълнени.",
|
||||
"not_loaded": "Интеграцията не можа да бъде заредена, опитайте да рестартирате Home Assistant."
|
||||
},
|
||||
"configure": "Конфигуриране",
|
||||
"configured": "Конфигуриран",
|
||||
@ -1874,6 +1910,13 @@
|
||||
"introduction": "Тук е възможно да конфигурирате Вашите компоненти и Home Assistant. Не всичко е възможно да се конфигурира от Интерфейса, но работим по върпоса.",
|
||||
"logs": {
|
||||
"clear": "Изчистване",
|
||||
"level": {
|
||||
"critical": "КРИТИЧНО",
|
||||
"debug": "ДЕБЪГ",
|
||||
"error": "ГРЕШКА",
|
||||
"info": "ИНФО",
|
||||
"warning": "ВНИМАНИЕ"
|
||||
},
|
||||
"multiple_messages": "съобщението е възникнало за първи път в {time} и се показва {counter} пъти",
|
||||
"refresh": "Опресняване"
|
||||
},
|
||||
@ -2002,7 +2045,7 @@
|
||||
"description": "Управлявайте хората, които се следят от Home Assistant.",
|
||||
"detail": {
|
||||
"admin": "Администратор",
|
||||
"allow_login": "Разрешаване на потребителя да се впише",
|
||||
"allow_login": "Разрешаване на потребителя да се вписва",
|
||||
"confirm_delete_user": "Сигурен ли сте, че искате да изтриете потребителски акаунт {name}? Все още ще можете да проследявате човека, но той, повече няма да може да се вписва.",
|
||||
"create": "Създаване",
|
||||
"delete": "Изтрий",
|
||||
@ -2048,8 +2091,8 @@
|
||||
"picker": {
|
||||
"add_scene": "Добавяне на сцена",
|
||||
"delete_confirm": "Сигурни ли сте, че искате да изтриете тази сцена?",
|
||||
"delete_scene": "Изтриване на сцена",
|
||||
"edit_scene": "Редактиране на сцена",
|
||||
"delete_scene": "Изтриване на сцената",
|
||||
"edit_scene": "Редактиране на сцената",
|
||||
"header": "Редактор на сцени",
|
||||
"headers": {
|
||||
"name": "Име"
|
||||
@ -2057,7 +2100,7 @@
|
||||
"learn_more": "Научете повече за сцените",
|
||||
"only_editable": "Само сцени дефинирани в scenes.yaml могат да се редактират.",
|
||||
"pick_scene": "Изберете сцена за редактиране",
|
||||
"show_info_scene": "Показване на информация за сцена"
|
||||
"show_info_scene": "Показване на информация за сцената"
|
||||
}
|
||||
},
|
||||
"script": {
|
||||
@ -2067,7 +2110,7 @@
|
||||
"alias": "Име",
|
||||
"default_name": "Нов скрипт",
|
||||
"delete_confirm": "Сигурни ли сте, че искате да изтриете този скрипт?",
|
||||
"delete_script": "Изтриване на скрипт",
|
||||
"delete_script": "Изтриване на скрипта",
|
||||
"header": "Скрипт: {name}",
|
||||
"icon": "Икона",
|
||||
"id_already_exists": "Това ID вече съществува",
|
||||
@ -2086,8 +2129,8 @@
|
||||
"picker": {
|
||||
"add_script": "Добавяне на скрипт",
|
||||
"duplicate": "Дублиране",
|
||||
"duplicate_script": "Дублиране на скрипт",
|
||||
"edit_script": "Редактиране на скрипт",
|
||||
"duplicate_script": "Дублиране на скрипта",
|
||||
"edit_script": "Редактиране на скрипта",
|
||||
"headers": {
|
||||
"name": "Име"
|
||||
},
|
||||
@ -2140,7 +2183,7 @@
|
||||
"caption": "Маркери",
|
||||
"confirm_remove": "Наистина ли искате да премахнете маркера {tag}?",
|
||||
"confirm_remove_title": "Премахване на маркера?",
|
||||
"create_automation": "Създаване на автоматизация с маркер",
|
||||
"create_automation": "Създаване на автоматизация с маркера",
|
||||
"description": "Задействайте автоматизации при сканиране на NFC етикет, QR код и др",
|
||||
"detail": {
|
||||
"create": "Създаване",
|
||||
@ -2182,7 +2225,7 @@
|
||||
"change_password": "Смяна на парола",
|
||||
"confirm_user_deletion": "Наистина ли искате да изтриете {name}?",
|
||||
"deactivate_user": "Деактивиране на потребителя",
|
||||
"delete_user": "Изтриване на потребител",
|
||||
"delete_user": "Изтриване на потребителя",
|
||||
"group": "Група",
|
||||
"id": "ID",
|
||||
"name": "Показвано име",
|
||||
@ -2655,8 +2698,8 @@
|
||||
"add": "Добавяне на карта",
|
||||
"clear": "Изчистване",
|
||||
"confirm_cancel": "Сигурни ли сте, че искате да отмените?",
|
||||
"delete": "Изтриване на карта",
|
||||
"duplicate": "Дублиране на карта",
|
||||
"delete": "Изтриване на картата",
|
||||
"duplicate": "Дублиране на картата",
|
||||
"edit": "Редактиране",
|
||||
"header": "Конфигуриране на Карта",
|
||||
"move": "Преместване в изглед",
|
||||
@ -2672,7 +2715,7 @@
|
||||
"unsaved_changes": "Имате незапазени промени"
|
||||
},
|
||||
"edit_lovelace": {
|
||||
"edit_title": "Редактиране на заглавие",
|
||||
"edit_title": "Редактиране на заглавието",
|
||||
"explanation": "Това заглавие се показва над всичките ви изгледи в Lovelace",
|
||||
"header": "Заглавие на вашия Lovelace потребителски интерфейс",
|
||||
"title": "Заглавие"
|
||||
@ -2763,7 +2806,7 @@
|
||||
},
|
||||
"menu": {
|
||||
"close": "Затвори",
|
||||
"configure_ui": "Редактиране на табло",
|
||||
"configure_ui": "Редактиране на таблото",
|
||||
"help": "Помощ",
|
||||
"reload_resources": "Презареждане на ресурсите"
|
||||
},
|
||||
@ -3051,6 +3094,18 @@
|
||||
"enable": "Активиране",
|
||||
"header": "Модули за много-факторна аутентикация"
|
||||
},
|
||||
"number_format": {
|
||||
"description": "Изберете как да се форматират числата.",
|
||||
"dropdown_label": "Формат на числата",
|
||||
"formats": {
|
||||
"comma_decimal": "1,234,567.89",
|
||||
"decimal_comma": "1.234.567,89",
|
||||
"language": "Авто (изп. езикова настройка)",
|
||||
"none": "Без",
|
||||
"space_comma": "1 234 567,89"
|
||||
},
|
||||
"header": "Формат на числата"
|
||||
},
|
||||
"push_notifications": {
|
||||
"add_device_prompt": {
|
||||
"input_label": "Име на устройството",
|
||||
|
@ -1188,6 +1188,9 @@
|
||||
"zha_device_card": {
|
||||
"device_name_placeholder": "Canvia el nom del dispositiu"
|
||||
}
|
||||
},
|
||||
"zha_reconfigure_device": {
|
||||
"heading": "S'està reconfigurant el dispositiu"
|
||||
}
|
||||
},
|
||||
"duration": {
|
||||
@ -2072,6 +2075,9 @@
|
||||
"filtering_by": "Filtratge per",
|
||||
"show": "Mostra"
|
||||
},
|
||||
"hassio": {
|
||||
"button": "Configura"
|
||||
},
|
||||
"header": "Configuració de Home Assistant",
|
||||
"helpers": {
|
||||
"caption": "Ajudants",
|
||||
|
@ -1130,6 +1130,11 @@
|
||||
"perform_action": "Server {action}",
|
||||
"restart": "Neustarten",
|
||||
"stop": "Stoppen"
|
||||
},
|
||||
"types": {
|
||||
"navigation": "Navigieren",
|
||||
"reload": "Neu laden",
|
||||
"server_control": "Server"
|
||||
}
|
||||
},
|
||||
"filter_placeholder": "Entitätsfilter"
|
||||
|
@ -1188,6 +1188,9 @@
|
||||
"zha_device_card": {
|
||||
"device_name_placeholder": "Cambia il nome del dispositivo"
|
||||
}
|
||||
},
|
||||
"zha_reconfigure_device": {
|
||||
"heading": "Riconfigurazione del dispositivo"
|
||||
}
|
||||
},
|
||||
"duration": {
|
||||
|
@ -1188,6 +1188,9 @@
|
||||
"zha_device_card": {
|
||||
"device_name_placeholder": "기기 이름 변경"
|
||||
}
|
||||
},
|
||||
"zha_reconfigure_device": {
|
||||
"heading": "기기 재구성 중"
|
||||
}
|
||||
},
|
||||
"duration": {
|
||||
@ -1859,7 +1862,7 @@
|
||||
"documentation": "이 옵션을 활성화하기 전에 분석 관련 문서 페이지 {link}을(를) 방문하여 사용자 통계를 보내는 내용과 저장 방법에 대해 알아보세요.",
|
||||
"header": "분석",
|
||||
"instance_id": "인스턴스 ID: {huuid}",
|
||||
"introduction": "인스턴스의 분석 내용을 공유합니다. 이 데이터는 {link}에서 공개적으로 사용할 수 있습니다",
|
||||
"introduction": "인스턴스의 분석 내용을 공유합니다. 이 데이터는 {link}에서 공개적으로 사용될 수 있습니다",
|
||||
"learn_more": "통계자료가 어떻게 처리되는지 알아보기.",
|
||||
"needs_base": "이 옵션을 사용하려면 기본 분석을 활성화해야 합니다",
|
||||
"preference": {
|
||||
@ -2072,6 +2075,9 @@
|
||||
"filtering_by": "필터링",
|
||||
"show": "표시하기"
|
||||
},
|
||||
"hassio": {
|
||||
"button": "구성하기"
|
||||
},
|
||||
"header": "Home Assistant 구성하기",
|
||||
"helpers": {
|
||||
"caption": "도우미",
|
||||
@ -2210,7 +2216,7 @@
|
||||
"ignore": {
|
||||
"confirm_delete_ignore": "이렇게 하면 발견된 통합 구성요소가 발견될 때, 발견된 통합 구성요소에 다시 나타나게 됩니다. 다시 시작해야 하거나 시간이 걸릴 수 있습니다.",
|
||||
"confirm_delete_ignore_title": "{name} 무시를 중지하시겠습니까?",
|
||||
"confirm_ignore": "이 통합 구성요소의 설정을 하지 않으시겠습니까? 오른쪽 상단의 오버플로 메뉴에서 '무시된 통합 구성요소 표시하기'를 클릭하여 이 작업을 취소할 수 있습니다.",
|
||||
"confirm_ignore": "이 통합 구성요소를 설정하지 않으시겠습니까? 오른쪽 상단의 오버플로 메뉴에서 '무시된 통합 구성요소 표시하기'를 클릭하여 이 작업을 취소할 수 있습니다.",
|
||||
"confirm_ignore_title": "발견된 {name} 기기를 무시하시겠습니까?",
|
||||
"hide_ignored": "무시된 통합 구성요소 숨기기",
|
||||
"ignore": "무시",
|
||||
@ -3743,7 +3749,7 @@
|
||||
"page-onboarding": {
|
||||
"analytics": {
|
||||
"finish": "다음",
|
||||
"intro": "인스턴스의 분석 내용을 공유합니다. 이 데이터는 {link}에서 공개적으로 사용할 수 있습니다"
|
||||
"intro": "인스턴스의 분석 내용을 공유합니다. 이 데이터는 {link}에서 공개적으로 사용될 수 있습니다"
|
||||
},
|
||||
"core-config": {
|
||||
"button_detect": "탐색",
|
||||
|
@ -1127,7 +1127,7 @@
|
||||
"reload": "Herlaad {domain}",
|
||||
"rest": "Herlaad rest entiteiten en notificatieservices",
|
||||
"rpi_gpio": "Herlaad Raspberry PI GPIO entiteiten",
|
||||
"scene": "Herlaad scenes",
|
||||
"scene": "Scenes",
|
||||
"script": "Herlaad scripts",
|
||||
"smtp": "Herlaad smtp notificatie services",
|
||||
"statistics": "Herlaad statistieken entiteiten",
|
||||
@ -1605,7 +1605,7 @@
|
||||
},
|
||||
"introduction": "Met de automatiseringseditor editor kun je automatiseringen maken en bewerken. Volg de link hieronder om er zeker van te zijn dat je Home Assistant juist hebt geconfigureerd.",
|
||||
"learn_more": "Meer informatie over automatiseringen",
|
||||
"no_automations": "We konden geen bewerkbare automatiseringen vinden",
|
||||
"no_automations": "We konden geen automatiseringen vinden",
|
||||
"only_editable": "Alleen automatiseringen in automations.yaml kunnen worden bewerkt.",
|
||||
"pick_automation": "Kies te bewerken automatisering",
|
||||
"show_info_automation": "Informatie weergeven over automatisering"
|
||||
@ -2254,7 +2254,7 @@
|
||||
"load_full_log": "Laad volledige Home Assistant logboek",
|
||||
"loading_log": "Foutenlogboek laden ...",
|
||||
"multiple_messages": "bericht kwam voor het eerst om {time} en verschijnt {counter} keer",
|
||||
"no_errors": "Er zijn geen fouten gerapporteerd.",
|
||||
"no_errors": "Er zijn geen fouten gemeld",
|
||||
"no_issues": "Er zijn geen problemen!",
|
||||
"refresh": "Vernieuwen"
|
||||
},
|
||||
@ -2535,7 +2535,7 @@
|
||||
},
|
||||
"introduction": "Met de scene editor kun je scenes maken en bewerken. Volg de onderstaande link om de instructies te lezen om ervoor te zorgen dat je Home Assistant correct hebt geconfigureerd.",
|
||||
"learn_more": "Meer informatie over scènes",
|
||||
"no_scenes": "We konden geen bewerkbare scènes vinden.",
|
||||
"no_scenes": "We konden geen scènes vinden",
|
||||
"only_editable": "Alleen scènes die zijn gedefinieerd in scenes.yaml kunnen worden bewerkt.",
|
||||
"pick_scene": "Kies een scène om te bewerken",
|
||||
"show_info_scene": "Informatie weergeven over scène"
|
||||
@ -2585,7 +2585,7 @@
|
||||
},
|
||||
"introduction": "Met de editor kunt u scripts maken en bewerken. Volg de onderstaande link om de instructies te lezen om ervoor te zorgen dat u Home Assistant correct hebt geconfigureerd.",
|
||||
"learn_more": "Meer informatie over scripts",
|
||||
"no_scripts": "We hebben geen bewerkbare scrips gevonden",
|
||||
"no_scripts": "We hebben geen scripts gevonden",
|
||||
"run_script": "Script uitvoeren",
|
||||
"show_info": "Toon info over script"
|
||||
}
|
||||
@ -2595,39 +2595,39 @@
|
||||
"description": "De Home Assistant-server opnieuw opstarten en stoppen",
|
||||
"section": {
|
||||
"reloading": {
|
||||
"automation": "Herlaad automatiseringen",
|
||||
"command_line": "Herlaad opdrachtregel-entiteiten",
|
||||
"core": "Herlaad locatie en aanpassingen",
|
||||
"filesize": "Herlaad bestandsgrootte entiteiten",
|
||||
"filter": "Herlaad filter-entiteiten",
|
||||
"generic": "Herlaad generieke IP camera entiteiten",
|
||||
"generic_thermostat": "Herlaad generieke thermostaat entiteiten",
|
||||
"group": "Herlaad groepen, groepsentiteiten en notify services",
|
||||
"automation": "Automatiseringen",
|
||||
"command_line": "Opdrachtregel-entiteiten",
|
||||
"core": "Locatie en aanpassingen",
|
||||
"filesize": "Bestandsgrootte entiteiten",
|
||||
"filter": "Filter-entiteiten",
|
||||
"generic": "Generieke IP camera entiteiten",
|
||||
"generic_thermostat": "Generieke thermostaat entiteiten",
|
||||
"group": "Groepen, groepsentiteiten en notify services",
|
||||
"heading": "Configuratie herladen",
|
||||
"history_stats": "Herlaad historische statistieken entiteiten",
|
||||
"homekit": "Herlaad HomeKit",
|
||||
"input_boolean": "Herlaad input booleans",
|
||||
"input_datetime": "Herlaad input date times",
|
||||
"input_number": "Herlaad input numbers",
|
||||
"input_select": "Herlaad input selects",
|
||||
"input_text": "Herlaad input texts",
|
||||
"history_stats": "Historische statistieken entiteiten",
|
||||
"homekit": "HomeKit",
|
||||
"input_boolean": "Input booleans",
|
||||
"input_datetime": "Input date times",
|
||||
"input_number": "Input numbers",
|
||||
"input_select": "Input selects",
|
||||
"input_text": "Input texts",
|
||||
"introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.",
|
||||
"min_max": "Herlaad min/max entiteiten",
|
||||
"min_max": "Min/max entiteiten",
|
||||
"mqtt": "Herlaad handmatig geconfigureerde MQTT-entiteiten",
|
||||
"person": "Herlaad personen",
|
||||
"ping": "Herlaad ping binaire sensor entiteiten",
|
||||
"person": "Personen",
|
||||
"ping": "Ping binaire sensor entiteiten",
|
||||
"reload": "Herlaad {domain}",
|
||||
"rest": "Herlaad rest-entiteiten en notify-services",
|
||||
"rest": "Rest-entiteiten en notify-services",
|
||||
"rpi_gpio": "Herlaad Raspberry Pi GPIO-entiteiten",
|
||||
"scene": "Herlaad scenes",
|
||||
"script": "Herlaad scripts",
|
||||
"scene": "Scenes",
|
||||
"script": "Scripts",
|
||||
"smtp": "Herlaad de SMTP notify services",
|
||||
"statistics": "Herlaad statistische entiteiten",
|
||||
"statistics": "Statistische entiteiten",
|
||||
"telegram": "Herlaad telegram notify services",
|
||||
"template": "Herlaad template entiteiten",
|
||||
"trend": "Herlaad trend-entiteiten",
|
||||
"universal": "Herlaad universele mediaspeler entiteiten",
|
||||
"zone": "Herlaad zones"
|
||||
"template": "Template entiteiten",
|
||||
"trend": "Trend-entiteiten",
|
||||
"universal": "Universele mediaspeler entiteiten",
|
||||
"zone": "Zones"
|
||||
},
|
||||
"server_management": {
|
||||
"confirm_restart": "Weet je zeker dat je Home Assistant opnieuw wilt starten?",
|
||||
|
@ -373,7 +373,7 @@
|
||||
"panel": {
|
||||
"dashboard": "Панель",
|
||||
"snapshots": "Снимки",
|
||||
"store": "Магазин дополнений",
|
||||
"store": "Магазин",
|
||||
"system": "Система"
|
||||
},
|
||||
"snapshot": {
|
||||
@ -843,8 +843,8 @@
|
||||
"related-filter-menu": {
|
||||
"filter_by_area": "Фильтр по помещениям",
|
||||
"filter_by_device": "Фильтр по устройствам",
|
||||
"filtered_by_area": "помещение: {area_name}",
|
||||
"filtered_by_device": "устройство: {device_name}"
|
||||
"filtered_by_area": "помещению: {area_name}",
|
||||
"filtered_by_device": "устройству: {device_name}"
|
||||
},
|
||||
"related-items": {
|
||||
"area": "Помещение",
|
||||
@ -1084,7 +1084,7 @@
|
||||
"commands": {
|
||||
"navigation": {
|
||||
"areas": "Помещения",
|
||||
"automation": "Автоматизация",
|
||||
"automation": "Автоматизации",
|
||||
"blueprint": "Проекты",
|
||||
"core": "Общие",
|
||||
"customize": "Кастомизация",
|
||||
@ -1270,7 +1270,7 @@
|
||||
}
|
||||
},
|
||||
"automation": {
|
||||
"caption": "Автоматизация",
|
||||
"caption": "Автоматизации",
|
||||
"description": "Управление правилами автоматизации",
|
||||
"dialog_new": {
|
||||
"blueprint": {
|
||||
@ -1331,7 +1331,7 @@
|
||||
},
|
||||
"event": {
|
||||
"event": "Событие:",
|
||||
"label": "Создание события",
|
||||
"label": "Создать событие",
|
||||
"service_data": "Данные службы"
|
||||
},
|
||||
"repeat": {
|
||||
@ -1356,7 +1356,7 @@
|
||||
"label": "Активировать сцену"
|
||||
},
|
||||
"service": {
|
||||
"label": "Вызов службы"
|
||||
"label": "Вызвать службу"
|
||||
},
|
||||
"wait_for_trigger": {
|
||||
"continue_timeout": "Продолжить по истечении времени",
|
||||
@ -1861,13 +1861,13 @@
|
||||
"analytics": {
|
||||
"documentation": "Прежде всего, посетите страницу документации по аналитике {link}, чтобы понять, что Вы будете отправлять и как это будет храниться.",
|
||||
"header": "Аналитика",
|
||||
"instance_id": "Идентификатор экземпляра Home Assistant: {huuid}",
|
||||
"instance_id": "ID экземпляра Home Assistant: {huuid}",
|
||||
"introduction": "Поделитесь аналитикой из Вашего Home Assistant. Эти данные будут доступны для всех по адресу {link}.",
|
||||
"learn_more": "Узнайте больше о том, как будут обрабатываться Ваши данные.",
|
||||
"needs_base": "Включите базовую аналитику, чтобы эта опция была доступна",
|
||||
"preference": {
|
||||
"base": {
|
||||
"description": "Включает в себя идентификатор экземпляра, версия и тип установки.",
|
||||
"description": "Включает в себя ID экземпляра, версию и тип установки.",
|
||||
"title": "Базовая аналитика"
|
||||
},
|
||||
"diagnostics": {
|
||||
@ -1996,7 +1996,7 @@
|
||||
"picker": {
|
||||
"filter": {
|
||||
"filter": "Фильтр",
|
||||
"hidden_devices": "{number} {number, plural,\n one {скрытое устройство}\n other {скрытых устройств}\n}",
|
||||
"hidden_devices": "{number, plural,\n one {скрытых устройств:}\n other {скрытых устройств:}\n} {number}",
|
||||
"show_all": "Показать все",
|
||||
"show_disabled": "Скрытые устройства"
|
||||
},
|
||||
@ -2036,7 +2036,7 @@
|
||||
},
|
||||
"filter": {
|
||||
"filter": "Фильтр",
|
||||
"hidden_entities": "{number} {number, plural,\n one {скрытый объект}\n other {скрытых объектов}\n}",
|
||||
"hidden_entities": "{number, plural,\n one {скрытых объектов:}\n other {скрытых объектов:}\n} {number}",
|
||||
"show_all": "Показать все",
|
||||
"show_disabled": "Скрытые объекты",
|
||||
"show_readonly": "Объекты, доступные только для чтения",
|
||||
@ -2146,7 +2146,7 @@
|
||||
"delete": "Удалить",
|
||||
"delete_confirm": "Вы уверены, что хотите удалить эту интеграцию?",
|
||||
"device_unavailable": "Устройство недоступно",
|
||||
"devices": "{count} {count, plural,\n one {устройство}\n other {устройств}\n}",
|
||||
"devices": "{count, plural,\n one {устройств:}\n other {устройств:}\n} {count}",
|
||||
"disable_restart_confirm": "Перезапустите Home Assistant, чтобы завершить отключение этой интеграции.",
|
||||
"disable": {
|
||||
"disable_confirm": "Вы уверены, что хотите отключить эту запись конфигурации? Её дочерние устройства и объекты будут также отключены.",
|
||||
@ -2160,7 +2160,7 @@
|
||||
},
|
||||
"documentation": "Документация",
|
||||
"enable_restart_confirm": "Перезапустите Home Assistant, чтобы завершить подключение этой интеграции.",
|
||||
"entities": "{count} {count, plural,\n one {объект}\n other {объектов}\n}",
|
||||
"entities": "{count, plural,\n one {объектов:}\n other {объектов:}\n} {count}",
|
||||
"entity_unavailable": "Объект недоступен",
|
||||
"firmware": "Прошивка: {version}",
|
||||
"hub": "Подключено через",
|
||||
@ -2174,7 +2174,7 @@
|
||||
"reload_restart_confirm": "Перезапустите Home Assistant, чтобы завершить перезагрузку этой интеграции",
|
||||
"rename": "Переименовать",
|
||||
"restart_confirm": "Перезапустите Home Assistant, чтобы завершить удаление этой интеграции",
|
||||
"services": "{count} {count, plural,\n one {служба}\n other {служб}\n}",
|
||||
"services": "{count, plural,\n one {служб:}\n other {служб:}\n} {count}",
|
||||
"system_options": "Настройки интеграции",
|
||||
"unnamed_entry": "Без названия"
|
||||
},
|
||||
@ -3863,7 +3863,7 @@
|
||||
"header": "Модули многофакторной аутентификации"
|
||||
},
|
||||
"number_format": {
|
||||
"description": "Варианты отображения чисел в пользовательском интерфейсе.",
|
||||
"description": "Отображение чисел в пользовательском интерфейсе",
|
||||
"dropdown_label": "Формат чисел",
|
||||
"formats": {
|
||||
"comma_decimal": "1,234,567.89",
|
||||
|
Loading…
x
Reference in New Issue
Block a user