mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-10 10:56:34 +00:00
Merge pull request #8474 from home-assistant/dev
This commit is contained in:
commit
16fa6904d9
@ -192,8 +192,10 @@ class HassioAddonStore extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async _loadData() {
|
private async _loadData() {
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "addon" });
|
fireEvent(this, "supervisor-colllection-refresh", { colllection: "addon" });
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "supervisor" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "supervisor",
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _filterChanged(e) {
|
private async _filterChanged(e) {
|
||||||
|
@ -15,11 +15,15 @@ import {
|
|||||||
query,
|
query,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
import "../../../../src/components/buttons/ha-progress-button";
|
import "../../../../src/components/buttons/ha-progress-button";
|
||||||
import "../../../../src/components/ha-button-menu";
|
import "../../../../src/components/ha-button-menu";
|
||||||
import "../../../../src/components/ha-card";
|
import "../../../../src/components/ha-card";
|
||||||
import "../../../../src/components/ha-form/ha-form";
|
import "../../../../src/components/ha-form/ha-form";
|
||||||
|
import type { HaFormSchema } from "../../../../src/components/ha-form/ha-form";
|
||||||
|
import "../../../../src/components/ha-formfield";
|
||||||
|
import "../../../../src/components/ha-switch";
|
||||||
import "../../../../src/components/ha-yaml-editor";
|
import "../../../../src/components/ha-yaml-editor";
|
||||||
import type { HaYamlEditor } from "../../../../src/components/ha-yaml-editor";
|
import type { HaYamlEditor } from "../../../../src/components/ha-yaml-editor";
|
||||||
import {
|
import {
|
||||||
@ -48,6 +52,8 @@ class HassioAddonConfig extends LitElement {
|
|||||||
|
|
||||||
@internalProperty() private _canShowSchema = false;
|
@internalProperty() private _canShowSchema = false;
|
||||||
|
|
||||||
|
@internalProperty() private _showOptional = false;
|
||||||
|
|
||||||
@internalProperty() private _error?: string;
|
@internalProperty() private _error?: string;
|
||||||
|
|
||||||
@internalProperty() private _options?: Record<string, unknown>;
|
@internalProperty() private _options?: Record<string, unknown>;
|
||||||
@ -56,7 +62,21 @@ class HassioAddonConfig extends LitElement {
|
|||||||
|
|
||||||
@query("ha-yaml-editor") private _editor?: HaYamlEditor;
|
@query("ha-yaml-editor") private _editor?: HaYamlEditor;
|
||||||
|
|
||||||
|
private _filteredShchema = memoizeOne(
|
||||||
|
(options: Record<string, unknown>, schema: HaFormSchema[]) => {
|
||||||
|
return schema.filter((entry) => entry.name in options || entry.required);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
|
const showForm =
|
||||||
|
!this._yamlMode && this._canShowSchema && this.addon.schema;
|
||||||
|
const hasHiddenOptions =
|
||||||
|
showForm &&
|
||||||
|
JSON.stringify(this.addon.schema) !==
|
||||||
|
JSON.stringify(
|
||||||
|
this._filteredShchema(this.addon.options, this.addon.schema!)
|
||||||
|
);
|
||||||
return html`
|
return html`
|
||||||
<h1>${this.addon.name}</h1>
|
<h1>${this.addon.name}</h1>
|
||||||
<ha-card>
|
<ha-card>
|
||||||
@ -78,11 +98,16 @@ class HassioAddonConfig extends LitElement {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
${!this._yamlMode && this._canShowSchema && this.addon.schema
|
${showForm
|
||||||
? html`<ha-form
|
? html`<ha-form
|
||||||
.data=${this._options!}
|
.data=${this._options!}
|
||||||
@value-changed=${this._configChanged}
|
@value-changed=${this._configChanged}
|
||||||
.schema=${this.addon.schema}
|
.schema=${this._showOptional
|
||||||
|
? this.addon.schema!
|
||||||
|
: this._filteredShchema(
|
||||||
|
this.addon.options,
|
||||||
|
this.addon.schema!
|
||||||
|
)}
|
||||||
></ha-form>`
|
></ha-form>`
|
||||||
: html` <ha-yaml-editor
|
: html` <ha-yaml-editor
|
||||||
@value-changed=${this._configChanged}
|
@value-changed=${this._configChanged}
|
||||||
@ -94,6 +119,18 @@ class HassioAddonConfig extends LitElement {
|
|||||||
? ""
|
? ""
|
||||||
: html` <div class="errors">Invalid YAML</div> `}
|
: html` <div class="errors">Invalid YAML</div> `}
|
||||||
</div>
|
</div>
|
||||||
|
${hasHiddenOptions
|
||||||
|
? html`<ha-formfield
|
||||||
|
class="show-additional"
|
||||||
|
label="Show unused optional configuration options"
|
||||||
|
>
|
||||||
|
<ha-switch
|
||||||
|
@change=${this._toggleOptional}
|
||||||
|
.checked=${this._showOptional}
|
||||||
|
>
|
||||||
|
</ha-switch>
|
||||||
|
</ha-formfield>`
|
||||||
|
: ""}
|
||||||
<div class="card-actions right">
|
<div class="card-actions right">
|
||||||
<ha-progress-button
|
<ha-progress-button
|
||||||
@click=${this._saveTapped}
|
@click=${this._saveTapped}
|
||||||
@ -146,6 +183,10 @@ class HassioAddonConfig extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private _toggleOptional() {
|
||||||
|
this._showOptional = !this._showOptional;
|
||||||
|
}
|
||||||
|
|
||||||
private _configChanged(ev): void {
|
private _configChanged(ev): void {
|
||||||
if (this.addon.schema && this._canShowSchema && !this._yamlMode) {
|
if (this.addon.schema && this._canShowSchema && !this._yamlMode) {
|
||||||
this._valid = true;
|
this._valid = true;
|
||||||
@ -275,6 +316,10 @@ class HassioAddonConfig extends LitElement {
|
|||||||
.card-actions.right {
|
.card-actions.right {
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.show-additional {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
`,
|
`,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -190,7 +190,9 @@ class HassioAddonDashboard extends LitElement {
|
|||||||
const path: string = pathSplit[pathSplit.length - 1];
|
const path: string = pathSplit[pathSplit.length - 1];
|
||||||
|
|
||||||
if (["uninstall", "install", "update", "start", "stop"].includes(path)) {
|
if (["uninstall", "install", "update", "start", "stop"].includes(path)) {
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "supervisor" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "supervisor",
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (path === "uninstall") {
|
if (path === "uninstall") {
|
||||||
|
@ -25,6 +25,7 @@ import {
|
|||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { classMap } from "lit-html/directives/class-map";
|
import { classMap } from "lit-html/directives/class-map";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
import { atLeastVersion } from "../../../../src/common/config/version";
|
import { atLeastVersion } from "../../../../src/common/config/version";
|
||||||
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
import { navigate } from "../../../../src/common/navigate";
|
import { navigate } from "../../../../src/common/navigate";
|
||||||
@ -49,7 +50,6 @@ import {
|
|||||||
startHassioAddon,
|
startHassioAddon,
|
||||||
stopHassioAddon,
|
stopHassioAddon,
|
||||||
uninstallHassioAddon,
|
uninstallHassioAddon,
|
||||||
updateHassioAddon,
|
|
||||||
validateHassioAddonOption,
|
validateHassioAddonOption,
|
||||||
} from "../../../../src/data/hassio/addon";
|
} from "../../../../src/data/hassio/addon";
|
||||||
import {
|
import {
|
||||||
@ -57,6 +57,7 @@ import {
|
|||||||
fetchHassioStats,
|
fetchHassioStats,
|
||||||
HassioStats,
|
HassioStats,
|
||||||
} from "../../../../src/data/hassio/common";
|
} from "../../../../src/data/hassio/common";
|
||||||
|
import { StoreAddon } from "../../../../src/data/supervisor/store";
|
||||||
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
|
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
|
||||||
import {
|
import {
|
||||||
showAlertDialog,
|
showAlertDialog,
|
||||||
@ -67,6 +68,7 @@ import { HomeAssistant } from "../../../../src/types";
|
|||||||
import { bytesToString } from "../../../../src/util/bytes-to-string";
|
import { bytesToString } from "../../../../src/util/bytes-to-string";
|
||||||
import "../../components/hassio-card-content";
|
import "../../components/hassio-card-content";
|
||||||
import "../../components/supervisor-metric";
|
import "../../components/supervisor-metric";
|
||||||
|
import { showDialogSupervisorAddonUpdate } from "../../dialogs/addon/show-dialog-addon-update";
|
||||||
import { showHassioMarkdownDialog } from "../../dialogs/markdown/show-dialog-hassio-markdown";
|
import { showHassioMarkdownDialog } from "../../dialogs/markdown/show-dialog-hassio-markdown";
|
||||||
import { hassioStyle } from "../../resources/hassio-style";
|
import { hassioStyle } from "../../resources/hassio-style";
|
||||||
import { addonArchIsSupported } from "../../util/addon";
|
import { addonArchIsSupported } from "../../util/addon";
|
||||||
@ -148,7 +150,16 @@ class HassioAddonInfo extends LitElement {
|
|||||||
|
|
||||||
@internalProperty() private _error?: string;
|
@internalProperty() private _error?: string;
|
||||||
|
|
||||||
|
private _addonStoreInfo = memoizeOne(
|
||||||
|
(slug: string, storeAddons: StoreAddon[]) =>
|
||||||
|
storeAddons.find((addon) => addon.slug === slug)
|
||||||
|
);
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
|
const addonStoreInfo =
|
||||||
|
!this.addon.detached && !this.addon.available
|
||||||
|
? this._addonStoreInfo(this.addon.slug, this.supervisor.store.addons)
|
||||||
|
: undefined;
|
||||||
const metrics = [
|
const metrics = [
|
||||||
{
|
{
|
||||||
description: "Add-on CPU Usage",
|
description: "Add-on CPU Usage",
|
||||||
@ -176,32 +187,32 @@ class HassioAddonInfo extends LitElement {
|
|||||||
icon=${mdiArrowUpBoldCircle}
|
icon=${mdiArrowUpBoldCircle}
|
||||||
iconClass="update"
|
iconClass="update"
|
||||||
></hassio-card-content>
|
></hassio-card-content>
|
||||||
${!this.addon.available
|
${!this.addon.available && addonStoreInfo
|
||||||
? !addonArchIsSupported(
|
? !addonArchIsSupported(
|
||||||
this.supervisor.info.supported_arch,
|
this.supervisor.info.supported_arch,
|
||||||
this.addon.arch
|
this.addon.arch
|
||||||
)
|
)
|
||||||
? html`
|
? html`
|
||||||
<p>
|
<p class="warning">
|
||||||
This add-on is not compatible with the processor of
|
This add-on is not compatible with the processor of
|
||||||
your device or the operating system you have installed
|
your device or the operating system you have installed
|
||||||
on your device.
|
on your device.
|
||||||
</p>
|
</p>
|
||||||
`
|
`
|
||||||
: html`
|
: html`
|
||||||
<p>
|
<p class="warning">
|
||||||
You are running Home Assistant
|
You are running Home Assistant
|
||||||
${this.supervisor.core.version}, to update to this
|
${this.supervisor.core.version}, to update to this
|
||||||
version of the add-on you need at least version
|
version of the add-on you need at least version
|
||||||
${this.addon.homeassistant} of Home Assistant
|
${addonStoreInfo.homeassistant} of Home Assistant
|
||||||
</p>
|
</p>
|
||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-actions">
|
<div class="card-actions">
|
||||||
<ha-progress-button @click=${this._updateClicked}>
|
<mwc-button @click=${this._updateClicked}>
|
||||||
Update
|
Update
|
||||||
</ha-progress-button>
|
</mwc-button>
|
||||||
${this.addon.changelog
|
${this.addon.changelog
|
||||||
? html`
|
? html`
|
||||||
<mwc-button @click=${this._openChangelog}>
|
<mwc-button @click=${this._openChangelog}>
|
||||||
@ -551,7 +562,7 @@ class HassioAddonInfo extends LitElement {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
${this._error ? html` <div class="errors">${this._error}</div> ` : ""}
|
${this._error ? html` <div class="errors">${this._error}</div> ` : ""}
|
||||||
${!this.addon.available
|
${!this.addon.version && addonStoreInfo && !this.addon.available
|
||||||
? !addonArchIsSupported(
|
? !addonArchIsSupported(
|
||||||
this.supervisor.info.supported_arch,
|
this.supervisor.info.supported_arch,
|
||||||
this.addon.arch
|
this.addon.arch
|
||||||
@ -567,8 +578,8 @@ class HassioAddonInfo extends LitElement {
|
|||||||
<p class="warning">
|
<p class="warning">
|
||||||
You are running Home Assistant
|
You are running Home Assistant
|
||||||
${this.supervisor.core.version}, to install this add-on you
|
${this.supervisor.core.version}, to install this add-on you
|
||||||
need at least version ${this.addon.homeassistant} of Home
|
need at least version ${addonStoreInfo!.homeassistant} of
|
||||||
Assistant
|
Home Assistant
|
||||||
</p>
|
</p>
|
||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
@ -922,38 +933,8 @@ class HassioAddonInfo extends LitElement {
|
|||||||
button.progress = false;
|
button.progress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _updateClicked(ev: CustomEvent): Promise<void> {
|
private async _updateClicked(): Promise<void> {
|
||||||
const button = ev.currentTarget as any;
|
showDialogSupervisorAddonUpdate(this, { addon: this.addon });
|
||||||
button.progress = true;
|
|
||||||
|
|
||||||
const confirmed = await showConfirmationDialog(this, {
|
|
||||||
title: this.addon.name,
|
|
||||||
text: "Are you sure you want to update this add-on?",
|
|
||||||
confirmText: "update add-on",
|
|
||||||
dismissText: "no",
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!confirmed) {
|
|
||||||
button.progress = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._error = undefined;
|
|
||||||
try {
|
|
||||||
await updateHassioAddon(this.hass, this.addon.slug);
|
|
||||||
const eventdata = {
|
|
||||||
success: true,
|
|
||||||
response: undefined,
|
|
||||||
path: "update",
|
|
||||||
};
|
|
||||||
fireEvent(this, "hass-api-called", eventdata);
|
|
||||||
} catch (err) {
|
|
||||||
showAlertDialog(this, {
|
|
||||||
title: "Failed to update addon",
|
|
||||||
text: extractApiErrorMessage(err),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
button.progress = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _startClicked(ev: CustomEvent): Promise<void> {
|
private async _startClicked(ev: CustomEvent): Promise<void> {
|
||||||
|
@ -31,6 +31,7 @@ import {
|
|||||||
} from "../../../src/dialogs/generic/show-dialog-box";
|
} from "../../../src/dialogs/generic/show-dialog-box";
|
||||||
import { haStyle } from "../../../src/resources/styles";
|
import { haStyle } from "../../../src/resources/styles";
|
||||||
import { HomeAssistant } from "../../../src/types";
|
import { HomeAssistant } from "../../../src/types";
|
||||||
|
import { showDialogSupervisorCoreUpdate } from "../dialogs/core/show-dialog-core-update";
|
||||||
import { hassioStyle } from "../resources/hassio-style";
|
import { hassioStyle } from "../resources/hassio-style";
|
||||||
|
|
||||||
@customElement("hassio-update")
|
@customElement("hassio-update")
|
||||||
@ -134,6 +135,10 @@ export class HassioUpdate extends LitElement {
|
|||||||
|
|
||||||
private async _confirmUpdate(ev): Promise<void> {
|
private async _confirmUpdate(ev): Promise<void> {
|
||||||
const item = ev.currentTarget;
|
const item = ev.currentTarget;
|
||||||
|
if (item.key === "core") {
|
||||||
|
showDialogSupervisorCoreUpdate(this, { core: this.supervisor.core });
|
||||||
|
return;
|
||||||
|
}
|
||||||
item.progress = true;
|
item.progress = true;
|
||||||
const confirmed = await showConfirmationDialog(this, {
|
const confirmed = await showConfirmationDialog(this, {
|
||||||
title: `Update ${item.name}`,
|
title: `Update ${item.name}`,
|
||||||
@ -148,11 +153,17 @@ export class HassioUpdate extends LitElement {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
await this.hass.callApi<HassioResponse<void>>("POST", item.apiPath);
|
await this.hass.callApi<HassioResponse<void>>("POST", item.apiPath);
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: item.key });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: item.key,
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// Only show an error if the status code was not expected (user behind proxy)
|
// Only show an error if the status code was not expected (user behind proxy)
|
||||||
// or no status at all(connection terminated)
|
// or no status at all(connection terminated)
|
||||||
if (err.status_code && !ignoredStatusCodes.has(err.status_code)) {
|
if (
|
||||||
|
this.hass.connection.connected &&
|
||||||
|
err.status_code &&
|
||||||
|
!ignoredStatusCodes.has(err.status_code)
|
||||||
|
) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Update failed",
|
title: "Update failed",
|
||||||
text: extractApiErrorMessage(err),
|
text: extractApiErrorMessage(err),
|
||||||
|
178
hassio/src/dialogs/addon/dialog-supervisor-addon-update.ts
Normal file
178
hassio/src/dialogs/addon/dialog-supervisor-addon-update.ts
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
import "@material/mwc-button/mwc-button";
|
||||||
|
import {
|
||||||
|
css,
|
||||||
|
CSSResult,
|
||||||
|
customElement,
|
||||||
|
html,
|
||||||
|
internalProperty,
|
||||||
|
LitElement,
|
||||||
|
TemplateResult,
|
||||||
|
} from "lit-element";
|
||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import "../../../../src/components/ha-circular-progress";
|
||||||
|
import "../../../../src/components/ha-dialog";
|
||||||
|
import "../../../../src/components/ha-settings-row";
|
||||||
|
import "../../../../src/components/ha-svg-icon";
|
||||||
|
import "../../../../src/components/ha-switch";
|
||||||
|
import {
|
||||||
|
HassioAddonDetails,
|
||||||
|
updateHassioAddon,
|
||||||
|
} from "../../../../src/data/hassio/addon";
|
||||||
|
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
|
||||||
|
import { createHassioPartialSnapshot } from "../../../../src/data/hassio/snapshot";
|
||||||
|
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
|
||||||
|
import type { HomeAssistant } from "../../../../src/types";
|
||||||
|
import { SupervisorDialogSupervisorAddonUpdateParams } from "./show-dialog-addon-update";
|
||||||
|
|
||||||
|
@customElement("dialog-supervisor-addon-update")
|
||||||
|
class DialogSupervisorAddonUpdate extends LitElement {
|
||||||
|
public hass!: HomeAssistant;
|
||||||
|
|
||||||
|
public addon!: HassioAddonDetails;
|
||||||
|
|
||||||
|
@internalProperty() private _opened = false;
|
||||||
|
|
||||||
|
@internalProperty() private _createSnapshot = true;
|
||||||
|
|
||||||
|
@internalProperty() private _action: "snapshot" | "update" | null = null;
|
||||||
|
|
||||||
|
@internalProperty() private _error?: string;
|
||||||
|
|
||||||
|
public async showDialog(
|
||||||
|
params: SupervisorDialogSupervisorAddonUpdateParams
|
||||||
|
): Promise<void> {
|
||||||
|
this._opened = true;
|
||||||
|
this.addon = params.addon;
|
||||||
|
await this.updateComplete;
|
||||||
|
}
|
||||||
|
|
||||||
|
public closeDialog(): void {
|
||||||
|
this._action = null;
|
||||||
|
this._createSnapshot = true;
|
||||||
|
this._opened = false;
|
||||||
|
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||||
|
}
|
||||||
|
|
||||||
|
public focus(): void {
|
||||||
|
this.updateComplete.then(() =>
|
||||||
|
(this.shadowRoot?.querySelector(
|
||||||
|
"[dialogInitialFocus]"
|
||||||
|
) as HTMLElement)?.focus()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected render(): TemplateResult {
|
||||||
|
return html`
|
||||||
|
<ha-dialog
|
||||||
|
.heading="Update ${this.addon.name}"
|
||||||
|
.open=${this._opened}
|
||||||
|
scrimClickAction
|
||||||
|
escapeKeyAction
|
||||||
|
>
|
||||||
|
${this._action === null
|
||||||
|
? html`<div>
|
||||||
|
Are you sure you want to update this add-on to version
|
||||||
|
${this.addon.version_latest}?
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ha-settings-row>
|
||||||
|
<span slot="heading">
|
||||||
|
Snapshot
|
||||||
|
</span>
|
||||||
|
<span slot="description">
|
||||||
|
Create a snapshot of the add-on before updating
|
||||||
|
</span>
|
||||||
|
<ha-switch
|
||||||
|
.checked=${this._createSnapshot}
|
||||||
|
haptic
|
||||||
|
title="Create snapshot"
|
||||||
|
@click=${this._toggleSnapshot}
|
||||||
|
>
|
||||||
|
</ha-switch>
|
||||||
|
</ha-settings-row>
|
||||||
|
<mwc-button @click=${this.closeDialog} slot="secondaryAction">
|
||||||
|
Cancel
|
||||||
|
</mwc-button>
|
||||||
|
<mwc-button @click=${this._update} slot="primaryAction">
|
||||||
|
Update
|
||||||
|
</mwc-button>`
|
||||||
|
: html`<ha-circular-progress alt="Updating" size="large" active>
|
||||||
|
</ha-circular-progress>
|
||||||
|
<p class="progress-text">
|
||||||
|
${this._action === "update"
|
||||||
|
? `Update to version ${this.addon.version_latest} in progress`
|
||||||
|
: "Creating snapshot in progress"}
|
||||||
|
</p>`}
|
||||||
|
${this._error ? html`<p class="error">${this._error}</p>` : ""}
|
||||||
|
</ha-dialog>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private _toggleSnapshot() {
|
||||||
|
this._createSnapshot = !this._createSnapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async _update() {
|
||||||
|
if (this._createSnapshot) {
|
||||||
|
this._action = "snapshot";
|
||||||
|
try {
|
||||||
|
await createHassioPartialSnapshot(this.hass, {
|
||||||
|
name: `addon_${this.addon.slug}_${this.addon.version}`,
|
||||||
|
addons: [this.addon.slug],
|
||||||
|
homeassistant: false,
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
this._error = extractApiErrorMessage(err);
|
||||||
|
this._action = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this._action = "update";
|
||||||
|
try {
|
||||||
|
await updateHassioAddon(this.hass, this.addon.slug);
|
||||||
|
} catch (err) {
|
||||||
|
this._error = extractApiErrorMessage(err);
|
||||||
|
this._action = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
fireEvent(this, "supervisor-colllection-refresh", { colllection: "addon" });
|
||||||
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "supervisor",
|
||||||
|
});
|
||||||
|
this.closeDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
static get styles(): CSSResult[] {
|
||||||
|
return [
|
||||||
|
haStyle,
|
||||||
|
haStyleDialog,
|
||||||
|
css`
|
||||||
|
.form {
|
||||||
|
color: var(--primary-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
ha-settings-row {
|
||||||
|
margin-top: 32px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ha-circular-progress {
|
||||||
|
display: block;
|
||||||
|
margin: 32px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-text {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface HTMLElementTagNameMap {
|
||||||
|
"dialog-supervisor-addon-update": DialogSupervisorAddonUpdate;
|
||||||
|
}
|
||||||
|
}
|
17
hassio/src/dialogs/addon/show-dialog-addon-update.ts
Normal file
17
hassio/src/dialogs/addon/show-dialog-addon-update.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import { HassioAddonDetails } from "../../../../src/data/hassio/addon";
|
||||||
|
|
||||||
|
export interface SupervisorDialogSupervisorAddonUpdateParams {
|
||||||
|
addon: HassioAddonDetails;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const showDialogSupervisorAddonUpdate = (
|
||||||
|
element: HTMLElement,
|
||||||
|
dialogParams: SupervisorDialogSupervisorAddonUpdateParams
|
||||||
|
): void => {
|
||||||
|
fireEvent(element, "show-dialog", {
|
||||||
|
dialogTag: "dialog-supervisor-addon-update",
|
||||||
|
dialogImport: () => import("./dialog-supervisor-addon-update"),
|
||||||
|
dialogParams,
|
||||||
|
});
|
||||||
|
};
|
175
hassio/src/dialogs/core/dialog-supervisor-core-update.ts
Normal file
175
hassio/src/dialogs/core/dialog-supervisor-core-update.ts
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
import "@material/mwc-button/mwc-button";
|
||||||
|
import {
|
||||||
|
css,
|
||||||
|
CSSResult,
|
||||||
|
customElement,
|
||||||
|
html,
|
||||||
|
internalProperty,
|
||||||
|
LitElement,
|
||||||
|
TemplateResult,
|
||||||
|
} from "lit-element";
|
||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import "../../../../src/components/ha-circular-progress";
|
||||||
|
import "../../../../src/components/ha-dialog";
|
||||||
|
import "../../../../src/components/ha-settings-row";
|
||||||
|
import "../../../../src/components/ha-svg-icon";
|
||||||
|
import "../../../../src/components/ha-switch";
|
||||||
|
import { extractApiErrorMessage } from "../../../../src/data/hassio/common";
|
||||||
|
import { createHassioPartialSnapshot } from "../../../../src/data/hassio/snapshot";
|
||||||
|
import { HassioHomeAssistantInfo } from "../../../../src/data/hassio/supervisor";
|
||||||
|
import { updateCore } from "../../../../src/data/supervisor/core";
|
||||||
|
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
|
||||||
|
import type { HomeAssistant } from "../../../../src/types";
|
||||||
|
import { SupervisorDialogSupervisorCoreUpdateParams } from "./show-dialog-core-update";
|
||||||
|
|
||||||
|
@customElement("dialog-supervisor-core-update")
|
||||||
|
class DialogSupervisorCoreUpdate extends LitElement {
|
||||||
|
public hass!: HomeAssistant;
|
||||||
|
|
||||||
|
public core!: HassioHomeAssistantInfo;
|
||||||
|
|
||||||
|
@internalProperty() private _opened = false;
|
||||||
|
|
||||||
|
@internalProperty() private _createSnapshot = true;
|
||||||
|
|
||||||
|
@internalProperty() private _action: "snapshot" | "update" | null = null;
|
||||||
|
|
||||||
|
@internalProperty() private _error?: string;
|
||||||
|
|
||||||
|
public async showDialog(
|
||||||
|
params: SupervisorDialogSupervisorCoreUpdateParams
|
||||||
|
): Promise<void> {
|
||||||
|
this._opened = true;
|
||||||
|
this.core = params.core;
|
||||||
|
await this.updateComplete;
|
||||||
|
}
|
||||||
|
|
||||||
|
public closeDialog(): void {
|
||||||
|
this._action = null;
|
||||||
|
this._createSnapshot = true;
|
||||||
|
this._opened = false;
|
||||||
|
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||||
|
}
|
||||||
|
|
||||||
|
public focus(): void {
|
||||||
|
this.updateComplete.then(() =>
|
||||||
|
(this.shadowRoot?.querySelector(
|
||||||
|
"[dialogInitialFocus]"
|
||||||
|
) as HTMLElement)?.focus()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected render(): TemplateResult {
|
||||||
|
return html`
|
||||||
|
<ha-dialog
|
||||||
|
.open=${this._opened}
|
||||||
|
heading="Update Home Assistant Core"
|
||||||
|
scrimClickAction
|
||||||
|
escapeKeyAction
|
||||||
|
>
|
||||||
|
${this._action === null
|
||||||
|
? html`<div>
|
||||||
|
Are you sure you want to update Home Assistant Core to version
|
||||||
|
${this.core.version_latest}?
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ha-settings-row three-rows>
|
||||||
|
<span slot="heading">
|
||||||
|
Snapshot
|
||||||
|
</span>
|
||||||
|
<span slot="description">
|
||||||
|
Create a snapshot of Home Assistant Core before updating
|
||||||
|
</span>
|
||||||
|
<ha-switch
|
||||||
|
.checked=${this._createSnapshot}
|
||||||
|
haptic
|
||||||
|
title="Create snapshot"
|
||||||
|
@click=${this._toggleSnapshot}
|
||||||
|
>
|
||||||
|
</ha-switch>
|
||||||
|
</ha-settings-row>
|
||||||
|
<mwc-button @click=${this.closeDialog} slot="secondaryAction">
|
||||||
|
Cancel
|
||||||
|
</mwc-button>
|
||||||
|
<mwc-button @click=${this._update} slot="primaryAction">
|
||||||
|
Update
|
||||||
|
</mwc-button>`
|
||||||
|
: html`<ha-circular-progress alt="Updating" size="large" active>
|
||||||
|
</ha-circular-progress>
|
||||||
|
<p class="progress-text">
|
||||||
|
${this._action === "update"
|
||||||
|
? `Update to version ${this.core.version_latest} in progress`
|
||||||
|
: "Creating snapshot in progress"}
|
||||||
|
</p>`}
|
||||||
|
${this._error ? html`<p class="error">${this._error}</p>` : ""}
|
||||||
|
</ha-dialog>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private _toggleSnapshot() {
|
||||||
|
this._createSnapshot = !this._createSnapshot;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async _update() {
|
||||||
|
if (this._createSnapshot) {
|
||||||
|
this._action = "snapshot";
|
||||||
|
try {
|
||||||
|
await createHassioPartialSnapshot(this.hass, {
|
||||||
|
name: `core_${this.core.version}`,
|
||||||
|
folders: ["homeassistant"],
|
||||||
|
homeassistant: true,
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
this._error = extractApiErrorMessage(err);
|
||||||
|
this._action = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this._action = "update";
|
||||||
|
try {
|
||||||
|
await updateCore(this.hass);
|
||||||
|
} catch (err) {
|
||||||
|
if (this.hass.connection.connected) {
|
||||||
|
this._error = extractApiErrorMessage(err);
|
||||||
|
this._action = null;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fireEvent(this, "supervisor-colllection-refresh", { colllection: "core" });
|
||||||
|
this.closeDialog();
|
||||||
|
}
|
||||||
|
|
||||||
|
static get styles(): CSSResult[] {
|
||||||
|
return [
|
||||||
|
haStyle,
|
||||||
|
haStyleDialog,
|
||||||
|
css`
|
||||||
|
.form {
|
||||||
|
color: var(--primary-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
ha-settings-row {
|
||||||
|
margin-top: 32px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ha-circular-progress {
|
||||||
|
display: block;
|
||||||
|
margin: 32px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-text {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface HTMLElementTagNameMap {
|
||||||
|
"dialog-supervisor-core-update": DialogSupervisorCoreUpdate;
|
||||||
|
}
|
||||||
|
}
|
17
hassio/src/dialogs/core/show-dialog-core-update.ts
Normal file
17
hassio/src/dialogs/core/show-dialog-core-update.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import { HassioHomeAssistantInfo } from "../../../../src/data/hassio/supervisor";
|
||||||
|
|
||||||
|
export interface SupervisorDialogSupervisorCoreUpdateParams {
|
||||||
|
core: HassioHomeAssistantInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const showDialogSupervisorCoreUpdate = (
|
||||||
|
element: HTMLElement,
|
||||||
|
dialogParams: SupervisorDialogSupervisorCoreUpdateParams
|
||||||
|
): void => {
|
||||||
|
fireEvent(element, "show-dialog", {
|
||||||
|
dialogTag: "dialog-supervisor-core-update",
|
||||||
|
dialogImport: () => import("./dialog-supervisor-core-update"),
|
||||||
|
dialogParams,
|
||||||
|
});
|
||||||
|
};
|
@ -95,7 +95,7 @@ class HassioSnapshotDialog extends LitElement {
|
|||||||
|
|
||||||
@internalProperty() private _snapshotPassword!: string;
|
@internalProperty() private _snapshotPassword!: string;
|
||||||
|
|
||||||
@internalProperty() private _restoreHass: boolean | null | undefined = true;
|
@internalProperty() private _restoreHass = true;
|
||||||
|
|
||||||
public async showDialog(params: HassioSnapshotDialogParams) {
|
public async showDialog(params: HassioSnapshotDialogParams) {
|
||||||
this._snapshot = await fetchHassioSnapshotInfo(this.hass, params.slug);
|
this._snapshot = await fetchHassioSnapshotInfo(this.hass, params.slug);
|
||||||
@ -109,6 +109,9 @@ class HassioSnapshotDialog extends LitElement {
|
|||||||
this._dialogParams = params;
|
this._dialogParams = params;
|
||||||
this._onboarding = params.onboarding ?? false;
|
this._onboarding = params.onboarding ?? false;
|
||||||
this.supervisor = params.supervisor;
|
this.supervisor = params.supervisor;
|
||||||
|
if (!this._snapshot.homeassistant) {
|
||||||
|
this._restoreHass = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
@ -134,15 +137,17 @@ class HassioSnapshotDialog extends LitElement {
|
|||||||
(${this._computeSize})<br />
|
(${this._computeSize})<br />
|
||||||
${this._formatDatetime(this._snapshot.date)}
|
${this._formatDatetime(this._snapshot.date)}
|
||||||
</div>
|
</div>
|
||||||
<div>Home Assistant:</div>
|
${this._snapshot.homeassistant
|
||||||
|
? html`<div>Home Assistant:</div>
|
||||||
<paper-checkbox
|
<paper-checkbox
|
||||||
.checked=${this._restoreHass}
|
.checked=${this._restoreHass}
|
||||||
@change="${(ev: Event) => {
|
@change="${(ev: Event) => {
|
||||||
this._restoreHass = (ev.target as PaperCheckboxElement).checked;
|
this._restoreHass = (ev.target as PaperCheckboxElement).checked!;
|
||||||
}}"
|
}}"
|
||||||
>
|
>
|
||||||
Home Assistant ${this._snapshot.homeassistant}
|
Home Assistant ${this._snapshot.homeassistant}
|
||||||
</paper-checkbox>
|
</paper-checkbox>`
|
||||||
|
: ""}
|
||||||
${this._folders.length
|
${this._folders.length
|
||||||
? html`
|
? html`
|
||||||
<div>Folders:</div>
|
<div>Folders:</div>
|
||||||
@ -334,7 +339,7 @@ class HassioSnapshotDialog extends LitElement {
|
|||||||
.map((folder) => folder.slug);
|
.map((folder) => folder.slug);
|
||||||
|
|
||||||
const data: {
|
const data: {
|
||||||
homeassistant: boolean | null | undefined;
|
homeassistant: boolean;
|
||||||
addons: any;
|
addons: any;
|
||||||
folders: any;
|
folders: any;
|
||||||
password?: string;
|
password?: string;
|
||||||
|
@ -3,7 +3,7 @@ import { atLeastVersion } from "../../src/common/config/version";
|
|||||||
import { applyThemesOnElement } from "../../src/common/dom/apply_themes_on_element";
|
import { applyThemesOnElement } from "../../src/common/dom/apply_themes_on_element";
|
||||||
import { fireEvent } from "../../src/common/dom/fire_event";
|
import { fireEvent } from "../../src/common/dom/fire_event";
|
||||||
import { HassioPanelInfo } from "../../src/data/hassio/supervisor";
|
import { HassioPanelInfo } from "../../src/data/hassio/supervisor";
|
||||||
import { supervisorStore } from "../../src/data/supervisor/supervisor";
|
import { supervisorCollection } from "../../src/data/supervisor/supervisor";
|
||||||
import { makeDialogManager } from "../../src/dialogs/make-dialog-manager";
|
import { makeDialogManager } from "../../src/dialogs/make-dialog-manager";
|
||||||
import "../../src/layouts/hass-loading-screen";
|
import "../../src/layouts/hass-loading-screen";
|
||||||
import { HomeAssistant, Route } from "../../src/types";
|
import { HomeAssistant, Route } from "../../src/types";
|
||||||
@ -77,7 +77,9 @@ export class HassioMain extends SupervisorBaseElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
Object.keys(supervisorStore).some((store) => !this.supervisor![store])
|
Object.keys(supervisorCollection).some(
|
||||||
|
(colllection) => !this.supervisor![colllection]
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
return html`<hass-loading-screen></hass-loading-screen>`;
|
return html`<hass-loading-screen></hass-loading-screen>`;
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,13 @@ import {
|
|||||||
fetchHassioInfo,
|
fetchHassioInfo,
|
||||||
fetchHassioSupervisorInfo,
|
fetchHassioSupervisorInfo,
|
||||||
} from "../../src/data/hassio/supervisor";
|
} from "../../src/data/hassio/supervisor";
|
||||||
|
import { fetchSupervisorStore } from "../../src/data/supervisor/store";
|
||||||
import {
|
import {
|
||||||
getSupervisorEventCollection,
|
getSupervisorEventCollection,
|
||||||
subscribeSupervisorEvents,
|
subscribeSupervisorEvents,
|
||||||
Supervisor,
|
Supervisor,
|
||||||
SupervisorObject,
|
SupervisorObject,
|
||||||
supervisorStore,
|
supervisorCollection,
|
||||||
} from "../../src/data/supervisor/supervisor";
|
} from "../../src/data/supervisor/supervisor";
|
||||||
import { ProvideHassLitMixin } from "../../src/mixins/provide-hass-lit-mixin";
|
import { ProvideHassLitMixin } from "../../src/mixins/provide-hass-lit-mixin";
|
||||||
import { urlSyncMixin } from "../../src/state/url-sync-mixin";
|
import { urlSyncMixin } from "../../src/state/url-sync-mixin";
|
||||||
@ -32,7 +33,7 @@ import { urlSyncMixin } from "../../src/state/url-sync-mixin";
|
|||||||
declare global {
|
declare global {
|
||||||
interface HASSDomEvents {
|
interface HASSDomEvents {
|
||||||
"supervisor-update": Partial<Supervisor>;
|
"supervisor-update": Partial<Supervisor>;
|
||||||
"supervisor-store-refresh": { store: SupervisorObject };
|
"supervisor-colllection-refresh": { colllection: SupervisorObject };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,40 +66,40 @@ export class SupervisorBaseElement extends urlSyncMixin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async _handleSupervisorStoreRefreshEvent(ev) {
|
private async _handleSupervisorStoreRefreshEvent(ev) {
|
||||||
const store = ev.detail.store;
|
const colllection = ev.detail.colllection;
|
||||||
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
||||||
this._collections[store].refresh();
|
this._collections[colllection].refresh();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const response = await this.hass.callApi<HassioResponse<any>>(
|
const response = await this.hass.callApi<HassioResponse<any>>(
|
||||||
"GET",
|
"GET",
|
||||||
`hassio${supervisorStore[store]}`
|
`hassio${supervisorCollection[colllection]}`
|
||||||
);
|
);
|
||||||
this._updateSupervisor({ [store]: response.data });
|
this._updateSupervisor({ [colllection]: response.data });
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _initSupervisor(): Promise<void> {
|
private async _initSupervisor(): Promise<void> {
|
||||||
this.addEventListener(
|
this.addEventListener(
|
||||||
"supervisor-store-refresh",
|
"supervisor-colllection-refresh",
|
||||||
this._handleSupervisorStoreRefreshEvent
|
this._handleSupervisorStoreRefreshEvent
|
||||||
);
|
);
|
||||||
|
|
||||||
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
||||||
Object.keys(supervisorStore).forEach((store) => {
|
Object.keys(supervisorCollection).forEach((colllection) => {
|
||||||
this._unsubs[store] = subscribeSupervisorEvents(
|
this._unsubs[colllection] = subscribeSupervisorEvents(
|
||||||
this.hass,
|
this.hass,
|
||||||
(data) => this._updateSupervisor({ [store]: data }),
|
(data) => this._updateSupervisor({ [colllection]: data }),
|
||||||
store,
|
colllection,
|
||||||
supervisorStore[store]
|
supervisorCollection[colllection]
|
||||||
);
|
);
|
||||||
if (this._collections[store]) {
|
if (this._collections[colllection]) {
|
||||||
this._collections[store].refresh();
|
this._collections[colllection].refresh();
|
||||||
} else {
|
} else {
|
||||||
this._collections[store] = getSupervisorEventCollection(
|
this._collections[colllection] = getSupervisorEventCollection(
|
||||||
this.hass.connection,
|
this.hass.connection,
|
||||||
store,
|
colllection,
|
||||||
supervisorStore[store]
|
supervisorCollection[colllection]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -122,6 +123,7 @@ export class SupervisorBaseElement extends urlSyncMixin(
|
|||||||
os,
|
os,
|
||||||
network,
|
network,
|
||||||
resolution,
|
resolution,
|
||||||
|
store,
|
||||||
] = await Promise.all([
|
] = await Promise.all([
|
||||||
fetchHassioAddonsInfo(this.hass),
|
fetchHassioAddonsInfo(this.hass),
|
||||||
fetchHassioSupervisorInfo(this.hass),
|
fetchHassioSupervisorInfo(this.hass),
|
||||||
@ -131,6 +133,7 @@ export class SupervisorBaseElement extends urlSyncMixin(
|
|||||||
fetchHassioHassOsInfo(this.hass),
|
fetchHassioHassOsInfo(this.hass),
|
||||||
fetchNetworkInfo(this.hass),
|
fetchNetworkInfo(this.hass),
|
||||||
fetchHassioResolution(this.hass),
|
fetchHassioResolution(this.hass),
|
||||||
|
fetchSupervisorStore(this.hass),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
this.supervisor = {
|
this.supervisor = {
|
||||||
@ -142,6 +145,7 @@ export class SupervisorBaseElement extends urlSyncMixin(
|
|||||||
os,
|
os,
|
||||||
network,
|
network,
|
||||||
resolution,
|
resolution,
|
||||||
|
store,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.addEventListener("supervisor-update", (ev) =>
|
this.addEventListener("supervisor-update", (ev) =>
|
||||||
|
@ -10,7 +10,6 @@ import {
|
|||||||
property,
|
property,
|
||||||
TemplateResult,
|
TemplateResult,
|
||||||
} from "lit-element";
|
} from "lit-element";
|
||||||
import { fireEvent } from "../../../src/common/dom/fire_event";
|
|
||||||
import "../../../src/components/buttons/ha-progress-button";
|
import "../../../src/components/buttons/ha-progress-button";
|
||||||
import "../../../src/components/ha-button-menu";
|
import "../../../src/components/ha-button-menu";
|
||||||
import "../../../src/components/ha-card";
|
import "../../../src/components/ha-card";
|
||||||
@ -20,7 +19,7 @@ import {
|
|||||||
fetchHassioStats,
|
fetchHassioStats,
|
||||||
HassioStats,
|
HassioStats,
|
||||||
} from "../../../src/data/hassio/common";
|
} from "../../../src/data/hassio/common";
|
||||||
import { restartCore, updateCore } from "../../../src/data/supervisor/core";
|
import { restartCore } from "../../../src/data/supervisor/core";
|
||||||
import { Supervisor } from "../../../src/data/supervisor/supervisor";
|
import { Supervisor } from "../../../src/data/supervisor/supervisor";
|
||||||
import {
|
import {
|
||||||
showAlertDialog,
|
showAlertDialog,
|
||||||
@ -30,6 +29,7 @@ import { haStyle } from "../../../src/resources/styles";
|
|||||||
import { HomeAssistant } from "../../../src/types";
|
import { HomeAssistant } from "../../../src/types";
|
||||||
import { bytesToString } from "../../../src/util/bytes-to-string";
|
import { bytesToString } from "../../../src/util/bytes-to-string";
|
||||||
import "../components/supervisor-metric";
|
import "../components/supervisor-metric";
|
||||||
|
import { showDialogSupervisorCoreUpdate } from "../dialogs/core/show-dialog-core-update";
|
||||||
import { hassioStyle } from "../resources/hassio-style";
|
import { hassioStyle } from "../resources/hassio-style";
|
||||||
|
|
||||||
@customElement("hassio-core-info")
|
@customElement("hassio-core-info")
|
||||||
@ -140,42 +140,19 @@ class HassioCoreInfo extends LitElement {
|
|||||||
try {
|
try {
|
||||||
await restartCore(this.hass);
|
await restartCore(this.hass);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
if (this.hass.connection.connected) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Failed to restart Home Assistant Core",
|
title: "Failed to restart Home Assistant Core",
|
||||||
text: extractApiErrorMessage(err),
|
text: extractApiErrorMessage(err),
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} finally {
|
} finally {
|
||||||
button.progress = false;
|
button.progress = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _coreUpdate(ev: CustomEvent): Promise<void> {
|
private async _coreUpdate(): Promise<void> {
|
||||||
const button = ev.currentTarget as any;
|
showDialogSupervisorCoreUpdate(this, { core: this.supervisor.core });
|
||||||
button.progress = true;
|
|
||||||
|
|
||||||
const confirmed = await showConfirmationDialog(this, {
|
|
||||||
title: "Update Home Assistant Core",
|
|
||||||
text: `Are you sure you want to update Home Assistant Core to version ${this.supervisor.core.version_latest}?`,
|
|
||||||
confirmText: "update",
|
|
||||||
dismissText: "cancel",
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!confirmed) {
|
|
||||||
button.progress = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
await updateCore(this.hass);
|
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "core" });
|
|
||||||
} catch (err) {
|
|
||||||
showAlertDialog(this, {
|
|
||||||
title: "Failed to update Home Assistant Core",
|
|
||||||
text: extractApiErrorMessage(err),
|
|
||||||
});
|
|
||||||
} finally {
|
|
||||||
button.progress = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static get styles(): CSSResult[] {
|
static get styles(): CSSResult[] {
|
||||||
|
@ -340,13 +340,15 @@ class HassioHostInfo extends LitElement {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await updateOS(this.hass);
|
await updateOS(this.hass);
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "os" });
|
fireEvent(this, "supervisor-colllection-refresh", { colllection: "os" });
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
if (this.hass.connection.connected) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Failed to update",
|
title: "Failed to update",
|
||||||
text: extractApiErrorMessage(err),
|
text: extractApiErrorMessage(err),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
button.progress = false;
|
button.progress = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -369,7 +371,9 @@ class HassioHostInfo extends LitElement {
|
|||||||
if (hostname && hostname !== curHostname) {
|
if (hostname && hostname !== curHostname) {
|
||||||
try {
|
try {
|
||||||
await changeHostOptions(this.hass, { hostname });
|
await changeHostOptions(this.hass, { hostname });
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "host" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "host",
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Setting hostname failed",
|
title: "Setting hostname failed",
|
||||||
@ -382,7 +386,9 @@ class HassioHostInfo extends LitElement {
|
|||||||
private async _importFromUSB(): Promise<void> {
|
private async _importFromUSB(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
await configSyncOS(this.hass);
|
await configSyncOS(this.hass);
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "host" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "host",
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Failed to import from USB",
|
title: "Failed to import from USB",
|
||||||
@ -393,7 +399,9 @@ class HassioHostInfo extends LitElement {
|
|||||||
|
|
||||||
private async _loadData(): Promise<void> {
|
private async _loadData(): Promise<void> {
|
||||||
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
if (atLeastVersion(this.hass.config.version, 2021, 2, 4)) {
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "network" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "network",
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
const network = await fetchNetworkInfo(this.hass);
|
const network = await fetchNetworkInfo(this.hass);
|
||||||
fireEvent(this, "supervisor-update", { network });
|
fireEvent(this, "supervisor-update", { network });
|
||||||
|
@ -317,7 +317,9 @@ class HassioSupervisorInfo extends LitElement {
|
|||||||
|
|
||||||
private async _reloadSupervisor(): Promise<void> {
|
private async _reloadSupervisor(): Promise<void> {
|
||||||
await reloadSupervisor(this.hass);
|
await reloadSupervisor(this.hass);
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "supervisor" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "supervisor",
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _supervisorRestart(ev: CustomEvent): Promise<void> {
|
private async _supervisorRestart(ev: CustomEvent): Promise<void> {
|
||||||
@ -366,7 +368,9 @@ class HassioSupervisorInfo extends LitElement {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
await updateSupervisor(this.hass);
|
await updateSupervisor(this.hass);
|
||||||
fireEvent(this, "supervisor-store-refresh", { store: "supervisor" });
|
fireEvent(this, "supervisor-colllection-refresh", {
|
||||||
|
colllection: "supervisor",
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: "Failed to update the supervisor",
|
title: "Failed to update the supervisor",
|
||||||
|
@ -26,7 +26,9 @@
|
|||||||
"@codemirror/commands": "^0.17.2",
|
"@codemirror/commands": "^0.17.2",
|
||||||
"@codemirror/gutter": "^0.17.2",
|
"@codemirror/gutter": "^0.17.2",
|
||||||
"@codemirror/highlight": "^0.17.2",
|
"@codemirror/highlight": "^0.17.2",
|
||||||
|
"@codemirror/history": "^0.17.2",
|
||||||
"@codemirror/legacy-modes": "^0.17.1",
|
"@codemirror/legacy-modes": "^0.17.1",
|
||||||
|
"@codemirror/search": "^0.17.1",
|
||||||
"@codemirror/state": "^0.17.1",
|
"@codemirror/state": "^0.17.1",
|
||||||
"@codemirror/stream-parser": "^0.17.1",
|
"@codemirror/stream-parser": "^0.17.1",
|
||||||
"@codemirror/text": "^0.17.2",
|
"@codemirror/text": "^0.17.2",
|
||||||
|
@ -12,5 +12,5 @@ yarn install
|
|||||||
script/build_frontend
|
script/build_frontend
|
||||||
|
|
||||||
rm -rf dist
|
rm -rf dist
|
||||||
python3 setup.py sdist
|
python3 setup.py -q sdist
|
||||||
python3 -m twine upload dist/* --skip-existing
|
python3 -m twine upload dist/* --skip-existing
|
||||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="home-assistant-frontend",
|
name="home-assistant-frontend",
|
||||||
version="20210225.0",
|
version="20210226.0",
|
||||||
description="The Home Assistant frontend",
|
description="The Home Assistant frontend",
|
||||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||||
author="The Home Assistant Authors",
|
author="The Home Assistant Authors",
|
||||||
|
@ -129,21 +129,25 @@ export class HaCodeEditor extends UpdatingElement {
|
|||||||
doc: this._value,
|
doc: this._value,
|
||||||
extensions: [
|
extensions: [
|
||||||
loaded.lineNumbers(),
|
loaded.lineNumbers(),
|
||||||
|
loaded.history(),
|
||||||
|
loaded.highlightSelectionMatches(),
|
||||||
loaded.keymap.of([
|
loaded.keymap.of([
|
||||||
...loaded.defaultKeymap,
|
...loaded.defaultKeymap,
|
||||||
loaded.defaultTabBinding,
|
...loaded.searchKeymap,
|
||||||
|
...loaded.historyKeymap,
|
||||||
|
...loaded.tabKeyBindings,
|
||||||
saveKeyBinding,
|
saveKeyBinding,
|
||||||
]),
|
]),
|
||||||
loaded.tagExtension(modeTag, this._mode),
|
loaded.tagExtension(modeTag, this._mode),
|
||||||
loaded.theme,
|
loaded.theme,
|
||||||
loaded.Prec.fallback(loaded.highlightStyle),
|
loaded.Prec.fallback(loaded.highlightStyle),
|
||||||
loaded.EditorView.updateListener.of((update) =>
|
|
||||||
this._onUpdate(update)
|
|
||||||
),
|
|
||||||
loaded.tagExtension(
|
loaded.tagExtension(
|
||||||
readOnlyTag,
|
readOnlyTag,
|
||||||
loaded.EditorView.editable.of(!this.readOnly)
|
loaded.EditorView.editable.of(!this.readOnly)
|
||||||
),
|
),
|
||||||
|
loaded.EditorView.updateListener.of((update) =>
|
||||||
|
this._onUpdate(update)
|
||||||
|
),
|
||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
root: shadowRoot,
|
root: shadowRoot,
|
||||||
|
@ -4,20 +4,33 @@ import { HomeAssistant } from "../../types";
|
|||||||
import { SupervisorArch } from "../supervisor/supervisor";
|
import { SupervisorArch } from "../supervisor/supervisor";
|
||||||
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
import { hassioApiResultExtractor, HassioResponse } from "./common";
|
||||||
|
|
||||||
|
export type AddonStage = "stable" | "experimental" | "deprecated";
|
||||||
|
export type AddonAppArmour = "disable" | "default" | "profile";
|
||||||
|
export type AddonRole = "default" | "homeassistant" | "manager" | "admin";
|
||||||
|
export type AddonStartup =
|
||||||
|
| "initialize"
|
||||||
|
| "system"
|
||||||
|
| "services"
|
||||||
|
| "application"
|
||||||
|
| "once";
|
||||||
|
export type AddonState = "started" | "stopped" | null;
|
||||||
|
export type AddonRepository = "core" | "local" | string;
|
||||||
|
|
||||||
export interface HassioAddonInfo {
|
export interface HassioAddonInfo {
|
||||||
advanced: boolean;
|
advanced: boolean;
|
||||||
available: boolean;
|
available: boolean;
|
||||||
build: boolean;
|
build: boolean;
|
||||||
description: string;
|
description: string;
|
||||||
detached: boolean;
|
detached: boolean;
|
||||||
|
homeassistant: string;
|
||||||
icon: boolean;
|
icon: boolean;
|
||||||
installed: boolean;
|
installed: boolean;
|
||||||
logo: boolean;
|
logo: boolean;
|
||||||
name: string;
|
name: string;
|
||||||
repository: "core" | "local" | string;
|
repository: AddonRepository;
|
||||||
slug: string;
|
slug: string;
|
||||||
stage: "stable" | "experimental" | "deprecated";
|
stage: AddonStage;
|
||||||
state: "started" | "stopped" | null;
|
state: AddonState;
|
||||||
update_available: boolean;
|
update_available: boolean;
|
||||||
url: string | null;
|
url: string | null;
|
||||||
version_latest: string;
|
version_latest: string;
|
||||||
@ -25,7 +38,7 @@ export interface HassioAddonInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface HassioAddonDetails extends HassioAddonInfo {
|
export interface HassioAddonDetails extends HassioAddonInfo {
|
||||||
apparmor: "disable" | "default" | "profile";
|
apparmor: AddonAppArmour;
|
||||||
arch: SupervisorArch[];
|
arch: SupervisorArch[];
|
||||||
audio_input: null | string;
|
audio_input: null | string;
|
||||||
audio_output: null | string;
|
audio_output: null | string;
|
||||||
@ -43,10 +56,9 @@ export interface HassioAddonDetails extends HassioAddonInfo {
|
|||||||
full_access: boolean;
|
full_access: boolean;
|
||||||
gpio: boolean;
|
gpio: boolean;
|
||||||
hassio_api: boolean;
|
hassio_api: boolean;
|
||||||
hassio_role: "default" | "homeassistant" | "manager" | "admin";
|
hassio_role: AddonRole;
|
||||||
hostname: string;
|
hostname: string;
|
||||||
homeassistant_api: boolean;
|
homeassistant_api: boolean;
|
||||||
homeassistant: string;
|
|
||||||
host_dbus: boolean;
|
host_dbus: boolean;
|
||||||
host_ipc: boolean;
|
host_ipc: boolean;
|
||||||
host_network: boolean;
|
host_network: boolean;
|
||||||
@ -68,7 +80,7 @@ export interface HassioAddonDetails extends HassioAddonInfo {
|
|||||||
schema: HaFormSchema[] | null;
|
schema: HaFormSchema[] | null;
|
||||||
services_role: string[];
|
services_role: string[];
|
||||||
slug: string;
|
slug: string;
|
||||||
startup: "initialize" | "system" | "services" | "application" | "once";
|
startup: AddonStartup;
|
||||||
stdin: boolean;
|
stdin: boolean;
|
||||||
watchdog: null | boolean;
|
watchdog: null | boolean;
|
||||||
webui: null | string;
|
webui: null | string;
|
||||||
@ -288,7 +300,7 @@ export const updateHassioAddon = async (
|
|||||||
if (atLeastVersion(hass.config.version, 2021, 2, 4)) {
|
if (atLeastVersion(hass.config.version, 2021, 2, 4)) {
|
||||||
await hass.callWS({
|
await hass.callWS({
|
||||||
type: "supervisor/api",
|
type: "supervisor/api",
|
||||||
endpoint: `/addons/${slug}/update`,
|
endpoint: `/store/addons/${slug}/update`,
|
||||||
method: "post",
|
method: "post",
|
||||||
timeout: null,
|
timeout: null,
|
||||||
});
|
});
|
||||||
|
@ -29,9 +29,10 @@ export interface HassioFullSnapshotCreateParams {
|
|||||||
}
|
}
|
||||||
export interface HassioPartialSnapshotCreateParams {
|
export interface HassioPartialSnapshotCreateParams {
|
||||||
name: string;
|
name: string;
|
||||||
folders: string[];
|
folders?: string[];
|
||||||
addons: string[];
|
addons?: string[];
|
||||||
password?: string;
|
password?: string;
|
||||||
|
homeassistant?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchHassioSnapshots = async (
|
export const fetchHassioSnapshots = async (
|
||||||
@ -116,7 +117,7 @@ export const createHassioFullSnapshot = async (
|
|||||||
|
|
||||||
export const createHassioPartialSnapshot = async (
|
export const createHassioPartialSnapshot = async (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
data: HassioFullSnapshotCreateParams
|
data: HassioPartialSnapshotCreateParams
|
||||||
) => {
|
) => {
|
||||||
if (atLeastVersion(hass.config.version, 2021, 2, 4)) {
|
if (atLeastVersion(hass.config.version, 2021, 2, 4)) {
|
||||||
await hass.callWS({
|
await hass.callWS({
|
||||||
|
51
src/data/supervisor/store.ts
Normal file
51
src/data/supervisor/store.ts
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
import { atLeastVersion } from "../../common/config/version";
|
||||||
|
import { HomeAssistant } from "../../types";
|
||||||
|
import { AddonRepository, AddonStage } from "../hassio/addon";
|
||||||
|
import { hassioApiResultExtractor, HassioResponse } from "../hassio/common";
|
||||||
|
|
||||||
|
export interface StoreAddon {
|
||||||
|
advanced: boolean;
|
||||||
|
available: boolean;
|
||||||
|
build: boolean;
|
||||||
|
description: string;
|
||||||
|
homeassistant: string | null;
|
||||||
|
icon: boolean;
|
||||||
|
installed: boolean;
|
||||||
|
logo: boolean;
|
||||||
|
name: string;
|
||||||
|
repository: AddonRepository;
|
||||||
|
slug: string;
|
||||||
|
stage: AddonStage;
|
||||||
|
update_available: boolean;
|
||||||
|
url: string;
|
||||||
|
version: string | null;
|
||||||
|
version_latest: string;
|
||||||
|
}
|
||||||
|
interface StoreRepository {
|
||||||
|
maintainer: string;
|
||||||
|
name: string;
|
||||||
|
slug: string;
|
||||||
|
source: string;
|
||||||
|
url: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SupervisorStore {
|
||||||
|
addons: StoreAddon[];
|
||||||
|
repositories: StoreRepository[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export const fetchSupervisorStore = async (
|
||||||
|
hass: HomeAssistant
|
||||||
|
): Promise<SupervisorStore> => {
|
||||||
|
if (atLeastVersion(hass.config.version, 2021, 2, 4)) {
|
||||||
|
return await hass.callWS({
|
||||||
|
type: "supervisor/api",
|
||||||
|
endpoint: "/store",
|
||||||
|
method: "get",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return hassioApiResultExtractor(
|
||||||
|
await hass.callApi<HassioResponse<SupervisorStore>>("GET", `hassio/store`)
|
||||||
|
);
|
||||||
|
};
|
@ -10,13 +10,14 @@ import {
|
|||||||
HassioInfo,
|
HassioInfo,
|
||||||
HassioSupervisorInfo,
|
HassioSupervisorInfo,
|
||||||
} from "../hassio/supervisor";
|
} from "../hassio/supervisor";
|
||||||
|
import { SupervisorStore } from "./store";
|
||||||
|
|
||||||
export const supervisorWSbaseCommand = {
|
export const supervisorWSbaseCommand = {
|
||||||
type: "supervisor/api",
|
type: "supervisor/api",
|
||||||
method: "GET",
|
method: "GET",
|
||||||
};
|
};
|
||||||
|
|
||||||
export const supervisorStore = {
|
export const supervisorCollection = {
|
||||||
host: "/host/info",
|
host: "/host/info",
|
||||||
supervisor: "/supervisor/info",
|
supervisor: "/supervisor/info",
|
||||||
info: "/info",
|
info: "/info",
|
||||||
@ -25,6 +26,7 @@ export const supervisorStore = {
|
|||||||
resolution: "/resolution/info",
|
resolution: "/resolution/info",
|
||||||
os: "/os/info",
|
os: "/os/info",
|
||||||
addon: "/addons",
|
addon: "/addons",
|
||||||
|
store: "/store",
|
||||||
};
|
};
|
||||||
|
|
||||||
export type SupervisorArch = "armhf" | "armv7" | "aarch64" | "i386" | "amd64";
|
export type SupervisorArch = "armhf" | "armv7" | "aarch64" | "i386" | "amd64";
|
||||||
@ -36,7 +38,8 @@ export type SupervisorObject =
|
|||||||
| "network"
|
| "network"
|
||||||
| "resolution"
|
| "resolution"
|
||||||
| "os"
|
| "os"
|
||||||
| "addon";
|
| "addon"
|
||||||
|
| "store";
|
||||||
|
|
||||||
interface supervisorApiRequest {
|
interface supervisorApiRequest {
|
||||||
endpoint: string;
|
endpoint: string;
|
||||||
@ -61,6 +64,7 @@ export interface Supervisor {
|
|||||||
resolution: HassioResolution;
|
resolution: HassioResolution;
|
||||||
os: HassioHassOSInfo;
|
os: HassioHassOSInfo;
|
||||||
addon: HassioAddonsInfo;
|
addon: HassioAddonsInfo;
|
||||||
|
store: SupervisorStore;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const supervisorApiWsRequest = <T>(
|
export const supervisorApiWsRequest = <T>(
|
||||||
@ -75,17 +79,13 @@ async function processEvent(
|
|||||||
event: SupervisorEvent,
|
event: SupervisorEvent,
|
||||||
key: string
|
key: string
|
||||||
) {
|
) {
|
||||||
if (
|
if (event.event !== "supervisor-update" || event.update_key !== key) {
|
||||||
!event.data ||
|
|
||||||
event.data.event !== "supervisor-update" ||
|
|
||||||
event.data.update_key !== key
|
|
||||||
) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Object.keys(event.data.data).length === 0) {
|
if (Object.keys(event.data).length === 0) {
|
||||||
const data = await supervisorApiWsRequest<any>(conn, {
|
const data = await supervisorApiWsRequest<any>(conn, {
|
||||||
endpoint: supervisorStore[key],
|
endpoint: supervisorCollection[key],
|
||||||
});
|
});
|
||||||
store.setState(data);
|
store.setState(data);
|
||||||
return;
|
return;
|
||||||
@ -98,7 +98,7 @@ async function processEvent(
|
|||||||
|
|
||||||
store.setState({
|
store.setState({
|
||||||
...state,
|
...state,
|
||||||
...event.data.data,
|
...event.data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,9 +107,11 @@ const subscribeSupervisorEventUpdates = (
|
|||||||
store: Store<unknown>,
|
store: Store<unknown>,
|
||||||
key: string
|
key: string
|
||||||
) =>
|
) =>
|
||||||
conn.subscribeEvents(
|
conn.subscribeMessage(
|
||||||
(event) => processEvent(conn, store, event as SupervisorEvent, key),
|
(event) => processEvent(conn, store, event as SupervisorEvent, key),
|
||||||
"supervisor_event"
|
{
|
||||||
|
type: "supervisor/subscribe",
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
export const getSupervisorEventCollection = (
|
export const getSupervisorEventCollection = (
|
||||||
|
@ -29,11 +29,7 @@ class HaConfigNavigation extends LitElement {
|
|||||||
${this.pages.map((page) =>
|
${this.pages.map((page) =>
|
||||||
canShowPage(this.hass, page)
|
canShowPage(this.hass, page)
|
||||||
? html`
|
? html`
|
||||||
<a
|
<a href=${page.path} aria-role="option" tabindex="-1">
|
||||||
href=${`/config/${page.component}`}
|
|
||||||
aria-role="option"
|
|
||||||
tabindex="-1"
|
|
||||||
>
|
|
||||||
<paper-icon-item>
|
<paper-icon-item>
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
.path=${page.iconPath}
|
.path=${page.iconPath}
|
||||||
|
@ -111,11 +111,10 @@ export const configSections: { [name: string]: PageNavigation[] } = {
|
|||||||
],
|
],
|
||||||
experimental: [
|
experimental: [
|
||||||
{
|
{
|
||||||
component: "tags",
|
component: "tag",
|
||||||
path: "/config/tags",
|
path: "/config/tags",
|
||||||
translationKey: "ui.panel.config.tags.caption",
|
translationKey: "ui.panel.config.tag.caption",
|
||||||
iconPath: mdiNfcVariant,
|
iconPath: mdiNfcVariant,
|
||||||
core: true,
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
lovelace: [
|
lovelace: [
|
||||||
|
@ -72,7 +72,7 @@ class DialogTagDetail extends LitElement
|
|||||||
this.hass,
|
this.hass,
|
||||||
this._params.entry
|
this._params.entry
|
||||||
? this._params.entry.name || this._params.entry.id
|
? this._params.entry.name || this._params.entry.id
|
||||||
: this.hass!.localize("ui.panel.config.tags.detail.new_tag")
|
: this.hass!.localize("ui.panel.config.tag.detail.new_tag")
|
||||||
)}
|
)}
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
@ -80,7 +80,7 @@ class DialogTagDetail extends LitElement
|
|||||||
<div class="form">
|
<div class="form">
|
||||||
${this._params.entry
|
${this._params.entry
|
||||||
? html`${this.hass!.localize(
|
? html`${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.tag_id"
|
"ui.panel.config.tag.detail.tag_id"
|
||||||
)}:
|
)}:
|
||||||
${this._params.entry.id}`
|
${this._params.entry.id}`
|
||||||
: ""}
|
: ""}
|
||||||
@ -89,11 +89,9 @@ class DialogTagDetail extends LitElement
|
|||||||
.value=${this._name}
|
.value=${this._name}
|
||||||
.configValue=${"name"}
|
.configValue=${"name"}
|
||||||
@value-changed=${this._valueChanged}
|
@value-changed=${this._valueChanged}
|
||||||
.label="${this.hass!.localize(
|
.label="${this.hass!.localize("ui.panel.config.tag.detail.name")}"
|
||||||
"ui.panel.config.tags.detail.name"
|
|
||||||
)}"
|
|
||||||
.errorMessage="${this.hass!.localize(
|
.errorMessage="${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.required_error_msg"
|
"ui.panel.config.tag.detail.required_error_msg"
|
||||||
)}"
|
)}"
|
||||||
required
|
required
|
||||||
auto-validate
|
auto-validate
|
||||||
@ -104,10 +102,10 @@ class DialogTagDetail extends LitElement
|
|||||||
.configValue=${"id"}
|
.configValue=${"id"}
|
||||||
@value-changed=${this._valueChanged}
|
@value-changed=${this._valueChanged}
|
||||||
.label=${this.hass!.localize(
|
.label=${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.tag_id"
|
"ui.panel.config.tag.detail.tag_id"
|
||||||
)}
|
)}
|
||||||
.placeholder=${this.hass!.localize(
|
.placeholder=${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.tag_id_placeholder"
|
"ui.panel.config.tag.detail.tag_id_placeholder"
|
||||||
)}
|
)}
|
||||||
></paper-input>`
|
></paper-input>`
|
||||||
: ""}
|
: ""}
|
||||||
@ -117,14 +115,14 @@ class DialogTagDetail extends LitElement
|
|||||||
<div>
|
<div>
|
||||||
<p>
|
<p>
|
||||||
${this.hass!.localize(
|
${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.usage",
|
"ui.panel.config.tag.detail.usage",
|
||||||
"companion_link",
|
"companion_link",
|
||||||
html`<a
|
html`<a
|
||||||
href="https://companion.home-assistant.io/"
|
href="https://companion.home-assistant.io/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>${this.hass!.localize(
|
>${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.companion_apps"
|
"ui.panel.config.tag.detail.companion_apps"
|
||||||
)}</a
|
)}</a
|
||||||
>`
|
>`
|
||||||
)}
|
)}
|
||||||
@ -151,7 +149,7 @@ class DialogTagDetail extends LitElement
|
|||||||
@click="${this._deleteEntry}"
|
@click="${this._deleteEntry}"
|
||||||
.disabled=${this._submitting}
|
.disabled=${this._submitting}
|
||||||
>
|
>
|
||||||
${this.hass!.localize("ui.panel.config.tags.detail.delete")}
|
${this.hass!.localize("ui.panel.config.tag.detail.delete")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
`
|
`
|
||||||
: html``}
|
: html``}
|
||||||
@ -161,8 +159,8 @@ class DialogTagDetail extends LitElement
|
|||||||
.disabled=${this._submitting}
|
.disabled=${this._submitting}
|
||||||
>
|
>
|
||||||
${this._params.entry
|
${this._params.entry
|
||||||
? this.hass!.localize("ui.panel.config.tags.detail.update")
|
? this.hass!.localize("ui.panel.config.tag.detail.update")
|
||||||
: this.hass!.localize("ui.panel.config.tags.detail.create")}
|
: this.hass!.localize("ui.panel.config.tag.detail.create")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
${this._params.openWrite && !this._params.entry
|
${this._params.openWrite && !this._params.entry
|
||||||
? html` <mwc-button
|
? html` <mwc-button
|
||||||
@ -171,7 +169,7 @@ class DialogTagDetail extends LitElement
|
|||||||
.disabled=${this._submitting}
|
.disabled=${this._submitting}
|
||||||
>
|
>
|
||||||
${this.hass!.localize(
|
${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.create_and_write"
|
"ui.panel.config.tag.detail.create_and_write"
|
||||||
)}
|
)}
|
||||||
</mwc-button>`
|
</mwc-button>`
|
||||||
: ""}
|
: ""}
|
||||||
|
@ -74,7 +74,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
template: (_icon, tag) => html`<tag-image .tag=${tag}></tag-image>`,
|
template: (_icon, tag) => html`<tag-image .tag=${tag}></tag-image>`,
|
||||||
},
|
},
|
||||||
display_name: {
|
display_name: {
|
||||||
title: this.hass.localize("ui.panel.config.tags.headers.name"),
|
title: this.hass.localize("ui.panel.config.tag.headers.name"),
|
||||||
sortable: true,
|
sortable: true,
|
||||||
filterable: true,
|
filterable: true,
|
||||||
grows: true,
|
grows: true,
|
||||||
@ -86,16 +86,14 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.datetime=${tag.last_scanned_datetime}
|
.datetime=${tag.last_scanned_datetime}
|
||||||
></ha-relative-time>`
|
></ha-relative-time>`
|
||||||
: this.hass.localize("ui.panel.config.tags.never_scanned")}
|
: this.hass.localize("ui.panel.config.tag.never_scanned")}
|
||||||
</div>`
|
</div>`
|
||||||
: ""}`,
|
: ""}`,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
if (!narrow) {
|
if (!narrow) {
|
||||||
columns.last_scanned_datetime = {
|
columns.last_scanned_datetime = {
|
||||||
title: this.hass.localize(
|
title: this.hass.localize("ui.panel.config.tag.headers.last_scanned"),
|
||||||
"ui.panel.config.tags.headers.last_scanned"
|
|
||||||
),
|
|
||||||
sortable: true,
|
sortable: true,
|
||||||
direction: "desc",
|
direction: "desc",
|
||||||
width: "20%",
|
width: "20%",
|
||||||
@ -105,7 +103,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.datetime=${last_scanned_datetime}
|
.datetime=${last_scanned_datetime}
|
||||||
></ha-relative-time>`
|
></ha-relative-time>`
|
||||||
: this.hass.localize("ui.panel.config.tags.never_scanned")}
|
: this.hass.localize("ui.panel.config.tag.never_scanned")}
|
||||||
`,
|
`,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -117,7 +115,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
.tag=${tag}
|
.tag=${tag}
|
||||||
@click=${(ev: Event) =>
|
@click=${(ev: Event) =>
|
||||||
this._openWrite((ev.currentTarget as any).tag)}
|
this._openWrite((ev.currentTarget as any).tag)}
|
||||||
title=${this.hass.localize("ui.panel.config.tags.write")}
|
title=${this.hass.localize("ui.panel.config.tag.write")}
|
||||||
>
|
>
|
||||||
<ha-svg-icon .path=${mdiContentDuplicate}></ha-svg-icon>
|
<ha-svg-icon .path=${mdiContentDuplicate}></ha-svg-icon>
|
||||||
</mwc-icon-button>`,
|
</mwc-icon-button>`,
|
||||||
@ -130,7 +128,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
.tag=${tag}
|
.tag=${tag}
|
||||||
@click=${(ev: Event) =>
|
@click=${(ev: Event) =>
|
||||||
this._createAutomation((ev.currentTarget as any).tag)}
|
this._createAutomation((ev.currentTarget as any).tag)}
|
||||||
title=${this.hass.localize("ui.panel.config.tags.create_automation")}
|
title=${this.hass.localize("ui.panel.config.tag.create_automation")}
|
||||||
>
|
>
|
||||||
<ha-svg-icon .path=${mdiRobot}></ha-svg-icon>
|
<ha-svg-icon .path=${mdiRobot}></ha-svg-icon>
|
||||||
</mwc-icon-button>`,
|
</mwc-icon-button>`,
|
||||||
@ -142,7 +140,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
.tag=${tag}
|
.tag=${tag}
|
||||||
@click=${(ev: Event) =>
|
@click=${(ev: Event) =>
|
||||||
this._openDialog((ev.currentTarget as any).tag)}
|
this._openDialog((ev.currentTarget as any).tag)}
|
||||||
title=${this.hass.localize("ui.panel.config.tags.edit")}
|
title=${this.hass.localize("ui.panel.config.tag.edit")}
|
||||||
>
|
>
|
||||||
<ha-svg-icon .path=${mdiCog}></ha-svg-icon>
|
<ha-svg-icon .path=${mdiCog}></ha-svg-icon>
|
||||||
</mwc-icon-button>`,
|
</mwc-icon-button>`,
|
||||||
@ -201,7 +199,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
this.hass.language
|
this.hass.language
|
||||||
)}
|
)}
|
||||||
.data=${this._data(this._tags)}
|
.data=${this._data(this._tags)}
|
||||||
.noDataText=${this.hass.localize("ui.panel.config.tags.no_tags")}
|
.noDataText=${this.hass.localize("ui.panel.config.tag.no_tags")}
|
||||||
hasFab
|
hasFab
|
||||||
>
|
>
|
||||||
<mwc-icon-button slot="toolbar-icon" @click=${this._showHelp}>
|
<mwc-icon-button slot="toolbar-icon" @click=${this._showHelp}>
|
||||||
@ -209,7 +207,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
</mwc-icon-button>
|
</mwc-icon-button>
|
||||||
<ha-fab
|
<ha-fab
|
||||||
slot="fab"
|
slot="fab"
|
||||||
.label=${this.hass.localize("ui.panel.config.tags.add_tag")}
|
.label=${this.hass.localize("ui.panel.config.tag.add_tag")}
|
||||||
extended
|
extended
|
||||||
@click=${this._addTag}
|
@click=${this._addTag}
|
||||||
>
|
>
|
||||||
@ -221,18 +219,18 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
|
|
||||||
private _showHelp() {
|
private _showHelp() {
|
||||||
showAlertDialog(this, {
|
showAlertDialog(this, {
|
||||||
title: this.hass.localize("ui.panel.config.tags.caption"),
|
title: this.hass.localize("ui.panel.config.tag.caption"),
|
||||||
text: html`
|
text: html`
|
||||||
<p>
|
<p>
|
||||||
${this.hass.localize(
|
${this.hass.localize(
|
||||||
"ui.panel.config.tags.detail.usage",
|
"ui.panel.config.tag.detail.usage",
|
||||||
"companion_link",
|
"companion_link",
|
||||||
html`<a
|
html`<a
|
||||||
href="https://companion.home-assistant.io/"
|
href="https://companion.home-assistant.io/"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>${this.hass!.localize(
|
>${this.hass!.localize(
|
||||||
"ui.panel.config.tags.detail.companion_apps"
|
"ui.panel.config.tag.detail.companion_apps"
|
||||||
)}</a
|
)}</a
|
||||||
>`
|
>`
|
||||||
)}
|
)}
|
||||||
@ -243,7 +241,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer"
|
rel="noreferrer"
|
||||||
>
|
>
|
||||||
${this.hass.localize("ui.panel.config.tags.learn_more")}
|
${this.hass.localize("ui.panel.config.tag.learn_more")}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
`,
|
`,
|
||||||
@ -264,7 +262,7 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
private _createAutomation(tag: Tag) {
|
private _createAutomation(tag: Tag) {
|
||||||
const data = {
|
const data = {
|
||||||
alias: this.hass.localize(
|
alias: this.hass.localize(
|
||||||
"ui.panel.config.tags.automation_title",
|
"ui.panel.config.tag.automation_title",
|
||||||
"name",
|
"name",
|
||||||
tag.name || tag.id
|
tag.name || tag.id
|
||||||
),
|
),
|
||||||
@ -312,9 +310,9 @@ export class HaConfigTags extends SubscribeMixin(LitElement) {
|
|||||||
private async _removeTag(selectedTag: Tag) {
|
private async _removeTag(selectedTag: Tag) {
|
||||||
if (
|
if (
|
||||||
!(await showConfirmationDialog(this, {
|
!(await showConfirmationDialog(this, {
|
||||||
title: this.hass!.localize("ui.panel.config.tags.confirm_remove_title"),
|
title: this.hass!.localize("ui.panel.config.tag.confirm_remove_title"),
|
||||||
text: this.hass.localize(
|
text: this.hass.localize(
|
||||||
"ui.panel.config.tags.confirm_remove",
|
"ui.panel.config.tag.confirm_remove",
|
||||||
"tag",
|
"tag",
|
||||||
selectedTag.name || selectedTag.id
|
selectedTag.name || selectedTag.id
|
||||||
),
|
),
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { undoDepth } from "@codemirror/history";
|
||||||
import "@material/mwc-button";
|
import "@material/mwc-button";
|
||||||
import "@polymer/app-layout/app-header/app-header";
|
import "@polymer/app-layout/app-header/app-header";
|
||||||
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
import "@polymer/app-layout/app-toolbar/app-toolbar";
|
||||||
@ -148,11 +149,13 @@ class LovelaceFullConfigEditor extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _yamlChanged() {
|
private _yamlChanged() {
|
||||||
this._changed = true;
|
this._changed = undoDepth(this.yamlEditor.codemirror!.state) > 0;
|
||||||
if (!window.onbeforeunload) {
|
if (this._changed && !window.onbeforeunload) {
|
||||||
window.onbeforeunload = () => {
|
window.onbeforeunload = () => {
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
} else if (!this._changed && window.onbeforeunload) {
|
||||||
|
window.onbeforeunload = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,24 +3,35 @@ import { EditorView as CMEditorView } from "@codemirror/view";
|
|||||||
import { StreamLanguage } from "@codemirror/stream-parser";
|
import { StreamLanguage } from "@codemirror/stream-parser";
|
||||||
import { jinja2 } from "@codemirror/legacy-modes/mode/jinja2";
|
import { jinja2 } from "@codemirror/legacy-modes/mode/jinja2";
|
||||||
import { yaml } from "@codemirror/legacy-modes/mode/yaml";
|
import { yaml } from "@codemirror/legacy-modes/mode/yaml";
|
||||||
|
import { indentLess, indentMore } from "@codemirror/commands";
|
||||||
|
|
||||||
export { keymap } from "@codemirror/view";
|
export { keymap } from "@codemirror/view";
|
||||||
export { CMEditorView as EditorView };
|
export { CMEditorView as EditorView };
|
||||||
export { EditorState, Prec, tagExtension } from "@codemirror/state";
|
export { EditorState, Prec, tagExtension } from "@codemirror/state";
|
||||||
export { defaultKeymap, defaultTabBinding } from "@codemirror/commands";
|
export { defaultKeymap } from "@codemirror/commands";
|
||||||
export { lineNumbers } from "@codemirror/gutter";
|
export { lineNumbers } from "@codemirror/gutter";
|
||||||
|
export { searchKeymap, highlightSelectionMatches } from "@codemirror/search";
|
||||||
|
export { history, historyKeymap } from "@codemirror/history";
|
||||||
|
|
||||||
export const langs = {
|
export const langs = {
|
||||||
jinja2: StreamLanguage.define(jinja2),
|
jinja2: StreamLanguage.define(jinja2),
|
||||||
yaml: StreamLanguage.define(yaml),
|
yaml: StreamLanguage.define(yaml),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const tabKeyBindings = [
|
||||||
|
{ key: "Tab", run: indentMore },
|
||||||
|
{
|
||||||
|
key: "Shift-Tab",
|
||||||
|
run: indentLess,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
export const theme = CMEditorView.theme({
|
export const theme = CMEditorView.theme({
|
||||||
$: {
|
$: {
|
||||||
color: "var(--primary-text-color)",
|
color: "var(--primary-text-color)",
|
||||||
backgroundColor:
|
backgroundColor:
|
||||||
"var(--code-editor-background-color, var(--card-background-color))",
|
"var(--code-editor-background-color, var(--card-background-color))",
|
||||||
"& ::selection": { backgroundColor: "rgba(var(--rgb-primary-color), 0.2)" },
|
"& ::selection": { backgroundColor: "rgba(var(--rgb-primary-color), 0.3)" },
|
||||||
height: "var(--code-mirror-height, auto)",
|
height: "var(--code-mirror-height, auto)",
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -30,7 +41,57 @@ export const theme = CMEditorView.theme({
|
|||||||
|
|
||||||
"$$focused $cursor": { borderLeftColor: "#var(--secondary-text-color)" },
|
"$$focused $cursor": { borderLeftColor: "#var(--secondary-text-color)" },
|
||||||
"$$focused $selectionBackground, $selectionBackground": {
|
"$$focused $selectionBackground, $selectionBackground": {
|
||||||
backgroundColor: "rgba(var(--rgb-primary-color), 0.2)",
|
backgroundColor: "rgba(var(--rgb-primary-color), 0.3)",
|
||||||
|
},
|
||||||
|
|
||||||
|
$panels: {
|
||||||
|
backgroundColor: "var(--primary-background-color)",
|
||||||
|
color: "var(--primary-text-color)",
|
||||||
|
},
|
||||||
|
"$panels.top": { borderBottom: "1px solid var(--divider-color)" },
|
||||||
|
"$panels.bottom": { borderTop: "1px solid var(--divider-color)" },
|
||||||
|
|
||||||
|
"$panel.search": {
|
||||||
|
padding: "2px 6px 4px",
|
||||||
|
position: "relative",
|
||||||
|
"& [name=close]": {
|
||||||
|
position: "absolute",
|
||||||
|
top: "0",
|
||||||
|
right: "4px",
|
||||||
|
backgroundColor: "inherit",
|
||||||
|
border: "none",
|
||||||
|
font: "inherit",
|
||||||
|
padding: "4px",
|
||||||
|
margin: 0,
|
||||||
|
outline: "none",
|
||||||
|
fontSize: "150%",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
$button: {
|
||||||
|
border: "1px solid var(--primary-color)",
|
||||||
|
padding: "8px",
|
||||||
|
textTransform: "uppercase",
|
||||||
|
margin: "4px",
|
||||||
|
background: "none",
|
||||||
|
},
|
||||||
|
|
||||||
|
$textfield: {
|
||||||
|
backgroundColor: "var(--secondary-background-color)",
|
||||||
|
padding: "8px",
|
||||||
|
},
|
||||||
|
|
||||||
|
$selectionMatch: {
|
||||||
|
backgroundColor: "rgba(var(--rgb-primary-color), 0.1)",
|
||||||
|
},
|
||||||
|
|
||||||
|
$searchMatch: {
|
||||||
|
backgroundColor: "rgba(var(--rgb-accent-color), .2)",
|
||||||
|
outline: "1px solid rgba(var(--rgb-accent-color), .4)",
|
||||||
|
},
|
||||||
|
"$searchMatch.selected": {
|
||||||
|
backgroundColor: "rgba(var(--rgb-accent-color), .4)",
|
||||||
|
outline: "1px solid var(--accent-color)",
|
||||||
},
|
},
|
||||||
|
|
||||||
$gutters: {
|
$gutters: {
|
||||||
@ -40,10 +101,12 @@ export const theme = CMEditorView.theme({
|
|||||||
border: "none",
|
border: "none",
|
||||||
borderRight:
|
borderRight:
|
||||||
"1px solid var(--paper-input-container-color, var(--secondary-text-color))",
|
"1px solid var(--paper-input-container-color, var(--secondary-text-color))",
|
||||||
|
paddingRight: "1px",
|
||||||
},
|
},
|
||||||
"$$focused $gutters": {
|
"$$focused $gutters": {
|
||||||
borderRight:
|
borderRight:
|
||||||
"2px solid var(--paper-input-container-focus-color, var(--primary-color))",
|
"2px solid var(--paper-input-container-focus-color, var(--primary-color))",
|
||||||
|
paddingRight: "0",
|
||||||
},
|
},
|
||||||
"$gutterElementags.lineNumber": { color: "inherit" },
|
"$gutterElementags.lineNumber": { color: "inherit" },
|
||||||
});
|
});
|
||||||
|
@ -556,7 +556,7 @@
|
|||||||
"areas": "[%key:ui::panel::config::areas::caption%]",
|
"areas": "[%key:ui::panel::config::areas::caption%]",
|
||||||
"scene": "[%key:ui::panel::config::scene::caption%]",
|
"scene": "[%key:ui::panel::config::scene::caption%]",
|
||||||
"helpers": "[%key:ui::panel::config::helpers::caption%]",
|
"helpers": "[%key:ui::panel::config::helpers::caption%]",
|
||||||
"tags": "[%key:ui::panel::config::tags::caption%]",
|
"tag": "[%key:ui::panel::config::tag::caption%]",
|
||||||
"person": "[%key:ui::panel::config::person::caption%]",
|
"person": "[%key:ui::panel::config::person::caption%]",
|
||||||
"devices": "[%key:ui::panel::config::devices::caption%]",
|
"devices": "[%key:ui::panel::config::devices::caption%]",
|
||||||
"entities": "[%key:ui::panel::config::entities::caption%]",
|
"entities": "[%key:ui::panel::config::entities::caption%]",
|
||||||
@ -883,7 +883,7 @@
|
|||||||
"confirmation_text": "All devices in this area will become unassigned."
|
"confirmation_text": "All devices in this area will become unassigned."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"caption": "Tags",
|
"caption": "Tags",
|
||||||
"description": "Trigger automations when a NFC tag, QR code, etc. is scanned",
|
"description": "Trigger automations when a NFC tag, QR code, etc. is scanned",
|
||||||
"learn_more": "Learn more about tags",
|
"learn_more": "Learn more about tags",
|
||||||
|
@ -1578,7 +1578,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"description": "Задействайте автоматизации при сканиране на NFC етикет, QR код и др",
|
"description": "Задействайте автоматизации при сканиране на NFC етикет, QR код и др",
|
||||||
"detail": {
|
"detail": {
|
||||||
"create": "Създаване",
|
"create": "Създаване",
|
||||||
|
@ -2139,7 +2139,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Afegeix etiqueta",
|
"add_tag": "Afegeix etiqueta",
|
||||||
"automation_title": "S'escanegi l'etiqueta {name}",
|
"automation_title": "S'escanegi l'etiqueta {name}",
|
||||||
"caption": "Etiquetes",
|
"caption": "Etiquetes",
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Naposledy spuštěno",
|
"last_triggered": "Naposledy spuštěno",
|
||||||
"trigger": "Spustit"
|
"trigger": "Spustit akce"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Obrázek není k dispozici"
|
"not_available": "Obrázek není k dispozici"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Zrušit",
|
"cancel": "Zrušit",
|
||||||
"cancel_multiple": "Zrušit {number}"
|
"cancel_multiple": "Zrušit {number}",
|
||||||
|
"run": "Spustit"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Spustit"
|
"run": "Spustit"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Ano"
|
"yes": "Ano"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Doplněk",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "Načítání doplňků skončilo chybou.",
|
||||||
|
"title": "Chyba při načítání doplňků"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "Nebyl nalezen žádný Supervisor, takže doplňky nelze načíst.",
|
||||||
|
"title": "Žádný Supervisor"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Přidat",
|
"add": "Přidat",
|
||||||
@ -468,7 +482,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"service-control": {
|
"service-control": {
|
||||||
"service_data": "Data služby"
|
"required": "Toto pole je povinné",
|
||||||
|
"service_data": "Data služby",
|
||||||
|
"target": "Cíle",
|
||||||
|
"target_description": "Co by tato služba měla používat jako cílové oblasti, zařízení nebo entity."
|
||||||
},
|
},
|
||||||
"service-picker": {
|
"service-picker": {
|
||||||
"service": "Služba"
|
"service": "Služba"
|
||||||
@ -478,7 +495,7 @@
|
|||||||
"add_device_id": "Vyberte zařízení",
|
"add_device_id": "Vyberte zařízení",
|
||||||
"add_entity_id": "Vyberte entitu",
|
"add_entity_id": "Vyberte entitu",
|
||||||
"expand_area_id": "Rozdělit tuto oblast na jednotlivá zařízení a entity, které obsahuje. Po rozdělení nebudou zařízení a entity aktualizovány, pokud dojde ke změnám oblasti.",
|
"expand_area_id": "Rozdělit tuto oblast na jednotlivá zařízení a entity, které obsahuje. Po rozdělení nebudou zařízení a entity aktualizovány, pokud dojde ke změnám oblasti.",
|
||||||
"expand_device_id": "Rozdělit toto zařízení na jednotlivé entity. Po rozdělení nebudou entity aktualizovány, pokud dojde ke změnám zařízení.",
|
"expand_device_id": "Rozdělit toto zařízení na jednotlivé entity, které obsahuje. Po rozdělení nebudou entity aktualizovány, pokud dojde ke změnám zařízení.",
|
||||||
"remove_area_id": "Odebrat oblast",
|
"remove_area_id": "Odebrat oblast",
|
||||||
"remove_device_id": "Odebrat zařízení",
|
"remove_device_id": "Odebrat zařízení",
|
||||||
"remove_entity_id": "Odebrat entitu"
|
"remove_entity_id": "Odebrat entitu"
|
||||||
@ -1482,6 +1499,7 @@
|
|||||||
"cant_edit": "Můžete upravovat pouze položky, které jsou vytvořeny v uživatelském rozhraní.",
|
"cant_edit": "Můžete upravovat pouze položky, které jsou vytvořeny v uživatelském rozhraní.",
|
||||||
"caption": "Zařízení",
|
"caption": "Zařízení",
|
||||||
"confirm_delete": "Opravdu chcete toto zařízení odstranit?",
|
"confirm_delete": "Opravdu chcete toto zařízení odstranit?",
|
||||||
|
"confirm_disable_config_entry": "Pro položku konfigurace {entry_name} nejsou k dispozici žádná další zařízení, chcete položku konfigurace místo toho zakázat?",
|
||||||
"confirm_rename_entity_ids": "Chcete také přejmenovat ID entit?",
|
"confirm_rename_entity_ids": "Chcete také přejmenovat ID entit?",
|
||||||
"confirm_rename_entity_ids_warning": "Žádná nastavení (např. automatizace, skripty, scény, ovládací panely), která tyto entity aktuálně používá, nebudou změněna! Vše budete muset aktualizovat sami, aby se používaly nová ID entit!",
|
"confirm_rename_entity_ids_warning": "Žádná nastavení (např. automatizace, skripty, scény, ovládací panely), která tyto entity aktuálně používá, nebudou změněna! Vše budete muset aktualizovat sami, aby se používaly nová ID entit!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1594,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Vymazat",
|
"clear": "Vymazat",
|
||||||
"filtering_by": "Filtrování podle"
|
"filtering_by": "Filtrování podle",
|
||||||
|
"show": "Zobrazit"
|
||||||
},
|
},
|
||||||
"header": "Nastavení Home Assistant",
|
"header": "Nastavení Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1665,7 +1684,19 @@
|
|||||||
"delete_confirm": "Opravdu chcete odstranit tuto integraci?",
|
"delete_confirm": "Opravdu chcete odstranit tuto integraci?",
|
||||||
"device_unavailable": "Zařízení není dostupné",
|
"device_unavailable": "Zařízení není dostupné",
|
||||||
"devices": "{count} {count, plural,\n one {zařízení}\n other {zařízení}\n}",
|
"devices": "{count} {count, plural,\n one {zařízení}\n other {zařízení}\n}",
|
||||||
|
"disable_restart_confirm": "Restartujte Home Assistant pro dokončení odstranění této integrace",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "Opravdu chcete zakázat tuto položku konfigurace? Její zařízení a entity budou zakázány.",
|
||||||
|
"disabled": "Zakázáno",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "zařízením",
|
||||||
|
"integration": "integrací",
|
||||||
|
"user": "uživatelem"
|
||||||
|
},
|
||||||
|
"disabled_cause": "Zakázáno {cause}"
|
||||||
|
},
|
||||||
"documentation": "Dokumentace",
|
"documentation": "Dokumentace",
|
||||||
|
"enable_restart_confirm": "Restartujte Home Assistant pro dokončení přidání této integrace",
|
||||||
"entities": "{count} {count, plural,\n one {entita}\n other {entit}\n}",
|
"entities": "{count} {count, plural,\n one {entita}\n other {entit}\n}",
|
||||||
"entity_unavailable": "Entita není dostupná",
|
"entity_unavailable": "Entita není dostupná",
|
||||||
"firmware": "Firmware: {version}",
|
"firmware": "Firmware: {version}",
|
||||||
@ -1685,8 +1716,10 @@
|
|||||||
"config_flow": {
|
"config_flow": {
|
||||||
"aborted": "Přerušeno",
|
"aborted": "Přerušeno",
|
||||||
"close": "Zavřít",
|
"close": "Zavřít",
|
||||||
|
"could_not_load": "Konfiguraci nelze načíst",
|
||||||
"created_config": "Bylo vytvořeno nastavení pro {name}.",
|
"created_config": "Bylo vytvořeno nastavení pro {name}.",
|
||||||
"dismiss": "Zavřít dialog",
|
"dismiss": "Zavřít dialog",
|
||||||
|
"error": "Chyba",
|
||||||
"error_saving_area": "Chyba při ukládání oblasti: {error}",
|
"error_saving_area": "Chyba při ukládání oblasti: {error}",
|
||||||
"external_step": {
|
"external_step": {
|
||||||
"description": "K dokončení tohoto kroku je nutné navštívit externí webovou stránku.",
|
"description": "K dokončení tohoto kroku je nutné navštívit externí webovou stránku.",
|
||||||
@ -1695,6 +1728,10 @@
|
|||||||
"finish": "Dokončit",
|
"finish": "Dokončit",
|
||||||
"loading_first_time": "Počkejte prosím, než bude integrace nainstalována.",
|
"loading_first_time": "Počkejte prosím, než bude integrace nainstalována.",
|
||||||
"not_all_required_fields": "Nejsou vyplněna všechna povinná pole.",
|
"not_all_required_fields": "Nejsou vyplněna všechna povinná pole.",
|
||||||
|
"pick_flow_step": {
|
||||||
|
"new_flow": "Ne, nastavit další instanci integrace {integration}",
|
||||||
|
"title": "Objevili jsme tyto integrace, chcete je nastavit?"
|
||||||
|
},
|
||||||
"submit": "Odeslat"
|
"submit": "Odeslat"
|
||||||
},
|
},
|
||||||
"configure": "Nastavit",
|
"configure": "Nastavit",
|
||||||
@ -1702,6 +1739,11 @@
|
|||||||
"confirm_new": "Chcete nastavit {integration}?",
|
"confirm_new": "Chcete nastavit {integration}?",
|
||||||
"description": "Správa integrací a jejich služeb, zařízení, ...",
|
"description": "Správa integrací a jejich služeb, zařízení, ...",
|
||||||
"details": "Podrobnosti o integraci",
|
"details": "Podrobnosti o integraci",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} zakázáno",
|
||||||
|
"hide_disabled": "Skrýt zakázané integrace",
|
||||||
|
"show_disabled": "Zobrazit zakázané integrace"
|
||||||
|
},
|
||||||
"discovered": "Objeveno",
|
"discovered": "Objeveno",
|
||||||
"home_assistant_website": "stránky Home Assistant",
|
"home_assistant_website": "stránky Home Assistant",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2130,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Přidat štítek",
|
"add_tag": "Přidat štítek",
|
||||||
"automation_title": "Štítek {name} je naskenován",
|
"automation_title": "Štítek {name} je naskenován",
|
||||||
"caption": "Štítky",
|
"caption": "Štítky",
|
||||||
@ -2511,17 +2553,23 @@
|
|||||||
"type": "Typ události"
|
"type": "Typ události"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
"accepts_target": "Tato služba přijímá cíl, například: `entity_id: light.bed_light`",
|
||||||
|
"all_parameters": "Všechny dostupné parametry",
|
||||||
"call_service": "Zavolat službu",
|
"call_service": "Zavolat službu",
|
||||||
"column_description": "Popis",
|
"column_description": "Popis",
|
||||||
"column_example": "Příklad",
|
"column_example": "Příklad",
|
||||||
"column_parameter": "Parametr",
|
"column_parameter": "Parametr",
|
||||||
"description": "Vývojářský nástroj pro služby umožňuje zavolat jakoukoli dostupnou službu v Home Assistant",
|
"description": "Vývojářský nástroj pro služby umožňuje zavolat jakoukoli dostupnou službu v Home Assistant",
|
||||||
"fill_example_data": "Vyplnit ukázková data",
|
"fill_example_data": "Vyplnit ukázková data",
|
||||||
"title": "Služby"
|
"title": "Služby",
|
||||||
|
"ui_mode": "Přejít do režimu uživatelského rozhraní",
|
||||||
|
"yaml_mode": "Přejít do režimu YAML",
|
||||||
|
"yaml_parameters": "Parametry jsou dostupné pouze v režimu YAML"
|
||||||
},
|
},
|
||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "Entita je povinné pole",
|
"alert_entity_field": "Entita je povinné pole",
|
||||||
"attributes": "Atributy",
|
"attributes": "Atributy",
|
||||||
|
"copy_id": "Zkopírovat ID do schránky",
|
||||||
"current_entities": "Současné entity",
|
"current_entities": "Současné entity",
|
||||||
"description1": "Nastavte stav zařízení v Home Assistant.",
|
"description1": "Nastavte stav zařízení v Home Assistant.",
|
||||||
"description2": "Stav skutečného zařízení se nezmění.",
|
"description2": "Stav skutečného zařízení se nezmění.",
|
||||||
@ -3048,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Toto přesměrování není vaší instancí Home Assistant podporováno. Potřebujete integraci \"{integration}\", aby šlo použít toto přesměrování.",
|
"component_not_loaded": "Toto přesměrování není vaší instancí Home Assistant podporováno. Potřebujete integraci \"{integration}\", aby šlo použít toto přesměrování.",
|
||||||
|
"documentation": "dokumentace",
|
||||||
"error": "Nastala neznámá chyba",
|
"error": "Nastala neznámá chyba",
|
||||||
"faq_link": "Časté dotazy týkající se My Home Assistant",
|
"faq_link": "Časté dotazy týkající se My Home Assistant",
|
||||||
|
"no_supervisor": "Toto přesměrování není podporováno vaší instalací Home Assistant. Potřebuje buď operační systém Home Assistant, nebo metodu instalace Home Assistant Supervised. Další informace naleznete na {docs_link}.",
|
||||||
"not_supported": "Toto přesměrování není vaší instancí Home Assistant podporováno. Zkontrolujte {link} pro podporovaná přesměrování a verzi, ve které byla zavedena."
|
"not_supported": "Toto přesměrování není vaší instancí Home Assistant podporováno. Zkontrolujte {link} pro podporovaná přesměrování a verzi, ve které byla zavedena."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -806,7 +806,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"detail": {
|
"detail": {
|
||||||
"companion_apps": "apiau cydymaith",
|
"companion_apps": "apiau cydymaith",
|
||||||
"usage": "Gall tag sbarduno awtomeiddiad wrth ei sganio, gallwch ddefnyddio tagiau NFC, codau QR neu unrhyw fath arall o dag. Defnyddiwch ein {companion_link} i ysgrifennu'r tag hwn i dag NFC rhaglenadwy neu i greu cod QR isod."
|
"usage": "Gall tag sbarduno awtomeiddiad wrth ei sganio, gallwch ddefnyddio tagiau NFC, codau QR neu unrhyw fath arall o dag. Defnyddiwch ein {companion_link} i ysgrifennu'r tag hwn i dag NFC rhaglenadwy neu i greu cod QR isod."
|
||||||
|
@ -2089,7 +2089,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Tilføj tag",
|
"add_tag": "Tilføj tag",
|
||||||
"automation_title": "Tag {name} blev scannet",
|
"automation_title": "Tag {name} blev scannet",
|
||||||
"caption": "Tags",
|
"caption": "Tags",
|
||||||
|
@ -2126,7 +2126,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Tag hinzufügen",
|
"add_tag": "Tag hinzufügen",
|
||||||
"automation_title": "NFC Tag {name} ist gescannt",
|
"automation_title": "NFC Tag {name} ist gescannt",
|
||||||
"caption": "NFC Tags",
|
"caption": "NFC Tags",
|
||||||
|
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Ακύρωση",
|
"cancel": "Ακύρωση",
|
||||||
"cancel_multiple": "Ακύρωση {number}"
|
"cancel_multiple": "Ακύρωση {number}",
|
||||||
|
"run": "Εκτέλεση"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Εκτέλεση"
|
"run": "Εκτέλεση"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Ναι"
|
"yes": "Ναι"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Πρόσθετο",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "Σφάλμα κατά την ανάκτηση των προσθέτων",
|
||||||
|
"title": "Σφάλμα κατά την ανάκτηση των προσθέτων"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "Δεν βρέθηκε επόπτης, επομένως δεν ήταν δυνατή η φόρτωση των προσθέτων.",
|
||||||
|
"title": "Χωρίς επόπτη"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Προσθήκη",
|
"add": "Προσθήκη",
|
||||||
@ -1485,6 +1499,7 @@
|
|||||||
"cant_edit": "Μπορείτε να επεξεργαστείτε μόνο στοιχεία που έχουν δημιουργηθεί στο UI.",
|
"cant_edit": "Μπορείτε να επεξεργαστείτε μόνο στοιχεία που έχουν δημιουργηθεί στο UI.",
|
||||||
"caption": "Συσκευές",
|
"caption": "Συσκευές",
|
||||||
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη συσκευή;",
|
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη συσκευή;",
|
||||||
|
"confirm_disable_config_entry": "Δεν υπάρχουν άλλες συσκευές για την καταχώριση {entry_name} , θέλετε να απενεργοποιήσετε την καταχώριση {entry_name} ;",
|
||||||
"confirm_rename_entity_ids": "Θέλετε επίσης να μετονομάσετε τα αναγνωριστικά των οντοτήτων σας;",
|
"confirm_rename_entity_ids": "Θέλετε επίσης να μετονομάσετε τα αναγνωριστικά των οντοτήτων σας;",
|
||||||
"confirm_rename_entity_ids_warning": "Αυτό δεν θα αλλάξει καμία διαμόρφωση (όπως αυτοματισμοί, σενάρια, σκηνές, πίνακες ελέγχου) που χρησιμοποιεί αυτήν τη στιγμή αυτές τις οντότητες! Θα πρέπει να τα ενημερώσετε μόνοι σας για να χρησιμοποιήσετε τα νέα αναγνωριστικά οντοτήτων!",
|
"confirm_rename_entity_ids_warning": "Αυτό δεν θα αλλάξει καμία διαμόρφωση (όπως αυτοματισμοί, σενάρια, σκηνές, πίνακες ελέγχου) που χρησιμοποιεί αυτήν τη στιγμή αυτές τις οντότητες! Θα πρέπει να τα ενημερώσετε μόνοι σας για να χρησιμοποιήσετε τα νέα αναγνωριστικά οντοτήτων!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1597,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Εκκαθάριση",
|
"clear": "Εκκαθάριση",
|
||||||
"filtering_by": "Φιλτράρισμα κατά"
|
"filtering_by": "Φιλτράρισμα κατά",
|
||||||
|
"show": "Εμφάνισε"
|
||||||
},
|
},
|
||||||
"header": "Διαμόρφωση του Home Assistant",
|
"header": "Διαμόρφωση του Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1668,7 +1684,19 @@
|
|||||||
"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}",
|
||||||
|
"disable_restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την απενεργοποίηση αυτής της ενσωμάτωσης",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "Είστε βέβαιοι ότι θέλετε να απενεργοποιήσετε αυτήν την καταχώριση διαμόρφωσης; Οι συσκευές και οι οντότητές του θα απενεργοποιηθούν.",
|
||||||
|
"disabled": "Απενεργοποιημένο",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "συσκευή",
|
||||||
|
"integration": "ενσωμάτωση",
|
||||||
|
"user": "Χρήστης"
|
||||||
|
},
|
||||||
|
"disabled_cause": "Απενεργοποιήθηκε από {cause}."
|
||||||
|
},
|
||||||
"documentation": "Τεκμηρίωση",
|
"documentation": "Τεκμηρίωση",
|
||||||
|
"enable_restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την ενεργοποίηση αυτής της ενσωμάτωσης",
|
||||||
"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}",
|
||||||
@ -1711,6 +1739,11 @@
|
|||||||
"confirm_new": "Θέλετε να ρυθμίσετε το {integration};",
|
"confirm_new": "Θέλετε να ρυθμίσετε το {integration};",
|
||||||
"description": "Διαχείριση ενοποιήσεων με υπηρεσίες, συσκευές, ...",
|
"description": "Διαχείριση ενοποιήσεων με υπηρεσίες, συσκευές, ...",
|
||||||
"details": "Λεπτομέρειες ενσωμάτωσης",
|
"details": "Λεπτομέρειες ενσωμάτωσης",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} απενεργοποιημένο",
|
||||||
|
"hide_disabled": "Απόκρυψη απενεργοποιημένων ενσωματώσεων",
|
||||||
|
"show_disabled": "Εμφάνιση απενεργοποιημένων ενσωματώσεων"
|
||||||
|
},
|
||||||
"discovered": "Ανακαλύφθηκε",
|
"discovered": "Ανακαλύφθηκε",
|
||||||
"home_assistant_website": "Ιστότοπος του Home Assistant.",
|
"home_assistant_website": "Ιστότοπος του Home Assistant.",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2139,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Προσθήκη ετικέτας",
|
"add_tag": "Προσθήκη ετικέτας",
|
||||||
"automation_title": "Η ετικέτα {name} σαρώθηκε",
|
"automation_title": "Η ετικέτα {name} σαρώθηκε",
|
||||||
"caption": "Ετικέτες",
|
"caption": "Ετικέτες",
|
||||||
@ -2536,6 +2569,7 @@
|
|||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "Η οντότητα είναι ένα υποχρεωτικό πεδίο",
|
"alert_entity_field": "Η οντότητα είναι ένα υποχρεωτικό πεδίο",
|
||||||
"attributes": "Χαρακτηριστικά",
|
"attributes": "Χαρακτηριστικά",
|
||||||
|
"copy_id": "Αντιγραφή αναγνωριστικού στο πρόχειρο",
|
||||||
"current_entities": "Τρέχουσες οντότητες",
|
"current_entities": "Τρέχουσες οντότητες",
|
||||||
"description1": "Ορίστε την αναπαράσταση μιας συσκευής μέσα στο Home Assistant",
|
"description1": "Ορίστε την αναπαράσταση μιας συσκευής μέσα στο Home Assistant",
|
||||||
"description2": "Αυτό δε θα επικοινωνεί με την τρέχουσα συσκευή.",
|
"description2": "Αυτό δε θα επικοινωνεί με την τρέχουσα συσκευή.",
|
||||||
@ -3062,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Αυτή η ανακατεύθυνση δεν υποστηρίζεται από την παρουσία του Home Assistant. Χρειάζεστε την ενσωμάτωση {ενσωμάτωση} για να χρησιμοποιήσετε αυτήν την ανακατεύθυνση.",
|
"component_not_loaded": "Αυτή η ανακατεύθυνση δεν υποστηρίζεται από την παρουσία του Home Assistant. Χρειάζεστε την ενσωμάτωση {ενσωμάτωση} για να χρησιμοποιήσετε αυτήν την ανακατεύθυνση.",
|
||||||
|
"documentation": "Τεκμηρίωση",
|
||||||
"error": "Παρουσιάστηκε άγνωστο σφάλμα",
|
"error": "Παρουσιάστηκε άγνωστο σφάλμα",
|
||||||
"faq_link": "Συνήθεις ερωτήσεις για το Home Assistant",
|
"faq_link": "Συνήθεις ερωτήσεις για το Home Assistant",
|
||||||
|
"no_supervisor": "Αυτή η ανακατεύθυνση δεν υποστηρίζεται από την εγκατάσταση του Home Assistant σας. Χρειάζεται είτε το λειτουργικό σύστημα του Home Assistant ή τη μέθοδο της εποπτευόμενης εγκατάστασης του Home Assistant. Για περισσότερες πληροφορίες, ανατρέξτε στο {docs_link} .",
|
||||||
"not_supported": "Αυτή η ανακατεύθυνση δεν υποστηρίζεται από τo Home Assistant σας. Ελέγξτε το {link} για τις υποστηριζόμενες ανακατευθύνσεις και την έκδοση που εισήγαγαν."
|
"not_supported": "Αυτή η ανακατεύθυνση δεν υποστηρίζεται από τo Home Assistant σας. Ελέγξτε το {link} για τις υποστηριζόμενες ανακατευθύνσεις και την έκδοση που εισήγαγαν."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -2172,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Add tag",
|
"add_tag": "Add tag",
|
||||||
"automation_title": "Tag {name} is scanned",
|
"automation_title": "Tag {name} is scanned",
|
||||||
"caption": "Tags",
|
"caption": "Tags",
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
"climate": {
|
"climate": {
|
||||||
"fan_mode": {
|
"fan_mode": {
|
||||||
"auto": "Automatico",
|
"auto": "Automatico",
|
||||||
"off": "Desactivado",
|
"off": "Apagado",
|
||||||
"on": "Encendido"
|
"on": "Encendido"
|
||||||
},
|
},
|
||||||
"hvac_action": {
|
"hvac_action": {
|
||||||
@ -44,8 +44,8 @@
|
|||||||
"preset_mode": {
|
"preset_mode": {
|
||||||
"activity": "Actividad",
|
"activity": "Actividad",
|
||||||
"away": "Fuera de casa",
|
"away": "Fuera de casa",
|
||||||
"boost": "Aumentar",
|
"boost": "Ráfaga",
|
||||||
"comfort": "Comodidad",
|
"comfort": "Confort",
|
||||||
"eco": "Eco",
|
"eco": "Eco",
|
||||||
"home": "En Casa",
|
"home": "En Casa",
|
||||||
"none": "Ninguno",
|
"none": "Ninguno",
|
||||||
@ -110,9 +110,9 @@
|
|||||||
},
|
},
|
||||||
"card": {
|
"card": {
|
||||||
"alarm_control_panel": {
|
"alarm_control_panel": {
|
||||||
"arm_away": "Proteger fuera de casa",
|
"arm_away": "Activar fuera de casa",
|
||||||
"arm_custom_bypass": "Bypass personalizado",
|
"arm_custom_bypass": "Bypass personalizado",
|
||||||
"arm_home": "Proteger en casa",
|
"arm_home": "Activar en casa",
|
||||||
"arm_night": "Armado nocturno",
|
"arm_night": "Armado nocturno",
|
||||||
"clear_code": "Limpiar",
|
"clear_code": "Limpiar",
|
||||||
"code": "Código",
|
"code": "Código",
|
||||||
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Última activación",
|
"last_triggered": "Última activación",
|
||||||
"trigger": "Ejecutar"
|
"trigger": "Ejecutar acciones"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Imagen no disponible"
|
"not_available": "Imagen no disponible"
|
||||||
@ -153,7 +153,7 @@
|
|||||||
},
|
},
|
||||||
"cover": {
|
"cover": {
|
||||||
"position": "Posición",
|
"position": "Posición",
|
||||||
"tilt_position": "Posición de inclinación"
|
"tilt_position": "Posición de la lona"
|
||||||
},
|
},
|
||||||
"fan": {
|
"fan": {
|
||||||
"direction": "Dirección",
|
"direction": "Dirección",
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"cancel_multiple": "Cancelar {number}"
|
"cancel_multiple": "Cancelar {number}",
|
||||||
|
"run": "Ejecutar"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Ejecutar"
|
"run": "Ejecutar"
|
||||||
@ -216,7 +217,7 @@
|
|||||||
"vacuum": {
|
"vacuum": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"resume_cleaning": "Reanudar la limpieza",
|
"resume_cleaning": "Reanudar la limpieza",
|
||||||
"return_to_base": "Regresar al dock",
|
"return_to_base": "Regresar a la base",
|
||||||
"start_cleaning": "Comenzar a limpiar",
|
"start_cleaning": "Comenzar a limpiar",
|
||||||
"turn_off": "Apagar",
|
"turn_off": "Apagar",
|
||||||
"turn_on": "Encender"
|
"turn_on": "Encender"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Sí"
|
"yes": "Sí"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Complemento",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "La obtención de complementos devolvió un error.",
|
||||||
|
"title": "Error al obtener complementos"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "No se encontró ningún supervisor, por lo que no se pudieron cargar los complementos.",
|
||||||
|
"title": "Sin supervisor"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Agregar",
|
"add": "Agregar",
|
||||||
@ -355,16 +369,21 @@
|
|||||||
"no_history_found": "No se encontró historial de estado."
|
"no_history_found": "No se encontró historial de estado."
|
||||||
},
|
},
|
||||||
"logbook": {
|
"logbook": {
|
||||||
|
"by": "por",
|
||||||
|
"by_service": "por servicio",
|
||||||
"entries_not_found": "No se encontraron entradas en el libro de registro.",
|
"entries_not_found": "No se encontraron entradas en el libro de registro.",
|
||||||
"messages": {
|
"messages": {
|
||||||
"became_unavailable": "dejó de estar disponible",
|
"became_unavailable": "dejó de estar disponible",
|
||||||
"changed_to_state": "cambiado a {state}",
|
"changed_to_state": "cambiado a {state}",
|
||||||
"cleared_device_class": "despejado (no se detecta {device_class})",
|
"cleared_device_class": "despejado (no se detecta {device_class})",
|
||||||
"detected_device_class": "detectado {device_class}",
|
"detected_device_class": "detectado {device_class}",
|
||||||
|
"rose": "salió",
|
||||||
|
"set": "se ocultó",
|
||||||
"turned_off": "apagado",
|
"turned_off": "apagado",
|
||||||
"turned_on": "encendido",
|
"turned_on": "encendido",
|
||||||
"was_at_home": "fue detectado en casa",
|
"was_at_home": "fue detectado en casa",
|
||||||
"was_at_state": "estaba en {state}",
|
"was_at_state": "estaba en {state}",
|
||||||
|
"was_away": "se detectó ausente",
|
||||||
"was_closed": "fue cerrado",
|
"was_closed": "fue cerrado",
|
||||||
"was_connected": "fue conectado",
|
"was_connected": "fue conectado",
|
||||||
"was_disconnected": "fue desconectado",
|
"was_disconnected": "fue desconectado",
|
||||||
@ -405,6 +424,8 @@
|
|||||||
"video": "Video"
|
"video": "Video"
|
||||||
},
|
},
|
||||||
"documentation": "documentación",
|
"documentation": "documentación",
|
||||||
|
"learn_adding_local_media": "Obtenga más información sobre cómo agregar medios en {documentation}.",
|
||||||
|
"local_media_files": "Coloque sus archivos de video, audio e imagen en el directorio de medios para poder explorarlos y reproducirlos en el navegador o en reproductores multimedia compatibles.",
|
||||||
"media_browsing_error": "Error de navegación de medios",
|
"media_browsing_error": "Error de navegación de medios",
|
||||||
"media_not_supported": "El Reproductor multimedia no es compatible con este tipo de medios",
|
"media_not_supported": "El Reproductor multimedia no es compatible con este tipo de medios",
|
||||||
"media_player": "Reproductor multimedia",
|
"media_player": "Reproductor multimedia",
|
||||||
@ -515,9 +536,9 @@
|
|||||||
"enabled_restart_confirm": "Reinicie Home Assistant para terminar de habilitar las entidades",
|
"enabled_restart_confirm": "Reinicie Home Assistant para terminar de habilitar las entidades",
|
||||||
"entity_id": "Identificación de la entidad",
|
"entity_id": "Identificación de la entidad",
|
||||||
"follow_device_area": "Siga el área del dispositivo",
|
"follow_device_area": "Siga el área del dispositivo",
|
||||||
"icon": "Sobrescribir icono",
|
"icon": "Ícono",
|
||||||
"icon_error": "Los iconos deben estar en el formato 'prefijo:nombre del icono', por ejemplo, 'mdi: home'",
|
"icon_error": "Los iconos deben estar en el formato 'prefijo:nombre del icono', por ejemplo, 'mdi: home'",
|
||||||
"name": "Sustituir nombre",
|
"name": "Nombre",
|
||||||
"note": "Nota: esto podría no funcionar todavía con todas las integraciones.",
|
"note": "Nota: esto podría no funcionar todavía con todas las integraciones.",
|
||||||
"open_device_settings": "Abrir la configuración del dispositivo",
|
"open_device_settings": "Abrir la configuración del dispositivo",
|
||||||
"unavailable": "Esta entidad no está disponible actualmente.",
|
"unavailable": "Esta entidad no está disponible actualmente.",
|
||||||
@ -525,7 +546,7 @@
|
|||||||
},
|
},
|
||||||
"faq": "documentación",
|
"faq": "documentación",
|
||||||
"info_customize": "Puede sobrescribir algunos atributos en la sección {customize_link} .",
|
"info_customize": "Puede sobrescribir algunos atributos en la sección {customize_link} .",
|
||||||
"no_unique_id": "Esta entidad no tiene un identificador única, por lo tanto, su configuración no se puede administrar desde la interfaz de usuario.",
|
"no_unique_id": "Esta entidad (\"{entity_id}\") no tiene un identificador único y por lo tanto su configuración no se puede administrar desde la interfaz de usuario. Para más detalles, consulte en {faq_link}",
|
||||||
"related": "Relacionado",
|
"related": "Relacionado",
|
||||||
"settings": "Configuraciones"
|
"settings": "Configuraciones"
|
||||||
},
|
},
|
||||||
@ -533,7 +554,7 @@
|
|||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"close": "cerrar",
|
"close": "cerrar",
|
||||||
"default_confirmation_title": "¿Está seguro?",
|
"default_confirmation_title": "¿Está seguro?",
|
||||||
"ok": "De acuerdo"
|
"ok": "OK"
|
||||||
},
|
},
|
||||||
"helper_settings": {
|
"helper_settings": {
|
||||||
"counter": {
|
"counter": {
|
||||||
@ -589,7 +610,9 @@
|
|||||||
"more_info_control": {
|
"more_info_control": {
|
||||||
"cover": {
|
"cover": {
|
||||||
"close_cover": "Cerrar cubierta",
|
"close_cover": "Cerrar cubierta",
|
||||||
|
"close_tile_cover": "Cerrar cubierta de lona",
|
||||||
"open_cover": "Abrir cubierta",
|
"open_cover": "Abrir cubierta",
|
||||||
|
"open_tilt_cover": "Abrir cubierta de lona",
|
||||||
"stop_cover": "Evitar que la cubierta se mueva"
|
"stop_cover": "Evitar que la cubierta se mueva"
|
||||||
},
|
},
|
||||||
"details": "Detalles",
|
"details": "Detalles",
|
||||||
@ -810,7 +833,7 @@
|
|||||||
"confirmation_text": "Todos los dispositivos en esta área quedarán sin asignar.",
|
"confirmation_text": "Todos los dispositivos en esta área quedarán sin asignar.",
|
||||||
"confirmation_title": "¿Está seguro de que desea eliminar esta área?"
|
"confirmation_title": "¿Está seguro de que desea eliminar esta área?"
|
||||||
},
|
},
|
||||||
"description": "Gestione las áreas de su casa.",
|
"description": "Agrupar dispositivos y entidades en áreas",
|
||||||
"editor": {
|
"editor": {
|
||||||
"area_id": "Identificador del área",
|
"area_id": "Identificador del área",
|
||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
@ -832,7 +855,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"caption": "Automatizaciones",
|
"caption": "Automatizaciones",
|
||||||
"description": "Crear y editar automatizaciones",
|
"description": "Crea reglas de comportamiento personalizadas para tu hogar",
|
||||||
"dialog_new": {
|
"dialog_new": {
|
||||||
"blueprint": {
|
"blueprint": {
|
||||||
"use_blueprint": "Utilizar un plano"
|
"use_blueprint": "Utilizar un plano"
|
||||||
@ -851,7 +874,7 @@
|
|||||||
"actions": {
|
"actions": {
|
||||||
"add": "Agregar acción",
|
"add": "Agregar acción",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"delete_confirm": "¿Seguro que quieres borrar?",
|
"delete_confirm": "¿Está seguro que quiere eliminar?",
|
||||||
"duplicate": "Duplicar",
|
"duplicate": "Duplicar",
|
||||||
"header": "Acciones",
|
"header": "Acciones",
|
||||||
"introduction": "Las acciones son lo que hará Home Assistant cuando se active la automatización.",
|
"introduction": "Las acciones son lo que hará Home Assistant cuando se active la automatización.",
|
||||||
@ -862,6 +885,9 @@
|
|||||||
"choose": {
|
"choose": {
|
||||||
"add_option": "Agregar opción",
|
"add_option": "Agregar opción",
|
||||||
"conditions": "Condiciones",
|
"conditions": "Condiciones",
|
||||||
|
"default": "Acciones predeterminadas",
|
||||||
|
"label": "Elegir",
|
||||||
|
"option": "Opción {number}",
|
||||||
"remove_option": "Eliminar opción",
|
"remove_option": "Eliminar opción",
|
||||||
"sequence": "Acciones"
|
"sequence": "Acciones"
|
||||||
},
|
},
|
||||||
@ -885,17 +911,22 @@
|
|||||||
"event": {
|
"event": {
|
||||||
"event": "Evento",
|
"event": "Evento",
|
||||||
"label": "Disparar evento",
|
"label": "Disparar evento",
|
||||||
"service_data": "Datos"
|
"service_data": "Datos del servicio"
|
||||||
},
|
},
|
||||||
"repeat": {
|
"repeat": {
|
||||||
"label": "Repetir",
|
"label": "Repetir",
|
||||||
"sequence": "Acciones",
|
"sequence": "Acciones",
|
||||||
"type_select": "Tipo de repetición",
|
"type_select": "Tipo de repetición",
|
||||||
"type": {
|
"type": {
|
||||||
|
"count": {
|
||||||
|
"label": "Cantidad"
|
||||||
|
},
|
||||||
"until": {
|
"until": {
|
||||||
|
"conditions": "Hasta que las condiciones",
|
||||||
"label": "Hasta"
|
"label": "Hasta"
|
||||||
},
|
},
|
||||||
"while": {
|
"while": {
|
||||||
|
"conditions": "Mientras que las condiciones",
|
||||||
"label": "Mientras"
|
"label": "Mientras"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -904,7 +935,7 @@
|
|||||||
"label": "Activar escena"
|
"label": "Activar escena"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"label": "Llamar servico"
|
"label": "Llamar al servicio"
|
||||||
},
|
},
|
||||||
"wait_for_trigger": {
|
"wait_for_trigger": {
|
||||||
"continue_timeout": "Continuar cuando el tiempo venza",
|
"continue_timeout": "Continuar cuando el tiempo venza",
|
||||||
@ -930,7 +961,7 @@
|
|||||||
"conditions": {
|
"conditions": {
|
||||||
"add": "Agregar condición",
|
"add": "Agregar condición",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"delete_confirm": "¿Seguro que quieres borrar?",
|
"delete_confirm": "¿Está seguro que quiere eliminar?",
|
||||||
"duplicate": "Duplicar",
|
"duplicate": "Duplicar",
|
||||||
"header": "Condiciones",
|
"header": "Condiciones",
|
||||||
"introduction": "Las condiciones son opcionales y evitarán una mayor ejecución a menos que se cumplan todas las condiciones.",
|
"introduction": "Las condiciones son opcionales y evitarán una mayor ejecución a menos que se cumplan todas las condiciones.",
|
||||||
@ -1061,10 +1092,10 @@
|
|||||||
"label": "Evento:"
|
"label": "Evento:"
|
||||||
},
|
},
|
||||||
"geo_location": {
|
"geo_location": {
|
||||||
"enter": "Entrar",
|
"enter": "Al ingresar",
|
||||||
"event": "Evento:",
|
"event": "Evento:",
|
||||||
"label": "Geolocalización",
|
"label": "Geolocalización",
|
||||||
"leave": "Salir",
|
"leave": "Al salir",
|
||||||
"source": "Fuente",
|
"source": "Fuente",
|
||||||
"zone": "Zona"
|
"zone": "Zona"
|
||||||
},
|
},
|
||||||
@ -1095,7 +1126,7 @@
|
|||||||
"sun": {
|
"sun": {
|
||||||
"event": "Evento:",
|
"event": "Evento:",
|
||||||
"label": "Sol",
|
"label": "Sol",
|
||||||
"offset": "Compensar (opcional)",
|
"offset": "Compensación (opcional)",
|
||||||
"sunrise": "Salida del sol",
|
"sunrise": "Salida del sol",
|
||||||
"sunset": "Puesta de sol"
|
"sunset": "Puesta de sol"
|
||||||
},
|
},
|
||||||
@ -1123,11 +1154,11 @@
|
|||||||
"webhook_id": "ID de Webhook"
|
"webhook_id": "ID de Webhook"
|
||||||
},
|
},
|
||||||
"zone": {
|
"zone": {
|
||||||
"enter": "Entrar",
|
"enter": "Al ingresar",
|
||||||
"entity": "Entidad con ubicación",
|
"entity": "Entidad con ubicación",
|
||||||
"event": "Evento:",
|
"event": "Evento:",
|
||||||
"label": "Zona",
|
"label": "Zona",
|
||||||
"leave": "Salir",
|
"leave": "Al salir",
|
||||||
"zone": "Zona"
|
"zone": "Zona"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1217,7 +1248,7 @@
|
|||||||
"info_state_reporting": "Si habilita los informes de estado, Home Assistant enviará todos los cambios de estado de las entidades expuestas a Amazon. Esto le permite ver siempre los últimos estados en la aplicación Alexa y usar los cambios de estado para crear rutinas.",
|
"info_state_reporting": "Si habilita los informes de estado, Home Assistant enviará todos los cambios de estado de las entidades expuestas a Amazon. Esto le permite ver siempre los últimos estados en la aplicación Alexa y usar los cambios de estado para crear rutinas.",
|
||||||
"manage_entities": "Administrar entidades",
|
"manage_entities": "Administrar entidades",
|
||||||
"state_reporting_error": "No se puede {enable_disable} informar el estado.",
|
"state_reporting_error": "No se puede {enable_disable} informar el estado.",
|
||||||
"sync_entities": "Sincronizar entidades",
|
"sync_entities": "Sincronizar entidades con Amazon",
|
||||||
"sync_entities_error": "Error al sincronizar entidades:",
|
"sync_entities_error": "Error al sincronizar entidades:",
|
||||||
"title": "Alexa"
|
"title": "Alexa"
|
||||||
},
|
},
|
||||||
@ -1299,18 +1330,18 @@
|
|||||||
"not_exposed_entities": "Entidades no expuestas",
|
"not_exposed_entities": "Entidades no expuestas",
|
||||||
"title": "Alexa"
|
"title": "Alexa"
|
||||||
},
|
},
|
||||||
"description_features": "Control fuera de casa, integre con Alexa y con Google Assistant.",
|
"description_features": "Controle su hogar cuando esté fuera e integre con Alexa y el Asistente de Google",
|
||||||
"description_login": "Ha iniciado sesión como {email}",
|
"description_login": "Ha iniciado sesión como {email}",
|
||||||
"description_not_login": "No ha iniciado sesión",
|
"description_not_login": "No ha iniciado sesión",
|
||||||
"dialog_certificate": {
|
"dialog_certificate": {
|
||||||
"certificate_expiration_date": "Fecha de vencimiento del certificado",
|
"certificate_expiration_date": "Fecha de vencimiento del certificado:",
|
||||||
"certificate_information": "Información del certificado",
|
"certificate_information": "Información del certificado",
|
||||||
"close": "Cerrar",
|
"close": "Cerrar",
|
||||||
"fingerprint": "Huella digital del certificado:",
|
"fingerprint": "Huella digital del certificado:",
|
||||||
"will_be_auto_renewed": "Se renovará automáticamente"
|
"will_be_auto_renewed": "Se renovará automáticamente"
|
||||||
},
|
},
|
||||||
"dialog_cloudhook": {
|
"dialog_cloudhook": {
|
||||||
"available_at": "El webhook está disponible en la siguiente url:",
|
"available_at": "El webhook está disponible en la siguiente URL:",
|
||||||
"close": "Cerrar",
|
"close": "Cerrar",
|
||||||
"confirm_disable": "¿Está seguro de que desea deshabilitar este webhook?",
|
"confirm_disable": "¿Está seguro de que desea deshabilitar este webhook?",
|
||||||
"copied_to_clipboard": "Copiado al portapapeles",
|
"copied_to_clipboard": "Copiado al portapapeles",
|
||||||
@ -1394,7 +1425,7 @@
|
|||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"caption": "General",
|
"caption": "General",
|
||||||
"description": "Cambiar la configuración general de Home Assistant",
|
"description": "Sistema de unidades, ubicación, zona horaria y otros parámetros generales",
|
||||||
"section": {
|
"section": {
|
||||||
"core": {
|
"core": {
|
||||||
"core_config": {
|
"core_config": {
|
||||||
@ -1468,8 +1499,9 @@
|
|||||||
"cant_edit": "Solo puede editar elementos que se crean en la interfaz de usuario.",
|
"cant_edit": "Solo puede editar elementos que se crean en la interfaz de usuario.",
|
||||||
"caption": "Dispositivos",
|
"caption": "Dispositivos",
|
||||||
"confirm_delete": "¿Está seguro de que desea eliminar este dispositivo?",
|
"confirm_delete": "¿Está seguro de que desea eliminar este dispositivo?",
|
||||||
"confirm_rename_entity_ids": "¿También desea cambiar el nombre de la identificación de la entidad de sus entidades?",
|
"confirm_disable_config_entry": "No hay más dispositivos para la entrada de configuración {entry_name} , ¿quiere deshabilitarla?",
|
||||||
"confirm_rename_entity_ids_warning": "Esto no cambiará ninguna configuración (como automatizaciones, scripts, escenas, Lovelace) que esté usando actualmente estas entidades, tendrás que actualizarlas tú mismo.",
|
"confirm_rename_entity_ids": "¿También desea cambiar el nombre de los ID de entidad de las entidades?",
|
||||||
|
"confirm_rename_entity_ids_warning": "Esto no cambiará ninguna configuración (como automatizaciones, scripts, escenas, tableros) que esté usando actualmente estas entidades! Deberá actualizarlas usted mismo para poder utilizar los nuevos ID de entidad!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
"area": "Área",
|
"area": "Área",
|
||||||
"battery": "Batería",
|
"battery": "Batería",
|
||||||
@ -1480,7 +1512,7 @@
|
|||||||
"no_devices": "Sin dispositivos"
|
"no_devices": "Sin dispositivos"
|
||||||
},
|
},
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"description": "Administrar dispositivos conectados",
|
"description": "Administrar dispositivos configurados",
|
||||||
"device_info": "Información del dispositivo",
|
"device_info": "Información del dispositivo",
|
||||||
"device_not_found": "Dispositivo no encontrado.",
|
"device_not_found": "Dispositivo no encontrado.",
|
||||||
"disabled": "Deshabilitado",
|
"disabled": "Deshabilitado",
|
||||||
@ -1504,6 +1536,7 @@
|
|||||||
"picker": {
|
"picker": {
|
||||||
"filter": {
|
"filter": {
|
||||||
"filter": "Filtrar",
|
"filter": "Filtrar",
|
||||||
|
"hidden_devices": "{number} oculto/s {number, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
||||||
"show_all": "Mostrar todo",
|
"show_all": "Mostrar todo",
|
||||||
"show_disabled": "Mostrar los dispositivos deshabilitados"
|
"show_disabled": "Mostrar los dispositivos deshabilitados"
|
||||||
},
|
},
|
||||||
@ -1534,15 +1567,16 @@
|
|||||||
"disable_selected": {
|
"disable_selected": {
|
||||||
"button": "Deshabilitar selección",
|
"button": "Deshabilitar selección",
|
||||||
"confirm_text": "Las entidades deshabilitadas no serán agregadas a Home Assistant.",
|
"confirm_text": "Las entidades deshabilitadas no serán agregadas a Home Assistant.",
|
||||||
"confirm_title": "¿Desea deshabilitar {number} entidades?"
|
"confirm_title": "¿Desea deshabilitar {number} entidad/es?"
|
||||||
},
|
},
|
||||||
"enable_selected": {
|
"enable_selected": {
|
||||||
"button": "Habilitar selección",
|
"button": "Habilitar selección",
|
||||||
"confirm_text": "Esto los hará disponibles en Home Assistant nuevamente si ahora están deshabilitados.",
|
"confirm_text": "Esto los hará disponibles en Home Assistant nuevamente si ahora están deshabilitados.",
|
||||||
"confirm_title": "¿Desea habilitar {number} entidades?"
|
"confirm_title": "¿Desea habilitar {number} entidad/es?"
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"filter": "Filtrar",
|
"filter": "Filtrar",
|
||||||
|
"hidden_entities": "{number} oculta/a {number, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
||||||
"show_all": "Mostrar todo",
|
"show_all": "Mostrar todo",
|
||||||
"show_disabled": "Mostrar entidades deshabilitadas",
|
"show_disabled": "Mostrar entidades deshabilitadas",
|
||||||
"show_readonly": "Mostrar entidades de solo lectura",
|
"show_readonly": "Mostrar entidades de solo lectura",
|
||||||
@ -1561,9 +1595,9 @@
|
|||||||
"remove_selected": {
|
"remove_selected": {
|
||||||
"button": "Eliminar selección",
|
"button": "Eliminar selección",
|
||||||
"confirm_partly_text": "Solo puede eliminar {removable} de las entidades {selected} . Las entidades solo se pueden eliminar cuando la integración ya no proporciona las entidades. En ocasiones, debe reiniciar Home Assistant antes de poder eliminar las entidades de una integración eliminada. ¿Está seguro de que desea quitar las entidades eliminables?",
|
"confirm_partly_text": "Solo puede eliminar {removable} de las entidades {selected} . Las entidades solo se pueden eliminar cuando la integración ya no proporciona las entidades. En ocasiones, debe reiniciar Home Assistant antes de poder eliminar las entidades de una integración eliminada. ¿Está seguro de que desea quitar las entidades eliminables?",
|
||||||
"confirm_partly_title": "Sólo se pueden eliminar {número} entidades seleccionadas.",
|
"confirm_partly_title": "Sólo se puede/n eliminar {número} entidad/es seleccionada/s.",
|
||||||
"confirm_text": "Debe eliminarlos de su configuración de Lovelace y de sus automatizaciones si contienen estas entidades.",
|
"confirm_text": "Debe eliminarlos de su configuración de Lovelace y de sus automatizaciones si contienen estas entidades.",
|
||||||
"confirm_title": "¿Desea eliminar {number} entidades?"
|
"confirm_title": "¿Desea eliminar {number} entidad/es?"
|
||||||
},
|
},
|
||||||
"search": "Buscar entidades",
|
"search": "Buscar entidades",
|
||||||
"selected": "{number} seleccionadas",
|
"selected": "{number} seleccionadas",
|
||||||
@ -1578,12 +1612,13 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Limpiar",
|
"clear": "Limpiar",
|
||||||
"filtering_by": "Filtrar por"
|
"filtering_by": "Filtrar por",
|
||||||
|
"show": "Mostrar"
|
||||||
},
|
},
|
||||||
"header": "Configurar Home Assistant",
|
"header": "Configurar Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
"caption": "Auxiliares",
|
"caption": "Auxiliares",
|
||||||
"description": "Gestionar elementos ayudan a construir automatizaciones",
|
"description": "Elementos que ayudan a crear automatizaciones",
|
||||||
"dialog": {
|
"dialog": {
|
||||||
"add_helper": "Agregar auxiliar",
|
"add_helper": "Agregar auxiliar",
|
||||||
"add_platform": "Añadir {platform}",
|
"add_platform": "Añadir {platform}",
|
||||||
@ -1615,7 +1650,7 @@
|
|||||||
"copy_github": "Para GitHub",
|
"copy_github": "Para GitHub",
|
||||||
"copy_raw": "Texto sin formato",
|
"copy_raw": "Texto sin formato",
|
||||||
"custom_uis": "Interfaces de usuario personalizadas:",
|
"custom_uis": "Interfaces de usuario personalizadas:",
|
||||||
"description": "Información sobre la instalación de Home Assistant",
|
"description": "Versión, estado del sistema y enlaces a la documentación",
|
||||||
"developed_by": "Desarrollado por un grupo de personas increíbles.",
|
"developed_by": "Desarrollado por un grupo de personas increíbles.",
|
||||||
"documentation": "Documentación",
|
"documentation": "Documentación",
|
||||||
"frontend": "frontend-ui",
|
"frontend": "frontend-ui",
|
||||||
@ -1647,17 +1682,31 @@
|
|||||||
"area": "En {area}",
|
"area": "En {area}",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"delete_confirm": "¿Estás seguro de que quieres eliminar esta integración?",
|
"delete_confirm": "¿Estás seguro de que quieres eliminar esta integración?",
|
||||||
"device_unavailable": "dispositivo no disponible",
|
"device_unavailable": "Dispositivo no disponible",
|
||||||
"devices": "{count} {count, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
"devices": "{count} {count, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
||||||
|
"disable_restart_confirm": "Reinicie Home Assistant para terminar de deshabilitar esta integración",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "¿Está seguro de que desea deshabilitar esta entrada de configuración? Sus dispositivos y entidades serán deshabilitados.",
|
||||||
|
"disabled": "Deshabilitado",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "Dispositivo",
|
||||||
|
"integration": "Integración",
|
||||||
|
"user": "Usuario"
|
||||||
|
},
|
||||||
|
"disabled_cause": "El dispositivo está inhabilitado por {cause}."
|
||||||
|
},
|
||||||
"documentation": "Documentación",
|
"documentation": "Documentación",
|
||||||
|
"enable_restart_confirm": "Reinicie Home Assistant para terminar de habilitar esta integración",
|
||||||
"entities": "{count} {count, plural,\n one {entidad}\n other {entidades}\n}",
|
"entities": "{count} {count, plural,\n one {entidad}\n other {entidades}\n}",
|
||||||
"entity_unavailable": "entidad no disponible",
|
"entity_unavailable": "Entidad no disponible",
|
||||||
"firmware": "Firmware: {version}",
|
"firmware": "Firmware: {version}",
|
||||||
"hub": "Conectado a través de",
|
"hub": "Conectado a través de",
|
||||||
"manuf": "por {manufacturer}",
|
"manuf": "por {manufacturer}",
|
||||||
"no_area": "Ninguna área",
|
"no_area": "Ninguna área",
|
||||||
"options": "Opciones",
|
"options": "Opciones",
|
||||||
"reload": "Recargar",
|
"reload": "Recargar",
|
||||||
|
"reload_confirm": "La integración se recargó",
|
||||||
|
"reload_restart_confirm": "Reinicie Home Assistant para terminar de recargar esta integración",
|
||||||
"rename": "Renombrar",
|
"rename": "Renombrar",
|
||||||
"restart_confirm": "Reinicie Home Assistant para terminar de eliminar esta integración.",
|
"restart_confirm": "Reinicie Home Assistant para terminar de eliminar esta integración.",
|
||||||
"services": "{count} {count, plural,\n one {service}\n other {services}\n}",
|
"services": "{count} {count, plural,\n one {service}\n other {services}\n}",
|
||||||
@ -1688,8 +1737,13 @@
|
|||||||
"configure": "Configurar",
|
"configure": "Configurar",
|
||||||
"configured": "Configurado",
|
"configured": "Configurado",
|
||||||
"confirm_new": "¿Quieres configurar {integration} ?",
|
"confirm_new": "¿Quieres configurar {integration} ?",
|
||||||
"description": "Gestione las integraciones",
|
"description": "Gestionar integraciones con servicios, dispositivos, ...",
|
||||||
"details": "Detalles de integración",
|
"details": "Detalles de integración",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} inhabilitado",
|
||||||
|
"hide_disabled": "Ocultar integraciones deshabilitadas",
|
||||||
|
"show_disabled": "Mostrar integraciones deshabilitadas"
|
||||||
|
},
|
||||||
"discovered": "Descubierto",
|
"discovered": "Descubierto",
|
||||||
"home_assistant_website": "Sitio web de Home Assistant",
|
"home_assistant_website": "Sitio web de Home Assistant",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -1756,7 +1810,7 @@
|
|||||||
"title": "Título",
|
"title": "Título",
|
||||||
"title_required": "Se requiere título.",
|
"title_required": "Se requiere título.",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"url": "Url",
|
"url": "URL",
|
||||||
"url_error_msg": "La URL debe contener un - y no puede contener espacios o caracteres especiales, excepto _ y -"
|
"url_error_msg": "La URL debe contener un - y no puede contener espacios o caracteres especiales, excepto _ y -"
|
||||||
},
|
},
|
||||||
"picker": {
|
"picker": {
|
||||||
@ -1772,7 +1826,7 @@
|
|||||||
"open": "Abrir"
|
"open": "Abrir"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"description": "Configure sus paneles de Lovelace",
|
"description": "Crear conjuntos personalizados de tarjetas para controlar su hogar",
|
||||||
"resources": {
|
"resources": {
|
||||||
"cant_edit_yaml": "Está utilizando Lovelace en modo YAML, por lo tanto, no puede administrar sus recursos a través de la interfaz de usuario. Adminístrelos en configuration.yaml.",
|
"cant_edit_yaml": "Está utilizando Lovelace en modo YAML, por lo tanto, no puede administrar sus recursos a través de la interfaz de usuario. Adminístrelos en configuration.yaml.",
|
||||||
"caption": "Recursos",
|
"caption": "Recursos",
|
||||||
@ -1784,8 +1838,8 @@
|
|||||||
"new_resource": "Agregar nuevo recurso",
|
"new_resource": "Agregar nuevo recurso",
|
||||||
"type": "Tipo de recurso",
|
"type": "Tipo de recurso",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"url": "Url",
|
"url": "URL",
|
||||||
"url_error_msg": "Url es un campo requerido",
|
"url_error_msg": "URL es un campo requerido",
|
||||||
"warning_header": "¡Tenga cuidado!",
|
"warning_header": "¡Tenga cuidado!",
|
||||||
"warning_text": "Agregar recursos puede ser peligroso, asegúrese de conocer la fuente del recurso y confíe en ellos. Los malos recursos podrían dañar seriamente su sistema."
|
"warning_text": "Agregar recursos puede ser peligroso, asegúrese de conocer la fuente del recurso y confíe en ellos. Los malos recursos podrían dañar seriamente su sistema."
|
||||||
},
|
},
|
||||||
@ -1793,11 +1847,11 @@
|
|||||||
"add_resource": "Agregar recurso",
|
"add_resource": "Agregar recurso",
|
||||||
"headers": {
|
"headers": {
|
||||||
"type": "Tipo",
|
"type": "Tipo",
|
||||||
"url": "Url"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"no_resources": "Sin recursos"
|
"no_resources": "Sin recursos"
|
||||||
},
|
},
|
||||||
"refresh_body": "Tiene que actualizar la página para completar la eliminación, ¿desea actualizar ahora?",
|
"refresh_body": "Debe actualizar la página para completar la eliminación, ¿desea actualizar ahora?",
|
||||||
"refresh_header": "¿Desea refrescar?",
|
"refresh_header": "¿Desea refrescar?",
|
||||||
"types": {
|
"types": {
|
||||||
"css": "Hoja de estilo",
|
"css": "Hoja de estilo",
|
||||||
@ -1827,8 +1881,16 @@
|
|||||||
"controller": "Controlador",
|
"controller": "Controlador",
|
||||||
"instance": "Instancia",
|
"instance": "Instancia",
|
||||||
"network": "Red",
|
"network": "Red",
|
||||||
|
"node_id": "ID de nodo",
|
||||||
|
"ozw_instance": "Instancia de OpenZWave",
|
||||||
"query_stage": "Etapa de la consulta",
|
"query_stage": "Etapa de la consulta",
|
||||||
"wakeup_instructions": "Instrucciones para despertar"
|
"wakeup_instructions": "Instrucciones para despertar",
|
||||||
|
"zwave": "Z-Wave"
|
||||||
|
},
|
||||||
|
"device_info": {
|
||||||
|
"node_failed": "Nodo fallido",
|
||||||
|
"stage": "Etapa",
|
||||||
|
"zwave_info": "Información de Z-Wave"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"network": "Red",
|
"network": "Red",
|
||||||
@ -1856,7 +1918,7 @@
|
|||||||
},
|
},
|
||||||
"offline": "Fuera de línea",
|
"offline": "Fuera de línea",
|
||||||
"online": "En línea",
|
"online": "En línea",
|
||||||
"starting": "Comenzando",
|
"starting": "Iniciando",
|
||||||
"unknown": "Desconocido"
|
"unknown": "Desconocido"
|
||||||
},
|
},
|
||||||
"network": {
|
"network": {
|
||||||
@ -1874,10 +1936,23 @@
|
|||||||
"product_manual": "Manual del producto"
|
"product_manual": "Manual del producto"
|
||||||
},
|
},
|
||||||
"node_query_stages": {
|
"node_query_stages": {
|
||||||
|
"associations": "Actualizando grupos de asociaciones y membresías",
|
||||||
|
"cacheload": "Cargando información del archivo de caché de OpenZWave. Los nodos de batería permanecerán en esta etapa hasta que el nodo se active.",
|
||||||
"complete": "El proceso de consulta está completo",
|
"complete": "El proceso de consulta está completo",
|
||||||
"configuration": "Obteniendo los valores de configuración del nodo",
|
"configuration": "Obteniendo los valores de configuración del nodo",
|
||||||
"dynamic": "Obteniendo los valores que cambian con frecuencia del nodo",
|
"dynamic": "Obteniendo los valores que cambian con frecuencia del nodo",
|
||||||
"session": "Obteniendo valores que cambian con poca frecuencia del nodo"
|
"instances": "Obteniendo detalles sobre qué instancias o canales admite un dispositivo",
|
||||||
|
"manufacturerspecific1": "Obteniendo códigos de identificación de producto y fabricante del nodo",
|
||||||
|
"manufacturerspecific2": "Obteniendo códigos adicionales de identificación de producto y fabricante del nodo",
|
||||||
|
"neighbors": "Obtener una lista de los vecinos del nodo",
|
||||||
|
"nodeinfo": "Obteniendo clases de comando admitidas del nodo",
|
||||||
|
"nodeplusinfo": "Obteniendo información de Z-Wave + del nodo",
|
||||||
|
"probe": "Comprobando si el nodo está despierto / vivo",
|
||||||
|
"protocolinfo": "Obtener las capacidades básicas de Z-Wave de este nodo desde el controlador",
|
||||||
|
"session": "Obteniendo valores que cambian con poca frecuencia del nodo",
|
||||||
|
"static": "Obteniendo valores estáticos del dispositivo",
|
||||||
|
"versions": "Obteniendo información sobre firmware y versiones de clases de comando",
|
||||||
|
"wakeup": "Configurando soporte para mensajes y colas de activación"
|
||||||
},
|
},
|
||||||
"node": {
|
"node": {
|
||||||
"button": "Detalles del nodo",
|
"button": "Detalles del nodo",
|
||||||
@ -1942,7 +2017,7 @@
|
|||||||
},
|
},
|
||||||
"introduction": "Aquí puede definir cada persona de interés en Home Assistant.",
|
"introduction": "Aquí puede definir cada persona de interés en Home Assistant.",
|
||||||
"learn_more": "Más información sobre las personas",
|
"learn_more": "Más información sobre las personas",
|
||||||
"no_persons_created_yet": "Parece que todavía no has creado ninguna persona.",
|
"no_persons_created_yet": "Parece que aún no se ha creado ninguna persona.",
|
||||||
"note_about_persons_configured_in_yaml": "Nota: las personas configuradas a través de configuration.yaml no se pueden editar a través de la interfaz de usuario.",
|
"note_about_persons_configured_in_yaml": "Nota: las personas configuradas a través de configuration.yaml no se pueden editar a través de la interfaz de usuario.",
|
||||||
"person_not_found": "No pudimos encontrar a la persona que intentaba editar.",
|
"person_not_found": "No pudimos encontrar a la persona que intentaba editar.",
|
||||||
"person_not_found_title": "Persona no encontrada"
|
"person_not_found_title": "Persona no encontrada"
|
||||||
@ -1950,7 +2025,7 @@
|
|||||||
"scene": {
|
"scene": {
|
||||||
"activated": "Escena activada {name}.",
|
"activated": "Escena activada {name}.",
|
||||||
"caption": "Escenas",
|
"caption": "Escenas",
|
||||||
"description": "Gestionar escenas",
|
"description": "Capture estados del dispositivo y recupérelos fácilmente más tarde",
|
||||||
"editor": {
|
"editor": {
|
||||||
"default_name": "Nueva escena",
|
"default_name": "Nueva escena",
|
||||||
"devices": {
|
"devices": {
|
||||||
@ -1994,7 +2069,7 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"caption": "Scripts",
|
"caption": "Scripts",
|
||||||
"description": "Crear y editar scripts",
|
"description": "Ejecuta una secuencia de acciones",
|
||||||
"editor": {
|
"editor": {
|
||||||
"alias": "Nombre",
|
"alias": "Nombre",
|
||||||
"default_name": "Nuevo script",
|
"default_name": "Nuevo script",
|
||||||
@ -2005,7 +2080,7 @@
|
|||||||
"id": "ID de la entidad",
|
"id": "ID de la entidad",
|
||||||
"id_already_exists": "Este ID ya existe",
|
"id_already_exists": "Este ID ya existe",
|
||||||
"id_already_exists_save_error": "No puede guardar este script porque el ID no es único, elija otro ID o déjelo en blanco para generar uno automáticamente.",
|
"id_already_exists_save_error": "No puede guardar este script porque el ID no es único, elija otro ID o déjelo en blanco para generar uno automáticamente.",
|
||||||
"introduction": "Use scripts para ejecutar una secuencia de acciones.",
|
"introduction": "Utilice scripts para ejecutar una secuencia de acciones.",
|
||||||
"link_available_actions": "Obtenga más información sobre las acciones disponibles.",
|
"link_available_actions": "Obtenga más información sobre las acciones disponibles.",
|
||||||
"load_error_not_editable": "Solo los scripts dentro de scripts.yaml son editables.",
|
"load_error_not_editable": "Solo los scripts dentro de scripts.yaml son editables.",
|
||||||
"max": {
|
"max": {
|
||||||
@ -2047,9 +2122,15 @@
|
|||||||
"section": {
|
"section": {
|
||||||
"reloading": {
|
"reloading": {
|
||||||
"automation": "Recargar automatizaciones",
|
"automation": "Recargar automatizaciones",
|
||||||
|
"command_line": "Recargar entidades de línea de comando",
|
||||||
"core": "Recargar ubicación y personalizaciones",
|
"core": "Recargar ubicación y personalizaciones",
|
||||||
"group": "Recargar grupos, entidades grupales, y servicios de notificación",
|
"filesize": "Recargar entidades de tamaño de archivo",
|
||||||
|
"filter": "Recargar entidades de filtro",
|
||||||
|
"generic": "Recargar entidades de cámara IP genéricas",
|
||||||
|
"generic_thermostat": "Recargar entidades de termostato genéricas",
|
||||||
|
"group": "Recargar grupos, entidades grupales, y servicios de notificación de grupo",
|
||||||
"heading": "Recarga de configuración YAML",
|
"heading": "Recarga de configuración YAML",
|
||||||
|
"history_stats": "Recargar entidades de estadísticas del historial",
|
||||||
"homekit": "Recargar HomeKit",
|
"homekit": "Recargar HomeKit",
|
||||||
"input_boolean": "Recargar controles booleanos",
|
"input_boolean": "Recargar controles booleanos",
|
||||||
"input_datetime": "Recargar controles de fechas",
|
"input_datetime": "Recargar controles de fechas",
|
||||||
@ -2057,16 +2138,21 @@
|
|||||||
"input_select": "Recargar controles de selección",
|
"input_select": "Recargar controles de selección",
|
||||||
"input_text": "Recargar controles de texto",
|
"input_text": "Recargar controles de texto",
|
||||||
"introduction": "Algunas partes de Home Assistant pueden recargarse sin requerir un reinicio. Al presionar recargar se descargará su configuración YAML actual y se cargará la nueva.",
|
"introduction": "Algunas partes de Home Assistant pueden recargarse sin requerir un reinicio. Al presionar recargar se descargará su configuración YAML actual y se cargará la nueva.",
|
||||||
"mqtt": "Recargar entidades MQTT",
|
"min_max": "Recargar entidades de mín/máx",
|
||||||
|
"mqtt": "Recargar entidades MQTT manualmente configuradas",
|
||||||
"person": "Recargar personas",
|
"person": "Recargar personas",
|
||||||
|
"ping": "Recargar entidades de sensor binario PING",
|
||||||
"reload": "Recargar {domain}",
|
"reload": "Recargar {domain}",
|
||||||
"rest": "Recargar entidades \"rest\" y servicios de notificación.",
|
"rest": "Recargar entidades y servicios de notificación REST.",
|
||||||
"rpi_gpio": "Recargue las entidades GPIO de la Raspberry Pi",
|
"rpi_gpio": "Recargue las entidades GPIO de la Raspberry Pi",
|
||||||
"scene": "Recargar escenas",
|
"scene": "Recargar escenas",
|
||||||
"script": "Recargar scripts",
|
"script": "Recargar scripts",
|
||||||
"smtp": "Recargar servicios de notificación smtp",
|
"smtp": "Recargar servicios de notificación SMTP",
|
||||||
|
"statistics": "Recargar entidades de estadísticas",
|
||||||
"telegram": "Recargar servicios de notificación de telegram",
|
"telegram": "Recargar servicios de notificación de telegram",
|
||||||
"template": "Recargar las entidades de la plantilla",
|
"template": "Recargar las entidades de la plantilla",
|
||||||
|
"trend": "Recargar entidades de tendencia",
|
||||||
|
"universal": "Recargar entidades de reproductor multimedia universal",
|
||||||
"zone": "Recargar zonas"
|
"zone": "Recargar zonas"
|
||||||
},
|
},
|
||||||
"server_management": {
|
"server_management": {
|
||||||
@ -2086,14 +2172,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Añadir etiqueta",
|
"add_tag": "Añadir etiqueta",
|
||||||
"automation_title": "La etiqueta {name} ha sido escaneada",
|
"automation_title": "La etiqueta {name} ha sido escaneada",
|
||||||
"caption": "Etiquetas",
|
"caption": "Etiquetas",
|
||||||
"confirm_remove": "¿Está seguro de que desea eliminar la etiqueta {tag}?",
|
"confirm_remove": "¿Está seguro de que desea eliminar la etiqueta {tag}?",
|
||||||
"confirm_remove_title": "¿Eliminar etiqueta?",
|
"confirm_remove_title": "¿Eliminar etiqueta?",
|
||||||
"create_automation": "Crea automatización con etiqueta",
|
"create_automation": "Crea automatización con etiqueta",
|
||||||
"description": "Gestionar etiquetas",
|
"description": "Activar automatizaciones cuando se escanea una etiqueta NFC, un código QR, etc.",
|
||||||
"detail": {
|
"detail": {
|
||||||
"companion_apps": "aplicaciones complementarias",
|
"companion_apps": "aplicaciones complementarias",
|
||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
@ -2126,7 +2212,7 @@
|
|||||||
"password_not_match": "Las contraseñas no coinciden"
|
"password_not_match": "Las contraseñas no coinciden"
|
||||||
},
|
},
|
||||||
"caption": "Usuarios",
|
"caption": "Usuarios",
|
||||||
"description": "Administrar usuarios",
|
"description": "Administrar las cuentas de usuario de Home Assistant",
|
||||||
"editor": {
|
"editor": {
|
||||||
"activate_user": "Activar usuario",
|
"activate_user": "Activar usuario",
|
||||||
"active": "Activo",
|
"active": "Activo",
|
||||||
@ -2139,7 +2225,7 @@
|
|||||||
"delete_user": "Eliminar usuario",
|
"delete_user": "Eliminar usuario",
|
||||||
"group": "Grupo",
|
"group": "Grupo",
|
||||||
"id": "Identificación",
|
"id": "Identificación",
|
||||||
"name": "Nombre",
|
"name": "Nombre para mostrar",
|
||||||
"new_password": "Nueva contraseña",
|
"new_password": "Nueva contraseña",
|
||||||
"owner": "Propietario",
|
"owner": "Propietario",
|
||||||
"password_changed": "La contraseña se cambió con éxito",
|
"password_changed": "La contraseña se cambió con éxito",
|
||||||
@ -2156,8 +2242,8 @@
|
|||||||
"group": "Grupo",
|
"group": "Grupo",
|
||||||
"is_active": "Activo",
|
"is_active": "Activo",
|
||||||
"is_owner": "Propietario",
|
"is_owner": "Propietario",
|
||||||
"name": "Nombre",
|
"name": "Nombre para mostrar",
|
||||||
"system": "Sistema",
|
"system": "Generado por el sistema",
|
||||||
"username": "Nombre de usuario"
|
"username": "Nombre de usuario"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2260,7 +2346,7 @@
|
|||||||
"create": "Crear",
|
"create": "Crear",
|
||||||
"delete": "Eliminar",
|
"delete": "Eliminar",
|
||||||
"icon": "Ícono",
|
"icon": "Ícono",
|
||||||
"icon_error_msg": "El ícono debe tener el formato prefijo:nombre del ícono, por ejemplo: mdi:home",
|
"icon_error_msg": "El ícono debe tener el formato 'prefijo:nombreicono', por ejemplo: 'mdi:home''",
|
||||||
"latitude": "Latitud",
|
"latitude": "Latitud",
|
||||||
"longitude": "Longitud",
|
"longitude": "Longitud",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
@ -2467,6 +2553,7 @@
|
|||||||
"type": "Tipo de evento"
|
"type": "Tipo de evento"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
"accepts_target": "Este servicio acepta un objetivo, por ejemplo: 'entity_id: light.bed_light'",
|
||||||
"all_parameters": "Todos los parámetros disponibles",
|
"all_parameters": "Todos los parámetros disponibles",
|
||||||
"call_service": "Llamar al Servicio",
|
"call_service": "Llamar al Servicio",
|
||||||
"column_description": "Descripción",
|
"column_description": "Descripción",
|
||||||
@ -2477,11 +2564,12 @@
|
|||||||
"title": "Servicios",
|
"title": "Servicios",
|
||||||
"ui_mode": "Ir al modo IU",
|
"ui_mode": "Ir al modo IU",
|
||||||
"yaml_mode": "Ir al modo YAML",
|
"yaml_mode": "Ir al modo YAML",
|
||||||
"yaml_parameters": "Parámetros solo disponibles en modo YAML"
|
"yaml_parameters": "Parámetros sólo disponibles en modo YAML"
|
||||||
},
|
},
|
||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "La entidad es un campo obligatorio.",
|
"alert_entity_field": "La entidad es un campo obligatorio.",
|
||||||
"attributes": "Atributos",
|
"attributes": "Atributos",
|
||||||
|
"copy_id": "Copiar ID al portapapeles",
|
||||||
"current_entities": "Entidades actuales",
|
"current_entities": "Entidades actuales",
|
||||||
"description1": "Establecer la representación de un dispositivo dentro de Home Assistant.",
|
"description1": "Establecer la representación de un dispositivo dentro de Home Assistant.",
|
||||||
"description2": "Esto no se comunicará con el dispositivo real.",
|
"description2": "Esto no se comunicará con el dispositivo real.",
|
||||||
@ -2507,6 +2595,7 @@
|
|||||||
"jinja_documentation": "Documentación de plantillas Jinja2",
|
"jinja_documentation": "Documentación de plantillas Jinja2",
|
||||||
"listeners": "Esta plantilla escucha los eventos de los siguientes cambios de estado:",
|
"listeners": "Esta plantilla escucha los eventos de los siguientes cambios de estado:",
|
||||||
"no_listeners": "Esta plantilla no escucha ningún evento de cambio de estado y no se actualizará automáticamente.",
|
"no_listeners": "Esta plantilla no escucha ningún evento de cambio de estado y no se actualizará automáticamente.",
|
||||||
|
"reset": "Restablecer a la plantilla de demostración",
|
||||||
"result_type": "Tipo de resultado",
|
"result_type": "Tipo de resultado",
|
||||||
"template_extensions": "Extensiones de plantilla de Home Assistant",
|
"template_extensions": "Extensiones de plantilla de Home Assistant",
|
||||||
"time": "Esta plantilla se actualiza al comienzo de cada minuto.",
|
"time": "Esta plantilla se actualiza al comienzo de cada minuto.",
|
||||||
@ -2559,7 +2648,7 @@
|
|||||||
"call_service": "Servicio de llamadas {name}",
|
"call_service": "Servicio de llamadas {name}",
|
||||||
"hold": "Mantener:",
|
"hold": "Mantener:",
|
||||||
"more_info": "Mostrar más información: {name}",
|
"more_info": "Mostrar más información: {name}",
|
||||||
"navigate_to": "Navegue a {location}",
|
"navigate_to": "Navegar a {location}",
|
||||||
"tap": "Toque:",
|
"tap": "Toque:",
|
||||||
"toggle": "Alternar {name}",
|
"toggle": "Alternar {name}",
|
||||||
"url": "Abrir ventana a {url_path}"
|
"url": "Abrir ventana a {url_path}"
|
||||||
@ -2570,7 +2659,7 @@
|
|||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"add_item": "Agregar elemento",
|
"add_item": "Agregar elemento",
|
||||||
"checked_items": "lementos marcados",
|
"checked_items": "Elementos marcados",
|
||||||
"clear_items": "Borrar elementos marcados",
|
"clear_items": "Borrar elementos marcados",
|
||||||
"drag_and_drop": "Arrastrar y soltar",
|
"drag_and_drop": "Arrastrar y soltar",
|
||||||
"reorder_items": "Reordenar elementos"
|
"reorder_items": "Reordenar elementos"
|
||||||
@ -2580,7 +2669,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"changed_toast": {
|
"changed_toast": {
|
||||||
"message": "La configuración de la UI de Lovelace para éste panel fue actualizada, ¿refrescar para ver los cambios?"
|
"message": "Se actualizó la configuración de la interfaz de usuario de Lovelace para este panel. ¿Actualizar para ver cambios?"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
"timestamp-display": {
|
"timestamp-display": {
|
||||||
@ -2596,6 +2685,7 @@
|
|||||||
"more-info": "Más información",
|
"more-info": "Más información",
|
||||||
"navigate": "Navegar",
|
"navigate": "Navegar",
|
||||||
"none": "Sin acción",
|
"none": "Sin acción",
|
||||||
|
"toggle": "Alternar",
|
||||||
"url": "URL"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"navigation_path": "Ruta de navegación",
|
"navigation_path": "Ruta de navegación",
|
||||||
@ -2608,11 +2698,13 @@
|
|||||||
"name": "Panel de alarma"
|
"name": "Panel de alarma"
|
||||||
},
|
},
|
||||||
"button": {
|
"button": {
|
||||||
|
"default_action_help": "La acción predeterminada depende de las capacidades de la entidad, se alternará o se mostrará el cuadro de diálogo de más información.",
|
||||||
"description": "La tarjeta Botón le permite agregar botones para realizar tareas.",
|
"description": "La tarjeta Botón le permite agregar botones para realizar tareas.",
|
||||||
"name": "Botón"
|
"name": "Botón"
|
||||||
},
|
},
|
||||||
"calendar": {
|
"calendar": {
|
||||||
"calendar_entities": "Entidades del calendario",
|
"calendar_entities": "Entidades del calendario",
|
||||||
|
"description": "La tarjeta Calendario muestra un calendario que incluye vistas de día, semana y lista",
|
||||||
"inital_view": "Vista inicial",
|
"inital_view": "Vista inicial",
|
||||||
"name": "Calendario",
|
"name": "Calendario",
|
||||||
"views": {
|
"views": {
|
||||||
@ -2659,7 +2751,8 @@
|
|||||||
"last-triggered": "Última activación",
|
"last-triggered": "Última activación",
|
||||||
"last-updated": "Última actualización",
|
"last-updated": "Última actualización",
|
||||||
"none": "Sin información secundaria",
|
"none": "Sin información secundaria",
|
||||||
"position": "Posición"
|
"position": "Posición",
|
||||||
|
"tilt-position": "Posición de la lona"
|
||||||
},
|
},
|
||||||
"show_header_toggle": "¿Mostrar alternancia de encabezado?",
|
"show_header_toggle": "¿Mostrar alternancia de encabezado?",
|
||||||
"special_row": "fila especial",
|
"special_row": "fila especial",
|
||||||
@ -2697,7 +2790,7 @@
|
|||||||
"icon_height": "Altura del icono",
|
"icon_height": "Altura del icono",
|
||||||
"image": "Ruta de la imagen",
|
"image": "Ruta de la imagen",
|
||||||
"manual": "Manual",
|
"manual": "Manual",
|
||||||
"manual_description": "¿Necesita agregar una tarjeta personalizada o simplemente desea escribir manualmente el yaml?",
|
"manual_description": "¿Necesita agregar una tarjeta personalizada o simplemente desea escribir manualmente el YAML?",
|
||||||
"maximum": "Máximo",
|
"maximum": "Máximo",
|
||||||
"minimum": "Mínimo",
|
"minimum": "Mínimo",
|
||||||
"name": "Nombre",
|
"name": "Nombre",
|
||||||
@ -2714,7 +2807,7 @@
|
|||||||
"theme": "Tema",
|
"theme": "Tema",
|
||||||
"title": "Título",
|
"title": "Título",
|
||||||
"unit": "Unidad",
|
"unit": "Unidad",
|
||||||
"url": "Url"
|
"url": "URL"
|
||||||
},
|
},
|
||||||
"glance": {
|
"glance": {
|
||||||
"columns": "Columnas",
|
"columns": "Columnas",
|
||||||
@ -2778,7 +2871,7 @@
|
|||||||
"name": "Entidad de imagen"
|
"name": "Entidad de imagen"
|
||||||
},
|
},
|
||||||
"picture-glance": {
|
"picture-glance": {
|
||||||
"description": "La tarjeta Picture Glance muestra una imagen y los estados de entidad correspondientes como un icono. Las entidades en el lado derecho permiten alternar acciones, otras muestran el diálogo de más información.",
|
"description": "La tarjeta Picture Glance muestra una imagen y los estados de entidad correspondientes como un icono. Las entidades en el lado derecho permiten alternar acciones y las demás muestran el diálogo de más información.",
|
||||||
"name": "Picture Glance",
|
"name": "Picture Glance",
|
||||||
"state_entity": "Entidad de estado"
|
"state_entity": "Entidad de estado"
|
||||||
},
|
},
|
||||||
@ -2837,7 +2930,7 @@
|
|||||||
"clear": "Limpiar",
|
"clear": "Limpiar",
|
||||||
"confirm_cancel": "¿Está seguro de que desea cancelar?",
|
"confirm_cancel": "¿Está seguro de que desea cancelar?",
|
||||||
"delete": "Eliminar tarjeta",
|
"delete": "Eliminar tarjeta",
|
||||||
"duplicate": "Tarjeta duplicada",
|
"duplicate": "Duplicar tarjeta",
|
||||||
"edit": "Editar",
|
"edit": "Editar",
|
||||||
"header": "Configuración de la tarjeta",
|
"header": "Configuración de la tarjeta",
|
||||||
"move": "Mover a la vista",
|
"move": "Mover a la vista",
|
||||||
@ -2898,16 +2991,19 @@
|
|||||||
"raw_editor": "Editor de configuración en texto"
|
"raw_editor": "Editor de configuración en texto"
|
||||||
},
|
},
|
||||||
"migrate": {
|
"migrate": {
|
||||||
"header": "Configuración inválida",
|
"header": "Configuración no compatible",
|
||||||
"migrate": "Migrar configuración",
|
"migrate": "Migrar configuración",
|
||||||
"para_migrate": "Home Assistant puede agregar la identificación a todas sus tarjetas y vistas automáticamente presionando el botón 'Migrar configuración'.",
|
"para_migrate": "Home Assistant puede agregar la identificación a todas sus tarjetas y vistas automáticamente presionando el botón 'Migrar configuración'.",
|
||||||
"para_no_id": "Este elemento no tiene un ID. Por favor agregue uno a este elemento en 'ui-lovelace.yaml'."
|
"para_no_id": "Este elemento no tiene un ID. Por favor agréguele un ID en 'ui-lovelace.yaml'."
|
||||||
|
},
|
||||||
|
"move_card": {
|
||||||
|
"header": "Elija una vista para mover la tarjeta"
|
||||||
},
|
},
|
||||||
"raw_editor": {
|
"raw_editor": {
|
||||||
"confirm_remove_config_text": "Generaremos automáticamente sus vistas de Lovelace UI con sus áreas y dispositivos si elimina su configuración de Lovelace UI.",
|
"confirm_remove_config_text": "Generaremos automáticamente sus vistas de Lovelace UI con sus áreas y dispositivos si elimina su configuración de Lovelace UI.",
|
||||||
"confirm_remove_config_title": "¿Está seguro de que desea eliminar la configuración de Lovelace UI? Generaremos automáticamente sus vistas de Lovelace UI con sus áreas y dispositivos.",
|
"confirm_remove_config_title": "¿Está seguro de que desea eliminar la configuración de la interfaz de usuario de Lovelace?",
|
||||||
"confirm_unsaved_changes": "Tiene cambios sin guardar, ¿está seguro de que desea salir?",
|
"confirm_unsaved_changes": "Tiene cambios sin guardar, ¿está seguro de que desea salir?",
|
||||||
"confirm_unsaved_comments": "Su configuración contiene comentarios, estos no se guardarán. ¿Desea continuar?",
|
"confirm_unsaved_comments": "Su configuración puede contener comentarios, estos no se guardarán. ¿Desea continuar?",
|
||||||
"error_invalid_config": "Su configuración no es válida: {error}",
|
"error_invalid_config": "Su configuración no es válida: {error}",
|
||||||
"error_parse_yaml": "No se puede analizar el YAML: {error}",
|
"error_parse_yaml": "No se puede analizar el YAML: {error}",
|
||||||
"error_remove": "No se puede eliminar la configuración: {error}",
|
"error_remove": "No se puede eliminar la configuración: {error}",
|
||||||
@ -2923,13 +3019,17 @@
|
|||||||
"close": "Cerrar",
|
"close": "Cerrar",
|
||||||
"empty_config": "Comience con un tablero vacío",
|
"empty_config": "Comience con un tablero vacío",
|
||||||
"header": "Toma el control de tu interfaz de usuario de Lovelace",
|
"header": "Toma el control de tu interfaz de usuario de Lovelace",
|
||||||
"para": "Este panel está siendo mantenido actualmente por Home Assistant. Se actualiza automáticamente cuando nuevas entidades o componentes de la interfaz de usuario de Lovelace están disponibles. Si tomas el control, este panel ya no se actualizará automáticamente. Siempre puedes crear un nuevo panel en la configuración para jugar con él.",
|
"para": "Este panel está siendo mantenido actualmente por Home Assistant. Se actualiza automáticamente cuando nuevas entidades o componentes de la interfaz de usuario de Lovelace están disponibles. Si tomas el control, este panel ya no se actualizará automáticamente. Siempre puede crear un nuevo panel en la configuración y modificarlo a su gusto.",
|
||||||
"para_sure": "¿Está seguro de que desea tomar el control de su interfaz de usuario?",
|
"para_sure": "¿Está seguro de que desea tomar el control de su interfaz de usuario?",
|
||||||
"save": "Tomar el control",
|
"save": "Tomar el control",
|
||||||
"yaml_config": "Para ayudarlo a comenzar, aquí está la configuración actual de este tablero:",
|
"yaml_config": "Para ayudarlo a comenzar, aquí está la configuración actual de este tablero:",
|
||||||
"yaml_control": "Para tomar el control en modo YAML, cree un archivo YAML con el nombre que especificó en su configuración para este tablero, o el valor predeterminado 'ui-lovelace.yaml'.",
|
"yaml_control": "Para tomar el control en modo YAML, cree un archivo YAML con el nombre que especificó en su configuración para este tablero, o el valor predeterminado 'ui-lovelace.yaml'.",
|
||||||
"yaml_mode": "Está utilizando el modo YAML para este panel, lo que significa que no puede cambiar su configuración de Lovelace desde la interfaz de usuario. Si desea administrar este panel de control desde la interfaz de usuario, elimine 'mode: yaml' de su configuración de Lovelace en 'configuration.yaml.'."
|
"yaml_mode": "Está utilizando el modo YAML para este panel, lo que significa que no puede cambiar su configuración de Lovelace desde la interfaz de usuario. Si desea administrar este panel de control desde la interfaz de usuario, elimine 'mode: yaml' de su configuración de Lovelace en 'configuration.yaml.'."
|
||||||
},
|
},
|
||||||
|
"select_view": {
|
||||||
|
"dashboard_label": "Tablero",
|
||||||
|
"header": "Elija una vista"
|
||||||
|
},
|
||||||
"sub-element-editor": {
|
"sub-element-editor": {
|
||||||
"types": {
|
"types": {
|
||||||
"footer": "Editor de pie de página",
|
"footer": "Editor de pie de página",
|
||||||
@ -2944,7 +3044,7 @@
|
|||||||
},
|
},
|
||||||
"view": {
|
"view": {
|
||||||
"panel_mode": {
|
"panel_mode": {
|
||||||
"description": "Esto hace que la primera carta sea de ancho completo; otras cartas en esta vista no se mostrarán.",
|
"description": "Esto hace que la primera tarjeta tenga el ancho completo. No se mostrarán otras tarjetas en esta vista, así como las insignias.",
|
||||||
"title": "¿Modo de panel?",
|
"title": "¿Modo de panel?",
|
||||||
"warning_multiple_cards": "Esta vista contiene más de una tarjeta, pero una vista de panel solo puede mostrar 1 tarjeta."
|
"warning_multiple_cards": "Esta vista contiene más de una tarjeta, pero una vista de panel solo puede mostrar 1 tarjeta."
|
||||||
}
|
}
|
||||||
@ -2960,7 +3060,7 @@
|
|||||||
},
|
},
|
||||||
"reload_lovelace": "Recargar UI",
|
"reload_lovelace": "Recargar UI",
|
||||||
"reload_resources": {
|
"reload_resources": {
|
||||||
"refresh_body": "Tiene que actualizar la página para completar la recarga, ¿desea actualizar ahora?",
|
"refresh_body": "Debe actualizar la página para completar la recarga, ¿desea actualizar ahora?",
|
||||||
"refresh_header": "¿Desea refrescar?"
|
"refresh_header": "¿Desea refrescar?"
|
||||||
},
|
},
|
||||||
"unused_entities": {
|
"unused_entities": {
|
||||||
@ -2984,7 +3084,7 @@
|
|||||||
"attribute_not_found": "El atributo {attribute} no está disponible en: {entity}",
|
"attribute_not_found": "El atributo {attribute} no está disponible en: {entity}",
|
||||||
"entity_non_numeric": "Entidad no es numérica: {entity}",
|
"entity_non_numeric": "Entidad no es numérica: {entity}",
|
||||||
"entity_not_found": "Entidad no disponible: {entity}",
|
"entity_not_found": "Entidad no disponible: {entity}",
|
||||||
"entity_unavailable": "{entidad} no se encuentra disponible",
|
"entity_unavailable": "{entity} no se encuentra disponible",
|
||||||
"starting": "Home Assistant está comenzando, no todo puede estar disponible aún"
|
"starting": "Home Assistant está comenzando, no todo puede estar disponible aún"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2996,8 +3096,11 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Esta redirección no es compatible con su instancia de Home Assistant. Necesita la integración {integration} para usar este redireccionamiento.",
|
"component_not_loaded": "Esta redirección no es compatible con su instancia de Home Assistant. Necesita la integración {integration} para usar este redireccionamiento.",
|
||||||
|
"documentation": "documentación",
|
||||||
"error": "Se ha producido un error desconocido",
|
"error": "Se ha producido un error desconocido",
|
||||||
"faq_link": "Preguntas frecuentes de mi Home Assistant"
|
"faq_link": "Preguntas frecuentes de mi Home Assistant",
|
||||||
|
"no_supervisor": "Esta redirección no es compatible con su instalación de Home Assistant. Necesita el sistema operativo Home Assistant o el método de instalación supervisado por Home Assistant. Para obtener más información, consulte en {docs_link} .",
|
||||||
|
"not_supported": "Esta redirección no es compatible con su instancia de Home Assistant. Consulte en {link} para conocer las redirecciones admitidas y la versión en la que se introdujeron."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
"abort_intro": "Inicio de sesión cancelado",
|
"abort_intro": "Inicio de sesión cancelado",
|
||||||
@ -3008,11 +3111,11 @@
|
|||||||
"providers": {
|
"providers": {
|
||||||
"command_line": {
|
"command_line": {
|
||||||
"abort": {
|
"abort": {
|
||||||
"login_expired": "La sesión expiró, por favor inicie sesión nuevamente."
|
"login_expired": "La sesión expiró, por favor inicie nuevamente."
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"invalid_auth": "Nombre de usuario o contraseña inválidos",
|
"invalid_auth": "Nombre de usuario o contraseña no válido",
|
||||||
"invalid_code": "Código de autenticación inválido"
|
"invalid_code": "Código de autenticación no válido"
|
||||||
},
|
},
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
@ -3025,7 +3128,7 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"code": "Código de autenticación de dos factores"
|
"code": "Código de autenticación de dos factores"
|
||||||
},
|
},
|
||||||
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticar de dos factores y verificar su identidad:"
|
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticación de dos factores y verificar su identidad:"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -3048,7 +3151,7 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"code": "Código de autenticación de dos factores"
|
"code": "Código de autenticación de dos factores"
|
||||||
},
|
},
|
||||||
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticar de dos factores y verificar su identidad:"
|
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticación de dos factores y verificar su identidad:"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -3058,7 +3161,7 @@
|
|||||||
"no_api_password_set": "No tienes una contraseña API configurada."
|
"no_api_password_set": "No tienes una contraseña API configurada."
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"invalid_auth": "Contraseña API inválida",
|
"invalid_auth": "Contraseña API no válida",
|
||||||
"invalid_code": "Código de autenticación inválido"
|
"invalid_code": "Código de autenticación inválido"
|
||||||
},
|
},
|
||||||
"step": {
|
"step": {
|
||||||
@ -3072,13 +3175,13 @@
|
|||||||
"data": {
|
"data": {
|
||||||
"code": "Código de autenticación de dos factores"
|
"code": "Código de autenticación de dos factores"
|
||||||
},
|
},
|
||||||
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticar de dos factores y verificar su identidad:"
|
"description": "Abra el **{mfa_module_name}** en su dispositivo para ver su código de autenticación de dos factores y verificar su identidad:"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trusted_networks": {
|
"trusted_networks": {
|
||||||
"abort": {
|
"abort": {
|
||||||
"not_allowed": "El equipo no está permitido."
|
"not_allowed": "Su equipo no está permitido."
|
||||||
},
|
},
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
@ -3150,7 +3253,8 @@
|
|||||||
"intro": "Hola {name}, bienvenido a Home Assistant. ¿Cómo te gustaría llamar a tu casa?",
|
"intro": "Hola {name}, bienvenido a Home Assistant. ¿Cómo te gustaría llamar a tu casa?",
|
||||||
"intro_location": "Nos gustaría saber dónde vives. Esta información ayudará a mostrar información y configurar automatizaciones basadas en el sol. Estos datos nunca se comparten fuera de tu red.",
|
"intro_location": "Nos gustaría saber dónde vives. Esta información ayudará a mostrar información y configurar automatizaciones basadas en el sol. Estos datos nunca se comparten fuera de tu red.",
|
||||||
"intro_location_detect": "Podemos ayudarte a completar esta información realizando una solicitud única a un servicio externo.",
|
"intro_location_detect": "Podemos ayudarte a completar esta información realizando una solicitud única a un servicio externo.",
|
||||||
"location_name_default": "En Casa"
|
"location_name": "Nombre de su instalación de Home Assistant",
|
||||||
|
"location_name_default": "Casa"
|
||||||
},
|
},
|
||||||
"integration": {
|
"integration": {
|
||||||
"finish": "Terminar",
|
"finish": "Terminar",
|
||||||
@ -3159,7 +3263,10 @@
|
|||||||
},
|
},
|
||||||
"intro": "¿Estás listo para despertar tu hogar, reclamar tu privacidad y unirte a una comunidad mundial de experimentadores?",
|
"intro": "¿Estás listo para despertar tu hogar, reclamar tu privacidad y unirte a una comunidad mundial de experimentadores?",
|
||||||
"restore": {
|
"restore": {
|
||||||
"in_progress": "Restauración en progreso"
|
"description": "También se puede restaurar desde una instantánea anterior.",
|
||||||
|
"hide_log": "Ocultar registro completo",
|
||||||
|
"in_progress": "Restauración en progreso",
|
||||||
|
"show_log": "Mostrar registro completo"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"create_account": "Crear una cuenta",
|
"create_account": "Crear una cuenta",
|
||||||
@ -3266,7 +3373,7 @@
|
|||||||
"created_at": "Creado en {date}",
|
"created_at": "Creado en {date}",
|
||||||
"current_token_tooltip": "No se puede eliminar el token de actualización actual",
|
"current_token_tooltip": "No se puede eliminar el token de actualización actual",
|
||||||
"delete_failed": "No se pudo eliminar el token de actualización.",
|
"delete_failed": "No se pudo eliminar el token de actualización.",
|
||||||
"description": "Cada token de actualización representa una sesión de inicio de sesión. Los tokens de actualización se eliminarán automáticamente cuando haga clic en cerrar sesión. Los siguientes tokens de actualización están actualmente activos para su cuenta.",
|
"description": "Cada token de actualización representa un inicio de sesión. Los tokens de actualización se eliminarán automáticamente cuando haga clic en cerrar sesión. Los siguientes tokens de actualización están actualmente activos para su cuenta.",
|
||||||
"header": "Actualizar tokens",
|
"header": "Actualizar tokens",
|
||||||
"last_used": "Utilizado por última vez en {date} desde {location}.",
|
"last_used": "Utilizado por última vez en {date} desde {location}.",
|
||||||
"not_used": "Nunca se ha utilizado",
|
"not_used": "Nunca se ha utilizado",
|
||||||
@ -3277,10 +3384,18 @@
|
|||||||
"header": "Conexión cerrada automáticamente"
|
"header": "Conexión cerrada automáticamente"
|
||||||
},
|
},
|
||||||
"themes": {
|
"themes": {
|
||||||
|
"accent_color": "Color de acento",
|
||||||
|
"dark_mode": {
|
||||||
|
"auto": "Automático",
|
||||||
|
"dark": "Oscuro",
|
||||||
|
"light": "Claro"
|
||||||
|
},
|
||||||
"dropdown_label": "Tema",
|
"dropdown_label": "Tema",
|
||||||
"error_no_theme": "No hay temas disponibles.",
|
"error_no_theme": "No hay temas disponibles.",
|
||||||
"header": "Tema",
|
"header": "Tema",
|
||||||
"link_promo": "Más información sobre los temas"
|
"link_promo": "Más información sobre los temas",
|
||||||
|
"primary_color": "Color primario",
|
||||||
|
"reset": "Restablecer"
|
||||||
},
|
},
|
||||||
"vibrate": {
|
"vibrate": {
|
||||||
"description": "Habilitar o deshabilitar la vibración en este dispositivo al controlar dispositivos.",
|
"description": "Habilitar o deshabilitar la vibración en este dispositivo al controlar dispositivos.",
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Última activación",
|
"last_triggered": "Última activación",
|
||||||
"trigger": "Ejecutar"
|
"trigger": "Ejecutar acciones"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Imagen no disponible"
|
"not_available": "Imagen no disponible"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"cancel_multiple": "Cancelar {number}"
|
"cancel_multiple": "Cancelar {number}",
|
||||||
|
"run": "Ejecutar"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Ejecutar"
|
"run": "Ejecutar"
|
||||||
@ -963,7 +964,7 @@
|
|||||||
"delete_confirm": "¿Estás seguro de que quieres eliminarlo?",
|
"delete_confirm": "¿Estás seguro de que quieres eliminarlo?",
|
||||||
"duplicate": "Duplicar",
|
"duplicate": "Duplicar",
|
||||||
"header": "Condiciones",
|
"header": "Condiciones",
|
||||||
"introduction": "Las condiciones son opcionales e impedirán cualquier\nejecución posterior a menos que se cumplan todas las condiciones.",
|
"introduction": "Las condiciones son opcionales y evitarán que la automatización funcione a menos que se cumplan todas las condiciones.",
|
||||||
"learn_more": "Aprende más sobre las condiciones",
|
"learn_more": "Aprende más sobre las condiciones",
|
||||||
"name": "Condición",
|
"name": "Condición",
|
||||||
"type_select": "Tipo de condición",
|
"type_select": "Tipo de condición",
|
||||||
@ -2171,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Añadir etiqueta",
|
"add_tag": "Añadir etiqueta",
|
||||||
"automation_title": "Se escanea la etiqueta {name}",
|
"automation_title": "Se escanea la etiqueta {name}",
|
||||||
"caption": "Etiquetas",
|
"caption": "Etiquetas",
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Viimati käivitatud",
|
"last_triggered": "Viimati käivitatud",
|
||||||
"trigger": "Käivita"
|
"trigger": "Käivita toimingud"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Kujutis pole saadaval"
|
"not_available": "Kujutis pole saadaval"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Loobu",
|
"cancel": "Loobu",
|
||||||
"cancel_multiple": "Loobu {number}"
|
"cancel_multiple": "Loobu {number}",
|
||||||
|
"run": "Käivita"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Käivita"
|
"run": "Käivita"
|
||||||
@ -963,7 +964,7 @@
|
|||||||
"delete_confirm": "Oled kindel, et soovid kustutada?",
|
"delete_confirm": "Oled kindel, et soovid kustutada?",
|
||||||
"duplicate": "Duubelda",
|
"duplicate": "Duubelda",
|
||||||
"header": "Tingimused",
|
"header": "Tingimused",
|
||||||
"introduction": "Tingimused on automatiseeringu valikuline osa ja neid saab kasutada, et vältida tegevuse käivitumist päästiku vallandumisel. Tingimused tunduvad väga sarnased päästikutele, kuid on siiski erinevad. Päästik jälgib süsteemis toimuvaid sündmusi, tingimus jälgib ainult süsteem praegust olekut. Päästik võib märgata, et lülitit ollakse parasjagu lülitamas. Tingimus võib näha ainult seda, kas lüliti on praegu sisse või välja lülitatud.",
|
"introduction": "Tingimused on valikulised ja takistavad automatiseerimise käivitamist, välja arvatud juhul kui kõik tingimused on täidetud.",
|
||||||
"learn_more": "Lisateave tingimuste kohta",
|
"learn_more": "Lisateave tingimuste kohta",
|
||||||
"name": "Tingimus",
|
"name": "Tingimus",
|
||||||
"type_select": "Tingimuse tüüp",
|
"type_select": "Tingimuse tüüp",
|
||||||
@ -2079,7 +2080,7 @@
|
|||||||
"id": "Olemi ID",
|
"id": "Olemi ID",
|
||||||
"id_already_exists": "See ID on juba olemas",
|
"id_already_exists": "See ID on juba olemas",
|
||||||
"id_already_exists_save_error": "Te ei saa seda skripti salvestada kuna ID pole kordumatu. Valige mõni teine ID või jätke see väli tühjaks, et see automaatselt luua.",
|
"id_already_exists_save_error": "Te ei saa seda skripti salvestada kuna ID pole kordumatu. Valige mõni teine ID või jätke see väli tühjaks, et see automaatselt luua.",
|
||||||
"introduction": "Skriptide abil saate käivitada toimingute jada.",
|
"introduction": "Skriptide abil saad käivitada toimingute jada.",
|
||||||
"link_available_actions": "Vaadake lisateavet saadaolevate toimingute kohta.",
|
"link_available_actions": "Vaadake lisateavet saadaolevate toimingute kohta.",
|
||||||
"load_error_not_editable": "Ainult scripts.yaml failis asuvad skriptid on muudetavad.",
|
"load_error_not_editable": "Ainult scripts.yaml failis asuvad skriptid on muudetavad.",
|
||||||
"max": {
|
"max": {
|
||||||
@ -2171,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Lisa TAG",
|
"add_tag": "Lisa TAG",
|
||||||
"automation_title": "TAG {name} on skannitud",
|
"automation_title": "TAG {name} on skannitud",
|
||||||
"caption": "TAGid",
|
"caption": "TAGid",
|
||||||
@ -2631,7 +2632,7 @@
|
|||||||
"no_entity_more_info": "Lisateabe kuvamise olem puudub",
|
"no_entity_more_info": "Lisateabe kuvamise olem puudub",
|
||||||
"no_entity_toggle": "Lülitamiseks vajalik olem puudub",
|
"no_entity_toggle": "Lülitamiseks vajalik olem puudub",
|
||||||
"no_navigation_path": "Navigeerimisteed pole määratud",
|
"no_navigation_path": "Navigeerimisteed pole määratud",
|
||||||
"no_service": "Täitmiseks pole teenust määratud",
|
"no_service": "Käivitamiseks pole teenust määratud",
|
||||||
"no_url": "Avamiseks vajalik link puudub"
|
"no_url": "Avamiseks vajalik link puudub"
|
||||||
},
|
},
|
||||||
"confirm_delete": "Oled kindel, et soovid selle kaardi kustutada?",
|
"confirm_delete": "Oled kindel, et soovid selle kaardi kustutada?",
|
||||||
|
@ -1297,7 +1297,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"detail": {
|
"detail": {
|
||||||
"delete": "حذف",
|
"delete": "حذف",
|
||||||
"name": "نام",
|
"name": "نام",
|
||||||
|
@ -2070,7 +2070,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Lisää tunniste",
|
"add_tag": "Lisää tunniste",
|
||||||
"automation_title": "Tunniste {name} skannataan",
|
"automation_title": "Tunniste {name} skannataan",
|
||||||
"caption": "Tunnisteet",
|
"caption": "Tunnisteet",
|
||||||
|
@ -2139,7 +2139,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Ajouter une balise",
|
"add_tag": "Ajouter une balise",
|
||||||
"automation_title": "La balise {name} est analysée",
|
"automation_title": "La balise {name} est analysée",
|
||||||
"caption": "Balises",
|
"caption": "Balises",
|
||||||
|
@ -1771,7 +1771,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "הוסף תג",
|
"add_tag": "הוסף תג",
|
||||||
"automation_title": "התג {name} נסרק",
|
"automation_title": "התג {name} נסרק",
|
||||||
"caption": "תגים",
|
"caption": "תגים",
|
||||||
|
@ -2098,7 +2098,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Címke hozzáadása",
|
"add_tag": "Címke hozzáadása",
|
||||||
"automation_title": "{name} címke beolvasva",
|
"automation_title": "{name} címke beolvasva",
|
||||||
"caption": "Címkék",
|
"caption": "Címkék",
|
||||||
|
@ -40,6 +40,27 @@
|
|||||||
"heating": "Memanaskan",
|
"heating": "Memanaskan",
|
||||||
"idle": "Diam",
|
"idle": "Diam",
|
||||||
"off": "Mati"
|
"off": "Mati"
|
||||||
|
},
|
||||||
|
"preset_mode": {
|
||||||
|
"activity": "Aktivitas",
|
||||||
|
"away": "Keluar",
|
||||||
|
"comfort": "Nyaman",
|
||||||
|
"eco": "Eco",
|
||||||
|
"home": "Rumah",
|
||||||
|
"none": "Tidak ada",
|
||||||
|
"sleep": "Tidur"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"humidifier": {
|
||||||
|
"mode": {
|
||||||
|
"auto": "Otomatis",
|
||||||
|
"away": "Keluar",
|
||||||
|
"baby": "Bayi",
|
||||||
|
"comfort": "Nyaman",
|
||||||
|
"eco": "Eco",
|
||||||
|
"home": "Rumah",
|
||||||
|
"normal": "Normal",
|
||||||
|
"sleep": "Tidur"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -58,6 +79,7 @@
|
|||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
"entity_not_found": "Entitas tidak ditemukan",
|
"entity_not_found": "Entitas tidak ditemukan",
|
||||||
|
"error": "Kesalahan",
|
||||||
"unavailable": "Tak Tersedia",
|
"unavailable": "Tak Tersedia",
|
||||||
"unknown": "Tak Diketahui"
|
"unknown": "Tak Diketahui"
|
||||||
},
|
},
|
||||||
@ -171,7 +193,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Batalkan",
|
"cancel": "Batalkan",
|
||||||
"cancel_multiple": "Batalkan {number}"
|
"cancel_multiple": "Batalkan {number}",
|
||||||
|
"run": "Jalankan"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Jalankan"
|
"run": "Jalankan"
|
||||||
@ -343,6 +366,16 @@
|
|||||||
"by_service": "berdasarkan layanan",
|
"by_service": "berdasarkan layanan",
|
||||||
"entries_not_found": "Tidak ada entri buku log yang ditemukan.",
|
"entries_not_found": "Tidak ada entri buku log yang ditemukan.",
|
||||||
"messages": {
|
"messages": {
|
||||||
|
"became_unavailable": "menjadi tidak tersedia",
|
||||||
|
"changed_to_state": "berubah menjadi {state}",
|
||||||
|
"cleared_device_class": "dibersihkan (tidak ada {device_class} yang terdeteksi)",
|
||||||
|
"detected_device_class": "terdeteksi {device_class}",
|
||||||
|
"set": "disetel",
|
||||||
|
"turned_off": "dimatikan",
|
||||||
|
"turned_on": "dinyalakan",
|
||||||
|
"was_at_home": "terdeteksi di rumah",
|
||||||
|
"was_at_state": "terdeteksi pada {state}",
|
||||||
|
"was_away": "terdeteksi keluar",
|
||||||
"was_closed": "telah ditutup",
|
"was_closed": "telah ditutup",
|
||||||
"was_connected": "telah terhubung",
|
"was_connected": "telah terhubung",
|
||||||
"was_disconnected": "telah terputus",
|
"was_disconnected": "telah terputus",
|
||||||
@ -376,9 +409,33 @@
|
|||||||
"music": "Musik",
|
"music": "Musik",
|
||||||
"playlist": "Daftar Putar",
|
"playlist": "Daftar Putar",
|
||||||
"podcast": "Podcast",
|
"podcast": "Podcast",
|
||||||
"season": "Musim"
|
"season": "Musim",
|
||||||
|
"track": "Lacak",
|
||||||
|
"tv_show": "Acara TV",
|
||||||
|
"url": "URL",
|
||||||
|
"video": "Video"
|
||||||
},
|
},
|
||||||
"learn_adding_local_media": "Pelajari lebih lanjut tentang menambahkan media di {documentation}."
|
"documentation": "dokumentasi",
|
||||||
|
"learn_adding_local_media": "Pelajari lebih lanjut tentang menambahkan media di {documentation}.",
|
||||||
|
"local_media_files": "Tempatkan file video, audio, dan gambar Anda di direktori media untuk dapat menelusuri dan memutarnya di browser atau pada pemutar media yang didukung.",
|
||||||
|
"media_browsing_error": "Kesalahan Browser Media",
|
||||||
|
"media_not_supported": "Pemutar Media Browser tidak mendukung jenis media ini",
|
||||||
|
"media_player": "Pemutar Media",
|
||||||
|
"media-player-browser": "Browser Pemutar Media",
|
||||||
|
"no_items": "Tidak ada item",
|
||||||
|
"no_local_media_found": "Tidak ditemukan media lokal",
|
||||||
|
"no_media_folder": "Sepertinya Anda belum membuat direktori media.",
|
||||||
|
"pick": "Pilih",
|
||||||
|
"pick-media": "Pilih Media",
|
||||||
|
"play": "Putar",
|
||||||
|
"play-media": "Putar Media",
|
||||||
|
"setup_local_help": "Periksa {documentation} tentang cara menyiapkan media lokal.",
|
||||||
|
"video_not_supported": "Browser Anda tidak mendukung elemen video.",
|
||||||
|
"web-browser": "Browser Web"
|
||||||
|
},
|
||||||
|
"picture-upload": {
|
||||||
|
"label": "Gambar",
|
||||||
|
"unsupported_format": "Format tidak didukung, pilih gambar JPEG, PNG, atau GIF."
|
||||||
},
|
},
|
||||||
"related-items": {
|
"related-items": {
|
||||||
"area": "Area",
|
"area": "Area",
|
||||||
@ -399,8 +456,18 @@
|
|||||||
"second": "{count} {count, plural,\n one { detik }\n other { detik }\n}",
|
"second": "{count} {count, plural,\n one { detik }\n other { detik }\n}",
|
||||||
"week": "{count} {count, plural,\n one { minggu }\n other { minggu }\n}"
|
"week": "{count} {count, plural,\n one { minggu }\n other { minggu }\n}"
|
||||||
},
|
},
|
||||||
|
"future_duration": {
|
||||||
|
"day": "Dalam {count} {count, plural,\n one {hari}\n other {hari}\n}",
|
||||||
|
"hour": "Dalam {count} {count, plural,\n one {jam}\n other {jam}\n}",
|
||||||
|
"minute": "Dalam {count} {count, plural,\n one {menit}\n other {menit}\n}",
|
||||||
|
"second": "Dalam {count} {count, plural,\n one {detik}\n other {detik}\n}",
|
||||||
|
"week": "Dalam {count} {count, plural,\n one {minggu}\n other {minggu}\n}"
|
||||||
|
},
|
||||||
|
"just_now": "Baru saja",
|
||||||
"never": "Tak pernah",
|
"never": "Tak pernah",
|
||||||
"past_duration": {
|
"past_duration": {
|
||||||
|
"day": "{count} {count, plural,\n one {hari}\n other {hari}\n} lalu",
|
||||||
|
"hour": "{count} {count, plural,\n one {jam}\n other {jam}\n} lalu",
|
||||||
"minute": "{count} {count, plural,\n one {menit}\n other {menit}\n} lalu",
|
"minute": "{count} {count, plural,\n one {menit}\n other {menit}\n} lalu",
|
||||||
"second": "{count} {count, plural,\n one {detik}\n other {detik}\n} lalu",
|
"second": "{count} {count, plural,\n one {detik}\n other {detik}\n} lalu",
|
||||||
"week": "{count} {count, plural,\n one {minggu}\n other {minggu}\n} lalu"
|
"week": "{count} {count, plural,\n one {minggu}\n other {minggu}\n} lalu"
|
||||||
@ -711,6 +778,12 @@
|
|||||||
"errors": {
|
"errors": {
|
||||||
"config": {
|
"config": {
|
||||||
"edit_in_yaml_supported": "Anda masih dapat mengedit konfigurasi Anda di YAML.",
|
"edit_in_yaml_supported": "Anda masih dapat mengedit konfigurasi Anda di YAML.",
|
||||||
|
"editor_not_available": "Tidak ada editor visual yang tersedia untuk tipe \"{type}\".",
|
||||||
|
"editor_not_supported": "Editor visual tidak didukung untuk konfigurasi ini",
|
||||||
|
"error_detected": "Kesalahan konfigurasi terdeteksi",
|
||||||
|
"key_missing": "Kunci yang diperlukan \"{key}\" tidak ada.",
|
||||||
|
"key_not_expected": "Kunci \"{key}\" tidak diharapkan atau tidak didukung oleh editor visual.",
|
||||||
|
"key_wrong_type": "Nilai yang disediakan untuk \"{key}\" tidak didukung oleh editor visual. Kami mendukung ({type_correct}) tetapi diterima ({type_wrong}).",
|
||||||
"no_type_provided": "Tidak ada tipe yang tersedia."
|
"no_type_provided": "Tidak ada tipe yang tersedia."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -721,12 +794,18 @@
|
|||||||
},
|
},
|
||||||
"notification_drawer": {
|
"notification_drawer": {
|
||||||
"click_to_configure": "Klik tombol untuk mengonfigurasi {entity}",
|
"click_to_configure": "Klik tombol untuk mengonfigurasi {entity}",
|
||||||
|
"close": "Tutup",
|
||||||
|
"dismiss_all": "Tutup semua",
|
||||||
"empty": "Tidak Ada Notifikasi",
|
"empty": "Tidak Ada Notifikasi",
|
||||||
"title": "Notifikasi"
|
"title": "Notifikasi"
|
||||||
},
|
},
|
||||||
"notification_toast": {
|
"notification_toast": {
|
||||||
"connection_lost": "Koneksi terputus. Menghubungkan kembali…",
|
"connection_lost": "Koneksi terputus. Menghubungkan kembali…",
|
||||||
"service_call_failed": "Gagal memanggil layanan {service}."
|
"dismiss": "Tutup",
|
||||||
|
"service_call_failed": "Gagal memanggil layanan {service}.",
|
||||||
|
"started": "Home Assistant telah dimulai!",
|
||||||
|
"starting": "Home Assistant sedang dimulai, belum semuanya akan tersedia hingga selesai.",
|
||||||
|
"triggered": "Dipicu {name}"
|
||||||
},
|
},
|
||||||
"panel": {
|
"panel": {
|
||||||
"config": {
|
"config": {
|
||||||
@ -2083,7 +2162,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Tambahkan tag",
|
"add_tag": "Tambahkan tag",
|
||||||
"automation_title": "Tag {name} dipindai",
|
"automation_title": "Tag {name} dipindai",
|
||||||
"caption": "Tag",
|
"caption": "Tag",
|
||||||
@ -2434,24 +2513,87 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"custom": {
|
||||||
|
"external_panel": {
|
||||||
|
"complete_access": "Ini akan memiliki akses ke semua data di Home Assistant.",
|
||||||
|
"question_trust": "Apakah Anda mempercayai panel eksternal {name} di {link}?"
|
||||||
|
}
|
||||||
|
},
|
||||||
"developer-tools": {
|
"developer-tools": {
|
||||||
"tabs": {
|
"tabs": {
|
||||||
"events": {
|
"events": {
|
||||||
"title": "Peristiwa"
|
"alert_event_type": "Jenis peristiwa adalah bidang wajib diisi",
|
||||||
|
"available_events": "Peristiwa yang Tersedia",
|
||||||
|
"data": "Data Peristiwa (YAML, opsional)",
|
||||||
|
"documentation": "Dokumentasi Peristiwa.",
|
||||||
|
"title": "Peristiwa",
|
||||||
|
"type": "Jenis Peristiwa"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
"title": "Layanan"
|
"accepts_target": "Layanan ini menerima target, misalnya: 'entity_id: light.bed_light'",
|
||||||
|
"all_parameters": "Semua parameter yang tersedia",
|
||||||
|
"call_service": "Panggil Layanan",
|
||||||
|
"column_description": "Deskripsi",
|
||||||
|
"column_example": "Contoh",
|
||||||
|
"column_parameter": "Parameter",
|
||||||
|
"description": "Alat pengembang untuk layanan memungkinkan Anda memanggil layanan apa pun yang tersedia di Home Assistant.",
|
||||||
|
"fill_example_data": "Isi dengan Data Contoh",
|
||||||
|
"title": "Layanan",
|
||||||
|
"ui_mode": "Masuk ke mode antarmuka",
|
||||||
|
"yaml_mode": "Masuk ke mode YAML",
|
||||||
|
"yaml_parameters": "Parameter hanya tersedia dalam mode YAML"
|
||||||
},
|
},
|
||||||
"states": {
|
"states": {
|
||||||
|
"alert_entity_field": "Entitas adalah bidang wajib",
|
||||||
|
"attributes": "Atribut",
|
||||||
|
"copy_id": "Salin ID ke papan klip",
|
||||||
|
"current_entities": "Entitas saat ini",
|
||||||
|
"description2": "Ini tidak akan berkomunikasi dengan perangkat yang sebenarnya.",
|
||||||
|
"entity": "Entitas",
|
||||||
|
"filter_attributes": "Filter atribut",
|
||||||
|
"filter_entities": "Filter entitas",
|
||||||
|
"filter_states": "Filter status",
|
||||||
|
"last_changed": "Terakhir diubah",
|
||||||
|
"last_updated": "Terakhir diperbarui",
|
||||||
|
"more_info": "Info Lebih Lanjut",
|
||||||
|
"no_entities": "Tidak ada entitas",
|
||||||
|
"set_state": "Setel Status",
|
||||||
|
"state": "Status",
|
||||||
|
"state_attributes": "Atribut status (YAML, opsional)",
|
||||||
"title": "Status"
|
"title": "Status"
|
||||||
},
|
},
|
||||||
"templates": {
|
"templates": {
|
||||||
|
"description": "Template dirender menggunakan mesin templat Jinja2 dengan beberapa ekstensi khusus Home Assistant.",
|
||||||
|
"domain": "Domain",
|
||||||
|
"editor": "Editor templat",
|
||||||
|
"entity": "Entitas",
|
||||||
|
"jinja_documentation": "Dokumentasi templat Jinja2",
|
||||||
"no_listeners": "Templat ini tidak mendengarkan peristiwa apa pun dan tidak akan diperbarui secara otomatis.",
|
"no_listeners": "Templat ini tidak mendengarkan peristiwa apa pun dan tidak akan diperbarui secara otomatis.",
|
||||||
|
"reset": "Setel ulang ke template demo",
|
||||||
|
"result_type": "Jenis hasil",
|
||||||
|
"template_extensions": "Ekstensi templat Home Assistant",
|
||||||
"time": "Templat ini diperbarui pada awal setiap menit.",
|
"time": "Templat ini diperbarui pada awal setiap menit.",
|
||||||
"title": "Templat"
|
"title": "Templat",
|
||||||
|
"unknown_error_template": "Kesalahan tidak diketahui saat merender templat"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"history": {
|
||||||
|
"ranges": {
|
||||||
|
"last_week": "Minggu lalu",
|
||||||
|
"this_week": "Minggu ini",
|
||||||
|
"today": "Hari ini",
|
||||||
|
"yesterday": "Kemarin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"logbook": {
|
||||||
|
"ranges": {
|
||||||
|
"last_week": "Minggu lalu",
|
||||||
|
"this_week": "Minggu ini",
|
||||||
|
"today": "Hari ini",
|
||||||
|
"yesterday": "Kemarin"
|
||||||
|
}
|
||||||
|
},
|
||||||
"lovelace": {
|
"lovelace": {
|
||||||
"add_entities": {
|
"add_entities": {
|
||||||
"generated_unsupported": "Anda hanya dapat menggunakan fungsi ini jika Anda telah mengontrol antarmuka Lovelace.",
|
"generated_unsupported": "Anda hanya dapat menggunakan fungsi ini jika Anda telah mengontrol antarmuka Lovelace.",
|
||||||
@ -2926,10 +3068,20 @@
|
|||||||
"empty": "Anda tidak memiliki pesan apa pun",
|
"empty": "Anda tidak memiliki pesan apa pun",
|
||||||
"playback_title": "Pemutaran pesan"
|
"playback_title": "Pemutaran pesan"
|
||||||
},
|
},
|
||||||
|
"my": {
|
||||||
|
"component_not_loaded": "Pengalihan ini tidak didukung oleh instans Home Assistant Anda. Anda memerlukan integrasi {integrasi} untuk menggunakan pengalihan ini.",
|
||||||
|
"documentation": "dokumentasi",
|
||||||
|
"error": "Terjadi kesalahan yang tidak diketahui",
|
||||||
|
"faq_link": "FAQ Home Assistant Saya",
|
||||||
|
"no_supervisor": "Pengalihan ini tidak didukung oleh instalasi Home Assistant Anda. Pengalihan ini memerlukan metode instalasi Home Assistant Operating System atau Home Assistant Supervised. Untuk informasi selengkapnya, lihat {docs_link}.",
|
||||||
|
"not_supported": "Pengalihan ini tidak didukung oleh instans Home Assistant Anda. Periksa {link} tentang pengalihan yang didukung dan versi mana mulai diperkenalkan."
|
||||||
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
"abort_intro": "Proses masuk dibatalkan",
|
"abort_intro": "Proses masuk dibatalkan",
|
||||||
"authorizing_client": "Anda akan memberi akses {clientId} ke instans Home Assistant Anda.",
|
"authorizing_client": "Anda akan memberi akses {clientId} ke instans Home Assistant Anda.",
|
||||||
"form": {
|
"form": {
|
||||||
|
"error": "Kesalahan: {error}",
|
||||||
|
"next": "Berikutnya",
|
||||||
"providers": {
|
"providers": {
|
||||||
"command_line": {
|
"command_line": {
|
||||||
"abort": {
|
"abort": {
|
||||||
@ -3002,6 +3154,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"trusted_networks": {
|
"trusted_networks": {
|
||||||
|
"abort": {
|
||||||
|
"not_allowed": "Komputer Anda tidak diperbolehkan."
|
||||||
|
},
|
||||||
"step": {
|
"step": {
|
||||||
"init": {
|
"init": {
|
||||||
"data": {
|
"data": {
|
||||||
@ -3012,33 +3167,91 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"start_over": "Mulai dari awal",
|
||||||
"unknown_error": "Ada yang salah",
|
"unknown_error": "Ada yang salah",
|
||||||
"working": "Mohon tunggu"
|
"working": "Mohon tunggu"
|
||||||
},
|
},
|
||||||
"initializing": "Inisialisasi",
|
"initializing": "Inisialisasi",
|
||||||
|
"logging_in_to_with": "Masuk ke **{locationName}** dengan **{authProviderName}**.",
|
||||||
"logging_in_with": "Masuk dengan **{authProviderName}**.",
|
"logging_in_with": "Masuk dengan **{authProviderName}**.",
|
||||||
"pick_auth_provider": "Atau masuk dengan"
|
"pick_auth_provider": "Atau masuk dengan"
|
||||||
},
|
},
|
||||||
|
"page-demo": {
|
||||||
|
"cards": {
|
||||||
|
"demo": {
|
||||||
|
"demo_by": "oleh {name}",
|
||||||
|
"introduction": "Selamat datang di rumah! Anda berhasil membuka demo Home Assistant, tempat kami menampilkan antarmuka terbaik yang dibuat oleh komunitas kami.",
|
||||||
|
"learn_more": "Pelajari lebih lanjut tentang Home Assistant",
|
||||||
|
"next_demo": "Demo berikutnya"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"config": {
|
||||||
|
"arsaboo": {
|
||||||
|
"labels": {
|
||||||
|
"activity": "Aktivitas",
|
||||||
|
"air": "Udara",
|
||||||
|
"commute_home": "Perjalanan ke Rumah",
|
||||||
|
"entertainment": "Hiburan",
|
||||||
|
"hdmi_input": "Input HDMI",
|
||||||
|
"hdmi_switcher": "Pengalih HDMI",
|
||||||
|
"information": "Informasi",
|
||||||
|
"lights": "Lampu",
|
||||||
|
"morning_commute": "Perjalanan Pagi",
|
||||||
|
"total_tv_time": "Total Waktu TV",
|
||||||
|
"turn_tv_off": "Matikan Televisi",
|
||||||
|
"volume": "Volume"
|
||||||
|
},
|
||||||
|
"names": {
|
||||||
|
"family_room": "Ruang Keluarga",
|
||||||
|
"hallway": "Lorong",
|
||||||
|
"kitchen": "Dapur",
|
||||||
|
"left": "Kiri",
|
||||||
|
"master_bedroom": "Kamar Tidur Utama",
|
||||||
|
"mirror": "Cermin",
|
||||||
|
"patio": "Teras",
|
||||||
|
"right": "Kanan",
|
||||||
|
"temperature_study": "Studi Suhu",
|
||||||
|
"upstairs": "Atas"
|
||||||
|
},
|
||||||
|
"unit": {
|
||||||
|
"minutes_abbr": "min",
|
||||||
|
"watching": "menonton"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"page-onboarding": {
|
"page-onboarding": {
|
||||||
"core-config": {
|
"core-config": {
|
||||||
"button_detect": "Deteksi",
|
"button_detect": "Deteksi",
|
||||||
"finish": "Berikutnya",
|
"finish": "Berikutnya",
|
||||||
"intro": "Halo {name}, selamat datang di Home Assistant. Nama apa yang ingin diberikan untuk rumah Anda?",
|
"intro": "Halo {name}, selamat datang di Home Assistant. Nama apa yang ingin diberikan untuk rumah Anda?",
|
||||||
|
"intro_location": "Kami ingin mengetahui tempat tinggal Anda. Informasi ini akan membantu menampilkan informasi dan menyiapkan otomatisasi berbasis matahari. Data ini tidak pernah dibagikan di luar jaringan Anda.",
|
||||||
"intro_location_detect": "Kami dapat membantu Anda mengisi informasi ini dengan membuat permintaan satu kali ke layanan eksternal.",
|
"intro_location_detect": "Kami dapat membantu Anda mengisi informasi ini dengan membuat permintaan satu kali ke layanan eksternal.",
|
||||||
|
"location_name": "Beri nama instalasi Home Assistant Anda",
|
||||||
"location_name_default": "Rumah"
|
"location_name_default": "Rumah"
|
||||||
},
|
},
|
||||||
"integration": {
|
"integration": {
|
||||||
"finish": "Selesai"
|
"finish": "Selesai",
|
||||||
|
"intro": "Perangkat dan layanan diwakili di Home Assistant sebagai integrasi. Anda dapat mengaturnya sekarang, atau melakukannya nanti dari layar konfigurasi.",
|
||||||
|
"more_integrations": "Lebih Lanjut"
|
||||||
},
|
},
|
||||||
"intro": "Siap untuk membuat rumah Anda lebih hidup, merebut kembali privasi Anda, dan bergabung dengan komunitas pemikir di seluruh dunia?",
|
"intro": "Siap untuk membuat rumah Anda lebih hidup, merebut kembali privasi Anda, dan bergabung dengan komunitas pemikir di seluruh dunia?",
|
||||||
|
"restore": {
|
||||||
|
"description": "Atau, Anda dapat memulihkan dari snapshot sebelumnya.",
|
||||||
|
"hide_log": "Sembunyikan log lengkap",
|
||||||
|
"in_progress": "Pemulihan sedang berlangsung",
|
||||||
|
"show_log": "Tampilkan log lengkap"
|
||||||
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"create_account": "Buat Akun",
|
"create_account": "Buat Akun",
|
||||||
"data": {
|
"data": {
|
||||||
"name": "Nama",
|
"name": "Nama",
|
||||||
"password": "Kata Sandi",
|
"password": "Kata Sandi",
|
||||||
|
"password_confirm": "Konfirmasi Kata Sandi",
|
||||||
"username": "Nama Pengguna"
|
"username": "Nama Pengguna"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
|
"password_not_match": "Kata sandi tidak cocok",
|
||||||
"required_fields": "Isi semua bidang yang wajib diisi"
|
"required_fields": "Isi semua bidang yang wajib diisi"
|
||||||
},
|
},
|
||||||
"intro": "Mari kita mulai dengan membuat akun pengguna.",
|
"intro": "Mari kita mulai dengan membuat akun pengguna.",
|
||||||
@ -3046,28 +3259,82 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
|
"advanced_mode": {
|
||||||
|
"description": "Temukan fitur lanjutan.",
|
||||||
|
"link_promo": "Pelajari lebih lanjut",
|
||||||
|
"title": "Mode Tingkat Lanjut"
|
||||||
|
},
|
||||||
|
"change_password": {
|
||||||
|
"confirm_new_password": "Konfirmasi Kata Sandi Baru",
|
||||||
|
"current_password": "Kata Sandi Saat Ini",
|
||||||
|
"error_new_is_old": "Kata sandi baru harus berbeda dari kata sandi saat ini",
|
||||||
|
"error_new_mismatch": "Kata sandi baru yang dimasukkan tidak sama",
|
||||||
|
"error_required": "Wajib",
|
||||||
|
"header": "Ubah Kata Sandi",
|
||||||
|
"new_password": "Kata Sandi Baru",
|
||||||
|
"submit": "Kirimkan",
|
||||||
|
"success": "Kata sandi berhasil diubah"
|
||||||
|
},
|
||||||
|
"current_user": "Anda saat ini masuk sebagai {fullName} .",
|
||||||
|
"customize_sidebar": {
|
||||||
|
"button": "Edit",
|
||||||
|
"description": "Anda juga dapat menekan dan menahan header bilah samping untuk mengaktifkan mode edit.",
|
||||||
|
"header": "Ubah urutan dan sembunyikan item dari bilah samping"
|
||||||
|
},
|
||||||
|
"dashboard": {
|
||||||
|
"description": "Pilih dasbor baku untuk perangkat ini.",
|
||||||
|
"dropdown_label": "Dasbor",
|
||||||
|
"header": "Dasbor"
|
||||||
|
},
|
||||||
|
"enable_shortcuts": {
|
||||||
|
"description": "Aktifkan atau nonaktifkan pintasan keyboard untuk melakukan berbagai tindakan di antarmuka.",
|
||||||
|
"header": "Pintasan Keyboard"
|
||||||
|
},
|
||||||
|
"force_narrow": {
|
||||||
|
"description": "Ini akan menyembunyikan bilah samping secara baku, mirip dengan pengalaman seluler.",
|
||||||
|
"header": "Selalu sembunyikan bilah samping"
|
||||||
|
},
|
||||||
|
"is_owner": "Anda adalah pemilik.",
|
||||||
"language": {
|
"language": {
|
||||||
"dropdown_label": "Bahasa",
|
"dropdown_label": "Bahasa",
|
||||||
"header": "Bahasa",
|
"header": "Bahasa",
|
||||||
"link_promo": "Bantu menerjemahkan"
|
"link_promo": "Bantu menerjemahkan"
|
||||||
},
|
},
|
||||||
|
"logout": "Keluar",
|
||||||
"logout_text": "Yakin ingin keluar?",
|
"logout_text": "Yakin ingin keluar?",
|
||||||
|
"logout_title": "Keluar?",
|
||||||
"long_lived_access_tokens": {
|
"long_lived_access_tokens": {
|
||||||
"confirm_delete": "Yakin ingin menghapus token akses untuk {name}?",
|
"confirm_delete": "Yakin ingin menghapus token akses untuk {name}?",
|
||||||
"create": "Buat Token",
|
"create": "Buat Token",
|
||||||
"create_failed": "Gagal membuat token akses.",
|
"create_failed": "Gagal membuat token akses.",
|
||||||
|
"created": "Dibuat pada {date}",
|
||||||
"delete_failed": "Gagal menghapus token akses.",
|
"delete_failed": "Gagal menghapus token akses.",
|
||||||
"description": "Buat token akses yang berumur panjang untuk memungkinkan skrip Anda berinteraksi dengan Home Assistant. Setiap token akan berlaku selama 10 tahun sejak pembuatan. Berikut adalah token akses yang berumur panjang yang saat ini aktif.",
|
"description": "Buat token akses yang berumur panjang untuk memungkinkan skrip Anda berinteraksi dengan Home Assistant. Setiap token akan berlaku selama 10 tahun sejak pembuatan. Berikut adalah token akses yang berumur panjang yang saat ini aktif.",
|
||||||
"empty_state": "Anda belum memiliki token akses yang berumur panjang.",
|
"empty_state": "Anda belum memiliki token akses yang berumur panjang.",
|
||||||
"header": "Token Akses yang Berumur Panjang",
|
"header": "Token Akses yang Berumur Panjang",
|
||||||
"learn_auth_requests": "Pelajari cara membuat permintaan yang diautentikasi.",
|
"learn_auth_requests": "Pelajari cara membuat permintaan yang diautentikasi.",
|
||||||
|
"name": "Nama",
|
||||||
"prompt_copy_token": "Salin token akses Anda. Ini tidak akan ditampilkan lagi.",
|
"prompt_copy_token": "Salin token akses Anda. Ini tidak akan ditampilkan lagi.",
|
||||||
"prompt_name": "Beri nama token"
|
"prompt_name": "Beri nama token"
|
||||||
},
|
},
|
||||||
|
"mfa_setup": {
|
||||||
|
"close": "Tutup",
|
||||||
|
"step_done": "Penyiapan selesai untuk {step}",
|
||||||
|
"submit": "Kirimkan",
|
||||||
|
"title_aborted": "Dibatalkan",
|
||||||
|
"title_success": "Sukses!"
|
||||||
|
},
|
||||||
"mfa": {
|
"mfa": {
|
||||||
"confirm_disable": "Yakin ingin menonaktifkan {name}?"
|
"confirm_disable": "Yakin ingin menonaktifkan {name}?",
|
||||||
|
"disable": "Nonaktifkan",
|
||||||
|
"enable": "Aktifkan",
|
||||||
|
"header": "Modul Autentikasi Multifaktor"
|
||||||
},
|
},
|
||||||
"push_notifications": {
|
"push_notifications": {
|
||||||
|
"add_device_prompt": {
|
||||||
|
"input_label": "Nama perangkat",
|
||||||
|
"title": "Apa nama perangkat ini?"
|
||||||
|
},
|
||||||
"description": "Kirim notifikasi ke perangkat ini.",
|
"description": "Kirim notifikasi ke perangkat ini.",
|
||||||
"error_load_platform": "Konfigurasi notify.html5.",
|
"error_load_platform": "Konfigurasi notify.html5.",
|
||||||
"error_use_https": "SSL harus diaktifkan untuk antarmuka.",
|
"error_use_https": "SSL harus diaktifkan untuk antarmuka.",
|
||||||
@ -3086,16 +3353,37 @@
|
|||||||
"not_used": "Belum pernah digunakan",
|
"not_used": "Belum pernah digunakan",
|
||||||
"token_title": "Buat token baru untuk {clientId}"
|
"token_title": "Buat token baru untuk {clientId}"
|
||||||
},
|
},
|
||||||
|
"suspend": {
|
||||||
|
"description": "Haruskah koneksi ke server ditutup setelah disembunyikan selama 5 menit?",
|
||||||
|
"header": "Tutup koneksi secara otomatis"
|
||||||
|
},
|
||||||
"themes": {
|
"themes": {
|
||||||
|
"accent_color": "Warna aksen",
|
||||||
|
"dark_mode": {
|
||||||
|
"auto": "Otomatis",
|
||||||
|
"dark": "Gelap",
|
||||||
|
"light": "Terang"
|
||||||
|
},
|
||||||
"dropdown_label": "Tema",
|
"dropdown_label": "Tema",
|
||||||
"error_no_theme": "Tidak ada tema yang tersedia.",
|
"error_no_theme": "Tidak ada tema yang tersedia.",
|
||||||
"header": "Tema",
|
"header": "Tema",
|
||||||
"link_promo": "Pelajari tentang tema"
|
"link_promo": "Pelajari tentang tema",
|
||||||
|
"primary_color": "Warna primer",
|
||||||
|
"reset": "Setel ulang"
|
||||||
|
},
|
||||||
|
"vibrate": {
|
||||||
|
"description": "Aktifkan atau nonaktifkan getaran pada perangkat ini saat mengontrol perangkat.",
|
||||||
|
"header": "Bergetar"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"shopping_list": {
|
||||||
|
"start_conversation": "Mulai percakapan"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"external_app_configuration": "Konfigurasi Aplikasi"
|
"done": "Selesai",
|
||||||
|
"external_app_configuration": "Konfigurasi Aplikasi",
|
||||||
|
"sidebar_toggle": "Alihkan Bilah Samping"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1383,7 +1383,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"detail": {
|
"detail": {
|
||||||
"create": "Stofna",
|
"create": "Stofna",
|
||||||
"delete": "Eyða",
|
"delete": "Eyða",
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Ultima attivazione",
|
"last_triggered": "Ultima attivazione",
|
||||||
"trigger": "Esegui"
|
"trigger": "Esegui azioni"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Immagine non disponibile"
|
"not_available": "Immagine non disponibile"
|
||||||
@ -164,10 +164,10 @@
|
|||||||
"speed": "Velocità"
|
"speed": "Velocità"
|
||||||
},
|
},
|
||||||
"humidifier": {
|
"humidifier": {
|
||||||
"humidity": "Target umidità",
|
"humidity": "Umidità desiderata",
|
||||||
"mode": "Modalità",
|
"mode": "Modalità",
|
||||||
"on_entity": "{name} acceso",
|
"on_entity": "{name} acceso",
|
||||||
"target_humidity_entity": "{name} target umidità"
|
"target_humidity_entity": "{name} umidità desiderata"
|
||||||
},
|
},
|
||||||
"light": {
|
"light": {
|
||||||
"brightness": "Luminosità",
|
"brightness": "Luminosità",
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Annulla",
|
"cancel": "Annulla",
|
||||||
"cancel_multiple": "Annulla {number}"
|
"cancel_multiple": "Annulla {number}",
|
||||||
|
"run": "Esegui"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Esegui"
|
"run": "Esegui"
|
||||||
@ -227,7 +228,7 @@
|
|||||||
"currently": "Attualmente",
|
"currently": "Attualmente",
|
||||||
"on_off": "Acceso / spento",
|
"on_off": "Acceso / spento",
|
||||||
"operation": "Operazione",
|
"operation": "Operazione",
|
||||||
"target_temperature": "Temperatura da raggiungere"
|
"target_temperature": "Temperatura desiderata"
|
||||||
},
|
},
|
||||||
"weather": {
|
"weather": {
|
||||||
"attributes": {
|
"attributes": {
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Sì"
|
"yes": "Sì"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Componente aggiuntivo",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "Il recupero dei componenti aggiuntivi ha restituito un errore.",
|
||||||
|
"title": "Errore durante il recupero dei componenti aggiuntivi"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "Nessun Supervisore trovato, quindi non è stato possibile caricare i componenti aggiuntivi.",
|
||||||
|
"title": "Nessun Supervisore"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Aggiungi",
|
"add": "Aggiungi",
|
||||||
@ -467,6 +481,12 @@
|
|||||||
"week": "{count} {count, plural,\n one {settimana}\n other {settimane}\n} fa"
|
"week": "{count} {count, plural,\n one {settimana}\n other {settimane}\n} fa"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"service-control": {
|
||||||
|
"required": "Questo campo è obbligatorio",
|
||||||
|
"service_data": "Dati del servizio",
|
||||||
|
"target": "Destinazioni",
|
||||||
|
"target_description": "Cosa deve essere utilizzato da questo servizio come aree, dispositivi o entità di destinazione."
|
||||||
|
},
|
||||||
"service-picker": {
|
"service-picker": {
|
||||||
"service": "Servizio"
|
"service": "Servizio"
|
||||||
},
|
},
|
||||||
@ -474,8 +494,8 @@
|
|||||||
"add_area_id": "Scegli area",
|
"add_area_id": "Scegli area",
|
||||||
"add_device_id": "Scegli dispositivo",
|
"add_device_id": "Scegli dispositivo",
|
||||||
"add_entity_id": "Scegli entità",
|
"add_entity_id": "Scegli entità",
|
||||||
"expand_area_id": "Espandi quest'area nei dispositivi e nelle entità separate che contiene. Dopo l'espansione non aggiornerà i dispositivi e le entità quando l'area cambia.",
|
"expand_area_id": "Espandi quest'area nei dispositivi e nelle entità separate che contiene. Dopo l'espansione, non aggiornerà i dispositivi e le entità quando l'area cambia.",
|
||||||
"expand_device_id": "Espandi questo dispositivo in entità separate. Dopo l'espansione non aggiornerà le entità quando il dispositivo cambia.",
|
"expand_device_id": "Espandi questo dispositivo nelle entità separate che contiene. Dopo l'espansione, non aggiornerà le entità quando il dispositivo cambia.",
|
||||||
"remove_area_id": "Rimuovi area",
|
"remove_area_id": "Rimuovi area",
|
||||||
"remove_device_id": "Rimuovi dispositivo",
|
"remove_device_id": "Rimuovi dispositivo",
|
||||||
"remove_entity_id": "Rimuovi entità"
|
"remove_entity_id": "Rimuovi entità"
|
||||||
@ -857,7 +877,7 @@
|
|||||||
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
||||||
"duplicate": "Duplica",
|
"duplicate": "Duplica",
|
||||||
"header": "Azioni",
|
"header": "Azioni",
|
||||||
"introduction": "Le azioni sono ciò che Home Assistant eseguirà quando un'attivazione (o trigger) avvia un'automazione.",
|
"introduction": "Le Azioni sono ciò che Home Assistant eseguirà quando un'attivazione (o trigger) avvia un'automazione.",
|
||||||
"learn_more": "Per saperne di più sulle azioni",
|
"learn_more": "Per saperne di più sulle azioni",
|
||||||
"name": "Azione",
|
"name": "Azione",
|
||||||
"type_select": "Tipo di azione",
|
"type_select": "Tipo di azione",
|
||||||
@ -890,7 +910,8 @@
|
|||||||
},
|
},
|
||||||
"event": {
|
"event": {
|
||||||
"event": "Evento:",
|
"event": "Evento:",
|
||||||
"label": "Attiva Evento"
|
"label": "Attiva evento",
|
||||||
|
"service_data": "Dati del servizio"
|
||||||
},
|
},
|
||||||
"repeat": {
|
"repeat": {
|
||||||
"label": "Ripetere",
|
"label": "Ripetere",
|
||||||
@ -943,10 +964,10 @@
|
|||||||
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
||||||
"duplicate": "Duplica",
|
"duplicate": "Duplica",
|
||||||
"header": "Condizioni",
|
"header": "Condizioni",
|
||||||
"introduction": "Le condizioni sono facoltative e impediranno un'ulteriore esecuzione se non saranno soddisfatte tutte.",
|
"introduction": "Le Condizioni sono facoltative e impediranno l'esecuzione dell'automazione a meno che non siano soddisfatte tutte.",
|
||||||
"learn_more": "Per saperne di più sulle condizioni",
|
"learn_more": "Per saperne di più sulle condizioni",
|
||||||
"name": "Condizione",
|
"name": "Condizione",
|
||||||
"type_select": "Tipo di Condizione",
|
"type_select": "Tipo di condizione",
|
||||||
"type": {
|
"type": {
|
||||||
"and": {
|
"and": {
|
||||||
"label": "E"
|
"label": "E"
|
||||||
@ -1014,7 +1035,7 @@
|
|||||||
"unsupported_condition": "Nessun supporto dell'Interfaccia Utente per la condizione: {condition}"
|
"unsupported_condition": "Nessun supporto dell'Interfaccia Utente per la condizione: {condition}"
|
||||||
},
|
},
|
||||||
"copy_to_clipboard": "Copia negli Appunti",
|
"copy_to_clipboard": "Copia negli Appunti",
|
||||||
"default_name": "Nuova Automazione",
|
"default_name": "Nuova automazione",
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Descrizione",
|
"label": "Descrizione",
|
||||||
"placeholder": "Descrizione facoltativa"
|
"placeholder": "Descrizione facoltativa"
|
||||||
@ -1042,15 +1063,15 @@
|
|||||||
"move_up": "Sposta sopra",
|
"move_up": "Sposta sopra",
|
||||||
"save": "Salva",
|
"save": "Salva",
|
||||||
"triggers": {
|
"triggers": {
|
||||||
"add": "Aggiungi Attivazione",
|
"add": "Aggiungi attivazione",
|
||||||
"delete": "Elimina",
|
"delete": "Elimina",
|
||||||
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
"delete_confirm": "Sei sicuro di voler eliminare questo?",
|
||||||
"duplicate": "Duplica",
|
"duplicate": "Duplica",
|
||||||
"header": "Attivazioni (o Triggers)",
|
"header": "Attivazioni (o Trigger)",
|
||||||
"introduction": "L'Attivazione (o Trigger) avvia l'elaborazione di una regola di automazione. È possibile specificare più Attivazioni per una stessa regola di automazione. Una volta avviata una Attivazione, Home Assistant convaliderà le Condizioni, se presenti, ed eseguirà l'Azione.",
|
"introduction": "L'Attivazione (o Trigger) avvia l'elaborazione di una regola di automazione. È possibile specificare più Attivazioni per una stessa regola di automazione. Una volta avviata una Attivazione, Home Assistant convaliderà le Condizioni, se presenti, ed eseguirà l'Azione.",
|
||||||
"learn_more": "Per saperne di più sulle Attivazioni (o Triggers)",
|
"learn_more": "Per saperne di più sulle attivazioni (o trigger)",
|
||||||
"name": "Attivazione",
|
"name": "Attivazione",
|
||||||
"type_select": "Tipo di Attivazione",
|
"type_select": "Tipo di attivazione",
|
||||||
"type": {
|
"type": {
|
||||||
"device": {
|
"device": {
|
||||||
"extra_fields": {
|
"extra_fields": {
|
||||||
@ -1066,8 +1087,8 @@
|
|||||||
"context_user_pick": "Seleziona utente",
|
"context_user_pick": "Seleziona utente",
|
||||||
"context_user_picked": "Evento di attivazione dell'utente",
|
"context_user_picked": "Evento di attivazione dell'utente",
|
||||||
"context_users": "Limita agli eventi attivati da",
|
"context_users": "Limita agli eventi attivati da",
|
||||||
"event_data": "Dati dell'Evento",
|
"event_data": "Dati dell'evento",
|
||||||
"event_type": "Tipo di Evento",
|
"event_type": "Tipo di evento",
|
||||||
"label": "Evento"
|
"label": "Evento"
|
||||||
},
|
},
|
||||||
"geo_location": {
|
"geo_location": {
|
||||||
@ -1274,7 +1295,7 @@
|
|||||||
"example_message": "Ciao {name}, puoi riprodurre qualsiasi testo su qualsiasi lettore multimediale supportato!",
|
"example_message": "Ciao {name}, puoi riprodurre qualsiasi testo su qualsiasi lettore multimediale supportato!",
|
||||||
"header": "Prova la sintesi vocale",
|
"header": "Prova la sintesi vocale",
|
||||||
"play": "Riproduci",
|
"play": "Riproduci",
|
||||||
"target": "Bersaglio",
|
"target": "Destinazione",
|
||||||
"target_browser": "Browser"
|
"target_browser": "Browser"
|
||||||
},
|
},
|
||||||
"female": "Donna",
|
"female": "Donna",
|
||||||
@ -1478,6 +1499,7 @@
|
|||||||
"cant_edit": "È possibile modificare solo gli elementi creati nell'Interfaccia Utente.",
|
"cant_edit": "È possibile modificare solo gli elementi creati nell'Interfaccia Utente.",
|
||||||
"caption": "Dispositivi",
|
"caption": "Dispositivi",
|
||||||
"confirm_delete": "Sei sicuro di voler eliminare questo dispositivo?",
|
"confirm_delete": "Sei sicuro di voler eliminare questo dispositivo?",
|
||||||
|
"confirm_disable_config_entry": "Non ci sono più dispositivi per la voce di configurazione {entry_name}, vuoi disabilitare invece la voce di configurazione?",
|
||||||
"confirm_rename_entity_ids": "Vuoi anche rinominare gli ID entità delle tue entità?",
|
"confirm_rename_entity_ids": "Vuoi anche rinominare gli ID entità delle tue entità?",
|
||||||
"confirm_rename_entity_ids_warning": "Questo non cambierà alcuna configurazione (come automazioni, script, scene, plance) che sta attualmente utilizzando queste entità, dovrai aggiornarle tu stesso per utilizzare i nuovi ID entità!",
|
"confirm_rename_entity_ids_warning": "Questo non cambierà alcuna configurazione (come automazioni, script, scene, plance) che sta attualmente utilizzando queste entità, dovrai aggiornarle tu stesso per utilizzare i nuovi ID entità!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1590,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Cancella",
|
"clear": "Cancella",
|
||||||
"filtering_by": "Filtraggio per"
|
"filtering_by": "Filtraggio per",
|
||||||
|
"show": "Mostra"
|
||||||
},
|
},
|
||||||
"header": "Configura Home Assistant",
|
"header": "Configura Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1661,7 +1684,19 @@
|
|||||||
"delete_confirm": "Sei sicuro di voler eliminare questa integrazione?",
|
"delete_confirm": "Sei sicuro di voler eliminare questa integrazione?",
|
||||||
"device_unavailable": "Dispositivo non disponibile",
|
"device_unavailable": "Dispositivo non disponibile",
|
||||||
"devices": "{count} {count, plural, \none {dispositivo}\nother {dispositivi}\n}",
|
"devices": "{count} {count, plural, \none {dispositivo}\nother {dispositivi}\n}",
|
||||||
|
"disable_restart_confirm": "Riavvia Home Assistant per terminare la disabilitazione di questa integrazione",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "Sei sicuro di voler disabilitare questa voce di configurazione? I suoi dispositivi ed entità saranno disabilitati.",
|
||||||
|
"disabled": "Disabilitato",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "dispositivo",
|
||||||
|
"integration": "Integrazione",
|
||||||
|
"user": "utente"
|
||||||
|
},
|
||||||
|
"disabled_cause": "Disabilitato da {causa}"
|
||||||
|
},
|
||||||
"documentation": "Documentazione",
|
"documentation": "Documentazione",
|
||||||
|
"enable_restart_confirm": "Riavvia Home Assistant per completare l'attivazione di questa integrazione",
|
||||||
"entities": "{count} {count, plural, \none {entità}\nother {entità }\n}",
|
"entities": "{count} {count, plural, \none {entità}\nother {entità }\n}",
|
||||||
"entity_unavailable": "Entità non disponibile",
|
"entity_unavailable": "Entità non disponibile",
|
||||||
"firmware": "Firmware: {version}",
|
"firmware": "Firmware: {version}",
|
||||||
@ -1681,8 +1716,10 @@
|
|||||||
"config_flow": {
|
"config_flow": {
|
||||||
"aborted": "Terminato",
|
"aborted": "Terminato",
|
||||||
"close": "Chiudi",
|
"close": "Chiudi",
|
||||||
|
"could_not_load": "Impossibile caricare il flusso di configurazione",
|
||||||
"created_config": "Configurazione creata per {name}.",
|
"created_config": "Configurazione creata per {name}.",
|
||||||
"dismiss": "Chiudi finestra di dialogo",
|
"dismiss": "Chiudi finestra di dialogo",
|
||||||
|
"error": "Errore",
|
||||||
"error_saving_area": "Errore durante il salvataggio dell'area: {error}",
|
"error_saving_area": "Errore durante il salvataggio dell'area: {error}",
|
||||||
"external_step": {
|
"external_step": {
|
||||||
"description": "Questo passaggio richiede di visitare un sito Web esterno per essere completato.",
|
"description": "Questo passaggio richiede di visitare un sito Web esterno per essere completato.",
|
||||||
@ -1691,6 +1728,10 @@
|
|||||||
"finish": "Finito",
|
"finish": "Finito",
|
||||||
"loading_first_time": "Si prega di attendere durante l'installazione dell'integrazione",
|
"loading_first_time": "Si prega di attendere durante l'installazione dell'integrazione",
|
||||||
"not_all_required_fields": "Non tutti i campi obbligatori sono compilati.",
|
"not_all_required_fields": "Non tutti i campi obbligatori sono compilati.",
|
||||||
|
"pick_flow_step": {
|
||||||
|
"new_flow": "No, configura un'altra istanza di {integration}",
|
||||||
|
"title": "Rilevati questi, li vuoi configurare?"
|
||||||
|
},
|
||||||
"submit": "Invia"
|
"submit": "Invia"
|
||||||
},
|
},
|
||||||
"configure": "Configura",
|
"configure": "Configura",
|
||||||
@ -1698,6 +1739,11 @@
|
|||||||
"confirm_new": "Vuoi configurare {integration}?",
|
"confirm_new": "Vuoi configurare {integration}?",
|
||||||
"description": "Gestisci le integrazioni con servizi, dispositivi, ...",
|
"description": "Gestisci le integrazioni con servizi, dispositivi, ...",
|
||||||
"details": "Dettagli dell'integrazione",
|
"details": "Dettagli dell'integrazione",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} disabilitate",
|
||||||
|
"hide_disabled": "Nascondi integrazioni disabilitate",
|
||||||
|
"show_disabled": "Mostra integrazioni disabilitate"
|
||||||
|
},
|
||||||
"discovered": "Rilevato",
|
"discovered": "Rilevato",
|
||||||
"home_assistant_website": "Sito Web di Home Assistant",
|
"home_assistant_website": "Sito Web di Home Assistant",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2034,7 +2080,7 @@
|
|||||||
"id": "ID Entità",
|
"id": "ID Entità",
|
||||||
"id_already_exists": "Questo ID esiste già",
|
"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.",
|
"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": "Utilizza gli Script per eseguire una sequenza di azioni.",
|
"introduction": "Usa 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": {
|
"max": {
|
||||||
@ -2126,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Aggiungi etichetta",
|
"add_tag": "Aggiungi etichetta",
|
||||||
"automation_title": "L'etichetta {name} è scansionata",
|
"automation_title": "L'etichetta {name} è scansionata",
|
||||||
"caption": "Etichette",
|
"caption": "Etichette",
|
||||||
@ -2315,7 +2361,7 @@
|
|||||||
"edit_home_zone_narrow": "Il raggio della zona Casa non può ancora essere modificato dal frontend. La posizione può essere modificata dalla configurazione generale.",
|
"edit_home_zone_narrow": "Il raggio della zona Casa non può ancora essere modificato dal frontend. La posizione può essere modificata dalla configurazione generale.",
|
||||||
"go_to_core_config": "Passare alla configurazione generale?",
|
"go_to_core_config": "Passare alla configurazione generale?",
|
||||||
"home_zone_core_config": "La posizione della zona Casa è modificabile dalla pagina di configurazione generale. Il raggio della zona iniziale non può ancora essere modificato dal frontend. Vuoi andare alla configurazione generale?",
|
"home_zone_core_config": "La posizione della zona Casa è modificabile dalla pagina di configurazione generale. Il raggio della zona iniziale non può ancora essere modificato dal frontend. Vuoi andare alla configurazione generale?",
|
||||||
"introduction": "Le Zone consentono di specificare determinate regioni sulla Terra. Quando una persona si trova all'interno di una Zona, nel suo Stato ci sarà il nome dalla Zona. Le Zone possono anche essere utilizzate come Attivazioni (o Triggers) o Condizioni all'interno delle impostazioni di Automazione.",
|
"introduction": "Le Zone consentono di specificare determinate regioni sulla Terra. Quando una persona si trova all'interno di una Zona, nel suo Stato ci sarà il nome dalla Zona. Le Zone possono anche essere utilizzate come Attivazioni (o Trigger) o Condizioni all'interno delle impostazioni di Automazione.",
|
||||||
"no_zones_created_yet": "Sembra che tu non abbia ancora creato nessuna zona."
|
"no_zones_created_yet": "Sembra che tu non abbia ancora creato nessuna zona."
|
||||||
},
|
},
|
||||||
"zwave_js": {
|
"zwave_js": {
|
||||||
@ -2507,17 +2553,23 @@
|
|||||||
"type": "Tipo di Evento"
|
"type": "Tipo di Evento"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
"accepts_target": "Questo servizio accetta una destinazione, per esempio: `entity_id: light.bed_light`.",
|
||||||
|
"all_parameters": "Tutti i parametri disponibili",
|
||||||
"call_service": "Chiama il Servizio",
|
"call_service": "Chiama il Servizio",
|
||||||
"column_description": "Descrizione",
|
"column_description": "Descrizione",
|
||||||
"column_example": "Esempio",
|
"column_example": "Esempio",
|
||||||
"column_parameter": "Parametro",
|
"column_parameter": "Parametro",
|
||||||
"description": "Lo strumento di sviluppo del servizio consente di chiamare qualsiasi servizio disponibile in Home Assistant.",
|
"description": "Lo strumento di sviluppo del servizio consente di chiamare qualsiasi servizio disponibile in Home Assistant.",
|
||||||
"fill_example_data": "Inserisci dati di esempio",
|
"fill_example_data": "Inserisci dati di esempio",
|
||||||
"title": "Servizi"
|
"title": "Servizi",
|
||||||
|
"ui_mode": "Vai in modalità Interfaccia Utente",
|
||||||
|
"yaml_mode": "Vai in modalità YAML",
|
||||||
|
"yaml_parameters": "Parametri disponibili solo in modalità YAML"
|
||||||
},
|
},
|
||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "Entità è un campo obbligatorio",
|
"alert_entity_field": "Entità è un campo obbligatorio",
|
||||||
"attributes": "Attributi",
|
"attributes": "Attributi",
|
||||||
|
"copy_id": "Copia ID negli appunti",
|
||||||
"current_entities": "Entità correnti",
|
"current_entities": "Entità correnti",
|
||||||
"description1": "Impostare la rappresentazione di un dispositivo all'interno di Home Assistant.",
|
"description1": "Impostare la rappresentazione di un dispositivo all'interno di Home Assistant.",
|
||||||
"description2": "Questo non comunicherà con il dispositivo attuale.",
|
"description2": "Questo non comunicherà con il dispositivo attuale.",
|
||||||
@ -2580,7 +2632,7 @@
|
|||||||
"no_entity_more_info": "Nessuna entità fornita per la finestra di dialogo con ulteriori informazioni",
|
"no_entity_more_info": "Nessuna entità fornita per la finestra di dialogo con ulteriori informazioni",
|
||||||
"no_entity_toggle": "Nessuna entità fornita per attivare / disattivare",
|
"no_entity_toggle": "Nessuna entità fornita per attivare / disattivare",
|
||||||
"no_navigation_path": "Nessun percorso di navigazione specificato",
|
"no_navigation_path": "Nessun percorso di navigazione specificato",
|
||||||
"no_service": "Nessun servizio per l'esecuzione specificato",
|
"no_service": "Nessun servizio da eseguire specificato",
|
||||||
"no_url": "Nessun URL da aprire specificato"
|
"no_url": "Nessun URL da aprire specificato"
|
||||||
},
|
},
|
||||||
"confirm_delete": "Sei sicuro di voler cancellare questa scheda?",
|
"confirm_delete": "Sei sicuro di voler cancellare questa scheda?",
|
||||||
@ -2951,7 +3003,7 @@
|
|||||||
"confirm_remove_config_text": "Genereremo automaticamente le tue viste dell'Interfaccia utente di Lovelace con le tue aree e dispositivi se rimuovi la tua configurazione dell'interfaccia utente di Lovelace.",
|
"confirm_remove_config_text": "Genereremo automaticamente le tue viste dell'Interfaccia utente di Lovelace con le tue aree e dispositivi se rimuovi la tua configurazione dell'interfaccia utente di Lovelace.",
|
||||||
"confirm_remove_config_title": "Sei sicuro di voler rimuovere la tua configurazione dell'Interfaccia Utente di Lovelace?",
|
"confirm_remove_config_title": "Sei sicuro di voler rimuovere la tua configurazione dell'Interfaccia Utente di Lovelace?",
|
||||||
"confirm_unsaved_changes": "Hai delle modifiche non salvate, sei sicuro di voler uscire?",
|
"confirm_unsaved_changes": "Hai delle modifiche non salvate, sei sicuro di voler uscire?",
|
||||||
"confirm_unsaved_comments": "La tua configurazione contiene commenti, questi non verranno salvati. Vuoi continuare?",
|
"confirm_unsaved_comments": "La tua configurazione potrebbe contenere dei commenti, questi non saranno salvati. Vuoi continuare?",
|
||||||
"error_invalid_config": "La tua configurazione non è valida: {error}",
|
"error_invalid_config": "La tua configurazione non è valida: {error}",
|
||||||
"error_parse_yaml": "Impossibile analizzare YAML: {error}",
|
"error_parse_yaml": "Impossibile analizzare YAML: {error}",
|
||||||
"error_remove": "Impossibile rimuovere la configurazione: {error}",
|
"error_remove": "Impossibile rimuovere la configurazione: {error}",
|
||||||
@ -3044,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Questo reindirizzamento non è supportato dalla tua istanza di Home Assistant. È necessaria l'integrazione {integration} per utilizzare questo reindirizzamento.",
|
"component_not_loaded": "Questo reindirizzamento non è supportato dalla tua istanza di Home Assistant. È necessaria l'integrazione {integration} per utilizzare questo reindirizzamento.",
|
||||||
|
"documentation": "documentazione",
|
||||||
"error": "Si è verificato un errore sconosciuto",
|
"error": "Si è verificato un errore sconosciuto",
|
||||||
"faq_link": "My Home Assistant FAQ",
|
"faq_link": "My Home Assistant FAQ",
|
||||||
|
"no_supervisor": "Questo reindirizzamento non è supportato dalla tua installazione di Home Assistant. E' necessario il metodo di installazione Home Assistant Operating System oppure Home Assistant Supervised. Per maggiori informazioni, vedi {docs_link}.",
|
||||||
"not_supported": "Questo reindirizzamento non è supportato dall'istanza di Home Assistant. Controlla il {link} per i reindirizzamenti supportati e la versione in cui sono stati introdotti."
|
"not_supported": "Questo reindirizzamento non è supportato dall'istanza di Home Assistant. Controlla il {link} per i reindirizzamenti supportati e la versione in cui sono stati introdotti."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -2119,7 +2119,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "タグを追加する",
|
"add_tag": "タグを追加する",
|
||||||
"automation_title": "{name}タグのスキャン",
|
"automation_title": "{name}タグのスキャン",
|
||||||
"caption": "タグ",
|
"caption": "タグ",
|
||||||
|
@ -2040,7 +2040,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "태그 추가",
|
"add_tag": "태그 추가",
|
||||||
"automation_title": "{name} 태그가 검색되었습니다",
|
"automation_title": "{name} 태그가 검색되었습니다",
|
||||||
"caption": "태그",
|
"caption": "태그",
|
||||||
|
@ -2083,7 +2083,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Tag dobäisetzen",
|
"add_tag": "Tag dobäisetzen",
|
||||||
"automation_title": "Tag {name} gouf gescannt",
|
"automation_title": "Tag {name} gouf gescannt",
|
||||||
"caption": "Tags",
|
"caption": "Tags",
|
||||||
|
@ -664,7 +664,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"detail": {
|
"detail": {
|
||||||
"companion_apps": "papildomos programos",
|
"companion_apps": "papildomos programos",
|
||||||
"usage": "Nuskaitant žymą galima suaktyvinti automatizavimą, galite naudoti NFC žymes, QR kodus ar bet kokios kitos rūšies žymą. Naudokite mūsų {companion_link}, jei norite parašyti šią žymą į programuojamą NFC žymę arba sukurti QR kodą žemiau."
|
"usage": "Nuskaitant žymą galima suaktyvinti automatizavimą, galite naudoti NFC žymes, QR kodus ar bet kokios kitos rūšies žymą. Naudokite mūsų {companion_link}, jei norite parašyti šią žymą į programuojamą NFC žymę arba sukurti QR kodą žemiau."
|
||||||
|
@ -1280,7 +1280,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Pievienot birku",
|
"add_tag": "Pievienot birku",
|
||||||
"automation_title": "Birka {name} ir noskenēta",
|
"automation_title": "Birka {name} ir noskenēta",
|
||||||
"caption": "Birkas",
|
"caption": "Birkas",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"config_entry": {
|
"config_entry": {
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Konfigurer oppføring",
|
"config_entry": "Config-oppføring",
|
||||||
"device": "Enhet",
|
"device": "Enhet",
|
||||||
"integration": "Integrasjon",
|
"integration": "Integrasjon",
|
||||||
"user": "Bruker"
|
"user": "Bruker"
|
||||||
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Sist utløst",
|
"last_triggered": "Sist utløst",
|
||||||
"trigger": "Utføre"
|
"trigger": "Kjør handlinger"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Bilde ikke tilgjengelig"
|
"not_available": "Bilde ikke tilgjengelig"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Avbryt",
|
"cancel": "Avbryt",
|
||||||
"cancel_multiple": "Avbryt {number}"
|
"cancel_multiple": "Avbryt {number}",
|
||||||
|
"run": "Kjør"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Kjør"
|
"run": "Kjør"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Ja"
|
"yes": "Ja"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Tillegg",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "Henting av tillegg returnerte en feil.",
|
||||||
|
"title": "Feil ved henting av tillegg"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "Ingen Supervisor funnet, så tillegg kunne ikke lastes inn.",
|
||||||
|
"title": "Ingen Supervisor"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Legg til",
|
"add": "Legg til",
|
||||||
@ -950,7 +964,7 @@
|
|||||||
"delete_confirm": "Er du sikker på at du vil slette dette?",
|
"delete_confirm": "Er du sikker på at du vil slette dette?",
|
||||||
"duplicate": "Dupliser",
|
"duplicate": "Dupliser",
|
||||||
"header": "Betingelser",
|
"header": "Betingelser",
|
||||||
"introduction": "Betingelsene er valgfrie og vil forhindre videre utførelse med mindre alle vilkår er oppfylt.",
|
"introduction": "Betingelsene er valgfrie og vil hindre at automatiseringen kjøres med mindre alle betingelsene er oppfylt.",
|
||||||
"learn_more": "Lær mer om betingelser",
|
"learn_more": "Lær mer om betingelser",
|
||||||
"name": "Betingelse",
|
"name": "Betingelse",
|
||||||
"type_select": "Betingelse",
|
"type_select": "Betingelse",
|
||||||
@ -1485,6 +1499,7 @@
|
|||||||
"cant_edit": "Du kan bare redigere elementer som er opprettet i brukergrensesnittet.",
|
"cant_edit": "Du kan bare redigere elementer som er opprettet i brukergrensesnittet.",
|
||||||
"caption": "Enheter",
|
"caption": "Enheter",
|
||||||
"confirm_delete": "Er du sikker på at du vil slette denne enheten?",
|
"confirm_delete": "Er du sikker på at du vil slette denne enheten?",
|
||||||
|
"confirm_disable_config_entry": "Det er ikke flere enheter for konfigurasjonsoppføringen {entry_name} , vil du i stedet deaktivere konfigurasjonsoppføringen?",
|
||||||
"confirm_rename_entity_ids": "Vil du også endre enhets-ID-ene til enhetene dine?",
|
"confirm_rename_entity_ids": "Vil du også endre enhets-ID-ene til enhetene dine?",
|
||||||
"confirm_rename_entity_ids_warning": "Dette vil ikke endre noen konfigurasjon (som automasjoner, skript, scener, dashbord) som for øyeblikket bruker disse enhetene! Du må oppdatere dem selv for å bruke de nye enhets-IDene!",
|
"confirm_rename_entity_ids_warning": "Dette vil ikke endre noen konfigurasjon (som automasjoner, skript, scener, dashbord) som for øyeblikket bruker disse enhetene! Du må oppdatere dem selv for å bruke de nye enhets-IDene!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1502,7 +1517,7 @@
|
|||||||
"device_not_found": "Enhet ikke funnet",
|
"device_not_found": "Enhet ikke funnet",
|
||||||
"disabled": "Deaktivert",
|
"disabled": "Deaktivert",
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Konfigurer oppføring",
|
"config_entry": "Config-oppføring",
|
||||||
"integration": "Integrasjon",
|
"integration": "Integrasjon",
|
||||||
"user": "Bruker"
|
"user": "Bruker"
|
||||||
},
|
},
|
||||||
@ -1597,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Tøm",
|
"clear": "Tøm",
|
||||||
"filtering_by": "Filtrering etter"
|
"filtering_by": "Filtrering etter",
|
||||||
|
"show": "Vis"
|
||||||
},
|
},
|
||||||
"header": "Konfigurer Home Assistant",
|
"header": "Konfigurer Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1668,7 +1684,19 @@
|
|||||||
"delete_confirm": "Er du sikker på at du vil slette denne integrasjonen?",
|
"delete_confirm": "Er du sikker på at du vil slette denne integrasjonen?",
|
||||||
"device_unavailable": "Enheten er utilgjengelig",
|
"device_unavailable": "Enheten er utilgjengelig",
|
||||||
"devices": "{count} {count, plural,\n one {enhet}\n other {enheter}\n}",
|
"devices": "{count} {count, plural,\n one {enhet}\n other {enheter}\n}",
|
||||||
|
"disable_restart_confirm": "Start Home Assistant på nytt for å fullføre deaktiveringen av denne integreringen",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "Er du sikker på at du vil deaktivere denne konfigurasjonsoppføringen? Enhetene og enhetene blir deaktivert.",
|
||||||
|
"disabled": "Deaktivert",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "enhet",
|
||||||
|
"integration": "integrasjon",
|
||||||
|
"user": "bruker"
|
||||||
|
},
|
||||||
|
"disabled_cause": "Deaktivert av {cause}"
|
||||||
|
},
|
||||||
"documentation": "Dokumentasjon",
|
"documentation": "Dokumentasjon",
|
||||||
|
"enable_restart_confirm": "Start Home Assistant på nytt for å fullføre aktiveringen av denne integreringen",
|
||||||
"entities": "{count} {count, plural,\n one {entitet}\n other {entiteter}\n}",
|
"entities": "{count} {count, plural,\n one {entitet}\n other {entiteter}\n}",
|
||||||
"entity_unavailable": "Enhet utilgjengelig",
|
"entity_unavailable": "Enhet utilgjengelig",
|
||||||
"firmware": "Fastvare: {version}",
|
"firmware": "Fastvare: {version}",
|
||||||
@ -1711,6 +1739,11 @@
|
|||||||
"confirm_new": "Vil du sette opp {integration}?",
|
"confirm_new": "Vil du sette opp {integration}?",
|
||||||
"description": "Administrer integrasjoner med tjenester, enheter, ...",
|
"description": "Administrer integrasjoner med tjenester, enheter, ...",
|
||||||
"details": "Integrasjonsdetaljer",
|
"details": "Integrasjonsdetaljer",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} deaktivert",
|
||||||
|
"hide_disabled": "Skjul deaktiverte integrasjoner",
|
||||||
|
"show_disabled": "Vis deaktiverte integrasjoner"
|
||||||
|
},
|
||||||
"discovered": "Oppdaget",
|
"discovered": "Oppdaget",
|
||||||
"home_assistant_website": "Nettsted for Home Assistant",
|
"home_assistant_website": "Nettsted for Home Assistant",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2047,7 +2080,7 @@
|
|||||||
"id": "Entitets-ID",
|
"id": "Entitets-ID",
|
||||||
"id_already_exists": "Denne IDen finnes allerede",
|
"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.",
|
"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 for å kjøre en sekvens av 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 script.yaml kan redigeres.",
|
"load_error_not_editable": "Bare skript inne i script.yaml kan redigeres.",
|
||||||
"max": {
|
"max": {
|
||||||
@ -2139,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Legg til tag",
|
"add_tag": "Legg til tag",
|
||||||
"automation_title": "Tag {name} skannes",
|
"automation_title": "Tag {name} skannes",
|
||||||
"caption": "Tagger",
|
"caption": "Tagger",
|
||||||
@ -2536,6 +2569,7 @@
|
|||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "Entitet er et obligatorisk felt",
|
"alert_entity_field": "Entitet er et obligatorisk felt",
|
||||||
"attributes": "Attributter",
|
"attributes": "Attributter",
|
||||||
|
"copy_id": "Kopier ID til utklippstavlen",
|
||||||
"current_entities": "Gjeldende entiteter",
|
"current_entities": "Gjeldende entiteter",
|
||||||
"description1": "Angi representasjonen av en enhet i Home Assistant.",
|
"description1": "Angi representasjonen av en enhet i Home Assistant.",
|
||||||
"description2": "Dette vil ikke kommunisere med den faktiske enheten.",
|
"description2": "Dette vil ikke kommunisere med den faktiske enheten.",
|
||||||
@ -2594,11 +2628,11 @@
|
|||||||
},
|
},
|
||||||
"cards": {
|
"cards": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"action_confirmation": "Er du sikker på at du vil utføre handlingen \"{action}\"?",
|
"action_confirmation": "Er du sikker på at du vil kjøre handlingen \"{action}\"?",
|
||||||
"no_entity_more_info": "Ingen enhet angitt for mer informasjon dialog",
|
"no_entity_more_info": "Ingen enhet angitt for mer informasjon dialog",
|
||||||
"no_entity_toggle": "Ingen enhet gitt for å veksle",
|
"no_entity_toggle": "Ingen enhet gitt for å veksle",
|
||||||
"no_navigation_path": "Ingen navigasjonssti spesifisert",
|
"no_navigation_path": "Ingen navigasjonssti spesifisert",
|
||||||
"no_service": "Ingen tjeneste for utførelse spesifisert",
|
"no_service": "Ingen tjeneste å kjøre angitt",
|
||||||
"no_url": "Ingen URL-adresse å åpne angitt"
|
"no_url": "Ingen URL-adresse å åpne angitt"
|
||||||
},
|
},
|
||||||
"confirm_delete": "Er du sikker på at du vil slette dette kortet?",
|
"confirm_delete": "Er du sikker på at du vil slette dette kortet?",
|
||||||
@ -2969,7 +3003,7 @@
|
|||||||
"confirm_remove_config_text": "Vi vil automatisk opprette Lovelace-visningene dine med områdene og enhetene dine hvis du fjerner Lovelace-konfigurasjonen.",
|
"confirm_remove_config_text": "Vi vil automatisk opprette Lovelace-visningene dine med områdene og enhetene dine hvis du fjerner Lovelace-konfigurasjonen.",
|
||||||
"confirm_remove_config_title": "Er du sikker på at du vil fjerne Lovelace UI-konfigurasjonen?",
|
"confirm_remove_config_title": "Er du sikker på at du vil fjerne Lovelace UI-konfigurasjonen?",
|
||||||
"confirm_unsaved_changes": "Du har ulagrede endringer, er du sikker på at du vil avslutte?",
|
"confirm_unsaved_changes": "Du har ulagrede endringer, er du sikker på at du vil avslutte?",
|
||||||
"confirm_unsaved_comments": "Konfigurasjonen din inneholder kommentarer, disse vil ikke bli lagret. Vil du fortsette?",
|
"confirm_unsaved_comments": "Konfigurasjonen din kan inneholde kommentarer, disse lagres ikke. Vil du fortsette?",
|
||||||
"error_invalid_config": "Konfigurasjonen din er ikke gyldig: {error}",
|
"error_invalid_config": "Konfigurasjonen din er ikke gyldig: {error}",
|
||||||
"error_parse_yaml": "Kan ikke analysere YAML: {error}",
|
"error_parse_yaml": "Kan ikke analysere YAML: {error}",
|
||||||
"error_remove": "Kan ikke fjerne konfigurasjonen: {error}",
|
"error_remove": "Kan ikke fjerne konfigurasjonen: {error}",
|
||||||
@ -3062,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Du trenger integrasjonen {integration} å bruke denne viderekoblingen.",
|
"component_not_loaded": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Du trenger integrasjonen {integration} å bruke denne viderekoblingen.",
|
||||||
|
"documentation": "dokumentasjon",
|
||||||
"error": "Det oppstod en ukjent feil",
|
"error": "Det oppstod en ukjent feil",
|
||||||
"faq_link": "Vanlige spørsmål om Min Home Assistant",
|
"faq_link": "Vanlige spørsmål om Min Home Assistant",
|
||||||
|
"no_supervisor": "Denne viderekoblingen støttes ikke av Home Assistant-installasjonen. Det trenger enten installasjonsmetoden Home Assistant eller Home Assistant Supervised. For mer informasjon, se {docs_link} .",
|
||||||
"not_supported": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Se på {link} for viderekoblinger som støttes, og hvilken versjon de ble introdusert."
|
"not_supported": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Se på {link} for viderekoblinger som støttes, og hvilken versjon de ble introdusert."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "Annuleer",
|
"cancel": "Annuleer",
|
||||||
"cancel_multiple": "Annuleer {number}"
|
"cancel_multiple": "Annuleer {number}",
|
||||||
|
"run": "Uitvoeren"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Uitvoeren"
|
"run": "Uitvoeren"
|
||||||
@ -2165,7 +2166,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Tag toevoegen",
|
"add_tag": "Tag toevoegen",
|
||||||
"automation_title": "Tag {name} is gescand",
|
"automation_title": "Tag {name} is gescand",
|
||||||
"caption": "Tags",
|
"caption": "Tags",
|
||||||
|
@ -2138,7 +2138,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Dodaj tag",
|
"add_tag": "Dodaj tag",
|
||||||
"automation_title": "Tag {name} jest skanowany",
|
"automation_title": "Tag {name} jest skanowany",
|
||||||
"caption": "Tagi",
|
"caption": "Tagi",
|
||||||
|
@ -1872,7 +1872,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Adicionar etiqueta",
|
"add_tag": "Adicionar etiqueta",
|
||||||
"caption": "Etiquetas",
|
"caption": "Etiquetas",
|
||||||
"create_automation": "Criar automação com a etiqueta",
|
"create_automation": "Criar automação com a etiqueta",
|
||||||
|
@ -2118,7 +2118,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Adicionar etiqueta",
|
"add_tag": "Adicionar etiqueta",
|
||||||
"automation_title": "A etiqueta {name} é lida",
|
"automation_title": "A etiqueta {name} é lida",
|
||||||
"caption": "Etiquetas",
|
"caption": "Etiquetas",
|
||||||
|
@ -2027,7 +2027,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Adaugați etichetă",
|
"add_tag": "Adaugați etichetă",
|
||||||
"automation_title": "Eticheta {name} este scanată",
|
"automation_title": "Eticheta {name} este scanată",
|
||||||
"caption": "Etichete",
|
"caption": "Etichete",
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
"config_entry": {
|
"config_entry": {
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Конфигурация",
|
"config_entry": "конфигурацией",
|
||||||
"device": "Устройство",
|
"device": "Устройство",
|
||||||
"integration": "Интеграция",
|
"integration": "интеграцией",
|
||||||
"user": "Пользователь"
|
"user": "пользователем"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"groups": {
|
"groups": {
|
||||||
@ -529,7 +529,7 @@
|
|||||||
"confirm_delete": "Вы уверены, что хотите удалить эту запись?",
|
"confirm_delete": "Вы уверены, что хотите удалить эту запись?",
|
||||||
"delete": "Удалить",
|
"delete": "Удалить",
|
||||||
"device_disabled": "Родительское устройство этого объекта скрыто.",
|
"device_disabled": "Родительское устройство этого объекта скрыто.",
|
||||||
"enabled_cause": "Инициатор: {cause}.",
|
"enabled_cause": "Скрыто {cause}.",
|
||||||
"enabled_delay_confirm": "Объекты будут добавлены в Home Assistant через {delay} секунд",
|
"enabled_delay_confirm": "Объекты будут добавлены в Home Assistant через {delay} секунд",
|
||||||
"enabled_description": "Скрытые объекты не будут доступны в Home Assistant.",
|
"enabled_description": "Скрытые объекты не будут доступны в Home Assistant.",
|
||||||
"enabled_label": "Отображать объект",
|
"enabled_label": "Отображать объект",
|
||||||
@ -1517,11 +1517,11 @@
|
|||||||
"device_not_found": "Устройство не найдено",
|
"device_not_found": "Устройство не найдено",
|
||||||
"disabled": "Скрыто",
|
"disabled": "Скрыто",
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Конфигурация",
|
"config_entry": "конфигурацией",
|
||||||
"integration": "Интеграция",
|
"integration": "интеграцией",
|
||||||
"user": "Пользователь"
|
"user": "пользователем"
|
||||||
},
|
},
|
||||||
"enabled_cause": "Инициатор: {cause}.",
|
"enabled_cause": "Устройство скрыто {cause}.",
|
||||||
"enabled_description": "Скрытые устройства и их дочерние объекты не будут доступны в Home Assistant.",
|
"enabled_description": "Скрытые устройства и их дочерние объекты не будут доступны в Home Assistant.",
|
||||||
"enabled_label": "Отображать устройство",
|
"enabled_label": "Отображать устройство",
|
||||||
"entities": {
|
"entities": {
|
||||||
@ -1689,11 +1689,11 @@
|
|||||||
"disable_confirm": "Вы уверены, что хотите отключить эту запись конфигурации? Её дочерние устройства и объекты будут также отключены.",
|
"disable_confirm": "Вы уверены, что хотите отключить эту запись конфигурации? Её дочерние устройства и объекты будут также отключены.",
|
||||||
"disabled": "Отключено",
|
"disabled": "Отключено",
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"device": "Устройство",
|
"device": "устройством",
|
||||||
"integration": "Интеграция",
|
"integration": "интеграцией",
|
||||||
"user": "Пользователь"
|
"user": "пользователем"
|
||||||
},
|
},
|
||||||
"disabled_cause": "Инициатор: {cause}"
|
"disabled_cause": "Отключено {cause}"
|
||||||
},
|
},
|
||||||
"documentation": "Документация",
|
"documentation": "Документация",
|
||||||
"enable_restart_confirm": "Перезапустите Home Assistant, чтобы завершить подключение этой интеграции.",
|
"enable_restart_confirm": "Перезапустите Home Assistant, чтобы завершить подключение этой интеграции.",
|
||||||
@ -2172,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Добавить метку",
|
"add_tag": "Добавить метку",
|
||||||
"automation_title": "Считана метка {name}",
|
"automation_title": "Считана метка {name}",
|
||||||
"caption": "Метки",
|
"caption": "Метки",
|
||||||
|
@ -1750,7 +1750,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Pridať značku",
|
"add_tag": "Pridať značku",
|
||||||
"caption": "Značky",
|
"caption": "Značky",
|
||||||
"description": "Spustiť automatizácie pri naskenovaní značky NFC, QR kódu atď.",
|
"description": "Spustiť automatizácie pri naskenovaní značky NFC, QR kódu atď.",
|
||||||
|
@ -2102,7 +2102,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Dodaj značko",
|
"add_tag": "Dodaj značko",
|
||||||
"automation_title": "Značka {name} se prebira",
|
"automation_title": "Značka {name} se prebira",
|
||||||
"caption": "Značke",
|
"caption": "Značke",
|
||||||
|
@ -2126,7 +2126,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Lägg till tagg",
|
"add_tag": "Lägg till tagg",
|
||||||
"automation_title": "Taggen {name} är skannad",
|
"automation_title": "Taggen {name} är skannad",
|
||||||
"caption": "Taggar",
|
"caption": "Taggar",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"config_entry": {
|
"config_entry": {
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Config Girişi",
|
"config_entry": "Yapılandırma girişi",
|
||||||
"device": "Cihaz",
|
"device": "Cihaz",
|
||||||
"integration": "Entegrasyon",
|
"integration": "Entegrasyon",
|
||||||
"user": "Kullanıcı"
|
"user": "Kullanıcı"
|
||||||
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "Son tetiklenme",
|
"last_triggered": "Son tetiklenme",
|
||||||
"trigger": "Yürüt"
|
"trigger": "Eylemleri Çalıştırın"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "Resim mevcut değil"
|
"not_available": "Resim mevcut değil"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "İptal",
|
"cancel": "İptal",
|
||||||
"cancel_multiple": "{number} iptal et"
|
"cancel_multiple": "{number} iptal et",
|
||||||
|
"run": "Çalıştır"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "Çalıştır"
|
"run": "Çalıştır"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "Evet"
|
"yes": "Evet"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "Eklenti",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "Eklentiler getirilirken bir hata döndürüldü.",
|
||||||
|
"title": "Eklentiler getirilirken hata oluştu"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "Süpervizör bulunamadı, bu nedenle eklentiler yüklenemedi.",
|
||||||
|
"title": "Süpervizör Yok"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "Ekle",
|
"add": "Ekle",
|
||||||
@ -950,7 +964,7 @@
|
|||||||
"delete_confirm": "Silmek istediğinizden emin misiniz?",
|
"delete_confirm": "Silmek istediğinizden emin misiniz?",
|
||||||
"duplicate": "Kopya",
|
"duplicate": "Kopya",
|
||||||
"header": "Koşullar",
|
"header": "Koşullar",
|
||||||
"introduction": "Koşullar isteğe bağlıdır ve tüm koşullar yerine getirilmediği sürece daha fazla yürütmeyi engeller.",
|
"introduction": "Koşullar isteğe bağlıdır ve tüm koşullar yerine getirilmediği sürece otomasyonun çalışmasını engeller.",
|
||||||
"learn_more": "Koşullar hakkında daha fazla bilgi edinin",
|
"learn_more": "Koşullar hakkında daha fazla bilgi edinin",
|
||||||
"name": "Şart",
|
"name": "Şart",
|
||||||
"type_select": "Koşul türü",
|
"type_select": "Koşul türü",
|
||||||
@ -1485,6 +1499,7 @@
|
|||||||
"cant_edit": "Yalnızca kullanıcı arayüzünde oluşturulan öğeleri düzenleyebilirsiniz.",
|
"cant_edit": "Yalnızca kullanıcı arayüzünde oluşturulan öğeleri düzenleyebilirsiniz.",
|
||||||
"caption": "Cihazlar",
|
"caption": "Cihazlar",
|
||||||
"confirm_delete": "Bu cihazı silmek istediğinizden emin misiniz?",
|
"confirm_delete": "Bu cihazı silmek istediğinizden emin misiniz?",
|
||||||
|
"confirm_disable_config_entry": "Yapılandırma girişi {entry_name} için başka cihaz yok, bunun yerine yapılandırma girişini devre dışı bırakmak ister misiniz?",
|
||||||
"confirm_rename_entity_ids": "Varlıklarınızın varlık kimliklerini de yeniden adlandırmak istiyor musunuz?",
|
"confirm_rename_entity_ids": "Varlıklarınızın varlık kimliklerini de yeniden adlandırmak istiyor musunuz?",
|
||||||
"confirm_rename_entity_ids_warning": "Bu, şu anda bu varlıkları kullanan herhangi bir yapılandırmayı (otomasyonlar, komut dosyaları, sahneler, kontrol panelleri gibi) değiştirmeyecektir! Yeni varlık kimliklerini kullanmak için bunları kendiniz güncellemeniz gerekecek!",
|
"confirm_rename_entity_ids_warning": "Bu, şu anda bu varlıkları kullanan herhangi bir yapılandırmayı (otomasyonlar, komut dosyaları, sahneler, kontrol panelleri gibi) değiştirmeyecektir! Yeni varlık kimliklerini kullanmak için bunları kendiniz güncellemeniz gerekecek!",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1502,7 +1517,7 @@
|
|||||||
"device_not_found": "Cihaz bulunamadı.",
|
"device_not_found": "Cihaz bulunamadı.",
|
||||||
"disabled": "Devre dışı",
|
"disabled": "Devre dışı",
|
||||||
"disabled_by": {
|
"disabled_by": {
|
||||||
"config_entry": "Yapılandırma Girişi",
|
"config_entry": "Yapılandırma girişi",
|
||||||
"integration": "Entegrasyon",
|
"integration": "Entegrasyon",
|
||||||
"user": "Kullanıcı"
|
"user": "Kullanıcı"
|
||||||
},
|
},
|
||||||
@ -1597,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "Temizle",
|
"clear": "Temizle",
|
||||||
"filtering_by": "Filtreleme ölçütü"
|
"filtering_by": "Filtreleme ölçütü",
|
||||||
|
"show": "Göster"
|
||||||
},
|
},
|
||||||
"header": "Home Assistant'ı yapılandır",
|
"header": "Home Assistant'ı yapılandır",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1668,7 +1684,19 @@
|
|||||||
"delete_confirm": "Bu entegrasyonu silmek istediğinizden emin misiniz?",
|
"delete_confirm": "Bu entegrasyonu silmek istediğinizden emin misiniz?",
|
||||||
"device_unavailable": "Cihaz kullanılamıyor",
|
"device_unavailable": "Cihaz kullanılamıyor",
|
||||||
"devices": "{count} {count, plural,\n one {cihaz}\n other {cihazlar}\n}",
|
"devices": "{count} {count, plural,\n one {cihaz}\n other {cihazlar}\n}",
|
||||||
|
"disable_restart_confirm": "Bu entegrasyonu devre dışı bırakmayı tamamlamak için Home Assistant'ı yeniden başlatın",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "Bu yapılandırma girişini devre dışı bırakmak istediğinizden emin misiniz? Cihazlar ve varlıklar devre dışı bırakılacak.",
|
||||||
|
"disabled": "Devre dışı",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "cihaz",
|
||||||
|
"integration": "entegrasyon",
|
||||||
|
"user": "kullanıcı"
|
||||||
|
},
|
||||||
|
"disabled_cause": "{cause} tarafından devre dışı bırakıldı"
|
||||||
|
},
|
||||||
"documentation": "Dökümanlar",
|
"documentation": "Dökümanlar",
|
||||||
|
"enable_restart_confirm": "Bu entegrasyonu etkinleştirmeyi tamamlamak için Home Assistant'ı yeniden başlatın",
|
||||||
"entities": "{count} {count, plural,\n one {varlık}\n other {varlıklar}\n}",
|
"entities": "{count} {count, plural,\n one {varlık}\n other {varlıklar}\n}",
|
||||||
"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}",
|
||||||
@ -1711,6 +1739,11 @@
|
|||||||
"confirm_new": "{integration} kurmak istiyor musunuz?",
|
"confirm_new": "{integration} kurmak istiyor musunuz?",
|
||||||
"description": "Bağlı aygıtları ve hizmetleri yönetin",
|
"description": "Bağlı aygıtları ve hizmetleri yönetin",
|
||||||
"details": "Entegrasyon detayları",
|
"details": "Entegrasyon detayları",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} devre dışı bırakıldı",
|
||||||
|
"hide_disabled": "Devre dışı bırakılan entegrasyonları gizle",
|
||||||
|
"show_disabled": "Devre dışı bırakılan entegrasyonları göster"
|
||||||
|
},
|
||||||
"discovered": "Bulundu",
|
"discovered": "Bulundu",
|
||||||
"home_assistant_website": "Home Assistant web sitesi",
|
"home_assistant_website": "Home Assistant web sitesi",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2047,7 +2080,7 @@
|
|||||||
"id": "Varlık kimliği",
|
"id": "Varlık kimliği",
|
||||||
"id_already_exists": "Bu ID zaten var",
|
"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.",
|
"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 çalıştırmak 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.",
|
||||||
"load_error_not_editable": "Yalnızca scripts.yaml içindeki senaryolar düzenlenebilir.",
|
"load_error_not_editable": "Yalnızca scripts.yaml içindeki senaryolar düzenlenebilir.",
|
||||||
"max": {
|
"max": {
|
||||||
@ -2139,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Etiket ekleyin",
|
"add_tag": "Etiket ekleyin",
|
||||||
"automation_title": "{name} etiketi tarandı",
|
"automation_title": "{name} etiketi tarandı",
|
||||||
"caption": "Etiketler",
|
"caption": "Etiketler",
|
||||||
@ -2536,6 +2569,7 @@
|
|||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "Varlık zorunlu bir alandır",
|
"alert_entity_field": "Varlık zorunlu bir alandır",
|
||||||
"attributes": "Nitelikler",
|
"attributes": "Nitelikler",
|
||||||
|
"copy_id": "Kimliği panoya kopyala",
|
||||||
"current_entities": "Mevcut varlıklar",
|
"current_entities": "Mevcut varlıklar",
|
||||||
"description1": "Home Assistant içersindeki bir cihazın görünümü ayarlayın.",
|
"description1": "Home Assistant içersindeki bir cihazın görünümü ayarlayın.",
|
||||||
"description2": "Bu, gerçek cihaz ile iletişim kurmayacaktır.",
|
"description2": "Bu, gerçek cihaz ile iletişim kurmayacaktır.",
|
||||||
@ -2594,11 +2628,11 @@
|
|||||||
},
|
},
|
||||||
"cards": {
|
"cards": {
|
||||||
"actions": {
|
"actions": {
|
||||||
"action_confirmation": "\"{action}\" eylemini yürütmek istediğinizden emin misiniz?",
|
"action_confirmation": "\"{action}\" eylemini çalıştırmak istediğinizden emin misiniz?",
|
||||||
"no_entity_more_info": "Daha fazla bilgi iletişim kutusu için varlık sağlanmadı",
|
"no_entity_more_info": "Daha fazla bilgi iletişim kutusu için varlık sağlanmadı",
|
||||||
"no_entity_toggle": "Geçiş yapmak için varlık sağlanmadı",
|
"no_entity_toggle": "Geçiş yapmak için varlık sağlanmadı",
|
||||||
"no_navigation_path": "Gezinme yolu belirtilmedi",
|
"no_navigation_path": "Gezinme yolu belirtilmedi",
|
||||||
"no_service": "Yürütme için hizmet belirtilmedi",
|
"no_service": "Çalıştırılacak hizmet belirtilmedi",
|
||||||
"no_url": "Açılacak URL belirtilmedi"
|
"no_url": "Açılacak URL belirtilmedi"
|
||||||
},
|
},
|
||||||
"confirm_delete": "Bu kartı silmek istediğinizden emin misiniz?",
|
"confirm_delete": "Bu kartı silmek istediğinizden emin misiniz?",
|
||||||
@ -2969,7 +3003,7 @@
|
|||||||
"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_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?",
|
"confirm_remove_config_title": "Lovelace UI yapılandırmanızı kaldırmak istediğinizden emin misiniz?",
|
||||||
"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 yorum(lar) içerir, bunlar kaydedilmez. Devam etmek istiyor musun?",
|
"confirm_unsaved_comments": "Yapılandırmanız yorum (lar) içerebilir, bunlar kaydedilmeyecektir. 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}",
|
||||||
"error_parse_yaml": "YAML alınamadı: {error}",
|
"error_parse_yaml": "YAML alınamadı: {error}",
|
||||||
"error_remove": "Yapılandırma kaldırılamıyor: {error}",
|
"error_remove": "Yapılandırma kaldırılamıyor: {error}",
|
||||||
@ -3062,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "Bu yeniden yönlendirme, Ev Yardımcısı örneğiniz tarafından desteklenmiyor. Bu yeniden yönlendirmeyi kullanmak için {integration} tümleştirmesine ihtiyacınız var.",
|
"component_not_loaded": "Bu yeniden yönlendirme, Ev Yardımcısı örneğiniz tarafından desteklenmiyor. Bu yeniden yönlendirmeyi kullanmak için {integration} tümleştirmesine ihtiyacınız var.",
|
||||||
|
"documentation": "dokümantasyon",
|
||||||
"error": "Bilinmeyen bir hata oluştu",
|
"error": "Bilinmeyen bir hata oluştu",
|
||||||
"faq_link": "Home Assistant SSS",
|
"faq_link": "Home Assistant SSS",
|
||||||
|
"no_supervisor": "Bu yönlendirme, Home Assistant kurulumunuz tarafından desteklenmiyor. Ev Asistanı İşletim Sistemi veya Ev Yardımcısı Denetimli kurulum yöntemine ihtiyaç duyar. Daha fazla bilgi için bkz. {docs_link} .",
|
||||||
"not_supported": "Bu yönlendirme, Home Assistant örneğiniz tarafından desteklenmiyor. Desteklenen yönlendirmeler ve bunların sunulduğu sürüm için {link} kontrol edin."
|
"not_supported": "Bu yönlendirme, Home Assistant örneğiniz tarafından desteklenmiyor. Desteklenen yönlendirmeler ve bunların sunulduğu sürüm için {link} kontrol edin."
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -2082,7 +2082,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Додати тег",
|
"add_tag": "Додати тег",
|
||||||
"automation_title": "Тег {name} відсканований",
|
"automation_title": "Тег {name} відсканований",
|
||||||
"caption": "Теги",
|
"caption": "Теги",
|
||||||
|
@ -1463,7 +1463,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "Thêm thẻ",
|
"add_tag": "Thêm thẻ",
|
||||||
"automation_title": "Thẻ {name} được quét",
|
"automation_title": "Thẻ {name} được quét",
|
||||||
"caption": "Thẻ",
|
"caption": "Thẻ",
|
||||||
|
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"cancel_multiple": "取消 {number} 个"
|
"cancel_multiple": "取消 {number} 个",
|
||||||
|
"run": "运行"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "运行"
|
"run": "运行"
|
||||||
@ -295,6 +296,19 @@
|
|||||||
"yes": "是"
|
"yes": "是"
|
||||||
},
|
},
|
||||||
"components": {
|
"components": {
|
||||||
|
"addon-picker": {
|
||||||
|
"addon": "加载项",
|
||||||
|
"error": {
|
||||||
|
"fetch_addons": {
|
||||||
|
"description": "获取加载项时返回错误。",
|
||||||
|
"title": "获取加载项时出错"
|
||||||
|
},
|
||||||
|
"no_supervisor": {
|
||||||
|
"description": "未找到 Supervisor,因此无法载入加载项。",
|
||||||
|
"title": "未找到 Supervisor"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"area-picker": {
|
"area-picker": {
|
||||||
"add_dialog": {
|
"add_dialog": {
|
||||||
"add": "添加",
|
"add": "添加",
|
||||||
@ -467,6 +481,12 @@
|
|||||||
"week": "{count} {count, plural,\n one {周}\n other {周}\n}前"
|
"week": "{count} {count, plural,\n one {周}\n other {周}\n}前"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"service-control": {
|
||||||
|
"required": "此字段为必填字段",
|
||||||
|
"service_data": "服务数据",
|
||||||
|
"target": "目标",
|
||||||
|
"target_description": "该服务作用于哪些区域、设备或实体。"
|
||||||
|
},
|
||||||
"service-picker": {
|
"service-picker": {
|
||||||
"service": "服务"
|
"service": "服务"
|
||||||
},
|
},
|
||||||
@ -1479,6 +1499,7 @@
|
|||||||
"cant_edit": "您只能编辑在 UI 中创建的项目。",
|
"cant_edit": "您只能编辑在 UI 中创建的项目。",
|
||||||
"caption": "设备",
|
"caption": "设备",
|
||||||
"confirm_delete": "您确定要删除此设备吗?",
|
"confirm_delete": "您确定要删除此设备吗?",
|
||||||
|
"confirm_disable_config_entry": "配置条目 {entry_name} 没有更多设备了,是否要转而禁用整个配置条目?",
|
||||||
"confirm_rename_entity_ids": "是否要将实体 ID 一并重命名?",
|
"confirm_rename_entity_ids": "是否要将实体 ID 一并重命名?",
|
||||||
"confirm_rename_entity_ids_warning": "此操作不会改变正在使用这些实体的配置(如自动化、脚本、场景、仪表盘),您必须手动更新它们以便使用新的实体 ID。",
|
"confirm_rename_entity_ids_warning": "此操作不会改变正在使用这些实体的配置(如自动化、脚本、场景、仪表盘),您必须手动更新它们以便使用新的实体 ID。",
|
||||||
"data_table": {
|
"data_table": {
|
||||||
@ -1591,7 +1612,8 @@
|
|||||||
},
|
},
|
||||||
"filtering": {
|
"filtering": {
|
||||||
"clear": "清除",
|
"clear": "清除",
|
||||||
"filtering_by": "正在筛选:"
|
"filtering_by": "正在筛选:",
|
||||||
|
"show": "显示"
|
||||||
},
|
},
|
||||||
"header": "配置 Home Assistant",
|
"header": "配置 Home Assistant",
|
||||||
"helpers": {
|
"helpers": {
|
||||||
@ -1662,7 +1684,19 @@
|
|||||||
"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}",
|
||||||
|
"disable_restart_confirm": "重启 Home Assistant 以完成此集成的禁用",
|
||||||
|
"disable": {
|
||||||
|
"disable_confirm": "您确定要禁用此配置条目吗?其设备和实体也将被禁用。",
|
||||||
|
"disabled": "已禁用",
|
||||||
|
"disabled_by": {
|
||||||
|
"device": "设备",
|
||||||
|
"integration": "集成",
|
||||||
|
"user": "用户"
|
||||||
|
},
|
||||||
|
"disabled_cause": "通过{cause}禁用"
|
||||||
|
},
|
||||||
"documentation": "文档",
|
"documentation": "文档",
|
||||||
|
"enable_restart_confirm": "重启 Home Assistant 以完成此集成的启用",
|
||||||
"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}",
|
||||||
@ -1682,8 +1716,10 @@
|
|||||||
"config_flow": {
|
"config_flow": {
|
||||||
"aborted": "中止",
|
"aborted": "中止",
|
||||||
"close": "关闭",
|
"close": "关闭",
|
||||||
|
"could_not_load": "无法加载配置向导",
|
||||||
"created_config": "为 {name} 创建了配置。",
|
"created_config": "为 {name} 创建了配置。",
|
||||||
"dismiss": "关闭对话框",
|
"dismiss": "关闭对话框",
|
||||||
|
"error": "错误",
|
||||||
"error_saving_area": "保存区域时发生错误:{error}",
|
"error_saving_area": "保存区域时发生错误:{error}",
|
||||||
"external_step": {
|
"external_step": {
|
||||||
"description": "此步骤需要访问外部网站才能完成。",
|
"description": "此步骤需要访问外部网站才能完成。",
|
||||||
@ -1692,6 +1728,10 @@
|
|||||||
"finish": "完成",
|
"finish": "完成",
|
||||||
"loading_first_time": "正在安装集成,请稍候",
|
"loading_first_time": "正在安装集成,请稍候",
|
||||||
"not_all_required_fields": "请填写所有必填字段",
|
"not_all_required_fields": "请填写所有必填字段",
|
||||||
|
"pick_flow_step": {
|
||||||
|
"new_flow": "否,设置另一个 {integration} 实例",
|
||||||
|
"title": "已发现以下集成,要设置它们吗?"
|
||||||
|
},
|
||||||
"submit": "提交"
|
"submit": "提交"
|
||||||
},
|
},
|
||||||
"configure": "配置",
|
"configure": "配置",
|
||||||
@ -1699,6 +1739,11 @@
|
|||||||
"confirm_new": "您想要配置 {integration} 吗?",
|
"confirm_new": "您想要配置 {integration} 吗?",
|
||||||
"description": "管理集成",
|
"description": "管理集成",
|
||||||
"details": "集成详细信息",
|
"details": "集成详细信息",
|
||||||
|
"disable": {
|
||||||
|
"disabled_integrations": "{number} 个已禁用",
|
||||||
|
"hide_disabled": "隐藏禁用的集成",
|
||||||
|
"show_disabled": "显示禁用的集成"
|
||||||
|
},
|
||||||
"discovered": "已发现",
|
"discovered": "已发现",
|
||||||
"home_assistant_website": "Home Assistant 网站",
|
"home_assistant_website": "Home Assistant 网站",
|
||||||
"ignore": {
|
"ignore": {
|
||||||
@ -2127,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "添加标签",
|
"add_tag": "添加标签",
|
||||||
"automation_title": "扫描到标签 {name}",
|
"automation_title": "扫描到标签 {name}",
|
||||||
"caption": "标签",
|
"caption": "标签",
|
||||||
@ -2508,17 +2553,23 @@
|
|||||||
"type": "事件类型"
|
"type": "事件类型"
|
||||||
},
|
},
|
||||||
"services": {
|
"services": {
|
||||||
|
"accepts_target": "该服务接受一个目标,例如:`entity_id: light.bed_light`",
|
||||||
|
"all_parameters": "所有可用的参数",
|
||||||
"call_service": "调用服务",
|
"call_service": "调用服务",
|
||||||
"column_description": "描述",
|
"column_description": "描述",
|
||||||
"column_example": "示例",
|
"column_example": "示例",
|
||||||
"column_parameter": "参数",
|
"column_parameter": "参数",
|
||||||
"description": "服务开发工具可让您调用 Home Assistant 中任何可用的服务。",
|
"description": "服务开发工具可让您调用 Home Assistant 中任何可用的服务。",
|
||||||
"fill_example_data": "填写示例数据",
|
"fill_example_data": "填写示例数据",
|
||||||
"title": "服务"
|
"title": "服务",
|
||||||
|
"ui_mode": "进入 UI 模式",
|
||||||
|
"yaml_mode": "进入 YAML 模式",
|
||||||
|
"yaml_parameters": "只能在 YAML 模式下使用的参数"
|
||||||
},
|
},
|
||||||
"states": {
|
"states": {
|
||||||
"alert_entity_field": "实体是必填字段",
|
"alert_entity_field": "实体是必填字段",
|
||||||
"attributes": "属性",
|
"attributes": "属性",
|
||||||
|
"copy_id": "将 ID 复制到剪贴板",
|
||||||
"current_entities": "现有实体",
|
"current_entities": "现有实体",
|
||||||
"description1": "设置设备在 Home Assistant 中的呈现方式。",
|
"description1": "设置设备在 Home Assistant 中的呈现方式。",
|
||||||
"description2": "这将不影响实际设备。",
|
"description2": "这将不影响实际设备。",
|
||||||
@ -3045,8 +3096,10 @@
|
|||||||
},
|
},
|
||||||
"my": {
|
"my": {
|
||||||
"component_not_loaded": "您的 Home Assistant 不支持此重定向。需要使用 {integration} 集成才能使用它。",
|
"component_not_loaded": "您的 Home Assistant 不支持此重定向。需要使用 {integration} 集成才能使用它。",
|
||||||
|
"documentation": "文档",
|
||||||
"error": "发生未知错误",
|
"error": "发生未知错误",
|
||||||
"faq_link": "我的 Home Assistant 常见问题",
|
"faq_link": "我的 Home Assistant 常见问题",
|
||||||
|
"no_supervisor": "您的 Home Assistant 不支持此重定向。它需要 Home Assistant OS 或 Home Assistant Supervised 安装方法。有关更多信息,请参阅 {docs_link} 。",
|
||||||
"not_supported": "您的 Home Assistant 不支持此重定向。请查阅{link}以获取受支持的重定向及其引入的版本。"
|
"not_supported": "您的 Home Assistant 不支持此重定向。请查阅{link}以获取受支持的重定向及其引入的版本。"
|
||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
|
@ -120,7 +120,7 @@
|
|||||||
},
|
},
|
||||||
"automation": {
|
"automation": {
|
||||||
"last_triggered": "上次觸發",
|
"last_triggered": "上次觸發",
|
||||||
"trigger": "執行"
|
"trigger": "執行自動化"
|
||||||
},
|
},
|
||||||
"camera": {
|
"camera": {
|
||||||
"not_available": "無法載入影像"
|
"not_available": "無法載入影像"
|
||||||
@ -200,7 +200,8 @@
|
|||||||
},
|
},
|
||||||
"script": {
|
"script": {
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"cancel_multiple": "取消 {number}"
|
"cancel_multiple": "取消 {number}",
|
||||||
|
"run": "執行"
|
||||||
},
|
},
|
||||||
"service": {
|
"service": {
|
||||||
"run": "執行"
|
"run": "執行"
|
||||||
@ -963,7 +964,7 @@
|
|||||||
"delete_confirm": "確定要刪除嗎?",
|
"delete_confirm": "確定要刪除嗎?",
|
||||||
"duplicate": "複製",
|
"duplicate": "複製",
|
||||||
"header": "觸發判斷",
|
"header": "觸發判斷",
|
||||||
"introduction": "「觸發判斷」為自動化規則中,選項使用的部分。可以用以避免誤觸發某些動作。",
|
"introduction": "「觸發判斷」為自動化規則中,選項使用的部分。可以用於滿足所有條件方執行、以避免誤觸發自動化。",
|
||||||
"learn_more": "詳細了解觸發判斷",
|
"learn_more": "詳細了解觸發判斷",
|
||||||
"name": "判斷式",
|
"name": "判斷式",
|
||||||
"type_select": "觸發判斷類別",
|
"type_select": "觸發判斷類別",
|
||||||
@ -2171,7 +2172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tags": {
|
"tag": {
|
||||||
"add_tag": "新增標籤",
|
"add_tag": "新增標籤",
|
||||||
"automation_title": "標籤 {name} 已掃描",
|
"automation_title": "標籤 {name} 已掃描",
|
||||||
"caption": "標籤",
|
"caption": "標籤",
|
||||||
@ -2631,7 +2632,7 @@
|
|||||||
"no_entity_more_info": "未提供獲得更詳細資料對話實體",
|
"no_entity_more_info": "未提供獲得更詳細資料對話實體",
|
||||||
"no_entity_toggle": "未提供實體進行切換",
|
"no_entity_toggle": "未提供實體進行切換",
|
||||||
"no_navigation_path": "未提供指定導航路徑",
|
"no_navigation_path": "未提供指定導航路徑",
|
||||||
"no_service": "未提供指定執行服務",
|
"no_service": "未指定執行服務",
|
||||||
"no_url": "未提供指定開啟 URL"
|
"no_url": "未提供指定開啟 URL"
|
||||||
},
|
},
|
||||||
"confirm_delete": "確定要刪除此面板?",
|
"confirm_delete": "確定要刪除此面板?",
|
||||||
|
33
yarn.lock
33
yarn.lock
@ -1938,6 +1938,14 @@
|
|||||||
lezer-tree "^0.13.0"
|
lezer-tree "^0.13.0"
|
||||||
style-mod "^3.2.0"
|
style-mod "^3.2.0"
|
||||||
|
|
||||||
|
"@codemirror/history@^0.17.2":
|
||||||
|
version "0.17.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@codemirror/history/-/history-0.17.2.tgz#d94273af95f7dbd8a0c41c370984e4bbf55d54e8"
|
||||||
|
integrity sha512-ML/FA6VJMMwsQrx7HFXaOAg/LqrLxUktE5pu230UOn0u5bxIPxbX0lLGs34994s9HPruqbCqIikSc+IfjLkFcA==
|
||||||
|
dependencies:
|
||||||
|
"@codemirror/state" "^0.17.0"
|
||||||
|
"@codemirror/view" "^0.17.0"
|
||||||
|
|
||||||
"@codemirror/language@^0.17.0":
|
"@codemirror/language@^0.17.0":
|
||||||
version "0.17.5"
|
version "0.17.5"
|
||||||
resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-0.17.5.tgz#77b551680f0bb8a6e40de7659e518de1e0c637a0"
|
resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-0.17.5.tgz#77b551680f0bb8a6e40de7659e518de1e0c637a0"
|
||||||
@ -1966,6 +1974,14 @@
|
|||||||
"@codemirror/view" "^0.17.0"
|
"@codemirror/view" "^0.17.0"
|
||||||
lezer-tree "^0.13.0"
|
lezer-tree "^0.13.0"
|
||||||
|
|
||||||
|
"@codemirror/panel@^0.17.0":
|
||||||
|
version "0.17.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@codemirror/panel/-/panel-0.17.1.tgz#9dfd3b464c537caebec43fffbd8a283b0210d4c1"
|
||||||
|
integrity sha512-2it2Sk02eF4WFwPVoRLhr9lPGq9lwwwHZFyb4olqI6tOyTPwk6leZ4ntabYrhvjRc7gD6S6vM14KhOtjm4hjqg==
|
||||||
|
dependencies:
|
||||||
|
"@codemirror/state" "^0.17.0"
|
||||||
|
"@codemirror/view" "^0.17.0"
|
||||||
|
|
||||||
"@codemirror/rangeset@^0.17.0":
|
"@codemirror/rangeset@^0.17.0":
|
||||||
version "0.17.1"
|
version "0.17.1"
|
||||||
resolved "https://registry.yarnpkg.com/@codemirror/rangeset/-/rangeset-0.17.1.tgz#41066bcf4b70b2c7595cb1363780688cc3f1235b"
|
resolved "https://registry.yarnpkg.com/@codemirror/rangeset/-/rangeset-0.17.1.tgz#41066bcf4b70b2c7595cb1363780688cc3f1235b"
|
||||||
@ -1973,6 +1989,18 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
"@codemirror/state" "^0.17.0"
|
"@codemirror/state" "^0.17.0"
|
||||||
|
|
||||||
|
"@codemirror/search@^0.17.1":
|
||||||
|
version "0.17.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@codemirror/search/-/search-0.17.1.tgz#eb6ae529093b09f92b1d62c4d0ad8d09c4e218f7"
|
||||||
|
integrity sha512-wY0KP9my/0uKQk9AU39EqmkY6zMVv2Erej5b1rRBksM78JZXzjNUl4gyhtx1/0om84IZ1ocmW8MRElkAY6r1rw==
|
||||||
|
dependencies:
|
||||||
|
"@codemirror/panel" "^0.17.0"
|
||||||
|
"@codemirror/rangeset" "^0.17.0"
|
||||||
|
"@codemirror/state" "^0.17.0"
|
||||||
|
"@codemirror/text" "^0.17.0"
|
||||||
|
"@codemirror/view" "^0.17.0"
|
||||||
|
crelt "^1.0.5"
|
||||||
|
|
||||||
"@codemirror/state@^0.17.0", "@codemirror/state@^0.17.1":
|
"@codemirror/state@^0.17.0", "@codemirror/state@^0.17.1":
|
||||||
version "0.17.2"
|
version "0.17.2"
|
||||||
resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-0.17.2.tgz#b94846def08c2258bfdf09839359c31823e663ff"
|
resolved "https://registry.yarnpkg.com/@codemirror/state/-/state-0.17.2.tgz#b94846def08c2258bfdf09839359c31823e663ff"
|
||||||
@ -6199,6 +6227,11 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7:
|
|||||||
safe-buffer "^5.0.1"
|
safe-buffer "^5.0.1"
|
||||||
sha.js "^2.4.8"
|
sha.js "^2.4.8"
|
||||||
|
|
||||||
|
crelt@^1.0.5:
|
||||||
|
version "1.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/crelt/-/crelt-1.0.5.tgz#57c0d52af8c859e354bace1883eb2e1eb182bb94"
|
||||||
|
integrity sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==
|
||||||
|
|
||||||
cropperjs@^1.5.7:
|
cropperjs@^1.5.7:
|
||||||
version "1.5.7"
|
version "1.5.7"
|
||||||
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.5.7.tgz#b65019725bae1c6285e881fb661b2141fa57025b"
|
resolved "https://registry.yarnpkg.com/cropperjs/-/cropperjs-1.5.7.tgz#b65019725bae1c6285e881fb661b2141fa57025b"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user