Compare commits

..

4 Commits

Author SHA1 Message Date
Bram Kragten
e8254f9aae Merge pull request #6411 from home-assistant/dev 2020-07-16 18:38:27 +02:00
Bram Kragten
2e198af8c3 Merge pull request #6399 from home-assistant/dev 2020-07-15 20:19:11 +02:00
Bram Kragten
ec36d396d9 Merge pull request #6396 from home-assistant/dev 2020-07-15 16:23:49 +02:00
Bram Kragten
78914091b1 Merge pull request #6389 from home-assistant/dev 2020-07-14 23:53:51 +02:00
103 changed files with 924 additions and 3048 deletions

View File

@@ -52,6 +52,7 @@ class CastDemoRow extends LitElement implements LovelaceRow {
}); });
mgr.castContext.addEventListener( mgr.castContext.addEventListener(
// eslint-disable-next-line no-undef // eslint-disable-next-line no-undef
// @ts-ignore
cast.framework.CastContextEventType.SESSION_STATE_CHANGED, cast.framework.CastContextEventType.SESSION_STATE_CHANGED,
(ev) => { (ev) => {
// On Android, opening a new session always results in SESSION_RESUMED. // On Android, opening a new session always results in SESSION_RESUMED.

View File

@@ -25,7 +25,6 @@ import { HomeAssistant, Route } from "../../../src/types";
import { showRepositoriesDialog } from "../dialogs/repositories/show-dialog-repositories"; import { showRepositoriesDialog } from "../dialogs/repositories/show-dialog-repositories";
import { supervisorTabs } from "../hassio-tabs"; import { supervisorTabs } from "../hassio-tabs";
import "./hassio-addon-repository"; import "./hassio-addon-repository";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
const sortRepos = (a: HassioAddonRepository, b: HassioAddonRepository) => { const sortRepos = (a: HassioAddonRepository, b: HassioAddonRepository) => {
if (a.slug === "local") { if (a.slug === "local") {
@@ -98,18 +97,14 @@ class HassioAddonStore extends LitElement {
.tabs=${supervisorTabs} .tabs=${supervisorTabs}
> >
<span slot="header">Add-on store</span> <span slot="header">Add-on store</span>
<ha-button-menu <ha-button-menu corner="BOTTOM_START" slot="toolbar-icon">
corner="BOTTOM_START"
slot="toolbar-icon"
@action=${this._handleAction}
>
<mwc-icon-button slot="trigger" alt="menu"> <mwc-icon-button slot="trigger" alt="menu">
<ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon> <ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item> <mwc-list-item @tap=${this._manageRepositories}>
Repositories Repositories
</mwc-list-item> </mwc-list-item>
<mwc-list-item> <mwc-list-item @tap=${this.refreshData}>
Reload Reload
</mwc-list-item> </mwc-list-item>
</ha-button-menu> </ha-button-menu>
@@ -148,17 +143,6 @@ class HassioAddonStore extends LitElement {
this._loadData(); this._loadData();
} }
private _handleAction(ev: CustomEvent<ActionDetail>) {
switch (ev.detail.index) {
case 0:
this._manageRepositories();
break;
case 1:
this.refreshData();
break;
}
}
private apiCalled(ev) { private apiCalled(ev) {
if (ev.detail.success) { if (ev.detail.success) {
this._loadData(); this._loadData();

View File

@@ -13,7 +13,7 @@
"lint:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --check", "lint:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --check",
"format:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --write", "format:prettier": "prettier '**/src/**/*.{js,ts,json,css,md}' --write",
"lint:types": "tsc", "lint:types": "tsc",
"lint:lit": "lit-analyzer '**/src/**/*.ts' --format markdown --outFile result.md", "lint:lit": "lit-analyzer '**/src/**/*.ts'",
"lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:types", "lint": "npm run lint:eslint && npm run lint:prettier && npm run lint:types",
"format": "npm run format:eslint && npm run format:prettier", "format": "npm run format:eslint && npm run format:prettier",
"mocha": "node_modules/.bin/ts-mocha -p test-mocha/tsconfig.test.json --opts test-mocha/mocha.opts", "mocha": "node_modules/.bin/ts-mocha -p test-mocha/tsconfig.test.json --opts test-mocha/mocha.opts",
@@ -74,7 +74,6 @@
"@polymer/paper-tooltip": "^3.0.1", "@polymer/paper-tooltip": "^3.0.1",
"@polymer/polymer": "3.1.0", "@polymer/polymer": "3.1.0",
"@thomasloven/round-slider": "0.5.0", "@thomasloven/round-slider": "0.5.0",
"@types/chromecast-caf-sender": "^1.0.3",
"@vaadin/vaadin-combo-box": "^5.0.10", "@vaadin/vaadin-combo-box": "^5.0.10",
"@vaadin/vaadin-date-picker": "^4.0.7", "@vaadin/vaadin-date-picker": "^4.0.7",
"@vue/web-component-wrapper": "^1.2.0", "@vue/web-component-wrapper": "^1.2.0",
@@ -108,7 +107,7 @@
"regenerator-runtime": "^0.13.2", "regenerator-runtime": "^0.13.2",
"resize-observer-polyfill": "^1.5.1", "resize-observer-polyfill": "^1.5.1",
"roboto-fontface": "^0.10.0", "roboto-fontface": "^0.10.0",
"superstruct": "^0.10.12", "superstruct": "^0.6.1",
"unfetch": "^4.1.0", "unfetch": "^4.1.0",
"vue": "^2.6.11", "vue": "^2.6.11",
"vue2-daterange-picker": "^0.5.1", "vue2-daterange-picker": "^0.5.1",
@@ -171,7 +170,7 @@
"html-minifier": "^4.0.0", "html-minifier": "^4.0.0",
"husky": "^1.3.1", "husky": "^1.3.1",
"lint-staged": "^8.1.5", "lint-staged": "^8.1.5",
"lit-analyzer": "^1.2.0", "lit-analyzer": "^1.1.10",
"lodash.template": "^4.5.0", "lodash.template": "^4.5.0",
"magic-string": "^0.25.7", "magic-string": "^0.25.7",
"map-stream": "^0.0.7", "map-stream": "^0.0.7",
@@ -192,7 +191,7 @@
"source-map-url": "^0.4.0", "source-map-url": "^0.4.0",
"systemjs": "^6.3.2", "systemjs": "^6.3.2",
"terser-webpack-plugin": "^3.0.6", "terser-webpack-plugin": "^3.0.6",
"ts-lit-plugin": "^1.2.0", "ts-lit-plugin": "^1.1.10",
"ts-mocha": "^6.0.0", "ts-mocha": "^6.0.0",
"typescript": "^3.8.3", "typescript": "^3.8.3",
"vinyl-buffer": "^1.0.1", "vinyl-buffer": "^1.0.1",

View File

@@ -1,8 +1,4 @@
/* eslint-disable no-undef, no-console */ /* eslint-disable no-undef, no-console */
import {
CastStateEventData,
SessionStateEventData,
} from "chromecast-caf-receiver/cast.framework";
import { Auth } from "home-assistant-js-websocket"; import { Auth } from "home-assistant-js-websocket";
import { castApiAvailable } from "./cast_framework"; import { castApiAvailable } from "./cast_framework";
import { CAST_APP_ID, CAST_DEV, CAST_NS } from "./const"; import { CAST_APP_ID, CAST_DEV, CAST_NS } from "./const";
@@ -44,13 +40,16 @@ export class CastManager {
const context = this.castContext; const context = this.castContext;
context.setOptions({ context.setOptions({
receiverApplicationId: CAST_APP_ID, receiverApplicationId: CAST_APP_ID,
// @ts-ignore
autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED, autoJoinPolicy: chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED,
}); });
context.addEventListener( context.addEventListener(
// @ts-ignore
cast.framework.CastContextEventType.SESSION_STATE_CHANGED, cast.framework.CastContextEventType.SESSION_STATE_CHANGED,
(ev) => this._sessionStateChanged(ev) (ev) => this._sessionStateChanged(ev)
); );
context.addEventListener( context.addEventListener(
// @ts-ignore
cast.framework.CastContextEventType.CAST_STATE_CHANGED, cast.framework.CastContextEventType.CAST_STATE_CHANGED,
(ev) => this._castStateChanged(ev) (ev) => this._castStateChanged(ev)
); );
@@ -119,7 +118,7 @@ export class CastManager {
} }
} }
private _sessionStateChanged(ev: SessionStateEventData) { private _sessionStateChanged(ev) {
if (__DEV__) { if (__DEV__) {
console.log("Cast session state changed", ev.sessionState); console.log("Cast session state changed", ev.sessionState);
} }
@@ -142,7 +141,7 @@ export class CastManager {
} }
} }
private _castStateChanged(ev: CastStateEventData) { private _castStateChanged(ev) {
if (__DEV__) { if (__DEV__) {
console.log("Cast state changed", ev.castState); console.log("Cast state changed", ev.castState);
} }

View File

@@ -1,10 +1,4 @@
export default function durationToSeconds(duration: string): number { export default function durationToSeconds(duration: string): number {
let days = 0;
if (duration.includes("day")) {
const position = duration.indexOf("day");
days = Number(duration.substr(0, position));
duration = duration.split(",")[1];
}
const parts = duration.split(":").map(Number); const parts = duration.split(":").map(Number);
return (days * 24 + parts[0]) * 3600 + parts[1] * 60 + parts[2]; return parts[0] * 3600 + parts[1] * 60 + parts[2];
} }

View File

@@ -1,14 +0,0 @@
import {
RequestSelectedDetail,
ListItem,
} from "@material/mwc-list/mwc-list-item";
export const shouldHandleRequestSelectedEvent = (
ev: CustomEvent<RequestSelectedDetail>
): boolean => {
if (!ev.detail.selected && ev.detail.source !== "property") {
return false;
}
(ev.target as ListItem).selected = false;
return true;
};

View File

@@ -9,9 +9,5 @@ export function computeRTL(hass: HomeAssistant) {
} }
export function computeRTLDirection(hass: HomeAssistant) { export function computeRTLDirection(hass: HomeAssistant) {
return emitRTLDirection(computeRTL(hass)); return computeRTL(hass) ? "rtl" : "ltr";
}
export function emitRTLDirection(rtl: boolean) {
return rtl ? "rtl" : "ltr";
} }

View File

@@ -98,8 +98,6 @@ export class HaDataTable extends LitElement {
@property({ type: String }) public noDataText?: string; @property({ type: String }) public noDataText?: string;
@property({ type: String }) public searchLabel?: string;
@property({ type: String }) public filter = ""; @property({ type: String }) public filter = "";
@internalProperty() private _filterable = false; @internalProperty() private _filterable = false;
@@ -204,7 +202,6 @@ export class HaDataTable extends LitElement {
<div class="table-header"> <div class="table-header">
<search-input <search-input
@value-changed=${this._handleSearchChange} @value-changed=${this._handleSearchChange}
.label=${this.searchLabel}
></search-input> ></search-input>
</div> </div>
` `

View File

@@ -117,7 +117,11 @@ export abstract class HaDeviceAutomationPicker<
> >
${this.NO_AUTOMATION_TEXT} ${this.NO_AUTOMATION_TEXT}
</paper-item> </paper-item>
<paper-item key=${UNKNOWN_AUTOMATION_KEY} hidden> <paper-item
key=${UNKNOWN_AUTOMATION_KEY}
.automation=${this.value}
hidden
>
${this.UNKNOWN_AUTOMATION_TEXT} ${this.UNKNOWN_AUTOMATION_TEXT}
</paper-item> </paper-item>
${this._automations.map( ${this._automations.map(
@@ -171,17 +175,18 @@ export abstract class HaDeviceAutomationPicker<
} }
private _automationChanged(ev) { private _automationChanged(ev) {
if (ev.detail.item.automation) { this._setValue(ev.detail.item.automation);
this._setValue(ev.detail.item.automation);
}
} }
private _setValue(automation: T) { private _setValue(automation: T) {
if (this.value && deviceAutomationsEqual(automation, this.value)) { if (this.value && deviceAutomationsEqual(automation, this.value)) {
return; return;
} }
fireEvent(this, "change"); this.value = automation;
fireEvent(this, "value-changed", { value: automation }); setTimeout(() => {
fireEvent(this, "change");
fireEvent(this, "value-changed", { value: automation });
}, 0);
} }
static get styles(): CSSResult { static get styles(): CSSResult {

View File

@@ -10,6 +10,7 @@ import {
} from "lit-element"; } from "lit-element";
import "@material/mwc-button"; import "@material/mwc-button";
import "@material/mwc-menu"; import "@material/mwc-menu";
import "@material/mwc-list/mwc-list-item";
import type { Menu, Corner } from "@material/mwc-menu"; import type { Menu, Corner } from "@material/mwc-menu";
import "./ha-icon-button"; import "./ha-icon-button";
@@ -18,30 +19,14 @@ import "./ha-icon-button";
export class HaButtonMenu extends LitElement { export class HaButtonMenu extends LitElement {
@property() public corner: Corner = "TOP_START"; @property() public corner: Corner = "TOP_START";
@property({ type: Boolean }) public multi = false;
@property({ type: Boolean }) public activatable = false;
@query("mwc-menu") private _menu?: Menu; @query("mwc-menu") private _menu?: Menu;
public get items() {
return this._menu?.items;
}
public get selected() {
return this._menu?.selected;
}
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`
<div @click=${this._handleClick}> <div @click=${this._handleClick}>
<slot name="trigger"></slot> <slot name="trigger"></slot>
</div> </div>
<mwc-menu <mwc-menu .corner=${this.corner}>
.corner=${this.corner}
.multi=${this.multi}
.activatable=${this.activatable}
>
<slot></slot> <slot></slot>
</mwc-menu> </mwc-menu>
`; `;

View File

@@ -17,8 +17,6 @@ import "./ha-svg-icon";
import "@polymer/paper-input/paper-input"; import "@polymer/paper-input/paper-input";
import "@material/mwc-list/mwc-list"; import "@material/mwc-list/mwc-list";
import "./date-range-picker"; import "./date-range-picker";
import { computeRTLDirection } from "../common/util/compute_rtl";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
export interface DateRangePickerRanges { export interface DateRangePickerRanges {
[key: string]: [Date, Date]; [key: string]: [Date, Date];
@@ -38,14 +36,11 @@ export class HaDateRangePicker extends LitElement {
@property({ type: Boolean }) private _hour24format = false; @property({ type: Boolean }) private _hour24format = false;
@property({ type: String }) private _rtlDirection = "ltr";
protected updated(changedProps: PropertyValues) { protected updated(changedProps: PropertyValues) {
if (changedProps.has("hass")) { if (changedProps.has("hass")) {
const oldHass = changedProps.get("hass") as HomeAssistant | undefined; const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
if (!oldHass || oldHass.language !== this.hass.language) { if (!oldHass || oldHass.language !== this.hass.language) {
this._hour24format = this._compute24hourFormat(); this._hour24format = this._compute24hourFormat();
this._rtlDirection = computeRTLDirection(this.hass);
} }
} }
} }
@@ -81,14 +76,16 @@ export class HaDateRangePicker extends LitElement {
></paper-input> ></paper-input>
</div> </div>
${this.ranges ${this.ranges
? html`<div ? html`<div slot="ranges" class="date-range-ranges">
slot="ranges" <mwc-list @click=${this._setDateRange}>
class="date-range-ranges" ${Object.entries(this.ranges).map(
.dir=${this._rtlDirection} ([name, dates]) => html`<mwc-list-item
> .activated=${this.startDate.getTime() ===
<mwc-list @action=${this._setDateRange} activatable> dates[0].getTime() &&
${Object.keys(this.ranges).map( this.endDate.getTime() === dates[1].getTime()}
(name) => html`<mwc-list-item> .startDate=${dates[0]}
.endDate=${dates[1]}
>
${name} ${name}
</mwc-list-item>` </mwc-list-item>`
)} )}
@@ -119,10 +116,12 @@ export class HaDateRangePicker extends LitElement {
); );
} }
private _setDateRange(ev: CustomEvent<ActionDetail>) { private _setDateRange(ev: Event) {
const dateRange = Object.values(this.ranges!)[ev.detail.index]; const target = ev.target as any;
const startDate = target.startDate;
const endDate = target.endDate;
const dateRangePicker = this._dateRangePicker; const dateRangePicker = this._dateRangePicker;
dateRangePicker.clickRange(dateRange); dateRangePicker.clickRange([startDate, endDate]);
dateRangePicker.clickedApply(); dateRangePicker.clickedApply();
} }

View File

@@ -5,7 +5,7 @@ import "./ha-icon-button";
import { css, CSSResult, customElement, html } from "lit-element"; import { css, CSSResult, customElement, html } from "lit-element";
import type { Constructor, HomeAssistant } from "../types"; import type { Constructor, HomeAssistant } from "../types";
import { mdiClose } from "@mdi/js"; import { mdiClose } from "@mdi/js";
import { computeRTLDirection } from "../common/util/compute_rtl"; import { computeRTL } from "../common/util/compute_rtl";
const MwcDialog = customElements.get("mwc-dialog") as Constructor<Dialog>; const MwcDialog = customElements.get("mwc-dialog") as Constructor<Dialog>;
@@ -14,8 +14,8 @@ export const createCloseHeading = (hass: HomeAssistant, title: string) => html`
<mwc-icon-button <mwc-icon-button
aria-label=${hass.localize("ui.dialogs.generic.close")} aria-label=${hass.localize("ui.dialogs.generic.close")}
dialogAction="close" dialogAction="close"
?rtl=${computeRTL(hass)}
class="header_button" class="header_button"
dir=${computeRTLDirection(hass)}
> >
<ha-svg-icon path=${mdiClose}></ha-svg-icon> <ha-svg-icon path=${mdiClose}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
@@ -61,7 +61,7 @@ export class HaDialog extends MwcDialog {
text-decoration: none; text-decoration: none;
color: inherit; color: inherit;
} }
[dir="rtl"].header_button { mwc-icon-button[rtl].header_button {
right: auto; right: auto;
left: 16px; left: 16px;
} }

View File

@@ -46,8 +46,8 @@ export interface MqttTrigger {
export interface GeoLocationTrigger { export interface GeoLocationTrigger {
platform: "geo_location"; platform: "geo_location";
source: string; source: "string";
zone: string; zone: "string";
event: "enter" | "leave"; event: "enter" | "leave";
} }

View File

@@ -15,8 +15,7 @@ declare global {
} }
} }
export interface HassDialog<T = HASSDomEvents[ValidHassDomEvent]> interface HassDialog<T = HASSDomEvents[ValidHassDomEvent]> extends HTMLElement {
extends HTMLElement {
showDialog(params: T); showDialog(params: T);
closeDialog?: () => boolean | void; closeDialog?: () => boolean | void;
} }

View File

@@ -302,14 +302,12 @@ export class MoreInfoDialog extends LitElement {
} }
} }
ha-dialog[data-domain="camera"] { state-history-charts {
--dialog-content-padding: 0; margin-top: 16px 0;
} }
state-card-content, ha-dialog[data-domain="camera"] {
state-history-charts { --dialog-content-padding: 0;
display: block;
margin-bottom: 16px;
} }
`, `,
]; ];

View File

@@ -29,9 +29,6 @@ import "./types/ha-automation-action-event";
import "./types/ha-automation-action-scene"; import "./types/ha-automation-action-scene";
import "./types/ha-automation-action-service"; import "./types/ha-automation-action-service";
import "./types/ha-automation-action-wait_template"; import "./types/ha-automation-action-wait_template";
import { handleStructError } from "../../../lovelace/common/structs/handle-errors";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import { haStyle } from "../../../../resources/styles";
const OPTIONS = [ const OPTIONS = [
"condition", "condition",
@@ -90,16 +87,12 @@ export default class HaAutomationActionRow extends LitElement {
@property() public totalActions!: number; @property() public totalActions!: number;
@internalProperty() private _warnings?: string[];
@internalProperty() private _uiModeAvailable = true;
@internalProperty() private _yamlMode = false; @internalProperty() private _yamlMode = false;
protected render() { protected render() {
const type = getType(this.action); const type = getType(this.action);
const selected = type ? OPTIONS.indexOf(type) : -1; const selected = type ? OPTIONS.indexOf(type) : -1;
const yamlMode = this._yamlMode; const yamlMode = this._yamlMode || selected === -1;
return html` return html`
<ha-card> <ha-card>
@@ -135,14 +128,17 @@ export default class HaAutomationActionRow extends LitElement {
</mwc-icon-button> </mwc-icon-button>
` `
: ""} : ""}
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
slot="trigger" slot="trigger"
.title=${this.hass.localize("ui.common.menu")} .title=${this.hass.localize("ui.common.menu")}
.label=${this.hass.localize("ui.common.overflow_menu")} .label=${this.hass.localize("ui.common.overflow_menu")}
><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon> ><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item .disabled=${!this._uiModeAvailable}> <mwc-list-item
@tap=${this._switchYamlMode}
.disabled=${selected === -1}
>
${yamlMode ${yamlMode
? this.hass.localize( ? this.hass.localize(
"ui.panel.config.automation.editor.edit_ui" "ui.panel.config.automation.editor.edit_ui"
@@ -156,39 +152,30 @@ export default class HaAutomationActionRow extends LitElement {
"ui.panel.config.automation.editor.actions.duplicate" "ui.panel.config.automation.editor.actions.duplicate"
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item> <mwc-list-item @tap=${this._onDelete}>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.automation.editor.actions.delete" "ui.panel.config.automation.editor.actions.delete"
)} )}
</mwc-list-item> </mwc-list-item>
</ha-button-menu> </ha-button-menu>
</div> </div>
${this._warnings
? html`<div class="warning">
UI editor is not supported for this config:
<br />
<ul>
${this._warnings.map((warning) => html`<li>${warning}</li>`)}
</ul>
You can still edit your config in yaml.
</div>`
: ""}
${yamlMode ${yamlMode
? html` ? html`
${selected === -1 <div style="margin-right: 24px;">
? html` ${selected === -1
${this.hass.localize( ? html`
"ui.panel.config.automation.editor.actions.unsupported_action", ${this.hass.localize(
"action", "ui.panel.config.automation.editor.actions.unsupported_action",
type "action",
)} type
` )}
: ""} `
<h2>Edit in YAML</h2> : ""}
<ha-yaml-editor <ha-yaml-editor
.defaultValue=${this.action} .defaultValue=${this.action}
@value-changed=${this._onYamlChange} @value-changed=${this._onYamlChange}
></ha-yaml-editor> ></ha-yaml-editor>
</div>
` `
: html` : html`
<paper-dropdown-menu-light <paper-dropdown-menu-light
@@ -213,7 +200,7 @@ export default class HaAutomationActionRow extends LitElement {
)} )}
</paper-listbox> </paper-listbox>
</paper-dropdown-menu-light> </paper-dropdown-menu-light>
<div @ui-mode-not-available=${this._handleUiModeNotAvailable}> <div>
${dynamicElement(`ha-automation-action-${type}`, { ${dynamicElement(`ha-automation-action-${type}`, {
hass: this.hass, hass: this.hass,
action: this.action, action: this.action,
@@ -225,13 +212,6 @@ export default class HaAutomationActionRow extends LitElement {
`; `;
} }
private _handleUiModeNotAvailable(ev: CustomEvent) {
this._warnings = handleStructError(ev.detail);
if (!this._yamlMode) {
this._yamlMode = true;
}
}
private _moveUp() { private _moveUp() {
fireEvent(this, "move-action", { direction: "up" }); fireEvent(this, "move-action", { direction: "up" });
} }
@@ -240,19 +220,6 @@ export default class HaAutomationActionRow extends LitElement {
fireEvent(this, "move-action", { direction: "down" }); fireEvent(this, "move-action", { direction: "down" });
} }
private _handleAction(ev: CustomEvent<ActionDetail>) {
switch (ev.detail.index) {
case 0:
this._switchYamlMode();
break;
case 1:
break;
case 2:
this._onDelete();
break;
}
}
private _onDelete() { private _onDelete() {
showConfirmationDialog(this, { showConfirmationDialog(this, {
text: this.hass.localize( text: this.hass.localize(
@@ -274,11 +241,6 @@ export default class HaAutomationActionRow extends LitElement {
return; return;
} }
this._uiModeAvailable = OPTIONS.includes(type);
if (!this._uiModeAvailable && !this._yamlMode) {
this._yamlMode = false;
}
if (type !== getType(this.action)) { if (type !== getType(this.action)) {
const elClass = customElements.get(`ha-automation-action-${type}`); const elClass = customElements.get(`ha-automation-action-${type}`);
@@ -302,30 +264,26 @@ export default class HaAutomationActionRow extends LitElement {
this._yamlMode = !this._yamlMode; this._yamlMode = !this._yamlMode;
} }
static get styles(): CSSResult[] { static get styles(): CSSResult {
return [ return css`
haStyle, .card-menu {
css` position: absolute;
.card-menu { top: 0;
float: right; right: 0;
z-index: 3; z-index: 3;
--mdc-theme-text-primary-on-background: var(--primary-text-color); --mdc-theme-text-primary-on-background: var(--primary-text-color);
} }
.rtl .card-menu { .rtl .card-menu {
float: left; right: auto;
} left: 0;
mwc-list-item[disabled] { }
--mdc-theme-text-primary-on-background: var(--disabled-text-color); ha-button-menu {
} margin: 8px;
.warning { }
color: var(--warning-color); mwc-list-item[disabled] {
margin-bottom: 8px; --mdc-theme-text-primary-on-background: var(--disabled-text-color);
} }
.warning ul { `;
margin: 4px 0;
}
`,
];
} }
} }

View File

@@ -97,7 +97,6 @@ export class HaDeviceAction extends LitElement {
protected updated(changedPros) { protected updated(changedPros) {
const prevAction = changedPros.get("action"); const prevAction = changedPros.get("action");
if (prevAction && !deviceAutomationsEqual(prevAction, this.action)) { if (prevAction && !deviceAutomationsEqual(prevAction, this.action)) {
this._deviceId = undefined;
this._getCapabilities(); this._getCapabilities();
} }
} }

View File

@@ -19,20 +19,12 @@ import { ServiceAction } from "../../../../../data/script";
import type { PolymerChangedEvent } from "../../../../../polymer-types"; import type { PolymerChangedEvent } from "../../../../../polymer-types";
import type { HomeAssistant } from "../../../../../types"; import type { HomeAssistant } from "../../../../../types";
import { ActionElement, handleChangeEvent } from "../ha-automation-action-row"; import { ActionElement, handleChangeEvent } from "../ha-automation-action-row";
import { assert, optional, object, string } from "superstruct";
import { EntityId } from "../../../../lovelace/common/structs/is-entity-id";
const actionStruct = object({
service: optional(string()),
entity_id: optional(EntityId),
data: optional(object()),
});
@customElement("ha-automation-action-service") @customElement("ha-automation-action-service")
export class HaServiceAction extends LitElement implements ActionElement { export class HaServiceAction extends LitElement implements ActionElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public action!: ServiceAction; @property() public action!: ServiceAction;
@query("ha-yaml-editor") private _yamlEditor?: HaYamlEditor; @query("ha-yaml-editor") private _yamlEditor?: HaYamlEditor;
@@ -68,11 +60,6 @@ export class HaServiceAction extends LitElement implements ActionElement {
if (!changedProperties.has("action")) { if (!changedProperties.has("action")) {
return; return;
} }
try {
assert(this.action, actionStruct);
} catch (error) {
fireEvent(this, "ui-mode-not-available", error);
}
if (this._actionData && this._actionData !== this.action.data) { if (this._actionData && this._actionData !== this.action.data) {
if (this._yamlEditor) { if (this._yamlEditor) {
this._yamlEditor.setValue(this.action.data); this._yamlEditor.setValue(this.action.data);

View File

@@ -2,13 +2,7 @@ import "@polymer/paper-dropdown-menu/paper-dropdown-menu-light";
import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox"; import "@polymer/paper-listbox/paper-listbox";
import type { PaperListboxElement } from "@polymer/paper-listbox/paper-listbox"; import type { PaperListboxElement } from "@polymer/paper-listbox/paper-listbox";
import { import { customElement, html, LitElement, property } from "lit-element";
customElement,
html,
LitElement,
property,
CSSResult,
} from "lit-element";
import { dynamicElement } from "../../../../common/dom/dynamic-element-directive"; import { dynamicElement } from "../../../../common/dom/dynamic-element-directive";
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/ha-card"; import "../../../../components/ha-card";
@@ -25,7 +19,6 @@ import "./types/ha-automation-condition-sun";
import "./types/ha-automation-condition-template"; import "./types/ha-automation-condition-template";
import "./types/ha-automation-condition-time"; import "./types/ha-automation-condition-time";
import "./types/ha-automation-condition-zone"; import "./types/ha-automation-condition-zone";
import { haStyle } from "../../../../resources/styles";
const OPTIONS = [ const OPTIONS = [
"device", "device",
@@ -54,20 +47,21 @@ export default class HaAutomationConditionEditor extends LitElement {
return html` return html`
${yamlMode ${yamlMode
? html` ? html`
${selected === -1 <div style="margin-right: 24px;">
? html` ${selected === -1
${this.hass.localize( ? html`
"ui.panel.config.automation.editor.conditions.unsupported_condition", ${this.hass.localize(
"condition", "ui.panel.config.automation.editor.conditions.unsupported_condition",
this.condition.condition "condition",
)} this.condition.condition
` )}
: ""} `
<h2>Edit in YAML</h2> : ""}
<ha-yaml-editor <ha-yaml-editor
.defaultValue=${this.condition} .defaultValue=${this.condition}
@value-changed=${this._onYamlChange} @value-changed=${this._onYamlChange}
></ha-yaml-editor> ></ha-yaml-editor>
</div>
` `
: html` : html`
<paper-dropdown-menu-light <paper-dropdown-menu-light
@@ -129,10 +123,6 @@ export default class HaAutomationConditionEditor extends LitElement {
} }
fireEvent(this, "value-changed", { value: ev.detail.value }); fireEvent(this, "value-changed", { value: ev.detail.value });
} }
static get styles(): CSSResult {
return haStyle;
}
} }
declare global { declare global {

View File

@@ -18,7 +18,6 @@ import { Condition } from "../../../../data/automation";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box"; import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import "./ha-automation-condition-editor"; import "./ha-automation-condition-editor";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
export interface ConditionElement extends LitElement { export interface ConditionElement extends LitElement {
condition: Condition; condition: Condition;
@@ -65,14 +64,14 @@ export default class HaAutomationConditionRow extends LitElement {
<ha-card> <ha-card>
<div class="card-content"> <div class="card-content">
<div class="card-menu"> <div class="card-menu">
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
.title=${this.hass.localize("ui.common.menu")} .title=${this.hass.localize("ui.common.menu")}
.label=${this.hass.localize("ui.common.overflow_menu")} .label=${this.hass.localize("ui.common.overflow_menu")}
slot="trigger" slot="trigger"
><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon ><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon
></mwc-icon-button> ></mwc-icon-button>
<mwc-list-item> <mwc-list-item @tap=${this._switchYamlMode}>
${this._yamlMode ${this._yamlMode
? this.hass.localize( ? this.hass.localize(
"ui.panel.config.automation.editor.edit_ui" "ui.panel.config.automation.editor.edit_ui"
@@ -86,7 +85,7 @@ export default class HaAutomationConditionRow extends LitElement {
"ui.panel.config.automation.editor.actions.duplicate" "ui.panel.config.automation.editor.actions.duplicate"
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item> <mwc-list-item @tap=${this._onDelete}>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.automation.editor.actions.delete" "ui.panel.config.automation.editor.actions.delete"
)} )}
@@ -103,19 +102,6 @@ export default class HaAutomationConditionRow extends LitElement {
`; `;
} }
private _handleAction(ev: CustomEvent<ActionDetail>) {
switch (ev.detail.index) {
case 0:
this._switchYamlMode();
break;
case 1:
break;
case 2:
this._onDelete();
break;
}
}
private _onDelete() { private _onDelete() {
showConfirmationDialog(this, { showConfirmationDialog(this, {
text: this.hass.localize( text: this.hass.localize(
@@ -136,12 +122,18 @@ export default class HaAutomationConditionRow extends LitElement {
static get styles(): CSSResult { static get styles(): CSSResult {
return css` return css`
.card-menu { .card-menu {
float: right; position: absolute;
top: 0;
right: 0;
z-index: 3; z-index: 3;
--mdc-theme-text-primary-on-background: var(--primary-text-color); --mdc-theme-text-primary-on-background: var(--primary-text-color);
} }
.rtl .card-menu { .rtl .card-menu {
float: left; right: auto;
left: 0;
}
ha-button-menu {
margin: 8px;
} }
mwc-list-item[disabled] { mwc-list-item[disabled] {
--mdc-theme-text-primary-on-background: var(--disabled-text-color); --mdc-theme-text-primary-on-background: var(--disabled-text-color);

View File

@@ -50,13 +50,6 @@ import { PaperListboxElement } from "@polymer/paper-listbox";
const MODES = ["single", "restart", "queued", "parallel"]; const MODES = ["single", "restart", "queued", "parallel"];
const MODES_MAX = ["queued", "parallel"]; const MODES_MAX = ["queued", "parallel"];
declare global {
// for fire event
interface HASSDomEvents {
"ui-mode-not-available": Error;
}
}
export class HaAutomationEditor extends LitElement { export class HaAutomationEditor extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@@ -541,7 +534,7 @@ export class HaAutomationEditor extends LitElement {
position: fixed; position: fixed;
bottom: 16px; bottom: 16px;
right: 16px; right: 16px;
z-index: 3; z-index: 1;
margin-bottom: -80px; margin-bottom: -80px;
transition: margin-bottom 0.3s; transition: margin-bottom 0.3s;
} }

View File

@@ -34,8 +34,6 @@ import "./types/ha-automation-trigger-time";
import "./types/ha-automation-trigger-time_pattern"; import "./types/ha-automation-trigger-time_pattern";
import "./types/ha-automation-trigger-webhook"; import "./types/ha-automation-trigger-webhook";
import "./types/ha-automation-trigger-zone"; import "./types/ha-automation-trigger-zone";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import { haStyle } from "../../../../resources/styles";
const OPTIONS = [ const OPTIONS = [
"device", "device",
@@ -95,14 +93,17 @@ export default class HaAutomationTriggerRow extends LitElement {
<ha-card> <ha-card>
<div class="card-content"> <div class="card-content">
<div class="card-menu"> <div class="card-menu">
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
slot="trigger" slot="trigger"
.title=${this.hass.localize("ui.common.menu")} .title=${this.hass.localize("ui.common.menu")}
.label=${this.hass.localize("ui.common.overflow_menu")} .label=${this.hass.localize("ui.common.overflow_menu")}
><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon ><ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon
></mwc-icon-button> ></mwc-icon-button>
<mwc-list-item .disabled=${selected === -1}> <mwc-list-item
@tap=${this._switchYamlMode}
.disabled=${selected === -1}
>
${yamlMode ${yamlMode
? this.hass.localize( ? this.hass.localize(
"ui.panel.config.automation.editor.edit_ui" "ui.panel.config.automation.editor.edit_ui"
@@ -116,7 +117,7 @@ export default class HaAutomationTriggerRow extends LitElement {
"ui.panel.config.automation.editor.actions.duplicate" "ui.panel.config.automation.editor.actions.duplicate"
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item> <mwc-list-item @tap=${this._onDelete}>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.automation.editor.actions.delete" "ui.panel.config.automation.editor.actions.delete"
)} )}
@@ -125,20 +126,21 @@ export default class HaAutomationTriggerRow extends LitElement {
</div> </div>
${yamlMode ${yamlMode
? html` ? html`
${selected === -1 <div style="margin-right: 24px;">
? html` ${selected === -1
${this.hass.localize( ? html`
"ui.panel.config.automation.editor.triggers.unsupported_platform", ${this.hass.localize(
"platform", "ui.panel.config.automation.editor.triggers.unsupported_platform",
this.trigger.platform "platform",
)} this.trigger.platform
` )}
: ""} `
<h2>Edit in YAML</h2> : ""}
<ha-yaml-editor <ha-yaml-editor
.defaultValue=${this.trigger} .defaultValue=${this.trigger}
@value-changed=${this._onYamlChange} @value-changed=${this._onYamlChange}
></ha-yaml-editor> ></ha-yaml-editor>
</div>
` `
: html` : html`
<paper-dropdown-menu-light <paper-dropdown-menu-light
@@ -175,19 +177,6 @@ export default class HaAutomationTriggerRow extends LitElement {
`; `;
} }
private _handleAction(ev: CustomEvent<ActionDetail>) {
switch (ev.detail.index) {
case 0:
this._switchYamlMode();
break;
case 1:
break;
case 2:
this._onDelete();
break;
}
}
private _onDelete() { private _onDelete() {
showConfirmationDialog(this, { showConfirmationDialog(this, {
text: this.hass.localize( text: this.hass.localize(
@@ -233,23 +222,26 @@ export default class HaAutomationTriggerRow extends LitElement {
this._yamlMode = !this._yamlMode; this._yamlMode = !this._yamlMode;
} }
static get styles(): CSSResult[] { static get styles(): CSSResult {
return [ return css`
haStyle, .card-menu {
css` position: absolute;
.card-menu { top: 0;
float: right; right: 0;
z-index: 3; z-index: 3;
--mdc-theme-text-primary-on-background: var(--primary-text-color); --mdc-theme-text-primary-on-background: var(--primary-text-color);
} }
.rtl .card-menu { .rtl .card-menu {
float: left; right: auto;
} left: 0;
mwc-list-item[disabled] { }
--mdc-theme-text-primary-on-background: var(--disabled-text-color); ha-button-menu {
} margin: 8px;
`, }
]; mwc-list-item[disabled] {
--mdc-theme-text-primary-on-background: var(--disabled-text-color);
}
`;
} }
} }

View File

@@ -57,7 +57,6 @@ import {
showEntityEditorDialog, showEntityEditorDialog,
} from "./show-dialog-entity-editor"; } from "./show-dialog-entity-editor";
import { mdiFilterVariant } from "@mdi/js"; import { mdiFilterVariant } from "@mdi/js";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
export interface StateEntity extends EntityRegistryEntry { export interface StateEntity extends EntityRegistryEntry {
readonly?: boolean; readonly?: boolean;
@@ -450,7 +449,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
> >
</div>` </div>`
: ""} : ""}
<ha-button-menu corner="BOTTOM_START" multi> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
slot="trigger" slot="trigger"
.label=${this.hass!.localize( .label=${this.hass!.localize(
@@ -463,9 +462,8 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
<ha-svg-icon path=${mdiFilterVariant}></ha-svg-icon> <ha-svg-icon path=${mdiFilterVariant}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item <mwc-list-item
@request-selected="${this._showDisabledChanged}" @click="${this._showDisabledChanged}"
graphic="control" graphic="control"
.selected=${this._showDisabled}
> >
<ha-checkbox <ha-checkbox
slot="graphic" slot="graphic"
@@ -476,9 +474,8 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item <mwc-list-item
@request-selected="${this._showRestoredChanged}" @click="${this._showRestoredChanged}"
graphic="control" graphic="control"
.selected=${this._showUnavailable}
> >
<ha-checkbox <ha-checkbox
slot="graphic" slot="graphic"
@@ -489,9 +486,8 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
)} )}
</mwc-list-item> </mwc-list-item>
<mwc-list-item <mwc-list-item
@request-selected="${this._showReadOnlyChanged}" @click="${this._showReadOnlyChanged}"
graphic="control" graphic="control"
.selected=${this._showReadOnly}
> >
<ha-checkbox <ha-checkbox
slot="graphic" slot="graphic"
@@ -583,25 +579,16 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
} }
} }
private _showDisabledChanged(ev: CustomEvent<RequestSelectedDetail>) { private _showDisabledChanged() {
if (ev.detail.source !== "property") { this._showDisabled = !this._showDisabled;
return;
}
this._showDisabled = ev.detail.selected;
} }
private _showRestoredChanged(ev: CustomEvent<RequestSelectedDetail>) { private _showRestoredChanged() {
if (ev.detail.source !== "property") { this._showUnavailable = !this._showUnavailable;
return;
}
this._showUnavailable = ev.detail.selected;
} }
private _showReadOnlyChanged(ev: CustomEvent<RequestSelectedDetail>) { private _showReadOnlyChanged() {
if (ev.detail.source !== "property") { this._showReadOnly = !this._showReadOnly;
return;
}
this._showReadOnly = ev.detail.selected;
} }
private _handleSearchChange(ev: CustomEvent) { private _handleSearchChange(ev: CustomEvent) {

View File

@@ -276,11 +276,7 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) {
</div> </div>
` `
: ""} : ""}
<ha-button-menu <ha-button-menu corner="BOTTOM_START" slot="toolbar-icon">
corner="BOTTOM_START"
slot="toolbar-icon"
@action=${this._toggleShowIgnored}
>
<mwc-icon-button <mwc-icon-button
.title=${this.hass.localize("ui.common.menu")} .title=${this.hass.localize("ui.common.menu")}
.label=${this.hass.localize("ui.common.overflow_menu")} .label=${this.hass.localize("ui.common.overflow_menu")}
@@ -288,7 +284,7 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) {
> >
<ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon> <ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item> <mwc-list-item @click=${this._toggleShowIgnored}>
${this.hass.localize( ${this.hass.localize(
this._showIgnored this._showIgnored
? "ui.panel.config.integrations.ignore.hide_ignored" ? "ui.panel.config.integrations.ignore.hide_ignored"

View File

@@ -28,7 +28,6 @@ import { haStyle } from "../../../resources/styles";
import "../../../components/ha-icon-next"; import "../../../components/ha-icon-next";
import { fireEvent } from "../../../common/dom/fire_event"; import { fireEvent } from "../../../common/dom/fire_event";
import { mdiDotsVertical, mdiOpenInNew } from "@mdi/js"; import { mdiDotsVertical, mdiOpenInNew } from "@mdi/js";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
export interface ConfigEntryUpdatedEvent { export interface ConfigEntryUpdatedEvent {
entry: ConfigEntry; entry: ConfigEntry;
@@ -224,7 +223,7 @@ export class HaIntegrationCard extends LitElement {
` `
: ""} : ""}
</div> </div>
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
.title=${this.hass.localize("ui.common.menu")} .title=${this.hass.localize("ui.common.menu")}
.label=${this.hass.localize("ui.common.overflow_menu")} .label=${this.hass.localize("ui.common.overflow_menu")}
@@ -232,7 +231,7 @@ export class HaIntegrationCard extends LitElement {
> >
<ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon> <ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item> <mwc-list-item @click=${this._showSystemOptions}>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.integrations.config_entry.system_options" "ui.panel.config.integrations.config_entry.system_options"
)} )}
@@ -241,6 +240,7 @@ export class HaIntegrationCard extends LitElement {
? "" ? ""
: html` : html`
<a <a
class="documentation"
href=${this.manifest.documentation} href=${this.manifest.documentation}
rel="noreferrer" rel="noreferrer"
target="_blank" target="_blank"
@@ -255,7 +255,7 @@ export class HaIntegrationCard extends LitElement {
</mwc-list-item> </mwc-list-item>
</a> </a>
`} `}
<mwc-list-item class="warning"> <mwc-list-item class="warning" @click=${this._removeIntegration}>
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.integrations.config_entry.delete" "ui.panel.config.integrations.config_entry.delete"
)} )}
@@ -305,27 +305,32 @@ export class HaIntegrationCard extends LitElement {
showOptionsFlowDialog(this, ev.target.closest("ha-card").configEntry); showOptionsFlowDialog(this, ev.target.closest("ha-card").configEntry);
} }
private _handleAction(ev: CustomEvent<ActionDetail>) { private _showSystemOptions(ev) {
const configEntry = ((ev.target as HTMLElement).closest("ha-card") as any)
.configEntry;
switch (ev.detail.index) {
case 0:
this._showSystemOptions(configEntry);
break;
case 1:
this._removeIntegration(configEntry);
break;
}
}
private _showSystemOptions(configEntry: ConfigEntry) {
showConfigEntrySystemOptionsDialog(this, { showConfigEntrySystemOptionsDialog(this, {
entry: configEntry, entry: ev.target.closest("ha-card").configEntry,
}); });
} }
private async _removeIntegration(configEntry: ConfigEntry) { private async _editEntryName(ev) {
const entryId = configEntry.entry_id; const configEntry = ev.target.closest("ha-card").configEntry;
const newName = await showPromptDialog(this, {
title: this.hass.localize("ui.panel.config.integrations.rename_dialog"),
defaultValue: configEntry.title,
inputLabel: this.hass.localize(
"ui.panel.config.integrations.rename_input_label"
),
});
if (newName === null) {
return;
}
const newEntry = await updateConfigEntry(this.hass, configEntry.entry_id, {
title: newName,
});
fireEvent(this, "entry-updated", { entry: newEntry });
}
private async _removeIntegration(ev) {
const entryId = ev.target.closest("ha-card").configEntry.entry_id;
const confirmed = await showConfirmationDialog(this, { const confirmed = await showConfirmationDialog(this, {
text: this.hass.localize( text: this.hass.localize(
@@ -349,24 +354,6 @@ export class HaIntegrationCard extends LitElement {
}); });
} }
private async _editEntryName(ev) {
const configEntry = ev.target.closest("ha-card").configEntry;
const newName = await showPromptDialog(this, {
title: this.hass.localize("ui.panel.config.integrations.rename_dialog"),
defaultValue: configEntry.title,
inputLabel: this.hass.localize(
"ui.panel.config.integrations.rename_input_label"
),
});
if (newName === null) {
return;
}
const newEntry = await updateConfigEntry(this.hass, configEntry.entry_id, {
title: newName,
});
fireEvent(this, "entry-updated", { entry: newEntry });
}
static get styles(): CSSResult[] { static get styles(): CSSResult[] {
return [ return [
haStyle, haStyle,
@@ -399,6 +386,9 @@ export class HaIntegrationCard extends LitElement {
align-items: center; align-items: center;
padding-right: 5px; padding-right: 5px;
} }
.card-actions .documentation {
color: var(--primary-text-color);
}
.group-header { .group-header {
display: flex; display: flex;
align-items: center; align-items: center;

View File

@@ -93,8 +93,6 @@ export class ZHAClustersDataTable extends LitElement {
selectable selectable
auto-height auto-height
.dir=${computeRTLDirection(this.hass)} .dir=${computeRTLDirection(this.hass)}
.searchLabel=${this.hass.localize("ui.components.data-table.search")}
.noDataText=${this.hass.localize("ui.components.data-table.no-data")}
></ha-data-table> ></ha-data-table>
`; `;
} }

View File

@@ -149,8 +149,6 @@ export class ZHADeviceEndpointDataTable extends LitElement {
.selectable=${this.selectable} .selectable=${this.selectable}
auto-height auto-height
.dir=${computeRTLDirection(this.hass)} .dir=${computeRTLDirection(this.hass)}
.searchLabel=${this.hass.localize("ui.components.data-table.search")}
.noDataText=${this.hass.localize("ui.components.data-table.no-data")}
></ha-data-table> ></ha-data-table>
`; `;
} }

View File

@@ -440,7 +440,7 @@ export class HaScriptEditor extends LitElement {
position: fixed; position: fixed;
bottom: 16px; bottom: 16px;
right: 16px; right: 16px;
z-index: 3; z-index: 1;
margin-bottom: -80px; margin-bottom: -80px;
transition: margin-bottom 0.3s; transition: margin-bottom 0.3s;
} }

View File

@@ -29,6 +29,7 @@ class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
-moz-user-select: initial; -moz-user-select: initial;
@apply --paper-font-body1; @apply --paper-font-body1;
padding: 16px; padding: 16px;
direction: ltr;
display: block; display: block;
} }

View File

@@ -11,7 +11,6 @@ import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import LocalizeMixin from "../../../mixins/localize-mixin"; import LocalizeMixin from "../../../mixins/localize-mixin";
import "../../../styles/polymer-ha-style"; import "../../../styles/polymer-ha-style";
import "../../../util/app-localstorage-document"; import "../../../util/app-localstorage-document";
import { computeRTL } from "../../../common/util/compute_rtl";
const ERROR_SENTINEL = {}; const ERROR_SENTINEL = {};
/* /*
@@ -27,6 +26,7 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
-moz-user-select: initial; -moz-user-select: initial;
display: block; display: block;
padding: 16px; padding: 16px;
direction: ltr;
} }
.ha-form { .ha-form {
@@ -51,13 +51,8 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
text-align: left; text-align: left;
} }
:host([rtl]) .attributes th {
text-align: right;
}
.attributes tr { .attributes tr {
vertical-align: top; vertical-align: top;
direction: ltr;
} }
.attributes tr:nth-child(odd) { .attributes tr:nth-child(odd) {
@@ -88,14 +83,6 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
.error { .error {
color: var(--error-color); color: var(--error-color);
} }
:host([rtl]) .desc-container {
text-align: right;
}
:host([rtl]) .desc-container h3 {
direction: ltr;
}
</style> </style>
<app-localstorage-document <app-localstorage-document
@@ -154,9 +141,7 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
</h1> </h1>
</template> </template>
<template is="dom-if" if="[[_description]]"> <template is="dom-if" if="[[_description]]">
<div class="desc-container"> <h3>[[_description]]</h3>
<h3>[[_description]]</h3>
</div>
<table class="attributes"> <table class="attributes">
<tr> <tr>
@@ -242,10 +227,6 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
type: String, type: String,
computed: "_computeDescription(hass, _domain, _service)", computed: "_computeDescription(hass, _domain, _service)",
}, },
rtl: {
reflectToAttribute: true,
computed: "_computeRTL(hass)",
},
}; };
} }
@@ -348,10 +329,6 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) {
_yamlChanged(ev) { _yamlChanged(ev) {
this.serviceData = ev.detail.value; this.serviceData = ev.detail.value;
} }
_computeRTL(hass) {
return computeRTL(hass);
}
} }
customElements.define("developer-tools-service", HaPanelDevService); customElements.define("developer-tools-service", HaPanelDevService);

View File

@@ -13,7 +13,6 @@ import { EventsMixin } from "../../../mixins/events-mixin";
import LocalizeMixin from "../../../mixins/localize-mixin"; import LocalizeMixin from "../../../mixins/localize-mixin";
import "../../../styles/polymer-ha-style"; import "../../../styles/polymer-ha-style";
import { mdiInformationOutline } from "@mdi/js"; import { mdiInformationOutline } from "@mdi/js";
import { computeRTL } from "../../../common/util/compute_rtl";
const ERROR_SENTINEL = {}; const ERROR_SENTINEL = {};
/* /*
@@ -30,6 +29,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
-moz-user-select: initial; -moz-user-select: initial;
display: block; display: block;
padding: 16px; padding: 16px;
direction: ltr;
} }
.inputs { .inputs {
@@ -44,13 +44,8 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
text-align: left; text-align: left;
} }
:host([rtl]) .entities th {
text-align: right;
}
.entities tr { .entities tr {
vertical-align: top; vertical-align: top;
direction: ltr;
} }
.entities tr:nth-child(odd) { .entities tr:nth-child(odd) {
@@ -237,10 +232,6 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
computed: computed:
"computeEntities(hass, _entityFilter, _stateFilter, _attributeFilter)", "computeEntities(hass, _entityFilter, _stateFilter, _attributeFilter)",
}, },
rtl: {
reflectToAttribute: true,
computed: "_computeRTL(hass)",
},
}; };
} }
@@ -405,10 +396,6 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
_yamlChanged(ev) { _yamlChanged(ev) {
this._stateAttributes = ev.detail.value; this._stateAttributes = ev.detail.value;
} }
_computeRTL(hass) {
return computeRTL(hass);
}
} }
customElements.define("developer-tools-state", HaPanelDevState); customElements.define("developer-tools-state", HaPanelDevState);

View File

@@ -14,7 +14,7 @@ import { formatTimeWithSeconds } from "../../common/datetime/format_time";
import { fireEvent } from "../../common/dom/fire_event"; import { fireEvent } from "../../common/dom/fire_event";
import { domainIcon } from "../../common/entity/domain_icon"; import { domainIcon } from "../../common/entity/domain_icon";
import { stateIcon } from "../../common/entity/state_icon"; import { stateIcon } from "../../common/entity/state_icon";
import { computeRTL, emitRTLDirection } from "../../common/util/compute_rtl"; import { computeRTL } from "../../common/util/compute_rtl";
import "../../components/ha-icon"; import "../../components/ha-icon";
import { LogbookEntry } from "../../data/logbook"; import { LogbookEntry } from "../../data/logbook";
import { HomeAssistant } from "../../types"; import { HomeAssistant } from "../../types";
@@ -28,6 +28,7 @@ class HaLogbook extends LitElement {
@property() public entries: LogbookEntry[] = []; @property() public entries: LogbookEntry[] = [];
@property({ attribute: "rtl", type: Boolean, reflect: true }) @property({ attribute: "rtl", type: Boolean, reflect: true })
// @ts-ignore
private _rtl = false; private _rtl = false;
// @ts-ignore // @ts-ignore
@@ -37,22 +38,17 @@ class HaLogbook extends LitElement {
const oldHass = changedProps.get("hass") as HomeAssistant | undefined; const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
const languageChanged = const languageChanged =
oldHass === undefined || oldHass.language !== this.hass.language; oldHass === undefined || oldHass.language !== this.hass.language;
return changedProps.has("entries") || languageChanged; return changedProps.has("entries") || languageChanged;
} }
protected updated(_changedProps: PropertyValues) { protected updated(_changedProps: PropertyValues) {
const oldHass = _changedProps.get("hass") as HomeAssistant | undefined; this._rtl = computeRTL(this.hass);
if (oldHass === undefined || oldHass.language !== this.hass.language) {
this._rtl = computeRTL(this.hass);
}
} }
protected render(): TemplateResult { protected render(): TemplateResult {
if (!this.entries?.length) { if (!this.entries?.length) {
return html` return html`
<div class="container" .dir=${emitRTLDirection(this._rtl)}> <div class="container">
${this.hass.localize("ui.panel.logbook.entries_not_found")} ${this.hass.localize("ui.panel.logbook.entries_not_found")}
</div> </div>
`; `;
@@ -110,8 +106,9 @@ class HaLogbook extends LitElement {
@click=${this._entityClicked} @click=${this._entityClicked}
.entityId=${item.entity_id} .entityId=${item.entity_id}
class="name" class="name"
>${item.name}</a
> >
${item.name}
</a>
`} `}
<span <span
>${item.message}${item_username >${item.message}${item_username

View File

@@ -61,8 +61,6 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
private _interval?: number; private _interval?: number;
private _fetching = false;
public getCardSize(): number { public getCardSize(): number {
return 4; return 4;
} }
@@ -140,7 +138,6 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
> >
<state-history-charts <state-history-charts
.hass=${this.hass} .hass=${this.hass}
.isLoadingData=${!this._stateHistory}
.historyData=${this._stateHistory} .historyData=${this._stateHistory}
.names=${this._names} .names=${this._names}
.upToNow=${true} .upToNow=${true}
@@ -152,21 +149,13 @@ export class HuiHistoryGraphCard extends LitElement implements LovelaceCard {
} }
private async _getStateHistory(): Promise<void> { private async _getStateHistory(): Promise<void> {
if (this._fetching) { this._stateHistory = await getRecentWithCache(
return; this.hass!,
} this._cacheConfig!.cacheKey,
this._fetching = true; this._cacheConfig!,
try { this.hass!.localize,
this._stateHistory = await getRecentWithCache( this.hass!.language
this.hass!, );
this._cacheConfig!.cacheKey,
this._cacheConfig!,
this.hass!.localize,
this.hass!.language
);
} finally {
this._fetching = false;
}
} }
private _clearInterval(): void { private _clearInterval(): void {

View File

@@ -1,24 +0,0 @@
import { StructError } from "superstruct";
export const handleStructError = (err: Error): string[] => {
if (!(err instanceof StructError)) {
return [err.message];
}
const errors: string[] = [];
for (const failure of err.failures()) {
if (failure.type === "never") {
errors.push(
`Key "${failure.path[0]}" is not supported by the UI editor.`
);
} else {
errors.push(
`The value of "${failure.path.join(
"."
)}" is not supported by the UI editor, we support "${
failure.type
}" but received "${JSON.stringify(failure.value)}".`
);
}
}
return errors;
};

View File

@@ -1,17 +1,9 @@
import { StructResult, StructContext, struct } from "superstruct"; export function isEntityId(value: any): string | boolean {
const isEntityId = (value: unknown, context: StructContext): StructResult => {
if (typeof value !== "string") { if (typeof value !== "string") {
return [context.fail({ type: "string" })]; return "entity id should be a string";
} }
if (!value.includes(".")) { if (!value.includes(".")) {
return [ return "entity id should be in the format 'domain.entity'";
context.fail({
type: "entity id should be in the format 'domain.entity'",
}),
];
} }
return true; return true;
}; }
export const EntityId = struct("entity-id", isEntityId);

View File

@@ -1,17 +1,9 @@
import { StructContext, StructResult, struct } from "superstruct"; export function isIcon(value: any): string | boolean {
const isIcon = (value: unknown, context: StructContext): StructResult => {
if (typeof value !== "string") { if (typeof value !== "string") {
return [context.fail({ type: "string" })]; return "icon should be a string";
} }
if (!value.includes(":")) { if (!value.includes(":")) {
return [ return "icon should be in the format 'mdi:icon'";
context.fail({
type: "icon should be in the format 'mdi:icon'",
}),
];
} }
return true; return true;
}; }
export const Icon = struct("icon", isIcon);

View File

@@ -0,0 +1,10 @@
import { superstruct } from "superstruct";
import { isEntityId } from "./is-entity-id";
import { isIcon } from "./is-icon";
export const struct = superstruct({
types: {
"entity-id": isEntityId,
icon: isIcon,
},
});

View File

@@ -20,7 +20,6 @@ import { confDeleteCard } from "../editor/delete-card";
import { Lovelace, LovelaceCard } from "../types"; import { Lovelace, LovelaceCard } from "../types";
import { computeCardSize } from "../common/compute-card-size"; import { computeCardSize } from "../common/compute-card-size";
import { mdiDotsVertical, mdiArrowDown, mdiArrowUp } from "@mdi/js"; import { mdiDotsVertical, mdiArrowDown, mdiArrowUp } from "@mdi/js";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
@customElement("hui-card-options") @customElement("hui-card-options")
export class HuiCardOptions extends LitElement { export class HuiCardOptions extends LitElement {
@@ -66,7 +65,7 @@ export class HuiCardOptions extends LitElement {
?disabled=${this.path![1] === 0} ?disabled=${this.path![1] === 0}
><ha-svg-icon path=${mdiArrowUp}></ha-svg-icon ><ha-svg-icon path=${mdiArrowUp}></ha-svg-icon
></mwc-icon-button> ></mwc-icon-button>
<ha-button-menu corner="BOTTOM_START" @action=${this._handleAction}> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
slot="trigger" slot="trigger"
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
@@ -79,17 +78,17 @@ export class HuiCardOptions extends LitElement {
<ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon> <ha-svg-icon path=${mdiDotsVertical}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<mwc-list-item> <mwc-list-item @tap=${this._moveCard}>
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.move" "ui.panel.lovelace.editor.edit_card.move"
)}</mwc-list-item )}</mwc-list-item
> >
<mwc-list-item <mwc-list-item @tap=${this._duplicateCard}
>${this.hass!.localize( >${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.duplicate" "ui.panel.lovelace.editor.edit_card.duplicate"
)}</mwc-list-item )}</mwc-list-item
> >
<mwc-list-item class="delete-item"> <mwc-list-item class="delete-item" @tap=${this._deleteCard}>
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.delete" "ui.panel.lovelace.editor.edit_card.delete"
)}</mwc-list-item )}</mwc-list-item
@@ -148,20 +147,6 @@ export class HuiCardOptions extends LitElement {
`; `;
} }
private _handleAction(ev: CustomEvent<ActionDetail>) {
switch (ev.detail.index) {
case 0:
this._moveCard();
break;
case 1:
this._duplicateCard();
break;
case 2:
this._deleteCard();
break;
}
}
private _duplicateCard(): void { private _duplicateCard(): void {
const path = this.path!; const path = this.path!;
const cardConfig = this.lovelace!.config.views[path[0]].cards![path[1]]; const cardConfig = this.lovelace!.config.views[path[0]].cards![path[1]];

View File

@@ -26,8 +26,6 @@ import type { LovelaceCardEditor } from "../../types";
import type { GUIModeChangedEvent } from "../types"; import type { GUIModeChangedEvent } from "../types";
import "../../../../components/ha-circular-progress"; import "../../../../components/ha-circular-progress";
import { deepEqual } from "../../../../common/util/deep-equal"; import { deepEqual } from "../../../../common/util/deep-equal";
import { handleStructError } from "../../common/structs/handle-errors";
import { GUISupportError } from "../gui-support-error";
export interface ConfigChangedEvent { export interface ConfigChangedEvent {
config: LovelaceCardConfig; config: LovelaceCardConfig;
@@ -71,7 +69,7 @@ export class HuiCardEditor extends LitElement {
@internalProperty() private _error?: string; @internalProperty() private _error?: string;
// Warning: GUI editor can't handle configuration - ok to save // Warning: GUI editor can't handle configuration - ok to save
@internalProperty() private _warnings?: string[]; @internalProperty() private _warning?: string;
@internalProperty() private _loading = false; @internalProperty() private _loading = false;
@@ -123,7 +121,7 @@ export class HuiCardEditor extends LitElement {
} }
public get hasWarning(): boolean { public get hasWarning(): boolean {
return this._warnings !== undefined; return this._warning !== undefined;
} }
public get hasError(): boolean { public get hasError(): boolean {
@@ -196,15 +194,10 @@ export class HuiCardEditor extends LitElement {
</div> </div>
` `
: ""} : ""}
${this._warnings ${this._warning
? html` ? html`
<div class="warning"> <div class="warning">
UI editor is not supported for this config: ${this._warning}
<br />
<ul>
${this._warnings.map((warning) => html`<li>${warning}</li>`)}
</ul>
You can still edit your config in yaml.
</div> </div>
` `
: ""} : ""}
@@ -245,7 +238,7 @@ export class HuiCardEditor extends LitElement {
let configElement = this._configElement; let configElement = this._configElement;
try { try {
this._error = undefined; this._error = undefined;
this._warnings = undefined; this._warning = undefined;
if (this._configElType !== cardType) { if (this._configElType !== cardType) {
// If the card type has changed, we need to load a new GUI editor // If the card type has changed, we need to load a new GUI editor
@@ -261,9 +254,7 @@ export class HuiCardEditor extends LitElement {
configElement = await elClass.getConfigElement(); configElement = await elClass.getConfigElement();
} else { } else {
configElement = undefined; configElement = undefined;
throw new GUISupportError( throw Error(`WARNING: No visual editor available for: ${cardType}`);
`No visual editor available for: ${cardType}`
);
} }
this._configElement = configElement; this._configElement = configElement;
@@ -281,14 +272,11 @@ export class HuiCardEditor extends LitElement {
try { try {
this._configElement!.setConfig(this.value); this._configElement!.setConfig(this.value);
} catch (err) { } catch (err) {
throw new GUISupportError( throw Error(`WARNING: ${err.message}`);
"Config is not supported",
handleStructError(err)
);
} }
} catch (err) { } catch (err) {
if (err instanceof GUISupportError) { if (err.message.startsWith("WARNING:")) {
this._warnings = err.warnings ?? [err.message]; this._warning = err.message.substr(8);
} else { } else {
this._error = err; this._error = err;
} }
@@ -314,19 +302,12 @@ export class HuiCardEditor extends LitElement {
.yaml-editor { .yaml-editor {
padding: 8px 0px; padding: 8px 0px;
} }
.error,
.warning {
word-break: break-word;
}
.error { .error {
color: var(--error-color); color: var(--error-color);
} }
.warning { .warning {
color: var(--warning-color); color: var(--warning-color);
} }
.warning ul {
margin: 4px 0;
}
ha-circular-progress { ha-circular-progress {
display: block; display: block;
margin: auto; margin: auto;

View File

@@ -11,7 +11,7 @@ import {
TemplateResult, TemplateResult,
PropertyValues, PropertyValues,
} from "lit-element"; } from "lit-element";
import { HASSDomEvent, fireEvent } from "../../../../common/dom/fire_event"; import type { HASSDomEvent } from "../../../../common/dom/fire_event";
import "../../../../components/ha-dialog"; import "../../../../components/ha-dialog";
import type { import type {
LovelaceCardConfig, LovelaceCardConfig,
@@ -30,9 +30,6 @@ import "./hui-card-preview";
import type { EditCardDialogParams } from "./show-edit-card-dialog"; import type { EditCardDialogParams } from "./show-edit-card-dialog";
import { getCardDocumentationURL } from "../get-card-documentation-url"; import { getCardDocumentationURL } from "../get-card-documentation-url";
import { mdiHelpCircle } from "@mdi/js"; import { mdiHelpCircle } from "@mdi/js";
import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import { HassDialog } from "../../../../dialogs/make-dialog-manager";
import { showConfirmationDialog } from "../../../../dialogs/generic/show-dialog-box";
declare global { declare global {
// for fire event // for fire event
@@ -46,7 +43,7 @@ declare global {
} }
@customElement("hui-dialog-edit-card") @customElement("hui-dialog-edit-card")
export class HuiDialogEditCard extends LitElement implements HassDialog { export class HuiDialogEditCard extends LitElement {
@property() protected hass!: HomeAssistant; @property() protected hass!: HomeAssistant;
@internalProperty() private _params?: EditCardDialogParams; @internalProperty() private _params?: EditCardDialogParams;
@@ -67,8 +64,6 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
@internalProperty() private _documentationURL?: string; @internalProperty() private _documentationURL?: string;
@internalProperty() private _dirty = false;
public async showDialog(params: EditCardDialogParams): Promise<void> { public async showDialog(params: EditCardDialogParams): Promise<void> {
this._params = params; this._params = params;
this._GUImode = true; this._GUImode = true;
@@ -82,20 +77,6 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
} }
} }
public closeDialog(): boolean {
if (this._dirty) {
this._confirmCancel();
return false;
}
this._params = undefined;
this._cardConfig = undefined;
this._error = undefined;
this._documentationURL = undefined;
this._dirty = false;
fireEvent(this, "dialog-closed", { dialog: this.localName });
return true;
}
protected updated(changedProps: PropertyValues): void { protected updated(changedProps: PropertyValues): void {
if ( if (
!this._cardConfig || !this._cardConfig ||
@@ -119,13 +100,9 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
let heading: string; let heading: string;
if (this._cardConfig && this._cardConfig.type) { if (this._cardConfig && this._cardConfig.type) {
heading = this.hass!.localize( heading = `${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.typed_header", `ui.panel.lovelace.editor.card.${this._cardConfig.type}.name`
"type", )} ${this.hass!.localize("ui.panel.lovelace.editor.edit_card.header")}`;
this.hass!.localize(
`ui.panel.lovelace.editor.card.${this._cardConfig.type}.name`
)
);
} else if (!this._cardConfig) { } else if (!this._cardConfig) {
heading = this._viewConfig.title heading = this._viewConfig.title
? this.hass!.localize( ? this.hass!.localize(
@@ -145,7 +122,7 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
open open
scrimClickAction scrimClickAction
@keydown=${this._ignoreKeydown} @keydown=${this._ignoreKeydown}
@closed=${this._cancel} @closed=${this._close}
@opened=${this._opened} @opened=${this._opened}
.heading=${html`${heading} .heading=${html`${heading}
${this._documentationURL !== undefined ${this._documentationURL !== undefined
@@ -156,7 +133,6 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
title=${this.hass!.localize("ui.panel.lovelace.menu.help")} title=${this.hass!.localize("ui.panel.lovelace.menu.help")}
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
dir=${computeRTLDirection(this.hass)}
> >
<mwc-icon-button> <mwc-icon-button>
<ha-svg-icon path=${mdiHelpCircle}></ha-svg-icon> <ha-svg-icon path=${mdiHelpCircle}></ha-svg-icon>
@@ -221,7 +197,7 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
` `
: ""} : ""}
<div slot="primaryAction" @click=${this._save}> <div slot="primaryAction" @click=${this._save}>
<mwc-button @click=${this._cancel}> <mwc-button @click=${this._close}>
${this.hass!.localize("ui.common.cancel")} ${this.hass!.localize("ui.common.cancel")}
</mwc-button> </mwc-button>
${this._cardConfig !== undefined ${this._cardConfig !== undefined
@@ -238,9 +214,7 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
size="small" size="small"
></ha-circular-progress> ></ha-circular-progress>
` `
: this._dirty : this.hass!.localize("ui.common.save")}
? this.hass!.localize("ui.common.save")
: this.hass!.localize("ui.common.close")}
</mwc-button> </mwc-button>
` `
: ``} : ``}
@@ -370,14 +344,12 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
} }
this._cardConfig = deepFreeze(config); this._cardConfig = deepFreeze(config);
this._error = ev.detail.error; this._error = ev.detail.error;
this._dirty = true;
} }
private _handleConfigChanged(ev: HASSDomEvent<ConfigChangedEvent>) { private _handleConfigChanged(ev: HASSDomEvent<ConfigChangedEvent>) {
this._cardConfig = deepFreeze(ev.detail.config); this._cardConfig = deepFreeze(ev.detail.config);
this._error = ev.detail.error; this._error = ev.detail.error;
this._guiModeAvailable = ev.detail.guiModeAvailable; this._guiModeAvailable = ev.detail.guiModeAvailable;
this._dirty = true;
} }
private _handleGUIModeChanged(ev: HASSDomEvent<GUIModeChangedEvent>): void { private _handleGUIModeChanged(ev: HASSDomEvent<GUIModeChangedEvent>): void {
@@ -394,6 +366,13 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
this._cardEditorEl?.refreshYamlEditor(); this._cardEditorEl?.refreshYamlEditor();
} }
private _close(): void {
this._params = undefined;
this._cardConfig = undefined;
this._error = undefined;
this._documentationURL = undefined;
}
private get _canSave(): boolean { private get _canSave(): boolean {
if (this._saving) { if (this._saving) {
return false; return false;
@@ -407,38 +386,8 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
return true; return true;
} }
private async _confirmCancel() {
// Make sure the open state of this dialog is handled before the open state of confirm dialog
await new Promise((resolve) => setTimeout(resolve, 0));
const confirm = await showConfirmationDialog(this, {
title: this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.unsaved_changes"
),
text: this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.confirm_cancel"
),
dismissText: this.hass!.localize("ui.common.no"),
confirmText: this.hass!.localize("ui.common.yes"),
});
if (confirm) {
this._cancel();
}
}
private _cancel(ev?: Event) {
if (ev) {
ev.stopPropagation();
}
this._dirty = false;
this.closeDialog();
}
private async _save(): Promise<void> { private async _save(): Promise<void> {
if (!this._canSave) { if (!this._canSave || this._saving) {
return;
}
if (!this._dirty) {
this.closeDialog();
return; return;
} }
this._saving = true; this._saving = true;
@@ -456,9 +405,8 @@ export class HuiDialogEditCard extends LitElement implements HassDialog {
) )
); );
this._saving = false; this._saving = false;
this._dirty = false;
showSaveSuccessToast(this, this.hass); showSaveSuccessToast(this, this.hass);
this.closeDialog(); this._close();
} }
} }

View File

@@ -16,18 +16,18 @@ import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-icon"; import "../../../../components/ha-icon";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { AlarmPanelCardConfig } from "../../cards/types"; import { AlarmPanelCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { assert, object, string, optional, array } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
name: optional(string()), name: "string?",
states: optional(array()), states: "array?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["alarm_control_panel"]; const includeDomains = ["alarm_control_panel"];
@@ -40,7 +40,7 @@ export class HuiAlarmPanelCardEditor extends LitElement
@internalProperty() private _config?: AlarmPanelCardConfig; @internalProperty() private _config?: AlarmPanelCardConfig;
public setConfig(config: AlarmPanelCardConfig): void { public setConfig(config: AlarmPanelCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -194,7 +194,6 @@ export class HuiAlarmPanelCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -13,6 +13,7 @@ import "../../../../components/ha-icon-input";
import { ActionConfig } from "../../../../data/lovelace"; import { ActionConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { ButtonCardConfig } from "../../cards/types"; import { ButtonCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@@ -26,20 +27,19 @@ import "../../../../components/ha-switch";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import { assert, object, string, optional, boolean } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
name: optional(string()), name: "string?",
show_name: optional(boolean()), show_name: "boolean?",
icon: optional(string()), icon: "string?",
show_icon: optional(boolean()), show_icon: "boolean?",
icon_height: optional(string()), icon_height: "string?",
tap_action: optional(actionConfigStruct), tap_action: struct.optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
theme: optional(string()), theme: "string?",
show_state: optional(boolean()), show_state: "boolean?",
}); });
@customElement("hui-button-card-editor") @customElement("hui-button-card-editor")
@@ -50,7 +50,7 @@ export class HuiButtonCardEditor extends LitElement
@internalProperty() private _config?: ButtonCardConfig; @internalProperty() private _config?: ButtonCardConfig;
public setConfig(config: ButtonCardConfig): void { public setConfig(config: ButtonCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -258,7 +258,6 @@ export class HuiButtonCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let newValue: string | undefined; let newValue: string | undefined;

View File

@@ -16,6 +16,7 @@ import "../../../../components/entity/ha-entity-picker";
import { LovelaceConfig } from "../../../../data/lovelace"; import { LovelaceConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { ConditionalCardConfig } from "../../cards/types"; import { ConditionalCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { import {
ConfigChangedEvent, ConfigChangedEvent,
@@ -23,17 +24,16 @@ import {
} from "../card-editor/hui-card-editor"; } from "../card-editor/hui-card-editor";
import "../card-editor/hui-card-picker"; import "../card-editor/hui-card-picker";
import { GUIModeChangedEvent } from "../types"; import { GUIModeChangedEvent } from "../types";
import { string, any, object, optional, array, assert } from "superstruct";
const conditionStruct = object({ const conditionStruct = struct({
entity: string(), entity: "string",
state: optional(string()), state: "string?",
state_not: optional(string()), state_not: "string?",
}); });
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
card: any(), card: "any",
conditions: optional(array(conditionStruct)), conditions: struct.optional([conditionStruct]),
}); });
@customElement("hui-conditional-card-editor") @customElement("hui-conditional-card-editor")
@@ -54,8 +54,7 @@ export class HuiConditionalCardEditor extends LitElement
@query("hui-card-editor") private _cardEditorEl?: HuiCardEditor; @query("hui-card-editor") private _cardEditorEl?: HuiCardEditor;
public setConfig(config: ConditionalCardConfig): void { public setConfig(config: ConditionalCardConfig): void {
assert(config, cardConfigStruct); this._config = cardConfigStruct(config);
this._config = config;
} }
public refreshYamlEditor(focus) { public refreshYamlEditor(focus) {
@@ -218,7 +217,7 @@ export class HuiConditionalCardEditor extends LitElement
} }
this._setMode(true); this._setMode(true);
this._guiModeAvailable = true; this._guiModeAvailable = true;
this._config = { ...this._config, card: ev.detail.config }; this._config.card = ev.detail.config;
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -227,7 +226,7 @@ export class HuiConditionalCardEditor extends LitElement
if (!this._config) { if (!this._config) {
return; return;
} }
this._config = { ...this._config, card: ev.detail.config }; this._config.card = ev.detail.config;
this._guiModeAvailable = ev.detail.guiModeAvailable; this._guiModeAvailable = ev.detail.guiModeAvailable;
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -237,8 +236,7 @@ export class HuiConditionalCardEditor extends LitElement
return; return;
} }
// @ts-ignore // @ts-ignore
this._config = { ...this._config, card: {} }; this._config.card = {};
// @ts-ignore
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -247,12 +245,10 @@ export class HuiConditionalCardEditor extends LitElement
if (target.value === "" || !this._config) { if (target.value === "" || !this._config) {
return; return;
} }
const conditions = [...this._config.conditions]; this._config.conditions.push({
conditions.push({
entity: target.value, entity: target.value,
state: "", state: "",
}); });
this._config = { ...this._config, conditions };
target.value = ""; target.value = "";
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -262,11 +258,10 @@ export class HuiConditionalCardEditor extends LitElement
if (!this._config || !target) { if (!this._config || !target) {
return; return;
} }
const conditions = [...this._config.conditions];
if (target.configValue === "entity" && target.value === "") { if (target.configValue === "entity" && target.value === "") {
conditions.splice(target.index, 1); this._config.conditions.splice(target.index, 1);
} else { } else {
const condition = { ...conditions[target.index] }; const condition = this._config.conditions[target.index];
if (target.configValue === "entity") { if (target.configValue === "entity") {
condition.entity = target.value; condition.entity = target.value;
} else if (target.configValue === "state") { } else if (target.configValue === "state") {
@@ -286,9 +281,8 @@ export class HuiConditionalCardEditor extends LitElement
delete condition.state_not; delete condition.state_not;
} }
} }
conditions[target.index] = condition; this._config.conditions[target.index] = condition;
} }
this._config = { ...this._config, conditions };
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }

View File

@@ -20,6 +20,7 @@ import {
EntitiesCardConfig, EntitiesCardConfig,
EntitiesCardEntityConfig, EntitiesCardEntityConfig,
} from "../../cards/types"; } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { headerFooterConfigStructs } from "../../header-footer/types"; import { headerFooterConfigStructs } from "../../header-footer/types";
@@ -32,24 +33,15 @@ import {
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import {
string,
optional,
object,
boolean,
array,
union,
assert,
} from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(union([string(), boolean()])), title: "string|number?",
theme: optional(string()), theme: "string?",
show_header_toggle: optional(boolean()), show_header_toggle: "boolean?",
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
header: optional(headerFooterConfigStructs), header: struct.optional(headerFooterConfigStructs),
footer: optional(headerFooterConfigStructs), footer: struct.optional(headerFooterConfigStructs),
}); });
@customElement("hui-entities-card-editor") @customElement("hui-entities-card-editor")
@@ -62,7 +54,7 @@ export class HuiEntitiesCardEditor extends LitElement
@internalProperty() private _configEntities?: EntitiesCardEntityConfig[]; @internalProperty() private _configEntities?: EntitiesCardEntityConfig[];
public setConfig(config: EntitiesCardConfig): void { public setConfig(config: EntitiesCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
this._configEntities = processEditorEntities(config.entities); this._configEntities = processEditorEntities(config.entities);
} }
@@ -135,12 +127,10 @@ export class HuiEntitiesCardEditor extends LitElement
} }
if (ev.detail && ev.detail.entities) { if (ev.detail && ev.detail.entities) {
this._config = { ...this._config, entities: ev.detail.entities }; this._config.entities = ev.detail.entities;
this._configEntities = processEditorEntities(this._config.entities); this._configEntities = processEditorEntities(this._config.entities);
} else if (target.configValue) { } else if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -12,6 +12,7 @@ import { stateIcon } from "../../../../common/entity/state_icon";
import "../../../../components/ha-icon-input"; import "../../../../components/ha-icon-input";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { EntityCardConfig } from "../../cards/types"; import { EntityCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@@ -19,17 +20,16 @@ import { headerFooterConfigStructs } from "../../header-footer/types";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, object, optional, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
name: optional(string()), name: "string?",
icon: optional(string()), icon: "string?",
attribute: optional(string()), attribute: "string?",
unit: optional(string()), unit: "string?",
theme: optional(string()), theme: "string?",
footer: optional(headerFooterConfigStructs), footer: struct.optional(headerFooterConfigStructs),
}); });
@customElement("hui-entity-card-editor") @customElement("hui-entity-card-editor")
@@ -40,7 +40,7 @@ export class HuiEntityCardEditor extends LitElement
@internalProperty() private _config?: EntityCardConfig; @internalProperty() private _config?: EntityCardConfig;
public setConfig(config: EntityCardConfig): void { public setConfig(config: EntityCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -158,7 +158,6 @@ export class HuiEntityCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let newValue: string | undefined; let newValue: string | undefined;

View File

@@ -14,23 +14,23 @@ import "../../../../components/ha-switch";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { GaugeCardConfig, SeverityConfig } from "../../cards/types"; import { GaugeCardConfig, SeverityConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import { assert, object, string, optional, number } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
name: optional(string()), name: "string?",
entity: optional(string()), entity: "string?",
unit: optional(string()), unit: "string?",
min: optional(number()), min: "number?",
max: optional(number()), max: "number?",
severity: optional(object()), severity: "object?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["sensor"]; const includeDomains = ["sensor"];
@@ -43,7 +43,7 @@ export class HuiGaugeCardEditor extends LitElement
@internalProperty() private _config?: GaugeCardConfig; @internalProperty() private _config?: GaugeCardConfig;
public setConfig(config: GaugeCardConfig): void { public setConfig(config: GaugeCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -260,7 +260,6 @@ export class HuiGaugeCardEditor extends LitElement
target.value === "" || target.value === "" ||
(target.type === "number" && isNaN(Number(target.value))) (target.type === "number" && isNaN(Number(target.value)))
) { ) {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let value: any = target.value; let value: any = target.value;

View File

@@ -17,6 +17,7 @@ import "../../../../components/ha-switch";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { ConfigEntity, GlanceCardConfig } from "../../cards/types"; import { ConfigEntity, GlanceCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
@@ -28,26 +29,16 @@ import {
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import {
string,
union,
object,
optional,
number,
boolean,
assert,
array,
} from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(union([string(), number()])), title: "string|number?",
theme: optional(string()), theme: "string?",
columns: optional(number()), columns: "number?",
show_name: optional(boolean()), show_name: "boolean?",
show_state: optional(boolean()), show_state: "boolean?",
show_icon: optional(boolean()), show_icon: "boolean?",
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
}); });
@customElement("hui-glance-card-editor") @customElement("hui-glance-card-editor")
@@ -60,7 +51,7 @@ export class HuiGlanceCardEditor extends LitElement
@internalProperty() private _configEntities?: ConfigEntity[]; @internalProperty() private _configEntities?: ConfigEntity[];
public setConfig(config: GlanceCardConfig): void { public setConfig(config: GlanceCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
this._configEntities = processEditorEntities(config.entities); this._configEntities = processEditorEntities(config.entities);
} }
@@ -193,15 +184,13 @@ export class HuiGlanceCardEditor extends LitElement
return; return;
} }
if (ev.detail && ev.detail.entities) { if (ev.detail && ev.detail.entities) {
this._config = { ...this._config, entities: ev.detail.entities }; this._config.entities = ev.detail.entities;
this._configEntities = processEditorEntities(this._config.entities); this._configEntities = processEditorEntities(this._config.entities);
} else if (target.configValue) { } else if (target.configValue) {
if ( if (
target.value === "" || target.value === "" ||
(target.type === "number" && isNaN(Number(target.value))) (target.type === "number" && isNaN(Number(target.value)))
) { ) {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let value: any = target.value; let value: any = target.value;

View File

@@ -10,37 +10,28 @@ import {
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { HistoryGraphCardConfig } from "../../cards/types"; import { HistoryGraphCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import { EntityConfig } from "../../entity-rows/types"; import { EntityConfig } from "../../entity-rows/types";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { processEditorEntities } from "../process-editor-entities"; import { processEditorEntities } from "../process-editor-entities";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import {
assert,
union,
optional,
string,
object,
array,
number,
} from "superstruct";
import { EntityId } from "../../common/structs/is-entity-id";
const entitiesConfigStruct = union([ const entitiesConfigStruct = struct.union([
object({ {
entity: EntityId, entity: "entity-id",
name: optional(string()), name: "string?",
}), },
EntityId, "entity-id",
]); ]);
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
title: optional(string()), title: "string?",
hours_to_show: optional(number()), hours_to_show: "number?",
refresh_interval: optional(number()), refresh_interval: "number?",
}); });
@customElement("hui-history-graph-card-editor") @customElement("hui-history-graph-card-editor")
@@ -53,7 +44,7 @@ export class HuiHistoryGraphCardEditor extends LitElement
@internalProperty() private _configEntities?: EntityConfig[]; @internalProperty() private _configEntities?: EntityConfig[];
public setConfig(config: HistoryGraphCardConfig): void { public setConfig(config: HistoryGraphCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
this._configEntities = processEditorEntities(config.entities); this._configEntities = processEditorEntities(config.entities);
} }
@@ -136,11 +127,10 @@ export class HuiHistoryGraphCardEditor extends LitElement
} }
if (ev.detail && ev.detail.entities) { if (ev.detail && ev.detail.entities) {
this._config = { ...this._config, entities: ev.detail.entities }; this._config.entities = ev.detail.entities;
this._configEntities = processEditorEntities(this._config.entities); this._configEntities = processEditorEntities(this._config.entities);
} else if (target.configValue) { } else if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let value: any = target.value; let value: any = target.value;

View File

@@ -11,17 +11,17 @@ import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/entity/ha-entity-picker"; import "../../../../components/entity/ha-entity-picker";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { HumidifierCardConfig } from "../../cards/types"; import { HumidifierCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, object, optional, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: string(), entity: "string",
name: optional(string()), name: "string?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["humidifier"]; const includeDomains = ["humidifier"];
@@ -34,7 +34,7 @@ export class HuiHumidifierCardEditor extends LitElement
@internalProperty() private _config?: HumidifierCardConfig; @internalProperty() private _config?: HumidifierCardConfig;
public setConfig(config: HumidifierCardConfig): void { public setConfig(config: HumidifierCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -102,7 +102,6 @@ export class HuiHumidifierCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { ...this._config, [target.configValue!]: target.value }; this._config = { ...this._config, [target.configValue!]: target.value };

View File

@@ -10,16 +10,16 @@ import {
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { IframeCardConfig } from "../../cards/types"; import { IframeCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, assert, object, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(string()), title: "string?",
url: optional(string()), url: "string?",
aspect_ratio: optional(string()), aspect_ratio: "string?",
}); });
@customElement("hui-iframe-card-editor") @customElement("hui-iframe-card-editor")
@@ -30,7 +30,7 @@ export class HuiIframeCardEditor extends LitElement
@internalProperty() private _config?: IframeCardConfig; @internalProperty() private _config?: IframeCardConfig;
public setConfig(config: IframeCardConfig): void { public setConfig(config: IframeCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -102,7 +102,6 @@ export class HuiIframeCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (value === "") { if (value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { ...this._config, [target.configValue!]: value }; this._config = { ...this._config, [target.configValue!]: value };

View File

@@ -13,6 +13,7 @@ import "../../../../components/ha-icon-input";
import { ActionConfig } from "../../../../data/lovelace"; import { ActionConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { LightCardConfig } from "../../cards/types"; import { LightCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@@ -23,16 +24,15 @@ import {
EntitiesEditorEvent, EntitiesEditorEvent,
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, object, optional, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
name: optional(string()), name: "string?",
entity: optional(string()), entity: "string?",
theme: optional(string()), theme: "string?",
icon: optional(string()), icon: "string?",
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
double_tap_action: optional(actionConfigStruct), double_tap_action: struct.optional(actionConfigStruct),
}); });
const includeDomains = ["light"]; const includeDomains = ["light"];
@@ -45,8 +45,7 @@ export class HuiLightCardEditor extends LitElement
@internalProperty() private _config?: LightCardConfig; @internalProperty() private _config?: LightCardConfig;
public setConfig(config: LightCardConfig): void { public setConfig(config: LightCardConfig): void {
assert(config, cardConfigStruct); this._config = cardConfigStruct(config);
this._config = config;
} }
get _name(): string { get _name(): string {
@@ -178,7 +177,6 @@ export class HuiLightCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -13,6 +13,7 @@ import { fireEvent } from "../../../../common/dom/fire_event";
import { PolymerChangedEvent } from "../../../../polymer-types"; import { PolymerChangedEvent } from "../../../../polymer-types";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { MapCardConfig } from "../../cards/types"; import { MapCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-input-list-editor"; import "../../components/hui-input-list-editor";
import { EntityConfig } from "../../entity-rows/types"; import { EntityConfig } from "../../entity-rows/types";
@@ -27,25 +28,16 @@ import "../../../../components/ha-switch";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import {
string,
optional,
object,
number,
boolean,
array,
assert,
} from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(string()), title: "string?",
aspect_ratio: optional(string()), aspect_ratio: "string?",
default_zoom: optional(number()), default_zoom: "number?",
dark_mode: optional(boolean()), dark_mode: "boolean?",
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
hours_to_show: optional(number()), hours_to_show: "number?",
geo_location_sources: optional(array()), geo_location_sources: "array?",
}); });
@customElement("hui-map-card-editor") @customElement("hui-map-card-editor")
@@ -57,7 +49,7 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
@internalProperty() private _configEntities?: EntityConfig[]; @internalProperty() private _configEntities?: EntityConfig[];
public setConfig(config: MapCardConfig): void { public setConfig(config: MapCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
this._configEntities = config.entities this._configEntities = config.entities
? processEditorEntities(config.entities) ? processEditorEntities(config.entities)
@@ -184,8 +176,7 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
return; return;
} }
if (ev.detail && ev.detail.entities) { if (ev.detail && ev.detail.entities) {
this._config = { ...this._config, entities: ev.detail.entities }; this._config.entities = ev.detail.entities;
this._configEntities = processEditorEntities(this._config.entities); this._configEntities = processEditorEntities(this._config.entities);
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -204,7 +195,6 @@ export class HuiMapCardEditor extends LitElement implements LovelaceCardEditor {
value = Number(value); value = Number(value);
} }
if (target.value === "" || (target.type === "number" && isNaN(value))) { if (target.value === "" || (target.type === "number" && isNaN(value))) {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else if (target.configValue) { } else if (target.configValue) {
this._config = { this._config = {

View File

@@ -11,17 +11,17 @@ import {
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { MarkdownCardConfig } from "../../cards/types"; import { MarkdownCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, assert, object, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(string()), title: "string?",
content: string(), content: "string",
theme: optional(string()), theme: "string?",
}); });
@customElement("hui-markdown-card-editor") @customElement("hui-markdown-card-editor")
@@ -32,7 +32,7 @@ export class HuiMarkdownCardEditor extends LitElement
@internalProperty() private _config?: MarkdownCardConfig; @internalProperty() private _config?: MarkdownCardConfig;
public setConfig(config: MarkdownCardConfig): void { public setConfig(config: MarkdownCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -100,7 +100,6 @@ export class HuiMarkdownCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "" && target.configValue !== "content") { if (target.value === "" && target.configValue !== "content") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -10,13 +10,13 @@ import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/entity/ha-entity-picker"; import "../../../../components/entity/ha-entity-picker";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { MediaControlCardConfig } from "../../cards/types"; import { MediaControlCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { assert, object, string, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
}); });
const includeDomains = ["media_player"]; const includeDomains = ["media_player"];
@@ -29,7 +29,7 @@ export class HuiMediaControlCardEditor extends LitElement
@internalProperty() private _config?: MediaControlCardConfig; @internalProperty() private _config?: MediaControlCardConfig;
public setConfig(config: MediaControlCardConfig): void { public setConfig(config: MediaControlCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -71,7 +71,6 @@ export class HuiMediaControlCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -11,6 +11,7 @@ import { fireEvent } from "../../../../common/dom/fire_event";
import { ActionConfig } from "../../../../data/lovelace"; import { ActionConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { PictureCardConfig } from "../../cards/types"; import { PictureCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
@@ -20,14 +21,13 @@ import {
EntitiesEditorEvent, EntitiesEditorEvent,
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, object, optional, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
image: optional(string()), image: "string?",
tap_action: optional(actionConfigStruct), tap_action: struct.optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
theme: optional(string()), theme: "string?",
}); });
@customElement("hui-picture-card-editor") @customElement("hui-picture-card-editor")
@@ -38,7 +38,7 @@ export class HuiPictureCardEditor extends LitElement
@internalProperty() private _config?: PictureCardConfig; @internalProperty() private _config?: PictureCardConfig;
public setConfig(config: PictureCardConfig): void { public setConfig(config: PictureCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -128,7 +128,6 @@ export class HuiPictureCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -16,6 +16,7 @@ import "../../../../components/ha-formfield";
import { ActionConfig } from "../../../../data/lovelace"; import { ActionConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { PictureEntityCardConfig } from "../../cards/types"; import { PictureEntityCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@@ -27,21 +28,20 @@ import {
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import { assert, object, string, optional, boolean } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: string(), entity: "string",
image: optional(string()), image: "string?",
name: optional(string()), name: "string?",
camera_image: optional(string()), camera_image: "string?",
camera_view: optional(string()), camera_view: "string?",
aspect_ratio: optional(string()), aspect_ratio: "string?",
tap_action: optional(actionConfigStruct), tap_action: struct.optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
show_name: optional(boolean()), show_name: "boolean?",
show_state: optional(boolean()), show_state: "boolean?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["camera"]; const includeDomains = ["camera"];
@@ -54,7 +54,7 @@ export class HuiPictureEntityCardEditor extends LitElement
@internalProperty() private _config?: PictureEntityCardConfig; @internalProperty() private _config?: PictureEntityCardConfig;
public setConfig(config: PictureEntityCardConfig): void { public setConfig(config: PictureEntityCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -275,7 +275,6 @@ export class HuiPictureEntityCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (value === "") { if (value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -15,6 +15,7 @@ import "../../../../components/entity/ha-entity-picker";
import { ActionConfig } from "../../../../data/lovelace"; import { ActionConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { PictureGlanceCardConfig } from "../../cards/types"; import { PictureGlanceCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-action-editor"; import "../../components/hui-action-editor";
import "../../components/hui-entity-editor"; import "../../components/hui-entity-editor";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
@@ -28,20 +29,19 @@ import {
EntitiesEditorEvent, EntitiesEditorEvent,
} from "../types"; } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { assert, string, object, optional, array } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(string()), title: "string?",
entity: optional(string()), entity: "string?",
image: optional(string()), image: "string?",
camera_image: optional(string()), camera_image: "string?",
camera_view: optional(string()), camera_view: "string?",
aspect_ratio: optional(string()), aspect_ratio: "string?",
tap_action: optional(actionConfigStruct), tap_action: struct.optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["camera"]; const includeDomains = ["camera"];
@@ -56,7 +56,7 @@ export class HuiPictureGlanceCardEditor extends LitElement
@internalProperty() private _configEntities?: EntityConfig[]; @internalProperty() private _configEntities?: EntityConfig[];
public setConfig(config: PictureGlanceCardConfig): void { public setConfig(config: PictureGlanceCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
this._configEntities = processEditorEntities(config.entities); this._configEntities = processEditorEntities(config.entities);
} }
@@ -251,8 +251,7 @@ export class HuiPictureGlanceCardEditor extends LitElement
} }
if (ev.detail && ev.detail.entities) { if (ev.detail && ev.detail.entities) {
this._config = { ...this._config, entities: ev.detail.entities }; this._config.entities = ev.detail.entities;
this._configEntities = processEditorEntities(this._config.entities); this._configEntities = processEditorEntities(this._config.entities);
} else if (target.configValue) { } else if (target.configValue) {
if ( if (
@@ -263,7 +262,6 @@ export class HuiPictureGlanceCardEditor extends LitElement
} }
if (value === "") { if (value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -12,17 +12,17 @@ import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-icon"; import "../../../../components/ha-icon";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { PlantStatusCardConfig } from "../../cards/types"; import { PlantStatusCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { assert, object, string, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: string(), entity: "string",
name: optional(string()), name: "string?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["plant"]; const includeDomains = ["plant"];
@@ -35,7 +35,7 @@ export class HuiPlantStatusCardEditor extends LitElement
@internalProperty() private _config?: PlantStatusCardConfig; @internalProperty() private _config?: PlantStatusCardConfig;
public setConfig(config: PlantStatusCardConfig): void { public setConfig(config: PlantStatusCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -102,7 +102,6 @@ export class HuiPlantStatusCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -16,22 +16,22 @@ import "../../../../components/entity/ha-entity-picker";
import "../../../../components/ha-icon-input"; import "../../../../components/ha-icon-input";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { SensorCardConfig } from "../../cards/types"; import { SensorCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { string, assert, object, optional, number } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
name: optional(string()), name: "string?",
icon: optional(string()), icon: "string?",
graph: optional(string()), graph: "string?",
unit: optional(string()), unit: "string?",
detail: optional(number()), detail: "number?",
theme: optional(string()), theme: "string?",
hours_to_show: optional(number()), hours_to_show: "number?",
}); });
const includeDomains = ["sensor"]; const includeDomains = ["sensor"];
@@ -44,7 +44,7 @@ export class HuiSensorCardEditor extends LitElement
@internalProperty() private _config?: SensorCardConfig; @internalProperty() private _config?: SensorCardConfig;
public setConfig(config: SensorCardConfig): void { public setConfig(config: SensorCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -205,7 +205,6 @@ export class HuiSensorCardEditor extends LitElement
target.value === "" || target.value === "" ||
(target.type === "number" && isNaN(Number(target.value))) (target.type === "number" && isNaN(Number(target.value)))
) { ) {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
let value: any = target.value; let value: any = target.value;

View File

@@ -13,15 +13,15 @@ import { isComponentLoaded } from "../../../../common/config/is_component_loaded
import { fireEvent } from "../../../../common/dom/fire_event"; import { fireEvent } from "../../../../common/dom/fire_event";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { ShoppingListCardConfig } from "../../cards/types"; import { ShoppingListCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { string, assert, object, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
title: optional(string()), title: "string?",
theme: optional(string()), theme: "string?",
}); });
@customElement("hui-shopping-list-card-editor") @customElement("hui-shopping-list-card-editor")
@@ -32,7 +32,7 @@ export class HuiShoppingListEditor extends LitElement
@internalProperty() private _config?: ShoppingListCardConfig; @internalProperty() private _config?: ShoppingListCardConfig;
public setConfig(config: ShoppingListCardConfig): void { public setConfig(config: ShoppingListCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -91,7 +91,6 @@ export class HuiShoppingListEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -16,6 +16,7 @@ import { fireEvent, HASSDomEvent } from "../../../../common/dom/fire_event";
import { LovelaceConfig } from "../../../../data/lovelace"; import { LovelaceConfig } from "../../../../data/lovelace";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { StackCardConfig } from "../../cards/types"; import { StackCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { import {
ConfigChangedEvent, ConfigChangedEvent,
@@ -23,12 +24,11 @@ import {
} from "../card-editor/hui-card-editor"; } from "../card-editor/hui-card-editor";
import "../card-editor/hui-card-picker"; import "../card-editor/hui-card-picker";
import { GUIModeChangedEvent } from "../types"; import { GUIModeChangedEvent } from "../types";
import { assert, object, string, array, any, optional } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
cards: array(any()), cards: ["any"],
title: optional(string()), title: "string?",
}); });
@customElement("hui-stack-card-editor") @customElement("hui-stack-card-editor")
@@ -48,9 +48,8 @@ export class HuiStackCardEditor extends LitElement
@query("hui-card-editor") private _cardEditorEl?: HuiCardEditor; @query("hui-card-editor") private _cardEditorEl?: HuiCardEditor;
public setConfig(config: Readonly<StackCardConfig>): void { public setConfig(config: StackCardConfig): void {
assert(config, cardConfigStruct); this._config = cardConfigStruct(config);
this._config = config;
} }
public refreshYamlEditor(focus) { public refreshYamlEditor(focus) {
@@ -163,9 +162,7 @@ export class HuiStackCardEditor extends LitElement
if (!this._config) { if (!this._config) {
return; return;
} }
const cards = [...this._config.cards]; this._config.cards[this._selectedCard] = ev.detail.config;
cards[this._selectedCard] = ev.detail.config;
this._config = { ...this._config, cards };
this._guiModeAvailable = ev.detail.guiModeAvailable; this._guiModeAvailable = ev.detail.guiModeAvailable;
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -176,8 +173,7 @@ export class HuiStackCardEditor extends LitElement
return; return;
} }
const config = ev.detail.config; const config = ev.detail.config;
const cards = [...this._config.cards, config]; this._config.cards.push(config);
this._config = { ...this._config, cards };
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -185,9 +181,7 @@ export class HuiStackCardEditor extends LitElement
if (!this._config) { if (!this._config) {
return; return;
} }
const cards = [...this._config.cards]; this._config.cards.splice(this._selectedCard, 1);
cards.splice(this._selectedCard, 1);
this._config = { ...this._config, cards };
this._selectedCard = Math.max(0, this._selectedCard - 1); this._selectedCard = Math.max(0, this._selectedCard - 1);
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }
@@ -198,13 +192,8 @@ export class HuiStackCardEditor extends LitElement
} }
const source = this._selectedCard; const source = this._selectedCard;
const target = ev.target.id === "move-before" ? source - 1 : source + 1; const target = ev.target.id === "move-before" ? source - 1 : source + 1;
const cards = [...this._config.cards]; const card = this._config.cards.splice(this._selectedCard, 1)[0];
const card = cards.splice(this._selectedCard, 1)[0]; this._config.cards.splice(target, 0, card);
cards.splice(target, 0, card);
this._config = {
...this._config,
cards,
};
this._selectedCard = target; this._selectedCard = target;
fireEvent(this, "config-changed", { config: this._config }); fireEvent(this, "config-changed", { config: this._config });
} }

View File

@@ -11,17 +11,17 @@ import { fireEvent } from "../../../../common/dom/fire_event";
import "../../../../components/entity/ha-entity-picker"; import "../../../../components/entity/ha-entity-picker";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { ThermostatCardConfig } from "../../cards/types"; import { ThermostatCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { object, string, optional, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: string(), entity: "string",
name: optional(string()), name: "string?",
theme: optional(string()), theme: "string?",
}); });
const includeDomains = ["climate"]; const includeDomains = ["climate"];
@@ -34,7 +34,7 @@ export class HuiThermostatCardEditor extends LitElement
@internalProperty() private _config?: ThermostatCardConfig; @internalProperty() private _config?: ThermostatCardConfig;
public setConfig(config: ThermostatCardConfig): void { public setConfig(config: ThermostatCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -102,7 +102,6 @@ export class HuiThermostatCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { ...this._config, [target.configValue!]: target.value }; this._config = { ...this._config, [target.configValue!]: target.value };

View File

@@ -12,20 +12,20 @@ import "../../../../components/ha-switch";
import "../../../../components/ha-formfield"; import "../../../../components/ha-formfield";
import { HomeAssistant } from "../../../../types"; import { HomeAssistant } from "../../../../types";
import { WeatherForecastCardConfig } from "../../cards/types"; import { WeatherForecastCardConfig } from "../../cards/types";
import { struct } from "../../common/structs/struct";
import "../../components/hui-theme-select-editor"; import "../../components/hui-theme-select-editor";
import { LovelaceCardEditor } from "../../types"; import { LovelaceCardEditor } from "../../types";
import { EditorTarget, EntitiesEditorEvent } from "../types"; import { EditorTarget, EntitiesEditorEvent } from "../types";
import { configElementStyle } from "./config-elements-style"; import { configElementStyle } from "./config-elements-style";
import { computeRTLDirection } from "../../../../common/util/compute_rtl"; import { computeRTLDirection } from "../../../../common/util/compute_rtl";
import { object, string, optional, boolean, assert } from "superstruct";
const cardConfigStruct = object({ const cardConfigStruct = struct({
type: string(), type: "string",
entity: optional(string()), entity: "string?",
name: optional(string()), name: "string?",
theme: optional(string()), theme: "string?",
show_forecast: optional(boolean()), show_forecast: "boolean?",
secondary_info_attribute: optional(string()), secondary_info_attribute: "string?",
}); });
const includeDomains = ["weather"]; const includeDomains = ["weather"];
@@ -38,7 +38,7 @@ export class HuiWeatherForecastCardEditor extends LitElement
@internalProperty() private _config?: WeatherForecastCardConfig; @internalProperty() private _config?: WeatherForecastCardConfig;
public setConfig(config: WeatherForecastCardConfig): void { public setConfig(config: WeatherForecastCardConfig): void {
assert(config, cardConfigStruct); config = cardConfigStruct(config);
this._config = config; this._config = config;
} }
@@ -139,7 +139,6 @@ export class HuiWeatherForecastCardEditor extends LitElement
} }
if (target.configValue) { if (target.configValue) {
if (target.value === "") { if (target.value === "") {
this._config = { ...this._config };
delete this._config[target.configValue!]; delete this._config[target.configValue!];
} else { } else {
this._config = { this._config = {

View File

@@ -1,9 +0,0 @@
export class GUISupportError extends Error {
public warnings?: string[] = [];
constructor(message: string, warnings?: string[]) {
super(message);
this.name = "GUISupportError";
this.warnings = warnings;
}
}

View File

@@ -4,10 +4,8 @@ import {
LovelaceViewConfig, LovelaceViewConfig,
ShowViewConfig, ShowViewConfig,
} from "../../../data/lovelace"; } from "../../../data/lovelace";
import { struct } from "../common/structs/struct";
import { EntityConfig } from "../entity-rows/types"; import { EntityConfig } from "../entity-rows/types";
import { optional, string, object, union } from "superstruct";
import { EntityId } from "../common/structs/is-entity-id";
import { Icon } from "../common/structs/is-icon";
export interface YamlChangedEvent extends Event { export interface YamlChangedEvent extends Event {
detail: { detail: {
@@ -68,19 +66,19 @@ export interface CardPickTarget extends EventTarget {
config: LovelaceCardConfig; config: LovelaceCardConfig;
} }
export const actionConfigStruct = object({ export const actionConfigStruct = struct({
action: string(), action: "string",
navigation_path: optional(string()), navigation_path: "string?",
url_path: optional(string()), url_path: "string?",
service: optional(string()), service: "string?",
service_data: optional(object()), service_data: "object?",
}); });
export const entitiesConfigStruct = union([ export const entitiesConfigStruct = struct.union([
object({ {
entity: EntityId, entity: "entity-id",
name: optional(string()), name: "string?",
icon: optional(Icon), icon: "icon?",
}), },
EntityId, "entity-id",
]); ]);

View File

@@ -176,12 +176,6 @@ export class HuiUnusedEntities extends LitElement {
selectable selectable
@selection-changed=${this._handleSelectionChanged} @selection-changed=${this._handleSelectionChanged}
.dir=${computeRTLDirection(this.hass)} .dir=${computeRTLDirection(this.hass)}
.searchLabel=${this.hass.localize(
"ui.panel.lovelace.unused_entities.search"
)}
.noDataText=${this.hass.localize(
"ui.panel.lovelace.unused_entities.no_data"
)}
></ha-data-table> ></ha-data-table>
${this._selectedEntities.length ${this._selectedEntities.length

View File

@@ -1,5 +1,5 @@
import { ActionConfig } from "../../../data/lovelace"; import { ActionConfig } from "../../../data/lovelace";
import { object, optional, union, string, number, array } from "superstruct"; import { struct } from "../common/structs/struct";
import { actionConfigStruct, entitiesConfigStruct } from "../editor/types"; import { actionConfigStruct, entitiesConfigStruct } from "../editor/types";
import { EntityConfig } from "../entity-rows/types"; import { EntityConfig } from "../entity-rows/types";
@@ -24,27 +24,27 @@ export interface PictureHeaderFooterConfig extends LovelaceHeaderFooterConfig {
double_tap_action?: ActionConfig; double_tap_action?: ActionConfig;
} }
export const pictureHeaderFooterConfigStruct = object({ export const pictureHeaderFooterConfigStruct = struct({
type: string(), type: "string",
image: string(), image: "string",
tap_action: optional(actionConfigStruct), tap_action: struct.optional(actionConfigStruct),
hold_action: optional(actionConfigStruct), hold_action: struct.optional(actionConfigStruct),
double_tap_action: optional(actionConfigStruct), double_tap_action: struct.optional(actionConfigStruct),
}); });
export const buttonsHeaderFooterConfigStruct = object({ export const buttonsHeaderFooterConfigStruct = struct({
type: string(), type: "string",
entities: array(entitiesConfigStruct), entities: [entitiesConfigStruct],
}); });
export const graphHeaderFooterConfigStruct = object({ export const graphHeaderFooterConfigStruct = struct({
type: string(), type: "string",
entity: string(), entity: "string",
detail: optional(string()), detail: "number?",
hours_to_show: optional(number()), hours_to_show: "number?",
}); });
export const headerFooterConfigStructs = union([ export const headerFooterConfigStructs = struct.union([
pictureHeaderFooterConfigStruct, pictureHeaderFooterConfigStruct,
buttonsHeaderFooterConfigStruct, buttonsHeaderFooterConfigStruct,
graphHeaderFooterConfigStruct, graphHeaderFooterConfigStruct,

View File

@@ -27,12 +27,12 @@ import {
} from "../../dialogs/generic/show-dialog-box"; } from "../../dialogs/generic/show-dialog-box";
import { haStyle } from "../../resources/styles"; import { haStyle } from "../../resources/styles";
import type { HomeAssistant } from "../../types"; import type { HomeAssistant } from "../../types";
import { struct } from "./common/structs/struct";
import type { Lovelace } from "./types"; import type { Lovelace } from "./types";
import { optional, array, string, object, type, assert } from "superstruct";
const lovelaceStruct = type({ const lovelaceStruct = struct.interface({
title: optional(string()), title: "string?",
views: array(object()), views: ["object"],
}); });
@customElement("hui-editor") @customElement("hui-editor")
@@ -251,7 +251,7 @@ class LovelaceFullConfigEditor extends LitElement {
return; return;
} }
try { try {
assert(config, lovelaceStruct); config = lovelaceStruct(config);
} catch (err) { } catch (err) {
showAlertDialog(this, { showAlertDialog(this, {
text: this.hass.localize( text: this.hass.localize(

View File

@@ -58,8 +58,6 @@ import type { Lovelace } from "./types";
import "./views/hui-panel-view"; import "./views/hui-panel-view";
import type { HUIPanelView } from "./views/hui-panel-view"; import type { HUIPanelView } from "./views/hui-panel-view";
import { HUIView } from "./views/hui-view"; import { HUIView } from "./views/hui-view";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
import { shouldHandleRequestSelectedEvent } from "../../common/mwc/handle-request-selected-event";
class HUIRoot extends LitElement { class HUIRoot extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@@ -135,19 +133,14 @@ class HUIRoot extends LitElement {
<ha-svg-icon path=${mdiPencil}></ha-svg-icon> <ha-svg-icon path=${mdiPencil}></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
</div> </div>
<a <mwc-icon-button
href="https://www.home-assistant.io/lovelace/" title="${this.hass!.localize(
rel="noreferrer" "ui.panel.lovelace.menu.help"
target="_blank" )}"
@click="${this._handleHelp}"
> >
<mwc-icon-button <ha-svg-icon path=${mdiHelpCircle}></ha-svg-icon>
title="${this.hass!.localize( </mwc-icon-button>
"ui.panel.lovelace.menu.help"
)}"
>
<ha-svg-icon path=${mdiHelpCircle}></ha-svg-icon>
</mwc-icon-button>
</a>
<ha-button-menu corner="BOTTOM_START"> <ha-button-menu corner="BOTTOM_START">
<mwc-icon-button <mwc-icon-button
slot="trigger" slot="trigger"
@@ -167,14 +160,14 @@ class HUIRoot extends LitElement {
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
"ui.panel.lovelace.unused_entities.title" "ui.panel.lovelace.unused_entities.title"
)} )}
@request-selected="${this._handleUnusedEntities}" @tap="${this._handleUnusedEntities}"
> >
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.unused_entities.title" "ui.panel.lovelace.unused_entities.title"
)} )}
</mwc-list-item> </mwc-list-item>
`} `}
<mwc-list-item @request-selected="${this._handleRawEditor}"> <mwc-list-item @tap="${this.lovelace!.enableFullEditMode}">
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.editor.menu.raw_editor" "ui.panel.lovelace.editor.menu.raw_editor"
)} )}
@@ -217,7 +210,7 @@ class HUIRoot extends LitElement {
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
"ui.panel.lovelace.menu.refresh" "ui.panel.lovelace.menu.refresh"
)} )}
@request-selected="${this._handleRefresh}" @tap="${this._handleRefresh}"
> >
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.menu.refresh" "ui.panel.lovelace.menu.refresh"
@@ -227,7 +220,7 @@ class HUIRoot extends LitElement {
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
"ui.panel.lovelace.unused_entities.title" "ui.panel.lovelace.unused_entities.title"
)} )}
@request-selected="${this._handleUnusedEntities}" @tap="${this._handleUnusedEntities}"
> >
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.unused_entities.title" "ui.panel.lovelace.unused_entities.title"
@@ -242,7 +235,7 @@ class HUIRoot extends LitElement {
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
"ui.panel.lovelace.menu.reload_resources" "ui.panel.lovelace.menu.reload_resources"
)} )}
@request-selected=${this._handleReloadResources} @tap="${this._handleReloadResources}"
> >
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.menu.reload_resources" "ui.panel.lovelace.menu.reload_resources"
@@ -256,7 +249,7 @@ class HUIRoot extends LitElement {
aria-label=${this.hass!.localize( aria-label=${this.hass!.localize(
"ui.panel.lovelace.menu.configure_ui" "ui.panel.lovelace.menu.configure_ui"
)} )}
@request-selected=${this._handleEnableEditMode} @tap="${this._editModeEnable}"
> >
${this.hass!.localize( ${this.hass!.localize(
"ui.panel.lovelace.menu.configure_ui" "ui.panel.lovelace.menu.configure_ui"
@@ -264,19 +257,14 @@ class HUIRoot extends LitElement {
</mwc-list-item> </mwc-list-item>
` `
: ""} : ""}
<a <mwc-list-item
href="https://www.home-assistant.io/lovelace/" aria-label=${this.hass!.localize(
rel="noreferrer" "ui.panel.lovelace.menu.help"
target="_blank" )}
@tap="${this._handleHelp}"
> >
<mwc-list-item ${this.hass!.localize("ui.panel.lovelace.menu.help")}
aria-label=${this.hass!.localize( </mwc-list-item>
"ui.panel.lovelace.menu.help"
)}
>
${this.hass!.localize("ui.panel.lovelace.menu.help")}
</mwc-list-item>
</a>
</ha-button-menu> </ha-button-menu>
</app-toolbar> </app-toolbar>
`} `}
@@ -486,17 +474,11 @@ class HUIRoot extends LitElement {
return this.shadowRoot!.getElementById("view") as HTMLDivElement; return this.shadowRoot!.getElementById("view") as HTMLDivElement;
} }
private _handleRefresh(ev: CustomEvent<RequestSelectedDetail>): void { private _handleRefresh(): void {
if (!shouldHandleRequestSelectedEvent(ev)) {
return;
}
fireEvent(this, "config-refresh"); fireEvent(this, "config-refresh");
} }
private _handleReloadResources(ev: CustomEvent<RequestSelectedDetail>): void { private _handleReloadResources(): void {
if (!shouldHandleRequestSelectedEvent(ev)) {
return;
}
this.hass.callService("lovelace", "reload_resources"); this.hass.callService("lovelace", "reload_resources");
showConfirmationDialog(this, { showConfirmationDialog(this, {
title: this.hass!.localize( title: this.hass!.localize(
@@ -509,17 +491,7 @@ class HUIRoot extends LitElement {
}); });
} }
private _handleRawEditor(ev: CustomEvent<RequestSelectedDetail>): void { private _handleUnusedEntities(): void {
if (!shouldHandleRequestSelectedEvent(ev)) {
return;
}
this.lovelace!.enableFullEditMode();
}
private _handleUnusedEntities(ev: CustomEvent<RequestSelectedDetail>): void {
if (!shouldHandleRequestSelectedEvent(ev)) {
return;
}
navigate(this, `${this.route?.prefix}/hass-unused-entities`); navigate(this, `${this.route?.prefix}/hass-unused-entities`);
} }
@@ -527,20 +499,17 @@ class HUIRoot extends LitElement {
showVoiceCommandDialog(this); showVoiceCommandDialog(this);
} }
private _handleEnableEditMode(ev: CustomEvent<RequestSelectedDetail>): void { private _handleHelp(): void {
if (!shouldHandleRequestSelectedEvent(ev)) { window.open("https://www.home-assistant.io/lovelace/", "_blank");
return; }
}
private _editModeEnable(): void {
if (this._yamlMode) { if (this._yamlMode) {
showAlertDialog(this, { showAlertDialog(this, {
text: "The edit UI is not available when in YAML mode.", text: "The edit UI is not available when in YAML mode.",
}); });
return; return;
} }
this._enableEditMode();
}
private _enableEditMode(): void {
this.lovelace!.setEditMode(true); this.lovelace!.setEditMode(true);
} }
@@ -645,7 +614,7 @@ class HUIRoot extends LitElement {
const viewConfig = this.config.views[viewIndex]; const viewConfig = this.config.views[viewIndex];
if (!viewConfig) { if (!viewConfig) {
this._enableEditMode(); this._editModeEnable();
return; return;
} }

View File

@@ -83,14 +83,14 @@ class HaPanelShoppingList extends LocalizeMixin(PolymerElement) {
icon="hass:microphone" icon="hass:microphone"
on-click="_showVoiceCommandDialog" on-click="_showVoiceCommandDialog"
></ha-icon-button> ></ha-icon-button>
<ha-button-menu corner="BOTTOM_START" on-action="_clearCompleted"> <ha-button-menu corner="BOTTOM_START">
<ha-icon-button <ha-icon-button
icon="hass:dots-vertical" icon="hass:dots-vertical"
label="Menu" label="Menu"
slot="trigger" slot="trigger"
> >
</ha-icon-button> </ha-icon-button>
<mwc-list-item> <mwc-list-item on-click="_clearCompleted">
[[localize('ui.panel.shopping-list.clear_completed')]] [[localize('ui.panel.shopping-list.clear_completed')]]
</mwc-list-item> </mwc-list-item>
</ha-button-menu> </ha-button-menu>

View File

@@ -34,7 +34,7 @@ documentContainer.innerHTML = `<custom-style>
--scrollbar-thumb-color: rgb(194, 194, 194); --scrollbar-thumb-color: rgb(194, 194, 194);
--error-color: #db4437; --error-color: #db4437;
--warning-color: #FF9800; --warning-color: #f4b400;
--success-color: #0f9d58; --success-color: #0f9d58;
--info-color: #4285f4; --info-color: #4285f4;

View File

@@ -335,8 +335,7 @@
"automation": "Part of the following automations" "automation": "Part of the following automations"
}, },
"data-table": { "data-table": {
"search": "Search", "search": "Search"
"no-data": "No data"
} }
}, },
"dialogs": { "dialogs": {
@@ -1602,7 +1601,7 @@
"spinner": "Searching for ZHA Zigbee devices...", "spinner": "Searching for ZHA Zigbee devices...",
"pairing_mode": "Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.", "pairing_mode": "Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.",
"discovered_text": "Devices will show up here once discovered.", "discovered_text": "Devices will show up here once discovered.",
"no_devices_found": "No devices were found, make sure they are in paring mode and keep them awake while discovering is running.", "no_devices_found": "No devices where found, make sure they are in paring mode and keep them awake while discovering is running.",
"search_again": "Search Again" "search_again": "Search Again"
}, },
"network_management": { "network_management": {
@@ -1830,9 +1829,7 @@
"entity": "Entity", "entity": "Entity",
"entity_id": "Entity ID", "entity_id": "Entity ID",
"domain": "Domain", "domain": "Domain",
"last_changed": "Last Changed", "last_changed": "Last Changed"
"search": "Search entities",
"no_data": "No unused entities found"
}, },
"add_entities": { "add_entities": {
"yaml_unsupported": "You cannot use this function when using Lovelace UI in YAML mode.", "yaml_unsupported": "You cannot use this function when using Lovelace UI in YAML mode.",
@@ -1901,12 +1898,9 @@
}, },
"edit_card": { "edit_card": {
"header": "Card Configuration", "header": "Card Configuration",
"typed_header": "{type} Card Configuration",
"pick_card": "Which card would you like to add?", "pick_card": "Which card would you like to add?",
"pick_card_view_title": "Which card would you like to add to your {name} view?", "pick_card_view_title": "Which card would you like to add to your {name} view?",
"toggle_editor": "Toggle Editor", "toggle_editor": "Toggle Editor",
"unsaved_changes": "You have unsaved changes",
"confirm_cancel": "Are you sure you want to cancel?",
"show_visual_editor": "Show Visual Editor", "show_visual_editor": "Show Visual Editor",
"show_code_editor": "Show Code Editor", "show_code_editor": "Show Code Editor",
"add": "Add Card", "add": "Add Card",

View File

@@ -1,9 +1,4 @@
{ {
"config_entry": {
"disabled_by": {
"integration": "تكامل"
}
},
"groups": { "groups": {
"system-admin": "مسؤولين", "system-admin": "مسؤولين",
"system-read-only": "مستخدمين للعرض فقط", "system-read-only": "مستخدمين للعرض فقط",
@@ -27,19 +22,6 @@
"auto": "تلقائي", "auto": "تلقائي",
"off": "إيقاف", "off": "إيقاف",
"on": "تشغيل" "on": "تشغيل"
},
"hvac_action": {
"drying": "تجفيف"
}
},
"humidifier": {
"mode": {
"auto": "تلقائي",
"baby": "الطفل",
"comfort": "الراحة",
"eco": "اقتصادي",
"home": "في المنزل",
"normal": "عادي"
} }
} }
}, },
@@ -186,7 +168,7 @@
}, },
"configurator": { "configurator": {
"configure": "إعداد", "configure": "إعداد",
"configured": "تم التكوين" "configured": "تم الإعداد"
}, },
"cover": { "cover": {
"closed": "مغلق", "closed": "مغلق",
@@ -255,7 +237,7 @@
"on": "قيد التشغيل" "on": "قيد التشغيل"
}, },
"scene": { "scene": {
"scening": "تشهيد" "scening": "قبد البحث"
}, },
"script": { "script": {
"off": "إيقاف", "off": "إيقاف",
@@ -317,7 +299,7 @@
"ui": { "ui": {
"auth_store": { "auth_store": {
"ask": "هل تريد حفظ هذا الدخول؟", "ask": "هل تريد حفظ هذا الدخول؟",
"confirm": "نعم", "confirm": "حفظ الدخول",
"decline": "لا شكرا" "decline": "لا شكرا"
}, },
"card": { "card": {
@@ -348,15 +330,10 @@
"direction": "Richting", "direction": "Richting",
"speed": "Snelheid" "speed": "Snelheid"
}, },
"humidifier": {
"humidity": "الرطوبة المستهدفة",
"mode": "الوضع",
"target_humidity_entity": "{name} الرطوبة المستهدفة"
},
"light": { "light": {
"brightness": "Helderheid", "brightness": "Helderheid",
"color_temperature": "Kleurtemperatuur", "color_temperature": "Kleurtemperatuur",
"white_value": "قيمة البياض" "white_value": "Witwaarde"
}, },
"lock": { "lock": {
"lock": "قفل", "lock": "قفل",
@@ -374,8 +351,6 @@
"activate": "تفعيل" "activate": "تفعيل"
}, },
"script": { "script": {
"cancel": "إلغاء",
"cancel_multiple": "إلغاء {number}",
"execute": "نفذ" "execute": "نفذ"
}, },
"service": { "service": {
@@ -439,14 +414,6 @@
"clear": "مسح", "clear": "مسح",
"show_areas": "إظهار المناطق" "show_areas": "إظهار المناطق"
}, },
"data-table": {
"no-data": "لايوجد بيانات",
"search": "بحث"
},
"date-range-picker": {
"end_date": "تاريخ الإنتهاء",
"start_date": "تاريخ البدء"
},
"device-picker": { "device-picker": {
"no_area": "لا مجال", "no_area": "لا مجال",
"toggle": "تبديل" "toggle": "تبديل"
@@ -460,14 +427,7 @@
"loading_history": "جارٍ تحميل سجل الحالات ...", "loading_history": "جارٍ تحميل سجل الحالات ...",
"no_history_found": "لم يتم العثور على سجل الحالات." "no_history_found": "لم يتم العثور على سجل الحالات."
}, },
"related-items": {
"integration": "تكامل"
},
"relative_time": { "relative_time": {
"duration": {
"minute": "{count} {count, plural,\n one {دقيقة}\n other {دقائق}\n}"
},
"future": "قبل {time}",
"never": "Nooit" "never": "Nooit"
}, },
"service-picker": { "service-picker": {
@@ -476,18 +436,14 @@
}, },
"dialogs": { "dialogs": {
"config_entry_system_options": { "config_entry_system_options": {
"enable_new_entities_description": "إذا تم تعطيله ، فلن تتم إضافة الكيانات المكتشفة حديثًا لـ {integration} تلقائيًا إلى Home Assistant.",
"title": "خيارات النظام لـ {integration}",
"update": "تحديث" "update": "تحديث"
}, },
"entity_registry": { "entity_registry": {
"editor": { "editor": {
"confirm_delete": "هل أنت متأكد أنك تريد حذف هذا الإدخال؟", "confirm_delete": "هل أنت متأكد أنك تريد حذف هذا الإدخال؟",
"delete": "حذف", "delete": "حذف",
"note": "ملاحظة: قد لا يعمل مع كافة التكاملات بعد.",
"update": "تحديث" "update": "تحديث"
}, }
"related": "ذات صلة"
}, },
"generic": { "generic": {
"cancel": "إلغاء الأمر", "cancel": "إلغاء الأمر",
@@ -509,11 +465,8 @@
"add": "إضافة" "add": "إضافة"
}, },
"input_text": { "input_text": {
"max": "الحد الأقصى للطول",
"min": "الحد الأدنى للطول",
"password": "كلمة المرور" "password": "كلمة المرور"
}, }
"platform_not_loaded": "لم يتم تحميل تكامل {platform} . يرجى إضافته إلى التكوين الخاص بك إما عن طريق إضافة ':default_config' أو \"{platform}\"."
}, },
"more_info_control": { "more_info_control": {
"sun": { "sun": {
@@ -540,20 +493,13 @@
"title": "{device} معلومات تصحيح الأخطاء", "title": "{device} معلومات تصحيح الأخطاء",
"triggers": "محفزات" "triggers": "محفزات"
}, },
"voice_command": {
"did_not_hear": "Home Assistant لم يسمع أي شيء"
},
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "أضف أجهزة عبر هذا الجهاز",
"zigbee_information": "معلومات Zigbee" "zigbee_information": "معلومات Zigbee"
}, },
"device_signature": "توقيع جهاز Zigbee", "device_signature": "توقيع جهاز Zigbee",
"services": { "services": {
"zigbee_information": "عرض معلومات Zigbee للجهاز." "zigbee_information": "عرض معلومات Zigbee للجهاز."
},
"zha_device_card": {
"device_name_placeholder": "تغيير اسم الجهاز"
} }
} }
}, },
@@ -564,7 +510,7 @@
}, },
"login-form": { "login-form": {
"log_in": "تسجيل الدخول", "log_in": "تسجيل الدخول",
"password": "كلمة السر", "password": "كلمه السر",
"remember": "تذكر" "remember": "تذكر"
}, },
"notification_drawer": { "notification_drawer": {
@@ -597,15 +543,10 @@
"name": "اسم", "name": "اسم",
"name_required": "الاسم مطلوب", "name_required": "الاسم مطلوب",
"unknown_error": "خطأ غير معروف" "unknown_error": "خطأ غير معروف"
},
"picker": {
"integrations_page": "صفحة التكاملات",
"introduction": "يتم استخدام المناطق لتنظيم أمكنة الأجهزة. سيتم استخدام هذه المعلومات في جميع أنحاء Home Assistant لمساعدتك في تنظيم الواجهة والأذونات و التكاملات مع الأنظمة الأخرى.",
"introduction2": "لوضع الأجهزة في منطقة ما، إستخدم الرابط أدناه للإنتقال إلى صفحة التكاملات ثم انقر فوق تكامل مكوّن للوصول إلى بطاقات الجهاز."
} }
}, },
"automation": { "automation": {
"caption": "الأتمتة", "caption": "التشغيل التلقائي",
"description": "إنشاء وتحرير التشغيل الألي", "description": "إنشاء وتحرير التشغيل الألي",
"editor": { "editor": {
"actions": { "actions": {
@@ -682,7 +623,7 @@
"sunset": "غروب الشمس" "sunset": "غروب الشمس"
}, },
"template": { "template": {
"label": "نموذج", "label": "النموذج",
"value_template": "نموذج القيمة" "value_template": "نموذج القيمة"
}, },
"time": { "time": {
@@ -691,7 +632,7 @@
"label": "وقت" "label": "وقت"
}, },
"zone": { "zone": {
"entity": "كيان مع موقع", "entity": "الجهاز في المنطقة",
"label": "المنطقة", "label": "المنطقة",
"zone": "المنطقة" "zone": "المنطقة"
} }
@@ -701,17 +642,6 @@
"default_name": "متحكم آلي جديد", "default_name": "متحكم آلي جديد",
"enable_disable": "تمكين/تعطيل التنفيذ التلقائي", "enable_disable": "تمكين/تعطيل التنفيذ التلقائي",
"introduction": "استخدم المتحكمات الآلية لتجعل منزلك ينبض بالحياة", "introduction": "استخدم المتحكمات الآلية لتجعل منزلك ينبض بالحياة",
"max": {
"queued": "طول قائمة الإنتظار"
},
"modes": {
"documentation": "وثائق الأتمتة",
"label": "وضع",
"parallel": "موازي",
"queued": "في قائمة الإنتظار",
"restart": "إعادة تشغيل",
"single": "فردي (افتراضي)"
},
"move_down": "تحرك لأسفل", "move_down": "تحرك لأسفل",
"move_up": "تحريك لأعلى", "move_up": "تحريك لأعلى",
"save": "حفظ", "save": "حفظ",
@@ -723,7 +653,6 @@
"header": "المشغلات", "header": "المشغلات",
"introduction": "المشغلات هي ما يبدأ تشغيل قاعدة المتحكم الآلي. من الممكن تحديد مشغلات متعددة لنفس القاعدة. بمجرد بدء المشغل ، سيقوم Home Assistant بالتحقق من الشروط ، إن وجدت ، واستدعاء الإجراء. \n\n [مزيد من المعلومات حول المشغلات.] (https://home-assistant.io/docs/automation/trigger/)", "introduction": "المشغلات هي ما يبدأ تشغيل قاعدة المتحكم الآلي. من الممكن تحديد مشغلات متعددة لنفس القاعدة. بمجرد بدء المشغل ، سيقوم Home Assistant بالتحقق من الشروط ، إن وجدت ، واستدعاء الإجراء. \n\n [مزيد من المعلومات حول المشغلات.] (https://home-assistant.io/docs/automation/trigger/)",
"learn_more": "معرفة المزيد عن المشغلات", "learn_more": "معرفة المزيد عن المشغلات",
"name": "المشغل",
"type_select": "نوع المشغل", "type_select": "نوع المشغل",
"type": { "type": {
"device": { "device": {
@@ -803,25 +732,13 @@
} }
}, },
"cloud": { "cloud": {
"account": { "caption": "كلاود هوم اسيستينت",
"integrations": "تكاملات",
"integrations_introduction2": "تحقق من الموقع ل",
"integrations_link_all_features": " جميع الميزات المتوفرة"
},
"caption": "سحابة Home Assistant",
"description_login": "تم تسجيل الدخول كـ {email}", "description_login": "تم تسجيل الدخول كـ {email}",
"description_not_login": "لم يتم تسجيل الدخول", "description_not_login": "لم يتم تسجيل الدخول"
"dialog_cloudhook": {
"info_disable_webhook": "إذا كنت لم تعد ترغب في استخدام هذا الwebhook ، يمكنك"
},
"register": {
"feature_amazon_alexa": "التكامل مع Amazon Alexa",
"feature_google_home": "التكامل مع Google Assistant"
}
}, },
"core": { "core": {
"caption": "عام", "caption": "عام",
"description": "قم بتغيير التكوينات العامة لـ Home Assistant", "description": "التحقق من صحة ملف الإعدادات والتحكم بالخادم",
"section": { "section": {
"core": { "core": {
"core_config": { "core_config": {
@@ -837,22 +754,18 @@
"caption": "التخصيص", "caption": "التخصيص",
"description": "تخصيص الكيانات الخاصة بك", "description": "تخصيص الكيانات الخاصة بك",
"picker": { "picker": {
"entity": "الكيان", "entity": "الكيان"
"introduction": "تعديل السمات لكل كيان. سيتم تفعيل التخصيصات المضافة / المعدلة على الفور. ستسري التخصيصات التي تمت إزالتها عندما يتم تحديث الكيان."
} }
}, },
"devices": { "devices": {
"cant_edit": "يمكنك فقط تحرير العناصر التي تم إنشاؤها في واجهة المستخدم.",
"confirm_delete": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟", "confirm_delete": "هل أنت متأكد أنك تريد حذف هذا الجهاز؟",
"data_table": { "data_table": {
"integration": "تكامل",
"no_area": "لا مجال", "no_area": "لا مجال",
"no_devices": "لا توجد أجهزة" "no_devices": "لا توجد أجهزة"
}, },
"delete": "حذف", "delete": "حذف",
"device_info": "معلومات الجهاز", "device_info": "معلومات الجهاز",
"entities": { "entities": {
"add_entities_lovelace": "أضف إلى Lovelace",
"disabled_entities": "{count} {count, plural,\n one {كيان}\n other {كيانات}\n}", "disabled_entities": "{count} {count, plural,\n one {كيان}\n other {كيانات}\n}",
"hide_disabled": "إخفاء معطل" "hide_disabled": "إخفاء معطل"
}, },
@@ -860,14 +773,10 @@
}, },
"entities": { "entities": {
"picker": { "picker": {
"headers": {
"integration": "تكامل"
},
"remove_selected": { "remove_selected": {
"confirm_partly_text": "يمكنك فقط إزالة {removable} من الكيانات {selected} . لا يمكن إزالة الكيانات إلا عندما يتوقف التكامل عن توفير الكيانات. في بعض الأحيان ، يتعين عليك إعادة تشغيل Home Assistant قبل أن تتمكن من إزالة كيانات التكامل الذي تمت إزالته. هل أنت متأكد من أنك تريد إزالة الكيانات القابلة للإزالة؟", "confirm_partly_text": "يمكنك فقط إزالة {removable} من الكيانات {selected} . لا يمكن إزالة الكيانات إلا عندما يتوقف التكامل عن توفير الكيانات. في بعض الأحيان ، يتعين عليك إعادة تشغيل Home Assistant قبل أن تتمكن من إزالة كيانات التكامل الذي تمت إزالته. هل أنت متأكد من أنك تريد إزالة الكيانات القابلة للإزالة؟",
"confirm_partly_title": "يمكن فقط إزالة {number} الكيانات المحددة." "confirm_partly_title": "يمكن فقط إزالة {number} الكيانات المحددة."
}, },
"search": "إبحث عن الكيانات",
"status": { "status": {
"restored": "مستعاد" "restored": "مستعاد"
} }
@@ -877,7 +786,7 @@
"clear": "محو", "clear": "محو",
"filtering_by": "التصفية حسب" "filtering_by": "التصفية حسب"
}, },
"header": "تكوين Home Assistant", "header": "برمجة نظام مساعد البيت",
"helpers": { "helpers": {
"dialog": { "dialog": {
"create": "إضافة" "create": "إضافة"
@@ -891,7 +800,6 @@
} }
}, },
"types": { "types": {
"input_boolean": "تبديل",
"input_number": "رقم", "input_number": "رقم",
"input_select": "القائمه المنسدله", "input_select": "القائمه المنسدله",
"input_text": "النص" "input_text": "النص"
@@ -901,85 +809,54 @@
"caption": "معلومات", "caption": "معلومات",
"description": "معلومات حول تثبيت Home Assistant", "description": "معلومات حول تثبيت Home Assistant",
"documentation": "الوثائق", "documentation": "الوثائق",
"home_assistant_logo": "شعار Home Assistant",
"integrations": "تكاملات", "integrations": "تكاملات",
"issues": "الاعطال" "issues": "الاعطال"
}, },
"integration_panel_move": {
"link_integration_page": "صفحة التكاملات",
"missing_zha": "هل فقدت لوحة تكوين ZHA؟ تم نقله إلى إدخال ZHA على {integrations_page} ."
},
"integrations": { "integrations": {
"add_integration": "أضف تكامل", "add_integration": "أضف integration",
"caption": "التكاملات", "caption": "تكاملات",
"config_entry": { "config_entry": {
"area": "في {area}",
"delete": "حذف", "delete": "حذف",
"delete_button": "حذف {integration}",
"delete_confirm": "هل تريد حقا حذف هذا التكامل؟", "delete_confirm": "هل تريد حقا حذف هذا التكامل؟",
"device_unavailable": "الجهاز غير متوفر", "device_unavailable": "الجهاز غير متوفر",
"devices": "{count} {count, plural,\n one {جهاز}\n other {أجهزة}\n}", "devices": "{count} {count, plural,\n one {جهاز}\n other {أجهزة}\n}",
"documentation": "الوثائق",
"entities": "{count} {count, plural,\n one {كيان}\n other {كيانات}\n}", "entities": "{count} {count, plural,\n one {كيان}\n other {كيانات}\n}",
"entity_unavailable": "الكيان غير متوفر", "entity_unavailable": "العنصر غير متوفر",
"firmware": "نظام التشغيل {version}", "firmware": "نظام التشغيل {version}",
"hub": "متصل عبر",
"manuf": "بواسطة {manufacturer}", "manuf": "بواسطة {manufacturer}",
"no_area": "لا توجد منطقة", "no_area": "لا توجد منطقة",
"no_device": "كيانات بدون أجهزة", "no_device": "عناصر بدون أجهزة",
"no_devices": "هذا التكامل لا يوجد لديه الأجهزة.", "no_devices": "هذا التكامل لا يوجد لديه الأجهزة.",
"options": "خيارات", "options": "خيارات",
"rename": "إعادة تسمية", "rename": "إعادة تسمية",
"restart_confirm": "أعد تشغيل Home Assistant لإنهاء حذف هذا التكامل", "restart_confirm": "اعادة تشغيل هوم اسيستينت لإنهاء حذف هذه التكامل",
"settings_button": "تحرير الإعدادات لـ {integration}",
"system_options": "خيارات النظام", "system_options": "خيارات النظام",
"system_options_button": "خيارات النظام لـ {integration}",
"unnamed_entry": "إدخال بدون اسم" "unnamed_entry": "إدخال بدون اسم"
}, },
"config_flow": { "config_flow": {
"aborted": "تم الإلغاء", "loading_first_time": "يرجى الانتظار بينما يتم تثبيت الـintegration"
"close": "إغلاق",
"created_config": "تم إنشاء تكوين لـ {name}.",
"error_saving_area": "خطأ في حفظ المنطقة: {error}",
"external_step": {
"description": "تتطلب هذه الخطوة زيارة موقع خارجي للإكمال.",
"open_site": "افتح الموقع"
},
"finish": "إنهاء",
"loading_first_time": "يرجى الانتظار بينما يتم تثبيت الـintegration",
"not_all_required_fields": "لم يتم تعبئة جميع الحقول المطلوبة."
}, },
"configure": "إعداد", "configure": "إعداد",
"configured": "تم التكوين", "configured": "تم الإعداد",
"description": عداد وإدارة التكاملات", "description": "إدارة الأجهزة والخدمات المتصلة",
"details": "تفاصيل التكامل",
"discovered": "مكتشف", "discovered": "مكتشف",
"home_assistant_website": "موقع Home Assistant",
"ignore": { "ignore": {
"confirm_delete_ignore": "سيؤدي ذلك إلى ظهور التكامل في عمليات التكامل المكتشفة مرة أخرى عند اكتشافها. قد يتطلب هذا إعادة تشغيل أو يستغرق بعض الوقت.",
"confirm_delete_ignore_title": "توقف عن تجاهل {name} ؟", "confirm_delete_ignore_title": "توقف عن تجاهل {name} ؟",
"confirm_ignore": "هل أنت متأكد أنك لا تريد إعداد هذا التكامل؟ يمكنك التراجع بالنقر على \"إظهار عمليات التكامل التي تم تجاهلها\" في القائمة بأعلى اليسار.",
"confirm_ignore_title": "تجاهل اكتشاف {name} ؟",
"hide_ignored": "إخفاء التكاملات المتجاهلة",
"ignore": "تجاهل", "ignore": "تجاهل",
"ignored": "متجاهل", "ignored": "تجاهل",
"show_ignored": "أظهر التكاملات المتجاهلة", "show_ignored": "أظهر الدمج المتجاهل",
"stop_ignore": "توقف عن التجاهل" "stop_ignore": "توقف عن التجاهل"
}, },
"integration": "تكامل", "integration": "integration",
"integration_not_found": "لم يتم العثور على التكامل.",
"new": "إعداد تكامل جديد", "new": "إعداد تكامل جديد",
"no_integrations": "يبدو أنه لم يتم تكوين أي تكاملات بعد. انقر على الزر أدناه لإضافة تكاملك الأول!", "no_integrations": "يبدوأن ليس هناك أي integations بعد. انقر على الزر أدناه لإضافة واحدة!",
"none": "لم يتم تكوين أي شيء حتى الآن", "none": "لم يتم الإعداد بعد",
"none_found": "لم يتم العثور على تكاملات", "none_found": "لم يتم العثور على عمليات تكامل",
"none_found_detail": "إضبط معايير بحثك.", "none_found_detail": "اضبط معايير البحث.",
"note_about_integrations": "لا يمكن تكوين جميع التكاملات عبر واجهة المستخدم حتى الآن.", "rename_dialog": "تعديل الاسم",
"note_about_website_reference": "يتوفر المزيد على ", "rename_input_label": "الاسم"
"rename_dialog": "تحرير إسم إدخال هذا التكوين",
"rename_input_label": "الاسم",
"search": "إبحث عن التكاملات"
}, },
"introduction": "يمكنك هنا برمجة المكونات الخاصة بك و إعداد نظام Home Assistant. ليس كل شيء متاح للبرمجة من خلال واجهة المستخدم حتى الآن، ولكننا نعمل على ذلك.", "introduction": "يمكنك هنا برمجة المكونات الخاصة بك و إعداد نظام مساعد البيت. ليس كل شيء متاح للبرمجة من خلال واجهة المستخدم حتى الآن، ولكننا نعمل على ذلك.",
"logs": { "logs": {
"caption": "السجلات", "caption": "السجلات",
"description": "عرض سجلات Home Assistant" "description": "عرض سجلات Home Assistant"
@@ -1044,26 +921,14 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "كوِن",
"title": "MQTT" "title": "MQTT"
}, },
"person": { "person": {
"caption": "الأشخاص",
"description": "إدارة الأشخاص الذين يتتبعهم Home Assistant.",
"detail": { "detail": {
"device_tracker_pick": "اختر جهاز لتتبع", "device_tracker_pick": "اختر جهاز لتتبع"
"link_integrations_page": "صفحة التكاملات", }
"link_presence_detection_integrations": "تكاملات الكشف عن التواجد",
"name_error_msg": "الاسم مطلوب",
"no_device_tracker_available_intro": "عندما يكون لديك أجهزة تشير إلى تواجد شخص ، ستتمكن من تعيينها إلى شخص هنا. يمكنك إضافة جهازك الأول عن طريق إضافة تكامل كشف التواجد من صفحة التكاملات."
},
"no_persons_created_yet": "يبدو أنك لم تقم بإنشاء أي شخص حتى الآن.",
"note_about_persons_configured_in_yaml": "ملاحظة: لا يمكن تعديل الأشخاص الذين تم تكوينهم عبر config.yaml عبر واجهة المستخدم."
}, },
"scene": { "scene": {
"editor": {
"icon": "أيقونة"
},
"picker": { "picker": {
"headers": { "headers": {
"name": "الاسم" "name": "الاسم"
@@ -1074,20 +939,7 @@
"caption": "السكريبت", "caption": "السكريبت",
"description": "إنشاء و تحرير السكريبت", "description": "إنشاء و تحرير السكريبت",
"editor": { "editor": {
"alias": "الاسم", "alias": "الاسم"
"icon": "أيقونة",
"id": "معرف الكيان",
"id_already_exists": "هذا المعرف موجود بالفعل",
"max": {
"queued": "طول قائمة الإنتظار"
},
"modes": {
"label": "وضع",
"parallel": "موازي",
"queued": "في قائمة الإنتظار",
"restart": "إعادة تشغيل",
"single": "فردي (إفتراضي)"
}
}, },
"picker": { "picker": {
"headers": { "headers": {
@@ -1099,22 +951,11 @@
"server_control": { "server_control": {
"section": { "section": {
"reloading": { "reloading": {
"automation": "إعادة تحميل الأتمتة",
"core": "إعادة تحميل الموقع والتخصيصات",
"input_boolean": "إعادة تحميل مدخلات منطقية", "input_boolean": "إعادة تحميل مدخلات منطقية",
"input_datetime": "إعادة تحميل أوقات تاريخ الإدخال", "input_datetime": "إعادة تحميل أوقات تاريخ الإدخال",
"input_number": "إعادة تحميل أرقام الإدخال", "input_number": "إعادة تحميل أرقام الإدخال",
"input_select": "إعادة تحميل تحديدات الإدخال", "input_select": "إعادة تحميل تحديدات الإدخال",
"input_text": "إعادة تحميل النصوص المدخلة", "input_text": "إعادة تحميل النصوص المدخلة"
"person": "إعادة تحميل الأشخاص",
"zone": "إعادة تحميل المناطق"
},
"server_management": {
"confirm_restart": "هل تريد بالتأكيد اعادة تشغيل Home Assistant؟",
"confirm_stop": "هل تريد بالتأكيد إيقاف Home Assistant؟"
},
"validation": {
"introduction": "تحقق من صلاحية التكوين الخاص بك إذا قمت مؤخرًا بإجراء بعض التغييرات وتريد التأكد من صلاحية جميعها"
} }
} }
}, },
@@ -1148,52 +989,29 @@
}, },
"users_privileges_note": "مجموعة المستخدمين هي عمل قيد التقدم. لن يتمكن المستخدم من إدارة المثيل عبر واجهة المستخدم. ما زلنا نقوم بتدقيق جميع نقاط نهاية واجهة برمجة تطبيقات الإدارة للتأكد من أنها تحد من الوصول إلى المسؤولين بشكل صحيح." "users_privileges_note": "مجموعة المستخدمين هي عمل قيد التقدم. لن يتمكن المستخدم من إدارة المثيل عبر واجهة المستخدم. ما زلنا نقوم بتدقيق جميع نقاط نهاية واجهة برمجة تطبيقات الإدارة للتأكد من أنها تحد من الوصول إلى المسؤولين بشكل صحيح."
}, },
"zha": {
"add_device_page": {
"discovered_text": "ستظهر الأجهزة هنا عند إكتشافها."
},
"button": "كوِن",
"groups": {
"zha_zigbee_groups": "مجموعات ZHA Zigbee"
},
"network": {
"caption": "الشبكة"
},
"node_management": {
"header": "إدارة الجهاز"
}
},
"zone": { "zone": {
"add_zone": "إضافة المنطقة",
"caption": "المناطق",
"configured_in_yaml": "لا يمكن تحرير المناطق التي تم تكوينها بواسطة configuration.yaml عبر واجهة المستخدم.",
"description": "إدارة المناطق التي تريد تتبع الأشخاص فيها.",
"detail": { "detail": {
"create": "إضافة", "create": "إضافة",
"delete": "حذف", "delete": "حذف",
"icon": "أيقونة", "icon": "أيقونة",
"name": "الاسم", "name": "الاسم",
"new_zone": "منطقة جديدة", "required_error_msg": "العنوان مطلوب.",
"required_error_msg": "هذا الحقل مطلوب",
"update": "تحديث" "update": "تحديث"
}, }
"introduction": "تسمح لك المناطق بتحديد مناطق معينة على وجه الأرض. عندما يكون الشخص داخل منطقة ما ، ستأخذ الحالة الاسم من المنطقة. يمكن أيضًا استخدام المناطق كمشغل أو حالة داخل إعدادات الأتمتة."
}, },
"zwave": { "zwave": {
"button": "كوِن",
"caption": "Z-Wave", "caption": "Z-Wave",
"description": "إدارة شبكة Z-Wave", "description": "إدارة شبكة Z-Wave",
"node_config": { "node_config": {
"seconds": "ثواني",
"set_config_parameter": "تعيين معلمة التكوين" "set_config_parameter": "تعيين معلمة التكوين"
}, },
"node_management": { "node_management": {
"add_to_group": "إضافة إلى المجموعة", "add_to_group": "إضافة إلى المجموعة",
"entities": "كيانات هذه العقدة", "entities": "كيانات هذه العقدة",
"entity_info": "معلومات الكيان", "entity_info": "معلومات الكيان",
"exclude_entity": "استبعد هذا الكيان من Home Assistant", "exclude_entity": "تحكم بسيرفر Home Assistant ... من Home Assistant.",
"group": "مجموعة", "group": "مجموعة",
"header": "إدارة عقد Z-Wave", "header": "إدارة العقدة Z-Wave",
"introduction": "قم بتشغيل أوامر Z-Wave التي تؤثر على عقدة واحدة. اختر عقدة لترى قائمة بالأوامر المتاحة.", "introduction": "قم بتشغيل أوامر Z-Wave التي تؤثر على عقدة واحدة. اختر عقدة لترى قائمة بالأوامر المتاحة.",
"max_associations": "اعلى رقم للجمعيات:", "max_associations": "اعلى رقم للجمعيات:",
"node_group_associations": "ارتباطات مجموعة العقدة", "node_group_associations": "ارتباطات مجموعة العقدة",
@@ -1221,9 +1039,6 @@
"refresh_node": "تحديث العقدة", "refresh_node": "تحديث العقدة",
"remove_failed_node": "إزالة العقدة الفاشلة", "remove_failed_node": "إزالة العقدة الفاشلة",
"replace_failed_node": "استبدال العقدة الفاشلة", "replace_failed_node": "استبدال العقدة الفاشلة",
"start_network": "بدء تشغيل الشبكة",
"stop_network": "إيقاف الشبكة",
"test_network": "اختبار الشبكة",
"test_node": "اختبار عقدة" "test_node": "اختبار عقدة"
} }
} }
@@ -1237,7 +1052,6 @@
"title": "الخدمات" "title": "الخدمات"
}, },
"states": { "states": {
"description2": "لن يتواصل هذا مع الجهاز الفعلي.",
"title": "الحالات" "title": "الحالات"
}, },
"templates": { "templates": {
@@ -1247,35 +1061,16 @@
}, },
"history": { "history": {
"period": "المدة", "period": "المدة",
"ranges": {
"last_week": "الأسبوع الماضي",
"this_week": "هذا الأسبوع",
"today": "اليوم",
"yesterday": "أمس"
},
"showing_entries": "عرض الأحداث لـ" "showing_entries": "عرض الأحداث لـ"
}, },
"logbook": { "logbook": {
"ranges": {
"last_week": "الأسبوع الماضي",
"this_week": "هذا الأسبوع",
"today": "اليوم",
"yesterday": "أمس"
},
"showing_entries": "عرض الأحداث لـ" "showing_entries": "عرض الأحداث لـ"
}, },
"lovelace": { "lovelace": {
"cards": { "cards": {
"empty_state": {
"go_to_integrations_page": "انتقل إلى صفحة التكاملات.",
"no_devices": "تسمح لك هذه الصفحة بالتحكم في أجهزتك ، ولكن يبدو أنك لم تعد أي أجهزة حتى الآن. توجه إلى صفحة التكاملات للبدء."
},
"safe-mode": {
"description": "واجه Home Assistant مشكلة أثناء تحميل التكوينات الخاصة بك ويتم تشغيله الآن في الوضع الآمن. أنظر إلى سجل الأخطاء لمعرفة الخطأ."
},
"starting": { "starting": {
"description": "Home Assistant يبدأ، يرجى الانتظار...", "description": "Home Assistant يبدأ، يرجى الانتظار...",
"header": "Home Assistant يبدأ..." "header": "يبدأ مساعد المنزل ..."
} }
}, },
"editor": { "editor": {
@@ -1312,14 +1107,11 @@
}, },
"generic": { "generic": {
"attribute": "السمه", "attribute": "السمه",
"camera_view": "عرض الكاميرا",
"double_tap_action": "تأثير النقر المزدوج", "double_tap_action": "تأثير النقر المزدوج",
"manual": "يدويا", "manual": "يدويا",
"manual_description": "هل تريد إضافة بطاقة مخصصة أو ترغب فقط في كتابة yaml يدويًا؟", "manual_description": "هل تريد إضافة بطاقة مخصصة أو ترغب فقط في كتابة yaml يدويًا؟",
"no_theme": "لا توجد تصاميم متاحة", "no_theme": "لا توجد تصاميم متاحة",
"search": "بحث",
"secondary_info_attribute": "سمة المعلومات الثانوية", "secondary_info_attribute": "سمة المعلومات الثانوية",
"show_name": "أظهر الاسم؟",
"state": "الحالة" "state": "الحالة"
}, },
"glance": { "glance": {
@@ -1331,10 +1123,6 @@
"horizontal-stack": { "horizontal-stack": {
"description": "تتيح لك بطاقة التكديس الأفقي تجميع عدة بطاقات معًا ، بحيث تكون دائمًا بجانب بعضها البعض في مساحة عمود واحد." "description": "تتيح لك بطاقة التكديس الأفقي تجميع عدة بطاقات معًا ، بحيث تكون دائمًا بجانب بعضها البعض في مساحة عمود واحد."
}, },
"humidifier": {
"description": "تتيح بطاقة المرطب التحكم في كيان المرطب. يسمح لك بتغيير الرطوبة ووضع الكيان.",
"name": "المرطب"
},
"iframe": { "iframe": {
"description": "تسمح لك بطاقة صفحة الويب بتضمين صفحة ويب مباشرةً في Home Assistant." "description": "تسمح لك بطاقة صفحة الويب بتضمين صفحة ويب مباشرةً في Home Assistant."
}, },
@@ -1388,20 +1176,12 @@
"no_description": "لا يوجد وصف متاح." "no_description": "لا يوجد وصف متاح."
}, },
"edit_card": { "edit_card": {
"confirm_cancel": "هل أنت متأكد من الإلغاء؟",
"delete": "حذف", "delete": "حذف",
"duplicate": "بطاقة مكررة", "duplicate": "بطاقة مكررة",
"edit": "تصحيح", "edit": "تصحيح",
"move": "نقل", "move": "نقل"
"options": "المزيد من الخيارات",
"typed_header": "{type} تكوين البطاقة",
"unsaved_changes": "لديك تغييرات غير محفوظة"
},
"edit_lovelace": {
"title": "عنوان"
}, },
"edit_view": { "edit_view": {
"header_name": "{name} عرض التكوين",
"tab_visibility": "الرؤية", "tab_visibility": "الرؤية",
"visibility": { "visibility": {
"select_users": "تحديد المستخدمين الذين يجب أن يروا طريقة العرض هذه في التنقل" "select_users": "تحديد المستخدمين الذين يجب أن يروا طريقة العرض هذه في التنقل"
@@ -1417,7 +1197,6 @@
"cancel": "لا يهم", "cancel": "لا يهم",
"close": "إغلاق", "close": "إغلاق",
"empty_config": "ابدأ بلوحة معلومات فارغة", "empty_config": "ابدأ بلوحة معلومات فارغة",
"para_sure": "هل أنت متأكد أنك تريد التحكم في واجهة المستخدم الخاصة بك؟",
"yaml_mode": "أنت تستخدم وضع YAML للوحة البيانات هذه ، مما يعني أنه لا يمكنك تغيير تكوين Lovelace من واجهة المستخدم. إذا كنت تريد إدارة لوحة التحكم هذه من واجهة المستخدم ، فقم بإزالة \"الوضع: yaml\" من تكوين Lovelace في \"config.yaml.\"." "yaml_mode": "أنت تستخدم وضع YAML للوحة البيانات هذه ، مما يعني أنه لا يمكنك تغيير تكوين Lovelace من واجهة المستخدم. إذا كنت تريد إدارة لوحة التحكم هذه من واجهة المستخدم ، فقم بإزالة \"الوضع: yaml\" من تكوين Lovelace في \"config.yaml.\"."
}, },
"view": { "view": {
@@ -1429,15 +1208,10 @@
"menu": { "menu": {
"reload_resources": "إعادة تحميل الموارد" "reload_resources": "إعادة تحميل الموارد"
}, },
"reload_lovelace": "إعادة تحميل واجهة المستخدم",
"reload_resources": { "reload_resources": {
"refresh_body": "يجب عليك تحديث الصفحة لإكمال إعادة التحميل ، هل تريد التحديث الآن؟", "refresh_body": "يجب عليك تحديث الصفحة لإكمال إعادة التحميل ، هل تريد التحديث الآن؟",
"refresh_header": "هل تريد التحديث؟" "refresh_header": "هل تريد التحديث؟"
}, },
"unused_entities": {
"no_data": "لم يعثر على كيانات غير مستخدمة",
"search": "إبحث عن الكيانات"
},
"views": { "views": {
"confirm_delete_existing_cards": "سيؤدي حذف هذا العرض إلى إزالة البطاقات أيضًا", "confirm_delete_existing_cards": "سيؤدي حذف هذا العرض إلى إزالة البطاقات أيضًا",
"confirm_delete_existing_cards_text": "هل أنت متأكد من أنك تريد حذف طريقة عرض ''{name}''؟ تحتوي طريقة العرض على {number} بطاقات سيتم حذفها. لا يمكن التراجع عن هذا الإجراء.", "confirm_delete_existing_cards_text": "هل أنت متأكد من أنك تريد حذف طريقة عرض ''{name}''؟ تحتوي طريقة العرض على {number} بطاقات سيتم حذفها. لا يمكن التراجع عن هذا الإجراء.",
@@ -1447,7 +1221,7 @@
"attribute_not_found": "السمة {attribute} غير متاحة في: {entity}", "attribute_not_found": "السمة {attribute} غير متاحة في: {entity}",
"entity_not_found": "الجهاز غير متوفر: {entity}", "entity_not_found": "الجهاز غير متوفر: {entity}",
"entity_unavailable": "العنصر غير متوفر", "entity_unavailable": "العنصر غير متوفر",
"starting": "Home Assistant يبدأ، قد لا يكون كل شيء متاح حتى الآن" "starting": "يبدأ مساعد المنزل ، قد لا يكون كل شيء متاح حتى الآن"
} }
}, },
"mailbox": { "mailbox": {
@@ -1471,16 +1245,6 @@
} }
} }
} }
},
"trusted_networks": {
"abort": {
"not_allowed": "كمبيوترك غير مسموح به."
},
"step": {
"init": {
"description": "يرجى تحديد المستخدم الذي تريد تسجيل الدخول باسمه:"
}
}
} }
}, },
"start_over": "البدء من جديد", "start_over": "البدء من جديد",
@@ -1488,22 +1252,7 @@
}, },
"initializing": "جار التهيئة" "initializing": "جار التهيئة"
}, },
"page-demo": {
"config": {
"arsaboo": {
"labels": {
"air": "هواء"
}
}
}
},
"page-onboarding": { "page-onboarding": {
"integration": {
"finish": "إنهاء",
"intro": "يتم تمثيل الأجهزة والخدمات في Home Assistant كتكاملات. يمكنك إعدادها الآن ، أو القيام بذلك لاحقًا من شاشة التكوين.",
"more_integrations": "المزيد"
},
"intro": "هل أنت مستعد لإيقاظ منزلك واستعادة خصوصيتك والانضمام إلى مجتمع عالمي من اللاعبين؟",
"user": { "user": {
"data": { "data": {
"password": "كلمه السر", "password": "كلمه السر",
@@ -1538,7 +1287,7 @@
"language": { "language": {
"dropdown_label": "اللغة", "dropdown_label": "اللغة",
"header": "اللغة", "header": "اللغة",
"link_promo": "ساعد في الترجمة" "link_promo": "المساعدة في ترجمة"
}, },
"long_lived_access_tokens": { "long_lived_access_tokens": {
"last_used": "آخر استخدام بتاريخ {date} من {location}", "last_used": "آخر استخدام بتاريخ {date} من {location}",
@@ -1568,10 +1317,6 @@
"last_used": "آخر استخدام بتاريخ {date} من {location}", "last_used": "آخر استخدام بتاريخ {date} من {location}",
"not_used": "لم يتم استخدامها ابدأ" "not_used": "لم يتم استخدامها ابدأ"
}, },
"suspend": {
"description": "هل يغلق الاتصال بالخادم بعد إخفاؤه لمدة 5 دقائق؟",
"header": "إغلق الاتصال تلقائيًا"
},
"themes": { "themes": {
"dropdown_label": "التصميم", "dropdown_label": "التصميم",
"error_no_theme": "لا توجد تصاميم متاحة.", "error_no_theme": "لا توجد تصاميم متاحة.",

View File

@@ -1159,7 +1159,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Добавяне на карта", "add": "Добавяне на карта",
"confirm_cancel": "Сигурни ли сте, че искате да отмените?",
"delete": "Изтриване на карта", "delete": "Изтриване на карта",
"edit": "Редактиране", "edit": "Редактиране",
"header": "Конфигуриране на Карта", "header": "Конфигуриране на Карта",

View File

@@ -430,8 +430,6 @@
"activate": "Activar" "activate": "Activar"
}, },
"script": { "script": {
"cancel": "Cancel·la",
"cancel_multiple": "Cancel·la {number}",
"execute": "Executar" "execute": "Executar"
}, },
"service": { "service": {
@@ -528,7 +526,6 @@
"show_areas": "Mostra àrees" "show_areas": "Mostra àrees"
}, },
"data-table": { "data-table": {
"no-data": "No hi ha dades",
"search": "Cerca" "search": "Cerca"
}, },
"date-range-picker": { "date-range-picker": {
@@ -952,10 +949,10 @@
"description": "El mode controla què passa quan es dispara l'automatització i encara hi ha accions executant-se d'un disparament anterior. Consulta {documentation_link} per a més informació.", "description": "El mode controla què passa quan es dispara l'automatització i encara hi ha accions executant-se d'un disparament anterior. Consulta {documentation_link} per a més informació.",
"documentation": "documentació d'automatització", "documentation": "documentació d'automatització",
"label": "Mode", "label": "Mode",
"parallel": "Paral·lel", "parallel": "Paral·lel (per defecte)",
"queued": "A la cua", "queued": "A la cua",
"restart": "Reinicia", "restart": "Reinicia",
"single": "Individual (per defecte)" "single": "Individual"
}, },
"move_down": "Mou avall", "move_down": "Mou avall",
"move_up": "Mou amunt", "move_up": "Mou amunt",
@@ -1665,7 +1662,6 @@
"introduction": "Les entitats que no pertanyen a un dispositiu es poden configurar aquí.", "introduction": "Les entitats que no pertanyen a un dispositiu es poden configurar aquí.",
"without_device": "Entitats sense dispositiu" "without_device": "Entitats sense dispositiu"
}, },
"icon": "Icona",
"introduction": "Utilitza les escenes per donar més vida a la teva llar.", "introduction": "Utilitza les escenes per donar més vida a la teva llar.",
"load_error_not_editable": "Només es poden editar les escenes de l'arxiu scenes.yaml.", "load_error_not_editable": "Només es poden editar les escenes de l'arxiu scenes.yaml.",
"load_error_unknown": "Error en carregar l'escena ({err_no}).", "load_error_unknown": "Error en carregar l'escena ({err_no}).",
@@ -1699,10 +1695,6 @@
"delete_confirm": "Estàs segur que vols eliminar aquest script?", "delete_confirm": "Estàs segur que vols eliminar aquest script?",
"delete_script": "Elimina l'script", "delete_script": "Elimina l'script",
"header": "Script: {name}", "header": "Script: {name}",
"icon": "Icona",
"id": "ID de l'entitat",
"id_already_exists": "Aquest ID ja existeix",
"id_already_exists_save_error": "No pots desar aquest script perquè l'ID no és únic, tria'n un altre o deixa-ho en blanc perquè se'n generi un automàticament.",
"introduction": "Utilitza els scripts per executar seqüències d'accions.", "introduction": "Utilitza els scripts per executar seqüències d'accions.",
"link_available_actions": "Més informació sobre les accions disponibles.", "link_available_actions": "Més informació sobre les accions disponibles.",
"load_error_not_editable": "Només es poden editar els scripts dins de l'arxiu scripts.yaml.", "load_error_not_editable": "Només es poden editar els scripts dins de l'arxiu scripts.yaml.",
@@ -1816,7 +1808,7 @@
"discovered_text": "Els dispositius apareixeran aquí un cop descoberts.", "discovered_text": "Els dispositius apareixeran aquí un cop descoberts.",
"discovery_text": "Els dispositius descoberts apareixeran aquí. Segueix les instruccions del/s teu/s dispositiu/s i posa el dispositiu/s en mode d'emparellament.", "discovery_text": "Els dispositius descoberts apareixeran aquí. Segueix les instruccions del/s teu/s dispositiu/s i posa el dispositiu/s en mode d'emparellament.",
"header": "Domòtica amb Zigbee - Afegir dispositius", "header": "Domòtica amb Zigbee - Afegir dispositius",
"no_devices_found": "No s'han trobat dispositius, assegura't que estiguin en mode vinculació i manten-los desperts mentre s'estiguin descoberint.", "no_devices_found": "No s'han trobat dispositius, assegura't que estiguin en mode vinculació i manten-los desperts mentre estiguin intentant ser descoberts.",
"pairing_mode": "Assegura't que els dispositiu estiguin en mode vinculació. Consulta les instruccions del dispositiu per saber com fer-ho.", "pairing_mode": "Assegura't que els dispositiu estiguin en mode vinculació. Consulta les instruccions del dispositiu per saber com fer-ho.",
"search_again": "Torna a cercar", "search_again": "Torna a cercar",
"spinner": "S'estan cercant dispositius ZHA Zigbee..." "spinner": "S'estan cercant dispositius ZHA Zigbee..."
@@ -2340,7 +2332,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Afegir targeta", "add": "Afegir targeta",
"confirm_cancel": "Segur que vols cancel·lar?",
"delete": "Elimina targeta", "delete": "Elimina targeta",
"duplicate": "Duplica targeta", "duplicate": "Duplica targeta",
"edit": "Editar", "edit": "Editar",
@@ -2351,9 +2342,7 @@
"pick_card_view_title": "Quina targeta vols afegir a la visualització {name}?", "pick_card_view_title": "Quina targeta vols afegir a la visualització {name}?",
"show_code_editor": "Mostra l'editor de codi", "show_code_editor": "Mostra l'editor de codi",
"show_visual_editor": "Mostra l'editor visual", "show_visual_editor": "Mostra l'editor visual",
"toggle_editor": "Commutar l'editor", "toggle_editor": "Commutar l'editor"
"typed_header": "Configuració de la targeta {type}",
"unsaved_changes": "Hi ha canvis no desats"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Edita el títol", "edit_title": "Edita el títol",
@@ -2446,8 +2435,6 @@
"entity": "Entitat", "entity": "Entitat",
"entity_id": "ID de l'entitat", "entity_id": "ID de l'entitat",
"last_changed": "Últim canvi", "last_changed": "Últim canvi",
"no_data": "No s'han trobat entitats sense utilitzar",
"search": "Cerca entitats",
"select_to_add": "Selecciona les entitats que vols afegir a una targeta i fés clic al botó d'afegir targeta.", "select_to_add": "Selecciona les entitats que vols afegir a una targeta i fés clic al botó d'afegir targeta.",
"title": "Entitats sense utilitzar" "title": "Entitats sense utilitzar"
}, },

View File

@@ -528,7 +528,6 @@
"show_areas": "Zobrazit oblasti" "show_areas": "Zobrazit oblasti"
}, },
"data-table": { "data-table": {
"no-data": "Žádná data",
"search": "Hledat" "search": "Hledat"
}, },
"date-range-picker": { "date-range-picker": {
@@ -952,10 +951,10 @@
"description": "Režim určuje, co se stane, když je automatizace spuštěna a zároveň stále ještě běží akce na základě předchozího spuštění. Další informace naleznete na {documentation_link}.", "description": "Režim určuje, co se stane, když je automatizace spuštěna a zároveň stále ještě běží akce na základě předchozího spuštění. Další informace naleznete na {documentation_link}.",
"documentation": "Dokumentace automatizací", "documentation": "Dokumentace automatizací",
"label": "Režim", "label": "Režim",
"parallel": "Paralelně", "parallel": "Paralelní (výchozí)",
"queued": "Fronta", "queued": "Fronta",
"restart": "Restart", "restart": "Restart",
"single": "Jediný (výchozí)" "single": "Jediný"
}, },
"move_down": "Posunout dolů", "move_down": "Posunout dolů",
"move_up": "Posunout nahoru", "move_up": "Posunout nahoru",
@@ -1410,10 +1409,10 @@
"no_helpers": "Vypadá to, že ještě nemáte žádné pomocníky!" "no_helpers": "Vypadá to, že ještě nemáte žádné pomocníky!"
}, },
"types": { "types": {
"input_boolean": "Přepínač", "input_boolean": "Přepnout",
"input_datetime": "Datum a/nebo čas", "input_datetime": "Datum a/nebo čas",
"input_number": "Číslo", "input_number": "Číslo",
"input_select": "Výběr", "input_select": "Rozbalovací nabídka",
"input_text": "Text" "input_text": "Text"
} }
}, },
@@ -1714,7 +1713,7 @@
"description": "Režim určuje, co se stane, když je skript spuštěn a zároveň stále ještě běží na základě předchozího spuštění. Další informace naleznete na {documentation_link}.", "description": "Režim určuje, co se stane, když je skript spuštěn a zároveň stále ještě běží na základě předchozího spuštění. Další informace naleznete na {documentation_link}.",
"documentation": "Dokumentace skriptů", "documentation": "Dokumentace skriptů",
"label": "Režim", "label": "Režim",
"parallel": "Paralelně", "parallel": "Paralelní (výchozí)",
"queued": "Fronta", "queued": "Fronta",
"restart": "Restart", "restart": "Restart",
"single": "Jediný (výchozí)" "single": "Jediný (výchozí)"
@@ -1731,7 +1730,7 @@
}, },
"introduction": "Editor skriptů umožňuje vytvářet a upravovat skripty. Postupujte podle níže uvedeného odkazu a přečtěte si pokyny, abyste se ujistili, že jste Home Assistant nakonfigurovali správně.", "introduction": "Editor skriptů umožňuje vytvářet a upravovat skripty. Postupujte podle níže uvedeného odkazu a přečtěte si pokyny, abyste se ujistili, že jste Home Assistant nakonfigurovali správně.",
"learn_more": "Další informace o skriptech", "learn_more": "Další informace o skriptech",
"no_scripts": "Nemohli jsme najít žádné upravitelné skripty", "no_scripts": "Nemohli jsme najít žádné editovatelné skripty",
"show_info": "Zobrazit informace o skriptu", "show_info": "Zobrazit informace o skriptu",
"trigger_script": "Spustit skript" "trigger_script": "Spustit skript"
} }
@@ -1745,11 +1744,11 @@
"core": "Znovu načíst umístění a přizpůsobení", "core": "Znovu načíst umístění a přizpůsobení",
"group": "Znovu načíst skupiny", "group": "Znovu načíst skupiny",
"heading": "Konfigurace se načítá", "heading": "Konfigurace se načítá",
"input_boolean": "Znovu načíst pomocníky - čísla", "input_boolean": "Znovu načíst logické hodnoty",
"input_datetime": "Znovu načíst pomocníky - data/časy", "input_datetime": "Znovu načíst časy",
"input_number": "Znovu načíst pomocníky - přepínače", "input_number": "Znovu načíst vstupní čísla",
"input_select": "Znovu načíst pomocníky - výběry", "input_select": "Znovu načíst výběr",
"input_text": "Znovu načíst pomocníky - texty", "input_text": "Znovu načíst text",
"introduction": "Některé části Home Assistant lze načíst bez nutnosti restartování. Volba načtení zahodí jejich aktuální konfiguraci a načte novou.", "introduction": "Některé části Home Assistant lze načíst bez nutnosti restartování. Volba načtení zahodí jejich aktuální konfiguraci a načte novou.",
"person": "Znovu načíst osoby", "person": "Znovu načíst osoby",
"scene": "Znovu načíst scény", "scene": "Znovu načíst scény",
@@ -1939,9 +1938,9 @@
"update": "Aktualizovat" "update": "Aktualizovat"
}, },
"edit_home_zone": "Poloměr domovské zóny zatím nelze upravit z frontendu. Z frontendu se dá změnit jen poloha domovské zóny.", "edit_home_zone": "Poloměr domovské zóny zatím nelze upravit z frontendu. Z frontendu se dá změnit jen poloha domovské zóny.",
"edit_home_zone_narrow": "Poloměr domovské zóny zatím nelze upravit z rozhraní. Umístění lze změnit z obecné konfigurace.", "edit_home_zone_narrow": "Poloměr domovské zóny zatím nelze upravit z frontendu. Umístění lze změnit z obecné konfigurace.",
"go_to_core_config": "Přejít na obecnou konfiguraci?", "go_to_core_config": "Přejít na obecnou konfiguraci?",
"home_zone_core_config": "Umístění vaší domovské zóny lze upravit na stránce obecné konfigurace. Poloměr domovské zóny zatím nelze upravit z rozhraní. Chcete přejít na obecnou konfiguraci?", "home_zone_core_config": "Umístění vaší domovské zóny lze upravit na stránce obecné konfigurace. Poloměr domovské zóny zatím nelze upravit z frontendu. Chcete přejít na obecnou konfiguraci?",
"introduction": "Zóny umožňují určit určité oblasti na zemi. Když je osoba v zóně, stav převezme název ze zóny. Zóny lze také použít jako aktivační událost nebo podmínku v nastavení automatizace.", "introduction": "Zóny umožňují určit určité oblasti na zemi. Když je osoba v zóně, stav převezme název ze zóny. Zóny lze také použít jako aktivační událost nebo podmínku v nastavení automatizace.",
"no_zones_created_yet": "Vypadá to, že nejsou vytvořené žádné zóny." "no_zones_created_yet": "Vypadá to, že nejsou vytvořené žádné zóny."
}, },
@@ -2340,7 +2339,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Přidat kartu", "add": "Přidat kartu",
"confirm_cancel": "Opravdu chcete zahodit změny?",
"delete": "Odstranit", "delete": "Odstranit",
"duplicate": "Duplikovat Kartu", "duplicate": "Duplikovat Kartu",
"edit": "Upravit", "edit": "Upravit",
@@ -2351,9 +2349,7 @@
"pick_card_view_title": "Kterou kartu byste chtěli přidat do svého {name} pohledu?", "pick_card_view_title": "Kterou kartu byste chtěli přidat do svého {name} pohledu?",
"show_code_editor": "Zobrazit editor kódu", "show_code_editor": "Zobrazit editor kódu",
"show_visual_editor": "Zobrazit vizuální editor", "show_visual_editor": "Zobrazit vizuální editor",
"toggle_editor": "Přepnout Editor", "toggle_editor": "Přepnout Editor"
"typed_header": "{type} Konfigurace karty",
"unsaved_changes": "Změny nejsou uloženy"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Upravit titulek", "edit_title": "Upravit titulek",
@@ -2408,7 +2404,7 @@
"empty_config": "Začít s prázdným dashboardem", "empty_config": "Začít s prázdným dashboardem",
"header": "Převzít kontrolu nad vaší Lovelace UI", "header": "Převzít kontrolu nad vaší Lovelace UI",
"para": "Ve výchozím nastavení bude Home Assistant spravovat vaše uživatelské rozhraní aktualizovat jej při přidání nové entity nebo Lovelace komponenty. Pokud převezmete kontrolu, nebudeme již provádět změny automaticky za vás.", "para": "Ve výchozím nastavení bude Home Assistant spravovat vaše uživatelské rozhraní aktualizovat jej při přidání nové entity nebo Lovelace komponenty. Pokud převezmete kontrolu, nebudeme již provádět změny automaticky za vás.",
"para_sure": "Opravdu chcete převzít kontrolu nad uživalským rozhraním ?", "para_sure": "Opravdu chcete převzít kontrolu nad uživalským rohraním ?",
"save": "Převzít kontrolu", "save": "Převzít kontrolu",
"yaml_config": "Abyste mohli snadněji začít, zde aktuální konfigurace tohoto dashboardu:", "yaml_config": "Abyste mohli snadněji začít, zde aktuální konfigurace tohoto dashboardu:",
"yaml_control": "Chcete-li převzít kontrolu v režimu YAML, vytvořte soubor YAML s názvem, který jste uvedli ve své konfiguraci pro tento dashboard nebo výchozí 'ui-lovelace.yaml'.", "yaml_control": "Chcete-li převzít kontrolu v režimu YAML, vytvořte soubor YAML s názvem, který jste uvedli ve své konfiguraci pro tento dashboard nebo výchozí 'ui-lovelace.yaml'.",
@@ -2446,8 +2442,6 @@
"entity": "Entita", "entity": "Entita",
"entity_id": "ID entity", "entity_id": "ID entity",
"last_changed": "Naposledy změněno", "last_changed": "Naposledy změněno",
"no_data": "Nebyly nalezeny žádné nepoužívané entity",
"search": "Hledat entitu",
"select_to_add": "Vyberte entity, které chcete přidat do karty, a poté klikněte na tlačítko přidat kartu.", "select_to_add": "Vyberte entity, které chcete přidat do karty, a poté klikněte na tlačítko přidat kartu.",
"title": "Nepoužité entity" "title": "Nepoužité entity"
}, },

View File

@@ -77,7 +77,7 @@
"triggered": "Ausgel." "triggered": "Ausgel."
}, },
"default": { "default": {
"entity_not_found": "Entität nicht gefunden", "entity_not_found": "Entität nicht gefunden!",
"error": "Fehler", "error": "Fehler",
"unavailable": "N.v.", "unavailable": "N.v.",
"unknown": "Unbek." "unknown": "Unbek."
@@ -430,8 +430,6 @@
"activate": "Aktivieren" "activate": "Aktivieren"
}, },
"script": { "script": {
"cancel": "Abbrechen",
"cancel_multiple": "Abbrechen {number}",
"execute": "Ausführen" "execute": "Ausführen"
}, },
"service": { "service": {
@@ -528,7 +526,6 @@
"show_areas": "Bereiche anzeigen" "show_areas": "Bereiche anzeigen"
}, },
"data-table": { "data-table": {
"no-data": "Keine Daten",
"search": "Suche" "search": "Suche"
}, },
"date-range-picker": { "date-range-picker": {
@@ -740,7 +737,7 @@
"power_source": "Energiequelle", "power_source": "Energiequelle",
"quirk": "Eigenart", "quirk": "Eigenart",
"services": { "services": {
"reconfigure": "Konfiguriere das ZHA-Gerät neu (Gerät heilen). Verwende diese Option, wenn du Probleme mit dem Gerät hast. Wenn es sich bei dem fraglichen Gerät um ein batteriebetriebenes Gerät handelt, vergewissere dich, dass es wach ist und Befehle akzeptiert, wenn du diesen Dienst nutzt.", "reconfigure": "Konfigurieren Sie das ZHA-Gerät neu (Gerät heilen). Verwenden Sie diese Option, wenn Sie Probleme mit dem Gerät haben. Wenn es sich bei dem fraglichen Gerät um ein batteriebetriebenes Gerät handelt, vergewissern Sie sich, dass es wach ist und Befehle akzeptiert, wenn Sie diesen Dienst nutzen.",
"remove": "Ein Gerät aus dem ZigBee-Netzwerk entfernen.", "remove": "Ein Gerät aus dem ZigBee-Netzwerk entfernen.",
"updateDeviceName": "Lege einen benutzerdefinierten Namen für dieses Gerät in der Geräteregistrierung fest.", "updateDeviceName": "Lege einen benutzerdefinierten Namen für dieses Gerät in der Geräteregistrierung fest.",
"zigbee_information": "Zeige die ZigBee-Informationen für das Gerät an." "zigbee_information": "Zeige die ZigBee-Informationen für das Gerät an."
@@ -766,7 +763,7 @@
"remember": "Merken" "remember": "Merken"
}, },
"notification_drawer": { "notification_drawer": {
"click_to_configure": "Klicke auf die Schaltfläche, um {entity} zu konfigurieren", "click_to_configure": "Klicke auf die Schaltfläche, um {entity} zu konfigurieren.",
"close": "Schließen", "close": "Schließen",
"empty": "Keine Benachrichtigungen", "empty": "Keine Benachrichtigungen",
"title": "Benachrichtigungen" "title": "Benachrichtigungen"
@@ -775,7 +772,7 @@
"connection_lost": "Verbindung getrennt. Verbinde erneut...", "connection_lost": "Verbindung getrennt. Verbinde erneut...",
"service_call_failed": "Fehler beim Aufrufen des Service {service}.", "service_call_failed": "Fehler beim Aufrufen des Service {service}.",
"started": "Home Assistant wurde vollständig gestartet!", "started": "Home Assistant wurde vollständig gestartet!",
"starting": "Home Assistant startet, währenddessen kann es sein, dass nicht alles verfügbar ist.", "starting": "Home Assistant startet, währenddessen kann es sein das nicht alles verfügbar ist.",
"triggered": "{name} ausgelöst" "triggered": "{name} ausgelöst"
}, },
"panel": { "panel": {
@@ -814,7 +811,7 @@
"header": "Bereiche", "header": "Bereiche",
"integrations_page": "Integrationsseite", "integrations_page": "Integrationsseite",
"introduction": "In Bereichen wird festgelegt, wo sich Geräte befinden. Diese Informationen werden in Home Assistant verwendet, um Sie bei der Organisation Ihrer Benutzeroberfläche, Berechtigungen und Integrationen mit anderen Systemen zu unterstützen.", "introduction": "In Bereichen wird festgelegt, wo sich Geräte befinden. Diese Informationen werden in Home Assistant verwendet, um Sie bei der Organisation Ihrer Benutzeroberfläche, Berechtigungen und Integrationen mit anderen Systemen zu unterstützen.",
"introduction2": "Um Geräte in einem Bereich zu platzieren, navigiere mit dem Link unten zur Integrationsseite und klicke dann auf eine konfigurierte Integration, um zu den Gerätekarten zu gelangen.", "introduction2": "Um Geräte in einem Bereich zu platzieren, navigieren Sie mit dem Link unten zur Integrationsseite und klicken Sie dann auf eine konfigurierte Integration, um zu den Gerätekarten zu gelangen.",
"no_areas": "Sieht aus, als hätten Sie noch keine Bereiche!" "no_areas": "Sieht aus, als hätten Sie noch keine Bereiche!"
} }
}, },
@@ -944,19 +941,6 @@
"introduction": "Benutze Automatisierungen, um deinem Zuhause Leben einzuhauchen", "introduction": "Benutze Automatisierungen, um deinem Zuhause Leben einzuhauchen",
"load_error_not_editable": "Nur Automatisierungen in automations.yaml sind editierbar.", "load_error_not_editable": "Nur Automatisierungen in automations.yaml sind editierbar.",
"load_error_unknown": "Fehler beim Laden der Automatisierung ({err_no}).", "load_error_unknown": "Fehler beim Laden der Automatisierung ({err_no}).",
"max": {
"parallel": "Maximale Anzahl paralleler Läufe",
"queued": "Länge der Warteschlange"
},
"modes": {
"description": "Der Modus steuert, was passiert, wenn ein Skript aufgerufen wird, während es noch von einem oder mehreren vorherigen Aufrufen ausgeführt wird. Überprüfen Sie den {documentation_link} für weitere Informationen.",
"documentation": "Automatisierungs-Dokumentation",
"label": "Modus",
"parallel": "Parallel",
"queued": "In Warteschlange",
"restart": "Neu starten",
"single": "Einzeln (Standard)"
},
"move_down": "Runterschieben", "move_down": "Runterschieben",
"move_up": "Hochschieben", "move_up": "Hochschieben",
"save": "Speichern", "save": "Speichern",
@@ -1158,7 +1142,7 @@
"dialog_cloudhook": { "dialog_cloudhook": {
"available_at": "Der Webhook ist unter der folgenden URL verfügbar:", "available_at": "Der Webhook ist unter der folgenden URL verfügbar:",
"close": "Schließen", "close": "Schließen",
"confirm_disable": "Möchtest du diesen Webhook wirklich deaktivieren?", "confirm_disable": "Möchten Sie diesen Webhook wirklich deaktivieren?",
"copied_to_clipboard": "In die Zwischenablage kopiert", "copied_to_clipboard": "In die Zwischenablage kopiert",
"info_disable_webhook": "Wenn du diesen Webhook nicht mehr nutzen willst, kannst du", "info_disable_webhook": "Wenn du diesen Webhook nicht mehr nutzen willst, kannst du",
"link_disable_webhook": "deaktiviere es", "link_disable_webhook": "deaktiviere es",
@@ -1407,7 +1391,7 @@
"name": "Name", "name": "Name",
"type": "Typ" "type": "Typ"
}, },
"no_helpers": "Sieht so aus, als hättest du noch keine Helfer!" "no_helpers": "Sieht so aus, als hätten Sie noch keine Helfer!"
}, },
"types": { "types": {
"input_boolean": "Umschalten", "input_boolean": "Umschalten",
@@ -1439,8 +1423,8 @@
}, },
"integration_panel_move": { "integration_panel_move": {
"link_integration_page": "Integrationsseite", "link_integration_page": "Integrationsseite",
"missing_zha": "Vermisst du das ZHA-Konfigurationspanel? Es wurde in den ZHA-Eintrag auf der {integrations_page} verschoben.", "missing_zha": "Vermissen Sie das ZHA-Konfigurationspanel? Es wurde in den ZHA-Eintrag auf der {integrations_page} verschoben.",
"missing_zwave": "Vermisst du das Z-Wave-Konfigurationspanel? Es wurde in den Z-Wave-Eintrag auf der {integrations_page} verschoben." "missing_zwave": "Vermissen Sie das Z-Wave-Konfigurationspanel? Es wurde in den Z-Wave-Eintrag auf der {integrations_page} verschoben."
}, },
"integrations": { "integrations": {
"add_integration": "Integration hinzufügen", "add_integration": "Integration hinzufügen",
@@ -1622,7 +1606,7 @@
"person": { "person": {
"add_person": "Person hinzufügen", "add_person": "Person hinzufügen",
"caption": "Personen", "caption": "Personen",
"confirm_delete": "Möchtest du diese Person wirklich löschen?", "confirm_delete": "Möchten Sie diese Person wirklich löschen?",
"confirm_delete2": "Alle Geräte, die zu dieser Person gehören, werden nicht mehr zugeordnet.", "confirm_delete2": "Alle Geräte, die zu dieser Person gehören, werden nicht mehr zugeordnet.",
"create_person": "Person erstellen", "create_person": "Person erstellen",
"description": "Verwalte die Personen, die Home Assistant verfolgt.", "description": "Verwalte die Personen, die Home Assistant verfolgt.",
@@ -1638,7 +1622,7 @@
"name": "Name", "name": "Name",
"name_error_msg": "Name erforderlich", "name_error_msg": "Name erforderlich",
"new_person": "Neue Person", "new_person": "Neue Person",
"no_device_tracker_available_intro": "Wenn du Geräte hast, die die Anwesenheit einer Person anzeigen, kannst du diese hier einer Person zuordnen. Du kannst dein erstes Gerät hinzufügen, indem du eine Integration zur Anwesenheitserkennung auf der Integrationsseite hinzufügst.", "no_device_tracker_available_intro": "Wenn Sie Geräte haben, die die Anwesenheit einer Person anzeigen, können Sie diese hier einer Person zuordnen. Sie können Ihr erstes Gerät hinzufügen, indem Sie eine Integration zur Anwesenheitserkennung auf der Integrationsseite hinzufügen.",
"update": "Aktualisieren" "update": "Aktualisieren"
}, },
"introduction": "Hier können Sie jede Person von Interesse in Home Assistant definieren.", "introduction": "Hier können Sie jede Person von Interesse in Home Assistant definieren.",
@@ -1665,7 +1649,6 @@
"introduction": "Entitäten, die nicht zu einem Gerät gehören, können hier festgelegt werden.", "introduction": "Entitäten, die nicht zu einem Gerät gehören, können hier festgelegt werden.",
"without_device": "Entitäten ohne Gerät" "without_device": "Entitäten ohne Gerät"
}, },
"icon": "Symbol",
"introduction": "Benutze Szenen um deinem Zuhause Leben einzuhauchen.", "introduction": "Benutze Szenen um deinem Zuhause Leben einzuhauchen.",
"load_error_not_editable": "Nur Szenen in der scenes.yaml sind editierbar.", "load_error_not_editable": "Nur Szenen in der scenes.yaml sind editierbar.",
"load_error_unknown": "Fehler beim Laden der Szene ({err_no}).", "load_error_unknown": "Fehler beim Laden der Szene ({err_no}).",
@@ -1699,26 +1682,9 @@
"delete_confirm": "Möchtest du dieses Skript wirklich löschen?", "delete_confirm": "Möchtest du dieses Skript wirklich löschen?",
"delete_script": "Skript löschen", "delete_script": "Skript löschen",
"header": "Skript: {name}", "header": "Skript: {name}",
"icon": "Symbol",
"id": "Entitäts-ID",
"id_already_exists": "Diese ID existiert bereits",
"id_already_exists_save_error": "Du kannst dieses Skript nicht speichern, da die ID nicht eindeutig ist. Wähle eine andere ID aus oder lasse sie leer, um automatisch eine zu generieren.",
"introduction": "Verwende Skripte, um eine Abfolge von Aktionen auszuführen.", "introduction": "Verwende Skripte, um eine Abfolge von Aktionen auszuführen.",
"link_available_actions": "Erfahre mehr über verfügbare Aktionen.", "link_available_actions": "Erfahre mehr über verfügbare Aktionen.",
"load_error_not_editable": "Nur Skripte in scripts.yaml können bearbeitet werden.", "load_error_not_editable": "Nur Skripte in scripts.yaml können bearbeitet werden.",
"max": {
"parallel": "Maximale Anzahl paralleler Läufe",
"queued": "Länge der Warteschlange"
},
"modes": {
"description": "Der Modus steuert, was passiert, wenn ein Skript aufgerufen wird, während es noch von einem oder mehreren vorherigen Aufrufen ausgeführt wird. Überprüfen Sie den {documentation_link} für weitere Informationen.",
"documentation": "Skript-Dokumentation",
"label": "Modus",
"parallel": "Parallel",
"queued": "In Warteschlange",
"restart": "Neu starten",
"single": "Einzeln (Standard)"
},
"sequence": "Sequenz", "sequence": "Sequenz",
"sequence_sentence": "Die Abfolge der Aktionen dieses Skripts." "sequence_sentence": "Die Abfolge der Aktionen dieses Skripts."
}, },
@@ -1729,7 +1695,7 @@
"headers": { "headers": {
"name": "Name" "name": "Name"
}, },
"introduction": "Mit dem Skript-Editor können Skripte erstellt und bearbeitet werden. Bitte folge dem untenstehenden Link, um die Anleitung zu finden. Das stellt sicher, dass Home Assistant richtig konfiguriert ist.", "introduction": "Mit dem Skript-Editor können Skripte erstellt und bearbeitet werden. Bitte folge Sie dem untenstehenden Link, um die Anleitung zu finden. Das stellt sicher, dass Home Assistant richtig konfiguriert ist.",
"learn_more": "Weitere Informationen zu Skripten", "learn_more": "Weitere Informationen zu Skripten",
"no_scripts": "Wir konnten keine bearbeitbaren Skripte finden", "no_scripts": "Wir konnten keine bearbeitbaren Skripte finden",
"show_info": "Informationen zum Skript anzeigen", "show_info": "Informationen zum Skript anzeigen",
@@ -1757,8 +1723,8 @@
"zone": "Zonen neu laden" "zone": "Zonen neu laden"
}, },
"server_management": { "server_management": {
"confirm_restart": "Möchtest du Home Assistant wirklich neu starten?", "confirm_restart": "Möchten Sie Home Assistant wirklich neu starten?",
"confirm_stop": "Möchtest du Home Assistant wirklich beenden?", "confirm_stop": "Möchten Sie Home Assistant wirklich beenden?",
"heading": "Serververwaltung", "heading": "Serververwaltung",
"introduction": "Verwalte Home Assistant… von Home Assistant aus.", "introduction": "Verwalte Home Assistant… von Home Assistant aus.",
"restart": "Neu starten", "restart": "Neu starten",
@@ -1789,7 +1755,7 @@
"admin": "Administrator", "admin": "Administrator",
"caption": "Benutzer anzeigen", "caption": "Benutzer anzeigen",
"change_password": "Passwort ändern", "change_password": "Passwort ändern",
"confirm_user_deletion": "Möchtest du {name} wirklich löschen?", "confirm_user_deletion": "Möchten Sie {name} wirklich löschen?",
"deactivate_user": "Benutzer deaktivieren", "deactivate_user": "Benutzer deaktivieren",
"delete_user": "Benutzer löschen", "delete_user": "Benutzer löschen",
"group": "Gruppe", "group": "Gruppe",
@@ -1816,7 +1782,7 @@
"discovered_text": "Geräte werden hier angezeigt sobald sie erkannt worden sind.", "discovered_text": "Geräte werden hier angezeigt sobald sie erkannt worden sind.",
"discovery_text": "Erkannte Geräte werden hier angezeigt. Befolgen Sie die Anweisungen für Ihr Gerät und versetzen Sie das Gerät in den Pairing-Modus.", "discovery_text": "Erkannte Geräte werden hier angezeigt. Befolgen Sie die Anweisungen für Ihr Gerät und versetzen Sie das Gerät in den Pairing-Modus.",
"header": "Zigbee Home Automation - Geräte hinzufügen", "header": "Zigbee Home Automation - Geräte hinzufügen",
"no_devices_found": "Es wurden keine Geräte erkannt. Stelle sicher, dass sie sich im Pairing-Modus befinden und halte sie aktiv, solange die Erkennung läuft.", "no_devices_found": "Es wurden keine Geräte erkannt. Stelle sicher, dass sie sich im Pairing-Modus befinden und halte sie aktiv, solange die Erkennung läuft,",
"pairing_mode": "Stelle sicher, dass sich deine Geräte im Pairing-Modus befinden. Überprüfe dazu die Anweisungen deines Geräts.", "pairing_mode": "Stelle sicher, dass sich deine Geräte im Pairing-Modus befinden. Überprüfe dazu die Anweisungen deines Geräts.",
"search_again": "Erneut suchen", "search_again": "Erneut suchen",
"spinner": "Suche nach ZHA Zigbee Geräten..." "spinner": "Suche nach ZHA Zigbee Geräten..."
@@ -1983,10 +1949,10 @@
"add_to_group": "Zur Gruppe hinzufügen", "add_to_group": "Zur Gruppe hinzufügen",
"entities": "Entitäten dieses Knotens", "entities": "Entitäten dieses Knotens",
"entity_info": "Entitätsinformationen", "entity_info": "Entitätsinformationen",
"exclude_entity": "Schließe diese Entität vom Home Assistant aus", "exclude_entity": "Schließen Sie diese Entität vom Home Assistant aus",
"group": "Gruppe", "group": "Gruppe",
"header": "Z-Wave-Knotenverwaltung", "header": "Z-Wave-Knotenverwaltung",
"introduction": "Führe Z-Wave-Befehle aus, die einen einzelnen Knoten betreffen. Wähle einen Knoten aus, um eine Liste der verfügbaren Befehle anzuzeigen.", "introduction": "Führen Sie Z-Wave-Befehle aus, die einen einzelnen Knoten betreffen. Wählen Sie einen Knoten aus, um eine Liste der verfügbaren Befehle anzuzeigen.",
"max_associations": "Max Assoziationen:", "max_associations": "Max Assoziationen:",
"node_group_associations": "Knotengruppenzuordnungen", "node_group_associations": "Knotengruppenzuordnungen",
"node_protection": "Knotenschutz", "node_protection": "Knotenschutz",
@@ -2156,7 +2122,7 @@
"clear_items": "Markierte Elemente löschen" "clear_items": "Markierte Elemente löschen"
}, },
"starting": { "starting": {
"description": "Home Assistant startet, bitte warten", "description": "Home Assistant startet, bitte warten Sie..",
"header": "Home Assistant startet ..." "header": "Home Assistant startet ..."
} }
}, },
@@ -2340,7 +2306,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Karte hinzufügen", "add": "Karte hinzufügen",
"confirm_cancel": "Bist du sicher, dass du Abbrechen willst?",
"delete": "Löschen", "delete": "Löschen",
"duplicate": "Karte duplizieren", "duplicate": "Karte duplizieren",
"edit": "Bearbeiten", "edit": "Bearbeiten",
@@ -2351,9 +2316,7 @@
"pick_card_view_title": "Welche Karte möchten Sie Ihrer {name} -Ansicht hinzufügen?", "pick_card_view_title": "Welche Karte möchten Sie Ihrer {name} -Ansicht hinzufügen?",
"show_code_editor": "Code-Editor anzeigen", "show_code_editor": "Code-Editor anzeigen",
"show_visual_editor": "Visuellen Editor anzeigen", "show_visual_editor": "Visuellen Editor anzeigen",
"toggle_editor": "Editor umschalten", "toggle_editor": "Editor umschalten"
"typed_header": "{type} Kartenkonfiguration",
"unsaved_changes": "Nicht gespeicherte Änderungen"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Titel bearbeiten", "edit_title": "Titel bearbeiten",
@@ -2407,7 +2370,7 @@
"close": "Schließen", "close": "Schließen",
"empty_config": "Beginne mit einem leeren Dashboard", "empty_config": "Beginne mit einem leeren Dashboard",
"header": "Lovelace Userinterface selbst verwalten", "header": "Lovelace Userinterface selbst verwalten",
"para": "Dieses Dashboard wird derzeit von Home Assistant verwaltet. Es wird automatisch aktualisiert, wenn neue Entitäten oder Lovelace-UI-Komponenten verfügbar werden. Wenn du die Kontrolle übernimmst, wird dieses Dashboard nicht mehr automatisch aktualisiert. Du kannst jederzeit ein neues Dashboard in der Konfiguration erstellen, mit dem du herumspielen kannst.", "para": "Dieses Dashboard wird derzeit von Home Assistant verwaltet. Es wird automatisch aktualisiert, wenn neue Entitäten oder Lovelace-UI-Komponenten verfügbar werden. Wenn Sie die Kontrolle übernehmen, wird dieses Dashboard nicht mehr automatisch aktualisiert. Sie können jederzeit ein neues Dashboard in der Konfiguration erstellen, mit dem Sie herumspielen können.",
"para_sure": "Bist du dir sicher, dass du die Benutzeroberfläche selbst verwalten möchtest?", "para_sure": "Bist du dir sicher, dass du die Benutzeroberfläche selbst verwalten möchtest?",
"save": "Kontrolle übernehmen", "save": "Kontrolle übernehmen",
"yaml_config": "Um dir den Einstieg zu erleichtern, findest du hier die aktuelle Konfiguration dieses Dashboards:", "yaml_config": "Um dir den Einstieg zu erleichtern, findest du hier die aktuelle Konfiguration dieses Dashboards:",
@@ -2446,8 +2409,6 @@
"entity": "Entität", "entity": "Entität",
"entity_id": "Entitäts-ID", "entity_id": "Entitäts-ID",
"last_changed": "Zuletzt geändert", "last_changed": "Zuletzt geändert",
"no_data": "Keine ungenutzten Entitäten gefunden",
"search": "Entitäten durchsuchen",
"select_to_add": "Wähle die Entitäten aus, die du zur Karte hinzufügen möchtest und klicke auf den Karte hinzufügen-Button.", "select_to_add": "Wähle die Entitäten aus, die du zur Karte hinzufügen möchtest und klicke auf den Karte hinzufügen-Button.",
"title": "Nicht verwendete Entitäten" "title": "Nicht verwendete Entitäten"
}, },
@@ -2527,7 +2488,7 @@
"legacy_api_password": { "legacy_api_password": {
"abort": { "abort": {
"login_expired": "Sitzung abgelaufen, bitte erneut anmelden.", "login_expired": "Sitzung abgelaufen, bitte erneut anmelden.",
"no_api_password_set": "Du hast kein API-Passwort konfiguriert." "no_api_password_set": "Sie haben kein API-Passwort konfiguriert."
}, },
"error": { "error": {
"invalid_auth": "Ungültiges API-Passwort", "invalid_auth": "Ungültiges API-Passwort",
@@ -2550,7 +2511,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Dein Computer ist nicht auf der Whitelist.",
"not_whitelisted": "Dein Computer ist nicht auf der Whitelist." "not_whitelisted": "Dein Computer ist nicht auf der Whitelist."
}, },
"step": { "step": {
@@ -2689,7 +2649,7 @@
"empty_state": "Sie haben noch keine langlebigen Zugangs-Token.", "empty_state": "Sie haben noch keine langlebigen Zugangs-Token.",
"header": "Langlebige Zugangs-Token", "header": "Langlebige Zugangs-Token",
"last_used": "Zuletzt verwendet am {date} in {location}", "last_used": "Zuletzt verwendet am {date} in {location}",
"learn_auth_requests": "Erfahre, wie du authentifizierte Anfragen stellen kannst.", "learn_auth_requests": "Erfahren Sie, wie Sie authentifizierte Anfragen stellen können.",
"not_used": "Wurde noch nie benutzt", "not_used": "Wurde noch nie benutzt",
"prompt_copy_token": "Kopiere deinen Zugangs-Token. Er wird nicht wieder angezeigt werden.", "prompt_copy_token": "Kopiere deinen Zugangs-Token. Er wird nicht wieder angezeigt werden.",
"prompt_name": "Name?" "prompt_name": "Name?"
@@ -2737,7 +2697,7 @@
"link_promo": "Erfahre mehr über Themen" "link_promo": "Erfahre mehr über Themen"
}, },
"vibrate": { "vibrate": {
"description": "Aktiviere oder deaktiviere die Vibration an diesem Gerät, wenn du Geräte steuerst.", "description": "Aktivieren oder deaktivieren Sie die Vibration an diesem Gerät, wenn Sie Geräte steuern.",
"header": "Vibrieren" "header": "Vibrieren"
} }
}, },

View File

@@ -48,19 +48,6 @@
"none": "Κανένας", "none": "Κανένας",
"sleep": "Ύπνος" "sleep": "Ύπνος"
} }
},
"humidifier": {
"mode": {
"auto": "Αυτόματο",
"away": "Εκτός",
"baby": "Μωρό",
"boost": "Ενίσχυση",
"comfort": "Άνεση",
"eco": "Eco",
"home": "Σπίτι",
"normal": "Κανονικός",
"sleep": "Ύπνος"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -399,10 +386,6 @@
"reverse": "Αντιστροφή", "reverse": "Αντιστροφή",
"speed": "Ταχύτητα" "speed": "Ταχύτητα"
}, },
"humidifier": {
"humidity": "Επιθυμητή υγρασία",
"mode": "Λειτουργία"
},
"light": { "light": {
"brightness": "Φωτεινότητα", "brightness": "Φωτεινότητα",
"color_temperature": "Θερμοκρασία χρώματος", "color_temperature": "Θερμοκρασία χρώματος",
@@ -426,7 +409,6 @@
"activate": "Ενεργοποίηση" "activate": "Ενεργοποίηση"
}, },
"script": { "script": {
"cancel": "Ακύρωση",
"execute": "Εκτέλεση" "execute": "Εκτέλεση"
}, },
"service": { "service": {
@@ -460,7 +442,7 @@
"attributes": { "attributes": {
"air_pressure": "Πίεση αέρα", "air_pressure": "Πίεση αέρα",
"humidity": "Υγρασία", "humidity": "Υγρασία",
"precipitation": "Υετός", "precipitation": "Κατακρήμνιση",
"temperature": "Θερμοκρασία", "temperature": "Θερμοκρασία",
"visibility": "Ορατότητα", "visibility": "Ορατότητα",
"wind_speed": "Ταχύτητα ανέμου" "wind_speed": "Ταχύτητα ανέμου"
@@ -514,9 +496,6 @@
"clear": "Εκκαθάριση", "clear": "Εκκαθάριση",
"show_areas": "Εμφάνιση περιοχών" "show_areas": "Εμφάνιση περιοχών"
}, },
"data-table": {
"search": "Αναζήτηση"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Ημερομηνία λήξης", "end_date": "Ημερομηνία λήξης",
"select": "Επιλογή", "select": "Επιλογή",
@@ -826,13 +805,6 @@
"introduction": "Χρησιμοποιήστε αυτοματισμούς για να ζωντανέψουν το σπίτι σας", "introduction": "Χρησιμοποιήστε αυτοματισμούς για να ζωντανέψουν το σπίτι σας",
"load_error_not_editable": "Μόνο οι αυτοματισμοί στο automations.yaml είναι επεξεργάσιμοι.", "load_error_not_editable": "Μόνο οι αυτοματισμοί στο automations.yaml είναι επεξεργάσιμοι.",
"load_error_unknown": "Σφάλμα κατά τη φόρτωση αυτοματισμού ({err_no}).", "load_error_unknown": "Σφάλμα κατά τη φόρτωση αυτοματισμού ({err_no}).",
"max": {
"queued": "Μήκος ουράς"
},
"modes": {
"documentation": "τεκμηρίωση αυτοματισμού",
"restart": "Επανεκκίνηση"
},
"save": "Αποθήκευση", "save": "Αποθήκευση",
"triggers": { "triggers": {
"add": "Προσθήκη εναύσματος", "add": "Προσθήκη εναύσματος",
@@ -1275,7 +1247,6 @@
"delete_button": "Διαγραφή {integration}", "delete_button": "Διαγραφή {integration}",
"delete_confirm": "Είστε σίγουρος ότι θέλετε να διαγραφεί αυτή η ενοποίηση;", "delete_confirm": "Είστε σίγουρος ότι θέλετε να διαγραφεί αυτή η ενοποίηση;",
"device_unavailable": "συσκευή μη διαθέσιμη", "device_unavailable": "συσκευή μη διαθέσιμη",
"documentation": "Τεκμηρίωση",
"entity_unavailable": "οντότητα μη διαθέσιμη", "entity_unavailable": "οντότητα μη διαθέσιμη",
"firmware": "Υλικολογισμικό: {version}", "firmware": "Υλικολογισμικό: {version}",
"hub": "Συνδεδεμένο μέσω", "hub": "Συνδεδεμένο μέσω",
@@ -1322,8 +1293,7 @@
"new": "Ρυθμίστε νέα ενοποίηση", "new": "Ρυθμίστε νέα ενοποίηση",
"none": "Δεν υπάρχει διαμόρφωση ακόμα", "none": "Δεν υπάρχει διαμόρφωση ακόμα",
"note_about_integrations": "Δεν μπορούν όλες οι ενσωματώσεις να διαμορφωθούν από το UI ακόμη.", "note_about_integrations": "Δεν μπορούν όλες οι ενσωματώσεις να διαμορφωθούν από το UI ακόμη.",
"note_about_website_reference": "Περισσότερα είναι διαθέσιμα στο", "note_about_website_reference": "Περισσότερα είναι διαθέσιμα στο"
"search": "Αναζήτηση ενσωματώσεων"
}, },
"introduction": "Εδώ είναι δυνατή η διαμόρφωση του Home Assistant και των εξαρτημάτων. Δεν είναι δυνατή η διαμόρφωση όλων από την διεπαφή χρήστη (UI) αλλά εργαζόμαστε πάνω σε αυτό.", "introduction": "Εδώ είναι δυνατή η διαμόρφωση του Home Assistant και των εξαρτημάτων. Δεν είναι δυνατή η διαμόρφωση όλων από την διεπαφή χρήστη (UI) αλλά εργαζόμαστε πάνω σε αυτό.",
"logs": { "logs": {
@@ -1418,7 +1388,6 @@
"introduction": "Εδώ μπορείτε να ορίσετε οντότητες που δεν ανήκουν σε κάποια συσκευή.", "introduction": "Εδώ μπορείτε να ορίσετε οντότητες που δεν ανήκουν σε κάποια συσκευή.",
"without_device": "Οντότητες χωρίς συσκευές" "without_device": "Οντότητες χωρίς συσκευές"
}, },
"icon": "Εικονίδιο",
"introduction": "Χρησιμοποιήστε σκηνές για να ζωντανέψουν το σπίτι σας", "introduction": "Χρησιμοποιήστε σκηνές για να ζωντανέψουν το σπίτι σας",
"load_error_not_editable": "Μόνο σκηνές στο scenes.yaml είναι επεξεργάσιμες.", "load_error_not_editable": "Μόνο σκηνές στο scenes.yaml είναι επεξεργάσιμες.",
"load_error_unknown": "Σφάλμα κατά τη φόρτωση της σκηνής ({err_no}).", "load_error_unknown": "Σφάλμα κατά τη φόρτωση της σκηνής ({err_no}).",
@@ -1452,20 +1421,9 @@
"delete_confirm": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη δέσμη ενεργειών;", "delete_confirm": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη δέσμη ενεργειών;",
"delete_script": "Διαγραφή δέσμης ενεργειών", "delete_script": "Διαγραφή δέσμης ενεργειών",
"header": "Δέσμη ενεργειών: {name}", "header": "Δέσμη ενεργειών: {name}",
"icon": "Εικονίδιο",
"introduction": "Χρησιμοποιήστε δέσμες ενεργειών για να εκτελέσετε μια ακολουθία ενεργειών.", "introduction": "Χρησιμοποιήστε δέσμες ενεργειών για να εκτελέσετε μια ακολουθία ενεργειών.",
"link_available_actions": "Μάθετε περισσότερα σχετικά με τις διαθέσιμες ενέργειες.", "link_available_actions": "Μάθετε περισσότερα σχετικά με τις διαθέσιμες ενέργειες.",
"load_error_not_editable": "Μόνο οι δέσμες ενεργειών που βρίσκονται μέσα στο scripts.yaml είναι επεξεργάσιμες", "load_error_not_editable": "Μόνο οι δέσμες ενεργειών που βρίσκονται μέσα στο scripts.yaml είναι επεξεργάσιμες",
"max": {
"queued": "Μήκος ουράς"
},
"modes": {
"documentation": "τεκμηρίωση δέσμης ενεργειών",
"parallel": "Παράλληλα",
"queued": "Στην ουρά",
"restart": "Επανεκκίνηση",
"single": "Μονό (προεπιλογή)"
},
"sequence": "Ακολουθία", "sequence": "Ακολουθία",
"sequence_sentence": "Η ακολουθία των ενεργειών αυτής της δέσμης ενεργειών." "sequence_sentence": "Η ακολουθία των ενεργειών αυτής της δέσμης ενεργειών."
}, },
@@ -1550,7 +1508,6 @@
}, },
"zha": { "zha": {
"add_device_page": { "add_device_page": {
"discovered_text": "Οι συσκευές θα εμφανιστούν εδώ μόλις ανακαλυφθούν.",
"discovery_text": "Οι ανακαλυφθείσες συσκευές θα εμφανιστούν εδώ. Ακολουθήστε τις οδηγίες για τις συσκευές σας και τοποθετήστε τις συσκευές στη λειτουργία αντιστοίχισης.", "discovery_text": "Οι ανακαλυφθείσες συσκευές θα εμφανιστούν εδώ. Ακολουθήστε τις οδηγίες για τις συσκευές σας και τοποθετήστε τις συσκευές στη λειτουργία αντιστοίχισης.",
"header": "Zigbee Home Automation - Προσθήκη Συσκευών", "header": "Zigbee Home Automation - Προσθήκη Συσκευών",
"search_again": "Αναζήτηση ξανά", "search_again": "Αναζήτηση ξανά",
@@ -1560,7 +1517,6 @@
"caption": "Προσθήκη Συσκευών", "caption": "Προσθήκη Συσκευών",
"description": "Προσθήκη συσκετών στο δίκτυο Zigbee" "description": "Προσθήκη συσκετών στο δίκτυο Zigbee"
}, },
"button": "Διαμόρφωση",
"caption": "ZHA", "caption": "ZHA",
"cluster_attributes": { "cluster_attributes": {
"attributes_of_cluster": "Χαρακτηριστικά της επιλεγμένης συστοιχίας", "attributes_of_cluster": "Χαρακτηριστικά της επιλεγμένης συστοιχίας",
@@ -1808,10 +1764,6 @@
"add_item": "Προσθήκη στοιχείου", "add_item": "Προσθήκη στοιχείου",
"checked_items": "Επιλεγμένα στοιχεία", "checked_items": "Επιλεγμένα στοιχεία",
"clear_items": "Εκκαθάριση επιλεγμένων στοιχείων" "clear_items": "Εκκαθάριση επιλεγμένων στοιχείων"
},
"starting": {
"description": "Ο Home Assistant ξεκινά, περιμένετε ...",
"header": "Ο Home Assistant ξεκινά..."
} }
}, },
"changed_toast": { "changed_toast": {
@@ -1875,7 +1827,6 @@
"name": "Όνομα", "name": "Όνομα",
"no_theme": "Χωρίς θέμα", "no_theme": "Χωρίς θέμα",
"refresh_interval": "Χρονικό διάστημα ανανέωσης", "refresh_interval": "Χρονικό διάστημα ανανέωσης",
"search": "Αναζήτηση",
"show_icon": "Εμφάνιση εικονιδίου;", "show_icon": "Εμφάνιση εικονιδίου;",
"show_name": "Εμφάνιση ονόματος;", "show_name": "Εμφάνιση ονόματος;",
"show_state": "Εμφάνιση κατάστασης;", "show_state": "Εμφάνιση κατάστασης;",
@@ -1896,9 +1847,6 @@
"horizontal-stack": { "horizontal-stack": {
"name": "Οριζόντια διάταξη" "name": "Οριζόντια διάταξη"
}, },
"humidifier": {
"name": "Υγραντήρας"
},
"iframe": { "iframe": {
"name": "Ιστοσελίδα" "name": "Ιστοσελίδα"
}, },
@@ -1973,8 +1921,7 @@
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Επεξεργασία τίτλου", "edit_title": "Επεξεργασία τίτλου",
"explanation": "Αυτός ο τίτλος εμφανίζεται πάνω από όλες τις καρτέλες σας στο Lovelace.", "explanation": "Αυτός ο τίτλος εμφανίζεται πάνω από όλες τις καρτέλες σας στο Lovelace.",
"header": "Τίτλος του περιβάλλοντος εργασίας σας Lovelace", "header": "Τίτλος του περιβάλλοντος εργασίας σας Lovelace"
"title": "Τίτλος"
}, },
"edit_view": { "edit_view": {
"add": "Προσθήκη προβολής", "add": "Προσθήκη προβολής",
@@ -2137,7 +2084,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Ο υπολογιστής σας δεν είναι αποδεκτός.",
"not_whitelisted": "Ο υπολογιστής σας δεν είναι στη λίστα επιτρεπόμενων." "not_whitelisted": "Ο υπολογιστής σας δεν είναι στη λίστα επιτρεπόμενων."
}, },
"step": { "step": {
@@ -2310,9 +2256,6 @@
"not_used": "Δεν έχει χρησιμοποιηθεί ποτέ", "not_used": "Δεν έχει χρησιμοποιηθεί ποτέ",
"token_title": "Ανανέωση διακριτικού για το {clientId}" "token_title": "Ανανέωση διακριτικού για το {clientId}"
}, },
"suspend": {
"header": "Αυτόματο κλείσιμο σύνδεσης"
},
"themes": { "themes": {
"dropdown_label": "Θέμα", "dropdown_label": "Θέμα",
"error_no_theme": "Δεν υπάρχουν διαθέσιμα θέματα.", "error_no_theme": "Δεν υπάρχουν διαθέσιμα θέματα.",

View File

@@ -528,7 +528,6 @@
"show_areas": "Show areas" "show_areas": "Show areas"
}, },
"data-table": { "data-table": {
"no-data": "No data",
"search": "Search" "search": "Search"
}, },
"date-range-picker": { "date-range-picker": {
@@ -1816,7 +1815,7 @@
"discovered_text": "Devices will show up here once discovered.", "discovered_text": "Devices will show up here once discovered.",
"discovery_text": "Discovered devices will show up here. Follow the instructions for your device(s) and place the device(s) in pairing mode.", "discovery_text": "Discovered devices will show up here. Follow the instructions for your device(s) and place the device(s) in pairing mode.",
"header": "Zigbee Home Automation - Add Devices", "header": "Zigbee Home Automation - Add Devices",
"no_devices_found": "No devices were found, make sure they are in paring mode and keep them awake while discovering is running.", "no_devices_found": "No devices where found, make sure they are in paring mode and keep them awake while discovering is running.",
"pairing_mode": "Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.", "pairing_mode": "Make sure your devices are in pairing mode. Check the instructions of your device on how to do this.",
"search_again": "Search Again", "search_again": "Search Again",
"spinner": "Searching for ZHA Zigbee devices..." "spinner": "Searching for ZHA Zigbee devices..."
@@ -2340,7 +2339,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Add Card", "add": "Add Card",
"confirm_cancel": "Are you sure you want to cancel?",
"delete": "Delete Card", "delete": "Delete Card",
"duplicate": "Duplicate Card", "duplicate": "Duplicate Card",
"edit": "Edit", "edit": "Edit",
@@ -2351,9 +2349,7 @@
"pick_card_view_title": "Which card would you like to add to your {name} view?", "pick_card_view_title": "Which card would you like to add to your {name} view?",
"show_code_editor": "Show Code Editor", "show_code_editor": "Show Code Editor",
"show_visual_editor": "Show Visual Editor", "show_visual_editor": "Show Visual Editor",
"toggle_editor": "Toggle Editor", "toggle_editor": "Toggle Editor"
"typed_header": "{type} Card Configuration",
"unsaved_changes": "You have unsaved changes"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Edit title", "edit_title": "Edit title",
@@ -2446,8 +2442,6 @@
"entity": "Entity", "entity": "Entity",
"entity_id": "Entity ID", "entity_id": "Entity ID",
"last_changed": "Last Changed", "last_changed": "Last Changed",
"no_data": "No unused entities found",
"search": "Search entities",
"select_to_add": "Select the entities you want to add to a card and then click the add card button.", "select_to_add": "Select the entities you want to add to a card and then click the add card button.",
"title": "Unused entities" "title": "Unused entities"
}, },

View File

@@ -528,7 +528,6 @@
"show_areas": "Mostrar áreas" "show_areas": "Mostrar áreas"
}, },
"data-table": { "data-table": {
"no-data": "Sin datos",
"search": "Buscar" "search": "Buscar"
}, },
"date-range-picker": { "date-range-picker": {
@@ -952,10 +951,10 @@
"description": "El modo controla lo que sucede cuando se activa la automatización mientras las acciones aún se ejecutan desde una activación anterior. Consulta la {documentation_link} para obtener más información.", "description": "El modo controla lo que sucede cuando se activa la automatización mientras las acciones aún se ejecutan desde una activación anterior. Consulta la {documentation_link} para obtener más información.",
"documentation": "documentación de automatización", "documentation": "documentación de automatización",
"label": "Modo", "label": "Modo",
"parallel": "Paralelo", "parallel": "Paralelo (predeterminado)",
"queued": "En cola", "queued": "En cola",
"restart": "Reiniciar", "restart": "Reiniciar",
"single": "Único (predeterminado)" "single": "Único"
}, },
"move_down": "Mover hacia abajo", "move_down": "Mover hacia abajo",
"move_up": "Mover hacia arriba", "move_up": "Mover hacia arriba",
@@ -2340,7 +2339,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Añadir tarjeta", "add": "Añadir tarjeta",
"confirm_cancel": "¿Estás seguro de que quieres cancelar?",
"delete": "Eliminar tarjeta", "delete": "Eliminar tarjeta",
"duplicate": "Duplicar tarjeta", "duplicate": "Duplicar tarjeta",
"edit": "Editar", "edit": "Editar",
@@ -2351,9 +2349,7 @@
"pick_card_view_title": "¿Qué tarjeta te gustaría añadir a tu vista {name} ?", "pick_card_view_title": "¿Qué tarjeta te gustaría añadir a tu vista {name} ?",
"show_code_editor": "Mostrar editor de código", "show_code_editor": "Mostrar editor de código",
"show_visual_editor": "Mostrar editor visual", "show_visual_editor": "Mostrar editor visual",
"toggle_editor": "Alternar editor", "toggle_editor": "Alternar editor"
"typed_header": "{type} Configuración de tarjeta",
"unsaved_changes": "Tienes cambios sin guardar"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Editar título", "edit_title": "Editar título",
@@ -2446,8 +2442,6 @@
"entity": "Entidad", "entity": "Entidad",
"entity_id": "ID de entidad", "entity_id": "ID de entidad",
"last_changed": "Última modificación", "last_changed": "Última modificación",
"no_data": "No se han encontrado entidades sin utilizar",
"search": "Buscar entidades",
"select_to_add": "Selecciona las entidades que quieres añadir a una tarjeta y, a continuación, haz clic en el botón Añadir tarjeta.", "select_to_add": "Selecciona las entidades que quieres añadir a una tarjeta y, a continuación, haz clic en el botón Añadir tarjeta.",
"title": "Entidades no utilizadas" "title": "Entidades no utilizadas"
}, },

View File

@@ -324,9 +324,6 @@
"save": "Gorde" "save": "Gorde"
}, },
"components": { "components": {
"data-table": {
"no-data": "Daturik ez"
},
"relative_time": { "relative_time": {
"duration": { "duration": {
"day": "{count} {count, plural,\n one {egun}\n other {egun}\n}", "day": "{count} {count, plural,\n one {egun}\n other {egun}\n}",
@@ -747,7 +744,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Zure ordenagailua ez dago baimenduta.",
"not_whitelisted": "Zure ordenagailua ez dago baimenduta." "not_whitelisted": "Zure ordenagailua ez dago baimenduta."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "Aktivoi" "activate": "Aktivoi"
}, },
"script": { "script": {
"cancel": "Peruuta",
"cancel_multiple": "Peruuta {number}",
"execute": "Suorita" "execute": "Suorita"
}, },
"service": { "service": {
@@ -527,10 +525,6 @@
"clear": "Tyhjennä", "clear": "Tyhjennä",
"show_areas": "Näytä alueet" "show_areas": "Näytä alueet"
}, },
"data-table": {
"no-data": "Ei dataa",
"search": "Hae"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Päättymispäivä", "end_date": "Päättymispäivä",
"select": "Valitse", "select": "Valitse",
@@ -944,19 +938,6 @@
"introduction": "Käytä automaatioita herättääksesi kotisi eloon", "introduction": "Käytä automaatioita herättääksesi kotisi eloon",
"load_error_not_editable": "Vain automaatiot tiedostossa automations.yaml ovat muokattavissa.", "load_error_not_editable": "Vain automaatiot tiedostossa automations.yaml ovat muokattavissa.",
"load_error_unknown": "Virhe ladatessa automaatiota ( {err_no} )", "load_error_unknown": "Virhe ladatessa automaatiota ( {err_no} )",
"max": {
"parallel": "Rinnakkaisten ajojen enimmäismäärä",
"queued": "Jonon pituus"
},
"modes": {
"description": "Tila määrittää, mitä tapahtuu, kun automaatio käynnistyy, kun toiminnot ovat edelleen käynnissä edellisestä käynnistyksestä. Lisätietoja osoitteessa {documentation_link}.",
"documentation": "automaation dokumentaatio",
"label": "Tila",
"parallel": "Rinnakkain",
"queued": "Jonossa",
"restart": "Käynnistä uudelleen",
"single": "Yksittäinen (oletus)"
},
"move_down": "Siirrä alaspäin", "move_down": "Siirrä alaspäin",
"move_up": "Siirrä ylöspäin", "move_up": "Siirrä ylöspäin",
"save": "Tallenna", "save": "Tallenna",
@@ -1375,7 +1356,6 @@
"confirm_text": "Sinun tulisi poistaa ne Lovelace-käyttöliittymästä ja automaatioista, jos ne sisältävät näitä kohteita.", "confirm_text": "Sinun tulisi poistaa ne Lovelace-käyttöliittymästä ja automaatioista, jos ne sisältävät näitä kohteita.",
"confirm_title": "Haluatko poistaa {number} kohdetta?" "confirm_title": "Haluatko poistaa {number} kohdetta?"
}, },
"search": "Hae kohteita",
"selected": "{number} valittuna", "selected": "{number} valittuna",
"status": { "status": {
"disabled": "Poistettu käytöstä", "disabled": "Poistettu käytöstä",
@@ -1406,8 +1386,7 @@
"entity_id": "Kohde ID", "entity_id": "Kohde ID",
"name": "Nimi", "name": "Nimi",
"type": "Tyyppi" "type": "Tyyppi"
}, }
"no_helpers": "Näyttää siltä, että sinulla ei ole vielä avustajia!"
}, },
"types": { "types": {
"input_boolean": "Kytkin", "input_boolean": "Kytkin",
@@ -1452,7 +1431,6 @@
"delete_confirm": "Haluatko varmasti poistaa tämän integraation?", "delete_confirm": "Haluatko varmasti poistaa tämän integraation?",
"device_unavailable": "laite ei saatavissa", "device_unavailable": "laite ei saatavissa",
"devices": "{count} {count, plural,\n one {laite}\n other {laitteet}\n}", "devices": "{count} {count, plural,\n one {laite}\n other {laitteet}\n}",
"documentation": "Dokumentointi",
"entities": "{count} {count, plural,\n one {kohde}\n other {kohteet}\n}", "entities": "{count} {count, plural,\n one {kohde}\n other {kohteet}\n}",
"entity_unavailable": "kohde ei saatavilla", "entity_unavailable": "kohde ei saatavilla",
"firmware": "Laiteohjelmisto: {version}", "firmware": "Laiteohjelmisto: {version}",
@@ -1511,8 +1489,7 @@
"note_about_integrations": "Kaikkia integraatioita ei voi vielä määrittää käyttöliittymän kautta.", "note_about_integrations": "Kaikkia integraatioita ei voi vielä määrittää käyttöliittymän kautta.",
"note_about_website_reference": "Lisää saatavilla", "note_about_website_reference": "Lisää saatavilla",
"rename_dialog": "Muokkaa tämän määritysmerkinnän nimeä", "rename_dialog": "Muokkaa tämän määritysmerkinnän nimeä",
"rename_input_label": "Merkinnän nimi", "rename_input_label": "Merkinnän nimi"
"search": "Etsi integraatioita"
}, },
"introduction": "Täällä voit säätää Home Assistanttia ja sen komponentteja. Huomioithan, ettei kaikkea voi vielä säätää käyttöliittymän kautta, mutta teemme jatkuvasti töitä sen mahdollistamiseksi.", "introduction": "Täällä voit säätää Home Assistanttia ja sen komponentteja. Huomioithan, ettei kaikkea voi vielä säätää käyttöliittymän kautta, mutta teemme jatkuvasti töitä sen mahdollistamiseksi.",
"logs": { "logs": {
@@ -1665,7 +1642,6 @@
"introduction": "Kohteet, jotka eivät kuulu laitteisiin, voidaan asettaa täällä.", "introduction": "Kohteet, jotka eivät kuulu laitteisiin, voidaan asettaa täällä.",
"without_device": "Kohteet ilman laitetta" "without_device": "Kohteet ilman laitetta"
}, },
"icon": "Kuvake",
"introduction": "Käytä tilanteita herättääksesi kotisi eloon.", "introduction": "Käytä tilanteita herättääksesi kotisi eloon.",
"load_error_not_editable": "Vain tilanteet tiedostossa scenes.yaml ovat muokattavissa.", "load_error_not_editable": "Vain tilanteet tiedostossa scenes.yaml ovat muokattavissa.",
"load_error_unknown": "Virhe ladattaessa tilannetta ({err_no}).", "load_error_unknown": "Virhe ladattaessa tilannetta ({err_no}).",
@@ -1699,25 +1675,9 @@
"delete_confirm": "Haluatko varmasti poistaa tämän skriptin?", "delete_confirm": "Haluatko varmasti poistaa tämän skriptin?",
"delete_script": "Poista skripti", "delete_script": "Poista skripti",
"header": "Skripti: {name}", "header": "Skripti: {name}",
"icon": "Kuvake",
"id": "Kohde ID",
"id_already_exists": "Tämä tunnus on jo olemassa",
"id_already_exists_save_error": "Et voi tallentaa tätä skriptiä, koska tunnus ei ole yksilöivä. Valitse toinen tunnus tai jätä se tyhjäksi, jolloin se luodaan automaattisesti.",
"introduction": "Käytä scriptejä suorittaaksesi toimintasarjan.", "introduction": "Käytä scriptejä suorittaaksesi toimintasarjan.",
"link_available_actions": "Lisätietoja saatavilla olevista toiminnoista", "link_available_actions": "Lisätietoja saatavilla olevista toiminnoista",
"load_error_not_editable": "Vain scripts.yaml-tiedostossa olevat skriptit ovat muokattavissa.", "load_error_not_editable": "Vain scripts.yaml-tiedostossa olevat skriptit ovat muokattavissa.",
"max": {
"parallel": "Rinnakkaisten ajojen enimmäismäärä",
"queued": "Jonon pituus"
},
"modes": {
"documentation": "skriptin dokumentaatio",
"label": "Tila",
"parallel": "Rinnakkain",
"queued": "Jonossa",
"restart": "Käynnistä uudelleen",
"single": "Yksittäinen (oletus)"
},
"sequence": "Järjestys", "sequence": "Järjestys",
"sequence_sentence": "Skriptin toimintojen järjestys." "sequence_sentence": "Skriptin toimintojen järjestys."
}, },
@@ -2233,7 +2193,6 @@
"name": "Nimi", "name": "Nimi",
"no_theme": "Ei teemaa", "no_theme": "Ei teemaa",
"refresh_interval": "Päivitysväli", "refresh_interval": "Päivitysväli",
"search": "Hae",
"secondary_info_attribute": "Toissijainen info-attribuutti", "secondary_info_attribute": "Toissijainen info-attribuutti",
"show_icon": "Näytä kuvake?", "show_icon": "Näytä kuvake?",
"show_name": "Näytä nimi?", "show_name": "Näytä nimi?",
@@ -2339,7 +2298,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Lisää kortti", "add": "Lisää kortti",
"confirm_cancel": "Haluatko varmasti peruuttaa?",
"delete": "Poista kortti", "delete": "Poista kortti",
"duplicate": "Kopioi kortti", "duplicate": "Kopioi kortti",
"edit": "Muokkaa", "edit": "Muokkaa",
@@ -2350,15 +2308,12 @@
"pick_card_view_title": "Minkä kortin haluat lisätä {name} -näkymääsi?", "pick_card_view_title": "Minkä kortin haluat lisätä {name} -näkymääsi?",
"show_code_editor": "Näytä koodieditori", "show_code_editor": "Näytä koodieditori",
"show_visual_editor": "Näytä visuaalinen editori", "show_visual_editor": "Näytä visuaalinen editori",
"toggle_editor": "Vaihda editori", "toggle_editor": "Vaihda editori"
"typed_header": "{type}-kortin kokoonpano",
"unsaved_changes": "Sinulla on tallentamattomia muutoksia"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Muokkaa otsikkoa", "edit_title": "Muokkaa otsikkoa",
"explanation": "Tämä otsikko on esillä näkymien yläpuolella Lovelace-käyttöliittymässä.", "explanation": "Tämä otsikko on esillä näkymien yläpuolella Lovelace-käyttöliittymässä.",
"header": "Lovelace-käyttöliittymän otsikko", "header": "Lovelace-käyttöliittymän otsikko"
"title": "Otsikko"
}, },
"edit_view": { "edit_view": {
"add": "Lisää näkymä", "add": "Lisää näkymä",
@@ -2445,8 +2400,6 @@
"entity": "Kohde", "entity": "Kohde",
"entity_id": "Kohde ID", "entity_id": "Kohde ID",
"last_changed": "Viimeksi muutettu", "last_changed": "Viimeksi muutettu",
"no_data": "Käyttämättömiä kohteita ei löytynyt",
"search": "Hae kohteita",
"select_to_add": "Valitse kohteet, jotka haluat lisätä korttiin, ja napsauta sitten Lisää kortti -painiketta.", "select_to_add": "Valitse kohteet, jotka haluat lisätä korttiin, ja napsauta sitten Lisää kortti -painiketta.",
"title": "Käyttämättömät entiteetit" "title": "Käyttämättömät entiteetit"
}, },
@@ -2549,7 +2502,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Tietokone ei ole sallittu.",
"not_whitelisted": "Tietokonettasi ei ole sallittu." "not_whitelisted": "Tietokonettasi ei ole sallittu."
}, },
"step": { "step": {
@@ -2725,10 +2677,6 @@
"not_used": "Ei ole koskaan käytetty", "not_used": "Ei ole koskaan käytetty",
"token_title": "Päivitä tunnus kohteelle {clientId}" "token_title": "Päivitä tunnus kohteelle {clientId}"
}, },
"suspend": {
"description": "Suljetaanko yhteys palvelimeen 5 minuuttia piilottamisen jälkeen?",
"header": "Sulje yhteys automaattisesti"
},
"themes": { "themes": {
"dropdown_label": "Teema", "dropdown_label": "Teema",
"error_no_theme": "Ei teemoja käytettävissä.", "error_no_theme": "Ei teemoja käytettävissä.",

View File

@@ -528,7 +528,6 @@
"show_areas": "Afficher les pièces" "show_areas": "Afficher les pièces"
}, },
"data-table": { "data-table": {
"no-data": "Pas de données",
"search": "Chercher" "search": "Chercher"
}, },
"date-range-picker": { "date-range-picker": {
@@ -941,7 +940,7 @@
"edit_ui": "Modifier avec l'interface utilisateur", "edit_ui": "Modifier avec l'interface utilisateur",
"edit_yaml": "Modifier en tant que YAML", "edit_yaml": "Modifier en tant que YAML",
"enable_disable": "Activer/Désactiver l'automatisation", "enable_disable": "Activer/Désactiver l'automatisation",
"introduction": "Utiliser les automatisations pour donner vie à votre maison.", "introduction": "Utilisez les automatisations pour donner vie à votre maison",
"load_error_not_editable": "Seules les automatisations dans automations.yaml sont modifiables.", "load_error_not_editable": "Seules les automatisations dans automations.yaml sont modifiables.",
"load_error_unknown": "Erreur lors du chargement de l'automatisation ( {err_no} ).", "load_error_unknown": "Erreur lors du chargement de l'automatisation ( {err_no} ).",
"max": { "max": {
@@ -952,10 +951,9 @@
"description": "Le mode contrôle ce qui se passe lorsque lautomatisation est déclenchée alors que les actions sont toujours en cours dexécution à partir dun déclencheur précédent. Consultez le {documentation_link} pour plus dinformations.", "description": "Le mode contrôle ce qui se passe lorsque lautomatisation est déclenchée alors que les actions sont toujours en cours dexécution à partir dun déclencheur précédent. Consultez le {documentation_link} pour plus dinformations.",
"documentation": "documentation d'automatisation", "documentation": "documentation d'automatisation",
"label": "Mode", "label": "Mode",
"parallel": "Parallèle", "parallel": "Parallèle (par défaut)",
"queued": "En attente", "queued": "En attente",
"restart": "Redémarrer", "restart": "Redémarrer"
"single": "Unique (par défaut)"
}, },
"move_down": "Déplacer vers le bas", "move_down": "Déplacer vers le bas",
"move_up": "Déplacer vers le haut", "move_up": "Déplacer vers le haut",
@@ -2340,7 +2338,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Ajouter une action", "add": "Ajouter une action",
"confirm_cancel": "Êtes-vous sûrs de vouloir annuler ?",
"delete": "Supprimer", "delete": "Supprimer",
"duplicate": "Dupliquer la carte", "duplicate": "Dupliquer la carte",
"edit": "Modifier", "edit": "Modifier",
@@ -2351,9 +2348,7 @@
"pick_card_view_title": "Quelle carte souhaitez-vous ajouter à votre vue {name} ?", "pick_card_view_title": "Quelle carte souhaitez-vous ajouter à votre vue {name} ?",
"show_code_editor": "Afficher l'éditeur de code", "show_code_editor": "Afficher l'éditeur de code",
"show_visual_editor": "Afficher l'éditeur visuel", "show_visual_editor": "Afficher l'éditeur visuel",
"toggle_editor": "Permuter léditeur", "toggle_editor": "Permuter léditeur"
"typed_header": "{type} Configuration de la carte",
"unsaved_changes": "Vous avez des changements non enregistrés"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Éditer le titre", "edit_title": "Éditer le titre",
@@ -2446,8 +2441,6 @@
"entity": "Entité", "entity": "Entité",
"entity_id": "ID de l'entité", "entity_id": "ID de l'entité",
"last_changed": "Dernière modification", "last_changed": "Dernière modification",
"no_data": "Aucune entité inutilisée trouvée",
"search": "Rechercher des entités",
"select_to_add": "Sélectionner les entités que vous souhaitez ajouter à une carte, puis cliquez sur le bouton Ajouter une carte.", "select_to_add": "Sélectionner les entités que vous souhaitez ajouter à une carte, puis cliquez sur le bouton Ajouter une carte.",
"title": "Entités inutilisées" "title": "Entités inutilisées"
}, },

View File

@@ -430,8 +430,6 @@
"activate": "הפעל" "activate": "הפעל"
}, },
"script": { "script": {
"cancel": "בטל",
"cancel_multiple": "בטל {number}",
"execute": "הפעל" "execute": "הפעל"
}, },
"service": { "service": {
@@ -528,7 +526,6 @@
"show_areas": "הצג אזורים" "show_areas": "הצג אזורים"
}, },
"data-table": { "data-table": {
"no-data": "אין נתונים",
"search": "חיפוש" "search": "חיפוש"
}, },
"date-range-picker": { "date-range-picker": {
@@ -944,19 +941,6 @@
"introduction": "השתמש/י באוטומציות להפיח חיים בביתך.", "introduction": "השתמש/י באוטומציות להפיח חיים בביתך.",
"load_error_not_editable": "רק אוטומציה ב automations.yaml ניתנים לעריכה.", "load_error_not_editable": "רק אוטומציה ב automations.yaml ניתנים לעריכה.",
"load_error_unknown": "שגיאה בטעינת האוטומציה ( {err_no} ).", "load_error_unknown": "שגיאה בטעינת האוטומציה ( {err_no} ).",
"max": {
"parallel": "המספר המרבי של ריצות מקבילות",
"queued": "אורך התור"
},
"modes": {
"description": "המצב שולט במתרחש כאשר האוטומציה מופעלת בזמן שהפעולות עדיין פועלות מהטריגר הקודם. עיין ב {documentation_link} למידע נוסף.",
"documentation": "תיעוד אוטומציה",
"label": "מצב",
"parallel": "במקביל",
"queued": "בתור",
"restart": "אתחול",
"single": "יחיד (ברירת מחדל)"
},
"move_down": "הזז למטה", "move_down": "הזז למטה",
"move_up": "הזז למעלה", "move_up": "הזז למעלה",
"save": "שמור", "save": "שמור",
@@ -1598,7 +1582,7 @@
"refresh_body": "אתה צריך לרענן את הדף כדי להשלים את ההסרה, האם אתה רוצה לרענן עכשיו?", "refresh_body": "אתה צריך לרענן את הדף כדי להשלים את ההסרה, האם אתה רוצה לרענן עכשיו?",
"refresh_header": "האם אתה רוצה לרענן?", "refresh_header": "האם אתה רוצה לרענן?",
"types": { "types": {
"css": "Stylesheet", "css": "סגנון עיצוב",
"html": "HTML (הוצא משימוש)", "html": "HTML (הוצא משימוש)",
"js": "קובץ JavaScript (הוצא משימוש)", "js": "קובץ JavaScript (הוצא משימוש)",
"module": "JavaScript Module" "module": "JavaScript Module"
@@ -1665,7 +1649,6 @@
"introduction": "ניתן להגדיר כאן ישויות שאינן שייכות להתקנים.", "introduction": "ניתן להגדיר כאן ישויות שאינן שייכות להתקנים.",
"without_device": "ישויות ללא מכשיר" "without_device": "ישויות ללא מכשיר"
}, },
"icon": "סמל",
"introduction": "השתמש בסצינות כדי להחיות את הבית שלך.", "introduction": "השתמש בסצינות כדי להחיות את הבית שלך.",
"load_error_not_editable": "רק סצינות ב scenes.yaml ניתנות לעריכה.", "load_error_not_editable": "רק סצינות ב scenes.yaml ניתנות לעריכה.",
"load_error_unknown": "שגיאה בטעינת סצנה ({err_no}).", "load_error_unknown": "שגיאה בטעינת סצנה ({err_no}).",
@@ -1699,26 +1682,9 @@
"delete_confirm": "האם אתה בטוח שברצונך למחוק את הסקריפט הזה?", "delete_confirm": "האם אתה בטוח שברצונך למחוק את הסקריפט הזה?",
"delete_script": "מחק סקריפט", "delete_script": "מחק סקריפט",
"header": "סקריפט: {name}", "header": "סקריפט: {name}",
"icon": "סמל",
"id": "מזהה ישות",
"id_already_exists": "מזהה זה כבר קיים",
"id_already_exists_save_error": "אינך יכול לשמור סקריפט זה מכיוון שהמזהה אינו ייחודי, בחר מזהה אחר או השאר אותו ריק כדי ליצור אוטומטית.",
"introduction": "השתמש בסקריפטים כדי לבצע רצף של פעולות.", "introduction": "השתמש בסקריפטים כדי לבצע רצף של פעולות.",
"link_available_actions": "למד עוד אודות פעולות זמינות.", "link_available_actions": "למד עוד אודות פעולות זמינות.",
"load_error_not_editable": "רק סקריפטים בתוך קובץ scripts.yaml ניתנים לעריכה.", "load_error_not_editable": "רק סקריפטים בתוך קובץ scripts.yaml ניתנים לעריכה.",
"max": {
"parallel": "המספר המרבי של ריצות מקבילות",
"queued": "אורך התור"
},
"modes": {
"description": "המצב שולט במה שקורה כאשר מופעל סקריפט בזמן שהוא עדיין פועל מהפעלה קודמת אחת או יותר. עיין ב {documentation_link} למידע נוסף.",
"documentation": "תיעוד סקריפט",
"label": "מצב",
"parallel": "מַקְבִּיל",
"queued": "בתור",
"restart": "אתחול",
"single": "יחיד (ברירת מחדל)"
},
"sequence": "סדר פעולות", "sequence": "סדר פעולות",
"sequence_sentence": "רצף הפעולות של סקריפט זה." "sequence_sentence": "רצף הפעולות של סקריפט זה."
}, },
@@ -2091,12 +2057,12 @@
"title": "מצבים" "title": "מצבים"
}, },
"templates": { "templates": {
"description": "Templates are rendered using the Jinja2 template engine with some Home Assistant specific extensions.", "description": "התבניות מוצגות באמצעות מנוע התבניות Jinja2 עם כמה תוספים ספציפיים של Home Assistant.",
"editor": "Template editor", "editor": "עורך התבניות",
"jinja_documentation": "Jinja2 template documentation", "jinja_documentation": "תיעוד תבנית Jinja2",
"template_extensions": "Home Assistant template extensions", "template_extensions": "הרחבות תבנית של Home Assistant",
"title": "תבניות", "title": "תבניות",
"unknown_error_template": "Unknown error rendering template" "unknown_error_template": "שגיאה לא ידועה בעיבוד התבנית"
} }
} }
}, },
@@ -2340,7 +2306,6 @@
}, },
"edit_card": { "edit_card": {
"add": "הוסף כרטיסייה", "add": "הוסף כרטיסייה",
"confirm_cancel": "האם אתה בטוח שברצונך לבטל?",
"delete": "מחק", "delete": "מחק",
"duplicate": "שכפול כרטיס", "duplicate": "שכפול כרטיס",
"edit": "ערוך", "edit": "ערוך",
@@ -2351,9 +2316,7 @@
"pick_card_view_title": "איזה כרטיס ברצונך להוסיף לתצוגת {name}?", "pick_card_view_title": "איזה כרטיס ברצונך להוסיף לתצוגת {name}?",
"show_code_editor": "הצג עורך קוד", "show_code_editor": "הצג עורך קוד",
"show_visual_editor": "הצג עורך ויזואלי", "show_visual_editor": "הצג עורך ויזואלי",
"toggle_editor": "החלף מצב עורך", "toggle_editor": "החלף מצב עורך"
"typed_header": "תצורת כרטיס {type}",
"unsaved_changes": "יש לך שינויים שלא נשמרו"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "ערוך כותרת", "edit_title": "ערוך כותרת",
@@ -2446,8 +2409,6 @@
"entity": "ישות", "entity": "ישות",
"entity_id": "מזהה ישות", "entity_id": "מזהה ישות",
"last_changed": "שונה לאחרונה", "last_changed": "שונה לאחרונה",
"no_data": "לא נמצאו ישויות שאינן בשימוש",
"search": "חיפוש ישויות",
"select_to_add": "בחר את הישויות שברצונך להוסיף לכרטיס ולחץ על כפתור הוסף כרטיס.", "select_to_add": "בחר את הישויות שברצונך להוסיף לכרטיס ולחץ על כפתור הוסף כרטיס.",
"title": "ישויות שאינן בשימוש" "title": "ישויות שאינן בשימוש"
}, },
@@ -2550,7 +2511,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "המחשב שלך אינו מורשה.",
"not_whitelisted": "המחשב שלך אינו רשום ברשימת ההיתרים." "not_whitelisted": "המחשב שלך אינו רשום ברשימת ההיתרים."
}, },
"step": { "step": {

View File

@@ -48,19 +48,6 @@
"none": "Nincs", "none": "Nincs",
"sleep": "Alvás" "sleep": "Alvás"
} }
},
"humidifier": {
"mode": {
"auto": "Automatikus",
"away": "Távol",
"baby": "Baba",
"boost": "Turbo",
"comfort": "Komfort",
"eco": "Takarékos",
"home": "Otthon",
"normal": "Normál",
"sleep": "Alvás"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -401,12 +388,6 @@
"reverse": "Fordított", "reverse": "Fordított",
"speed": "Sebesség" "speed": "Sebesség"
}, },
"humidifier": {
"humidity": "Kívánt páratartalom",
"mode": "Mód",
"on_entity": "{name} be",
"target_humidity_entity": "{name} kívánt páratartalom"
},
"light": { "light": {
"brightness": "Fényerő", "brightness": "Fényerő",
"color_temperature": "Színhőmérséklet", "color_temperature": "Színhőmérséklet",
@@ -430,8 +411,6 @@
"activate": "Aktiválás" "activate": "Aktiválás"
}, },
"script": { "script": {
"cancel": "Mégse",
"cancel_multiple": "Mégse {number}",
"execute": "Futtatás" "execute": "Futtatás"
}, },
"service": { "service": {
@@ -527,15 +506,6 @@
"clear": "Törlés", "clear": "Törlés",
"show_areas": "Területek megjelenítése" "show_areas": "Területek megjelenítése"
}, },
"data-table": {
"no-data": "Nincs adat",
"search": "Keresés"
},
"date-range-picker": {
"end_date": "Befejezés dátuma",
"select": "Kiválasztás",
"start_date": "Kezdés dátuma"
},
"device-picker": { "device-picker": {
"clear": "Törlés", "clear": "Törlés",
"device": "Eszköz", "device": "Eszköz",
@@ -724,11 +694,10 @@
}, },
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "Eszközök hozzáadása ezen az eszközön keresztül", "add": "Eszközök hozzáadása",
"clusters": "Klaszterek Kezelése",
"reconfigure": "Eszköz újrakonfigurálása", "reconfigure": "Eszköz újrakonfigurálása",
"remove": "Eszköz eltávolítása", "remove": "Eszköz eltávolítása",
"zigbee_information": "Zigbee eszköz aláírása" "zigbee_information": "Zigbee Információk"
}, },
"confirmations": { "confirmations": {
"remove": "Biztosan el akarod távolítani az eszközt?" "remove": "Biztosan el akarod távolítani az eszközt?"
@@ -748,7 +717,7 @@
"unknown": "Ismeretlen", "unknown": "Ismeretlen",
"zha_device_card": { "zha_device_card": {
"area_picker_label": "Terület", "area_picker_label": "Terület",
"device_name_placeholder": "Eszköznév módosítása", "device_name_placeholder": "Felhasználó által megadott név",
"update_name_button": "Név frissítése" "update_name_button": "Név frissítése"
} }
} }
@@ -944,18 +913,6 @@
"introduction": "Használj automatizálásokat otthonod életre keltéséhez", "introduction": "Használj automatizálásokat otthonod életre keltéséhez",
"load_error_not_editable": "Csak az automations.yaml fájlban megadott automatizálások szerkeszthetők.", "load_error_not_editable": "Csak az automations.yaml fájlban megadott automatizálások szerkeszthetők.",
"load_error_unknown": "Hiba az automatizálás betöltésekor ({err_no}).", "load_error_unknown": "Hiba az automatizálás betöltésekor ({err_no}).",
"max": {
"parallel": "A párhuzamos futtatások maximális száma",
"queued": "Várólista hossza"
},
"modes": {
"documentation": "automatizálási dokumentáció",
"label": "Mód",
"parallel": "Párhuzamos",
"queued": "Várólistás",
"restart": "Újraindítás",
"single": "Egyszeri (alapértelmezett)"
},
"move_down": "Le", "move_down": "Le",
"move_up": "Fel", "move_up": "Fel",
"save": "Mentés", "save": "Mentés",
@@ -1374,7 +1331,6 @@
"confirm_text": "El kell távolítanod őket a Lovelace konfigurációból és az automatizálásokból, ha tartalmazzák ezeket az entitásokat.", "confirm_text": "El kell távolítanod őket a Lovelace konfigurációból és az automatizálásokból, ha tartalmazzák ezeket az entitásokat.",
"confirm_title": "El szeretnél távolítani {number} entitást?" "confirm_title": "El szeretnél távolítani {number} entitást?"
}, },
"search": "Entitások keresése",
"selected": "{number} kiválasztva", "selected": "{number} kiválasztva",
"status": { "status": {
"disabled": "Letiltott", "disabled": "Letiltott",
@@ -1405,8 +1361,7 @@
"entity_id": "Entitás ID", "entity_id": "Entitás ID",
"name": "Név", "name": "Név",
"type": "Típus" "type": "Típus"
}, }
"no_helpers": "Úgy tűnik, még nincs egy segítőd sem!"
}, },
"types": { "types": {
"input_boolean": "Váltás", "input_boolean": "Váltás",
@@ -1418,9 +1373,7 @@
}, },
"info": { "info": {
"built_using": "Buildelve:", "built_using": "Buildelve:",
"caption": "Infó",
"custom_uis": "Egyéni felhasználói felületek:", "custom_uis": "Egyéni felhasználói felületek:",
"description": "Információ a Home Assistant telepítésedről",
"developed_by": "Egy csomó fantasztikus ember által kifejlesztve.", "developed_by": "Egy csomó fantasztikus ember által kifejlesztve.",
"documentation": "Dokumentáció", "documentation": "Dokumentáció",
"frontend": "frontend-ui", "frontend": "frontend-ui",
@@ -1436,9 +1389,6 @@
"system_health_error": "A rendszerállapot összetevő nincs betöltve. Add hozzá a 'system_health:' sort a configuration.yaml fájlhoz.", "system_health_error": "A rendszerállapot összetevő nincs betöltve. Add hozzá a 'system_health:' sort a configuration.yaml fájlhoz.",
"title": "Infó" "title": "Infó"
}, },
"integration_panel_move": {
"link_integration_page": "integrációk oldal"
},
"integrations": { "integrations": {
"add_integration": "Integráció hozzáadása", "add_integration": "Integráció hozzáadása",
"caption": "Integrációk", "caption": "Integrációk",
@@ -1449,7 +1399,6 @@
"delete_confirm": "Biztosan törölni szeretnéd ezt az integrációt?", "delete_confirm": "Biztosan törölni szeretnéd ezt az integrációt?",
"device_unavailable": "eszköz nem érhető el", "device_unavailable": "eszköz nem érhető el",
"devices": "{count} {count, plural,\n one {eszköz}\n other {eszköz}\n}", "devices": "{count} {count, plural,\n one {eszköz}\n other {eszköz}\n}",
"documentation": "Dokumentáció",
"entities": "{count} {count, plural,\n one {entitás}\n other {entitás}\n}", "entities": "{count} {count, plural,\n one {entitás}\n other {entitás}\n}",
"entity_unavailable": "entitás nem érhető el", "entity_unavailable": "entitás nem érhető el",
"firmware": "Firmware: {version}", "firmware": "Firmware: {version}",
@@ -1508,14 +1457,11 @@
"note_about_integrations": "Még nem minden integráció konfigurálható a felhasználói felületen keresztül.", "note_about_integrations": "Még nem minden integráció konfigurálható a felhasználói felületen keresztül.",
"note_about_website_reference": "Továbbiak érhetőek el itt: ", "note_about_website_reference": "Továbbiak érhetőek el itt: ",
"rename_dialog": "A konfigurációs bejegyzés nevének szerkesztése", "rename_dialog": "A konfigurációs bejegyzés nevének szerkesztése",
"rename_input_label": "Bejegyzés neve", "rename_input_label": "Bejegyzés neve"
"search": "Integrációk keresése"
}, },
"introduction": "Itt a komponenseket és a Home Assistant szervert lehet beállítani. Még nem lehet mindent a felületről, de dolgozunk rajta.", "introduction": "Itt a komponenseket és a Home Assistant szervert lehet beállítani. Még nem lehet mindent a felületről, de dolgozunk rajta.",
"logs": { "logs": {
"caption": "Napló",
"clear": "Törlés", "clear": "Törlés",
"description": "A Home Assistant naplófájlok megtekintése",
"details": "Naplózás részletessége ({level})", "details": "Naplózás részletessége ({level})",
"load_full_log": "Teljes Home Assistant napló betöltése", "load_full_log": "Teljes Home Assistant napló betöltése",
"loading_log": "Hibanapló betöltése...", "loading_log": "Hibanapló betöltése...",
@@ -1603,7 +1549,6 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Beállítás",
"description_listen": "Téma figyelése", "description_listen": "Téma figyelése",
"description_publish": "Csomag közzététele", "description_publish": "Csomag közzététele",
"listening_to": "Figyelés:", "listening_to": "Figyelés:",
@@ -1662,7 +1607,6 @@
"introduction": "Az eszköz nélküli entitások itt állíthatók be.", "introduction": "Az eszköz nélküli entitások itt állíthatók be.",
"without_device": "Eszköz nélküli entitások" "without_device": "Eszköz nélküli entitások"
}, },
"icon": "Ikon",
"introduction": "Használj jeleneteket otthonod életre keltéséhez.", "introduction": "Használj jeleneteket otthonod életre keltéséhez.",
"load_error_not_editable": "Csak a scenes.yaml fájlban megadott jelenetek szerkeszthetők.", "load_error_not_editable": "Csak a scenes.yaml fájlban megadott jelenetek szerkeszthetők.",
"load_error_unknown": "Hiba a jelenet betöltésekor ({err_no}).", "load_error_unknown": "Hiba a jelenet betöltésekor ({err_no}).",
@@ -1696,24 +1640,9 @@
"delete_confirm": "Biztosan törölni szeretnéd ezt a szkriptet?", "delete_confirm": "Biztosan törölni szeretnéd ezt a szkriptet?",
"delete_script": "Szkript törlése", "delete_script": "Szkript törlése",
"header": "Szkript: {name}", "header": "Szkript: {name}",
"icon": "Ikon",
"id": "Entitás ID",
"id_already_exists": "Ez az ID már létezik",
"introduction": "Használj szkripteket műveletsorozatok végrehajtásához.", "introduction": "Használj szkripteket műveletsorozatok végrehajtásához.",
"link_available_actions": "Tudj meg többet az elérhető műveletekről.", "link_available_actions": "Tudj meg többet az elérhető műveletekről.",
"load_error_not_editable": "Csak a scripts.yaml fájlban megadott szkriptek szerkeszthetők.", "load_error_not_editable": "Csak a scripts.yaml fájlban megadott szkriptek szerkeszthetők.",
"max": {
"parallel": "A párhuzamos futtatások maximális száma",
"queued": "Várólista hossza"
},
"modes": {
"documentation": "szkript dokumentáció",
"label": "Mód",
"parallel": "Párhuzamos",
"queued": "Várólistás",
"restart": "Újraindítás",
"single": "Egyszeri (alapértelmezett)"
},
"sequence": "Sorrend", "sequence": "Sorrend",
"sequence_sentence": "A szkript műveleti sorrendje." "sequence_sentence": "A szkript műveleti sorrendje."
}, },
@@ -1740,11 +1669,6 @@
"core": "Lokáció és testreszabások újratöltése", "core": "Lokáció és testreszabások újratöltése",
"group": "Csoportok újratöltése", "group": "Csoportok újratöltése",
"heading": "YAML konfiguráció újratöltése", "heading": "YAML konfiguráció újratöltése",
"input_boolean": "Bemeneti logikai változók újratöltése",
"input_datetime": "Időpont bemenetek újratöltése",
"input_number": "Szám bemenetek újratöltése",
"input_select": "Választási bemenetek újratöltése",
"input_text": "Bemeneti szövegek újratöltése",
"introduction": "A Home Assistant bizonyos részei újraindítás nélkül újratölthetőek. Újratöltéskor az aktuálisan betöltött YAML konfiguráció helyére betöltődik az új.", "introduction": "A Home Assistant bizonyos részei újraindítás nélkül újratölthetőek. Újratöltéskor az aktuálisan betöltött YAML konfiguráció helyére betöltődik az új.",
"person": "Személyek újratöltése", "person": "Személyek újratöltése",
"scene": "Jelenetek újratöltése", "scene": "Jelenetek újratöltése",
@@ -1807,7 +1731,6 @@
}, },
"zha": { "zha": {
"add_device_page": { "add_device_page": {
"discovered_text": "Az eszközök itt fognak megjelenni, ha felfedezésre kerültek.",
"discovery_text": "A felfedezett eszközök itt fognak megjelenni. A készülékek használati utasításai alapján állítsd őket párosítási módba.", "discovery_text": "A felfedezett eszközök itt fognak megjelenni. A készülékek használati utasításai alapján állítsd őket párosítási módba.",
"header": "Zigbee Home Automation - Eszközök hozzáadása", "header": "Zigbee Home Automation - Eszközök hozzáadása",
"search_again": "Keresés Újra", "search_again": "Keresés Újra",
@@ -1817,7 +1740,6 @@
"caption": "Eszközök hozzáadása", "caption": "Eszközök hozzáadása",
"description": "Eszközök hozzáadása a Zigbee hálózathoz" "description": "Eszközök hozzáadása a Zigbee hálózathoz"
}, },
"button": "Beállítás",
"caption": "ZHA", "caption": "ZHA",
"cluster_attributes": { "cluster_attributes": {
"attributes_of_cluster": "A kiválasztott klaszter attribútumai", "attributes_of_cluster": "A kiválasztott klaszter attribútumai",
@@ -1896,9 +1818,6 @@
"header": "Hálózat menedzsment", "header": "Hálózat menedzsment",
"introduction": "Parancsok, amik kihatnak az egész hálózatra" "introduction": "Parancsok, amik kihatnak az egész hálózatra"
}, },
"network": {
"caption": "Hálózat"
},
"node_management": { "node_management": {
"header": "Eszköz kezelés", "header": "Eszköz kezelés",
"help_node_dropdown": "Válassz egy eszközt az eszközönkénti beállítások megtekintéséhez.", "help_node_dropdown": "Válassz egy eszközt az eszközönkénti beállítások megtekintéséhez.",
@@ -1938,7 +1857,6 @@
"no_zones_created_yet": "Úgy tűnik, még nem hoztál létre zónákat." "no_zones_created_yet": "Úgy tűnik, még nem hoztál létre zónákat."
}, },
"zwave": { "zwave": {
"button": "Beállítás",
"caption": "Z-Wave", "caption": "Z-Wave",
"common": { "common": {
"index": "Index", "index": "Index",
@@ -1972,7 +1890,6 @@
"true": "Igaz" "true": "Igaz"
}, },
"node_management": { "node_management": {
"header": "Z-Wave csomópontkezelés",
"nodes": "Csomópontok" "nodes": "Csomópontok"
}, },
"ozw_log": { "ozw_log": {
@@ -1984,16 +1901,15 @@
"add_node_secure": "Biztonságos csomópont hozzáadása", "add_node_secure": "Biztonságos csomópont hozzáadása",
"cancel_command": "Parancs megszakítása", "cancel_command": "Parancs megszakítása",
"heal_network": "Hálózati struktúra feltérképezése", "heal_network": "Hálózati struktúra feltérképezése",
"node_info": "Csomópont információ", "node_info": "Node információ",
"refresh_entity": "Entitás frissítése", "refresh_entity": "Entitás frissítése",
"refresh_node": "Csomópont frissítése",
"remove_node": "Csomópont eltávolítása", "remove_node": "Csomópont eltávolítása",
"save_config": "Konfiguráció mentése", "save_config": "Konfiguráció mentése",
"soft_reset": "Soft Reset", "soft_reset": "Soft Reset",
"start_network": "Hálózat indítása", "start_network": "Hálózat indítása",
"stop_network": "Hálózat leállítása", "stop_network": "Hálózat leállítása",
"test_network": "Hálózat tesztelése", "test_network": "Hálózat tesztelése",
"test_node": "Teszt csomópont" "test_node": "Teszt Node"
}, },
"values": { "values": {
"header": "Csomópont értékek" "header": "Csomópont értékek"
@@ -2070,23 +1986,11 @@
}, },
"history": { "history": {
"period": "Időtartam", "period": "Időtartam",
"ranges": {
"last_week": "Múlt hét",
"this_week": "Aktuális hét",
"today": "Ma",
"yesterday": "Tegnap"
},
"showing_entries": "Bejegyzések megjelenítése" "showing_entries": "Bejegyzések megjelenítése"
}, },
"logbook": { "logbook": {
"entries_not_found": "Nincsenek naplóbejegyzések.", "entries_not_found": "Nincsenek naplóbejegyzések.",
"period": "Időszak", "period": "Időszak",
"ranges": {
"last_week": "Múlt hét",
"this_week": "Aktuális hét",
"today": "Ma",
"yesterday": "Tegnap"
},
"showing_entries": "Bejegyzések megjelenítése" "showing_entries": "Bejegyzések megjelenítése"
}, },
"lovelace": { "lovelace": {
@@ -2124,7 +2028,7 @@
"clear_items": "Bejelölt tételek törlése" "clear_items": "Bejelölt tételek törlése"
}, },
"starting": { "starting": {
"description": "A Home Assistant indítása folyamatban van, kérlek várj...", "description": "A Home Assistant indítása folyamatban van, kérlek várj.",
"header": "A Home Assistant indítása folyamatban van..." "header": "A Home Assistant indítása folyamatban van..."
} }
}, },
@@ -2202,7 +2106,6 @@
"name": "Név", "name": "Név",
"no_theme": "Nincs téma", "no_theme": "Nincs téma",
"refresh_interval": "Frissítési időköz", "refresh_interval": "Frissítési időköz",
"search": "Keresés",
"secondary_info_attribute": "Másodlagos információ attribútum", "secondary_info_attribute": "Másodlagos információ attribútum",
"show_icon": "Ikon megjelenítése?", "show_icon": "Ikon megjelenítése?",
"show_name": "Név megjelenítése?", "show_name": "Név megjelenítése?",
@@ -2227,9 +2130,6 @@
"description": "A Vízszintes Készlet kártya lehetővé teszi több kártya egymás mellé rendezését egy oszlopon belül.", "description": "A Vízszintes Készlet kártya lehetővé teszi több kártya egymás mellé rendezését egy oszlopon belül.",
"name": "Vízszintes Készlet" "name": "Vízszintes Készlet"
}, },
"humidifier": {
"name": "Párásító"
},
"iframe": { "iframe": {
"description": "A Weblap kártya lehetővé teszi a kedvenc weboldalad beágyazását a Home Assistant-ba.", "description": "A Weblap kártya lehetővé teszi a kedvenc weboldalad beágyazását a Home Assistant-ba.",
"name": "Weboldal" "name": "Weboldal"
@@ -2307,7 +2207,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Kártya hozzáadása", "add": "Kártya hozzáadása",
"confirm_cancel": "Biztosan meg szeretnéd szakítani?",
"delete": "Kártya törlése", "delete": "Kártya törlése",
"duplicate": "Kártya duplikálása", "duplicate": "Kártya duplikálása",
"edit": "Szerkesztés", "edit": "Szerkesztés",
@@ -2318,15 +2217,12 @@
"pick_card_view_title": "Melyik kártyát szeretnéd hozzáadni a(z) {name} nézethez?", "pick_card_view_title": "Melyik kártyát szeretnéd hozzáadni a(z) {name} nézethez?",
"show_code_editor": "Kódszerkesztő megjelenítése", "show_code_editor": "Kódszerkesztő megjelenítése",
"show_visual_editor": "Vizuális szerkesztő megjelenítése", "show_visual_editor": "Vizuális szerkesztő megjelenítése",
"toggle_editor": "Szerkesztő", "toggle_editor": "Szerkesztő"
"typed_header": "{típusú} Kártya Konfiguráció",
"unsaved_changes": "Vannak nem mentett módosítások"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Cím szerkesztése", "edit_title": "Cím szerkesztése",
"explanation": "Ez a cím jelenik meg minden nézet felett a Lovelace felhasználói felületen.", "explanation": "Ez a cím jelenik meg minden nézet felett a Lovelace felhasználói felületen.",
"header": "Lovelace UI címe", "header": "Lovelace UI címe"
"title": "Cím"
}, },
"edit_view": { "edit_view": {
"add": "Nézet hozzáadása", "add": "Nézet hozzáadása",
@@ -2413,8 +2309,6 @@
"entity": "Entitás", "entity": "Entitás",
"entity_id": "Entitás ID", "entity_id": "Entitás ID",
"last_changed": "Utoljára változott", "last_changed": "Utoljára változott",
"no_data": "Nincsenek nem használt entitások",
"search": "Entitások keresése",
"select_to_add": "Válaszd ki azokat az entitásokat, amelyeket hozzá akarsz adni egy kártyához, majd kattints a kártya hozzáadása gombra.", "select_to_add": "Válaszd ki azokat az entitásokat, amelyeket hozzá akarsz adni egy kártyához, majd kattints a kártya hozzáadása gombra.",
"title": "Nem használt entitások" "title": "Nem használt entitások"
}, },
@@ -2517,7 +2411,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "A számítógéped nem engedélyezett.",
"not_whitelisted": "A számítógéped nem engedélyezett." "not_whitelisted": "A számítógéped nem engedélyezett."
}, },
"step": { "step": {
@@ -2693,10 +2586,6 @@
"not_used": "Sosem használt", "not_used": "Sosem használt",
"token_title": "{clientId} frissítési tokenje" "token_title": "{clientId} frissítési tokenje"
}, },
"suspend": {
"description": "Lezárjuk a kapcsolatot a szerverrel, ha 5 percig rejtve van a felület?",
"header": "Kapcsolat automatikus bontása"
},
"themes": { "themes": {
"dropdown_label": "Téma", "dropdown_label": "Téma",
"error_no_theme": "Nincsenek elérhető témák.", "error_no_theme": "Nincsenek elérhető témák.",

View File

@@ -205,7 +205,6 @@
"stopped": "Stöðvuð" "stopped": "Stöðvuð"
}, },
"default": { "default": {
"off": "Slökkt",
"on": "Á", "on": "Á",
"unavailable": "Ekki tiltækt", "unavailable": "Ekki tiltækt",
"unknown": "Óþekkt" "unknown": "Óþekkt"
@@ -403,8 +402,6 @@
"activate": "Virkja" "activate": "Virkja"
}, },
"script": { "script": {
"cancel": "Hætta við",
"cancel_multiple": "Hætta við {number}",
"execute": "Framkvæma" "execute": "Framkvæma"
}, },
"service": { "service": {
@@ -492,9 +489,6 @@
"clear": "Hreinsa", "clear": "Hreinsa",
"show_areas": "Birta svæði" "show_areas": "Birta svæði"
}, },
"data-table": {
"search": "Leita"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Loka dagsetning", "end_date": "Loka dagsetning",
"select": "Velja", "select": "Velja",
@@ -574,7 +568,6 @@
"time": "Tími" "time": "Tími"
}, },
"input_number": { "input_number": {
"box": "Innsláttarreitur",
"max": "Hámarksgildi", "max": "Hámarksgildi",
"min": "Lágmarksgildi", "min": "Lágmarksgildi",
"mode": "Birtingarmáti", "mode": "Birtingarmáti",
@@ -614,7 +607,6 @@
"title": "Uppfærslu leiðbeiningar" "title": "Uppfærslu leiðbeiningar"
}, },
"vacuum": { "vacuum": {
"locate": "Staðsetja",
"pause": "Hlé", "pause": "Hlé",
"start": "Byrja", "start": "Byrja",
"status": "Staða", "status": "Staða",
@@ -653,7 +645,6 @@
"unknown": "Óþekkt", "unknown": "Óþekkt",
"zha_device_card": { "zha_device_card": {
"area_picker_label": "Svæði", "area_picker_label": "Svæði",
"device_name_placeholder": "Breyta nafni á tæki",
"update_name_button": "Uppfæra nafn" "update_name_button": "Uppfæra nafn"
} }
} }
@@ -695,7 +686,6 @@
"description": "Yfirlit yfir öll svæði á heimilinu þínu.", "description": "Yfirlit yfir öll svæði á heimilinu þínu.",
"editor": { "editor": {
"create": "STOFNA", "create": "STOFNA",
"default_name": "Nýtt svæði",
"delete": "EYÐA", "delete": "EYÐA",
"name": "Nafn", "name": "Nafn",
"name_required": "Nafn er skilyrt", "name_required": "Nafn er skilyrt",
@@ -827,16 +817,10 @@
"label": "Lýsing", "label": "Lýsing",
"placeholder": "Valfrjáls lýsing" "placeholder": "Valfrjáls lýsing"
}, },
"edit_ui": "Breyta í viðmóti",
"edit_yaml": "Breyta sem YAML",
"enable_disable": "Virkja/slökkva á sjálfvirkni", "enable_disable": "Virkja/slökkva á sjálfvirkni",
"introduction": "Notaðu sjálfvirkni til að glæða húsið þitt lífi", "introduction": "Notaðu sjálfvirkni til að glæða húsið þitt lífi",
"load_error_not_editable": "Eingöngu er hægt að breyta sjálfvirkni í automations.yaml", "load_error_not_editable": "Eingöngu er hægt að breyta sjálfvirkni í automations.yaml",
"load_error_unknown": "Villa kom upp við að hlaða inn sjálfvirkni ({err_no}).", "load_error_unknown": "Villa kom upp við að hlaða inn sjálfvirkni ({err_no}).",
"modes": {
"label": "Hamur",
"restart": "Endurræsa"
},
"move_down": "Færa niður", "move_down": "Færa niður",
"move_up": "Færa upp", "move_up": "Færa upp",
"save": "Vista", "save": "Vista",
@@ -982,7 +966,6 @@
"description_login": "Innskráð(ur) sem {email}", "description_login": "Innskráð(ur) sem {email}",
"description_not_login": "Ekki skráð(ur) inn", "description_not_login": "Ekki skráð(ur) inn",
"dialog_certificate": { "dialog_certificate": {
"certificate_information": "Upplýsingar um skilríki",
"close": "Loka", "close": "Loka",
"fingerprint": "Fingrafar skilríkis:" "fingerprint": "Fingrafar skilríkis:"
}, },
@@ -1072,11 +1055,9 @@
"actions": { "actions": {
"caption": "Þegar eitthvað er ræst af kveikju..." "caption": "Þegar eitthvað er ræst af kveikju..."
}, },
"automations": "Sjálfvirkni",
"conditions": { "conditions": {
"caption": "Bara framkvæma eitthvað ef..." "caption": "Bara framkvæma eitthvað ef..."
}, },
"no_automations": "Engin sjálfvirkni",
"triggers": { "triggers": {
"caption": "Framkvæma eitthvað þegar..." "caption": "Framkvæma eitthvað þegar..."
} }
@@ -1089,7 +1070,6 @@
"device": "Tæki", "device": "Tæki",
"integration": "Samþætting", "integration": "Samþætting",
"manufacturer": "Framleiðandi", "manufacturer": "Framleiðandi",
"model": "Gerð",
"no_area": "Ekkert svæði", "no_area": "Ekkert svæði",
"no_devices": "Engin tæki" "no_devices": "Engin tæki"
}, },
@@ -1141,7 +1121,6 @@
"button": "Fjarlægja val", "button": "Fjarlægja val",
"confirm_title": "Viltu fjarlægja {number} einingar?" "confirm_title": "Viltu fjarlægja {number} einingar?"
}, },
"search": "Leita í einingum",
"selected": "{number} valin", "selected": "{number} valin",
"status": { "status": {
"disabled": "Afvirkjað", "disabled": "Afvirkjað",
@@ -1176,7 +1155,6 @@
} }
}, },
"info": { "info": {
"built_using": "Byggt með",
"caption": "Upplýsingar", "caption": "Upplýsingar",
"documentation": "Skjölun", "documentation": "Skjölun",
"icons_by": "Smátákn eftir", "icons_by": "Smátákn eftir",
@@ -1236,9 +1214,7 @@
"integration_not_found": "Samþætting fannst ekki.", "integration_not_found": "Samþætting fannst ekki.",
"new": "Setja upp nýja samþættingu", "new": "Setja upp nýja samþættingu",
"none": "Ekkert skilgreint sem stendur", "none": "Ekkert skilgreint sem stendur",
"none_found": "Engar samþættingar fundust", "none_found": "Engar samþættingar fundust"
"note_about_integrations": "Það er ekki er hægt að stilla allar samþættingar í gegnum viðmótið ennþá.",
"search": "Leita í samþættingum"
}, },
"introduction": "Hér er mögulegt að stilla af íhluti og Home Assistant. Því miður er ekki hægt að breyta öllu í gegnum viðmótið ennþá, en við erum að vinna í því.", "introduction": "Hér er mögulegt að stilla af íhluti og Home Assistant. Því miður er ekki hægt að breyta öllu í gegnum viðmótið ennþá, en við erum að vinna í því.",
"logs": { "logs": {
@@ -1343,10 +1319,8 @@
"entities": { "entities": {
"add": "Bæta við einingu", "add": "Bæta við einingu",
"delete": "Eyða einingu", "delete": "Eyða einingu",
"header": "Einingar", "header": "Einingar"
"without_device": "Einingar án tækja"
}, },
"icon": "Táknmynd",
"load_error_not_editable": "Það er eingöngu hægt að breyta senum í scenes.yaml.", "load_error_not_editable": "Það er eingöngu hægt að breyta senum í scenes.yaml.",
"name": "Nafn", "name": "Nafn",
"save": "Vista" "save": "Vista"
@@ -1371,13 +1345,7 @@
"description": "Búa til og breyta skriftum", "description": "Búa til og breyta skriftum",
"editor": { "editor": {
"alias": "Nafn", "alias": "Nafn",
"icon": "Táknmynd", "link_available_actions": "Læra meira um tiltækar aðgerðir."
"link_available_actions": "Læra meira um tiltækar aðgerðir.",
"modes": {
"label": "Hamur",
"restart": "Endurræsa"
},
"sequence": "Röð"
}, },
"picker": { "picker": {
"headers": { "headers": {
@@ -1540,12 +1508,10 @@
"node_management": { "node_management": {
"add_to_group": "Bæta í hóp", "add_to_group": "Bæta í hóp",
"entity_info": "Upplýsingar um einingu", "entity_info": "Upplýsingar um einingu",
"group": "Hópur", "group": "Hópur"
"remove_from_group": "Fjarlægja úr hóp"
}, },
"ozw_log": { "ozw_log": {
"header": "OZW annáll", "header": "OZW annáll"
"load": "Hlaða"
}, },
"services": { "services": {
"cancel_command": "Hætta við skipun", "cancel_command": "Hætta við skipun",
@@ -1579,9 +1545,7 @@
}, },
"states": { "states": {
"current_entities": "Tiltækar einingar", "current_entities": "Tiltækar einingar",
"entity": "Eining",
"more_info": "Frekari upplýsingar", "more_info": "Frekari upplýsingar",
"no_entities": "Engar einingar",
"set_state": "Setja stöðu", "set_state": "Setja stöðu",
"state": "Staða", "state": "Staða",
"title": "Stöður" "title": "Stöður"
@@ -1688,7 +1652,6 @@
"minimum": "Lágmark", "minimum": "Lágmark",
"name": "Nafn", "name": "Nafn",
"no_theme": "Ekkert þema", "no_theme": "Ekkert þema",
"search": "Leita",
"show_icon": "Birta táknmynd?", "show_icon": "Birta táknmynd?",
"show_name": "Birta nafn?", "show_name": "Birta nafn?",
"show_state": "Birta stöðu?", "show_state": "Birta stöðu?",
@@ -1730,7 +1693,6 @@
"name": "Mynd" "name": "Mynd"
}, },
"plant-status": { "plant-status": {
"description": "Staða plöntu kortið er fyrir alla grasafræðingana þarna úti.",
"name": "Staða plöntu" "name": "Staða plöntu"
}, },
"sensor": { "sensor": {
@@ -1756,7 +1718,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Bæta við spjaldi", "add": "Bæta við spjaldi",
"confirm_cancel": "Ertu viss um að þú viljir hætta við?",
"delete": "Eyða", "delete": "Eyða",
"edit": "Breyta", "edit": "Breyta",
"header": "Stillingar spjalds", "header": "Stillingar spjalds",
@@ -1765,12 +1726,10 @@
"pick_card": "Veldu spjald sem þú vilt bæta við.", "pick_card": "Veldu spjald sem þú vilt bæta við.",
"show_code_editor": "Birta kóða ritil", "show_code_editor": "Birta kóða ritil",
"show_visual_editor": "Birta sjónrænan ritil", "show_visual_editor": "Birta sjónrænan ritil",
"toggle_editor": "Víxla ritli", "toggle_editor": "Víxla ritli"
"unsaved_changes": "Þú ert með óvistaðar breytingar"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Breyta titli", "edit_title": "Breyta titli"
"title": "Titill"
}, },
"edit_view": { "edit_view": {
"add": "Bæta við sýn", "add": "Bæta við sýn",
@@ -1789,7 +1748,6 @@
"migrate": "Uppfæra stillingar" "migrate": "Uppfæra stillingar"
}, },
"raw_editor": { "raw_editor": {
"error_save_yaml": "Ekki tókst að vista YAML: {error}",
"header": "Breyta stillingum", "header": "Breyta stillingum",
"save": "Vista", "save": "Vista",
"saved": "Vistað", "saved": "Vistað",
@@ -1907,7 +1865,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Tölvan þín er ekki leyfð.",
"not_whitelisted": "Tölvan þín er ekki hvítlistuð." "not_whitelisted": "Tölvan þín er ekki hvítlistuð."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "Attiva" "activate": "Attiva"
}, },
"script": { "script": {
"cancel": "Annulla",
"cancel_multiple": "Annulla {number}",
"execute": "Esegui" "execute": "Esegui"
}, },
"service": { "service": {
@@ -527,10 +525,6 @@
"clear": "Cancella", "clear": "Cancella",
"show_areas": "Mostra le aree" "show_areas": "Mostra le aree"
}, },
"data-table": {
"no-data": "Nessun dato",
"search": "Ricerca"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Data di fine", "end_date": "Data di fine",
"select": "Selezionare", "select": "Selezionare",
@@ -944,19 +938,6 @@
"introduction": "Usa le automazioni per dare vita alla tua casa.", "introduction": "Usa le automazioni per dare vita alla tua casa.",
"load_error_not_editable": "Solo le Automazioni in automations.yaml sono modificabili.", "load_error_not_editable": "Solo le Automazioni in automations.yaml sono modificabili.",
"load_error_unknown": "Errore durante il caricamento dell'Automazione ({err_no}).", "load_error_unknown": "Errore durante il caricamento dell'Automazione ({err_no}).",
"max": {
"parallel": "Numero massimo di esecuzioni parallele",
"queued": "Lunghezza della coda"
},
"modes": {
"description": "La modalità controlla cosa succede quando l'automazione viene attivata mentre le azioni sono ancora in esecuzione da una attivazione precedente. Controllare {documentation_link} per maggiori informazioni.",
"documentation": "documentazione di automazione",
"label": "Modalità",
"parallel": "Parallelo",
"queued": "In coda",
"restart": "Riavviare",
"single": "Singolo (predefinito)"
},
"move_down": "Sposta sotto", "move_down": "Sposta sotto",
"move_up": "Sposta sopra", "move_up": "Sposta sopra",
"save": "Salva", "save": "Salva",
@@ -1375,7 +1356,6 @@
"confirm_text": "Dovresti rimuoverli dalla configurazione di Lovelace e dalle automazioni se contengono queste entità.", "confirm_text": "Dovresti rimuoverli dalla configurazione di Lovelace e dalle automazioni se contengono queste entità.",
"confirm_title": "Vuoi rimuovere {number} entità?" "confirm_title": "Vuoi rimuovere {number} entità?"
}, },
"search": "Cerca entità",
"selected": "{number} selezionato", "selected": "{number} selezionato",
"status": { "status": {
"disabled": "Disabilitato", "disabled": "Disabilitato",
@@ -1406,8 +1386,7 @@
"entity_id": "ID Entità", "entity_id": "ID Entità",
"name": "Nome", "name": "Nome",
"type": "Tipo" "type": "Tipo"
}, }
"no_helpers": "Sembra che tu non abbia ancora nessun aiutante!"
}, },
"types": { "types": {
"input_boolean": "Commutatore", "input_boolean": "Commutatore",
@@ -1511,8 +1490,7 @@
"note_about_integrations": "Non tutte le integrazioni possono ancora essere configurate tramite l'interfaccia utente.", "note_about_integrations": "Non tutte le integrazioni possono ancora essere configurate tramite l'interfaccia utente.",
"note_about_website_reference": "Ulteriori informazioni sono disponibili su ", "note_about_website_reference": "Ulteriori informazioni sono disponibili su ",
"rename_dialog": "Modifica il nome di questa voce di configurazione", "rename_dialog": "Modifica il nome di questa voce di configurazione",
"rename_input_label": "Nome della voce", "rename_input_label": "Nome della voce"
"search": "Cerca integrazioni"
}, },
"introduction": "Qui è possibile configurare i componenti e Home Assistant. Non è ancora possibile configurare tutto dall'Interfaccia Utente, ma ci stiamo lavorando.", "introduction": "Qui è possibile configurare i componenti e Home Assistant. Non è ancora possibile configurare tutto dall'Interfaccia Utente, ma ci stiamo lavorando.",
"logs": { "logs": {
@@ -1665,7 +1643,6 @@
"introduction": "Le entità che non appartengono a un dispositivo possono essere impostate qui.", "introduction": "Le entità che non appartengono a un dispositivo possono essere impostate qui.",
"without_device": "Entità senza dispositivo" "without_device": "Entità senza dispositivo"
}, },
"icon": "Icona",
"introduction": "Usa le scene per dare vita alla tua casa.", "introduction": "Usa le scene per dare vita alla tua casa.",
"load_error_not_editable": "Solo le scene in scene.yaml sono modificabili.", "load_error_not_editable": "Solo le scene in scene.yaml sono modificabili.",
"load_error_unknown": "Errore durante il caricamento della scena ({err_no}).", "load_error_unknown": "Errore durante il caricamento della scena ({err_no}).",
@@ -1699,26 +1676,9 @@
"delete_confirm": "Sei sicuro di voler eliminare questo script?", "delete_confirm": "Sei sicuro di voler eliminare questo script?",
"delete_script": "Elimina script", "delete_script": "Elimina script",
"header": "Script: {name}", "header": "Script: {name}",
"icon": "Icona",
"id": "ID Entità",
"id_already_exists": "Questo ID esiste già",
"id_already_exists_save_error": "Non è possibile salvare questo script perché l'ID non è univoco, scegliere un altro ID o lasciarlo vuoto per generarne automaticamente uno.",
"introduction": "Utilizzare gli script per eseguire una sequenza di azioni.", "introduction": "Utilizzare gli script per eseguire una sequenza di azioni.",
"link_available_actions": "Ulteriori informazioni sulle azioni disponibili.", "link_available_actions": "Ulteriori informazioni sulle azioni disponibili.",
"load_error_not_editable": "Solo gli script all'interno di scripts.yaml sono modificabili.", "load_error_not_editable": "Solo gli script all'interno di scripts.yaml sono modificabili.",
"max": {
"parallel": "Numero massimo di esecuzioni parallele",
"queued": "Lunghezza della coda"
},
"modes": {
"description": "La modalità controlla cosa succede quando lo script viene invocato mentre è ancora in esecuzione da una o più invocazioni precedenti. Controllare il {documentation_link} per maggiori informazioni.",
"documentation": "documentazione dello script",
"label": "Modalità",
"parallel": "Parallelo",
"queued": "In coda",
"restart": "Riavviare",
"single": "Singolo (predefinito)"
},
"sequence": "Sequenza", "sequence": "Sequenza",
"sequence_sentence": "Sequenza di azioni di questo script." "sequence_sentence": "Sequenza di azioni di questo script."
}, },
@@ -1816,7 +1776,7 @@
"discovered_text": "I dispositivi verranno visualizzati qui una volta scoperti.", "discovered_text": "I dispositivi verranno visualizzati qui una volta scoperti.",
"discovery_text": "I dispositivi rilevati verranno visualizzati qui. Seguire le istruzioni per il / i dispositivo / i e posizionare il / i dispositivo / i in modalità accoppiamento.", "discovery_text": "I dispositivi rilevati verranno visualizzati qui. Seguire le istruzioni per il / i dispositivo / i e posizionare il / i dispositivo / i in modalità accoppiamento.",
"header": "Zigbee Home Automation - Aggiungi dispositivi", "header": "Zigbee Home Automation - Aggiungi dispositivi",
"no_devices_found": "Nessun dispositivo trovato, assicurati che siano in modalità di associazione e tienili attivi mentre la scansione è in esecuzione.", "no_devices_found": "Nessun dispositivo trovato, assicurati che siano in modalità di associazione e tienili svegli mentre la scansione è in esecuzione.",
"pairing_mode": "Assicurati che i tuoi dispositivi siano in modalità di associazione. Controlla le istruzioni del tuo dispositivo su come eseguire questa operazione.", "pairing_mode": "Assicurati che i tuoi dispositivi siano in modalità di associazione. Controlla le istruzioni del tuo dispositivo su come eseguire questa operazione.",
"search_again": "Cerca di nuovo", "search_again": "Cerca di nuovo",
"spinner": "Ricerca di dispositivi ZHA Zigbee ..." "spinner": "Ricerca di dispositivi ZHA Zigbee ..."
@@ -2234,7 +2194,6 @@
"name": "Nome", "name": "Nome",
"no_theme": "Nessun tema", "no_theme": "Nessun tema",
"refresh_interval": "Intervallo di aggiornamento", "refresh_interval": "Intervallo di aggiornamento",
"search": "Ricerca",
"secondary_info_attribute": "Attributo informazioni secondarie", "secondary_info_attribute": "Attributo informazioni secondarie",
"show_icon": "Mostrare l'icona?", "show_icon": "Mostrare l'icona?",
"show_name": "Mostrare il nome?", "show_name": "Mostrare il nome?",
@@ -2340,7 +2299,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Aggiungi scheda", "add": "Aggiungi scheda",
"confirm_cancel": "Sei sicuro di voler annullare?",
"delete": "Elimina scheda", "delete": "Elimina scheda",
"duplicate": "Duplica scheda", "duplicate": "Duplica scheda",
"edit": "Modifica", "edit": "Modifica",
@@ -2351,15 +2309,12 @@
"pick_card_view_title": "Quale scheda vorresti aggiungere alla tua vista {name}?", "pick_card_view_title": "Quale scheda vorresti aggiungere alla tua vista {name}?",
"show_code_editor": "Mostra Editor di Codice", "show_code_editor": "Mostra Editor di Codice",
"show_visual_editor": "Mostra Editor Visivo", "show_visual_editor": "Mostra Editor Visivo",
"toggle_editor": "Attiva / disattiva l'editor", "toggle_editor": "Attiva / disattiva l'editor"
"typed_header": "{type} Configurazione Scheda",
"unsaved_changes": "Sono state apportate modifiche non salvate"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Modifica titolo", "edit_title": "Modifica titolo",
"explanation": "Questo titolo è mostrato sopra tutte le tue viste nell'Interfaccia Utente di Lovelace.", "explanation": "Questo titolo è mostrato sopra tutte le tue viste nell'Interfaccia Utente di Lovelace.",
"header": "Titolo della tua interfaccia utente di Lovelace", "header": "Titolo della tua interfaccia utente di Lovelace"
"title": "Titolo"
}, },
"edit_view": { "edit_view": {
"add": "Aggiungi vista", "add": "Aggiungi vista",
@@ -2446,8 +2401,6 @@
"entity": "Entità", "entity": "Entità",
"entity_id": "ID entità", "entity_id": "ID entità",
"last_changed": "Ultima modifica", "last_changed": "Ultima modifica",
"no_data": "Trovate entità non utilizzate",
"search": "Cerca entità",
"select_to_add": "Selezionare le entità che si desidera aggiungere a una scheda, quindi fare clic sul pulsante Aggiungi scheda.", "select_to_add": "Selezionare le entità che si desidera aggiungere a una scheda, quindi fare clic sul pulsante Aggiungi scheda.",
"title": "Entità non utilizzate" "title": "Entità non utilizzate"
}, },
@@ -2550,7 +2503,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Il tuo computer non è consentito.",
"not_whitelisted": "Il tuo computer non è nella whitelist." "not_whitelisted": "Il tuo computer non è nella whitelist."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "활성화" "activate": "활성화"
}, },
"script": { "script": {
"cancel": "취소",
"cancel_multiple": "{number} 개 취소",
"execute": "실행" "execute": "실행"
}, },
"service": { "service": {
@@ -528,7 +526,6 @@
"show_areas": "영역 표시" "show_areas": "영역 표시"
}, },
"data-table": { "data-table": {
"no-data": "데이터가 없습니다",
"search": "검색" "search": "검색"
}, },
"date-range-picker": { "date-range-picker": {
@@ -944,19 +941,6 @@
"introduction": "자동화를 사용하여 집에 생기를 불어넣으세요", "introduction": "자동화를 사용하여 집에 생기를 불어넣으세요",
"load_error_not_editable": "automations.yaml 의 자동화만 편집할 수 있습니다.", "load_error_not_editable": "automations.yaml 의 자동화만 편집할 수 있습니다.",
"load_error_unknown": "자동화를 읽어오는 도중 오류가 발생했습니다 ({err_no}).", "load_error_unknown": "자동화를 읽어오는 도중 오류가 발생했습니다 ({err_no}).",
"max": {
"parallel": "최대 병렬 실행 수",
"queued": "대기열 길이"
},
"modes": {
"description": "모드는 자동화가 이전 트리거에서 동작이 실행되는 동안 트리거될 때 실행되는 작업을 제어합니다. 자세한 내용은 {documentation_link} 을(를) 확인해주세요.",
"documentation": "자동화 문서",
"label": "모드",
"parallel": "병렬",
"queued": "대기",
"restart": "재시작",
"single": "단일 (기본값)"
},
"move_down": "아래로 이동", "move_down": "아래로 이동",
"move_up": "위로 이동", "move_up": "위로 이동",
"save": "저장하기", "save": "저장하기",
@@ -1665,7 +1649,6 @@
"introduction": "기기에 속하지 않은 구성요소는 여기에서 설정할 수 있습니다.", "introduction": "기기에 속하지 않은 구성요소는 여기에서 설정할 수 있습니다.",
"without_device": "기기가 없는 구성요소" "without_device": "기기가 없는 구성요소"
}, },
"icon": "아이콘",
"introduction": "씬을 사용하여 집에 생기를 불어넣으세요", "introduction": "씬을 사용하여 집에 생기를 불어넣으세요",
"load_error_not_editable": "scenes.yaml 의 씬 만 편집할 수 있습니다.", "load_error_not_editable": "scenes.yaml 의 씬 만 편집할 수 있습니다.",
"load_error_unknown": "씬 불러오기 오류: ({err_no}).", "load_error_unknown": "씬 불러오기 오류: ({err_no}).",
@@ -1699,26 +1682,9 @@
"delete_confirm": "이 스크립트를 삭제하시겠습니까?", "delete_confirm": "이 스크립트를 삭제하시겠습니까?",
"delete_script": "스크립트 삭제", "delete_script": "스크립트 삭제",
"header": "스크립트: {name}", "header": "스크립트: {name}",
"icon": "아이콘",
"id": "구성요소 ID",
"id_already_exists": "ID 가 이미 존재합니다",
"id_already_exists_save_error": "고유한 ID 가 아니므로 이 스크립트를 저장할 수 없습니다. 다른 ID 를 선택하거나 자동생성하려면 비워두세요.",
"introduction": "스크립트를 사용하여 동작의 시퀀스를 실행합니다.", "introduction": "스크립트를 사용하여 동작의 시퀀스를 실행합니다.",
"link_available_actions": "사용가능한 동작에 대해 더 알아보기.", "link_available_actions": "사용가능한 동작에 대해 더 알아보기.",
"load_error_not_editable": "scripts.yaml 의 스크립트만 편집할 수 있습니다.", "load_error_not_editable": "scripts.yaml 의 스크립트만 편집할 수 있습니다.",
"max": {
"parallel": "최대 병렬 실행 수",
"queued": "대기열 길이"
},
"modes": {
"description": "모드는 스크립트가 하나 이상의 이전 호출에서 계속 실행되는 동안 스크립트가 호출될 때 실행되는 작업을 제어합니다. 자세한 내용은 {documentation_link} 을(를) 확인해주세요.",
"documentation": "스크립트 문서",
"label": "모드",
"parallel": "병렬",
"queued": "대기",
"restart": "재시작",
"single": "단일 (기본값)"
},
"sequence": "시퀀스", "sequence": "시퀀스",
"sequence_sentence": "이 스크립트의 동작 시퀀스." "sequence_sentence": "이 스크립트의 동작 시퀀스."
}, },
@@ -2340,7 +2306,6 @@
}, },
"edit_card": { "edit_card": {
"add": "카드 추가하기", "add": "카드 추가하기",
"confirm_cancel": "취소하시겠습니까?",
"delete": "카드 삭제", "delete": "카드 삭제",
"duplicate": "카드 복사", "duplicate": "카드 복사",
"edit": "편집", "edit": "편집",
@@ -2351,9 +2316,7 @@
"pick_card_view_title": "{name} 뷰에 어떤 카드를 추가하시겠습니까?", "pick_card_view_title": "{name} 뷰에 어떤 카드를 추가하시겠습니까?",
"show_code_editor": "코드 편집기 보기", "show_code_editor": "코드 편집기 보기",
"show_visual_editor": "비주얼 편집기 보기", "show_visual_editor": "비주얼 편집기 보기",
"toggle_editor": "에디터 전환", "toggle_editor": "에디터 전환"
"typed_header": "{type} 카드 구성",
"unsaved_changes": "저장하지 않은 변경 사항이 있습니다"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "제목 편집", "edit_title": "제목 편집",
@@ -2446,8 +2409,6 @@
"entity": "구성요소", "entity": "구성요소",
"entity_id": "구성요소 ID", "entity_id": "구성요소 ID",
"last_changed": "최근 변경 됨", "last_changed": "최근 변경 됨",
"no_data": "미사용 구성요소가 없습니다",
"search": "구성요소 검색",
"select_to_add": "카드에 추가 할 구성요소를 선택한 다음, 카드 추가 버튼을 클릭해주세요.", "select_to_add": "카드에 추가 할 구성요소를 선택한 다음, 카드 추가 버튼을 클릭해주세요.",
"title": "미사용 구성요소" "title": "미사용 구성요소"
}, },
@@ -2550,7 +2511,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "이 컴퓨터는 허용 목록에 등록되지 않았습니다.",
"not_whitelisted": "이 컴퓨터는 허용 목록에 등록되어 있지 않습니다." "not_whitelisted": "이 컴퓨터는 허용 목록에 등록되어 있지 않습니다."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "Aktivéieren" "activate": "Aktivéieren"
}, },
"script": { "script": {
"cancel": "Ofbriechen",
"cancel_multiple": "{number} ofbriechen",
"execute": "Ausféieren" "execute": "Ausféieren"
}, },
"service": { "service": {
@@ -527,10 +525,6 @@
"clear": "Läschen", "clear": "Läschen",
"show_areas": "Beräicher uweisen" "show_areas": "Beräicher uweisen"
}, },
"data-table": {
"no-data": "Keng Donnée",
"search": "Sichen"
},
"date-range-picker": { "date-range-picker": {
"end_date": "End Datum", "end_date": "End Datum",
"select": "Auswielen", "select": "Auswielen",
@@ -944,16 +938,6 @@
"introduction": "Benotzt Automatismen fir däin Haus zum Liewen ze bréngen", "introduction": "Benotzt Automatismen fir däin Haus zum Liewen ze bréngen",
"load_error_not_editable": "Nëmmen Automatiounen am automations.yaml kënnen editéiert ginn.", "load_error_not_editable": "Nëmmen Automatiounen am automations.yaml kënnen editéiert ginn.",
"load_error_unknown": "Feeler beim luede vun der Automatioun ({err_no}).", "load_error_unknown": "Feeler beim luede vun der Automatioun ({err_no}).",
"max": {
"parallel": "Max. Unzuel vun parallelen Duerchleef."
},
"modes": {
"documentation": "Dokumentatioun vum Automatisme",
"label": "Modus",
"parallel": "Parrallel",
"restart": "Neistart",
"single": "Eenzel (Standard)"
},
"move_down": "No ënne réckelen", "move_down": "No ënne réckelen",
"move_up": "No uewe réckelen", "move_up": "No uewe réckelen",
"save": "Späicheren", "save": "Späicheren",
@@ -1372,7 +1356,6 @@
"confirm_text": "Du solls déi vun der Lovelace Konfiguratioun an Automatisme läschen falls se dës Entitéiten enthalen.", "confirm_text": "Du solls déi vun der Lovelace Konfiguratioun an Automatisme läschen falls se dës Entitéiten enthalen.",
"confirm_title": "Wëllt dir {number} Entitéite läschen?" "confirm_title": "Wëllt dir {number} Entitéite läschen?"
}, },
"search": "Entitéite sichen",
"selected": "{number} ausgewielt", "selected": "{number} ausgewielt",
"status": { "status": {
"disabled": "Deaktivéiert", "disabled": "Deaktivéiert",
@@ -1403,8 +1386,7 @@
"entity_id": "ID vun der Entitéit", "entity_id": "ID vun der Entitéit",
"name": "Numm", "name": "Numm",
"type": "Typ" "type": "Typ"
}, }
"no_helpers": "Et gesäit sou aus wéi wann nach keng Helpers erstallt goufen."
}, },
"types": { "types": {
"input_boolean": "Ëmschalten", "input_boolean": "Ëmschalten",
@@ -1449,7 +1431,6 @@
"delete_confirm": "Sécher fir dës Integratioun ze läsche?", "delete_confirm": "Sécher fir dës Integratioun ze läsche?",
"device_unavailable": "Apparat net erreechbar", "device_unavailable": "Apparat net erreechbar",
"devices": "{count} {count, plural,\n one {Apparat}\n other {Apparaten}\n}", "devices": "{count} {count, plural,\n one {Apparat}\n other {Apparaten}\n}",
"documentation": "Dokumentatioun",
"entities": "{count} {count, plural,\n one {Entitéit}\n other {Entitéiten}\n}", "entities": "{count} {count, plural,\n one {Entitéit}\n other {Entitéiten}\n}",
"entity_unavailable": "Entitéit net erreechbar", "entity_unavailable": "Entitéit net erreechbar",
"firmware": "Firmware: {version}", "firmware": "Firmware: {version}",
@@ -1508,8 +1489,7 @@
"note_about_integrations": "Net all Integratioune könne nach via den Benotzer Interface konfiguréiert ginn.", "note_about_integrations": "Net all Integratioune könne nach via den Benotzer Interface konfiguréiert ginn.",
"note_about_website_reference": "Méi sin der disponibel op der ", "note_about_website_reference": "Méi sin der disponibel op der ",
"rename_dialog": "Numm vun dësem Objet läschen", "rename_dialog": "Numm vun dësem Objet läschen",
"rename_input_label": "Numm", "rename_input_label": "Numm"
"search": "Integratioune sichen"
}, },
"introduction": "Hei ass et méiglech är Komponenten vum Home Assistant ze konfiguréieren. Net alles ass méiglech fir iwwert den Interface anzestellen, mee mir schaffen drun.", "introduction": "Hei ass et méiglech är Komponenten vum Home Assistant ze konfiguréieren. Net alles ass méiglech fir iwwert den Interface anzestellen, mee mir schaffen drun.",
"logs": { "logs": {
@@ -1662,7 +1642,6 @@
"introduction": "Entitéiten déi zu kengem Apparat gehéiere kënnen hei definéiert ginn.", "introduction": "Entitéiten déi zu kengem Apparat gehéiere kënnen hei definéiert ginn.",
"without_device": "Entitéiten ouni Apparater" "without_device": "Entitéiten ouni Apparater"
}, },
"icon": "Ikon",
"introduction": "Benotzt Zeene fir äert Haus zum Liewen ze bréngen", "introduction": "Benotzt Zeene fir äert Haus zum Liewen ze bréngen",
"load_error_not_editable": "Nëmme Zeene am scenes.yaml kënnen editéiert ginn.", "load_error_not_editable": "Nëmme Zeene am scenes.yaml kënnen editéiert ginn.",
"load_error_unknown": "Feeler beim luede vun der Zeen ({err_no}).", "load_error_unknown": "Feeler beim luede vun der Zeen ({err_no}).",
@@ -1696,23 +1675,9 @@
"delete_confirm": "Sécher fir dësen Skript ze läsche?", "delete_confirm": "Sécher fir dësen Skript ze läsche?",
"delete_script": "Skript läschen", "delete_script": "Skript läschen",
"header": "Skript: {name}", "header": "Skript: {name}",
"icon": "Ikon",
"id": "ID vun der Entitéit",
"id_already_exists": "Dës ID gëtt et schonn",
"id_already_exists_save_error": "Du kanns dëse Skript net späicheren well d'ID net eenzegarteg ass. Wiel eng aaner ID aus oder loss se eidel fir automatesch eng z'erstellen.",
"introduction": "Benotzt Skripter fir eng Sequenz vun Aktiounen auszeféieren.", "introduction": "Benotzt Skripter fir eng Sequenz vun Aktiounen auszeféieren.",
"link_available_actions": "Méi iwwert verfügbar Aktioune liesen.", "link_available_actions": "Méi iwwert verfügbar Aktioune liesen.",
"load_error_not_editable": "Nëmme Skripten am scripts.yaml kënnen editéiert ginn.", "load_error_not_editable": "Nëmme Skripten am scripts.yaml kënnen editéiert ginn.",
"max": {
"parallel": "Max. Unzuel vun parallelen Duerchleef."
},
"modes": {
"documentation": "Dokumentatioun vum Skript",
"label": "Modus",
"parallel": "Parrallel",
"restart": "Neistart",
"single": "Eenzel (Standard)"
},
"sequence": "Sequenz", "sequence": "Sequenz",
"sequence_sentence": "D'Sequenz vun Aktiounen an dësem Skript." "sequence_sentence": "D'Sequenz vun Aktiounen an dësem Skript."
}, },
@@ -2223,7 +2188,6 @@
"name": "Numm", "name": "Numm",
"no_theme": "Kee Thema", "no_theme": "Kee Thema",
"refresh_interval": "Aktualiséierungs Intervall", "refresh_interval": "Aktualiséierungs Intervall",
"search": "Sichen",
"secondary_info_attribute": "Sekundär Informatiouns Attribut", "secondary_info_attribute": "Sekundär Informatiouns Attribut",
"show_icon": "Ikon uweisen?", "show_icon": "Ikon uweisen?",
"show_name": "Numm uweisen?", "show_name": "Numm uweisen?",
@@ -2329,7 +2293,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Kaart dobäisetzen", "add": "Kaart dobäisetzen",
"confirm_cancel": "Sécher fir ofzebriechen ?",
"delete": "Kaart läschen", "delete": "Kaart läschen",
"duplicate": "Kaart Replikéieren", "duplicate": "Kaart Replikéieren",
"edit": "Änneren", "edit": "Änneren",
@@ -2340,15 +2303,12 @@
"pick_card_view_title": "Wéieng Kaart wëllt dir zu ärer {name}Usiicht dobäisetzen?", "pick_card_view_title": "Wéieng Kaart wëllt dir zu ärer {name}Usiicht dobäisetzen?",
"show_code_editor": "Code Editeur uweisen", "show_code_editor": "Code Editeur uweisen",
"show_visual_editor": "Visuellen Editeur uweisen", "show_visual_editor": "Visuellen Editeur uweisen",
"toggle_editor": "Editeur ëmschalten", "toggle_editor": "Editeur ëmschalten"
"typed_header": "{type} Kaart Konfiguratioun",
"unsaved_changes": "Du hues ongespäichert Ännerungen"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Titel änneren", "edit_title": "Titel änneren",
"explanation": "Dësen Titel gëtt iwwert den Usiichte vu Lovelace ugewisen.", "explanation": "Dësen Titel gëtt iwwert den Usiichte vu Lovelace ugewisen.",
"header": "Titel vun ärem Lovelace Benotzer Interface", "header": "Titel vun ärem Lovelace Benotzer Interface"
"title": "Titel"
}, },
"edit_view": { "edit_view": {
"add": "Vue dobäisetzen", "add": "Vue dobäisetzen",
@@ -2435,8 +2395,6 @@
"entity": "Entitéit", "entity": "Entitéit",
"entity_id": "ID vun der Entitéit", "entity_id": "ID vun der Entitéit",
"last_changed": "Läscht Ännerung", "last_changed": "Läscht Ännerung",
"no_data": "Keng onbenotzten Entitéite fonnt",
"search": "Entitéite sichen",
"select_to_add": "Wielt d'Entitéite aus déi zu enger Kaart dobäigesaat solle ginn an klickt den Kaart dobäisetzen Knäppchen", "select_to_add": "Wielt d'Entitéite aus déi zu enger Kaart dobäigesaat solle ginn an klickt den Kaart dobäisetzen Knäppchen",
"title": "Onbenotzten Entitéiten" "title": "Onbenotzten Entitéiten"
}, },
@@ -2539,7 +2497,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Däi Computer ass net erlaabt.",
"not_whitelisted": "Äre Computer ass net fräigeschalt." "not_whitelisted": "Äre Computer ass net fräigeschalt."
}, },
"step": { "step": {
@@ -2715,10 +2672,6 @@
"not_used": "Nach nie benotzt ginn", "not_used": "Nach nie benotzt ginn",
"token_title": "Jeton erneiren fir {clientId}" "token_title": "Jeton erneiren fir {clientId}"
}, },
"suspend": {
"description": "Soll d'Verbindung automateschzougemaach gin nodeems se 5 Minutten verstoppt war?",
"header": "Verbindung autmatesch zoumaachen"
},
"themes": { "themes": {
"dropdown_label": "Thema", "dropdown_label": "Thema",
"error_no_theme": "Keen Thema disponibel", "error_no_theme": "Keen Thema disponibel",

View File

@@ -430,8 +430,6 @@
"activate": "Aktiver" "activate": "Aktiver"
}, },
"script": { "script": {
"cancel": "Avbryt",
"cancel_multiple": "Avbryt {number}",
"execute": "Utfør" "execute": "Utfør"
}, },
"service": { "service": {
@@ -527,9 +525,6 @@
"clear": "Tøm", "clear": "Tøm",
"show_areas": "Vis områder" "show_areas": "Vis områder"
}, },
"data-table": {
"search": "Søk"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Sluttdato", "end_date": "Sluttdato",
"select": "Velg", "select": "Velg",
@@ -559,7 +554,7 @@
"device": "Enhet", "device": "Enhet",
"entity": "Beslektede entiteter", "entity": "Beslektede entiteter",
"group": "Del av følgende grupper", "group": "Del av følgende grupper",
"integration": "Integrasjon", "integration": "Integrasjoner",
"no_related_found": "Ingen relaterte elementer funnet.", "no_related_found": "Ingen relaterte elementer funnet.",
"scene": "Del av følgende scener", "scene": "Del av følgende scener",
"script": "Del av følgende skript" "script": "Del av følgende skript"
@@ -943,19 +938,6 @@
"introduction": "Bruk automasjon for å få liv i hjemmet ditt", "introduction": "Bruk automasjon for å få liv i hjemmet ditt",
"load_error_not_editable": "Kun automasjoner i automations.yaml kan redigeres.", "load_error_not_editable": "Kun automasjoner i automations.yaml kan redigeres.",
"load_error_unknown": "Feil ved lasting av automasjon ({err_no}).", "load_error_unknown": "Feil ved lasting av automasjon ({err_no}).",
"max": {
"parallel": "Maks antall parallelle kjøringer",
"queued": "Kølengde"
},
"modes": {
"description": "Modusen styrer hva som skjer når automatiseringen utløses mens handlingene fremdeles kjører fra en tidligere trigger. Sjekk {documentation_link} for mer info.",
"documentation": "automatisering dokumentasjon",
"label": "Modus",
"parallel": "Parallell",
"queued": "I kø",
"restart": "Omstart",
"single": "Enkel (standard)"
},
"move_down": "Flytt ned", "move_down": "Flytt ned",
"move_up": "Flytt opp", "move_up": "Flytt opp",
"save": "Lagre", "save": "Lagre",
@@ -1374,7 +1356,6 @@
"confirm_text": "Du bør fjerne dem fra Lovelace-konfigurasjonen og automasjoner hvis de inneholder disse entitetene.", "confirm_text": "Du bør fjerne dem fra Lovelace-konfigurasjonen og automasjoner hvis de inneholder disse entitetene.",
"confirm_title": "Vil du fjerne {number} enheter?" "confirm_title": "Vil du fjerne {number} enheter?"
}, },
"search": "Søk entiteter",
"selected": "{number} valgte", "selected": "{number} valgte",
"status": { "status": {
"disabled": "Deaktivert", "disabled": "Deaktivert",
@@ -1405,8 +1386,7 @@
"entity_id": "Entitets-ID", "entity_id": "Entitets-ID",
"name": "Navn", "name": "Navn",
"type": "" "type": ""
}, }
"no_helpers": "Det ser ut som om du ikke har noen hjelpere ennå!"
}, },
"types": { "types": {
"input_boolean": "Veksle", "input_boolean": "Veksle",
@@ -1437,7 +1417,7 @@
"title": "Informasjon" "title": "Informasjon"
}, },
"integration_panel_move": { "integration_panel_move": {
"link_integration_page": "integrasjonssiden", "link_integration_page": "integrasjonsside",
"missing_zha": "Mangler ZHA konfigurasjonspanelet? Det ble flyttet til ZHA oppføringen på {integrations_page}.", "missing_zha": "Mangler ZHA konfigurasjonspanelet? Det ble flyttet til ZHA oppføringen på {integrations_page}.",
"missing_zwave": "Mangler Z-Wave konfigurasjonspanelet? Det ble flyttet til Z-Wave oppføringen på {integrations_page}." "missing_zwave": "Mangler Z-Wave konfigurasjonspanelet? Det ble flyttet til Z-Wave oppføringen på {integrations_page}."
}, },
@@ -1510,8 +1490,7 @@
"note_about_integrations": "Ikke alle integrasjoner kan konfigureres via brukergrensesnittet ennå.", "note_about_integrations": "Ikke alle integrasjoner kan konfigureres via brukergrensesnittet ennå.",
"note_about_website_reference": "Flere er tilgjengelige på", "note_about_website_reference": "Flere er tilgjengelige på",
"rename_dialog": "Redigere navnet på denne config-oppføringen", "rename_dialog": "Redigere navnet på denne config-oppføringen",
"rename_input_label": "Navn på oppføring", "rename_input_label": "Navn på oppføring"
"search": "Søk integrasjoner"
}, },
"introduction": "Her er det mulig å konfigurere dine komponenter og Home Assistant. Ikke alt er mulig å konfigurere fra brukergrensesnittet enda, men vi jobber med det.", "introduction": "Her er det mulig å konfigurere dine komponenter og Home Assistant. Ikke alt er mulig å konfigurere fra brukergrensesnittet enda, men vi jobber med det.",
"logs": { "logs": {
@@ -1664,7 +1643,6 @@
"introduction": "Enheter som ikke tilhører en enhet kan angis her.", "introduction": "Enheter som ikke tilhører en enhet kan angis her.",
"without_device": "Entiteter uten enhet" "without_device": "Entiteter uten enhet"
}, },
"icon": "Ikon",
"introduction": "Bruk scener for å gjøre hjemmet ditt mer levende.", "introduction": "Bruk scener for å gjøre hjemmet ditt mer levende.",
"load_error_not_editable": "Bare scener i scener.yaml kan redigeres.", "load_error_not_editable": "Bare scener i scener.yaml kan redigeres.",
"load_error_unknown": "Feil ved lasting av scene ({err_no}).", "load_error_unknown": "Feil ved lasting av scene ({err_no}).",
@@ -1698,26 +1676,9 @@
"delete_confirm": "Er du sikker på at du vil slette dette skriptet?", "delete_confirm": "Er du sikker på at du vil slette dette skriptet?",
"delete_script": "Slett skript", "delete_script": "Slett skript",
"header": "Skript: {name}", "header": "Skript: {name}",
"icon": "Ikon",
"id": "Entitets-ID",
"id_already_exists": "Denne IDen finnes allerede",
"id_already_exists_save_error": "Du kan ikke lagre dette skriptet fordi IDen ikke er unik, velg en annen ID eller la den stå tom for automatisk å generere en.",
"introduction": "Bruk skript til å utføre en sekvens med handlinger.", "introduction": "Bruk skript til å utføre en sekvens med handlinger.",
"link_available_actions": "Finn ut mer om tilgjengelige handlinger.", "link_available_actions": "Finn ut mer om tilgjengelige handlinger.",
"load_error_not_editable": "Bare skript inne i skript.yaml kan redigeres.", "load_error_not_editable": "Bare skript inne i skript.yaml kan redigeres.",
"max": {
"parallel": "Maks antall parallelle kjøringer",
"queued": "Kølengde"
},
"modes": {
"description": "Modusen styrer hva som skjer når skriptet utløses mens det fremdeles kjører fra en eller flere tidligere påkallinger. Sjekk {documentation_link} for mer info.",
"documentation": "skript dokumentasjon",
"label": "Modus",
"parallel": "Parallell",
"queued": "I kø",
"restart": "Omstart",
"single": "Enkel (standard)"
},
"sequence": "Sekvens", "sequence": "Sekvens",
"sequence_sentence": "Sekvensen av handlingene til dette skriptet." "sequence_sentence": "Sekvensen av handlingene til dette skriptet."
}, },
@@ -2233,7 +2194,6 @@
"name": "Navn", "name": "Navn",
"no_theme": "Ingen tema", "no_theme": "Ingen tema",
"refresh_interval": "Oppdateringsintervall", "refresh_interval": "Oppdateringsintervall",
"search": "Søk",
"secondary_info_attribute": "Sekundær informasjonsattributt", "secondary_info_attribute": "Sekundær informasjonsattributt",
"show_icon": "Vis ikon?", "show_icon": "Vis ikon?",
"show_name": "Vis navn?", "show_name": "Vis navn?",
@@ -2339,7 +2299,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Legg til kort", "add": "Legg til kort",
"confirm_cancel": "Er du sikker på at du vil avbryte?",
"delete": "Slett kort", "delete": "Slett kort",
"duplicate": "Dupliser kort", "duplicate": "Dupliser kort",
"edit": "Rediger", "edit": "Rediger",
@@ -2350,14 +2309,12 @@
"pick_card_view_title": "Hvilket kort vil du legge til i {name} visningen?", "pick_card_view_title": "Hvilket kort vil du legge til i {name} visningen?",
"show_code_editor": "Vis koderedigering", "show_code_editor": "Vis koderedigering",
"show_visual_editor": "Vis visuell redigering", "show_visual_editor": "Vis visuell redigering",
"toggle_editor": "Bytt redigering", "toggle_editor": "Bytt redigering"
"unsaved_changes": "Du har endringer som ikke er lagret"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Rediger tittel", "edit_title": "Rediger tittel",
"explanation": "Denne tittelen vises over alle visningene dine i Lovelace brukergrensesnittet.", "explanation": "Denne tittelen vises over alle visningene dine i Lovelace brukergrensesnittet.",
"header": "Tittel på ditt Lovelace brukergrensesnitt", "header": "Tittel på ditt Lovelace brukergrensesnitt"
"title": "Tittel"
}, },
"edit_view": { "edit_view": {
"add": "Legg til visning", "add": "Legg til visning",
@@ -2546,7 +2503,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Datamaskinen din er ikke tillatt.",
"not_whitelisted": "Datamaskinen din er ikke hvitelistet." "not_whitelisted": "Datamaskinen din er ikke hvitelistet."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "Activeren" "activate": "Activeren"
}, },
"script": { "script": {
"cancel": "Annuleer",
"cancel_multiple": "Annuleer {number}",
"execute": "Uitvoeren" "execute": "Uitvoeren"
}, },
"service": { "service": {
@@ -527,10 +525,6 @@
"clear": "Wis", "clear": "Wis",
"show_areas": "Toon gebieden" "show_areas": "Toon gebieden"
}, },
"data-table": {
"no-data": "Geen gegevens",
"search": "Zoek"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Einddatum", "end_date": "Einddatum",
"select": "Selecteer", "select": "Selecteer",
@@ -944,19 +938,6 @@
"introduction": "Gebruik automatiseringen om je huis tot leven te brengen.", "introduction": "Gebruik automatiseringen om je huis tot leven te brengen.",
"load_error_not_editable": "Alleen automatiseringen in automations.yaml kunnen worden bewerkt.", "load_error_not_editable": "Alleen automatiseringen in automations.yaml kunnen worden bewerkt.",
"load_error_unknown": "Fout bij laden van automatisering ({err_no}).", "load_error_unknown": "Fout bij laden van automatisering ({err_no}).",
"max": {
"parallel": "Maximale aantal parallelle runs",
"queued": "Lengte van de wachtrij"
},
"modes": {
"description": "De modus bepaalt wat er gebeurt wanneer de automatisering wordt geactiveerd terwijl de acties nog steeds worden uitgevoerd door een vorige trigger. Controleer de {documentation_link} voor meer informatie.",
"documentation": "Automatisering documentatie",
"label": "Modus",
"parallel": "Parallel",
"queued": "In de wachtrij geplaatst",
"restart": "Herstarten",
"single": "Enkelvoudig (standaard)"
},
"move_down": "Verplaats omlaag", "move_down": "Verplaats omlaag",
"move_up": "Verplaats omhoog", "move_up": "Verplaats omhoog",
"save": "Opslaan", "save": "Opslaan",
@@ -1375,7 +1356,6 @@
"confirm_text": "Je moet ze zelf nog verwijderen uit je Lovelace-configuratie en automatiseringen als ze deze entiteiten bevatten.", "confirm_text": "Je moet ze zelf nog verwijderen uit je Lovelace-configuratie en automatiseringen als ze deze entiteiten bevatten.",
"confirm_title": "Wilt je {number} entiteiten verwijderen?" "confirm_title": "Wilt je {number} entiteiten verwijderen?"
}, },
"search": "Zoek entiteiten",
"selected": "{number} geselecteerd", "selected": "{number} geselecteerd",
"status": { "status": {
"disabled": "Uitgeschakeld", "disabled": "Uitgeschakeld",
@@ -1406,8 +1386,7 @@
"entity_id": "Entiteits-ID", "entity_id": "Entiteits-ID",
"name": "Naam", "name": "Naam",
"type": "Type" "type": "Type"
}, }
"no_helpers": "Er zijn geen helpers gevonden!"
}, },
"types": { "types": {
"input_boolean": "Schakelaar", "input_boolean": "Schakelaar",
@@ -1511,8 +1490,7 @@
"note_about_integrations": "Nog niet alle integraties kunnen via de UI worden geconfigureerd.", "note_about_integrations": "Nog niet alle integraties kunnen via de UI worden geconfigureerd.",
"note_about_website_reference": "Meer zijn beschikbaar op de ", "note_about_website_reference": "Meer zijn beschikbaar op de ",
"rename_dialog": "Bewerk de naam van dit configuratie item", "rename_dialog": "Bewerk de naam van dit configuratie item",
"rename_input_label": "Invoernaam", "rename_input_label": "Invoernaam"
"search": "Zoek integraties"
}, },
"introduction": "Hier kun je je componenten en Home Assistant configureren. Het is nog niet mogelijk om alles te configureren vanuit de interface, maar we werken er aan.", "introduction": "Hier kun je je componenten en Home Assistant configureren. Het is nog niet mogelijk om alles te configureren vanuit de interface, maar we werken er aan.",
"logs": { "logs": {
@@ -1610,7 +1588,7 @@
"description_listen": "Luisteren naar onderwerp", "description_listen": "Luisteren naar onderwerp",
"description_publish": "Publiceer een pakket", "description_publish": "Publiceer een pakket",
"listening_to": "Luisteren naar", "listening_to": "Luisteren naar",
"message_received": "Bericht {id} ontvangen op {topic} om {time}:", "message_received": "Bericht {id} ontvangen op {topic} om {time} :",
"payload": "Payload (sjabloon toegestaan)", "payload": "Payload (sjabloon toegestaan)",
"publish": "Publiceer", "publish": "Publiceer",
"start_listening": "Begin te luisteren", "start_listening": "Begin te luisteren",
@@ -1665,7 +1643,6 @@
"introduction": "Entiteiten die niet bij apparaten horen kunnen hier ingesteld worden.", "introduction": "Entiteiten die niet bij apparaten horen kunnen hier ingesteld worden.",
"without_device": "Entiteiten zonder apparaat" "without_device": "Entiteiten zonder apparaat"
}, },
"icon": "Pictogram",
"introduction": "Gebruik scènes om je huis tot leven te brengen.", "introduction": "Gebruik scènes om je huis tot leven te brengen.",
"load_error_not_editable": "Alleen scènes die zijn gedefinieerd in scenes.yaml kunnen worden bewerkt.", "load_error_not_editable": "Alleen scènes die zijn gedefinieerd in scenes.yaml kunnen worden bewerkt.",
"load_error_unknown": "Fout bij het laden van de scène ({err_no}).", "load_error_unknown": "Fout bij het laden van de scène ({err_no}).",
@@ -1699,26 +1676,9 @@
"delete_confirm": "Weet je zeker dat je dit script wilt verwijderen?", "delete_confirm": "Weet je zeker dat je dit script wilt verwijderen?",
"delete_script": "Verwijder script", "delete_script": "Verwijder script",
"header": "Script: {name}", "header": "Script: {name}",
"icon": "Pictogram",
"id": "Entiteits-ID",
"id_already_exists": "Deze ID bestaat al",
"id_already_exists_save_error": "U kunt dit script niet opslaan omdat de ID niet uniek is, kies een andere ID of laat deze leeg om er automatisch een te genereren.",
"introduction": "Gebruik scripts om een reeks acties uit te voeren.", "introduction": "Gebruik scripts om een reeks acties uit te voeren.",
"link_available_actions": "Meer informatie over beschikbare acties.", "link_available_actions": "Meer informatie over beschikbare acties.",
"load_error_not_editable": "Alleen scripts in scripts.yaml kunnen worden bewerkt.", "load_error_not_editable": "Alleen scripts in scripts.yaml kunnen worden bewerkt.",
"max": {
"parallel": "Maximum aantal parallelle runs",
"queued": "Lengte van de wachtrij"
},
"modes": {
"description": "De modus bepaalt wat er gebeurt wanneer het script wordt aangeroepen terwijl het nog steeds wordt uitgevoerd vanuit een of meer eerdere aanroepen. Controleer de {documentation_link} voor meer informatie.",
"documentation": "Scriptdocumentatie",
"label": "Modus",
"parallel": "Parallel",
"queued": "In de wachtrij geplaatst",
"restart": "Herstarten",
"single": "Enkelvoudig (standaard)"
},
"sequence": "Reeks", "sequence": "Reeks",
"sequence_sentence": "De reeks van acties in dit script." "sequence_sentence": "De reeks van acties in dit script."
}, },
@@ -1816,7 +1776,7 @@
"discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.", "discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.",
"discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.", "discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.",
"header": "Zigbee Home Automation - Apparaten toevoegen", "header": "Zigbee Home Automation - Apparaten toevoegen",
"no_devices_found": "Geen apparaten gevonden, zorg ervoor dat ze in de koppelingsmodus staan en dat de apparaten activiteit blijven maken gedurende het koppelen.", "no_devices_found": "Geen apparaten gevonden, zorg ervoor dat ze in de koppelingsmodus staan en dat gedurende het ontdekken ze actief zijn.",
"pairing_mode": "Zorg ervoor dat de apparaten in de koppelingsmodus staan. Kijk in de instructies van het apparaat hoe dit moet.", "pairing_mode": "Zorg ervoor dat de apparaten in de koppelingsmodus staan. Kijk in de instructies van het apparaat hoe dit moet.",
"search_again": "Opnieuw zoeken", "search_again": "Opnieuw zoeken",
"spinner": "Zoeken naar ZHA Zigbee-apparaten ..." "spinner": "Zoeken naar ZHA Zigbee-apparaten ..."
@@ -1987,21 +1947,15 @@
"group": "Groep", "group": "Groep",
"header": "Z-Wave Knooppunt-beheer", "header": "Z-Wave Knooppunt-beheer",
"introduction": "Voer Z-Wave commando's uit die een enkel knooppunt beïnvloeden. Kies een knooppunt om een lijst met beschikbare commando's te zien.", "introduction": "Voer Z-Wave commando's uit die een enkel knooppunt beïnvloeden. Kies een knooppunt om een lijst met beschikbare commando's te zien.",
"node_protection": "Node beveiliging",
"node_to_control": "Node om te besturen",
"nodes": "Knooppunten", "nodes": "Knooppunten",
"nodes_hint": "Selecteer knooppunt om de opties per knooppunt te bekijken", "nodes_hint": "Selecteer knooppunt om de opties per knooppunt te bekijken",
"nodes_in_group": "Andere nodes in deze groep:",
"pooling_intensity": "Polling intensiteit",
"protection": "Bescherming", "protection": "Bescherming",
"remove_broadcast": "Broadcast verwijderen",
"remove_from_group": "Verwijderen uit groep", "remove_from_group": "Verwijderen uit groep",
"set_protection": "Bescherming instellen" "set_protection": "Bescherming instellen"
}, },
"ozw_log": { "ozw_log": {
"header": "OZW-logboek", "header": "OZW-logboek",
"introduction": "Bekijk het logboek. 0 is het minimum (laadt het gehele logboek) en 1000 is het maximum. Laad toont een statisch logboek en staart wordt automatisch bijgewerkt met het laatst opgegeven aantal regels van het logboek.", "introduction": "Bekijk het logboek. 0 is het minimum (laadt het gehele logboek) en 1000 is het maximum. Laad toont een statisch logboek en staart wordt automatisch bijgewerkt met het laatst opgegeven aantal regels van het logboek.",
"last_log_lines": "Aantal laatste logboekregels",
"load": "Laden", "load": "Laden",
"tail": "Staart" "tail": "Staart"
}, },
@@ -2232,7 +2186,6 @@
"name": "Naam", "name": "Naam",
"no_theme": "Geen thema", "no_theme": "Geen thema",
"refresh_interval": "Vernieuwingsinterval", "refresh_interval": "Vernieuwingsinterval",
"search": "Zoek",
"secondary_info_attribute": "Secundair Info attribuut", "secondary_info_attribute": "Secundair Info attribuut",
"show_icon": "Pictogram Weergeven?", "show_icon": "Pictogram Weergeven?",
"show_name": "Naam weergeven?", "show_name": "Naam weergeven?",
@@ -2319,7 +2272,7 @@
"name": "Boodschappenlijst" "name": "Boodschappenlijst"
}, },
"thermostat": { "thermostat": {
"description": "De Thermostaat-kaart geeft controle over uw klimaateenheid. Hiermee kunt u de temperatuur en modus van de entiteit wijzigen.", "description": "De Thermostat-kaart geeft controle over uw klimaateenheid. Hiermee kunt u de temperatuur en modus van de entiteit wijzigen.",
"name": "Thermostaat" "name": "Thermostaat"
}, },
"vertical-stack": { "vertical-stack": {
@@ -2338,7 +2291,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Kaart toevoegen", "add": "Kaart toevoegen",
"confirm_cancel": "Weet u zeker dat u wilt afbreken?",
"delete": "Verwijder kaart", "delete": "Verwijder kaart",
"duplicate": "Dupliceer kaart", "duplicate": "Dupliceer kaart",
"edit": "Bewerken", "edit": "Bewerken",
@@ -2349,15 +2301,12 @@
"pick_card_view_title": "Welke kaart wil je toevoegen aan je {name} weergave?", "pick_card_view_title": "Welke kaart wil je toevoegen aan je {name} weergave?",
"show_code_editor": "Code-editor weergeven", "show_code_editor": "Code-editor weergeven",
"show_visual_editor": "Visual Editor weergeven", "show_visual_editor": "Visual Editor weergeven",
"toggle_editor": "Toggle Editor", "toggle_editor": "Toggle Editor"
"typed_header": "{type} Kaartconfiguratie",
"unsaved_changes": "U heeft niet-opgelsagen wijzigingen"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Wijzig titel", "edit_title": "Wijzig titel",
"explanation": "Deze titel wordt getoond in al je Lovelace weergaven.", "explanation": "Deze titel wordt getoond in al je Lovelace weergaven.",
"header": "Titel van je Lovelace UI", "header": "Titel van je Lovelace UI"
"title": "Titel"
}, },
"edit_view": { "edit_view": {
"add": "Weergave toevoegen", "add": "Weergave toevoegen",
@@ -2444,8 +2393,6 @@
"entity": "Entiteit", "entity": "Entiteit",
"entity_id": "Entiteits-ID", "entity_id": "Entiteits-ID",
"last_changed": "Laatst gewijzigd", "last_changed": "Laatst gewijzigd",
"no_data": "Geen ongebruikte entiteiten gevonden",
"search": "Zoek entiteiten",
"select_to_add": "Selecteer de entiteiten die je aan een kaart wilt toevoegen en klik vervolgens op de knop Kaart toevoegen.", "select_to_add": "Selecteer de entiteiten die je aan een kaart wilt toevoegen en klik vervolgens op de knop Kaart toevoegen.",
"title": "Ongebruikte entiteiten" "title": "Ongebruikte entiteiten"
}, },
@@ -2548,7 +2495,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Uw computer is niet toegestaan.",
"not_whitelisted": "Je computer staat niet op de whitelist." "not_whitelisted": "Je computer staat niet op de whitelist."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "Aktywuj" "activate": "Aktywuj"
}, },
"script": { "script": {
"cancel": "Anuluj",
"cancel_multiple": "Anuluj {number}",
"execute": "Uruchom" "execute": "Uruchom"
}, },
"service": { "service": {
@@ -527,10 +525,6 @@
"clear": "Wyczyść", "clear": "Wyczyść",
"show_areas": "Pokaż obszary" "show_areas": "Pokaż obszary"
}, },
"data-table": {
"no-data": "Brak danych",
"search": "Szukaj"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Data końcowa", "end_date": "Data końcowa",
"select": "Wybierz", "select": "Wybierz",
@@ -944,19 +938,6 @@
"introduction": "Użyj automatyzacji, aby ożywić swój dom", "introduction": "Użyj automatyzacji, aby ożywić swój dom",
"load_error_not_editable": "Tylko automatyzacje zdefiniowane w pliku automations.yaml są edytowalne.", "load_error_not_editable": "Tylko automatyzacje zdefiniowane w pliku automations.yaml są edytowalne.",
"load_error_unknown": "Wystąpił błąd podczas ładowania automatyzacji ({err_no}).", "load_error_unknown": "Wystąpił błąd podczas ładowania automatyzacji ({err_no}).",
"max": {
"parallel": "Maksymalna liczba równoległych uruchomień",
"queued": "Długość kolejki"
},
"modes": {
"description": "Tryb kontroluje, co się dzieje podczas uruchamiania automatyzacji, gdy jest ona nadal wykonywana z jednego lub kilku poprzednich uruchomień. Zapoznaj się z {documentation_link} aby uzyskać więcej informacji.",
"documentation": "dokumentacją automatyzacji",
"label": "Tryb",
"parallel": "Równolegle",
"queued": "Kolejkowanie",
"restart": "Restart",
"single": "Pojedynczy (domyślnie)"
},
"move_down": "Przesuń w dół", "move_down": "Przesuń w dół",
"move_up": "Przesuń w górę", "move_up": "Przesuń w górę",
"save": "Zapisz", "save": "Zapisz",
@@ -1375,7 +1356,6 @@
"confirm_text": "Powinieneś uprzednio usunąć integrację z automatyzacji i konfiguracji Lovelace, jeśli encje w niej występują.", "confirm_text": "Powinieneś uprzednio usunąć integrację z automatyzacji i konfiguracji Lovelace, jeśli encje w niej występują.",
"confirm_title": "Czy chcesz usunąć encje: {number}?" "confirm_title": "Czy chcesz usunąć encje: {number}?"
}, },
"search": "Szukaj encji",
"selected": "wybrano {number}", "selected": "wybrano {number}",
"status": { "status": {
"disabled": "Wyłączone", "disabled": "Wyłączone",
@@ -1406,8 +1386,7 @@
"entity_id": "Identyfikator encji", "entity_id": "Identyfikator encji",
"name": "Nazwa", "name": "Nazwa",
"type": "Typ" "type": "Typ"
}, }
"no_helpers": "Wygląda na to, że jeszcze nie masz pomocników!"
}, },
"types": { "types": {
"input_boolean": "Przełącznik", "input_boolean": "Przełącznik",
@@ -1511,8 +1490,7 @@
"note_about_integrations": "Jeszcze nie wszystkie integracje można skonfigurować za pomocą interfejsu użytkownika.", "note_about_integrations": "Jeszcze nie wszystkie integracje można skonfigurować za pomocą interfejsu użytkownika.",
"note_about_website_reference": "Więcej jest dostępnych na stronie integracji ", "note_about_website_reference": "Więcej jest dostępnych na stronie integracji ",
"rename_dialog": "Edytuj nazwę tego wpisu konfiguracji", "rename_dialog": "Edytuj nazwę tego wpisu konfiguracji",
"rename_input_label": "Nazwa wpisu", "rename_input_label": "Nazwa wpisu"
"search": "Szukaj integracji"
}, },
"introduction": "Tutaj możesz skonfigurować Home Assistanta i jego komponenty. Nie wszystkie opcje można konfigurować z interfejsu użytkownika, ale pracujemy nad tym.", "introduction": "Tutaj możesz skonfigurować Home Assistanta i jego komponenty. Nie wszystkie opcje można konfigurować z interfejsu użytkownika, ale pracujemy nad tym.",
"logs": { "logs": {
@@ -1665,7 +1643,6 @@
"introduction": "W tym miejscu można konfigurować encje, które nie należą do żadnego urządzenia.", "introduction": "W tym miejscu można konfigurować encje, które nie należą do żadnego urządzenia.",
"without_device": "Encje bez urządzenia" "without_device": "Encje bez urządzenia"
}, },
"icon": "Ikona",
"introduction": "Użyj scen, aby ożywić swój dom.", "introduction": "Użyj scen, aby ożywić swój dom.",
"load_error_not_editable": "Tylko sceny zdefiniowane w pliku scenes.yaml są edytowalne.", "load_error_not_editable": "Tylko sceny zdefiniowane w pliku scenes.yaml są edytowalne.",
"load_error_unknown": "Błąd ładowania sceny ({err_no}).", "load_error_unknown": "Błąd ładowania sceny ({err_no}).",
@@ -1699,26 +1676,9 @@
"delete_confirm": "Czy na pewno chcesz usunąć ten skrypt?", "delete_confirm": "Czy na pewno chcesz usunąć ten skrypt?",
"delete_script": "Usuń skrypt", "delete_script": "Usuń skrypt",
"header": "Skrypt: {name}", "header": "Skrypt: {name}",
"icon": "Ikona",
"id": "Identyfikator encji",
"id_already_exists": "Ten identyfikator już istnieje",
"id_already_exists_save_error": "Nie możesz zapisać tego skryptu, ponieważ identyfikator nie jest unikalny, wprowadź inny identyfikator lub pozostaw pole puste, aby wygenerować go automatycznie.",
"introduction": "Użyj skryptów, aby wykonać sekwencję akcji.", "introduction": "Użyj skryptów, aby wykonać sekwencję akcji.",
"link_available_actions": "Dowiedz się więcej o dostępnych akcjach.", "link_available_actions": "Dowiedz się więcej o dostępnych akcjach.",
"load_error_not_editable": "Tylko skrypty zdefiniowane w pliku scripts.yaml są edytowalne.", "load_error_not_editable": "Tylko skrypty zdefiniowane w pliku scripts.yaml są edytowalne.",
"max": {
"parallel": "Maksymalna liczba równoległych uruchomień",
"queued": "Długość kolejki"
},
"modes": {
"description": "Tryb kontroluje, co się dzieje podczas uruchamiania skryptu, gdy jest on nadal wykonywany z jednego lub kilku poprzednich uruchomień. Zapoznaj się z {documentation_link} aby uzyskać więcej informacji.",
"documentation": "dokumentacją skryptów",
"label": "Tryb",
"parallel": "Równolegle",
"queued": "Kolejkowanie",
"restart": "Restart",
"single": "Pojedynczy (domyślnie)"
},
"sequence": "Sekwencja", "sequence": "Sekwencja",
"sequence_sentence": "Sekwencja akcji tego skryptu." "sequence_sentence": "Sekwencja akcji tego skryptu."
}, },
@@ -2234,7 +2194,6 @@
"name": "Nazwa", "name": "Nazwa",
"no_theme": "Bez motywu", "no_theme": "Bez motywu",
"refresh_interval": "Częstotliwość odświeżania", "refresh_interval": "Częstotliwość odświeżania",
"search": "Szukaj",
"secondary_info_attribute": "Dodatkowy atrybut informacyjny", "secondary_info_attribute": "Dodatkowy atrybut informacyjny",
"show_icon": "Wyświetlanie ikony", "show_icon": "Wyświetlanie ikony",
"show_name": "Wyświetlanie nazwy", "show_name": "Wyświetlanie nazwy",
@@ -2340,7 +2299,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Dodaj kartę", "add": "Dodaj kartę",
"confirm_cancel": "Czy na pewno chcesz anulować?",
"delete": "Usuń kartę", "delete": "Usuń kartę",
"duplicate": "Duplikuj kartę", "duplicate": "Duplikuj kartę",
"edit": "Edytuj", "edit": "Edytuj",
@@ -2351,15 +2309,12 @@
"pick_card_view_title": "Którą kartę chcesz dodać do widoku {name}?", "pick_card_view_title": "Którą kartę chcesz dodać do widoku {name}?",
"show_code_editor": "Edytor kodu", "show_code_editor": "Edytor kodu",
"show_visual_editor": "Edytor wizualny", "show_visual_editor": "Edytor wizualny",
"toggle_editor": "Przełącz edytor", "toggle_editor": "Przełącz edytor"
"typed_header": "Konfiguracja karty {type}",
"unsaved_changes": "Masz niezapisane zmiany"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Edytuj tytuł", "edit_title": "Edytuj tytuł",
"explanation": "Tytuł jest wyświetlany ponad wszystkimi widokami interfejsu użytkownika Lovelace", "explanation": "Tytuł jest wyświetlany ponad wszystkimi widokami interfejsu użytkownika Lovelace",
"header": "Tytuł interfejsu użytkownika Lovelace", "header": "Tytuł interfejsu użytkownika Lovelace"
"title": "Tytuł"
}, },
"edit_view": { "edit_view": {
"add": "Dodaj widok", "add": "Dodaj widok",
@@ -2446,8 +2401,6 @@
"entity": "Encja", "entity": "Encja",
"entity_id": "Identyfikator encji", "entity_id": "Identyfikator encji",
"last_changed": "Ostatnia zmiana", "last_changed": "Ostatnia zmiana",
"no_data": "Brak nieużywanych encji",
"search": "Wyszukaj encje",
"select_to_add": "Wybierz encje, które chcesz dodać do karty, a następnie kliknij przycisk dodawania karty.", "select_to_add": "Wybierz encje, które chcesz dodać do karty, a następnie kliknij przycisk dodawania karty.",
"title": "Nieużywane encje" "title": "Nieużywane encje"
}, },
@@ -2550,7 +2503,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Twój komputer nie ma zezwolenia.",
"not_whitelisted": "Twój komputer nie znajduje się na białej liście." "not_whitelisted": "Twój komputer nie znajduje się na białej liście."
}, },
"step": { "step": {

View File

@@ -48,19 +48,6 @@
"none": "Nenhum", "none": "Nenhum",
"sleep": "Suspender" "sleep": "Suspender"
} }
},
"humidifier": {
"mode": {
"auto": "Automático",
"away": "Ausente",
"baby": "Bebê",
"boost": "Turbo",
"comfort": "Conforto",
"eco": "Econômico",
"home": "Casa",
"normal": "Normal",
"sleep": "Sono"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -401,12 +388,6 @@
"reverse": "Reverter", "reverse": "Reverter",
"speed": "Velocidade" "speed": "Velocidade"
}, },
"humidifier": {
"humidity": "Umidade desejada",
"mode": "Modo",
"on_entity": "{name} ligado",
"target_humidity_entity": "umidade desejada em {name}"
},
"light": { "light": {
"brightness": "Brilho", "brightness": "Brilho",
"color_temperature": "Temperatura de cor", "color_temperature": "Temperatura de cor",
@@ -430,8 +411,6 @@
"activate": "Ativar" "activate": "Ativar"
}, },
"script": { "script": {
"cancel": "Cancelar",
"cancel_multiple": "Cancelar {number}",
"execute": "Executar" "execute": "Executar"
}, },
"service": { "service": {
@@ -501,10 +480,8 @@
"delete": "Eliminar", "delete": "Eliminar",
"error_required": "Obrigatório", "error_required": "Obrigatório",
"loading": "Carregando", "loading": "Carregando",
"menu": "Menu",
"next": "Próximo", "next": "Próximo",
"no": "Não", "no": "Não",
"overflow_menu": "Menu expansível",
"previous": "Anterior", "previous": "Anterior",
"refresh": "Atualizar", "refresh": "Atualizar",
"save": "Salvar", "save": "Salvar",
@@ -527,15 +504,6 @@
"clear": "Limpar", "clear": "Limpar",
"show_areas": "Mostrar áreas" "show_areas": "Mostrar áreas"
}, },
"data-table": {
"no-data": "Sem dados",
"search": "Procurar"
},
"date-range-picker": {
"end_date": "Data final",
"select": "Selecione",
"start_date": "Data de início"
},
"device-picker": { "device-picker": {
"clear": "Limpar", "clear": "Limpar",
"device": "Dispositivo", "device": "Dispositivo",
@@ -652,7 +620,7 @@
"pattern": "Padrão Regex para validação do lado do cliente", "pattern": "Padrão Regex para validação do lado do cliente",
"text": "Texto" "text": "Texto"
}, },
"platform_not_loaded": "A integração {plataforma} não está carregada. Por favor adicione-a em sua configuração adicionando 'default_config:' ou ''{platform}:''.", "platform_not_loaded": "A integração {platform} não está carregada. Por favor, adicione sua configuração adicionando 'default_config:' ou ''{platform}:''.",
"required_error_msg": "Este campo é obrigatório", "required_error_msg": "Este campo é obrigatório",
"yaml_not_editable": "As configurações desta entidade não podem ser editadas a partir da interface do usuário. Somente entidades configuradas a partir da interface do usuário são configuráveis a partir da interface do usuário." "yaml_not_editable": "As configurações desta entidade não podem ser editadas a partir da interface do usuário. Somente entidades configuradas a partir da interface do usuário são configuráveis a partir da interface do usuário."
}, },
@@ -703,7 +671,7 @@
"payload_display": "Exibição de carga", "payload_display": "Exibição de carga",
"recent_messages": "{n} mensagem(ns) recebida(s) mais recentemente", "recent_messages": "{n} mensagem(ns) recebida(s) mais recentemente",
"show_as_yaml": "Mostrar como YAML", "show_as_yaml": "Mostrar como YAML",
"title": "Informação de depuração de {device}", "title": "Informação de depuração do {device}",
"triggers": "Gatilhos" "triggers": "Gatilhos"
}, },
"options_flow": { "options_flow": {
@@ -724,10 +692,10 @@
}, },
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "Adicionar dispositivos através deste dispositivo", "add": "Adicionar Dispositivos",
"reconfigure": "Reconfigurar O Dispositivo", "reconfigure": "Reconfigurar O Dispositivo",
"remove": "Remover dispositivo", "remove": "Remover dispositivo",
"zigbee_information": "Assinatura de dispositivo Zigbee" "zigbee_information": "Informações sobre o Zigbee"
}, },
"confirmations": { "confirmations": {
"remove": "Tem a certeza que quer remover o dispositivo?" "remove": "Tem a certeza que quer remover o dispositivo?"
@@ -747,7 +715,7 @@
"unknown": "Desconhecido", "unknown": "Desconhecido",
"zha_device_card": { "zha_device_card": {
"area_picker_label": "Área", "area_picker_label": "Área",
"device_name_placeholder": "Alterar o nome do dispositivo", "device_name_placeholder": "Nome",
"update_name_button": "Atualizar Nome" "update_name_button": "Atualizar Nome"
} }
} }
@@ -773,8 +741,8 @@
"notification_toast": { "notification_toast": {
"connection_lost": "Conexão perdida. Reconectando…", "connection_lost": "Conexão perdida. Reconectando…",
"service_call_failed": "Falha ao chamar o serviço {service}.", "service_call_failed": "Falha ao chamar o serviço {service}.",
"started": "O Home Assistant foi iniciado!", "started": "Home Assistant foi iniciado!",
"starting": "O Home Assistant está iniciando, algumas funcionalidades podem estar indisponíveis até que esteja iniciado.", "starting": "Home Assistant está iniciando, algumas funcionalidades podem estar indisponíveis até que esteja iniciado.",
"triggered": "{name} disparado" "triggered": "{name} disparado"
}, },
"panel": { "panel": {
@@ -943,19 +911,6 @@
"introduction": "Use automações para trazer vida à sua casa", "introduction": "Use automações para trazer vida à sua casa",
"load_error_not_editable": "Somente automações em automations.yaml são editáveis.", "load_error_not_editable": "Somente automações em automations.yaml são editáveis.",
"load_error_unknown": "Erro ao carregar a automação ({err_no}).", "load_error_unknown": "Erro ao carregar a automação ({err_no}).",
"max": {
"parallel": "Número máximo de execuções paralelas",
"queued": "Comprimento máximo da fila"
},
"modes": {
"description": "O modo controla o que acontece quando a automação é acionada enquanto as ações ainda estão rodando a partir de um acionamento anterior. Consulte o {documentation_link} para mais informações.",
"documentation": "documentação da automação",
"label": "Modo",
"parallel": "Paralelo",
"queued": "Enfileirado",
"restart": "Reiniciar",
"single": "Único (padrão)"
},
"move_down": "Mover para baixo", "move_down": "Mover para baixo",
"move_up": "Mover para cima", "move_up": "Mover para cima",
"save": "Salvar", "save": "Salvar",
@@ -999,7 +954,7 @@
"start": "Iniciar" "start": "Iniciar"
}, },
"mqtt": { "mqtt": {
"label": "MQTT", "label": "",
"payload": "Valor (opcional)", "payload": "Valor (opcional)",
"topic": "Tópico" "topic": "Tópico"
}, },
@@ -1315,7 +1270,7 @@
"device_not_found": "Dispositivo não encontrado.", "device_not_found": "Dispositivo não encontrado.",
"entities": { "entities": {
"add_entities_lovelace": "Adicionar ao Lovelace", "add_entities_lovelace": "Adicionar ao Lovelace",
"disabled_entities": "+{count} {count, plural,\n one {entidade desabilitada}\n other {entidades desabilitadas}\n}", "disabled_entities": "+{count} {count, plural,\n one {disabled entity}\n other {disabled entities}\n}",
"entities": "Entidades", "entities": "Entidades",
"hide_disabled": "Ocultar desativado(s)", "hide_disabled": "Ocultar desativado(s)",
"none": "Este dispositivo não possui entidades" "none": "Este dispositivo não possui entidades"
@@ -1374,7 +1329,6 @@
"confirm_text": "Você deve removê-los de sua configuração Lovelace e automatizações se eles contiverem essas entidades.", "confirm_text": "Você deve removê-los de sua configuração Lovelace e automatizações se eles contiverem essas entidades.",
"confirm_title": "Deseja remover {number} entidades?" "confirm_title": "Deseja remover {number} entidades?"
}, },
"search": "Procurar entidades",
"selected": "{number} selecionado", "selected": "{number} selecionado",
"status": { "status": {
"disabled": "Desativado", "disabled": "Desativado",
@@ -1395,7 +1349,7 @@
"description": "Elementos que podem ajudar a construir automações.", "description": "Elementos que podem ajudar a construir automações.",
"dialog": { "dialog": {
"add_helper": "Adicionar ajudante", "add_helper": "Adicionar ajudante",
"add_platform": "Adicionar {platform}", "add_platform": "Adicionar {plataform}",
"create": "Criar" "create": "Criar"
}, },
"picker": { "picker": {
@@ -1405,8 +1359,7 @@
"entity_id": "ID da entidade", "entity_id": "ID da entidade",
"name": "Nome", "name": "Nome",
"type": "Tipo" "type": "Tipo"
}, }
"no_helpers": "Parece que você ainda não tem ajudantes!"
}, },
"types": { "types": {
"input_boolean": "Alternar", "input_boolean": "Alternar",
@@ -1420,7 +1373,6 @@
"built_using": "Construído usando", "built_using": "Construído usando",
"caption": "Informações", "caption": "Informações",
"custom_uis": "UIs personalizadas:", "custom_uis": "UIs personalizadas:",
"description": "Informações sobre a instalação do Home Assistant",
"developed_by": "Desenvolvido por um monte de pessoas incríveis.", "developed_by": "Desenvolvido por um monte de pessoas incríveis.",
"documentation": "Documentação", "documentation": "Documentação",
"frontend": "frontend-ui", "frontend": "frontend-ui",
@@ -1437,9 +1389,7 @@
"title": "Info" "title": "Info"
}, },
"integration_panel_move": { "integration_panel_move": {
"link_integration_page": "Página de integrações", "link_integration_page": "Página de integrações"
"missing_zha": "Procurando o painel de configuração do ZHA? Ele foi movido para a entrada ZHA em {integrations_page}.",
"missing_zwave": "Procurando o painel de configuração do Z-Wave? Ele foi movido para a entrada Z-Wave em {integrations_page}."
}, },
"integrations": { "integrations": {
"add_integration": "Adicionar integração", "add_integration": "Adicionar integração",
@@ -1451,7 +1401,6 @@
"delete_confirm": "Tem certeza de que deseja excluir essa integração?", "delete_confirm": "Tem certeza de que deseja excluir essa integração?",
"device_unavailable": "dispositivo indisponível", "device_unavailable": "dispositivo indisponível",
"devices": "{count} {count, plural,\none {dispositivo}\nother {dispositivos}\n}", "devices": "{count} {count, plural,\none {dispositivo}\nother {dispositivos}\n}",
"documentation": "Documentação",
"entities": "{count} {count, plural,\none {entidade}\nother {entidades}\n}", "entities": "{count} {count, plural,\none {entidade}\nother {entidades}\n}",
"entity_unavailable": "entidade indisponível", "entity_unavailable": "entidade indisponível",
"firmware": "Firmware: {version}", "firmware": "Firmware: {version}",
@@ -1510,15 +1459,13 @@
"note_about_integrations": "Nem todas as integrações podem ser configuradas via interface do usuário ainda.", "note_about_integrations": "Nem todas as integrações podem ser configuradas via interface do usuário ainda.",
"note_about_website_reference": "Existem mais disponíveis no ", "note_about_website_reference": "Existem mais disponíveis no ",
"rename_dialog": "Edite o nome desta entrada de configuração", "rename_dialog": "Edite o nome desta entrada de configuração",
"rename_input_label": "Nome da entrada", "rename_input_label": "Nome da entrada"
"search": "Procurar integrações"
}, },
"introduction": "Aqui é possível configurar seus componentes e Home Assistant. Nem tudo é possível configurar via UI, mas estamos trabalhando nisso.", "introduction": "Aqui é possível configurar seus componentes e Home Assistant. Nem tudo é possível configurar via UI, mas estamos trabalhando nisso.",
"logs": { "logs": {
"caption": "Logs", "caption": "Logs",
"clear": "Limpar", "clear": "Limpar",
"description": "Exibir os logs do Home Assistant", "details": "Detalhes do log ({Level})",
"details": "Detalhes do log ({level})",
"load_full_log": "Carregar todos os logs do Home Assistant", "load_full_log": "Carregar todos os logs do Home Assistant",
"loading_log": "Carregando log de erros…", "loading_log": "Carregando log de erros…",
"multiple_messages": "a mensagem ocorreu pela primeira às {time} e apareceu {counter} vezes", "multiple_messages": "a mensagem ocorreu pela primeira às {time} e apareceu {counter} vezes",
@@ -1605,7 +1552,6 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Configurar",
"description_listen": "Ouvir um tópico", "description_listen": "Ouvir um tópico",
"description_publish": "Publicar um pacote", "description_publish": "Publicar um pacote",
"listening_to": "Ouvindo", "listening_to": "Ouvindo",
@@ -1664,7 +1610,6 @@
"introduction": "Entidades que não pertencem a um dispositivo podem ser definidas aqui.", "introduction": "Entidades que não pertencem a um dispositivo podem ser definidas aqui.",
"without_device": "Entidades sem dispositivos" "without_device": "Entidades sem dispositivos"
}, },
"icon": "Ícone",
"introduction": "Use cenas para dar vida à sua casa.", "introduction": "Use cenas para dar vida à sua casa.",
"load_error_not_editable": "Somente cenas em scenes.yaml são editáveis.", "load_error_not_editable": "Somente cenas em scenes.yaml são editáveis.",
"load_error_unknown": "Erro ao carregar a automação ({err_no}).", "load_error_unknown": "Erro ao carregar a automação ({err_no}).",
@@ -1698,26 +1643,9 @@
"delete_confirm": "Tem certeza de que deseja excluir este script?", "delete_confirm": "Tem certeza de que deseja excluir este script?",
"delete_script": "Excluir script", "delete_script": "Excluir script",
"header": "Script: {name}", "header": "Script: {name}",
"icon": "Ícone",
"id": "ID da entidade",
"id_already_exists": "Este ID já existe",
"id_already_exists_save_error": "Você não pode salvar este script porque o ID não é único, escolha outro ID ou deixe em branco para gerar um automaticamente.",
"introduction": "Use scripts para executar uma sequência de ações.", "introduction": "Use scripts para executar uma sequência de ações.",
"link_available_actions": "Saiba mais sobre as ações disponíveis.", "link_available_actions": "Saiba mais sobre as ações disponíveis.",
"load_error_not_editable": "Apenas scripts dentro scripts.yaml são editáveis.", "load_error_not_editable": "Apenas scripts dentro scripts.yaml são editáveis.",
"max": {
"parallel": "Número máximo de execuções paralelas",
"queued": "Comprimento máximo da fila"
},
"modes": {
"description": "O modo controla o que acontece quando o script é chamado enquanto ainda está executando de uma ou mais chamadas anteriores. Consulte o {documentation_link} para mais informações.",
"documentation": "documentação do script",
"label": "Modo",
"parallel": "Paralelo",
"queued": "Enfileirado",
"restart": "Reiniciar",
"single": "Único (padrão)"
},
"sequence": "Seqüência", "sequence": "Seqüência",
"sequence_sentence": "A sequência de ações deste script." "sequence_sentence": "A sequência de ações deste script."
}, },
@@ -1744,12 +1672,7 @@
"core": "Recarregar localização & customizações", "core": "Recarregar localização & customizações",
"group": "Recarregar os grupos", "group": "Recarregar os grupos",
"heading": "Recarregando a configuração YAML", "heading": "Recarregando a configuração YAML",
"input_boolean": "Recarregar entradas de booleano", "introduction": "Algumas partes do Home Assistant podem ser recarregadas sem a necessidade de reiniciar. Pressionar recarregar, descarregará sua configuração YAML atual e carregará a nova.",
"input_datetime": "Recarregar entradas de data",
"input_number": "Recarregar entradas numéricas",
"input_select": "Recarregar entradas de seleção",
"input_text": "Recarregar entradas de texto",
"introduction": "Algumas partes do Home Assistant podem ser recarregadas sem precisar reiniciar. Pressionar recarregar descarregará sua configuração YAML atual e carregará a nova.",
"person": "Recarregar pessoas", "person": "Recarregar pessoas",
"scene": "Recarregar cenas", "scene": "Recarregar cenas",
"script": "Recarregar os scripts", "script": "Recarregar os scripts",
@@ -1766,7 +1689,7 @@
"validation": { "validation": {
"check_config": "Verificar a configuração", "check_config": "Verificar a configuração",
"heading": "Validação da configuração", "heading": "Validação da configuração",
"introduction": "Valide sua configuração se você recentemente fez algumas mudanças na sua configuração e quer ter certeza de que tudo é valido", "introduction": "Valide sua configuração se você recentemente fez algumas mudanças na sua configuração e quiser certificar-se de que tudo é válido.",
"invalid": "Configuração inválida", "invalid": "Configuração inválida",
"valid": "Configuração válida!" "valid": "Configuração válida!"
} }
@@ -1814,7 +1737,6 @@
"discovered_text": "Os dispositivos descobertos aparecerão aqui.", "discovered_text": "Os dispositivos descobertos aparecerão aqui.",
"discovery_text": "Dispositivos descobertos serão exibidos aqui. Siga as instruções para o(s) seu(s) dispositivo(s) e coloque o(s) dispositivo(s) no modo de emparelhamento.", "discovery_text": "Dispositivos descobertos serão exibidos aqui. Siga as instruções para o(s) seu(s) dispositivo(s) e coloque o(s) dispositivo(s) no modo de emparelhamento.",
"header": "Zigbee Home Automation - Adicionar dispositivos", "header": "Zigbee Home Automation - Adicionar dispositivos",
"no_devices_found": "Nenhum dispositivo encontrado, verifique se eles estão em modo de pareamento e os mantenha acordados enquanto a descoberta estiver ativa.",
"pairing_mode": "Certifique-se de que seus dispositivos estão em modo de pareamento. Verifique as instruções do seu dispositivo para saber como fazer isso.", "pairing_mode": "Certifique-se de que seus dispositivos estão em modo de pareamento. Verifique as instruções do seu dispositivo para saber como fazer isso.",
"search_again": "Pesquisar novamente", "search_again": "Pesquisar novamente",
"spinner": "Procurando por dispositivos ZHA Zigbee…" "spinner": "Procurando por dispositivos ZHA Zigbee…"
@@ -1978,24 +1900,19 @@
"true": "Verdadeiro" "true": "Verdadeiro"
}, },
"node_management": { "node_management": {
"add_to_group": "Adicionar ao Grupo", "add_to_group": "Adicionar ao grupo",
"entities": "Entidades deste nó",
"exclude_entity": "Excluir esta entidade do Home Assistant",
"group": "Grupo", "group": "Grupo",
"header": "Gerenciamento de nó Z-Wave",
"node_group_associations": "Associações de grupos de nós", "node_group_associations": "Associações de grupos de nós",
"node_protection": "Proteção dos nós", "node_protection": "Proteção dos nós",
"nodes": "Nós", "nodes": "Nós",
"protection": "Proteção", "protection": "Proteção",
"remove_from_group": "Remover do Grupo",
"set_protection": "Definir proteção" "set_protection": "Definir proteção"
}, },
"ozw_log": { "ozw_log": {
"header": "OZW Log", "header": "OZW Log",
"introduction": "Veja o log. 0 é o mínimo (carrega o log inteiro) e 1000 é o máximo. A carga mostrará um log estático e tail será atualizada automaticamente com o último número especificado de linhas do log.", "introduction": "Veja o log. 0 é o mínimo (carrega o log inteiro) e 1000 é o máximo. A carga mostrará um log estático e tail será atualizada automaticamente com o último número especificado de linhas do log.",
"last_log_lines": "Número da última linhas de log", "last_log_lines": "Número da última linhas de log",
"load": "Carregar", "load": "Carregar"
"tail": "Ver últimas linhas"
}, },
"services": { "services": {
"add_node": "Adicionar Nó", "add_node": "Adicionar Nó",
@@ -2006,8 +1923,6 @@
"node_info": "Informações do Nó", "node_info": "Informações do Nó",
"print_node": "Imprimir nó", "print_node": "Imprimir nó",
"refresh_entity": "Atualizar Entidade", "refresh_entity": "Atualizar Entidade",
"refresh_node": "Atualizar Nó",
"remove_failed_node": "Remover Nó com Falha",
"remove_node": "Remover Nó", "remove_node": "Remover Nó",
"replace_failed_node": "Substituir Nó com Falha", "replace_failed_node": "Substituir Nó com Falha",
"save_config": "Salvar Configuração", "save_config": "Salvar Configuração",
@@ -2092,23 +2007,11 @@
}, },
"history": { "history": {
"period": "Período", "period": "Período",
"ranges": {
"last_week": "Semana Anterior",
"this_week": "Esta semana",
"today": "Hoje",
"yesterday": "Ontem"
},
"showing_entries": "Exibindo entradas para" "showing_entries": "Exibindo entradas para"
}, },
"logbook": { "logbook": {
"entries_not_found": "Não foram encontradas registros no diário de bordo.", "entries_not_found": "Não foram encontradas registros no diário de bordo.",
"period": "Período", "period": "Período",
"ranges": {
"last_week": "Semana anterior",
"this_week": "Esta semana",
"today": "Hoje",
"yesterday": "Ontem"
},
"showing_entries": "Exibindo registros de" "showing_entries": "Exibindo registros de"
}, },
"lovelace": { "lovelace": {
@@ -2146,8 +2049,8 @@
"clear_items": "Limpar itens marcados" "clear_items": "Limpar itens marcados"
}, },
"starting": { "starting": {
"description": "O Home Assistant está iniciando, por favor aguarde...", "description": "Home Assistant está iniciando, por favor aguarde...",
"header": "O Home Assistant está iniciando..." "header": "Home Assistant está iniciando..."
} }
}, },
"changed_toast": { "changed_toast": {
@@ -2224,7 +2127,6 @@
"name": "Nome", "name": "Nome",
"no_theme": "Nenhum tema", "no_theme": "Nenhum tema",
"refresh_interval": "Intervalo de atualização", "refresh_interval": "Intervalo de atualização",
"search": "Procurar",
"secondary_info_attribute": "Atributo de informação secundária", "secondary_info_attribute": "Atributo de informação secundária",
"show_icon": "Mostrar Icone?", "show_icon": "Mostrar Icone?",
"show_name": "Mostrar nome?", "show_name": "Mostrar nome?",
@@ -2249,10 +2151,6 @@
"description": "O cartão Pilha Horizontal permite empilhar vários cartões, para que eles sempre fiquem próximos um do outro no espaço de uma coluna.", "description": "O cartão Pilha Horizontal permite empilhar vários cartões, para que eles sempre fiquem próximos um do outro no espaço de uma coluna.",
"name": "Pilha horizontal" "name": "Pilha horizontal"
}, },
"humidifier": {
"description": "O cartão Umidificador fornece controle da sua entidade de umidificador. Permite alterar a umidade e o modo da entidade.",
"name": "Umidificador"
},
"iframe": { "iframe": {
"description": "O cartão de Página Web permite incorporar sua página web favorita diretamente no Home Assistant.", "description": "O cartão de Página Web permite incorporar sua página web favorita diretamente no Home Assistant.",
"name": "Página Web" "name": "Página Web"
@@ -2330,7 +2228,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Adicionar Cartão", "add": "Adicionar Cartão",
"confirm_cancel": "Tem certeza de que deseja cancelar?",
"delete": "Excluir Cartão", "delete": "Excluir Cartão",
"duplicate": "Duplicar", "duplicate": "Duplicar",
"edit": "Editar", "edit": "Editar",
@@ -2341,22 +2238,19 @@
"pick_card_view_title": "Qual cartão você gostaria de adicionar à sua visualização {name} ?", "pick_card_view_title": "Qual cartão você gostaria de adicionar à sua visualização {name} ?",
"show_code_editor": "Mostrar Editor de Código", "show_code_editor": "Mostrar Editor de Código",
"show_visual_editor": "Mostrar Editor Visual", "show_visual_editor": "Mostrar Editor Visual",
"toggle_editor": "Alternar Editor", "toggle_editor": "Alternar Editor"
"typed_header": "Configuração de cartão de {type}",
"unsaved_changes": "Você tem alterações não salvas"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Editar título", "edit_title": "Editar título",
"explanation": "Este título é mostrado acima de todas as suas visualizações no Lovelace.", "explanation": "Este título é mostrado acima de todas as suas visualizações no Lovelace.",
"header": "Título da sua interface do Lovelace", "header": "Título da sua interface do Lovelace"
"title": "Título"
}, },
"edit_view": { "edit_view": {
"add": "Editar visualização", "add": "Editar visualização",
"delete": "Excluir visualização", "delete": "Excluir visualização",
"edit": "Editar visualização", "edit": "Editar visualização",
"header": "Configurações", "header": "Configurações",
"header_name": "Configuração da Visualização {name}", "header_name": "Configuração da visualização {nome}",
"move_left": "Mover à esquerda", "move_left": "Mover à esquerda",
"move_right": "Mover à direita", "move_right": "Mover à direita",
"tab_badges": "Distintivos", "tab_badges": "Distintivos",
@@ -2436,8 +2330,6 @@
"entity": "Entidade", "entity": "Entidade",
"entity_id": "ID da entidade", "entity_id": "ID da entidade",
"last_changed": "Última alteração", "last_changed": "Última alteração",
"no_data": "Nenhuma entidade não utilizada encontrada",
"search": "Procurar entidades",
"select_to_add": "Selecione as entidades que você deseja adicionar a um cartão e clique no botão Adicionar cartão.", "select_to_add": "Selecione as entidades que você deseja adicionar a um cartão e clique no botão Adicionar cartão.",
"title": "Entidades não utilizadas" "title": "Entidades não utilizadas"
}, },
@@ -2452,7 +2344,7 @@
"entity_non_numeric": "Entidade não é numérica: {entity}", "entity_non_numeric": "Entidade não é numérica: {entity}",
"entity_not_found": "Entidade não disponível: {entity}", "entity_not_found": "Entidade não disponível: {entity}",
"entity_unavailable": "{entity} não está disponível", "entity_unavailable": "{entity} não está disponível",
"starting": "O Home Assistant está iniciando, algumas funcionalidades podem estar temporariamente indisponíveis" "starting": "Home Assistant está iniciando, algumas funcionalidades podem estar indisponíveis"
} }
}, },
"mailbox": { "mailbox": {
@@ -2540,7 +2432,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Seu computador não tem permissão.",
"not_whitelisted": "Seu computador não está na lista de permissões." "not_whitelisted": "Seu computador não está na lista de permissões."
}, },
"step": { "step": {
@@ -2678,7 +2569,7 @@
"description": "Crie tokens de acesso de longa duração para permitir que seus scripts interajam com sua instância do Home Assistant. Cada token será válido por 10 anos a partir da criação. Os seguintes tokens de acesso de longa duração estão atualmente ativos.", "description": "Crie tokens de acesso de longa duração para permitir que seus scripts interajam com sua instância do Home Assistant. Cada token será válido por 10 anos a partir da criação. Os seguintes tokens de acesso de longa duração estão atualmente ativos.",
"empty_state": "Você ainda não tem tokens de acesso de longa duração.", "empty_state": "Você ainda não tem tokens de acesso de longa duração.",
"header": "Tokens de acesso de longa duração", "header": "Tokens de acesso de longa duração",
"last_used": "Usado pela última vez em {date} de {location}", "last_used": "Usado pela última vez em {date} em {location}",
"learn_auth_requests": "Aprenda como fazer solicitações autenticadas.", "learn_auth_requests": "Aprenda como fazer solicitações autenticadas.",
"not_used": "Nunca foi usado", "not_used": "Nunca foi usado",
"prompt_copy_token": "Copie seu token de acesso. Ele não será mostrado novamente.", "prompt_copy_token": "Copie seu token de acesso. Ele não será mostrado novamente.",
@@ -2711,14 +2602,10 @@
"current_token_tooltip": "Não é possível excluir o token de atualização atual", "current_token_tooltip": "Não é possível excluir o token de atualização atual",
"delete_failed": "Falha ao excluir o token de acesso.", "delete_failed": "Falha ao excluir o token de acesso.",
"description": "Cada token de atualização representa uma sessão de login. Os tokens de atualização serão removidos automaticamente quando você clicar em efetuar logout. Os tokens de atualização a seguir estão ativos na sua conta no momento.", "description": "Cada token de atualização representa uma sessão de login. Os tokens de atualização serão removidos automaticamente quando você clicar em efetuar logout. Os tokens de atualização a seguir estão ativos na sua conta no momento.",
"header": "Tokens de atualização", "header": "Atualizar tokens",
"last_used": "Usado pela última vez em {date} de {location}", "last_used": "Usado pela última vez em {date} em {location}",
"not_used": "Nunca foi usado", "not_used": "Nunca foi usado",
"token_title": "Token de atualização para {clientId}" "token_title": "Atualizar o token para {clientId}"
},
"suspend": {
"description": "Devemos fechar a conexão com o servidor depois de ficar oculto por 5 minutos?",
"header": "Fechar a conexão automaticamente"
}, },
"themes": { "themes": {
"dropdown_label": "Tema", "dropdown_label": "Tema",

View File

@@ -430,8 +430,6 @@
"activate": "Ativar" "activate": "Ativar"
}, },
"script": { "script": {
"cancel": "Cancelar",
"cancel_multiple": "Cancelar {número}",
"execute": "Executar" "execute": "Executar"
}, },
"service": { "service": {
@@ -527,9 +525,6 @@
"clear": "Limpar", "clear": "Limpar",
"show_areas": "Mostrar áreas" "show_areas": "Mostrar áreas"
}, },
"data-table": {
"search": "Procurar"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Data de fim", "end_date": "Data de fim",
"select": "Selecione", "select": "Selecione",
@@ -943,13 +938,6 @@
"introduction": "Crie automações para dar vida à sua casa", "introduction": "Crie automações para dar vida à sua casa",
"load_error_not_editable": "Apenas as automações em automations.yaml são editáveis.", "load_error_not_editable": "Apenas as automações em automations.yaml são editáveis.",
"load_error_unknown": "Erro ao carregar a automação ({err_no}).", "load_error_unknown": "Erro ao carregar a automação ({err_no}).",
"modes": {
"description": "Este modo controla apenas o que acontece quando o script é chamado quando ainda está a ser executado por uma ou mais chamadas anteriores. Ver documentação (link_para_documentação) para mais informações.",
"documentation": "Documentação de automaçōes",
"label": "Modo",
"queued": "Em lista de espera",
"restart": "Reiniciar"
},
"move_down": "Mover para baixo", "move_down": "Mover para baixo",
"move_up": "Mover para cima", "move_up": "Mover para cima",
"save": "Guardar", "save": "Guardar",
@@ -1368,7 +1356,6 @@
"confirm_text": "Deve remover da configuração do Lovelace e das automações se contêm estas entidades", "confirm_text": "Deve remover da configuração do Lovelace e das automações se contêm estas entidades",
"confirm_title": "Deseja remover {number} entidades?" "confirm_title": "Deseja remover {number} entidades?"
}, },
"search": "Procurar entidades",
"selected": "Selecionou {number}", "selected": "Selecionou {number}",
"status": { "status": {
"disabled": "Desativado", "disabled": "Desativado",
@@ -1389,7 +1376,7 @@
"description": "Elementos que podem ajudar a construir automações.", "description": "Elementos que podem ajudar a construir automações.",
"dialog": { "dialog": {
"add_helper": "Adicionar auxiliar", "add_helper": "Adicionar auxiliar",
"add_platform": "Adicionar {platform}", "add_platform": "Adicione {platform}",
"create": "Criar" "create": "Criar"
}, },
"picker": { "picker": {
@@ -1503,8 +1490,7 @@
"note_about_integrations": "De momento nem todas as integrações podem ser configuradas via UI.", "note_about_integrations": "De momento nem todas as integrações podem ser configuradas via UI.",
"note_about_website_reference": "Existem mais disponíveis no", "note_about_website_reference": "Existem mais disponíveis no",
"rename_dialog": "Edite o nome desta entrada de configuração.", "rename_dialog": "Edite o nome desta entrada de configuração.",
"rename_input_label": "Nome da entrada", "rename_input_label": "Nome da entrada"
"search": "Procurar integrações"
}, },
"introduction": "Aqui é possível configurar os seus componentes e o Home Assistant. Nem tudo é possível de ser configurado a partir da Interface Gráfica, mas estamos a trabalhar para isso.", "introduction": "Aqui é possível configurar os seus componentes e o Home Assistant. Nem tudo é possível de ser configurado a partir da Interface Gráfica, mas estamos a trabalhar para isso.",
"logs": { "logs": {
@@ -1657,7 +1643,6 @@
"introduction": "Entidades que não pertencem a um dispositivo podem ser definidas aqui.", "introduction": "Entidades que não pertencem a um dispositivo podem ser definidas aqui.",
"without_device": "Entidades sem dispositivo" "without_device": "Entidades sem dispositivo"
}, },
"icon": "Ícone",
"introduction": "Crie cenários para dar vida à sua casa.", "introduction": "Crie cenários para dar vida à sua casa.",
"load_error_not_editable": "Apenas cenários em scenes.yaml são editáveis.", "load_error_not_editable": "Apenas cenários em scenes.yaml são editáveis.",
"load_error_unknown": "Erro ao carregar cena ({err_no}).", "load_error_unknown": "Erro ao carregar cena ({err_no}).",
@@ -1691,21 +1676,9 @@
"delete_confirm": "Tem a certeza que quer apagar este script?", "delete_confirm": "Tem a certeza que quer apagar este script?",
"delete_script": "Apagar script", "delete_script": "Apagar script",
"header": "Script: {name}", "header": "Script: {name}",
"icon": "Ícone",
"id": "ID da entidade",
"id_already_exists": "Este ID já existe",
"id_already_exists_save_error": "Nāo pode gravar este script porque este ID não é único, escolha outro ID ou deixe em branco para ser gerado automaticamente.",
"introduction": "Use scripts para executar uma seqüência de ações.", "introduction": "Use scripts para executar uma seqüência de ações.",
"link_available_actions": "Saiba mais sobre ações disponíveis.", "link_available_actions": "Saiba mais sobre ações disponíveis.",
"load_error_not_editable": "Apenas os scripts em scripts.yaml são editáveis.", "load_error_not_editable": "Apenas os scripts em scripts.yaml são editáveis.",
"modes": {
"description": "Este modo controla apenas o que acontece quando o script é chamado quando ainda está a ser executado por uma ou mais chamadas anteriores. Ver documentação (link_para_documentação) para mais informações.",
"documentation": "Documentação de scripts",
"label": "Modo",
"parallel": "Paralelo",
"queued": "Lista de espera",
"restart": "Reiniciar"
},
"sequence": "Seqüência", "sequence": "Seqüência",
"sequence_sentence": "A seqüência de ações para este script." "sequence_sentence": "A seqüência de ações para este script."
}, },
@@ -2221,7 +2194,6 @@
"name": "Nome", "name": "Nome",
"no_theme": "Nenhum tema", "no_theme": "Nenhum tema",
"refresh_interval": "Intervalo entre atualizações", "refresh_interval": "Intervalo entre atualizações",
"search": "Procurar",
"secondary_info_attribute": "Atributo de informação secundária", "secondary_info_attribute": "Atributo de informação secundária",
"show_icon": "Mostrar Ícone?", "show_icon": "Mostrar Ícone?",
"show_name": "Mostrar nome?", "show_name": "Mostrar nome?",
@@ -2342,8 +2314,7 @@
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Editar título", "edit_title": "Editar título",
"explanation": "Este título é mostrado acima de todas as suas vistas na interface Lovelace.", "explanation": "Este título é mostrado acima de todas as suas vistas na interface Lovelace.",
"header": "Título da sua interface do Lovelace", "header": "Título da sua interface do Lovelace"
"title": "Título"
}, },
"edit_view": { "edit_view": {
"add": "Acrescentar vista", "add": "Acrescentar vista",
@@ -2532,7 +2503,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "O seu computador não está na lista de endereços permitidos.",
"not_whitelisted": "O seu computador não está na lista de endereços permitidos." "not_whitelisted": "O seu computador não está na lista de endereços permitidos."
}, },
"step": { "step": {

View File

@@ -48,19 +48,6 @@
"none": "Nici unul", "none": "Nici unul",
"sleep": "Adormit" "sleep": "Adormit"
} }
},
"humidifier": {
"mode": {
"auto": "Auto",
"away": "Plecat",
"baby": "Bebelus",
"boost": "Boost",
"comfort": "Confort",
"eco": "Eco",
"home": "Acasa",
"normal": "Normal",
"sleep": "Somn"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -393,11 +380,6 @@
"reverse": "Invers", "reverse": "Invers",
"speed": "Viteză" "speed": "Viteză"
}, },
"humidifier": {
"humidity": "Umiditatea țintă",
"mode": "mod",
"on_entity": "{nume} activat"
},
"light": { "light": {
"brightness": "Luminozitate", "brightness": "Luminozitate",
"color_temperature": "Temperatura de culoare", "color_temperature": "Temperatura de culoare",
@@ -421,8 +403,6 @@
"activate": "Activati" "activate": "Activati"
}, },
"script": { "script": {
"cancel": "Anulare",
"cancel_multiple": "Revocare {număr}",
"execute": "Executa" "execute": "Executa"
}, },
"service": { "service": {
@@ -492,7 +472,6 @@
"delete": "Șterge", "delete": "Șterge",
"error_required": "Necesar", "error_required": "Necesar",
"loading": "Se încarcă", "loading": "Se încarcă",
"menu": "Meniu",
"next": "Următorul", "next": "Următorul",
"no": "Nu", "no": "Nu",
"previous": "Anterior", "previous": "Anterior",
@@ -517,15 +496,6 @@
"clear": "Şterge", "clear": "Şterge",
"show_areas": "Arată zonele" "show_areas": "Arată zonele"
}, },
"data-table": {
"no-data": "Fără date",
"search": "Căutare"
},
"date-range-picker": {
"end_date": "Data de încheiere",
"select": "Selectați",
"start_date": "Data de început"
},
"device-picker": { "device-picker": {
"clear": "Şterge", "clear": "Şterge",
"device": "Dispozitiv", "device": "Dispozitiv",
@@ -905,20 +875,6 @@
"introduction": "Utilizați automatizări pentru a vă aduce casa în viață", "introduction": "Utilizați automatizări pentru a vă aduce casa în viață",
"load_error_not_editable": "Numai automatizările din automations.yaml pot fi editate.", "load_error_not_editable": "Numai automatizările din automations.yaml pot fi editate.",
"load_error_unknown": "Eroare la încărcarea automatizării ({err_no}).", "load_error_unknown": "Eroare la încărcarea automatizării ({err_no}).",
"max": {
"parallel": "Numărul maxim de piste paralele",
"queued": "Lungimea cozii"
},
"modes": {
"documentation": "documentații de automatizare",
"label": "mod",
"parallel": "Paralel",
"queued": "În așteptare",
"restart": "Repornire",
"single": "Singur (default)"
},
"move_down": "Mută în jos",
"move_up": "Mută în sus",
"save": "Salvați", "save": "Salvați",
"triggers": { "triggers": {
"add": "Adăugați acțiune", "add": "Adăugați acțiune",
@@ -1175,7 +1131,6 @@
"confirm_text": "Entitățile pot fi eliminate numai atunci când integrarea nu mai oferă entitățile.", "confirm_text": "Entitățile pot fi eliminate numai atunci când integrarea nu mai oferă entitățile.",
"confirm_title": "Doriți să eliminați {number} entități?" "confirm_title": "Doriți să eliminați {number} entități?"
}, },
"search": "Căutare entități",
"selected": "{number} selectate", "selected": "{number} selectate",
"status": { "status": {
"disabled": "Dezactivat", "disabled": "Dezactivat",
@@ -1206,8 +1161,7 @@
"entity_id": "ID entitate", "entity_id": "ID entitate",
"name": "Nume", "name": "Nume",
"type": "Tip" "type": "Tip"
}, }
"no_helpers": "Se pare că nu ai încă ajutoare!"
}, },
"types": { "types": {
"input_boolean": "Comutare", "input_boolean": "Comutare",
@@ -1219,7 +1173,6 @@
}, },
"info": { "info": {
"built_using": "Construit folosind", "built_using": "Construit folosind",
"caption": "Info",
"documentation": "Documentație", "documentation": "Documentație",
"frontend": "front-end-ui", "frontend": "front-end-ui",
"home_assistant_logo": "Logo-ul Home Assistant", "home_assistant_logo": "Logo-ul Home Assistant",
@@ -1231,9 +1184,6 @@
"source": "Sursă:", "source": "Sursă:",
"title": "Info" "title": "Info"
}, },
"integration_panel_move": {
"link_integration_page": "Pagina de integrari"
},
"integrations": { "integrations": {
"add_integration": "Adăugați integrare", "add_integration": "Adăugați integrare",
"caption": "Integrări", "caption": "Integrări",
@@ -1241,7 +1191,6 @@
"delete": "Șterge", "delete": "Șterge",
"delete_confirm": "Sigur doriți să ștergeți această integrare?", "delete_confirm": "Sigur doriți să ștergeți această integrare?",
"device_unavailable": "dispozitiv indisponibil", "device_unavailable": "dispozitiv indisponibil",
"documentation": "Documentație",
"entity_unavailable": "Entitatea nu este disponibilă", "entity_unavailable": "Entitatea nu este disponibilă",
"firmware": "Firmware: {version}", "firmware": "Firmware: {version}",
"hub": "Conectat prin", "hub": "Conectat prin",
@@ -1294,12 +1243,10 @@
"none_found": "Nu s-au găsit integrări", "none_found": "Nu s-au găsit integrări",
"none_found_detail": "Ajustați criteriile de căutare.", "none_found_detail": "Ajustați criteriile de căutare.",
"rename_dialog": "Editați numele acestei intrări de configurare", "rename_dialog": "Editați numele acestei intrări de configurare",
"rename_input_label": "Introdu nume", "rename_input_label": "Introdu nume"
"search": "Căutare integrari"
}, },
"introduction": "Aici este posibil să vă configurați componentele și Home Assistant. Nu este posibilă configurarea de la UI, dar lucrăm la asta.", "introduction": "Aici este posibil să vă configurați componentele și Home Assistant. Nu este posibilă configurarea de la UI, dar lucrăm la asta.",
"logs": { "logs": {
"caption": "Jurnale",
"clear": "Şterge", "clear": "Şterge",
"details": "Detalii jurnal ({level})", "details": "Detalii jurnal ({level})",
"load_full_log": "Încărcare jurnal complet Home Assistant", "load_full_log": "Încărcare jurnal complet Home Assistant",
@@ -1385,7 +1332,6 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Configurare",
"description_listen": "Ascultă un subiect", "description_listen": "Ascultă un subiect",
"description_publish": "Publică un pachet", "description_publish": "Publică un pachet",
"listening_to": "Ascultand", "listening_to": "Ascultand",
@@ -1428,7 +1374,6 @@
"introduction": "Entitățile care nu aparțin unui dispozitiv pot fi setate aici.", "introduction": "Entitățile care nu aparțin unui dispozitiv pot fi setate aici.",
"without_device": "Entități fără dispozitiv" "without_device": "Entități fără dispozitiv"
}, },
"icon": "Pictograma",
"introduction": "Utilizeaza scene pentru a aduce casa ta la viață.", "introduction": "Utilizeaza scene pentru a aduce casa ta la viață.",
"load_error_not_editable": "Numai scenele din scene.yaml sunt editabile.", "load_error_not_editable": "Numai scenele din scene.yaml sunt editabile.",
"load_error_unknown": "Eroare la încărcarea scenei ({err_no}).", "load_error_unknown": "Eroare la încărcarea scenei ({err_no}).",
@@ -1458,23 +1403,8 @@
"editor": { "editor": {
"alias": "Nume", "alias": "Nume",
"delete_script": "Ștergere script", "delete_script": "Ștergere script",
"icon": "Pictograma",
"id": "ID entitate",
"id_already_exists": "Acest ID există deja",
"introduction": "Folosiți scripturi pentru a executa o secvență de acțiuni.", "introduction": "Folosiți scripturi pentru a executa o secvență de acțiuni.",
"link_available_actions": "Aflați mai multe despre acțiunile disponibile.", "link_available_actions": "Aflați mai multe despre acțiunile disponibile.",
"max": {
"parallel": "Numărul maxim de piste paralele",
"queued": "Lungimea cozii"
},
"modes": {
"documentation": "documentație script",
"label": "mod",
"parallel": "Paralel",
"queued": "În așteptare",
"restart": "Repornire",
"single": "Singur (default)"
},
"sequence": "Secvenţă", "sequence": "Secvenţă",
"sequence_sentence": "Secvența acțiunilor acestui scenariu." "sequence_sentence": "Secvența acțiunilor acestui scenariu."
}, },
@@ -1551,7 +1481,6 @@
}, },
"zha": { "zha": {
"add_device_page": { "add_device_page": {
"discovered_text": "Dispozitivele vor apărea aici odată descoperite.",
"discovery_text": "Dispozitivele descoperite vor apărea aici. Urmați instrucțiunile pentru dispozitiv (e) și așezați dispozitivul (ele) în modul de împerechere.", "discovery_text": "Dispozitivele descoperite vor apărea aici. Urmați instrucțiunile pentru dispozitiv (e) și așezați dispozitivul (ele) în modul de împerechere.",
"header": "Zigbee Home Automation - Adăugați dispozitive", "header": "Zigbee Home Automation - Adăugați dispozitive",
"search_again": "Caută din nou", "search_again": "Caută din nou",
@@ -1561,7 +1490,6 @@
"caption": "Adaugă dispozitive", "caption": "Adaugă dispozitive",
"description": "Adaugă dispozitive la rețeaua Zigbee" "description": "Adaugă dispozitive la rețeaua Zigbee"
}, },
"button": "Configurează",
"caption": "ZHA", "caption": "ZHA",
"cluster_attributes": { "cluster_attributes": {
"attributes_of_cluster": "Atributele clusterului selectat", "attributes_of_cluster": "Atributele clusterului selectat",
@@ -1637,9 +1565,6 @@
"header": "Administrare rețea", "header": "Administrare rețea",
"introduction": "Comenzi care afectează întreaga rețea" "introduction": "Comenzi care afectează întreaga rețea"
}, },
"network": {
"caption": "Reţea"
},
"node_management": { "node_management": {
"header": "Gestionare dispozitive" "header": "Gestionare dispozitive"
}, },
@@ -1675,7 +1600,6 @@
"no_zones_created_yet": "Se pare că nu ai creat încă nici o zonă." "no_zones_created_yet": "Se pare că nu ai creat încă nici o zonă."
}, },
"zwave": { "zwave": {
"button": "Configurează",
"caption": "Z-Wave", "caption": "Z-Wave",
"common": { "common": {
"index": "Index", "index": "Index",
@@ -1709,16 +1633,12 @@
}, },
"node_management": { "node_management": {
"add_to_group": "Adăugare la grup", "add_to_group": "Adăugare la grup",
"entities": "Entități ale acestui nod",
"entity_info": "Informații Entitate",
"exclude_entity": "Excludeți această entitate din Home Assistant", "exclude_entity": "Excludeți această entitate din Home Assistant",
"group": "Grup", "group": "Grup",
"max_associations": "Asociații maxime:", "max_associations": "Asociații maxime:",
"node_group_associations": "Asociații de grupuri de noduri", "node_group_associations": "Asociații de grupuri de noduri",
"node_protection": "Protecție nod", "node_protection": "Protecție nod",
"node_to_control": "Nod de controlat", "node_to_control": "Nod de controlat",
"nodes": "Noduri",
"nodes_hint": "Selectați nodul pentru a vizualiza opțiunile per nod",
"nodes_in_group": "Alte noduri din acest grup:", "nodes_in_group": "Alte noduri din acest grup:",
"protection": "Protecţie", "protection": "Protecţie",
"remove_broadcast": "Eliminare difuzare", "remove_broadcast": "Eliminare difuzare",
@@ -1823,23 +1743,11 @@
}, },
"history": { "history": {
"period": "Perioadă", "period": "Perioadă",
"ranges": {
"last_week": "Săptămâna trecută",
"this_week": "Săptămâna aceasta",
"today": "Astăzi",
"yesterday": "Ieri"
},
"showing_entries": "Se afișează intrările pentru" "showing_entries": "Se afișează intrările pentru"
}, },
"logbook": { "logbook": {
"entries_not_found": "Nu s-au găsit intrări în jurnal.", "entries_not_found": "Nu s-au găsit intrări în jurnal.",
"period": "Perioadă", "period": "Perioadă",
"ranges": {
"last_week": "Săptămâna trecută",
"this_week": "Săptămâna aceasta",
"today": "Astăzi",
"yesterday": "Ieri"
},
"showing_entries": "Arată intrări pentru" "showing_entries": "Arată intrări pentru"
}, },
"lovelace": { "lovelace": {
@@ -1920,7 +1828,6 @@
"manual": "Manual", "manual": "Manual",
"manual_description": "Trebuie să adăugați un card personalizat sau doriți doar să scrieți manual yaml?", "manual_description": "Trebuie să adăugați un card personalizat sau doriți doar să scrieți manual yaml?",
"no_theme": "Nicio temă", "no_theme": "Nicio temă",
"search": "Căutare",
"secondary_info_attribute": "Atribut informații secundare", "secondary_info_attribute": "Atribut informații secundare",
"state": "Stare" "state": "Stare"
}, },
@@ -1935,9 +1842,6 @@
"horizontal-stack": { "horizontal-stack": {
"name": "Stivă orizontală" "name": "Stivă orizontală"
}, },
"humidifier": {
"name": "Umidificator"
},
"iframe": { "iframe": {
"name": "Pagină web" "name": "Pagină web"
}, },
@@ -1997,7 +1901,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Adăugare card", "add": "Adăugare card",
"confirm_cancel": "Ești sigur că vrei să anulezi?",
"delete": "Ștergeți cardul", "delete": "Ștergeți cardul",
"duplicate": "Duplicare card", "duplicate": "Duplicare card",
"edit": "Editeaza", "edit": "Editeaza",
@@ -2005,15 +1908,12 @@
"move": "Mutați la Vizualizare", "move": "Mutați la Vizualizare",
"options": "Mai multe optiuni", "options": "Mai multe optiuni",
"pick_card": "Ce card doriți să adăugați?", "pick_card": "Ce card doriți să adăugați?",
"toggle_editor": "Activeaza editor", "toggle_editor": "Activeaza editor"
"typed_header": "{tip} Configurare card",
"unsaved_changes": "Aveți modificări nesalvate"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Editează titlul", "edit_title": "Editează titlul",
"explanation": "Acest titlu este arătat mai sus de toate punctele de vedere în Lovelace.", "explanation": "Acest titlu este arătat mai sus de toate punctele de vedere în Lovelace.",
"header": "Titlul interfeței dvs. Lovelace", "header": "Titlul interfeței dvs. Lovelace"
"title": "Titlu"
}, },
"edit_view": { "edit_view": {
"add": "Adăugați vizualizare", "add": "Adăugați vizualizare",
@@ -2099,8 +1999,6 @@
"entity": "Entitate", "entity": "Entitate",
"entity_id": "ID-ul entității", "entity_id": "ID-ul entității",
"last_changed": "Ultima modificare", "last_changed": "Ultima modificare",
"no_data": "Nu s-au găsit entități neutilizate",
"search": "Căutare entități",
"select_to_add": "Selectați entitățile pe care doriți să le adăugați pe un card, apoi faceți clic pe butonul Adăugare card.", "select_to_add": "Selectați entitățile pe care doriți să le adăugați pe un card, apoi faceți clic pe butonul Adăugare card.",
"title": "Entități neutilizate" "title": "Entități neutilizate"
}, },
@@ -2200,7 +2098,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Calculatorul dvs. nu este permis.",
"not_whitelisted": "Calculatorul dvs. nu este pe lista albă." "not_whitelisted": "Calculatorul dvs. nu este pe lista albă."
}, },
"step": { "step": {
@@ -2375,9 +2272,6 @@
"not_used": "Nu a fost utilizat niciodata", "not_used": "Nu a fost utilizat niciodata",
"token_title": "înnoirea token pentru {clientId}" "token_title": "înnoirea token pentru {clientId}"
}, },
"suspend": {
"header": "Închideți automat conexiunea"
},
"themes": { "themes": {
"dropdown_label": "Temă", "dropdown_label": "Temă",
"error_no_theme": "Nu există teme disponibile.", "error_no_theme": "Nu există teme disponibile.",

View File

@@ -528,7 +528,6 @@
"show_areas": "Показать помещения" "show_areas": "Показать помещения"
}, },
"data-table": { "data-table": {
"no-data": "Нет данных",
"search": "Поиск" "search": "Поиск"
}, },
"date-range-picker": { "date-range-picker": {
@@ -944,18 +943,10 @@
"introduction": "Используйте автоматизацию, чтобы оживить Ваш дом.", "introduction": "Используйте автоматизацию, чтобы оживить Ваш дом.",
"load_error_not_editable": "Доступны для редактирования только автоматизации из automations.yaml.", "load_error_not_editable": "Доступны для редактирования только автоматизации из automations.yaml.",
"load_error_unknown": "Ошибка загрузки автоматизации ({err_no}).", "load_error_unknown": "Ошибка загрузки автоматизации ({err_no}).",
"max": {
"parallel": "Максимальное количество параллельных запусков",
"queued": "Длина очереди"
},
"modes": { "modes": {
"description": "Режим управляет тем, что происходит при срабатывании автоматизации, когда действия еще выполняются с предыдущего триггера. Ознакомьтесь с {documentation_link} для получения дополнительной информации.", "description": "Режим управляет тем, что происходит при срабатывании автоматизации, когда действия еще выполняются с предыдущего триггера. Ознакомьтесь с {documentation_link} для получения дополнительной информации.",
"documentation": "инструкциями", "documentation": "инструкциями",
"label": "Режим", "label": "Режим"
"parallel": "Параллельный",
"queued": "Очередь",
"restart": "Рестарт",
"single": "Одиночный (по умолчанию)"
}, },
"move_down": "Переместить ниже", "move_down": "Переместить ниже",
"move_up": "Переместить выше", "move_up": "Переместить выше",
@@ -1702,22 +1693,11 @@
"icon": "Значок", "icon": "Значок",
"id": "ID объекта", "id": "ID объекта",
"id_already_exists": "Этот ID уже существует", "id_already_exists": "Этот ID уже существует",
"id_already_exists_save_error": "ID объекта не уникален, укажите другой ID или оставьте поле пустым, чтобы автоматически сгенерировать его.",
"introduction": "Используйте сценарии для выполнения последовательности действий.", "introduction": "Используйте сценарии для выполнения последовательности действий.",
"link_available_actions": "Узнайте больше о действиях", "link_available_actions": "Узнайте больше о действиях",
"load_error_not_editable": "Доступны для редактирования только сценарии из scripts.yaml.", "load_error_not_editable": "Доступны для редактирования только сценарии из scripts.yaml.",
"max": {
"parallel": "Максимальное количество параллельных запусков",
"queued": "Длина очереди"
},
"modes": { "modes": {
"description": "Режим управляет тем, что происходит при выполнении сценария, когда он всё ещё выполняются с предыдущего вызова. Ознакомьтесь с {documentation_link} для получения дополнительной информации.", "label": "Режим"
"documentation": "инструкциями",
"label": "Режим",
"parallel": "Параллельный",
"queued": "Очередь",
"restart": "Рестарт",
"single": "Одиночный (по умолчанию)"
}, },
"sequence": "Последовательность", "sequence": "Последовательность",
"sequence_sentence": "Последовательность действий этого сценария." "sequence_sentence": "Последовательность действий этого сценария."
@@ -2340,7 +2320,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Добавить карточку", "add": "Добавить карточку",
"confirm_cancel": "Вы уверены, что хотите отменить?",
"delete": "Удалить", "delete": "Удалить",
"duplicate": "Копировать", "duplicate": "Копировать",
"edit": "Изменить", "edit": "Изменить",
@@ -2351,9 +2330,7 @@
"pick_card_view_title": "Какую карточку Вы хотели бы добавить на вкладку {name}?", "pick_card_view_title": "Какую карточку Вы хотели бы добавить на вкладку {name}?",
"show_code_editor": "Текстовый редактор", "show_code_editor": "Текстовый редактор",
"show_visual_editor": "Форма ввода", "show_visual_editor": "Форма ввода",
"toggle_editor": "Переключить редактор", "toggle_editor": "Переключить редактор"
"typed_header": "Настройка карточки {type}",
"unsaved_changes": "У вас есть несохраненные изменения"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Изменить заголовок", "edit_title": "Изменить заголовок",
@@ -2446,8 +2423,6 @@
"entity": "Объект", "entity": "Объект",
"entity_id": "ID объекта", "entity_id": "ID объекта",
"last_changed": "Последнее изменение", "last_changed": "Последнее изменение",
"no_data": "Неиспользуемые объекты не найдены",
"search": "Поиск объектов",
"select_to_add": "Выберите объекты, которые Вы хотели бы использовать в интерфейсе, затем нажмите кнопку Добавить.", "select_to_add": "Выберите объекты, которые Вы хотели бы использовать в интерфейсе, затем нажмите кнопку Добавить.",
"title": "Неиспользуемые объекты" "title": "Неиспользуемые объекты"
}, },

View File

@@ -48,19 +48,6 @@
"none": "Noben", "none": "Noben",
"sleep": "Spanje" "sleep": "Spanje"
} }
},
"humidifier": {
"mode": {
"auto": "Samodejno",
"away": "Odsoten",
"baby": "Otrok",
"boost": "Povečanje",
"comfort": "Udobje",
"eco": "Eko",
"home": "Doma",
"normal": "Normalno",
"sleep": "Spanje"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -401,12 +388,6 @@
"reverse": "Obratno", "reverse": "Obratno",
"speed": "Hitrost" "speed": "Hitrost"
}, },
"humidifier": {
"humidity": "Ciljna vlažnost",
"mode": "Način",
"on_entity": "{name} vklopljeno",
"target_humidity_entity": "{name} ciljna vlažnost"
},
"light": { "light": {
"brightness": "Svetlost", "brightness": "Svetlost",
"color_temperature": "Temperatura barve", "color_temperature": "Temperatura barve",
@@ -430,8 +411,6 @@
"activate": "Aktiviraj" "activate": "Aktiviraj"
}, },
"script": { "script": {
"cancel": "Prekliči",
"cancel_multiple": "Prekliči {number}",
"execute": "Izvedi" "execute": "Izvedi"
}, },
"service": { "service": {
@@ -527,15 +506,6 @@
"clear": "Počisti", "clear": "Počisti",
"show_areas": "Pokaži cone" "show_areas": "Pokaži cone"
}, },
"data-table": {
"no-data": "Ni podatkov",
"search": "Iskanje"
},
"date-range-picker": {
"end_date": "Končni datum",
"select": "Izberite",
"start_date": "Začetni datum"
},
"device-picker": { "device-picker": {
"clear": "Počisti", "clear": "Počisti",
"device": "Naprava", "device": "Naprava",
@@ -652,7 +622,7 @@
"pattern": "Vzorec Regex za validacijo na strani odjemalca", "pattern": "Vzorec Regex za validacijo na strani odjemalca",
"text": "Besedilo" "text": "Besedilo"
}, },
"platform_not_loaded": "Integracija {platform} ni naložena. Prosimo, dodajte ga v svojo konfiguracijo tako, da dodate 'default_config: 'ali' ' {platform} :' '.", "platform_not_loaded": "Integracija {platform} ni naložena. Dodajte svojo konfiguracijo bodisi tako, da dodate 'default_config:' 'ali \"{platform} :\".",
"required_error_msg": "To polje je obvezno", "required_error_msg": "To polje je obvezno",
"yaml_not_editable": "Nastavitev te entitete ni mogoče urejati iz uporabniškega vmesnika. Od tam se lahko konfigurirajo samo entitete, nastavljene iz uporabniškega vmesnika." "yaml_not_editable": "Nastavitev te entitete ni mogoče urejati iz uporabniškega vmesnika. Od tam se lahko konfigurirajo samo entitete, nastavljene iz uporabniškega vmesnika."
}, },
@@ -725,7 +695,6 @@
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "Dodajte naprave prek te naprave", "add": "Dodajte naprave prek te naprave",
"clusters": "Upravljanje gruč",
"reconfigure": "Ponovno konfigurirajte napravo", "reconfigure": "Ponovno konfigurirajte napravo",
"remove": "Odstranite napravo", "remove": "Odstranite napravo",
"zigbee_information": "Podpis naprave Zigbee" "zigbee_information": "Podpis naprave Zigbee"
@@ -944,19 +913,6 @@
"introduction": "Uporabite avtomatizacije za oživitev vašega doma.", "introduction": "Uporabite avtomatizacije za oživitev vašega doma.",
"load_error_not_editable": "Urejati je mogoče le avtomatizacije v automations.yaml.", "load_error_not_editable": "Urejati je mogoče le avtomatizacije v automations.yaml.",
"load_error_unknown": "Napaka pri nalaganju avtomatizacije ({err_no}).", "load_error_unknown": "Napaka pri nalaganju avtomatizacije ({err_no}).",
"max": {
"parallel": "Največje število vzporednih tokov",
"queued": "Dolžina čakalne vrste"
},
"modes": {
"description": "Način nadzoruje, kaj se zgodi, ko se avtomatizacija sproži, medtem, ko dejanja od prejšnjega sprožilca še vedno tečejo. Oglejte si {documentation_link} za več informacij.",
"documentation": "dokumentacija za avtomatizacijo",
"label": "Način",
"parallel": "Vzporedno",
"queued": "V čakalni vrsti",
"restart": "Ponovni zagon",
"single": "Enojno (privzeta nastavitev)"
},
"move_down": "Premakni navzdol", "move_down": "Premakni navzdol",
"move_up": "Premakni navzgor", "move_up": "Premakni navzgor",
"save": "Shrani", "save": "Shrani",
@@ -1375,7 +1331,6 @@
"confirm_text": "Če vsebujejo te entitete, bi jih morali odstraniti iz vašega Lovelace config-a in avtomatizacije.", "confirm_text": "Če vsebujejo te entitete, bi jih morali odstraniti iz vašega Lovelace config-a in avtomatizacije.",
"confirm_title": "Ali želite odstraniti {number} entiteto-i/e?" "confirm_title": "Ali želite odstraniti {number} entiteto-i/e?"
}, },
"search": "Iskanje subjektov",
"selected": "{številka} izbrana/ih", "selected": "{številka} izbrana/ih",
"status": { "status": {
"disabled": "Onemogočeno", "disabled": "Onemogočeno",
@@ -1406,8 +1361,7 @@
"entity_id": "ID subjekta", "entity_id": "ID subjekta",
"name": "Ime", "name": "Ime",
"type": "Vrsta" "type": "Vrsta"
}, }
"no_helpers": "Zdi se, da še nimate pomočnikov!"
}, },
"types": { "types": {
"input_boolean": "Preklopite", "input_boolean": "Preklopite",
@@ -1452,7 +1406,6 @@
"delete_confirm": "Ali ste prepričani, da želite izbrisati to integracijo?", "delete_confirm": "Ali ste prepričani, da želite izbrisati to integracijo?",
"device_unavailable": "naprava ni na voljo", "device_unavailable": "naprava ni na voljo",
"devices": "{count} {count, plural,\n one {naprava}\n other {naprav}\n}", "devices": "{count} {count, plural,\n one {naprava}\n other {naprav}\n}",
"documentation": "Dokumentacija",
"entities": "{count} {count, plural,\n one {entiteta}\n other {entitet}\n}", "entities": "{count} {count, plural,\n one {entiteta}\n other {entitet}\n}",
"entity_unavailable": "entiteta ni na voljo", "entity_unavailable": "entiteta ni na voljo",
"firmware": "Firmware: {version}", "firmware": "Firmware: {version}",
@@ -1511,8 +1464,7 @@
"note_about_integrations": "Vseh integracij še ni mogoče konfigurirati prek uporabniškega vmesnika.", "note_about_integrations": "Vseh integracij še ni mogoče konfigurirati prek uporabniškega vmesnika.",
"note_about_website_reference": "Več jih je na voljo prek", "note_about_website_reference": "Več jih je na voljo prek",
"rename_dialog": "Uredite ime tega vnosa konfiguracije", "rename_dialog": "Uredite ime tega vnosa konfiguracije",
"rename_input_label": "Ime vnosa", "rename_input_label": "Ime vnosa"
"search": "Iskanje integracij"
}, },
"introduction": "Tukaj je mogoče konfigurirati vaše komponente in Home Assistanta. Vsega ni mogoče konfigurirati iz uporabniškega vmesnika (vendar delamo na tem).", "introduction": "Tukaj je mogoče konfigurirati vaše komponente in Home Assistanta. Vsega ni mogoče konfigurirati iz uporabniškega vmesnika (vendar delamo na tem).",
"logs": { "logs": {
@@ -1606,7 +1558,6 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Konfiguriraj",
"description_listen": "Poslušajte temi", "description_listen": "Poslušajte temi",
"description_publish": "Objavi paket", "description_publish": "Objavi paket",
"listening_to": "Poslušanje", "listening_to": "Poslušanje",
@@ -1665,7 +1616,6 @@
"introduction": "Tu lahko nastavite subjekte, ki ne pripadajo napravi.", "introduction": "Tu lahko nastavite subjekte, ki ne pripadajo napravi.",
"without_device": "Entitete brez naprave" "without_device": "Entitete brez naprave"
}, },
"icon": "Ikona",
"introduction": "Uporabite scene, da oživite svoj dom.", "introduction": "Uporabite scene, da oživite svoj dom.",
"load_error_not_editable": "Urejajo se lahko samo scene v scene.yaml.", "load_error_not_editable": "Urejajo se lahko samo scene v scene.yaml.",
"load_error_unknown": "Napaka pri nalaganju scene ({err_no}).", "load_error_unknown": "Napaka pri nalaganju scene ({err_no}).",
@@ -1699,26 +1649,9 @@
"delete_confirm": "Ali ste prepričani, da želite izbrisati to skripto?", "delete_confirm": "Ali ste prepričani, da želite izbrisati to skripto?",
"delete_script": "Izbriši skripto", "delete_script": "Izbriši skripto",
"header": "Skripta: {name}", "header": "Skripta: {name}",
"icon": "Ikona",
"id": "ID subjekta",
"id_already_exists": "Ta ID že obstaja",
"id_already_exists_save_error": "Te skripte ne morete shraniti, ker ID ni edinstven, izberite drug ID ali ga pustite prazno, da ga samodejno ustvari.",
"introduction": "Uporabite skripte za izvajanje zaporedij dejanj.", "introduction": "Uporabite skripte za izvajanje zaporedij dejanj.",
"link_available_actions": "Preberite več o razpoložljivih dejanjih.", "link_available_actions": "Preberite več o razpoložljivih dejanjih.",
"load_error_not_editable": "Urejati je mogoče le skripte znotraj scripts.yaml.", "load_error_not_editable": "Urejati je mogoče le skripte znotraj scripts.yaml.",
"max": {
"parallel": "Največje število vzporednih tokov",
"queued": "Dolžina čakalne vrste"
},
"modes": {
"description": "Način nadzoruje, kaj se zgodi, ko se prikliče skripta, medtem ko še vedno teče iz enega ali več prejšnjih klicev. Oglejte si {documentation_link} za več informacij.",
"documentation": "skripta dokumentacija",
"label": "Način",
"parallel": "Vzporedno",
"queued": "V čakalni vrsti",
"restart": "Ponovni zagon",
"single": "Enojno (privzeta nastavitev)"
},
"sequence": "Zaporedje", "sequence": "Zaporedje",
"sequence_sentence": "Zaporedje dejanj te skripte." "sequence_sentence": "Zaporedje dejanj te skripte."
}, },
@@ -1816,7 +1749,7 @@
"discovered_text": "Naprave se bodo prikazale tukaj, ko jih odkrijemo.", "discovered_text": "Naprave se bodo prikazale tukaj, ko jih odkrijemo.",
"discovery_text": "Tukaj bodo prikazane odkrite naprave. Sledite navodilom za napravo in jo postavite v način seznanjanja.", "discovery_text": "Tukaj bodo prikazane odkrite naprave. Sledite navodilom za napravo in jo postavite v način seznanjanja.",
"header": "Zigbee Home Automation - Dodaj naprave", "header": "Zigbee Home Automation - Dodaj naprave",
"no_devices_found": "Nobene naprave ni bilo mogoče najti, preverite, ali so v stanju pripravljenosti, in bodite budni, medtem ko odkritje teče.", "no_devices_found": "Najdene ni bilo nobene naprave, preverite, ali so v načinu združevanje ter jih držite budne medtem, ko je v odkrivanje v teku.",
"pairing_mode": "Prepričajte se, da so vaše naprave v načinu združevanja. Preverite navodila svoje naprave, kako to storiti.", "pairing_mode": "Prepričajte se, da so vaše naprave v načinu združevanja. Preverite navodila svoje naprave, kako to storiti.",
"search_again": "Ponovno iskanje", "search_again": "Ponovno iskanje",
"spinner": "Iskanje ZHA Zigbee naprav..." "spinner": "Iskanje ZHA Zigbee naprav..."
@@ -2102,23 +2035,11 @@
}, },
"history": { "history": {
"period": "Obdobje", "period": "Obdobje",
"ranges": {
"last_week": "Prejšnji teden",
"this_week": "Ta teden",
"today": "Danes",
"yesterday": "Včeraj"
},
"showing_entries": "Prikaz vnosov za" "showing_entries": "Prikaz vnosov za"
}, },
"logbook": { "logbook": {
"entries_not_found": "Ni vpisov v dnevnike.", "entries_not_found": "Ni vpisov v dnevnike.",
"period": "Obdobje", "period": "Obdobje",
"ranges": {
"last_week": "Prejšnji teden",
"this_week": "Ta teden",
"today": "Danes",
"yesterday": "Včeraj"
},
"showing_entries": "Prikaz vnosov za" "showing_entries": "Prikaz vnosov za"
}, },
"lovelace": { "lovelace": {
@@ -2234,7 +2155,6 @@
"name": "Ime", "name": "Ime",
"no_theme": "Brez teme", "no_theme": "Brez teme",
"refresh_interval": "Interval osveževanja", "refresh_interval": "Interval osveževanja",
"search": "Iskanje",
"secondary_info_attribute": "Atributi sekundarnih informacij", "secondary_info_attribute": "Atributi sekundarnih informacij",
"show_icon": "Prikaži ikono?", "show_icon": "Prikaži ikono?",
"show_name": "Prikaži ime?", "show_name": "Prikaži ime?",
@@ -2259,10 +2179,6 @@
"description": "Kartica Horizontal stack vam omogoča, da skupaj zložite več kart, tako da vedno stojijo drug poleg drugega v razmaku enega stolpca.", "description": "Kartica Horizontal stack vam omogoča, da skupaj zložite več kart, tako da vedno stojijo drug poleg drugega v razmaku enega stolpca.",
"name": "Vodoravna skladnica" "name": "Vodoravna skladnica"
}, },
"humidifier": {
"description": "Kartica \"humidifier\" omogoča nadzor nad vašo vlažilno enoto. Omogoča vam, da spremenite vlažnost in način dela entitete.",
"name": "Vlažilec"
},
"iframe": { "iframe": {
"description": "Kartica webpage vam omogoča, da svojo najljubšo spletno stran vdelate Home Assistant.", "description": "Kartica webpage vam omogoča, da svojo najljubšo spletno stran vdelate Home Assistant.",
"name": "Spletna stran" "name": "Spletna stran"
@@ -2340,7 +2256,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Dodaj kartico", "add": "Dodaj kartico",
"confirm_cancel": "Ali ste prepričani, da želite preklicati?",
"delete": "Izbriši kartico", "delete": "Izbriši kartico",
"duplicate": "Podvoji kartico", "duplicate": "Podvoji kartico",
"edit": "Uredi", "edit": "Uredi",
@@ -2351,15 +2266,12 @@
"pick_card_view_title": "Katero kartico želite dodati v pogled {name}?", "pick_card_view_title": "Katero kartico želite dodati v pogled {name}?",
"show_code_editor": "Pokaži urejevalnik kode", "show_code_editor": "Pokaži urejevalnik kode",
"show_visual_editor": "Pokaži vizualni urejevalnik", "show_visual_editor": "Pokaži vizualni urejevalnik",
"toggle_editor": "Preklop na urejevalnik", "toggle_editor": "Preklop na urejevalnik"
"typed_header": "{type} Konfiguracija kartice",
"unsaved_changes": "Imate neshranjene spremembe"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Uredi naslov", "edit_title": "Uredi naslov",
"explanation": "Ta naslov je prikazan predvsem nad vašimi pogledi v uporabniškem vmesniku Lovelace.", "explanation": "Ta naslov je prikazan predvsem nad vašimi pogledi v uporabniškem vmesniku Lovelace.",
"header": "Naslov vašega uporabniškega vmesnika Lovelace", "header": "Naslov vašega uporabniškega vmesnika Lovelace"
"title": "Naslov"
}, },
"edit_view": { "edit_view": {
"add": "Dodaj pogled", "add": "Dodaj pogled",
@@ -2446,8 +2358,6 @@
"entity": "Subjekt", "entity": "Subjekt",
"entity_id": "ID subjekta", "entity_id": "ID subjekta",
"last_changed": "Zadnja sprememba", "last_changed": "Zadnja sprememba",
"no_data": "Najdenih ni bilo neuporabljenih subjektov",
"search": "Iskanje subjektov",
"select_to_add": "Izberite entitete, ki jih želite dodati na kartico, in nato kliknite gumb Dodaj kartico.", "select_to_add": "Izberite entitete, ki jih želite dodati na kartico, in nato kliknite gumb Dodaj kartico.",
"title": "Neuporabljene entitete" "title": "Neuporabljene entitete"
}, },
@@ -2550,7 +2460,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Vaš računalnik ni dovoljen.",
"not_whitelisted": "Vaš računalnik ni dodan med zaupanja vredne." "not_whitelisted": "Vaš računalnik ni dodan med zaupanja vredne."
}, },
"step": { "step": {
@@ -2726,10 +2635,6 @@
"not_used": "Nikoli ni bil uporabljen", "not_used": "Nikoli ni bil uporabljen",
"token_title": "Žeton za osveževanje za {clientId}" "token_title": "Žeton za osveževanje za {clientId}"
}, },
"suspend": {
"description": "Ali bi morali zapreti povezavo s strežnikom, potem ko je skrita za 5 minut?",
"header": "Samodejno zapri povezavo"
},
"themes": { "themes": {
"dropdown_label": "Tema", "dropdown_label": "Tema",
"error_no_theme": "Teme niso na voljo.", "error_no_theme": "Teme niso na voljo.",

View File

@@ -48,19 +48,6 @@
"none": "Yok", "none": "Yok",
"sleep": "Uyku" "sleep": "Uyku"
} }
},
"humidifier": {
"mode": {
"auto": "Otomatik",
"away": "Dışarıda",
"baby": "Bebek",
"boost": "Artırmak",
"comfort": "Konfor",
"eco": "Eko",
"home": "Evde",
"normal": "Normal",
"sleep": "Uyku"
}
} }
}, },
"state_badge": { "state_badge": {
@@ -399,12 +386,6 @@
"reverse": "Ters", "reverse": "Ters",
"speed": "Hız" "speed": "Hız"
}, },
"humidifier": {
"humidity": "Hedef nem oranı",
"mode": "Mod",
"on_entity": "{name} de",
"target_humidity_entity": "{name} hedef nem"
},
"light": { "light": {
"brightness": "Parlaklık", "brightness": "Parlaklık",
"color_temperature": "Renk sıcaklığı", "color_temperature": "Renk sıcaklığı",
@@ -428,8 +409,6 @@
"activate": "Etkinleştir" "activate": "Etkinleştir"
}, },
"script": { "script": {
"cancel": "İptal",
"cancel_multiple": "{number} iptal et",
"execute": "Yürüt" "execute": "Yürüt"
}, },
"service": { "service": {
@@ -497,12 +476,9 @@
"cancel": "İptal", "cancel": "İptal",
"close": "Kapat", "close": "Kapat",
"delete": "Sil", "delete": "Sil",
"error_required": "Gerekli",
"loading": "Yükleniyor", "loading": "Yükleniyor",
"menu": "Menü",
"next": "Sonraki", "next": "Sonraki",
"no": "Hayır", "no": "Hayır",
"overflow_menu": "Taşma menüsü",
"previous": "Önceki", "previous": "Önceki",
"refresh": "Yenile", "refresh": "Yenile",
"save": "Kaydet", "save": "Kaydet",
@@ -525,15 +501,6 @@
"clear": "Temizle", "clear": "Temizle",
"show_areas": "Alanları göster" "show_areas": "Alanları göster"
}, },
"data-table": {
"no-data": "Veri yok",
"search": "Ara"
},
"date-range-picker": {
"end_date": "Bitiş tarihi",
"select": "Seç",
"start_date": "Başlangıç tarihi"
},
"device-picker": { "device-picker": {
"clear": "Temiz", "clear": "Temiz",
"device": "Cihaz", "device": "Cihaz",
@@ -599,13 +566,11 @@
"enabled_label": "Varlığı etkinleştir", "enabled_label": "Varlığı etkinleştir",
"entity_id": "Varlık kimliği", "entity_id": "Varlık kimliği",
"icon": "Simge geçersiz kılma", "icon": "Simge geçersiz kılma",
"icon_error": "Simgeler 'önek: simge adı' biçiminde olmalıdır, örneğin 'mdi: home'",
"name": "Ad Geçersiz Kılma", "name": "Ad Geçersiz Kılma",
"note": "Not: bu henüz tüm entegrasyonlarla çalışmayabilir.", "note": "Not: bu henüz tüm entegrasyonlarla çalışmayabilir.",
"unavailable": "Bu varlık şu anda kullanılamıyor.", "unavailable": "Bu varlık şu anda kullanılamıyor.",
"update": "GÜNCELLE" "update": "GÜNCELLE"
}, },
"no_unique_id": "Bu varlığın benzersiz bir kimliği yok, bu nedenle ayarları kullanıcı arayüzünden yönetilemiyor.",
"related": "İlgili", "related": "İlgili",
"settings": "Ayarlar" "settings": "Ayarlar"
}, },
@@ -646,7 +611,6 @@
"min": "Minimum uzunluk", "min": "Minimum uzunluk",
"mode": "Görüntü modu", "mode": "Görüntü modu",
"password": "Şifre", "password": "Şifre",
"pattern": "İstemci tarafı doğrulaması için normal ifade kalıbı",
"text": "Metin" "text": "Metin"
}, },
"platform_not_loaded": "{platform} entegrasyonu yüklenmedi. Lütfen 'default_config:' veya ''{platform}:'' ekleyerek onu yapılandırmanıza dahil edin.", "platform_not_loaded": "{platform} entegrasyonu yüklenmedi. Lütfen 'default_config:' veya ''{platform}:'' ekleyerek onu yapılandırmanıza dahil edin.",
@@ -695,7 +659,6 @@
"entities": "Varlıklar", "entities": "Varlıklar",
"no_entities": "Varlık yok", "no_entities": "Varlık yok",
"no_triggers": "Tetikleyici yok", "no_triggers": "Tetikleyici yok",
"recent_messages": "{n} , en son alınan mesaj (lar)",
"show_as_yaml": "YAML olarak göster", "show_as_yaml": "YAML olarak göster",
"triggers": "Tetikleyiciler" "triggers": "Tetikleyiciler"
}, },
@@ -718,7 +681,6 @@
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "Cihaz Ekle", "add": "Cihaz Ekle",
"clusters": "Kümeleri Yönet",
"reconfigure": "Cihazı Yeniden Yapılandır", "reconfigure": "Cihazı Yeniden Yapılandır",
"remove": "Cihazı Kaldır", "remove": "Cihazı Kaldır",
"zigbee_information": "Zigbee Bilgileri" "zigbee_information": "Zigbee Bilgileri"
@@ -764,8 +726,6 @@
"notification_toast": { "notification_toast": {
"connection_lost": "Bağlantı koptu. Yeniden bağlanıyor ...", "connection_lost": "Bağlantı koptu. Yeniden bağlanıyor ...",
"service_call_failed": "{service} çağrı yapılamadı.", "service_call_failed": "{service} çağrı yapılamadı.",
"started": "Home Assistant başladı!",
"starting": "Home Assistant başlıyor, arayüzün yüklenmesi için bekleyiniz",
"triggered": "Tetiklendi {name}" "triggered": "Tetiklendi {name}"
}, },
"panel": { "panel": {
@@ -932,21 +892,6 @@
"introduction": "Evinizi canlandırmak için otomasyonları kullanın", "introduction": "Evinizi canlandırmak için otomasyonları kullanın",
"load_error_not_editable": "Yalnızca automations.yaml içindeki otomasyonlar düzenlenebilir.", "load_error_not_editable": "Yalnızca automations.yaml içindeki otomasyonlar düzenlenebilir.",
"load_error_unknown": "Otomasyon yüklenirken hata oluştu ( {err_no} ).", "load_error_unknown": "Otomasyon yüklenirken hata oluştu ( {err_no} ).",
"max": {
"parallel": "Maksimum paralel çalışma sayısı",
"queued": "Kuyruk uzunluğu"
},
"modes": {
"description": "Mod, eylemler önceki bir tetikleyiciden çalışmaya devam ederken otomasyon tetiklendiğinde ne olacağını kontrol eder. Daha fazla bilgi için {documentation_link} bakın.",
"documentation": "otomasyon belgeleri",
"label": "Mod",
"parallel": "Paralel",
"queued": "Kuyrukta",
"restart": "Yeniden başlat",
"single": "Tek (varsayılan)"
},
"move_down": "Aşağı taşı",
"move_up": "Yukarı Taşı",
"save": "Kaydet", "save": "Kaydet",
"triggers": { "triggers": {
"add": "Tetikleyici ekle", "add": "Tetikleyici ekle",
@@ -1210,7 +1155,6 @@
"core_config": { "core_config": {
"elevation": "Yükseklik", "elevation": "Yükseklik",
"elevation_meters": "metre", "elevation_meters": "metre",
"external_url": "Harici bağlantı URL'si",
"imperial_example": "Fahrenheit, pound", "imperial_example": "Fahrenheit, pound",
"internal_url": "Dahili bağlantı URL'si", "internal_url": "Dahili bağlantı URL'si",
"latitude": "Enlem", "latitude": "Enlem",
@@ -1235,7 +1179,6 @@
"description": "Varlıklarınızı kişiselleştirin", "description": "Varlıklarınızı kişiselleştirin",
"pick_attribute": "Geçersiz kılmak için bir özellik seçin", "pick_attribute": "Geçersiz kılmak için bir özellik seçin",
"picker": { "picker": {
"entity": "Varlık",
"header": "Özelleştirmeler" "header": "Özelleştirmeler"
}, },
"warning": { "warning": {
@@ -1279,7 +1222,6 @@
"entities": { "entities": {
"add_entities_lovelace": "Tüm cihaz varlıklarını Lovelace kullanıcı arayüzüne ekle", "add_entities_lovelace": "Tüm cihaz varlıklarını Lovelace kullanıcı arayüzüne ekle",
"entities": "Varlıkları", "entities": "Varlıkları",
"hide_disabled": "Devre dışı olanları gizle",
"none": "Bu cihazın varlığı yok" "none": "Bu cihazın varlığı yok"
}, },
"name": "Ad", "name": "Ad",
@@ -1328,12 +1270,8 @@
}, },
"remove_selected": { "remove_selected": {
"button": "Seçilenleri kaldır", "button": "Seçilenleri kaldır",
"confirm_partly_text": "Yalnızca seçili {selected} varlıkları {removable} kaldırabilirsiniz. Varlıklar yalnızca entegrasyon özelliklerini sağlamadığında kaldırılabilir. Bazen, kaldırılan bir entegrasyondaki varlıkları kaldırabilmeniz için önce Home Assistant'ı yeniden başlatmanız gerekir. Çıkarılabilir varlıkları kaldırmak istediğinizden emin misiniz?",
"confirm_partly_title": "Yalnızca {number} seçilen varlık kaldırılabilir.",
"confirm_text": "Bu varlıkları içeriyorsa, bunları Lovelace yapılandırmanız ve otomasyonlarınızdan kaldırmalısınız.",
"confirm_title": "{number} varlığı kaldırmak istiyor musunuz?" "confirm_title": "{number} varlığı kaldırmak istiyor musunuz?"
}, },
"search": "Varlıkları ara",
"selected": "{number} seçildi", "selected": "{number} seçildi",
"status": { "status": {
"disabled": "Devre dışı", "disabled": "Devre dışı",
@@ -1345,8 +1283,7 @@
} }
}, },
"filtering": { "filtering": {
"clear": "Temizle", "clear": "Temizle"
"filtering_by": "Filtreleme ölçütü"
}, },
"header": "Home Assistant'ı yapılandır", "header": "Home Assistant'ı yapılandır",
"helpers": { "helpers": {
@@ -1364,8 +1301,7 @@
"entity_id": "Varlık kimliği", "entity_id": "Varlık kimliği",
"name": "Ad", "name": "Ad",
"type": "Tip" "type": "Tip"
}, }
"no_helpers": "Henüz hiç yardımcınız yok gibi görünüyor!"
}, },
"types": { "types": {
"input_boolean": "Geçiş", "input_boolean": "Geçiş",
@@ -1377,9 +1313,7 @@
}, },
"info": { "info": {
"built_using": "Kullanılan oluşturma", "built_using": "Kullanılan oluşturma",
"caption": "Bilgi",
"custom_uis": "Özel kullanıcı arayüzleri:", "custom_uis": "Özel kullanıcı arayüzleri:",
"description": "Home Assistant kurulumunuz hakkında bilgi",
"developed_by": "Bir sürü harika insan tarafından geliştirildi.", "developed_by": "Bir sürü harika insan tarafından geliştirildi.",
"documentation": "Belgeleri", "documentation": "Belgeleri",
"frontend": "ön uç-ui", "frontend": "ön uç-ui",
@@ -1395,13 +1329,7 @@
"system_health_error": "Sistem Sağlığı bileşeni yüklü değil. configuration.yaml içine 'system_health:' ekleyin", "system_health_error": "Sistem Sağlığı bileşeni yüklü değil. configuration.yaml içine 'system_health:' ekleyin",
"title": "Bilgi" "title": "Bilgi"
}, },
"integration_panel_move": {
"link_integration_page": "entegrasyonlar sayfası",
"missing_zha": "ZHA yapılandırma paneli eksik mi? {integrations_page} üzerindeki ZHA girişine taşındı.",
"missing_zwave": "Z-Wave yapılandırma paneli eksik mi? {integrations_page} üzerindeki Z-Wave girişine taşındı."
},
"integrations": { "integrations": {
"add_integration": "Entegrasyon ekle",
"caption": "Entegrasyonlar", "caption": "Entegrasyonlar",
"config_entry": { "config_entry": {
"area": "{alan} içinde", "area": "{alan} içinde",
@@ -1409,7 +1337,6 @@
"delete_button": "{Entegrasyon} sil", "delete_button": "{Entegrasyon} sil",
"delete_confirm": "Bu entegrasyonu silmek istediğinizden emin misiniz?", "delete_confirm": "Bu entegrasyonu silmek istediğinizden emin misiniz?",
"device_unavailable": "aygıt kullanılamıyor", "device_unavailable": "aygıt kullanılamıyor",
"documentation": "Dökümanlar",
"entity_unavailable": "varlık kullanılamıyor", "entity_unavailable": "varlık kullanılamıyor",
"firmware": "Aygıt yazılımı: {version}", "firmware": "Aygıt yazılımı: {version}",
"hub": "Şununla bağlı:", "hub": "Şununla bağlı:",
@@ -1454,24 +1381,18 @@
"show_ignored": "Yok sayılan entegrasyonları göster", "show_ignored": "Yok sayılan entegrasyonları göster",
"stop_ignore": "Yoksaymayı bırak" "stop_ignore": "Yoksaymayı bırak"
}, },
"integration": "Entegrasyon",
"integration_not_found": "Entegrasyon bulunamadı.", "integration_not_found": "Entegrasyon bulunamadı.",
"new": "Yeni bir entegrasyon kur", "new": "Yeni bir entegrasyon kur",
"no_integrations": "Henüz yapılandırılmış hiçbir entegrasyonunuz yok gibi görünüyor. İlk entegrasyonunuzu eklemek için aşağıdaki düğmeyi tıklayın!",
"none": "Henüz hiçbir şey yapılandırılmamış", "none": "Henüz hiçbir şey yapılandırılmamış",
"none_found": "Hiçbir entegrasyon bulunamadı", "none_found": "Hiçbir entegrasyon bulunamadı",
"none_found_detail": "Arama ölçütlerinizi ayarlayın.", "none_found_detail": "Arama ölçütlerinizi ayarlayın.",
"note_about_integrations": "Tüm entegrasyonlar henüz kullanıcı arayüzü üzerinden yapılandırılmiyor", "note_about_integrations": "Tüm entegrasyonlar henüz kullanıcı arayüzü üzerinden yapılandırılmiyor",
"note_about_website_reference": "Daha fazlası için", "note_about_website_reference": "Daha fazlası için",
"rename_dialog": "Bu yapılandırma girişinin adını düzenleyin", "rename_input_label": "Varlık adı"
"rename_input_label": "Varlık adı",
"search": "Entegrasyonları ara"
}, },
"introduction": "Buradan bileşenlerinizi ve Home Assistant'ınızı yapılandırabilirsiniz. Herşeyi kullanıcı arayüzü ile ayarlamak henüz mümkün değil fakat üzerinde çalışıyoruz", "introduction": "Buradan bileşenlerinizi ve Home Assistant'ınızı yapılandırabilirsiniz. Herşeyi kullanıcı arayüzü ile ayarlamak henüz mümkün değil fakat üzerinde çalışıyoruz",
"logs": { "logs": {
"caption": "Günlükler",
"clear": "Temizle", "clear": "Temizle",
"description": "Home Assistant günlüklerini görüntüle",
"details": "Günlük Ayrıntıları ( {level} )", "details": "Günlük Ayrıntıları ( {level} )",
"load_full_log": "Tam Home Assistant Günlüğünü Yükle", "load_full_log": "Tam Home Assistant Günlüğünü Yükle",
"loading_log": "Hata günlüğü yükleniyor ...", "loading_log": "Hata günlüğü yükleniyor ...",
@@ -1549,7 +1470,6 @@
}, },
"refresh_header": "Yenilemek istiyor musunuz?", "refresh_header": "Yenilemek istiyor musunuz?",
"types": { "types": {
"css": "Stil",
"html": "HTML (kullanımdan kaldırıldı)", "html": "HTML (kullanımdan kaldırıldı)",
"js": "JavaScript Dosyası (kullanımdan kaldırıldı)", "js": "JavaScript Dosyası (kullanımdan kaldırıldı)",
"module": "JavaScript Modülü" "module": "JavaScript Modülü"
@@ -1557,7 +1477,6 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Yapılandır",
"description_listen": "Bir konuyu dinle", "description_listen": "Bir konuyu dinle",
"description_publish": "Bir paket yayınla", "description_publish": "Bir paket yayınla",
"listening_to": "Dinliyorum", "listening_to": "Dinliyorum",
@@ -1614,7 +1533,6 @@
"introduction": "Bir cihaza ait olmayan varlıklar buradan ayarlanabilir.", "introduction": "Bir cihaza ait olmayan varlıklar buradan ayarlanabilir.",
"without_device": "Cihazı olmayan varlıklar" "without_device": "Cihazı olmayan varlıklar"
}, },
"icon": "Simge",
"introduction": "Evinizi canlandırmak için sahneleri kullanın.", "introduction": "Evinizi canlandırmak için sahneleri kullanın.",
"load_error_not_editable": "Sadece scenes.yaml içindeki sahneler düzenlenebilinir.", "load_error_not_editable": "Sadece scenes.yaml içindeki sahneler düzenlenebilinir.",
"load_error_unknown": "Sahne yüklenirken hata oluştu ( {err_no} ).", "load_error_unknown": "Sahne yüklenirken hata oluştu ( {err_no} ).",
@@ -1645,25 +1563,8 @@
"editor": { "editor": {
"alias": "Ad", "alias": "Ad",
"delete_script": "Komut dosyasını sil", "delete_script": "Komut dosyasını sil",
"icon": "Simge",
"id": "Varlık kimliği",
"id_already_exists": "Bu ID zaten var",
"id_already_exists_save_error": "Kimlik benzersiz olmadığından bu komut dosyasını kaydedemezsiniz, başka bir kimlik seçin veya otomatik olarak bir tane oluşturmak için boş bırakın.",
"introduction": "Bir dizi eylemi yürütmek için komut dosyalarını kullanın.", "introduction": "Bir dizi eylemi yürütmek için komut dosyalarını kullanın.",
"link_available_actions": "Kullanılabilir aksiyonlar hakkında daha fazla bilgi edinin.", "link_available_actions": "Kullanılabilir aksiyonlar hakkında daha fazla bilgi edinin.",
"max": {
"parallel": "Maksimum paralel çalışma sayısı",
"queued": "Kuyruk uzunluğu"
},
"modes": {
"description": "Mod, komut dosyası çağrıldığı zaman ne olacağını denetler ve bir veya daha fazla önceki çağrılardan çalışmaya devam eder. Daha fazla bilgi için {documentation_link} kontrol edin.",
"documentation": "komut dosyası belgeleri",
"label": "Mod",
"parallel": "Paralel",
"queued": "Kuyrukta",
"restart": "Yeniden başlat",
"single": "Tek (varsayılan)"
},
"sequence": "Sıra" "sequence": "Sıra"
}, },
"picker": { "picker": {
@@ -1673,7 +1574,6 @@
"headers": { "headers": {
"name": "Ad" "name": "Ad"
}, },
"show_info": "Komut dosyası hakkında bilgi göster",
"trigger_script": "Komut dosyası tetikle" "trigger_script": "Komut dosyası tetikle"
} }
}, },
@@ -1686,10 +1586,6 @@
"core": "Konumu ve özelleştirmeleri yeniden yükle", "core": "Konumu ve özelleştirmeleri yeniden yükle",
"group": "Grupları yeniden yükle", "group": "Grupları yeniden yükle",
"heading": "Yapılandırma yeniden yükleniyor", "heading": "Yapılandırma yeniden yükleniyor",
"input_datetime": "Giriş tarih ve zamanı yeniden yükle",
"input_number": "Giriş numaralarını yeniden yükle",
"input_select": "Giriş seçimlerini yeniden yükle",
"input_text": "Giriş metinlerini yeniden yükle",
"introduction": "Bazı Home Assistant bileşenleri yeniden başlatmadan yenilenebilinir. Yeniden yükle tuşuna basarak güncel yapılandırmayı bırakarak yenisinin yüklenmesini sağlayabilirsiniz.", "introduction": "Bazı Home Assistant bileşenleri yeniden başlatmadan yenilenebilinir. Yeniden yükle tuşuna basarak güncel yapılandırmayı bırakarak yenisinin yüklenmesini sağlayabilirsiniz.",
"person": "Kişileri yeniden yükle", "person": "Kişileri yeniden yükle",
"scene": "Sahneleri yeniden yükle", "scene": "Sahneleri yeniden yükle",
@@ -1751,10 +1647,7 @@
}, },
"zha": { "zha": {
"add_device_page": { "add_device_page": {
"discovered_text": "Cihazlar keşfedildikten sonra burada görünecektir.",
"header": "Zigbee Ev Otomasyonu - Cihaz Ekle", "header": "Zigbee Ev Otomasyonu - Cihaz Ekle",
"no_devices_found": "Hiçbir cihaz bulunamadı, eşleştirme modunda olduklarından emin olun ve keşfetme sırasında cihazıık tutun.",
"pairing_mode": "Cihazlarınızın eşleme modunda olduğundan emin olun. Bunun nasıl yapılacağı konusunda cihazınızın talimatlarını kontrol edin.",
"search_again": "Yeniden Ara", "search_again": "Yeniden Ara",
"spinner": "ZHA Zigbee cihazları aranıyor ..." "spinner": "ZHA Zigbee cihazları aranıyor ..."
}, },
@@ -1762,7 +1655,6 @@
"caption": "Cihaz Ekle", "caption": "Cihaz Ekle",
"description": "Zigbee ağına cihaz ekleme" "description": "Zigbee ağına cihaz ekleme"
}, },
"button": "Yapılandır",
"caption": "ZHA", "caption": "ZHA",
"cluster_attributes": { "cluster_attributes": {
"get_zigbee_attribute": "Zigbee Özelliğini al", "get_zigbee_attribute": "Zigbee Özelliğini al",
@@ -1772,8 +1664,7 @@
"header": "Küme Komutları" "header": "Küme Komutları"
}, },
"clusters": { "clusters": {
"header": "Kümeler", "header": "Kümeler"
"introduction": "Kümeler Zigbee işlevselliği için yapı taşlarıdır. İşlevselliği mantıksal birimlere ayırırlar. İstemci ve sunucu türleri vardır ve bunlar özniteliklerden ve komutlardan oluşur."
}, },
"common": { "common": {
"add_devices": "Cihaz Ekle", "add_devices": "Cihaz Ekle",
@@ -1793,7 +1684,6 @@
"group_picker_label": "Bağlanabilir Gruplar", "group_picker_label": "Bağlanabilir Gruplar",
"header": "Grup Bağlama", "header": "Grup Bağlama",
"introduction": "Grupları bağlama ve çözme.", "introduction": "Grupları bağlama ve çözme.",
"unbind_button_help": "Seçilen grubu seçilen aygıt kümelerinden ayırın.",
"unbind_button_label": "Grubu Çöz" "unbind_button_label": "Grubu Çöz"
}, },
"groups": { "groups": {
@@ -1828,9 +1718,6 @@
"network_management": { "network_management": {
"header": "Ağ yönetimi" "header": "Ağ yönetimi"
}, },
"network": {
"caption": "Ağ"
},
"node_management": { "node_management": {
"header": "Cihaz yönetimi", "header": "Cihaz yönetimi",
"hint_wakeup": "Xiaomi sensörleri gibi bazı cihazlarda, onlarla etkileşime girerken cihazları uyanık tutan ~ 5 saniyelik aralıklarla basabileceğiniz bir uyanma düğmesi bulunur." "hint_wakeup": "Xiaomi sensörleri gibi bazı cihazlarda, onlarla etkileşime girerken cihazları uyanık tutan ~ 5 saniyelik aralıklarla basabileceğiniz bir uyanma düğmesi bulunur."
@@ -1860,12 +1747,9 @@
}, },
"edit_home_zone": "Evinizin konumu genel konfigürasyonda değiştirilebilir.", "edit_home_zone": "Evinizin konumu genel konfigürasyonda değiştirilebilir.",
"go_to_core_config": "Genel yapılandırmaya gidilsin mi?", "go_to_core_config": "Genel yapılandırmaya gidilsin mi?",
"home_zone_core_config": "Ana bölgenizin konumu genel yapılandırma sayfasından düzenlenebilir. Ana bölgenin yarıçapı henüz arayüzden düzenlenemez. Genel yapılandırmaya gitmek ister misiniz?",
"introduction": "Bölgeler, dünyadaki belirli bölgeleri belirtmenize izin verir. Bir kişi bir bölge içindeyse, durumunu bölgenin isminden alır. Bölgeler, otomasyon kurulumlarında tetikleyici veya koşul olarak da kullanılabilir.",
"no_zones_created_yet": "Görünüşe göre henüz herhangi bir bölge oluşturmadınız." "no_zones_created_yet": "Görünüşe göre henüz herhangi bir bölge oluşturmadınız."
}, },
"zwave": { "zwave": {
"button": "Yapılandır",
"caption": "Z-Wave", "caption": "Z-Wave",
"common": { "common": {
"index": "Indeks", "index": "Indeks",
@@ -1896,48 +1780,19 @@
}, },
"node_management": { "node_management": {
"add_to_group": "Gruba ekle", "add_to_group": "Gruba ekle",
"entities": "Bu düğümün varlıkları",
"entity_info": "Varlık Bilgileri",
"exclude_entity": "Bu varlığı Home Assistant'dan hariç tut",
"group": "Grup", "group": "Grup",
"header": "Z-Wave Düğümü Yönetimi", "protection": "Koruma"
"introduction": "Tek bir düğümü etkileyen Z-Wave komutlarını çalıştırın. Kullanılabilir komutların listesini görmek için bir düğüm seçin.",
"max_associations": "Maksimum ilişkiler:",
"node_group_associations": "Düğüm grubu ilişkileri",
"node_protection": "Düğüm koruması",
"node_to_control": "Kontrol edilecek düğüm",
"nodes": "Düğümler",
"nodes_hint": "Düğüm başına seçenekleri görüntülemek için düğümü seçin",
"nodes_in_group": "Bu gruptaki diğer Düğümler:",
"pooling_intensity": "Yoklama yoğunluğu",
"protection": "Koruma",
"remove_broadcast": "Yayını Kaldır",
"remove_from_group": "Gruptan Kaldır",
"set_protection": "Korumayı Ayarla"
},
"ozw_log": {
"last_log_lines": "Son günlük satırı sayısı",
"load": "Yük",
"tail": "Kuyruk"
}, },
"services": { "services": {
"add_node": "Düğüm Ekle", "add_node": "Düğüm Ekle",
"add_node_secure": "Güvenli Düğüm Ekle", "add_node_secure": "Güvenli Düğüm Ekle",
"cancel_command": "Komutu İptal Et", "cancel_command": "Komutu İptal Et",
"heal_network": "Ağı İyileştir", "heal_network": "Ağı İyileştir",
"heal_node": "Düğümü İyileştir",
"node_info": "Düğüm Bilgileri",
"print_node": "Düğümü Yazdır",
"refresh_entity": "Varlığı Yenile",
"refresh_node": "Düğümü Yenile",
"remove_failed_node": "Başarısız Düğümü Kaldır",
"remove_node": "Düğümü Kaldır", "remove_node": "Düğümü Kaldır",
"replace_failed_node": "Başarısız Düğümü Değiştir",
"save_config": "Config'i Kaydet", "save_config": "Config'i Kaydet",
"start_network": "Ağı Başlat", "start_network": "Ağı Başlat",
"stop_network": "Ağı Durdur", "stop_network": "Ağı Durdur",
"test_network": "Test Ağı", "test_network": "Test Ağı"
"test_node": "Test Düğümü"
}, },
"values": { "values": {
"header": "Düğüm Değerleri" "header": "Düğüm Değerleri"
@@ -2011,23 +1866,11 @@
}, },
"history": { "history": {
"period": "Dönem", "period": "Dönem",
"ranges": {
"last_week": "Geçen hafta",
"this_week": "Bu hafta",
"today": "Bugün",
"yesterday": "Dün"
},
"showing_entries": "Gösterilen girişler" "showing_entries": "Gösterilen girişler"
}, },
"logbook": { "logbook": {
"entries_not_found": "Kayıt defteri girişi bulunamadı.", "entries_not_found": "Kayıt defteri girişi bulunamadı.",
"period": "Dönem", "period": "Dönem",
"ranges": {
"last_week": "Geçen hafta",
"this_week": "Bu hafta",
"today": "Bugün",
"yesterday": "Dün"
},
"showing_entries": "Gösterilen girişler" "showing_entries": "Gösterilen girişler"
}, },
"lovelace": { "lovelace": {
@@ -2053,17 +1896,12 @@
"toggle": "{name} ayarını aç / kapat" "toggle": "{name} ayarını aç / kapat"
}, },
"safe-mode": { "safe-mode": {
"description": "Home Assistant, yapılandırmanızı yüklerken sorun yaşadı ve şimdi güvenli modda çalışıyor. Neyin yanlış gittiğini görmek için hata günlüğüne bakın.",
"header": "Güvenli Mod Etkin" "header": "Güvenli Mod Etkin"
}, },
"shopping-list": { "shopping-list": {
"add_item": "Öge Ekle", "add_item": "Öge Ekle",
"checked_items": "Seçili öğeler", "checked_items": "Seçili öğeler",
"clear_items": "Seçili ögeleri temizle" "clear_items": "Seçili ögeleri temizle"
},
"starting": {
"description": "Home Assistant başlıyor, lütfen bekleyin ...",
"header": "Home Assistant başlıyor ..."
} }
}, },
"changed_toast": { "changed_toast": {
@@ -2084,7 +1922,6 @@
"conditional": { "conditional": {
"card": "Kart", "card": "Kart",
"change_type": "Türü değiştir", "change_type": "Türü değiştir",
"condition_explanation": "Aşağıdaki TÜM koşullar yerine getirildiğinde kart gösterilecektir.",
"conditions": "Koşullar", "conditions": "Koşullar",
"current_state": "şimdiki", "current_state": "şimdiki",
"description": "Koşullar kartı, varlık durumlarına göre başka bir kart görüntüler.", "description": "Koşullar kartı, varlık durumlarına göre başka bir kart görüntüler.",
@@ -2102,14 +1939,12 @@
"toggle": "Varlıklarageçiş." "toggle": "Varlıklarageçiş."
}, },
"entity-filter": { "entity-filter": {
"description": "Varlık Filtresi kartı, yalnızca belirli bir durumda izlemek istediğiniz varlıkların bir listesini tanımlamanıza olanak tanır.",
"name": "Varlık Filtresi" "name": "Varlık Filtresi"
}, },
"entity": { "entity": {
"name": "Varlık" "name": "Varlık"
}, },
"gauge": { "gauge": {
"description": "Gösterge kartı, sensör verilerini görsel olarak görmenizi sağlayan temel bir karttır.",
"name": "Ölçü", "name": "Ölçü",
"severity": { "severity": {
"green": "Yeşil", "green": "Yeşil",
@@ -2134,8 +1969,6 @@
"name": "Adı", "name": "Adı",
"no_theme": "Tema yok", "no_theme": "Tema yok",
"refresh_interval": "Yenileme aralığı", "refresh_interval": "Yenileme aralığı",
"search": "Ara",
"secondary_info_attribute": "İkincil Bilgi Özelliği",
"show_icon": "Simgeyi Göster?", "show_icon": "Simgeyi Göster?",
"show_name": "Adı göster?", "show_name": "Adı göster?",
"show_state": "Durumu göster", "show_state": "Durumu göster",
@@ -2148,20 +1981,11 @@
}, },
"glance": { "glance": {
"columns": "Sütunlar", "columns": "Sütunlar",
"description": "Bakış kartı, birden fazla sensörü kompakt bir genel bakışta gruplamak için kullanışlıdır.",
"name": "Glance" "name": "Glance"
}, },
"history-graph": { "history-graph": {
"description": "Geçmiş Grafiği kartı, listelenen varlıkların her biri için bir grafik görüntülemenizi sağlar.",
"name": "Geçmiş grafiği" "name": "Geçmiş grafiği"
}, },
"horizontal-stack": {
"description": "Yatay Yığın kartı, birden fazla kartı bir araya getirmenize izin verir, böylece her zaman bir sütun boşluğunda yan yana otururlar."
},
"humidifier": {
"description": "Nemlendirici kartı, nemlendirici varlığınızın kontrolünü sağlar. Varlığın nemini ve modunu değiştirmenize izin verir.",
"name": "Nemlendirici"
},
"iframe": { "iframe": {
"description": "Web sayfası kartı, favori web sayfanızı Home Assistant'a yerleştirmenizi sağlar.", "description": "Web sayfası kartı, favori web sayfanızı Home Assistant'a yerleştirmenizi sağlar.",
"name": "iFrame" "name": "iFrame"
@@ -2188,18 +2012,10 @@
"description": "Medya Denetimi kartı, medya oynatıcı varlıklarını kullanımı kolay denetimlere sahip bir arabirimde görüntülemek için kullanılır.", "description": "Medya Denetimi kartı, medya oynatıcı varlıklarını kullanımı kolay denetimlere sahip bir arabirimde görüntülemek için kullanılır.",
"name": "Medya Kontrolü" "name": "Medya Kontrolü"
}, },
"picture-elements": {
"description": "Picture Elements kartı en çok yönlü kart türlerinden biridir. Kartlar simgeleri veya metinleri ve hatta hizmetleri konumlandırmanıza izin verir!"
},
"picture-entity": { "picture-entity": {
"description": "Resim Varlığı kartı bir objeyi görüntü şeklinde görüntüler. URL'deki resimler yerine kamera görüntülerini de gösterebilir.",
"name": "Varlık resim" "name": "Varlık resim"
}, },
"picture-glance": {
"description": "Picture Glance kartı bir resmi ve karşılık gelen varlık durumlarını bir simge olarak gösterir. Sağ taraftaki varlıklar durum değiştirme işlemlerine izin verir, diğerleri daha fazla bilgi iletişim kutusunu gösterir."
},
"picture": { "picture": {
"description": "Resim kartı, arabiriminizdeki çeşitli yollarda gezinmek veya bir servisi çağırmak için kullanılacak bir görüntü ayarlamanızı sağlar.",
"name": "Resim" "name": "Resim"
}, },
"plant-status": { "plant-status": {
@@ -2213,7 +2029,6 @@
"name": "Sensör" "name": "Sensör"
}, },
"shopping-list": { "shopping-list": {
"description": "Alışveriş Listesi kartı, alışveriş listenize öğe eklemenize, düzenlemenize, kontrol etmenize ve listeden çıkarmanıza olanak tanır.",
"integration_not_loaded": "Bu kart, 'shopping_list' tümleştirmesinin ayarlanmasını gerektirir.", "integration_not_loaded": "Bu kart, 'shopping_list' tümleştirmesinin ayarlanmasını gerektirir.",
"name": "Alışveriş listesi" "name": "Alışveriş listesi"
}, },
@@ -2221,9 +2036,6 @@
"description": "Termostat kartı iklim varlığınızın kontrolünü sağlar. Varlığın sıcaklığını ve modunu değiştirmenizi sağlar.", "description": "Termostat kartı iklim varlığınızın kontrolünü sağlar. Varlığın sıcaklığını ve modunu değiştirmenizi sağlar.",
"name": "Termostat" "name": "Termostat"
}, },
"vertical-stack": {
"description": "Dikey Yığın kartı, birden fazla kartı her zaman aynı sütunda oturacak şekilde gruplandırmanıza olanak tanır."
},
"weather-forecast": { "weather-forecast": {
"description": "Hava Durumu kartı hava durumunu gösterir. Duvarda görüntülenen tablet arayüzlerinde kullanışlı olabilir.", "description": "Hava Durumu kartı hava durumunu gösterir. Duvarda görüntülenen tablet arayüzlerinde kullanışlı olabilir.",
"name": "Hava Durumu tahmini", "name": "Hava Durumu tahmini",
@@ -2235,7 +2047,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Kart Ekle", "add": "Kart Ekle",
"confirm_cancel": "İptal etmek istediğinizden emin misiniz?",
"delete": "Sil", "delete": "Sil",
"duplicate": "Çift kart", "duplicate": "Çift kart",
"edit": "Düzenle", "edit": "Düzenle",
@@ -2244,14 +2055,11 @@
"options": "Daha fazla seçenek", "options": "Daha fazla seçenek",
"pick_card": "Eklemek istediğiniz kartı seçin.", "pick_card": "Eklemek istediğiniz kartı seçin.",
"show_code_editor": "Kod düzenleyiciyi göster", "show_code_editor": "Kod düzenleyiciyi göster",
"toggle_editor": "Düzenleyiciye Geçiş", "toggle_editor": "Düzenleyiciye Geçiş"
"typed_header": "{type} Kart Yapılandırması",
"unsaved_changes": "Kaydedilmemiş değişiklikleriniz mevcut"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Başlığı düzenle", "edit_title": "Başlığı düzenle",
"header": "Lovelace kullanıcı arayüzünüzün başlığı", "header": "Lovelace kullanıcı arayüzünüzün başlığı"
"title": "Başlık"
}, },
"edit_view": { "edit_view": {
"add": "Görünüm ekle", "add": "Görünüm ekle",
@@ -2279,8 +2087,6 @@
"para_no_id": "Bu öğenin bir kimliği yok. Lütfen 'ui-lovelace.yaml' dosyasında bu elemente bir kimlik ekleyin." "para_no_id": "Bu öğenin bir kimliği yok. Lütfen 'ui-lovelace.yaml' dosyasında bu elemente bir kimlik ekleyin."
}, },
"raw_editor": { "raw_editor": {
"confirm_remove_config_text": "Lovelace kullanıcı arayüzü yapılandırmanızı kaldırırsanız, Lovelace kullanıcı arayüzü, görünümleriniz alanlarınız ve cihazlarınız otomatik olarak oluşturulacatır.",
"confirm_remove_config_title": "Lovelace UI yapılandırmanızı kaldırmak istediğinizden emin misiniz? Lovelace kullanıcı arayüzü görünümlerinizi alanlarınız ve cihazlarınızla otomatik olarak oluşturacağız.",
"confirm_unsaved_changes": "Kaydedilmemiş değişiklikleriniz var, çıkmak istediğinize emin misiniz?", "confirm_unsaved_changes": "Kaydedilmemiş değişiklikleriniz var, çıkmak istediğinize emin misiniz?",
"confirm_unsaved_comments": "Yapılandırmanız yorumlar içeriyor, bunlar kaydedilmeyecek. Devam etmek istiyor musun?", "confirm_unsaved_comments": "Yapılandırmanız yorumlar içeriyor, bunlar kaydedilmeyecek. Devam etmek istiyor musun?",
"error_invalid_config": "Yapılandırmanız geçerli değil: {error}", "error_invalid_config": "Yapılandırmanız geçerli değil: {error}",
@@ -2288,7 +2094,6 @@
"error_remove": "Config kaldırılamıyor: {error}", "error_remove": "Config kaldırılamıyor: {error}",
"error_save_yaml": "YAML kaydedilemiyor: {error}", "error_save_yaml": "YAML kaydedilemiyor: {error}",
"header": "Yapılandırmayı Düzenle", "header": "Yapılandırmayı Düzenle",
"resources_moved": "Kaynaklar artık Lovelace yapılandırmasına eklenemez, ancak Lovelace yapılandırma paneline eklenebilir.",
"save": "Kaydet", "save": "Kaydet",
"saved": "Kaydedildi", "saved": "Kaydedildi",
"unsaved_changes": "Kaydedilmemiş değişiklikler" "unsaved_changes": "Kaydedilmemiş değişiklikler"
@@ -2334,8 +2139,6 @@
"entity": "Varlık", "entity": "Varlık",
"entity_id": "Varlık kimliği", "entity_id": "Varlık kimliği",
"last_changed": "Son değiştirilen", "last_changed": "Son değiştirilen",
"no_data": "Kullanılmayan varlık bulunamadı",
"search": "Varlıkları ara",
"select_to_add": "Karta eklemek istediğiniz varlıkları seçin ve ardından kart ekle tuşuna basınız.", "select_to_add": "Karta eklemek istediğiniz varlıkları seçin ve ardından kart ekle tuşuna basınız.",
"title": "Kullanılmayan varlıklar" "title": "Kullanılmayan varlıklar"
}, },
@@ -2349,8 +2152,7 @@
"attribute_not_found": "Nitelik {attribute} {entity} içinde mevcut değil", "attribute_not_found": "Nitelik {attribute} {entity} içinde mevcut değil",
"entity_non_numeric": "Varlık sayısal değil: {entity}", "entity_non_numeric": "Varlık sayısal değil: {entity}",
"entity_not_found": "Varlık mevcut değil: {entity}", "entity_not_found": "Varlık mevcut değil: {entity}",
"entity_unavailable": "{entity} şu anda kullanılamıyor", "entity_unavailable": "{entity} şu anda kullanılamıyor"
"starting": "Home Assistant başlıyor, arayüzün yüklenmesi için bekleyiniz"
} }
}, },
"mailbox": { "mailbox": {
@@ -2435,7 +2237,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Bilgisayarınıza izin verilmiyor.",
"not_whitelisted": "Bilgisayarınız beyaz listeye eklenmemiş." "not_whitelisted": "Bilgisayarınız beyaz listeye eklenmemiş."
}, },
"step": { "step": {
@@ -2587,11 +2388,11 @@
}, },
"push_notifications": { "push_notifications": {
"description": "Bu cihaza bildirimler gönder", "description": "Bu cihaza bildirimler gönder",
"error_load_platform": "Notify.html5 'i yapılandırın.", "error_load_platform": "Notify.html5'i yapılandırın.",
"error_use_https": "Önyüz için SSL'nin etkinleştirilmesini gerektirir.", "error_use_https": "Önyüz için SSL'nin etkinleştirilmesini gerektirir.",
"header": "Bildirimler", "header": "Bildirimleri",
"link_promo": "Daha fazla bilgi edinin", "link_promo": "Daha fazla bilgi edinin",
"push_notifications": "Bildirimler" "push_notifications": "Bildirimleri"
}, },
"refresh_tokens": { "refresh_tokens": {
"confirm_delete": "{name} için yenileme anahtarını silmek istediğinizden emin misiniz?", "confirm_delete": "{name} için yenileme anahtarını silmek istediğinizden emin misiniz?",
@@ -2604,13 +2405,9 @@
"not_used": "Hiç kullanılmadı", "not_used": "Hiç kullanılmadı",
"token_title": "{clientId} için yenileme anahtarı" "token_title": "{clientId} için yenileme anahtarı"
}, },
"suspend": {
"description": "5 dakika boyunca gizlendikten sonra sunucu bağlantısı kapatılsın mı?",
"header": "Bağlantıyı otomatik olarak kapat"
},
"themes": { "themes": {
"dropdown_label": "Tema", "dropdown_label": "Tema",
"error_no_theme": "Kullanılabilir tema yok.", "error_no_theme": "Tema yok.",
"header": "Tema", "header": "Tema",
"link_promo": "Temalar hakkında bilgi edinin" "link_promo": "Temalar hakkında bilgi edinin"
}, },

View File

@@ -418,8 +418,6 @@
"activate": "Kích hoạt" "activate": "Kích hoạt"
}, },
"script": { "script": {
"cancel": "Huỷ Bỏ",
"cancel_multiple": "Huỷ Bỏ {number}",
"execute": "Thi hành" "execute": "Thi hành"
}, },
"service": { "service": {
@@ -506,10 +504,6 @@
"clear": "Xoá", "clear": "Xoá",
"show_areas": "Hiển thị các khu vực" "show_areas": "Hiển thị các khu vực"
}, },
"data-table": {
"no-data": "Không có dữ liệu",
"search": "Tìm kiếm"
},
"date-range-picker": { "date-range-picker": {
"end_date": "Ngày kết thúc", "end_date": "Ngày kết thúc",
"select": "Lựa chọn", "select": "Lựa chọn",
@@ -867,19 +861,6 @@
"introduction": "Sử dụng tự động hóa để mang sự sống cho nhà bạn", "introduction": "Sử dụng tự động hóa để mang sự sống cho nhà bạn",
"load_error_not_editable": "Chỉ tự động hóa trong automations.yaml là có thể chỉnh sửa.", "load_error_not_editable": "Chỉ tự động hóa trong automations.yaml là có thể chỉnh sửa.",
"load_error_unknown": "Lỗi tải tự động hóa ({err_no}).", "load_error_unknown": "Lỗi tải tự động hóa ({err_no}).",
"max": {
"parallel": "Số lượng chạy song song tối đa",
"queued": "Độ dài hàng chờ"
},
"modes": {
"description": "Chế Độ kiểm soát điều gì xảy ra khi một tự động hoá được kích hoạt trong khi nó vẫn đang chạy từ một hoặc nhiều lần kích hoạt trước. Xem thêm tại {documentation_link}.",
"documentation": "tài liệu về tự động hoá",
"label": "Chế Độ",
"parallel": "Song song",
"queued": "Xếp hàng",
"restart": "Khởi động lại",
"single": "Đơn (mặc định)"
},
"move_down": "Chuyển xuống", "move_down": "Chuyển xuống",
"move_up": "Chuyển lên", "move_up": "Chuyển lên",
"save": "Lưu", "save": "Lưu",
@@ -969,7 +950,7 @@
}, },
"unsupported_platform": "Nền tảng không được hỗ trợ: {platform}" "unsupported_platform": "Nền tảng không được hỗ trợ: {platform}"
}, },
"unsaved_confirm": "Bạn đang có thay đổi chưa được lưu. Bạn có chắc muốn huỷ bỏ?" "unsaved_confirm": "Bạn có thay đổi chưa được lưu. Bạn có chắc anh muốn bỏ đi?"
}, },
"picker": { "picker": {
"add_automation": "Thêm Tự động hóa", "add_automation": "Thêm Tự động hóa",
@@ -1129,7 +1110,6 @@
"confirm_partly_title": "Chỉ {number} thực thể đã chọn có thể bị xoá.", "confirm_partly_title": "Chỉ {number} thực thể đã chọn có thể bị xoá.",
"confirm_title": "Bạn có muốn xoá bỏ {number} thực thể không?" "confirm_title": "Bạn có muốn xoá bỏ {number} thực thể không?"
}, },
"search": "Tìm các thực thể",
"selected": "{number} đã chọn", "selected": "{number} đã chọn",
"status": { "status": {
"disabled": "Bị vô hiệu hoá", "disabled": "Bị vô hiệu hoá",
@@ -1160,8 +1140,7 @@
"entity_id": "Mã Thực thể", "entity_id": "Mã Thực thể",
"name": "Tên", "name": "Tên",
"type": "Loại" "type": "Loại"
}, }
"no_helpers": "Hình như bạn chưa có người hỗ trợ nào!"
}, },
"types": { "types": {
"input_boolean": "Chuyển đổi", "input_boolean": "Chuyển đổi",
@@ -1252,8 +1231,7 @@
"none_found": "Không tìm thấy tích hợp nào", "none_found": "Không tìm thấy tích hợp nào",
"none_found_detail": "Điều chỉnh tiêu chí tìm kiếm của bạn.", "none_found_detail": "Điều chỉnh tiêu chí tìm kiếm của bạn.",
"rename_dialog": "Chỉnh sửa tên của mục cấu hình này", "rename_dialog": "Chỉnh sửa tên của mục cấu hình này",
"rename_input_label": "Tên mục", "rename_input_label": "Tên mục"
"search": "Tìm các bộ tích hợp"
}, },
"introduction": "Ở đây có thể định cấu hình các thành phần của bạn và Home Assistant. Không phải mọi thứ đều có thể được cấu hình từ giao diện người dùng, nhưng chúng tôi đang cải thiện việc đó.", "introduction": "Ở đây có thể định cấu hình các thành phần của bạn và Home Assistant. Không phải mọi thứ đều có thể được cấu hình từ giao diện người dùng, nhưng chúng tôi đang cải thiện việc đó.",
"logs": { "logs": {
@@ -1389,7 +1367,6 @@
"introduction": "Các thực thể không thuộc về một thiết bị có thể được đặt ở đây.", "introduction": "Các thực thể không thuộc về một thiết bị có thể được đặt ở đây.",
"without_device": "Các thực thể không thuộc một thiết bị" "without_device": "Các thực thể không thuộc một thiết bị"
}, },
"icon": "Biểu tượng",
"introduction": "Sử dụng các ngữ cảnh để mang lại sự sống cho nhà bạn.", "introduction": "Sử dụng các ngữ cảnh để mang lại sự sống cho nhà bạn.",
"load_error_not_editable": "Chỉ những ngữ cảnh nằm trong scenes.yaml là có thể chỉnh sửa.", "load_error_not_editable": "Chỉ những ngữ cảnh nằm trong scenes.yaml là có thể chỉnh sửa.",
"load_error_unknown": "Lỗi khi tải ngữ cảnh ({err_no}).", "load_error_unknown": "Lỗi khi tải ngữ cảnh ({err_no}).",
@@ -1420,24 +1397,7 @@
"editor": { "editor": {
"alias": "Tên", "alias": "Tên",
"delete_script": "Xóa kịch bản", "delete_script": "Xóa kịch bản",
"icon": "Biểu tượng",
"id": "Mã định danh Thực thể",
"id_already_exists": "Định danh (ID) này đã tồn tại",
"id_already_exists_save_error": "Bạn không thể lưu kịch bản này vì mã định danh bị trùng, thay đổi ID bằng một mã khác hoặc để trống.",
"link_available_actions": "Tìm hiểu thêm về các hành động khả dụng.", "link_available_actions": "Tìm hiểu thêm về các hành động khả dụng.",
"max": {
"parallel": "Số lượng chạy song song tối đa",
"queued": "Độ dài hàng chờ"
},
"modes": {
"description": "Chế Độ kiểm soát điều gì xảy ra khi một kịch bản được gọi trong khi nó vẫn đang chạy từ một hoặc nhiều lần gọi trước. Xem thêm tại {documentation_link}.",
"documentation": "tài liệu về kịch bản",
"label": "Chế Độ",
"parallel": "Song song",
"queued": "Xếp hàng",
"restart": "Khởi động lại",
"single": "Đơn (mặc định)"
},
"sequence": "Trình tự", "sequence": "Trình tự",
"sequence_sentence": "Trình tự các hành động trong kịch bản này." "sequence_sentence": "Trình tự các hành động trong kịch bản này."
}, },
@@ -1781,9 +1741,7 @@
"editor": { "editor": {
"card": { "card": {
"alarm-panel": { "alarm-panel": {
"available_states": "Các Trạng thái Khả dụng", "description": "Thẻ Bảng điều khiển An ninh cho phép bạn Kích hoạt và Vô hiệu hóa tích hợp bảng điều khiển an ninh."
"description": "Thẻ Bảng điều khiển An ninh cho phép bạn Kích hoạt và Vô hiệu hóa tích hợp bảng điều khiển an ninh.",
"name": "Bảng điều khiển Báo động"
}, },
"button": { "button": {
"description": "Thẻ Nút cho phép bạn thêm các nút để thực hiện các tác vụ.", "description": "Thẻ Nút cho phép bạn thêm các nút để thực hiện các tác vụ.",
@@ -1796,7 +1754,6 @@
"conditions": "Điều kiện", "conditions": "Điều kiện",
"current_state": "hiện tại", "current_state": "hiện tại",
"description": "Thẻ Điều kiện hiển thị một thẻ khác dựa trên trạng thái của các thực thể.", "description": "Thẻ Điều kiện hiển thị một thẻ khác dựa trên trạng thái của các thực thể.",
"name": "Có Điều kiện",
"state_equal": "Trạng thái bằng với", "state_equal": "Trạng thái bằng với",
"state_not_equal": "Trạng thái không bằng với" "state_not_equal": "Trạng thái không bằng với"
}, },
@@ -1814,8 +1771,7 @@
"name": "Thực thể" "name": "Thực thể"
}, },
"gauge": { "gauge": {
"description": "Thẻ Thước đo là một thẻ cơ bản cho phép bạn quan sát trực quan dữ liệu của cảm biến.", "description": "Thẻ Thước đo là một thẻ cơ bản cho phép bạn quan sát trực quan dữ liệu của cảm biến."
"name": "Thang đo"
}, },
"generic": { "generic": {
"attribute": "Thuộc tính", "attribute": "Thuộc tính",
@@ -1824,16 +1780,13 @@
"manual": "Thủ công", "manual": "Thủ công",
"manual_description": "Cần thêm một thẻ tuỳ chỉnh hay chỉ muốn viết cấu hình yaml thủ công?", "manual_description": "Cần thêm một thẻ tuỳ chỉnh hay chỉ muốn viết cấu hình yaml thủ công?",
"no_theme": "Không có theme.", "no_theme": "Không có theme.",
"search": "Tìm kiếm",
"state": "Trạng thái" "state": "Trạng thái"
}, },
"glance": { "glance": {
"description": "Thẻ Xem nhanh rất hữu ích để hiển thị nhiều cảm biến trong một không gian nhỏ gọn.", "description": "Thẻ Xem nhanh rất hữu ích để hiển thị nhiều cảm biến trong một không gian nhỏ gọn."
"name": "Xem nhanh"
}, },
"history-graph": { "history-graph": {
"description": "Thẻ Biểu đồ Lịch sử cho phép bạn hiển thị biểu đồ cho từng thực thể được liệt kê.", "description": "Thẻ Biểu đồ Lịch sử cho phép bạn hiển thị biểu đồ cho từng thực thể được liệt kê."
"name": "Biểu đồ"
}, },
"horizontal-stack": { "horizontal-stack": {
"description": "Thẻ Xếp Ngang cho phép bạn nhóm nhiều thẻ để các thẻ này luôn nằm cạnh nhau trong cùng một hàng.", "description": "Thẻ Xếp Ngang cho phép bạn nhóm nhiều thẻ để các thẻ này luôn nằm cạnh nhau trong cùng một hàng.",
@@ -1848,29 +1801,24 @@
"name": "Trang web" "name": "Trang web"
}, },
"light": { "light": {
"description": "Thẻ Đèn cho phép bạn thay đổi độ sáng của đèn.", "description": "Thẻ Đèn cho phép bạn thay đổi độ sáng của đèn."
"name": "Đèn"
}, },
"map": { "map": {
"description": "Thẻ Bản đồ cho phép bạn hiển thị các thực thể trên bản đồ.", "description": "Thẻ Bản đồ cho phép bạn hiển thị các thực thể trên bản đồ.",
"hours_to_show": "Giờ hiển thị", "hours_to_show": "Giờ hiển thị"
"name": "Bản đồ"
}, },
"markdown": { "markdown": {
"description": "Thẻ Markdown được sử dụng để hiển thị Markdown.", "description": "Thẻ Markdown được sử dụng để hiển thị Markdown."
"name": "Đánh dấu"
}, },
"media-control": { "media-control": {
"description": "Thẻ Điều khiển Phương tiện được sử dụng để hiển thị các thực thể Media Player trên một giao diện với các điều khiển dễ sử dụng.", "description": "Thẻ Điều khiển Phương tiện được sử dụng để hiển thị các thực thể Media Player trên một giao diện với các điều khiển dễ sử dụng.",
"name": "Điều khiển Thiết bị đa phương tiện" "name": "Điều khiển Thiết bị đa phương tiện"
}, },
"picture-elements": { "picture-elements": {
"description": "Thẻ Các thành phần trong Ảnh là một trong những loại thẻ linh hoạt nhất. Các thẻ cho phép bạn định vị các biểu tượng hoặc văn bản và thậm chí cả các dịch vụ! Trên một hình ảnh dựa trên tọa độ.", "description": "Thẻ Các thành phần trong Ảnh là một trong những loại thẻ linh hoạt nhất. Các thẻ cho phép bạn định vị các biểu tượng hoặc văn bản và thậm chí cả các dịch vụ! Trên một hình ảnh dựa trên tọa độ."
"name": "Các Thành phần Hình ảnh"
}, },
"picture-entity": { "picture-entity": {
"description": "Thẻ Thực thể Hình ảnh hiển thị một thực thể ở dạng hình ảnh. Thay vì sử dụng hình ảnh từ URL, nó cũng có thể hiển thị hình ảnh của các thực thể camera.", "description": "Thẻ Thực thể Hình ảnh hiển thị một thực thể ở dạng hình ảnh. Thay vì sử dụng hình ảnh từ URL, nó cũng có thể hiển thị hình ảnh của các thực thể camera."
"name": "Thực thể Hình ảnh"
}, },
"picture-glance": { "picture-glance": {
"description": "Thẻ Hình ảnh Xem nhanh hiển thị hình ảnh và các thực thể tương ứng như một biểu tượng. Các thực thể ở bên phải cho phép các hành động chuyển đổi, những thực thể còn lại hiển thị hộp thoại thông tin bổ sung." "description": "Thẻ Hình ảnh Xem nhanh hiển thị hình ảnh và các thực thể tương ứng như một biểu tượng. Các thực thể ở bên phải cho phép các hành động chuyển đổi, những thực thể còn lại hiển thị hộp thoại thông tin bổ sung."
@@ -1880,8 +1828,7 @@
"name": "Hình ảnh" "name": "Hình ảnh"
}, },
"plant-status": { "plant-status": {
"description": "Thẻ Tình trạng Cây cối dành cho tất cả các nhà thực vật học đáng yêu ngoài kia.", "description": "Thẻ Tình trạng Cây cối dành cho tất cả các nhà thực vật học đáng yêu ngoài kia."
"name": "Tình trạng Cây trồng"
}, },
"sensor": { "sensor": {
"description": "Thẻ Cảm biến cung cấp cho bạn tổng quan nhanh về trạng thái cảm biến của bạn với một biểu đồ tùy chọn thể hiện sự thay đổi qua thời gian.", "description": "Thẻ Cảm biến cung cấp cho bạn tổng quan nhanh về trạng thái cảm biến của bạn với một biểu đồ tùy chọn thể hiện sự thay đổi qua thời gian.",
@@ -1889,8 +1836,7 @@
}, },
"shopping-list": { "shopping-list": {
"description": "Thẻ Danh sách mua sắm cho phép bạn thêm, chỉnh sửa, kiểm tra và xóa các mục khỏi danh sách mua sắm của bạn.", "description": "Thẻ Danh sách mua sắm cho phép bạn thêm, chỉnh sửa, kiểm tra và xóa các mục khỏi danh sách mua sắm của bạn.",
"integration_not_loaded": "Thẻ này yêu cầu thiết lập tích hợp 'shopping_list'.", "integration_not_loaded": "Thẻ này yêu cầu thiết lập tích hợp 'shopping_list'."
"name": "Danh sách Mua sắm"
}, },
"thermostat": { "thermostat": {
"description": "Thẻ Điều chỉnh nhiệt cho phép kiểm soát thực thể khí hậu của bạn. Cho phép bạn thay đổi nhiệt độ và chế độ của thực thể.", "description": "Thẻ Điều chỉnh nhiệt cho phép kiểm soát thực thể khí hậu của bạn. Cho phép bạn thay đổi nhiệt độ và chế độ của thực thể.",
@@ -1912,7 +1858,6 @@
}, },
"edit_card": { "edit_card": {
"add": "Thêm Thẻ", "add": "Thêm Thẻ",
"confirm_cancel": "Bạn có chắc muốn huỷ bỏ không?",
"delete": "Xóa", "delete": "Xóa",
"duplicate": "Nhân bản thẻ", "duplicate": "Nhân bản thẻ",
"edit": "Chỉnh sửa", "edit": "Chỉnh sửa",
@@ -1922,14 +1867,10 @@
"pick_card": "Chọn Thẻ bạn muốn thêm.", "pick_card": "Chọn Thẻ bạn muốn thêm.",
"pick_card_view_title": "Loại thẻ nào bạn muốn thêm vào chế độ xem {name}?", "pick_card_view_title": "Loại thẻ nào bạn muốn thêm vào chế độ xem {name}?",
"show_code_editor": "Sửa mã nguồn", "show_code_editor": "Sửa mã nguồn",
"show_visual_editor": "Hiển thị Chỉnh sửa Trực quan", "toggle_editor": "Đổi trình biên tập"
"toggle_editor": "Đổi trình biên tập",
"typed_header": "{type} Cấu hình Thẻ",
"unsaved_changes": "Bạn có chỉnh sửa chưa được lưu"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "Chỉnh sửa tiêu đề", "edit_title": "Chỉnh sửa tiêu đề"
"title": "Tiêu đề"
}, },
"edit_view": { "edit_view": {
"add": "Thêm Tầm nhìn", "add": "Thêm Tầm nhìn",
@@ -2015,8 +1956,6 @@
"entity": "Thực thể", "entity": "Thực thể",
"entity_id": "Mã Thực thể", "entity_id": "Mã Thực thể",
"last_changed": "Thay đổi lần cuối", "last_changed": "Thay đổi lần cuối",
"no_data": "Không tìm thấy thực thể chưa được sử dụng",
"search": "Tìm các thực thể",
"select_to_add": "Chọn thực thể bạn muốn thêm vào thẻ và sau đó nhấp vào nút Thêm thẻ.", "select_to_add": "Chọn thực thể bạn muốn thêm vào thẻ và sau đó nhấp vào nút Thêm thẻ.",
"title": "Thực thể chưa sử dụng" "title": "Thực thể chưa sử dụng"
}, },
@@ -2119,7 +2058,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "Máy tính này không được phép.",
"not_whitelisted": "Máy tính của bạn không nằm trong danh sách trắng." "not_whitelisted": "Máy tính của bạn không nằm trong danh sách trắng."
}, },
"step": { "step": {

View File

@@ -430,8 +430,6 @@
"activate": "激活" "activate": "激活"
}, },
"script": { "script": {
"cancel": "取消",
"cancel_multiple": "取消 {number} 个",
"execute": "执行" "execute": "执行"
}, },
"service": { "service": {
@@ -528,7 +526,6 @@
"show_areas": "显示区域" "show_areas": "显示区域"
}, },
"data-table": { "data-table": {
"no-data": "没有数据",
"search": "搜索" "search": "搜索"
}, },
"date-range-picker": { "date-range-picker": {
@@ -944,19 +941,6 @@
"introduction": "使用自动化让你的家聪明起来", "introduction": "使用自动化让你的家聪明起来",
"load_error_not_editable": "只能编辑 automations.yaml 中的自动化。", "load_error_not_editable": "只能编辑 automations.yaml 中的自动化。",
"load_error_unknown": "加载自动化错误 ({err_no})。", "load_error_unknown": "加载自动化错误 ({err_no})。",
"max": {
"parallel": "最大并行数量",
"queued": "队列长度"
},
"modes": {
"description": "“模式”控制当该自动化上次被触发后的动作仍在执行时,再次被触发时要采取的操作。请参阅{documentation_link}以进一步了解。",
"documentation": "自动化文档",
"label": "模式",
"parallel": "并行",
"queued": "队列",
"restart": "重启",
"single": "单点 (默认)"
},
"move_down": "下移", "move_down": "下移",
"move_up": "上移", "move_up": "上移",
"save": "保存", "save": "保存",
@@ -1665,7 +1649,6 @@
"introduction": "可在此处设置不属于设备的实体。", "introduction": "可在此处设置不属于设备的实体。",
"without_device": "无设备关联的实体" "without_device": "无设备关联的实体"
}, },
"icon": "图标",
"introduction": "使用场景使您的家充满生机。", "introduction": "使用场景使您的家充满生机。",
"load_error_not_editable": "只能编辑 scenes.yaml 中的场景。", "load_error_not_editable": "只能编辑 scenes.yaml 中的场景。",
"load_error_unknown": "加载场景错误 ({err_no})。", "load_error_unknown": "加载场景错误 ({err_no})。",
@@ -1699,26 +1682,9 @@
"delete_confirm": "您确定要删除此脚本吗?", "delete_confirm": "您确定要删除此脚本吗?",
"delete_script": "删除脚本", "delete_script": "删除脚本",
"header": "脚本:{name}", "header": "脚本:{name}",
"icon": "图标",
"id": "实体 ID",
"id_already_exists": "此 ID 已存在",
"id_already_exists_save_error": "无法保存此脚本,因为 ID 不唯一。请选择其他 ID 或将其留空,以自动生成一个 ID。",
"introduction": "使用脚本执行一系列操作。", "introduction": "使用脚本执行一系列操作。",
"link_available_actions": "详细了解可用操作。", "link_available_actions": "详细了解可用操作。",
"load_error_not_editable": "只能编辑 scripts.yaml 中的脚本。", "load_error_not_editable": "只能编辑 scripts.yaml 中的脚本。",
"max": {
"parallel": "最大并行数量",
"queued": "队列长度"
},
"modes": {
"description": "“模式”控制当该脚本仍在执行时,再次被调用时要采取的操作。请参阅{documentation_link}以进一步了解。",
"documentation": "脚本文档",
"label": "模式",
"parallel": "并行",
"queued": "队列",
"restart": "重启",
"single": "单点 (默认)"
},
"sequence": "顺序", "sequence": "顺序",
"sequence_sentence": "该脚本的操作顺序。" "sequence_sentence": "该脚本的操作顺序。"
}, },
@@ -2340,7 +2306,6 @@
}, },
"edit_card": { "edit_card": {
"add": "添加卡片", "add": "添加卡片",
"confirm_cancel": "确实要取消吗?",
"delete": "删除", "delete": "删除",
"duplicate": "复制卡片", "duplicate": "复制卡片",
"edit": "编辑", "edit": "编辑",
@@ -2351,9 +2316,7 @@
"pick_card_view_title": "您想将哪张卡片添加到 {name} 视图?", "pick_card_view_title": "您想将哪张卡片添加到 {name} 视图?",
"show_code_editor": "显示代码编辑器", "show_code_editor": "显示代码编辑器",
"show_visual_editor": "显示可视化编辑器", "show_visual_editor": "显示可视化编辑器",
"toggle_editor": "切换编辑器", "toggle_editor": "切换编辑器"
"typed_header": "{type}卡片配置",
"unsaved_changes": "有更改尚未保存"
}, },
"edit_lovelace": { "edit_lovelace": {
"edit_title": "编辑标题", "edit_title": "编辑标题",
@@ -2446,8 +2409,6 @@
"entity": "实体", "entity": "实体",
"entity_id": "实体 ID", "entity_id": "实体 ID",
"last_changed": "最后更改", "last_changed": "最后更改",
"no_data": "没有未使用的实体",
"search": "搜索实体",
"select_to_add": "选择要添加到卡片中的实体,然后单击添加卡片按钮。", "select_to_add": "选择要添加到卡片中的实体,然后单击添加卡片按钮。",
"title": "未使用的实体" "title": "未使用的实体"
}, },
@@ -2550,7 +2511,6 @@
}, },
"trusted_networks": { "trusted_networks": {
"abort": { "abort": {
"not_allowed": "您的电脑不允许访问。",
"not_whitelisted": "您的电脑不在白名单内。" "not_whitelisted": "您的电脑不在白名单内。"
}, },
"step": { "step": {

Some files were not shown because too many files have changed in this diff Show More