Merge branch 'dev' of https://github.com/home-assistant/frontend into confdig-section-redesign

This commit is contained in:
Zack Arnett 2020-08-31 14:34:01 -05:00
commit 3f631cc34a
91 changed files with 4656 additions and 1149 deletions

View File

@ -9,21 +9,19 @@ import {
mdiExclamationThick, mdiExclamationThick,
mdiFlask, mdiFlask,
mdiHomeAssistant, mdiHomeAssistant,
mdiInformation,
mdiKey, mdiKey,
mdiNetwork, mdiNetwork,
mdiPound, mdiPound,
mdiShield, mdiShield,
} from "@mdi/js"; } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip";
import { import {
css, css,
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { classMap } from "lit-html/directives/class-map"; import { classMap } from "lit-html/directives/class-map";
@ -35,6 +33,7 @@ import "../../../../src/components/buttons/ha-progress-button";
import "../../../../src/components/ha-card"; import "../../../../src/components/ha-card";
import "../../../../src/components/ha-label-badge"; import "../../../../src/components/ha-label-badge";
import "../../../../src/components/ha-markdown"; import "../../../../src/components/ha-markdown";
import "../../../../src/components/ha-settings-row";
import "../../../../src/components/ha-svg-icon"; import "../../../../src/components/ha-svg-icon";
import "../../../../src/components/ha-switch"; import "../../../../src/components/ha-switch";
import { import {
@ -386,67 +385,94 @@ class HassioAddonInfo extends LitElement {
${this.addon.version ${this.addon.version
? html` ? html`
<div class="state"> <div class="addon-options">
<div>Start on boot</div> <ha-settings-row ?three-line=${this.narrow}>
<ha-switch <span slot="heading">
@change=${this._startOnBootToggled} Start on boot
.checked=${this.addon.boot === "auto"} </span>
haptic <span slot="description">
></ha-switch> Make the add-on start during a system boot
</div> </span>
${this.addon.auto_update || this.hass.userData?.showAdvanced <ha-switch
? html` @change=${this._startOnBootToggled}
<div class="state"> .checked=${this.addon.boot === "auto"}
<div>Auto update</div> haptic
<ha-switch ></ha-switch>
@change=${this._autoUpdateToggled} </ha-settings-row>
.checked=${this.addon.auto_update}
haptic ${this.hass.userData?.showAdvanced
></ha-switch> ? html`
</div> <ha-settings-row ?three-line=${this.narrow}>
` <span slot="heading">
: ""} Watchdog
${this.addon.ingress
? html`
<div class="state">
<div>Show in sidebar</div>
<ha-switch
@change=${this._panelToggled}
.checked=${this.addon.ingress_panel}
.disabled=${this._computeCannotIngressSidebar}
haptic
></ha-switch>
${this._computeCannotIngressSidebar
? html`
<span>
This option requires Home Assistant 0.92 or
later.
</span>
`
: ""}
</div>
`
: ""}
${this._computeUsesProtectedOptions
? html`
<div class="state">
<div>
Protection mode
<span>
<ha-svg-icon path=${mdiInformation}></ha-svg-icon>
<paper-tooltip>
Grant the add-on elevated system access.
</paper-tooltip>
</span> </span>
</div> <span slot="description">
<ha-switch This will start the add-on if it crashes
@change=${this._protectionToggled} </span>
.checked=${this.addon.protected} <ha-switch
haptic @change=${this._watchdogToggled}
></ha-switch> .checked=${this.addon.watchdog}
</div> haptic
` ></ha-switch>
: ""} </ha-settings-row>
`
: ""}
${this.addon.auto_update || this.hass.userData?.showAdvanced
? html`
<ha-settings-row ?three-line=${this.narrow}>
<span slot="heading">
Auto update
</span>
<span slot="description">
Auto update the add-on when there is a new version
available
</span>
<ha-switch
@change=${this._autoUpdateToggled}
.checked=${this.addon.auto_update}
haptic
></ha-switch>
</ha-settings-row>
`
: ""}
${this.addon.ingress
? html`
<ha-settings-row ?three-line=${this.narrow}>
<span slot="heading">
Show in sidebar
</span>
<span slot="description">
${this._computeCannotIngressSidebar
? "This option requires Home Assistant 0.92 or later."
: "Add this add-on to your sidebar"}
</span>
<ha-switch
@change=${this._panelToggled}
.checked=${this.addon.ingress_panel}
.disabled=${this._computeCannotIngressSidebar}
haptic
></ha-switch>
</ha-settings-row>
`
: ""}
${this._computeUsesProtectedOptions
? html`
<ha-settings-row ?three-line=${this.narrow}>
<span slot="heading">
Protection mode
</span>
<span slot="description">
Blocks elevated system access from the add-on
</span>
<ha-switch
@change=${this._protectionToggled}
.checked=${this.addon.protected}
haptic
></ha-switch>
</ha-settings-row>
`
: ""}
</div>
` `
: ""} : ""}
${this._error ? html` <div class="errors">${this._error}</div> ` : ""} ${this._error ? html` <div class="errors">${this._error}</div> ` : ""}
@ -552,137 +578,6 @@ class HassioAddonInfo extends LitElement {
`; `;
} }
static get styles(): CSSResult[] {
return [
haStyle,
hassioStyle,
css`
:host {
display: block;
}
ha-card {
display: block;
margin-bottom: 16px;
}
ha-card.warning {
background-color: var(--error-color);
color: white;
}
ha-card.warning .card-header {
color: white;
}
ha-card.warning .card-content {
color: white;
}
ha-card.warning mwc-button {
--mdc-theme-primary: white !important;
}
.warning {
color: var(--error-color);
--mdc-theme-primary: var(--error-color);
}
.light-color {
color: var(--secondary-text-color);
}
.addon-header {
padding-left: 8px;
font-size: 24px;
color: var(--ha-card-header-color, --primary-text-color);
}
.addon-version {
float: right;
font-size: 15px;
vertical-align: middle;
}
.errors {
color: var(--error-color);
margin-bottom: 16px;
}
.description {
margin-bottom: 16px;
}
img.logo {
max-height: 60px;
margin: 16px 0;
display: block;
}
.state {
display: flex;
margin: 33px 0;
}
.state div {
width: 180px;
display: inline-block;
}
.state ha-svg-icon {
width: 16px;
height: 16px;
color: var(--secondary-text-color);
}
ha-switch {
display: flex;
}
ha-svg-icon.running {
color: var(--paper-green-400);
}
ha-svg-icon.stopped {
color: var(--google-red-300);
}
ha-call-api-button {
font-weight: 500;
color: var(--primary-color);
}
.right {
float: right;
}
protection-enable mwc-button {
--mdc-theme-primary: white;
}
.description a {
color: var(--primary-color);
}
.red {
--ha-label-badge-color: var(--label-badge-red, #df4c1e);
}
.blue {
--ha-label-badge-color: var(--label-badge-blue, #039be5);
}
.green {
--ha-label-badge-color: var(--label-badge-green, #0da035);
}
.yellow {
--ha-label-badge-color: var(--label-badge-yellow, #f4b400);
}
.security {
margin-bottom: 16px;
}
.card-actions {
display: flow-root;
}
.security h3 {
margin-bottom: 8px;
font-weight: normal;
}
.security ha-label-badge {
cursor: pointer;
margin-right: 4px;
--ha-label-badge-padding: 8px 0 0 0;
}
.changelog {
display: contents;
}
.changelog-link {
color: var(--primary-color);
text-decoration: underline;
cursor: pointer;
}
ha-markdown {
padding: 16px;
}
`,
];
}
private get _computeHassioApi(): boolean { private get _computeHassioApi(): boolean {
return ( return (
this.addon.hassio_api && this.addon.hassio_api &&
@ -771,6 +666,24 @@ class HassioAddonInfo extends LitElement {
} }
} }
private async _watchdogToggled(): Promise<void> {
this._error = undefined;
const data: HassioAddonSetOptionParams = {
watchdog: !this.addon.watchdog,
};
try {
await setHassioAddonOption(this.hass, this.addon.slug, data);
const eventdata = {
success: true,
response: undefined,
path: "option",
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err) {
this._error = `Failed to set addon option, ${err.body?.message || err}`;
}
}
private async _autoUpdateToggled(): Promise<void> { private async _autoUpdateToggled(): Promise<void> {
this._error = undefined; this._error = undefined;
const data: HassioAddonSetOptionParams = { const data: HassioAddonSetOptionParams = {
@ -887,6 +800,146 @@ class HassioAddonInfo extends LitElement {
this._error = `Failed to uninstall addon, ${err.body?.message || err}`; this._error = `Failed to uninstall addon, ${err.body?.message || err}`;
} }
} }
static get styles(): CSSResult[] {
return [
haStyle,
hassioStyle,
css`
:host {
display: block;
}
ha-card {
display: block;
margin-bottom: 16px;
}
ha-card.warning {
background-color: var(--error-color);
color: white;
}
ha-card.warning .card-header {
color: white;
}
ha-card.warning .card-content {
color: white;
}
ha-card.warning mwc-button {
--mdc-theme-primary: white !important;
}
.warning {
color: var(--error-color);
--mdc-theme-primary: var(--error-color);
}
.light-color {
color: var(--secondary-text-color);
}
.addon-header {
padding-left: 8px;
font-size: 24px;
color: var(--ha-card-header-color, --primary-text-color);
}
.addon-version {
float: right;
font-size: 15px;
vertical-align: middle;
}
.errors {
color: var(--error-color);
margin-bottom: 16px;
}
.description {
margin-bottom: 16px;
}
img.logo {
max-height: 60px;
margin: 16px 0;
display: block;
}
ha-switch {
display: flex;
}
ha-svg-icon.running {
color: var(--paper-green-400);
}
ha-svg-icon.stopped {
color: var(--google-red-300);
}
ha-call-api-button {
font-weight: 500;
color: var(--primary-color);
}
.right {
float: right;
}
protection-enable mwc-button {
--mdc-theme-primary: white;
}
.description a {
color: var(--primary-color);
}
.red {
--ha-label-badge-color: var(--label-badge-red, #df4c1e);
}
.blue {
--ha-label-badge-color: var(--label-badge-blue, #039be5);
}
.green {
--ha-label-badge-color: var(--label-badge-green, #0da035);
}
.yellow {
--ha-label-badge-color: var(--label-badge-yellow, #f4b400);
}
.security {
margin-bottom: 16px;
}
.card-actions {
display: flow-root;
}
.security h3 {
margin-bottom: 8px;
font-weight: normal;
}
.security ha-label-badge {
cursor: pointer;
margin-right: 4px;
--ha-label-badge-padding: 8px 0 0 0;
}
.changelog {
display: contents;
}
.changelog-link {
color: var(--primary-color);
text-decoration: underline;
cursor: pointer;
}
ha-markdown {
padding: 16px;
}
ha-settings-row {
padding: 0;
height: 54px;
width: 100%;
}
ha-settings-row > span[slot="description"] {
white-space: normal;
color: var(--secondary-text-color);
}
ha-settings-row[three-line] {
height: 74px;
}
.addon-options {
max-width: 50%;
}
@media (max-width: 720px) {
.addon-options {
max-width: 100%;
}
}
`,
];
}
} }
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {

View File

@ -21,7 +21,7 @@ interface State {
class HassioAnsiToHtml extends LitElement { class HassioAnsiToHtml extends LitElement {
@property() public content!: string; @property() public content!: string;
public render(): TemplateResult | void { protected render(): TemplateResult | void {
return html`${this._parseTextToColoredPre(this.content)}`; return html`${this._parseTextToColoredPre(this.content)}`;
} }

View File

@ -10,7 +10,7 @@ import {
internalProperty, internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import "../../../src/components/buttons/ha-call-api-button"; import "../../../src/components/buttons/ha-progress-button";
import "../../../src/components/ha-card"; import "../../../src/components/ha-card";
import "../../../src/components/ha-svg-icon"; import "../../../src/components/ha-svg-icon";
import { HassioHassOSInfo } from "../../../src/data/hassio/host"; import { HassioHassOSInfo } from "../../../src/data/hassio/host";
@ -21,6 +21,11 @@ import {
import { haStyle } from "../../../src/resources/styles"; import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types"; import { HomeAssistant } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style"; import { hassioStyle } from "../resources/hassio-style";
import {
showConfirmationDialog,
showAlertDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
import { HassioResponse } from "../../../src/data/hassio/common";
@customElement("hassio-update") @customElement("hassio-update")
export class HassioUpdate extends LitElement { export class HassioUpdate extends LitElement {
@ -126,31 +131,50 @@ export class HassioUpdate extends LitElement {
<a href="${releaseNotesUrl}" target="_blank" rel="noreferrer"> <a href="${releaseNotesUrl}" target="_blank" rel="noreferrer">
<mwc-button>Release notes</mwc-button> <mwc-button>Release notes</mwc-button>
</a> </a>
<ha-call-api-button <ha-progress-button
.hass=${this.hass} .apiPath=${apiPath}
.path=${apiPath} .name=${name}
@hass-api-called=${this._apiCalled} .version=${lastVersion}
@click=${this._confirmUpdate}
> >
Update Update
</ha-call-api-button> </ha-progress-button>
</div> </div>
</ha-card> </ha-card>
`; `;
} }
private _apiCalled(ev): void { private async _confirmUpdate(ev): Promise<void> {
if (ev.detail.success) { const item = ev.target;
this._error = ""; item.progress = true;
const confirmed = await showConfirmationDialog(this, {
title: `Update ${item.name}`,
text: `Are you sure you want to upgrade ${item.name} to version ${item.version}?`,
confirmText: "update",
dismissText: "cancel",
});
if (!confirmed) {
item.progress = false;
return; return;
} }
try {
const response = ev.detail.response; await this.hass.callApi<HassioResponse<void>>("POST", item.apiPath);
} catch (err) {
if (typeof response.body === "object") { // Only show an error if the status code was not 504 (timeout reported by proxies)
this._error = response.body.message || "Unknown error"; if (err.status_code !== 504) {
} else { showAlertDialog(this, {
this._error = response.body; title: "Update failed",
text:
typeof err === "object"
? typeof err.body === "object"
? err.body.message
: err.body || "Unkown error"
: err,
});
}
} }
item.progress = false;
} }
static get styles(): CSSResult[] { static get styles(): CSSResult[] {

View File

@ -90,7 +90,14 @@ export class DialogHassioNetwork extends LitElement implements HassDialog {
} }
return html` return html`
<ha-dialog open .heading=${true} hideActions @closed=${this.closeDialog}> <ha-dialog
open
scrimClickAction
escapeKeyAction
.heading=${true}
hideActions
@closed=${this.closeDialog}
>
<div slot="heading"> <div slot="heading">
<ha-header-bar> <ha-header-bar>
<span slot="title"> <span slot="title">

View File

@ -1,9 +1,8 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@material/mwc-list/mwc-list-item";
import { ActionDetail } from "@material/mwc-list/mwc-list-foundation"; import { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
import "@material/mwc-list/mwc-list-item";
import { mdiDotsVertical } from "@mdi/js"; import { mdiDotsVertical } from "@mdi/js";
import { safeDump } from "js-yaml"; import { safeDump } from "js-yaml";
import memoizeOne from "memoize-one";
import { import {
css, css,
CSSResult, CSSResult,
@ -14,7 +13,11 @@ import {
property, property,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import memoizeOne from "memoize-one";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
import { fetchHassioHardwareInfo } from "../../../src/data/hassio/hardware";
import { import {
changeHostOptions, changeHostOptions,
configSyncOS, configSyncOS,
@ -25,26 +28,21 @@ import {
shutdownHost, shutdownHost,
updateOS, updateOS,
} from "../../../src/data/hassio/host"; } from "../../../src/data/hassio/host";
import { fetchHassioHardwareInfo } from "../../../src/data/hassio/hardware";
import { import {
fetchNetworkInfo, fetchNetworkInfo,
NetworkInfo, NetworkInfo,
} from "../../../src/data/hassio/network"; } from "../../../src/data/hassio/network";
import { HassioInfo } from "../../../src/data/hassio/supervisor"; import { HassioInfo } from "../../../src/data/hassio/supervisor";
import { hassioStyle } from "../resources/hassio-style";
import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types";
import { import {
showAlertDialog, showAlertDialog,
showConfirmationDialog, showConfirmationDialog,
showPromptDialog, showPromptDialog,
} from "../../../src/dialogs/generic/show-dialog-box"; } from "../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types";
import { showHassioMarkdownDialog } from "../dialogs/markdown/show-dialog-hassio-markdown"; import { showHassioMarkdownDialog } from "../dialogs/markdown/show-dialog-hassio-markdown";
import { showNetworkDialog } from "../dialogs/network/show-dialog-network"; import { showNetworkDialog } from "../dialogs/network/show-dialog-network";
import { hassioStyle } from "../resources/hassio-style";
import "../../../src/components/ha-button-menu";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
@customElement("hassio-host-info") @customElement("hassio-host-info")
class HassioHostInfo extends LitElement { class HassioHostInfo extends LitElement {
@ -58,8 +56,10 @@ class HassioHostInfo extends LitElement {
@internalProperty() public _networkInfo?: NetworkInfo; @internalProperty() public _networkInfo?: NetworkInfo;
public render(): TemplateResult | void { protected render(): TemplateResult | void {
const primaryIpAddress = this._primaryIpAddress(this._networkInfo!); const primaryIpAddress = this.hostInfo.features.includes("network")
? this._primaryIpAddress(this._networkInfo!)
: "";
return html` return html`
<ha-card header="Host System"> <ha-card header="Host System">
<div class="card-content"> <div class="card-content">
@ -79,20 +79,23 @@ class HassioHostInfo extends LitElement {
</mwc-button> </mwc-button>
</ha-settings-row>` </ha-settings-row>`
: ""} : ""}
<ha-settings-row> ${this.hostInfo.features.includes("network")
<span slot="heading"> ? html` <ha-settings-row>
IP address <span slot="heading">
</span> IP address
<span slot="description"> </span>
${primaryIpAddress} <span slot="description">
</span> ${primaryIpAddress}
<mwc-button </span>
title="Change the network" <mwc-button
label="Change" title="Change the network"
@click=${this._changeNetworkClicked} label="Change"
> @click=${this._changeNetworkClicked}
</mwc-button> >
</ha-settings-row> </mwc-button>
</ha-settings-row>`
: ""}
<ha-settings-row> <ha-settings-row>
<span slot="heading"> <span slot="heading">
Operating system Operating system
@ -206,7 +209,7 @@ class HassioHostInfo extends LitElement {
ha-settings-row[three-line] { ha-settings-row[three-line] {
height: 74px; height: 74px;
} }
ha-settings-row[three-line] > div { ha-settings-row > span[slot="description"] {
white-space: normal; white-space: normal;
color: var(--secondary-text-color); color: var(--secondary-text-color);
} }

View File

@ -8,11 +8,10 @@ import {
property, property,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import "../../../src/components/ha-card";
import "../../../src/components/ha-settings-row";
import "../../../src/components/ha-switch";
import { HassioHostInfo as HassioHostInfoType } from "../../../src/data/hassio/host"; import { HassioHostInfo as HassioHostInfoType } from "../../../src/data/hassio/host";
import { hassioStyle } from "../resources/hassio-style";
import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types";
import { import {
HassioSupervisorInfo as HassioSupervisorInfoType, HassioSupervisorInfo as HassioSupervisorInfoType,
reloadSupervisor, reloadSupervisor,
@ -24,10 +23,9 @@ import {
showAlertDialog, showAlertDialog,
showConfirmationDialog, showConfirmationDialog,
} from "../../../src/dialogs/generic/show-dialog-box"; } from "../../../src/dialogs/generic/show-dialog-box";
import { haStyle } from "../../../src/resources/styles";
import "../../../src/components/ha-card"; import { HomeAssistant } from "../../../src/types";
import "../../../src/components/ha-settings-row"; import { hassioStyle } from "../resources/hassio-style";
import "../../../src/components/ha-switch";
@customElement("hassio-supervisor-info") @customElement("hassio-supervisor-info")
class HassioSupervisorInfo extends LitElement { class HassioSupervisorInfo extends LitElement {
@ -37,7 +35,7 @@ class HassioSupervisorInfo extends LitElement {
@property() public hostInfo!: HassioHostInfoType; @property() public hostInfo!: HassioHostInfoType;
public render(): TemplateResult | void { protected render(): TemplateResult | void {
return html` return html`
<ha-card header="Supervisor"> <ha-card header="Supervisor">
<div class="card-content"> <div class="card-content">
@ -173,7 +171,7 @@ class HassioSupervisorInfo extends LitElement {
ha-settings-row[three-line] { ha-settings-row[three-line] {
height: 74px; height: 74px;
} }
ha-settings-row[three-line] > div { ha-settings-row > span[slot="description"] {
white-space: normal; white-space: normal;
color: var(--secondary-text-color); color: var(--secondary-text-color);
} }

View File

@ -69,7 +69,7 @@ class HassioSupervisorLog extends LitElement {
await this._loadData(); await this._loadData();
} }
public render(): TemplateResult | void { protected render(): TemplateResult | void {
return html` return html`
<ha-card> <ha-card>
${this._error ? html` <div class="errors">${this._error}</div> ` : ""} ${this._error ? html` <div class="errors">${this._error}</div> ` : ""}

View File

@ -12,8 +12,8 @@ import {
HassioHostInfo, HassioHostInfo,
} from "../../../src/data/hassio/host"; } from "../../../src/data/hassio/host";
import { import {
HassioSupervisorInfo,
HassioInfo, HassioInfo,
HassioSupervisorInfo,
} from "../../../src/data/hassio/supervisor"; } from "../../../src/data/hassio/supervisor";
import "../../../src/layouts/hass-tabs-subpage"; import "../../../src/layouts/hass-tabs-subpage";
import { haStyle } from "../../../src/resources/styles"; import { haStyle } from "../../../src/resources/styles";
@ -40,7 +40,7 @@ class HassioSystem extends LitElement {
@property({ attribute: false }) public hassOsInfo!: HassioHassOSInfo; @property({ attribute: false }) public hassOsInfo!: HassioHassOSInfo;
public render(): TemplateResult | void { protected render(): TemplateResult | void {
return html` return html`
<hass-tabs-subpage <hass-tabs-subpage
.hass=${this.hass} .hass=${this.hass}

View File

@ -22,9 +22,6 @@ const _load = (
(element as HTMLScriptElement).async = true; (element as HTMLScriptElement).async = true;
if (type) { if (type) {
(element as HTMLScriptElement).type = type; (element as HTMLScriptElement).type = type;
// https://github.com/home-assistant/frontend/pull/6328
(element as HTMLScriptElement).crossOrigin =
url.substr(0, 1) === "/" ? "use-credentials" : "anonymous";
} }
break; break;
case "link": case "link":

View File

@ -1,131 +0,0 @@
import "@material/mwc-button";
import "../ha-circular-progress";
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
class HaProgressButton extends PolymerElement {
static get template() {
return html`
<style>
:host {
outline: none;
display: inline-block;
}
.container {
position: relative;
display: inline-block;
}
mwc-button {
transition: all 1s;
}
.success:not(.raised) mwc-button {
--mdc-theme-primary: white;
background-color: var(--success-color);
transition: none;
}
.success.raised mwc-button {
--mdc-theme-primary: var(--success-color);
transition: none;
}
.error:not(.raised) mwc-button {
--mdc-theme-primary: white;
background-color: var(--error-color);
transition: none;
}
.error.raised mwc-button {
--mdc-theme-primary: var(--error-color);
transition: none;
}
.progress {
@apply --layout;
@apply --layout-center-center;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
</style>
<div class$="container [[computeClasses(raised)]]" id="container">
<mwc-button
id="button"
disabled="[[computeDisabled(disabled, progress)]]"
on-click="buttonTapped"
raised="[[raised]]"
>
<slot></slot>
</mwc-button>
<template is="dom-if" if="[[progress]]">
<div class="progress">
<ha-circular-progress active size="small"></ha-circular-progress>
</div>
</template>
</div>
`;
}
static get properties() {
return {
hass: {
type: Object,
},
progress: {
type: Boolean,
value: false,
},
disabled: {
type: Boolean,
value: false,
},
raised: {
type: Boolean,
value: false,
},
};
}
tempClass(className) {
const classList = this.$.container.classList;
classList.add(className);
setTimeout(() => {
classList.remove(className);
}, 1000);
}
ready() {
super.ready();
this.addEventListener("click", (ev) => this.buttonTapped(ev));
}
buttonTapped(ev) {
if (this.progress) ev.stopPropagation();
}
actionSuccess() {
this.tempClass("success");
}
actionError() {
this.tempClass("error");
}
computeDisabled(disabled, progress) {
return disabled || progress;
}
computeClasses(raised) {
return raised ? "raised" : "";
}
}
customElements.define("ha-progress-button", HaProgressButton);

View File

@ -0,0 +1,97 @@
import "@material/mwc-button";
import {
css,
CSSResult,
customElement,
html,
LitElement,
property,
TemplateResult,
} from "lit-element";
import "../ha-circular-progress";
@customElement("ha-progress-button")
class HaProgressButton extends LitElement {
@property({ type: Boolean }) public disabled = false;
@property({ type: Boolean }) public progress = false;
public render(): TemplateResult {
return html`
<mwc-button
.disabled=${this.disabled || this.progress}
@click=${this._buttonTapped}
>
<slot></slot>
</mwc-button>
${this.progress
? html`<div class="progress">
<ha-circular-progress size="small" active></ha-circular-progress>
</div>`
: ""}
`;
}
public actionSuccess(): void {
this._tempClass("success");
}
public actionError(): void {
this._tempClass("error");
}
private _tempClass(className: string): void {
this.classList.add(className);
setTimeout(() => {
this.classList.remove(className);
}, 1000);
}
private _buttonTapped(ev: Event): void {
if (this.progress) {
ev.stopPropagation();
}
}
static get styles(): CSSResult {
return css`
:host {
outline: none;
display: inline-block;
position: relative;
}
mwc-button {
transition: all 1s;
}
.success mwc-button {
--mdc-theme-primary: white;
background-color: var(--success-color);
transition: none;
}
.error mwc-button {
--mdc-theme-primary: white;
background-color: var(--error-color);
transition: none;
}
.progress {
bottom: 0;
margin-top: 4px;
position: absolute;
text-align: center;
top: 0;
width: 100%;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"ha-progress-button": HaProgressButton;
}
}

View File

@ -70,6 +70,7 @@ export interface DataTableColumnData extends DataTableSortColumnData {
maxWidth?: string; maxWidth?: string;
grows?: boolean; grows?: boolean;
forceLTR?: boolean; forceLTR?: boolean;
hidden?: boolean;
} }
export interface DataTableRowData { export interface DataTableRowData {
@ -242,8 +243,10 @@ export class HaDataTable extends LitElement {
</div> </div>
` `
: ""} : ""}
${Object.entries(this.columns).map((columnEntry) => { ${Object.entries(this.columns).map(([key, column]) => {
const [key, column] = columnEntry; if (column.hidden) {
return "";
}
const sorted = key === this._sortColumn; const sorted = key === this._sortColumn;
const classes = { const classes = {
"mdc-data-table__header-cell--numeric": Boolean( "mdc-data-table__header-cell--numeric": Boolean(
@ -346,41 +349,45 @@ export class HaDataTable extends LitElement {
</div> </div>
` `
: ""} : ""}
${Object.entries(this.columns).map((columnEntry) => { ${Object.entries(this.columns).map(
const [key, column] = columnEntry; ([key, column]) => {
return html` if (column.hidden) {
<div return "";
role="cell" }
class="mdc-data-table__cell ${classMap({ return html`
"mdc-data-table__cell--numeric": Boolean( <div
column.type === "numeric" role="cell"
), class="mdc-data-table__cell ${classMap({
"mdc-data-table__cell--icon": Boolean( "mdc-data-table__cell--numeric": Boolean(
column.type === "icon" column.type === "numeric"
), ),
"mdc-data-table__cell--icon-button": Boolean( "mdc-data-table__cell--icon": Boolean(
column.type === "icon-button" column.type === "icon"
), ),
grows: Boolean(column.grows), "mdc-data-table__cell--icon-button": Boolean(
forceLTR: Boolean(column.forceLTR), column.type === "icon-button"
})}" ),
style=${column.width grows: Boolean(column.grows),
? styleMap({ forceLTR: Boolean(column.forceLTR),
[column.grows })}"
? "minWidth" style=${column.width
: "width"]: column.width, ? styleMap({
maxWidth: column.maxWidth [column.grows
? column.maxWidth ? "minWidth"
: "", : "width"]: column.width,
}) maxWidth: column.maxWidth
: ""} ? column.maxWidth
> : "",
${column.template })
? column.template(row[key], row) : ""}
: row[key]} >
</div> ${column.template
`; ? column.template(row[key], row)
})} : row[key]}
</div>
`;
}
)}
</div> </div>
`; `;
}, },

View File

@ -1,11 +1,11 @@
// To use comlink under ES5 // To use comlink under ES5
import "proxy-polyfill";
import { expose } from "comlink"; import { expose } from "comlink";
import "proxy-polyfill";
import type { import type {
DataTableSortColumnData,
DataTableRowData, DataTableRowData,
SortingDirection, DataTableSortColumnData,
SortableColumnContainer, SortableColumnContainer,
SortingDirection,
} from "./ha-data-table"; } from "./ha-data-table";
const filterData = ( const filterData = (
@ -19,7 +19,7 @@ const filterData = (
const [key, column] = columnEntry; const [key, column] = columnEntry;
if (column.filterable) { if (column.filterable) {
if ( if (
(column.filterKey ? row[key][column.filterKey] : row[key]) String(column.filterKey ? row[key][column.filterKey] : row[key])
.toUpperCase() .toUpperCase()
.includes(filter) .includes(filter)
) { ) {

67
src/components/ha-bar.ts Normal file
View File

@ -0,0 +1,67 @@
import {
css,
CSSResult,
customElement,
LitElement,
property,
svg,
TemplateResult,
} from "lit-element";
import {
getValueInPercentage,
normalize,
roundWithOneDecimal,
} from "../util/calculate";
@customElement("ha-bar")
export class HaBar extends LitElement {
@property({ type: Number }) public min = 0;
@property({ type: Number }) public max = 100;
@property({ type: Number }) public value!: number;
protected render(): TemplateResult {
const valuePrecentage = roundWithOneDecimal(
getValueInPercentage(
normalize(this.value, this.min, this.max),
this.min,
this.max
)
);
return svg`
<svg>
<g>
<rect></rect>
<rect width="${valuePrecentage}%"></rect>
</g>
</svg>
`;
}
static get styles(): CSSResult {
return css`
rect:first-child {
width: 100%;
fill: var(--ha-bar-background-color, var(--secondary-background-color));
}
rect:last-child {
fill: var(--ha-bar-primary-color, var(--primary-color));
rx: var(--ha-bar-border-radius, 4px);
}
svg {
border-radius: var(--ha-bar-border-radius, 4px);
height: 12px;
width: 100%;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"ha-bar": HaBar;
}
}

View File

@ -1,16 +1,16 @@
import {
LitElement,
TemplateResult,
property,
svg,
html,
customElement,
unsafeCSS,
SVGTemplateResult,
css,
} from "lit-element";
// @ts-ignore // @ts-ignore
import progressStyles from "@material/circular-progress/dist/mdc.circular-progress.min.css"; import progressStyles from "@material/circular-progress/dist/mdc.circular-progress.min.css";
import {
css,
customElement,
html,
LitElement,
property,
svg,
SVGTemplateResult,
TemplateResult,
unsafeCSS,
} from "lit-element";
import { classMap } from "lit-html/directives/class-map"; import { classMap } from "lit-html/directives/class-map";
@customElement("ha-circular-progress") @customElement("ha-circular-progress")
@ -24,7 +24,7 @@ export class HaCircularProgress extends LitElement {
@property() @property()
public size: "small" | "medium" | "large" = "medium"; public size: "small" | "medium" | "large" = "medium";
protected render(): TemplateResult | void { protected render(): TemplateResult {
let indeterminatePart: SVGTemplateResult; let indeterminatePart: SVGTemplateResult;
if (this.size === "small") { if (this.size === "small") {

View File

@ -1,8 +1,8 @@
import { Editor } from "codemirror"; import { Editor } from "codemirror";
import { import {
customElement, customElement,
property,
internalProperty, internalProperty,
property,
PropertyValues, PropertyValues,
UpdatingElement, UpdatingElement,
} from "lit-element"; } from "lit-element";
@ -123,7 +123,7 @@ export class HaCodeEditor extends UpdatingElement {
transition: 0.2s ease border-right; transition: 0.2s ease border-right;
} }
.cm-s-default.CodeMirror { .cm-s-default.CodeMirror {
background-color: var(--card-background-color); background-color: var(--code-editor-background-color, var(--card-background-color));
color: var(--primary-text-color); color: var(--primary-text-color);
} }
.cm-s-default .CodeMirror-cursor { .cm-s-default .CodeMirror-cursor {

View File

@ -11,23 +11,13 @@ import { styleMap } from "lit-html/directives/style-map";
import { afterNextRender } from "../common/util/render-status"; import { afterNextRender } from "../common/util/render-status";
import { ifDefined } from "lit-html/directives/if-defined"; import { ifDefined } from "lit-html/directives/if-defined";
import { getValueInPercentage, normalize } from "../util/calculate";
const getAngle = (value: number, min: number, max: number) => { const getAngle = (value: number, min: number, max: number) => {
const percentage = getValueInPercentage(normalize(value, min, max), min, max); const percentage = getValueInPercentage(normalize(value, min, max), min, max);
return (percentage * 180) / 100; return (percentage * 180) / 100;
}; };
const normalize = (value: number, min: number, max: number) => {
if (value > max) return max;
if (value < min) return min;
return value;
};
const getValueInPercentage = (value: number, min: number, max: number) => {
const newMax = max - min;
const newVal = value - min;
return (100 * newVal) / newMax;
};
// Workaround for https://github.com/home-assistant/frontend/issues/6467 // Workaround for https://github.com/home-assistant/frontend/issues/6467
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

View File

@ -44,3 +44,14 @@ export const createAuthForUser = async (
username, username,
password, password,
}); });
export const adminChangePassword = async (
hass: HomeAssistant,
userId: string,
password: string
) =>
hass.callWS<void>({
type: "config/auth_provider/homeassistant/admin_change_password",
user_id: userId,
password,
});

View File

@ -72,6 +72,7 @@ export interface HassioAddonDetails extends HassioAddonInfo {
ingress_panel: boolean; ingress_panel: boolean;
ingress_entry: null | string; ingress_entry: null | string;
ingress_url: null | string; ingress_url: null | string;
watchdog: null | boolean;
} }
export interface HassioAddonsInfo { export interface HassioAddonsInfo {
@ -99,6 +100,7 @@ export interface HassioAddonSetOptionParams {
auto_update?: boolean; auto_update?: boolean;
ingress_panel?: boolean; ingress_panel?: boolean;
network?: object | null; network?: object | null;
watchdog?: boolean;
} }
export const reloadHassioAddons = async (hass: HomeAssistant) => { export const reloadHassioAddons = async (hass: HomeAssistant) => {

View File

@ -2,6 +2,7 @@ import { SVGTemplateResult, svg, html, TemplateResult, css } from "lit-element";
import { styleMap } from "lit-html/directives/style-map"; import { styleMap } from "lit-html/directives/style-map";
import type { HomeAssistant, WeatherEntity } from "../types"; import type { HomeAssistant, WeatherEntity } from "../types";
import { roundWithOneDecimal } from "../util/calculate";
export const weatherSVGs = new Set<string>([ export const weatherSVGs = new Set<string>([
"clear-night", "clear-night",
@ -135,7 +136,7 @@ export const getSecondaryWeatherAttribute = (
return ` return `
${hass!.localize( ${hass!.localize(
`ui.card.weather.attributes.${attribute}` `ui.card.weather.attributes.${attribute}`
)} ${value} ${getWeatherUnit(hass!, attribute)} )} ${roundWithOneDecimal(value)} ${getWeatherUnit(hass!, attribute)}
`; `;
}; };

View File

@ -1,21 +1,22 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/paper-dialog-scrollable/paper-dialog-scrollable"; import "@polymer/paper-dialog-scrollable/paper-dialog-scrollable";
import "../../components/ha-icon-button";
import "../../components/ha-circular-progress";
import "@polymer/paper-tooltip/paper-tooltip";
import type { UnsubscribeFunc } from "home-assistant-js-websocket"; import type { UnsubscribeFunc } from "home-assistant-js-websocket";
import { import {
css, css,
CSSResultArray, CSSResultArray,
customElement, customElement,
html, html,
LitElement,
internalProperty, internalProperty,
LitElement,
PropertyValues, PropertyValues,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { fireEvent } from "../../common/dom/fire_event";
import { computeRTL } from "../../common/util/compute_rtl";
import "../../components/ha-circular-progress";
import "../../components/ha-dialog"; import "../../components/ha-dialog";
import "../../components/ha-form/ha-form"; import "../../components/ha-form/ha-form";
import "../../components/ha-icon-button";
import "../../components/ha-markdown"; import "../../components/ha-markdown";
import { import {
AreaRegistryEntry, AreaRegistryEntry,
@ -35,8 +36,6 @@ import "./step-flow-external";
import "./step-flow-form"; import "./step-flow-form";
import "./step-flow-loading"; import "./step-flow-loading";
import "./step-flow-pick-handler"; import "./step-flow-pick-handler";
import { fireEvent } from "../../common/dom/fire_event";
import { computeRTL } from "../../common/util/compute_rtl";
let instance = 0; let instance = 0;

View File

@ -1,5 +1,4 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "../../components/ha-circular-progress";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { import {
css, css,
@ -12,6 +11,7 @@ import {
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { fireEvent } from "../../common/dom/fire_event"; import { fireEvent } from "../../common/dom/fire_event";
import "../../components/ha-circular-progress";
import "../../components/ha-form/ha-form"; import "../../components/ha-form/ha-form";
import type { HaFormSchema } from "../../components/ha-form/ha-form"; import type { HaFormSchema } from "../../components/ha-form/ha-form";
import "../../components/ha-markdown"; import "../../components/ha-markdown";
@ -91,7 +91,7 @@ class StepFlowForm extends LitElement {
${!allRequiredInfoFilledIn ${!allRequiredInfoFilledIn
? html` ? html`
<paper-tooltip position="left" <paper-tooltip animation-delay="0" position="left"
>${this.hass.localize( >${this.hass.localize(
"ui.panel.config.integrations.config_flow.not_all_required_fields" "ui.panel.config.integrations.config_flow.not_all_required_fields"
)} )}

View File

@ -55,9 +55,9 @@ class DialogBox extends LitElement {
return html` return html`
<ha-dialog <ha-dialog
open open
scrimClickAction ?scrimClickAction=${this._params.prompt}
escapeKeyAction ?escapeKeyAction=${this._params.prompt}
@close=${this._close} @closed=${this._dismiss}
.heading=${this._params.title .heading=${this._params.title
? this._params.title ? this._params.title
: this._params.confirmation && : this._params.confirmation &&

View File

@ -5,29 +5,27 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
TemplateResult,
internalProperty,
PropertyValues, PropertyValues,
TemplateResult,
} from "lit-element"; } from "lit-element";
import { classMap } from "lit-html/directives/class-map"; import { classMap } from "lit-html/directives/class-map";
import {
SUPPORT_BRIGHTNESS,
SUPPORT_COLOR_TEMP,
SUPPORT_WHITE_VALUE,
SUPPORT_COLOR,
SUPPORT_EFFECT,
} from "../../../data/light";
import { supportsFeature } from "../../../common/entity/supports-feature"; import { supportsFeature } from "../../../common/entity/supports-feature";
import type { HomeAssistant, LightEntity } from "../../../types";
import "../../../components/ha-attributes"; import "../../../components/ha-attributes";
import "../../../components/ha-color-picker"; import "../../../components/ha-color-picker";
import "../../../components/ha-labeled-slider";
import "../../../components/ha-icon-button"; import "../../../components/ha-icon-button";
import "../../../components/ha-labeled-slider";
import "../../../components/ha-paper-dropdown-menu"; import "../../../components/ha-paper-dropdown-menu";
import {
SUPPORT_BRIGHTNESS,
SUPPORT_COLOR,
SUPPORT_COLOR_TEMP,
SUPPORT_EFFECT,
SUPPORT_WHITE_VALUE,
} from "../../../data/light";
import type { HomeAssistant, LightEntity } from "../../../types";
interface HueSatColor { interface HueSatColor {
h: number; h: number;
@ -149,7 +147,7 @@ class MoreInfoLight extends LitElement {
: ""} : ""}
<ha-attributes <ha-attributes
.stateObj=${this.stateObj} .stateObj=${this.stateObj}
extraFilters="brightness,color_temp,white_value,effect_list,effect,hs_color,rgb_color,xy_color,min_mireds,max_mireds,entity_id" extra-filters="brightness,color_temp,white_value,effect_list,effect,hs_color,rgb_color,xy_color,min_mireds,max_mireds,entity_id"
></ha-attributes> ></ha-attributes>
</div> </div>
`; `;

View File

@ -174,7 +174,7 @@ class MoreInfoMediaPlayer extends LitElement {
> >
${stateObj.attributes.sound_mode_list.map( ${stateObj.attributes.sound_mode_list.map(
(mode) => html` (mode) => html`
<paper-item itemName=${mode}>${mode}</paper-item> <paper-item .itemName=${mode}>${mode}</paper-item>
` `
)} )}
</paper-listbox> </paper-listbox>
@ -352,21 +352,27 @@ class MoreInfoMediaPlayer extends LitElement {
} }
private _handleSourceChanged(e: CustomEvent) { private _handleSourceChanged(e: CustomEvent) {
const newVal = e.detail.value; const newVal = e.detail.item.itemName;
if (!newVal || this.stateObj!.attributes.source === newVal) return; if (!newVal || this.stateObj!.attributes.source === newVal) {
return;
}
this.hass.callService("media_player", "select_source", { this.hass.callService("media_player", "select_source", {
entity_id: this.stateObj!.entity_id,
source: newVal, source: newVal,
}); });
} }
private _handleSoundModeChanged(e: CustomEvent) { private _handleSoundModeChanged(e: CustomEvent) {
const newVal = e.detail.value; const newVal = e.detail.item.itemName;
if (!newVal || this.stateObj?.attributes.sound_mode === newVal) return; if (!newVal || this.stateObj?.attributes.sound_mode === newVal) {
return;
}
this.hass.callService("media_player", "select_sound_mode", { this.hass.callService("media_player", "select_sound_mode", {
entity_id: this.stateObj!.entity_id,
sound_mode: newVal, sound_mode: newVal,
}); });
} }

View File

@ -68,7 +68,7 @@ const VACUUM_COMMANDS: VacuumCommand[] = [
}, },
{ {
translationKey: "clean_spot", translationKey: "clean_spot",
icon: "hass:broom", icon: "hass:target-variant",
serviceName: "clean_spot", serviceName: "clean_spot",
isVisible: (stateObj) => isVisible: (stateObj) =>
supportsFeature(stateObj, VACUUM_SUPPORT_CLEAN_SPOT), supportsFeature(stateObj, VACUUM_SUPPORT_CLEAN_SPOT),

View File

@ -43,12 +43,9 @@ export class HuiPersistentNotificationItem extends LitElement {
.hass=${this.hass} .hass=${this.hass}
.datetime="${this.notification.created_at}" .datetime="${this.notification.created_at}"
></ha-relative-time> ></ha-relative-time>
<paper-tooltip <paper-tooltip animation-delay="0">
>${this._computeTooltip( ${this._computeTooltip(this.hass, this.notification)}
this.hass, </paper-tooltip>
this.notification
)}</paper-tooltip
>
</span> </span>
</div> </div>

View File

@ -11,6 +11,7 @@ import {
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { navigate } from "../common/navigate"; import { navigate } from "../common/navigate";
import { computeRTLDirection } from "../common/util/compute_rtl";
import "../components/data-table/ha-data-table"; import "../components/data-table/ha-data-table";
import type { import type {
DataTableColumnContainer, DataTableColumnContainer,
@ -20,7 +21,6 @@ import type {
import type { HomeAssistant, Route } from "../types"; import type { HomeAssistant, Route } from "../types";
import "./hass-tabs-subpage"; import "./hass-tabs-subpage";
import type { PageNavigation } from "./hass-tabs-subpage"; import type { PageNavigation } from "./hass-tabs-subpage";
import { computeRTLDirection } from "../common/util/compute_rtl";
@customElement("hass-tabs-subpage-data-table") @customElement("hass-tabs-subpage-data-table")
export class HaTabsSubpageDataTable extends LitElement { export class HaTabsSubpageDataTable extends LitElement {
@ -136,7 +136,7 @@ export class HaTabsSubpageDataTable extends LitElement {
? html`<div class="active-filters"> ? html`<div class="active-filters">
<div> <div>
<ha-icon icon="hass:filter-variant"></ha-icon> <ha-icon icon="hass:filter-variant"></ha-icon>
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.filtering.filtering_by" "ui.panel.config.filtering.filtering_by"
)} )}

View File

@ -4,9 +4,9 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { ifDefined } from "lit-html/directives/if-defined"; import { ifDefined } from "lit-html/directives/if-defined";
@ -175,8 +175,8 @@ class HaConfigAreaPage extends LitElement {
</a> </a>
${!state.attributes.id ${!state.attributes.id
? html` ? html`
<paper-tooltip <paper-tooltip animation-delay="0">
>${this.hass.localize( ${this.hass.localize(
"ui.panel.config.devices.cant_edit" "ui.panel.config.devices.cant_edit"
)} )}
</paper-tooltip> </paper-tooltip>
@ -228,8 +228,8 @@ class HaConfigAreaPage extends LitElement {
</a> </a>
${!state.attributes.id ${!state.attributes.id
? html` ? html`
<paper-tooltip <paper-tooltip animation-delay="0">
>${this.hass.localize( ${this.hass.localize(
"ui.panel.config.devices.cant_edit" "ui.panel.config.devices.cant_edit"
)} )}
</paper-tooltip> </paper-tooltip>

View File

@ -1,3 +1,5 @@
import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item";
import "@polymer/paper-item/paper-item-body"; import "@polymer/paper-item/paper-item-body";
import { import {
@ -16,7 +18,8 @@ import {
DataTableColumnContainer, DataTableColumnContainer,
RowClickedEvent, RowClickedEvent,
} from "../../../components/data-table/ha-data-table"; } from "../../../components/data-table/ha-data-table";
import "@material/mwc-fab"; import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
import { import {
AreaRegistryEntry, AreaRegistryEntry,
createAreaRegistryEntry, createAreaRegistryEntry,
@ -26,8 +29,6 @@ import {
devicesInArea, devicesInArea,
} from "../../../data/device_registry"; } from "../../../data/device_registry";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
import "../../../layouts/hass-loading-screen"; import "../../../layouts/hass-loading-screen";
import "../../../layouts/hass-tabs-subpage-data-table"; import "../../../layouts/hass-tabs-subpage-data-table";
import { HomeAssistant, Route } from "../../../types"; import { HomeAssistant, Route } from "../../../types";
@ -37,7 +38,6 @@ import {
loadAreaRegistryDetailDialog, loadAreaRegistryDetailDialog,
showAreaRegistryDetailDialog, showAreaRegistryDetailDialog,
} from "./show-dialog-area-registry-detail"; } from "./show-dialog-area-registry-detail";
import { mdiPlus } from "@mdi/js";
@customElement("ha-config-areas-dashboard") @customElement("ha-config-areas-dashboard")
export class HaConfigAreasDashboard extends LitElement { export class HaConfigAreasDashboard extends LitElement {

View File

@ -15,7 +15,7 @@ export class HaConditionAction extends LitElement implements ActionElement {
return { condition: "state" }; return { condition: "state" };
} }
public render() { protected render() {
return html` return html`
<ha-automation-condition-editor <ha-automation-condition-editor
.condition=${this.action} .condition=${this.action}

View File

@ -16,7 +16,7 @@ export class HaDelayAction extends LitElement implements ActionElement {
return { delay: "" }; return { delay: "" };
} }
public render() { protected render() {
const { delay } = this.action; const { delay } = this.action;
return html` return html`

View File

@ -1,8 +1,8 @@
import "@polymer/paper-input/paper-input"; import "@polymer/paper-input/paper-input";
import "@polymer/paper-input/paper-textarea";
import { customElement, html, LitElement, property } from "lit-element"; import { customElement, html, LitElement, property } from "lit-element";
import { fireEvent } from "../../../../../common/dom/fire_event"; import { fireEvent } from "../../../../../common/dom/fire_event";
import "../../../../../components/entity/ha-entity-picker"; import "../../../../../components/entity/ha-entity-picker";
import "@polymer/paper-input/paper-textarea";
import { NumericStateCondition } from "../../../../../data/automation"; import { NumericStateCondition } from "../../../../../data/automation";
import { HomeAssistant } from "../../../../../types"; import { HomeAssistant } from "../../../../../types";
import { handleChangeEvent } from "../ha-automation-condition-row"; import { handleChangeEvent } from "../ha-automation-condition-row";
@ -19,7 +19,7 @@ export default class HaNumericStateCondition extends LitElement {
}; };
} }
public render() { protected render() {
const { value_template, entity_id, below, above } = this.condition; const { value_template, entity_id, below, above } = this.condition;
return html` return html`

View File

@ -146,7 +146,7 @@ export class HaAutomationEditor extends LitElement {
"ui.panel.config.automation.editor.modes.description", "ui.panel.config.automation.editor.modes.description",
"documentation_link", "documentation_link",
html`<a html`<a
href="https://www.home-assistant.io/docs/automation/#automation-modes" href="https://www.home-assistant.io/integrations/automation/#automation-modes"
target="_blank" target="_blank"
rel="noreferrer" rel="noreferrer"
>${this.hass.localize( >${this.hass.localize(

View File

@ -1,12 +1,13 @@
import "../../../components/ha-icon-button"; import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { import {
CSSResult,
customElement, customElement,
html, html,
LitElement, LitElement,
property, property,
TemplateResult, TemplateResult,
CSSResult,
} from "lit-element"; } from "lit-element";
import { ifDefined } from "lit-html/directives/if-defined"; import { ifDefined } from "lit-html/directives/if-defined";
import memoizeOne from "memoize-one"; import memoizeOne from "memoize-one";
@ -16,7 +17,8 @@ import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeStateName } from "../../../common/entity/compute_state_name";
import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table";
import "../../../components/entity/ha-entity-toggle"; import "../../../components/entity/ha-entity-toggle";
import "@material/mwc-fab"; import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
import { import {
AutomationConfig, AutomationConfig,
AutomationEntity, AutomationEntity,
@ -28,8 +30,6 @@ import { haStyle } from "../../../resources/styles";
import { HomeAssistant, Route } from "../../../types"; import { HomeAssistant, Route } from "../../../types";
import { configSections } from "../ha-panel-config"; import { configSections } from "../ha-panel-config";
import { showThingtalkDialog } from "./show-dialog-thingtalk"; import { showThingtalkDialog } from "./show-dialog-thingtalk";
import "../../../components/ha-svg-icon";
import { mdiPlus } from "@mdi/js";
@customElement("ha-automation-picker") @customElement("ha-automation-picker")
class HaAutomationPicker extends LitElement { class HaAutomationPicker extends LitElement {
@ -138,7 +138,7 @@ class HaAutomationPicker extends LitElement {
</a> </a>
${!automation.attributes.id ${!automation.attributes.id
? html` ? html`
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.automation.picker.only_editable" "ui.panel.config.automation.picker.only_editable"
)} )}

View File

@ -19,7 +19,7 @@ export class HaEventTrigger extends LitElement implements TriggerElement {
return { event_type: "", event_data: {} }; return { event_type: "", event_data: {} };
} }
public render() { protected render() {
const { event_type, event_data } = this.trigger; const { event_type, event_data } = this.trigger;
return html` return html`
<paper-input <paper-input

View File

@ -18,7 +18,7 @@ export default class HaHassTrigger extends LitElement {
}; };
} }
public render() { protected render() {
const { event } = this.trigger; const { event } = this.trigger;
return html` return html`
<label id="eventlabel"> <label id="eventlabel">

View File

@ -1,8 +1,8 @@
import "@polymer/paper-input/paper-input"; import "@polymer/paper-input/paper-input";
import "@polymer/paper-input/paper-textarea";
import { customElement, html, LitElement, property } from "lit-element"; import { customElement, html, LitElement, property } from "lit-element";
import { fireEvent } from "../../../../../common/dom/fire_event"; import { fireEvent } from "../../../../../common/dom/fire_event";
import "../../../../../components/entity/ha-entity-picker"; import "../../../../../components/entity/ha-entity-picker";
import "@polymer/paper-input/paper-textarea";
import { ForDict, NumericStateTrigger } from "../../../../../data/automation"; import { ForDict, NumericStateTrigger } from "../../../../../data/automation";
import { HomeAssistant } from "../../../../../types"; import { HomeAssistant } from "../../../../../types";
import { handleChangeEvent } from "../ha-automation-trigger-row"; import { handleChangeEvent } from "../ha-automation-trigger-row";
@ -19,7 +19,7 @@ export default class HaNumericStateTrigger extends LitElement {
}; };
} }
public render() { protected render() {
const { value_template, entity_id, below, above } = this.trigger; const { value_template, entity_id, below, above } = this.trigger;
let trgFor = this.trigger.for; let trgFor = this.trigger.for;

View File

@ -4,9 +4,9 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { ifDefined } from "lit-html/directives/if-defined"; import { ifDefined } from "lit-html/directives/if-defined";
@ -14,6 +14,7 @@ import memoizeOne from "memoize-one";
import { isComponentLoaded } from "../../../common/config/is_component_loaded"; import { isComponentLoaded } from "../../../common/config/is_component_loaded";
import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeStateName } from "../../../common/entity/compute_state_name";
import { compare } from "../../../common/string/compare"; import { compare } from "../../../common/string/compare";
import { slugify } from "../../../common/string/slugify";
import "../../../components/entity/ha-battery-icon"; import "../../../components/entity/ha-battery-icon";
import "../../../components/ha-icon-next"; import "../../../components/ha-icon-next";
import { AreaRegistryEntry } from "../../../data/area_registry"; import { AreaRegistryEntry } from "../../../data/area_registry";
@ -25,8 +26,8 @@ import {
} from "../../../data/device_registry"; } from "../../../data/device_registry";
import { import {
EntityRegistryEntry, EntityRegistryEntry,
findBatteryEntity,
findBatteryChargingEntity, findBatteryChargingEntity,
findBatteryEntity,
updateEntityRegistryEntry, updateEntityRegistryEntry,
} from "../../../data/entity_registry"; } from "../../../data/entity_registry";
import { SceneEntities, showSceneEditor } from "../../../data/scene"; import { SceneEntities, showSceneEditor } from "../../../data/scene";
@ -35,6 +36,7 @@ import {
loadDeviceRegistryDetailDialog, loadDeviceRegistryDetailDialog,
showDeviceRegistryDetailDialog, showDeviceRegistryDetailDialog,
} from "../../../dialogs/device-registry-detail/show-dialog-device-registry-detail"; } from "../../../dialogs/device-registry-detail/show-dialog-device-registry-detail";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
import "../../../layouts/hass-error-screen"; import "../../../layouts/hass-error-screen";
import "../../../layouts/hass-tabs-subpage"; import "../../../layouts/hass-tabs-subpage";
import { HomeAssistant, Route } from "../../../types"; import { HomeAssistant, Route } from "../../../types";
@ -43,8 +45,6 @@ import { configSections } from "../ha-panel-config";
import "./device-detail/ha-device-entities-card"; import "./device-detail/ha-device-entities-card";
import "./device-detail/ha-device-info-card"; import "./device-detail/ha-device-info-card";
import { showDeviceAutomationDialog } from "./device-detail/show-dialog-device-automation"; import { showDeviceAutomationDialog } from "./device-detail/show-dialog-device-automation";
import { slugify } from "../../../common/string/slugify";
import { showConfirmationDialog } from "../../../dialogs/generic/show-dialog-box";
export interface EntityRegistryStateEntry extends EntityRegistryEntry { export interface EntityRegistryStateEntry extends EntityRegistryEntry {
stateName?: string | null; stateName?: string | null;
@ -296,8 +296,8 @@ export class HaConfigDevicePage extends LitElement {
</a> </a>
${!state.attributes.id ${!state.attributes.id
? html` ? html`
<paper-tooltip <paper-tooltip animation-delay="0">
>${this.hass.localize( ${this.hass.localize(
"ui.panel.config.devices.cant_edit" "ui.panel.config.devices.cant_edit"
)} )}
</paper-tooltip> </paper-tooltip>
@ -369,7 +369,9 @@ export class HaConfigDevicePage extends LitElement {
${!state.attributes.id ${!state.attributes.id
? html` ? html`
<paper-tooltip <paper-tooltip
>${this.hass.localize( animation-delay="0"
>
${this.hass.localize(
"ui.panel.config.devices.cant_edit" "ui.panel.config.devices.cant_edit"
)} )}
</paper-tooltip> </paper-tooltip>

View File

@ -1,9 +1,9 @@
import { import {
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import memoizeOne from "memoize-one"; import memoizeOne from "memoize-one";
@ -25,8 +25,8 @@ import {
} from "../../../data/device_registry"; } from "../../../data/device_registry";
import { import {
EntityRegistryEntry, EntityRegistryEntry,
findBatteryEntity,
findBatteryChargingEntity, findBatteryChargingEntity,
findBatteryEntity,
} from "../../../data/entity_registry"; } from "../../../data/entity_registry";
import { domainToName } from "../../../data/integration"; import { domainToName } from "../../../data/integration";
import "../../../layouts/hass-tabs-subpage-data-table"; import "../../../layouts/hass-tabs-subpage-data-table";
@ -181,8 +181,8 @@ export class HaConfigDeviceDashboard extends LitElement {
); );
private _columns = memoizeOne( private _columns = memoizeOne(
(narrow: boolean): DataTableColumnContainer => (narrow: boolean): DataTableColumnContainer => {
narrow const columns: DataTableColumnContainer = narrow
? { ? {
name: { name: {
title: "Device", title: "Device",
@ -199,36 +199,6 @@ export class HaConfigDeviceDashboard extends LitElement {
`; `;
}, },
}, },
battery_entity: {
title: this.hass.localize(
"ui.panel.config.devices.data_table.battery"
),
sortable: true,
type: "numeric",
width: "90px",
template: (
batteryEntityPair: DeviceRowData["battery_entity"]
) => {
const battery =
batteryEntityPair && batteryEntityPair[0]
? this.hass.states[batteryEntityPair[0]]
: undefined;
const batteryCharging =
batteryEntityPair && batteryEntityPair[1]
? this.hass.states[batteryEntityPair[1]]
: undefined;
return battery
? html`
${isNaN(battery.state as any) ? "-" : battery.state}%
<ha-battery-icon
.hass=${this.hass!}
.batteryStateObj=${battery}
.batteryChargingStateObj=${batteryCharging}
></ha-battery-icon>
`
: html` - `;
},
},
} }
: { : {
name: { name: {
@ -240,70 +210,69 @@ export class HaConfigDeviceDashboard extends LitElement {
grows: true, grows: true,
direction: "asc", direction: "asc",
}, },
manufacturer: { };
title: this.hass.localize(
"ui.panel.config.devices.data_table.manufacturer" columns.manufacturer = {
), title: this.hass.localize(
sortable: true, "ui.panel.config.devices.data_table.manufacturer"
filterable: true, ),
width: "15%", sortable: true,
}, hidden: narrow,
model: { filterable: true,
title: this.hass.localize( width: "15%",
"ui.panel.config.devices.data_table.model" };
), columns.model = {
sortable: true, title: this.hass.localize("ui.panel.config.devices.data_table.model"),
filterable: true, sortable: true,
width: "15%", hidden: narrow,
}, filterable: true,
area: { width: "15%",
title: this.hass.localize( };
"ui.panel.config.devices.data_table.area" columns.area = {
), title: this.hass.localize("ui.panel.config.devices.data_table.area"),
sortable: true, sortable: true,
filterable: true, hidden: narrow,
width: "15%", filterable: true,
}, width: "15%",
integration: { };
title: this.hass.localize( columns.integration = {
"ui.panel.config.devices.data_table.integration" title: this.hass.localize(
), "ui.panel.config.devices.data_table.integration"
sortable: true, ),
filterable: true, sortable: true,
width: "15%", hidden: narrow,
}, filterable: true,
battery_entity: { width: "15%",
title: this.hass.localize( };
"ui.panel.config.devices.data_table.battery" columns.battery_entity = {
), title: this.hass.localize("ui.panel.config.devices.data_table.battery"),
sortable: true, sortable: true,
type: "numeric", type: "numeric",
width: "15%", width: narrow ? "90px" : "15%",
maxWidth: "90px", maxWidth: "90px",
template: ( template: (batteryEntityPair: DeviceRowData["battery_entity"]) => {
batteryEntityPair: DeviceRowData["battery_entity"] const battery =
) => { batteryEntityPair && batteryEntityPair[0]
const battery = ? this.hass.states[batteryEntityPair[0]]
batteryEntityPair && batteryEntityPair[0] : undefined;
? this.hass.states[batteryEntityPair[0]] const batteryCharging =
: undefined; batteryEntityPair && batteryEntityPair[1]
const batteryCharging = ? this.hass.states[batteryEntityPair[1]]
batteryEntityPair && batteryEntityPair[1] : undefined;
? this.hass.states[batteryEntityPair[1]] return battery && !isNaN(battery.state as any)
: undefined; ? html`
return battery && !isNaN(battery.state as any) ${battery.state}%
? html` <ha-battery-icon
${battery.state}% .hass=${this.hass!}
<ha-battery-icon .batteryStateObj=${battery}
.hass=${this.hass!} .batteryChargingStateObj=${batteryCharging}
.batteryStateObj=${battery} ></ha-battery-icon>
.batteryChargingStateObj=${batteryCharging} `
></ha-battery-icon> : html` - `;
` },
: html` - `; };
}, return columns;
}, }
}
); );
public constructor() { public constructor() {

View File

@ -1,4 +1,6 @@
import "@material/mwc-list/mwc-list-item"; import "@material/mwc-list/mwc-list-item";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
import { mdiFilterVariant } from "@mdi/js";
import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-checkbox/paper-checkbox";
import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-icon-item";
@ -10,9 +12,9 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
query, query,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
@ -56,8 +58,6 @@ import {
loadEntityEditorDialog, loadEntityEditorDialog,
showEntityEditorDialog, showEntityEditorDialog,
} from "./show-dialog-entity-editor"; } from "./show-dialog-entity-editor";
import { mdiFilterVariant } from "@mdi/js";
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
export interface StateEntity extends EntityRegistryEntry { export interface StateEntity extends EntityRegistryEntry {
readonly?: boolean; readonly?: boolean;
@ -192,7 +192,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
? "hass:cancel" ? "hass:cancel"
: "hass:pencil-off"} : "hass:pencil-off"}
></ha-icon> ></ha-icon>
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${entity.restored ${entity.restored
? this.hass.localize( ? this.hass.localize(
"ui.panel.config.entities.picker.status.restored" "ui.panel.config.entities.picker.status.restored"
@ -390,7 +390,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
icon="hass:undo" icon="hass:undo"
@click=${this._enableSelected} @click=${this._enableSelected}
></ha-icon-button> ></ha-icon-button>
<paper-tooltip for="enable-btn"> <paper-tooltip animation-delay="0" for="enable-btn">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.entities.picker.enable_selected.button" "ui.panel.config.entities.picker.enable_selected.button"
)} )}
@ -400,7 +400,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
icon="hass:cancel" icon="hass:cancel"
@click=${this._disableSelected} @click=${this._disableSelected}
></ha-icon-button> ></ha-icon-button>
<paper-tooltip for="disable-btn"> <paper-tooltip animation-delay="0" for="disable-btn">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.entities.picker.disable_selected.button" "ui.panel.config.entities.picker.disable_selected.button"
)} )}
@ -410,7 +410,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
icon="hass:delete" icon="hass:delete"
@click=${this._removeSelected} @click=${this._removeSelected}
></ha-icon-button> ></ha-icon-button>
<paper-tooltip for="remove-btn"> <paper-tooltip animation-delay="0" for="remove-btn">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.entities.picker.remove_selected.button" "ui.panel.config.entities.picker.remove_selected.button"
)} )}
@ -433,7 +433,7 @@ export class HaConfigEntities extends SubscribeMixin(LitElement) {
${this.narrow ${this.narrow
? html` <div> ? html` <div>
<ha-icon icon="hass:filter-variant"></ha-icon> <ha-icon icon="hass:filter-variant"></ha-icon>
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.filtering.filtering_by" "ui.panel.config.filtering.filtering_by"
)} )}

View File

@ -6,9 +6,9 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
query, query,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
@ -136,7 +136,7 @@ export class DialogHelperDetail extends LitElement {
</paper-icon-item> </paper-icon-item>
${!isLoaded ${!isLoaded
? html` ? html`
<paper-tooltip <paper-tooltip animation-delay="0"
>${this.hass.localize( >${this.hass.localize(
"ui.dialogs.helper_settings.platform_not_loaded", "ui.dialogs.helper_settings.platform_not_loaded",
"platform", "platform",

View File

@ -1,3 +1,5 @@
import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-checkbox/paper-checkbox";
import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-icon-item";
@ -7,9 +9,9 @@ import { HassEntity } from "home-assistant-js-websocket";
import { import {
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
PropertyValues, PropertyValues,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
@ -21,8 +23,8 @@ import {
DataTableColumnContainer, DataTableColumnContainer,
RowClickedEvent, RowClickedEvent,
} from "../../../components/data-table/ha-data-table"; } from "../../../components/data-table/ha-data-table";
import "@material/mwc-fab";
import "../../../components/ha-icon"; import "../../../components/ha-icon";
import "../../../components/ha-svg-icon";
import "../../../layouts/hass-loading-screen"; import "../../../layouts/hass-loading-screen";
import "../../../layouts/hass-tabs-subpage-data-table"; import "../../../layouts/hass-tabs-subpage-data-table";
import { HomeAssistant, Route } from "../../../types"; import { HomeAssistant, Route } from "../../../types";
@ -30,8 +32,6 @@ import { showEntityEditorDialog } from "../entities/show-dialog-entity-editor";
import { configSections } from "../ha-panel-config"; import { configSections } from "../ha-panel-config";
import { HELPER_DOMAINS } from "./const"; import { HELPER_DOMAINS } from "./const";
import { showHelperDetailDialog } from "./show-dialog-helper-detail"; import { showHelperDetailDialog } from "./show-dialog-helper-detail";
import "../../../components/ha-svg-icon";
import { mdiPlus } from "@mdi/js";
@customElement("ha-config-helpers") @customElement("ha-config-helpers")
export class HaConfigHelpers extends LitElement { export class HaConfigHelpers extends LitElement {
@ -110,7 +110,7 @@ export class HaConfigHelpers extends LitElement {
style="display:inline-block; position: relative;" style="display:inline-block; position: relative;"
> >
<ha-icon icon="hass:pencil-off"></ha-icon> <ha-icon icon="hass:pencil-off"></ha-icon>
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.entities.picker.status.readonly" "ui.panel.config.entities.picker.status.readonly"
)} )}

View File

@ -1,11 +1,12 @@
import "@material/mwc-fab"; import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { import {
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
PropertyValues, PropertyValues,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
@ -18,6 +19,7 @@ import {
} from "../../../../components/data-table/ha-data-table"; } from "../../../../components/data-table/ha-data-table";
import "../../../../components/ha-icon"; import "../../../../components/ha-icon";
import "../../../../components/ha-icon-button"; import "../../../../components/ha-icon-button";
import "../../../../components/ha-svg-icon";
import { import {
createDashboard, createDashboard,
deleteDashboard, deleteDashboard,
@ -33,8 +35,6 @@ import "../../../../layouts/hass-tabs-subpage-data-table";
import { HomeAssistant, Route } from "../../../../types"; import { HomeAssistant, Route } from "../../../../types";
import { lovelaceTabs } from "../ha-config-lovelace"; import { lovelaceTabs } from "../ha-config-lovelace";
import { showDashboardDetailDialog } from "./show-dialog-lovelace-dashboard-detail"; import { showDashboardDetailDialog } from "./show-dialog-lovelace-dashboard-detail";
import "../../../../components/ha-svg-icon";
import { mdiPlus } from "@mdi/js";
@customElement("ha-config-lovelace-dashboards") @customElement("ha-config-lovelace-dashboards")
export class HaConfigLovelaceDashboards extends LitElement { export class HaConfigLovelaceDashboards extends LitElement {
@ -76,7 +76,7 @@ export class HaConfigLovelaceDashboards extends LitElement {
style="padding-left: 10px;" style="padding-left: 10px;"
icon="hass:check-circle-outline" icon="hass:check-circle-outline"
></ha-icon> ></ha-icon>
<paper-tooltip> <paper-tooltip animation-delay="0">
${this.hass.localize( ${this.hass.localize(
`ui.panel.config.lovelace.dashboards.default_dashboard` `ui.panel.config.lovelace.dashboards.default_dashboard`
)} )}

View File

@ -1,15 +1,15 @@
import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-checkbox/paper-checkbox";
import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-icon-item";
import "@polymer/paper-listbox/paper-listbox"; import "@polymer/paper-listbox/paper-listbox";
import "@polymer/paper-tooltip/paper-tooltip";
import "@material/mwc-fab";
import { import {
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
PropertyValues, PropertyValues,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
@ -20,6 +20,7 @@ import {
RowClickedEvent, RowClickedEvent,
} from "../../../../components/data-table/ha-data-table"; } from "../../../../components/data-table/ha-data-table";
import "../../../../components/ha-icon"; import "../../../../components/ha-icon";
import "../../../../components/ha-svg-icon";
import { import {
createResource, createResource,
deleteResource, deleteResource,
@ -37,8 +38,6 @@ import { HomeAssistant, Route } from "../../../../types";
import { loadLovelaceResources } from "../../../lovelace/common/load-resources"; import { loadLovelaceResources } from "../../../lovelace/common/load-resources";
import { lovelaceTabs } from "../ha-config-lovelace"; import { lovelaceTabs } from "../ha-config-lovelace";
import { showResourceDetailDialog } from "./show-dialog-lovelace-resource-detail"; import { showResourceDetailDialog } from "./show-dialog-lovelace-resource-detail";
import "../../../../components/ha-svg-icon";
import { mdiPlus } from "@mdi/js";
@customElement("ha-config-lovelace-resources") @customElement("ha-config-lovelace-resources")
export class HaConfigLovelaceRescources extends LitElement { export class HaConfigLovelaceRescources extends LitElement {

View File

@ -1,4 +1,5 @@
import "../../../components/ha-icon-button"; import "@material/mwc-fab";
import { mdiPlus } from "@mdi/js";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { import {
css, css,
@ -13,8 +14,11 @@ import { ifDefined } from "lit-html/directives/if-defined";
import memoizeOne from "memoize-one"; import memoizeOne from "memoize-one";
import { fireEvent } from "../../../common/dom/fire_event"; import { fireEvent } from "../../../common/dom/fire_event";
import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeStateName } from "../../../common/entity/compute_state_name";
import { stateIcon } from "../../../common/entity/state_icon";
import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table";
import "@material/mwc-fab"; import "../../../components/ha-icon";
import "../../../components/ha-icon-button";
import "../../../components/ha-svg-icon";
import { forwardHaptic } from "../../../data/haptics"; import { forwardHaptic } from "../../../data/haptics";
import { activateScene, SceneEntity } from "../../../data/scene"; import { activateScene, SceneEntity } from "../../../data/scene";
import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box";
@ -23,10 +27,6 @@ import { haStyle } from "../../../resources/styles";
import { HomeAssistant, Route } from "../../../types"; import { HomeAssistant, Route } from "../../../types";
import { showToast } from "../../../util/toast"; import { showToast } from "../../../util/toast";
import { configSections } from "../ha-panel-config"; import { configSections } from "../ha-panel-config";
import "../../../components/ha-icon";
import "../../../components/ha-svg-icon";
import { mdiPlus } from "@mdi/js";
import { stateIcon } from "../../../common/entity/state_icon";
@customElement("ha-scene-dashboard") @customElement("ha-scene-dashboard")
class HaSceneDashboard extends LitElement { class HaSceneDashboard extends LitElement {
@ -117,7 +117,7 @@ class HaSceneDashboard extends LitElement {
</a> </a>
${!scene.attributes.id ${!scene.attributes.id
? html` ? html`
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.scene.picker.only_editable" "ui.panel.config.scene.picker.only_editable"
)} )}

View File

@ -37,6 +37,18 @@ const reloadableDomains = [
"input_select", "input_select",
"template", "template",
"universal", "universal",
"rest",
"command_line",
"filter",
"statistics",
"generic",
"generic_thermostat",
"homekit",
"min_max",
"history_stats",
"trend",
"ping",
"filesize",
]; ];
@customElement("ha-config-server-control") @customElement("ha-config-server-control")

View File

@ -1,20 +1,21 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "@polymer/paper-input/paper-input"; import "@polymer/paper-input/paper-input";
import "../../../components/ha-circular-progress";
import { import {
css, css,
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
PropertyValues, PropertyValues,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { computeRTLDirection } from "../../../common/util/compute_rtl";
import "../../../components/ha-circular-progress";
import "../../../components/ha-dialog"; import "../../../components/ha-dialog";
import "../../../components/ha-switch";
import "../../../components/ha-formfield"; import "../../../components/ha-formfield";
import "../../../components/ha-switch";
import { createAuthForUser } from "../../../data/auth"; import { createAuthForUser } from "../../../data/auth";
import { import {
createUser, createUser,
@ -27,7 +28,6 @@ import { PolymerChangedEvent } from "../../../polymer-types";
import { haStyleDialog } from "../../../resources/styles"; import { haStyleDialog } from "../../../resources/styles";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
import { AddUserDialogParams } from "./show-dialog-add-user"; import { AddUserDialogParams } from "./show-dialog-add-user";
import { computeRTLDirection } from "../../../common/util/compute_rtl";
@customElement("dialog-add-user") @customElement("dialog-add-user")
export class DialogAddUser extends LitElement { export class DialogAddUser extends LitElement {
@ -46,6 +46,8 @@ export class DialogAddUser extends LitElement {
@internalProperty() private _password?: string; @internalProperty() private _password?: string;
@internalProperty() private _passwordConfirm?: string;
@internalProperty() private _isAdmin?: boolean; @internalProperty() private _isAdmin?: boolean;
public showDialog(params: AddUserDialogParams) { public showDialog(params: AddUserDialogParams) {
@ -53,6 +55,7 @@ export class DialogAddUser extends LitElement {
this._name = ""; this._name = "";
this._username = ""; this._username = "";
this._password = ""; this._password = "";
this._passwordConfirm = "";
this._isAdmin = false; this._isAdmin = false;
this._error = undefined; this._error = undefined;
this._loading = false; this._loading = false;
@ -83,17 +86,20 @@ export class DialogAddUser extends LitElement {
${this._error ? html` <div class="error">${this._error}</div> ` : ""} ${this._error ? html` <div class="error">${this._error}</div> ` : ""}
<paper-input <paper-input
class="name" class="name"
name="name"
.label=${this.hass.localize("ui.panel.config.users.add_user.name")} .label=${this.hass.localize("ui.panel.config.users.add_user.name")}
.value=${this._name} .value=${this._name}
required required
auto-validate auto-validate
autocapitalize="on" autocapitalize="on"
.errorMessage=${this.hass.localize("ui.common.error_required")} .errorMessage=${this.hass.localize("ui.common.error_required")}
@value-changed=${this._nameChanged} @value-changed=${this._handleValueChanged}
@blur=${this._maybePopulateUsername} @blur=${this._maybePopulateUsername}
></paper-input> ></paper-input>
<paper-input <paper-input
class="username" class="username"
name="username"
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.panel.config.users.add_user.username" "ui.panel.config.users.add_user.username"
)} )}
@ -101,20 +107,40 @@ export class DialogAddUser extends LitElement {
required required
auto-validate auto-validate
autocapitalize="none" autocapitalize="none"
@value-changed=${this._usernameChanged} @value-changed=${this._handleValueChanged}
.errorMessage=${this.hass.localize("ui.common.error_required")} .errorMessage=${this.hass.localize("ui.common.error_required")}
></paper-input> ></paper-input>
<paper-input <paper-input
.label=${this.hass.localize( .label=${this.hass.localize(
"ui.panel.config.users.add_user.password" "ui.panel.config.users.add_user.password"
)} )}
type="password" type="password"
name="password"
.value=${this._password} .value=${this._password}
required required
auto-validate auto-validate
@value-changed=${this._passwordChanged} @value-changed=${this._handleValueChanged}
.errorMessage=${this.hass.localize("ui.common.error_required")} .errorMessage=${this.hass.localize("ui.common.error_required")}
></paper-input> ></paper-input>
<paper-input
label="${this.hass.localize(
"ui.panel.config.users.add_user.password_confirm"
)}"
name="passwordConfirm"
.value=${this._passwordConfirm}
@value-changed=${this._handleValueChanged}
required
type="password"
.invalid=${this._password !== "" &&
this._passwordConfirm !== "" &&
this._passwordConfirm !== this._password}
.errorMessage="${this.hass.localize(
"ui.panel.config.users.add_user.password_not_match"
)}"
></paper-input>
<ha-formfield <ha-formfield
.label=${this.hass.localize("ui.panel.config.users.editor.admin")} .label=${this.hass.localize("ui.panel.config.users.editor.admin")}
.dir=${computeRTLDirection(this.hass)} .dir=${computeRTLDirection(this.hass)}
@ -147,7 +173,10 @@ export class DialogAddUser extends LitElement {
: html` : html`
<mwc-button <mwc-button
slot="primaryAction" slot="primaryAction"
.disabled=${!this._name || !this._username || !this._password} .disabled=${!this._name ||
!this._username ||
!this._password ||
this._password !== this._passwordConfirm}
@click=${this._createUser} @click=${this._createUser}
> >
${this.hass.localize("ui.panel.config.users.add_user.create")} ${this.hass.localize("ui.panel.config.users.add_user.create")}
@ -173,19 +202,10 @@ export class DialogAddUser extends LitElement {
} }
} }
private _nameChanged(ev: PolymerChangedEvent<string>) { private _handleValueChanged(ev: PolymerChangedEvent<string>): void {
this._error = undefined; this._error = undefined;
this._name = ev.detail.value; const name = (ev.target as any).name;
} this[`_${name}`] = ev.detail.value;
private _usernameChanged(ev: PolymerChangedEvent<string>) {
this._error = undefined;
this._username = ev.detail.value;
}
private _passwordChanged(ev: PolymerChangedEvent<string>) {
this._error = undefined;
this._password = ev.detail.value;
} }
private async _adminChanged(ev): Promise<void> { private async _adminChanged(ev): Promise<void> {

View File

@ -6,23 +6,28 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { computeRTLDirection } from "../../../common/util/compute_rtl";
import { createCloseHeading } from "../../../components/ha-dialog"; import { createCloseHeading } from "../../../components/ha-dialog";
import "../../../components/ha-switch";
import "../../../components/ha-formfield"; import "../../../components/ha-formfield";
import "../../../components/ha-switch";
import { adminChangePassword } from "../../../data/auth";
import { import {
SYSTEM_GROUP_ID_ADMIN, SYSTEM_GROUP_ID_ADMIN,
SYSTEM_GROUP_ID_USER, SYSTEM_GROUP_ID_USER,
} from "../../../data/user"; } from "../../../data/user";
import {
showAlertDialog,
showPromptDialog,
} from "../../../dialogs/generic/show-dialog-box";
import { PolymerChangedEvent } from "../../../polymer-types"; import { PolymerChangedEvent } from "../../../polymer-types";
import { haStyleDialog } from "../../../resources/styles"; import { haStyleDialog } from "../../../resources/styles";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
import { UserDetailDialogParams } from "./show-dialog-user-detail"; import { UserDetailDialogParams } from "./show-dialog-user-detail";
import { computeRTLDirection } from "../../../common/util/compute_rtl";
@customElement("dialog-user-detail") @customElement("dialog-user-detail")
class DialogUserDetail extends LitElement { class DialogUserDetail extends LitElement {
@ -134,14 +139,22 @@ class DialogUserDetail extends LitElement {
</mwc-button> </mwc-button>
${user.system_generated ${user.system_generated
? html` ? html`
<paper-tooltip position="right"> <paper-tooltip animation-delay="0" position="right">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.users.editor.system_generated_users_not_removable" "ui.panel.config.users.editor.system_generated_users_not_removable"
)} )}
</paper-tooltip> </paper-tooltip>
` `
: ""} : ""}
${!user.system_generated && this.hass.user?.is_owner
? html`<mwc-button @click=${this._changePassword}>
${this.hass.localize(
"ui.panel.config.users.editor.change_password"
)}
</mwc-button>`
: ""}
</div> </div>
<div slot="primaryAction"> <div slot="primaryAction">
<mwc-button <mwc-button
@click=${this._updateEntry} @click=${this._updateEntry}
@ -153,7 +166,7 @@ class DialogUserDetail extends LitElement {
</mwc-button> </mwc-button>
${user.system_generated ${user.system_generated
? html` ? html`
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${this.hass.localize( ${this.hass.localize(
"ui.panel.config.users.editor.system_generated_users_not_editable" "ui.panel.config.users.editor.system_generated_users_not_editable"
)} )}
@ -202,6 +215,52 @@ class DialogUserDetail extends LitElement {
} }
} }
private async _changePassword() {
const credential = this._params?.entry.credentials.find(
(cred) => cred.type === "homeassistant"
);
if (!credential) {
showAlertDialog(this, {
title: "No Home Assistant credentials found.",
});
return;
}
const newPassword = await showPromptDialog(this, {
title: this.hass.localize("ui.panel.config.users.editor.change_password"),
inputType: "password",
inputLabel: this.hass.localize(
"ui.panel.config.users.editor.new_password"
),
});
if (!newPassword) {
return;
}
const confirmPassword = await showPromptDialog(this, {
title: this.hass.localize("ui.panel.config.users.editor.change_password"),
inputType: "password",
inputLabel: this.hass.localize(
"ui.panel.config.users.add_user.password_confirm"
),
});
if (!confirmPassword) {
return;
}
if (newPassword !== confirmPassword) {
showAlertDialog(this, {
title: this.hass.localize(
"ui.panel.config.users.add_user.password_not_match"
),
});
return;
}
await adminChangePassword(this.hass, this._params!.entry.id, newPassword);
showAlertDialog(this, {
title: this.hass.localize(
"ui.panel.config.users.add_user.password_changed"
),
});
}
private _close(): void { private _close(): void {
this._params = undefined; this._params = undefined;
} }

View File

@ -11,9 +11,9 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
PropertyValues, PropertyValues,
query, query,
TemplateResult, TemplateResult,
@ -198,7 +198,7 @@ export class HaConfigZone extends SubscribeMixin(LitElement) {
: mdiPencilOff} : mdiPencilOff}
></ha-svg-icon> ></ha-svg-icon>
</mwc-icon-button> </mwc-icon-button>
<paper-tooltip position="left"> <paper-tooltip animation-delay="0" position="left">
${state.entity_id === "zone.home" ${state.entity_id === "zone.home"
? this.hass.localize( ? this.hass.localize(
`ui.panel.config.zone.${ `ui.panel.config.zone.${

View File

@ -47,6 +47,7 @@ const cardConfigStruct = object({
title: optional(union([string(), boolean()])), title: optional(union([string(), boolean()])),
theme: optional(string()), theme: optional(string()),
show_header_toggle: optional(boolean()), show_header_toggle: optional(boolean()),
state_color: optional(boolean()),
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
header: optional(headerFooterConfigStructs), header: optional(headerFooterConfigStructs),
footer: optional(headerFooterConfigStructs), footer: optional(headerFooterConfigStructs),
@ -89,33 +90,47 @@ export class HuiEntitiesCardEditor extends LitElement
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.value="${this._title}" .value=${this._title}
.configValue="${"title"}" .configValue=${"title"}
@value-changed="${this._valueChanged}" @value-changed=${this._valueChanged}
></paper-input> ></paper-input>
<hui-theme-select-editor <hui-theme-select-editor
.hass=${this.hass} .hass=${this.hass}
.value="${this._theme}" .value=${this._theme}
.configValue="${"theme"}" .configValue=${"theme"}
@value-changed="${this._valueChanged}" @value-changed=${this._valueChanged}
></hui-theme-select-editor> ></hui-theme-select-editor>
<ha-formfield <div class="side-by-side">
.label=${this.hass.localize( <ha-formfield
"ui.panel.lovelace.editor.card.entities.show_header_toggle" .label=${this.hass.localize(
)} "ui.panel.lovelace.editor.card.entities.show_header_toggle"
.dir=${computeRTLDirection(this.hass)} )}
> .dir=${computeRTLDirection(this.hass)}
<ha-switch >
.checked="${this._config!.show_header_toggle !== false}" <ha-switch
.configValue="${"show_header_toggle"}" .checked=${this._config!.show_header_toggle !== false}
@change="${this._valueChanged}" .configValue=${"show_header_toggle"}
></ha-switch> @change=${this._valueChanged}
</ha-formfield> ></ha-switch>
</ha-formfield>
<ha-formfield
.label=${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.state_color"
)}
.dir=${computeRTLDirection(this.hass)}
>
<ha-switch
.checked=${this._config!.state_color}
.configValue=${"state_color"}
@change=${this._valueChanged}
></ha-switch>
</ha-formfield>
</div>
</div> </div>
<hui-entity-editor <hui-entity-editor
.hass=${this.hass} .hass=${this.hass}
.entities="${this._configEntities}" .entities=${this._configEntities}
@entities-changed="${this._valueChanged}" @entities-changed=${this._valueChanged}
></hui-entity-editor> ></hui-entity-editor>
`; `;
} }

View File

@ -47,6 +47,7 @@ const cardConfigStruct = object({
show_name: optional(boolean()), show_name: optional(boolean()),
show_state: optional(boolean()), show_state: optional(boolean()),
show_icon: optional(boolean()), show_icon: optional(boolean()),
state_color: optional(boolean()),
entities: array(entitiesConfigStruct), entities: array(entitiesConfigStruct),
}); });
@ -89,6 +90,10 @@ export class HuiGlanceCardEditor extends LitElement
return this._config!.show_state || true; return this._config!.show_state || true;
} }
get _state_color(): boolean {
return this._config!.state_color ?? true;
}
protected render(): TemplateResult { protected render(): TemplateResult {
if (!this.hass || !this._config) { if (!this.hass || !this._config) {
return html``; return html``;
@ -105,16 +110,16 @@ export class HuiGlanceCardEditor extends LitElement
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.value="${this._title}" .value=${this._title}
.configValue="${"title"}" .configValue=${"title"}
@value-changed="${this._valueChanged}" @value-changed=${this._valueChanged}
></paper-input> ></paper-input>
<div class="side-by-side"> <div class="side-by-side">
<hui-theme-select-editor <hui-theme-select-editor
.hass=${this.hass} .hass=${this.hass}
.value="${this._theme}" .value=${this._theme}
.configValue="${"theme"}" .configValue=${"theme"}
@value-changed="${this._valueChanged}" @value-changed=${this._valueChanged}
></hui-theme-select-editor> ></hui-theme-select-editor>
<paper-input <paper-input
.label="${this.hass.localize( .label="${this.hass.localize(
@ -123,9 +128,9 @@ export class HuiGlanceCardEditor extends LitElement
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
type="number" type="number"
.value="${this._columns}" .value=${this._columns}
.configValue="${"columns"}" .configValue=${"columns"}
@value-changed="${this._valueChanged}" @value-changed=${this._valueChanged}
></paper-input> ></paper-input>
</div> </div>
<div class="side-by-side"> <div class="side-by-side">
@ -138,8 +143,8 @@ export class HuiGlanceCardEditor extends LitElement
> >
<ha-switch <ha-switch
.checked=${this._config!.show_name !== false} .checked=${this._config!.show_name !== false}
.configValue="${"show_name"}" .configValue=${"show_name"}
@change="${this._valueChanged}" @change=${this._valueChanged}
></ha-switch> ></ha-switch>
</ha-formfield> </ha-formfield>
</div> </div>
@ -152,8 +157,8 @@ export class HuiGlanceCardEditor extends LitElement
> >
<ha-switch <ha-switch
.checked=${this._config!.show_icon !== false} .checked=${this._config!.show_icon !== false}
.configValue="${"show_icon"}" .configValue=${"show_icon"}
@change="${this._valueChanged}" @change=${this._valueChanged}
> >
</ha-switch> </ha-switch>
</ha-formfield> </ha-formfield>
@ -167,18 +172,30 @@ export class HuiGlanceCardEditor extends LitElement
> >
<ha-switch <ha-switch
.checked=${this._config!.show_state !== false} .checked=${this._config!.show_state !== false}
.configValue="${"show_state"}" .configValue=${"show_state"}
@change="${this._valueChanged}" @change=${this._valueChanged}
> >
</ha-switch> </ha-switch>
</ha-formfield> </ha-formfield>
</div> </div>
</div> </div>
<ha-formfield
.label=${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.state_color"
)}
.dir=${computeRTLDirection(this.hass)}
>
<ha-switch
.checked=${this._config!.state_color}
.configValue=${"state_color"}
@change=${this._valueChanged}
></ha-switch>
</ha-formfield>
</div> </div>
<hui-entity-editor <hui-entity-editor
.hass=${this.hass} .hass=${this.hass}
.entities="${this._configEntities}" .entities=${this._configEntities}
@entities-changed="${this._valueChanged}" @entities-changed=${this._valueChanged}
></hui-entity-editor> ></hui-entity-editor>
`; `;
} }

View File

@ -17,7 +17,7 @@ export interface EntityFilterEntityConfig extends EntityConfig {
} }
export interface DividerConfig { export interface DividerConfig {
type: "divider"; type: "divider";
style: string; style: { [key: string]: string };
} }
export interface SectionConfig { export interface SectionConfig {
type: "section"; type: "section";

View File

@ -40,7 +40,7 @@ export const buttonsHeaderFooterConfigStruct = object({
export const graphHeaderFooterConfigStruct = object({ export const graphHeaderFooterConfigStruct = object({
type: string(), type: string(),
entity: string(), entity: string(),
detail: optional(string()), detail: optional(number()),
hours_to_show: optional(number()), hours_to_show: optional(number()),
}); });

View File

@ -1,34 +1,34 @@
import "@material/mwc-button"; import "@material/mwc-button";
import "../../layouts/ha-app-layout";
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";
import "../../components/ha-icon-button";
import "../../components/ha-circular-progress";
import { safeDump, safeLoad } from "js-yaml"; import { safeDump, safeLoad } from "js-yaml";
import { import {
css, css,
CSSResult, CSSResult,
customElement, customElement,
html, html,
internalProperty,
LitElement, LitElement,
property, property,
internalProperty,
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 { array, assert, object, optional, string, type } from "superstruct";
import { computeRTL } from "../../common/util/compute_rtl"; import { computeRTL } from "../../common/util/compute_rtl";
import "../../components/ha-circular-progress";
import "../../components/ha-code-editor"; import "../../components/ha-code-editor";
import type { HaCodeEditor } from "../../components/ha-code-editor"; import type { HaCodeEditor } from "../../components/ha-code-editor";
import "../../components/ha-icon"; import "../../components/ha-icon";
import "../../components/ha-icon-button";
import type { LovelaceConfig } from "../../data/lovelace"; import type { LovelaceConfig } from "../../data/lovelace";
import { import {
showAlertDialog, showAlertDialog,
showConfirmationDialog, showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box"; } from "../../dialogs/generic/show-dialog-box";
import "../../layouts/ha-app-layout";
import { haStyle } from "../../resources/styles"; import { haStyle } from "../../resources/styles";
import type { HomeAssistant } from "../../types"; import type { HomeAssistant } from "../../types";
import type { Lovelace } from "./types"; import type { Lovelace } from "./types";
import { optional, array, string, object, type, assert } from "superstruct";
const lovelaceStruct = type({ const lovelaceStruct = type({
title: optional(string()), title: optional(string()),
@ -49,7 +49,7 @@ class LovelaceFullConfigEditor extends LitElement {
private _generation = 1; private _generation = 1;
public render(): TemplateResult | void { protected render(): TemplateResult | void {
return html` return html`
<ha-app-layout> <ha-app-layout>
<app-header slot="header"> <app-header slot="header">

View File

@ -1,10 +1,13 @@
import { import {
css,
CSSResult,
customElement, customElement,
html, html,
LitElement,
internalProperty, internalProperty,
LitElement,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import { styleMap } from "lit-html/directives/style-map";
import { HomeAssistant } from "../../../types"; import { HomeAssistant } from "../../../types";
import { DividerConfig, LovelaceRow } from "../entity-rows/types"; import { DividerConfig, LovelaceRow } from "../entity-rows/types";
@ -19,13 +22,7 @@ class HuiDividerRow extends LitElement implements LovelaceRow {
throw new Error("Error in card configuration."); throw new Error("Error in card configuration.");
} }
this._config = { this._config = config;
style: {
height: "1px",
"background-color": "var(--divider-color)",
},
...config,
};
} }
protected render(): TemplateResult { protected render(): TemplateResult {
@ -33,13 +30,16 @@ class HuiDividerRow extends LitElement implements LovelaceRow {
return html``; return html``;
} }
const el = document.createElement("div"); return html`<div style=${styleMap(this._config.style)}></div>`;
}
Object.keys(this._config.style).forEach((prop) => { static get styles(): CSSResult {
el.style.setProperty(prop, this._config!.style[prop]); return css`
}); div {
height: 1px;
return html` ${el} `; background-color: var(--entities-divider-color, var(--divider-color));
}
`;
} }
} }

View File

@ -3,8 +3,8 @@ import {
CSSResult, CSSResult,
customElement, customElement,
html, html,
LitElement,
internalProperty, internalProperty,
LitElement,
TemplateResult, TemplateResult,
} from "lit-element"; } from "lit-element";
import "../../../components/ha-icon"; import "../../../components/ha-icon";
@ -48,7 +48,7 @@ class HuiSectionRow extends LitElement implements LovelaceRow {
} }
.divider { .divider {
height: 1px; height: 1px;
background-color: var(--divider-color); background-color: var(--entities-divider-color, var(--divider-color));
margin-left: -16px; margin-left: -16px;
margin-right: -16px; margin-right: -16px;
margin-top: 8px; margin-top: 8px;

View File

@ -394,18 +394,6 @@ export class HUIView extends LitElement {
left: calc(16px + env(safe-area-inset-left)); left: calc(16px + env(safe-area-inset-left));
} }
@media (max-width: 500px) {
:host {
padding-left: 0;
padding-right: 0;
}
.column > * {
margin-left: 0;
margin-right: 0;
}
}
@media (max-width: 599px) { @media (max-width: 599px) {
.column { .column {
max-width: 600px; max-width: 600px;

View File

@ -1,17 +1,17 @@
import "../../components/ha-icon-button";
import "@polymer/paper-tooltip/paper-tooltip"; import "@polymer/paper-tooltip/paper-tooltip";
import { html } from "@polymer/polymer/lib/utils/html-tag"; import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */ /* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element"; import { PolymerElement } from "@polymer/polymer/polymer-element";
import { formatDateTime } from "../../common/datetime/format_date_time"; import { formatDateTime } from "../../common/datetime/format_date_time";
import "../../components/ha-card"; import "../../components/ha-card";
import { EventsMixin } from "../../mixins/events-mixin"; import "../../components/ha-icon-button";
import LocalizeMixin from "../../mixins/localize-mixin"; import "../../components/ha-settings-row";
import { import {
showAlertDialog, showAlertDialog,
showConfirmationDialog, showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box"; } from "../../dialogs/generic/show-dialog-box";
import "../../components/ha-settings-row"; import { EventsMixin } from "../../mixins/events-mixin";
import LocalizeMixin from "../../mixins/localize-mixin";
/* /*
* @appliesMixin EventsMixin * @appliesMixin EventsMixin
@ -39,7 +39,7 @@ class HaRefreshTokens extends LocalizeMixin(EventsMixin(PolymerElement)) {
<div slot="description">[[_formatLastUsed(item)]]</div> <div slot="description">[[_formatLastUsed(item)]]</div>
<div> <div>
<template is="dom-if" if="[[item.is_current]]"> <template is="dom-if" if="[[item.is_current]]">
<paper-tooltip position="left" <paper-tooltip animation-delay="0" position="left"
>[[localize('ui.panel.profile.refresh_tokens.current_token_tooltip')]]</paper-tooltip >[[localize('ui.panel.profile.refresh_tokens.current_token_tooltip')]]</paper-tooltip
> >
</template> </template>

View File

@ -839,7 +839,19 @@
"input_datetime": "Reload input date times", "input_datetime": "Reload input date times",
"input_select": "Reload input selects", "input_select": "Reload input selects",
"template": "Reload template entities", "template": "Reload template entities",
"universal": "Reload universal media player entities" "universal": "Reload universal media player entities",
"rest": "Reload rest entities",
"command_line": "Reload command line entities",
"filter": "Reload filter entities",
"statistics": "Reload statistics entities",
"generic": "Reload generic IP camera entities",
"generic_thermostat": "Reload generic thermostat entities",
"homekit": "Reload HomeKit",
"min_max": "Reload min/max entities",
"history_stats": "Reload history stats entities",
"trend": "Reload trend entities",
"ping": "Reload ping binary sensor entities",
"filesize": "Reload file size entities"
}, },
"server_management": { "server_management": {
"heading": "Server management", "heading": "Server management",
@ -1650,6 +1662,8 @@
"caption": "View user", "caption": "View user",
"name": "Name", "name": "Name",
"change_password": "Change password", "change_password": "Change password",
"new_password": "New Password",
"password_changed": "The password is changed!",
"activate_user": "Activate user", "activate_user": "Activate user",
"deactivate_user": "Deactivate user", "deactivate_user": "Deactivate user",
"delete_user": "Delete user", "delete_user": "Delete user",
@ -1670,6 +1684,8 @@
"name": "Name", "name": "Name",
"username": "Username", "username": "Username",
"password": "Password", "password": "Password",
"password_confirm": "Confirm Password",
"password_not_match": "Passwords don't match",
"create": "Create" "create": "Create"
} }
}, },
@ -2240,7 +2256,8 @@
"url": "Url", "url": "Url",
"state": "State", "state": "State",
"secondary_info_attribute": "Secondary Info Attribute", "secondary_info_attribute": "Secondary Info Attribute",
"search": "Search" "search": "Search",
"state_color": "Color icons based on state?"
}, },
"map": { "map": {
"name": "Map", "name": "Map",

23
src/util/calculate.ts Normal file
View File

@ -0,0 +1,23 @@
export const normalize = (value: number, min: number, max: number): number => {
if (isNaN(value) || isNaN(min) || isNaN(max)) {
// Not a number, return 0
return 0;
}
if (value > max) return max;
if (value < min) return min;
return value;
};
export const getValueInPercentage = (
value: number,
min: number,
max: number
): number => {
const newMax = max - min;
const newVal = value - min;
return (100 * newVal) / newMax;
};
export const roundWithOneDecimal = (value: number): number => {
return Math.round(value * 10) / 10;
};

View File

@ -0,0 +1,25 @@
import * as assert from "assert";
import {
getValueInPercentage,
normalize,
roundWithOneDecimal,
} from "../../src/util/calculate";
describe("Calculate tests", function () {
it("Test getValueInPercentage", function () {
assert.equal(getValueInPercentage(10, 0, 100), 10);
assert.equal(getValueInPercentage(120, 0, 100), 120);
assert.equal(getValueInPercentage(-10, 0, 100), -10);
assert.equal(getValueInPercentage(10.33333, 0, 100), 10.33333);
});
it("Test normalize", function () {
assert.equal(normalize(10, 0, 100), 10);
assert.equal(normalize(1, 10, 100), 10);
assert.equal(normalize(100, 0, 10), 10);
});
it("Test roundWithOneDecimal", function () {
assert.equal(roundWithOneDecimal(10), 10);
assert.equal(roundWithOneDecimal(10.3), 10.3);
assert.equal(roundWithOneDecimal(10.3333), 10.3);
});
});

View File

@ -46,15 +46,15 @@
"state_badge": { "state_badge": {
"alarm_control_panel": { "alarm_control_panel": {
"armed": "Gewapen", "armed": "Gewapen",
"armed_away": "Gewapen", "armed_away": "Aktief",
"armed_custom_bypass": "Gewapen", "armed_custom_bypass": "Gewapen",
"armed_home": "Gewapen", "armed_home": "Gewapen",
"armed_night": "Gewapen", "armed_night": "Aktief",
"arming": "Bewapen Tans", "arming": "Bewapen Tans",
"disarmed": "Ontwapen", "disarmed": "Ontwapen",
"disarming": "Ontwapen", "disarming": "Ontwapen",
"pending": "Hangend", "pending": "Hangend",
"triggered": "Aktief" "triggered": "Lui"
}, },
"default": { "default": {
"entity_not_found": "Entiteit nie gevind nie", "entity_not_found": "Entiteit nie gevind nie",
@ -646,7 +646,7 @@
"create": "SKEP", "create": "SKEP",
"default_name": "Nuwe Gebied", "default_name": "Nuwe Gebied",
"delete": "SKRAP", "delete": "SKRAP",
"update": "OPDATEER" "update": "Opdateer"
}, },
"picker": { "picker": {
"create_area": "SKEP GEBIED", "create_area": "SKEP GEBIED",
@ -694,7 +694,7 @@
"wait_template": "Wag Templaat" "wait_template": "Wag Templaat"
} }
}, },
"unsupported_action": "Ongesteunde aksie: {action}" "unsupported_action": "Geen UI-ondersteuning vir aksie nie: {action}"
}, },
"alias": "Naam", "alias": "Naam",
"conditions": { "conditions": {
@ -1350,6 +1350,8 @@
"network_stopped": "Z-Wave Netwerk het Gestop" "network_stopped": "Z-Wave Netwerk het Gestop"
}, },
"node_config": { "node_config": {
"config_value": "Konfigurasiewaarde",
"header": "Knooppuntkonfigurasieopsies",
"set_config_parameter": "Stel Config-parameter in" "set_config_parameter": "Stel Config-parameter in"
}, },
"services": { "services": {
@ -1449,13 +1451,16 @@
"humidifier": { "humidifier": {
"description": "Die Luchtbevochtigerkaart verleen beheer oor u lugbevochtiger-entiteit. Hiermee kan u die humiditeit en modus van die entiteit verander." "description": "Die Luchtbevochtigerkaart verleen beheer oor u lugbevochtiger-entiteit. Hiermee kan u die humiditeit en modus van die entiteit verander."
}, },
"iframe": {
"name": "Webblad"
},
"shopping-list": { "shopping-list": {
"integration_not_loaded": "Hierdie kaart vereis die ' shopping_list ' integrasie wat opgestel moet word." "integration_not_loaded": "Hierdie kaart vereis die ' shopping_list ' integrasie wat opgestel moet word."
} }
}, },
"edit_card": { "edit_card": {
"add": "Voeg Kaart by", "add": "Voeg Kaart by",
"delete": "Skrap", "delete": "Skrap kaart",
"edit": "Wysig", "edit": "Wysig",
"header": "Kaart opstelling", "header": "Kaart opstelling",
"move": "Skuif", "move": "Skuif",

View File

@ -419,9 +419,16 @@
"unlock": "Desbloquejar" "unlock": "Desbloquejar"
}, },
"media_player": { "media_player": {
"browse_media": "Navega pels mitjans",
"media_next_track": "Següent",
"media_play": "Reprodueix",
"media_play_pause": "Reprodueix/pausa",
"media_previous_track": "Anterior",
"sound_mode": "Mode de so", "sound_mode": "Mode de so",
"source": "Entrada", "source": "Entrada",
"text_to_speak": "Text a veu" "text_to_speak": "Text a veu",
"turn_off": "Apaga",
"turn_on": "Engega"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Desestimar" "dismiss": "Desestimar"
@ -554,6 +561,22 @@
"loading_history": "Carregant historial d'estats...", "loading_history": "Carregant historial d'estats...",
"no_history_found": "No s'ha trobat cap historial d'estats." "no_history_found": "No s'ha trobat cap historial d'estats."
}, },
"media-browser": {
"choose-source": "Tria la font",
"content-type": {
"album": "Àlbum",
"artist": "Artista",
"library": "Biblioteca",
"playlist": "Llista de reproducció",
"server": "Servidor"
},
"media-player-browser": "Navegador del reproductor multimèdia",
"no_items": "Sense elements",
"pick": "Escull",
"pick-media": "Tria mitjans",
"play": "Reprodueix",
"play-media": "Reprodueix mitjans"
},
"picture-upload": { "picture-upload": {
"label": "Imatge", "label": "Imatge",
"unsupported_format": "Format no compatible, tria una imatge JPEG, PNG o GIF." "unsupported_format": "Format no compatible, tria una imatge JPEG, PNG o GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\n one {setmana}\n other {setmanes}\n}" "week": "{count} {count, plural,\n one {setmana}\n other {setmanes}\n}"
}, },
"future": "D'aquí a {time}", "future": "D'aquí a {time}",
"just_now": "Ara mateix",
"never": "Mai", "never": "Mai",
"past": "Fa {time}" "past": "Fa {time}"
}, },
@ -1000,7 +1024,7 @@
"delete_confirm": "Segur que vols eliminar-ho?", "delete_confirm": "Segur que vols eliminar-ho?",
"duplicate": "Duplica", "duplicate": "Duplica",
"header": "Disparadors", "header": "Disparadors",
"introduction": "Els activadors són les regles que fan que es dispari una automatització. Pots definir més d'un activador per a cada automatització. Una vegada s'iniciï un activador, el Home Assistant validarà les condicions (si n'hi ha) i finalment cridarà l'acció.", "introduction": "Els activadors són les regles que fan que es dispari una automatització. Pots definir més d'un activador per a cada automatització. Una vegada s'iniciï un activador, Home Assistant validarà les condicions (si n'hi ha) i finalment cridarà l'acció.",
"learn_more": "Més informació sobre els activadors", "learn_more": "Més informació sobre els activadors",
"name": "Disparador", "name": "Disparador",
"type_select": "Tipus de disparador", "type_select": "Tipus de disparador",
@ -1100,7 +1124,7 @@
"headers": { "headers": {
"name": "Nom" "name": "Nom"
}, },
"introduction": "L'editor d'automatitzacions et permet crear i editar automatitzacions. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat el Home Assistant correctament.", "introduction": "L'editor d'automatitzacions et permet crear i editar automatitzacions. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat Home Assistant correctament.",
"learn_more": "Més informació sobre les automatitzacions", "learn_more": "Més informació sobre les automatitzacions",
"no_automations": "No s'ha pogut trobar cap automatització editable", "no_automations": "No s'ha pogut trobar cap automatització editable",
"only_editable": "Només es poden editar les automatitzacions definides dins l'arxiu automations.yaml.", "only_editable": "Només es poden editar les automatitzacions definides dins l'arxiu automations.yaml.",
@ -1318,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Encara no s'han afegit {name} mitjançant aquest dispositiu. Pots afegir-ne fent clic al botó + a sobre.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Quan es dispara alguna cosa..." "caption": "Quan es dispara alguna cosa..."
@ -1500,8 +1525,11 @@
"no_device": "Entitats sense dispositius", "no_device": "Entitats sense dispositius",
"no_devices": "Aquesta integració no té dispositius.", "no_devices": "Aquesta integració no té dispositius.",
"options": "Opcions", "options": "Opcions",
"reload": "Torna a carregar",
"reload_confirm": "La integració s'ha tornar a carregar",
"reload_restart_confirm": "Reinicia Home Assistant per acabar de carregar aquesta integració",
"rename": "Canvia el nom", "rename": "Canvia el nom",
"restart_confirm": "Reinicia el Home Assistant per acabar d'eliminar aquesta integració", "restart_confirm": "Reinicia Home Assistant per acabar d'eliminar aquesta integració",
"settings_button": "Edita la configuració de {integration}", "settings_button": "Edita la configuració de {integration}",
"system_options": "Opcions de sistema", "system_options": "Opcions de sistema",
"system_options_button": "Opcions de sistema de {integration}", "system_options_button": "Opcions de sistema de {integration}",
@ -1658,7 +1686,11 @@
"topic": "tòpic" "topic": "tòpic"
}, },
"ozw": { "ozw": {
"button": "Configura",
"common": { "common": {
"controller": "Controlador",
"instance": "Instància",
"network": "Xarxa",
"node_id": "ID del node", "node_id": "ID del node",
"ozw_instance": "Instància OpenZWave", "ozw_instance": "Instància OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "Etapa", "stage": "Etapa",
"zwave_info": "Informació Z-Wave" "zwave_info": "Informació Z-Wave"
}, },
"navigation": {
"network": "Xarxa",
"nodes": "Nodes",
"select_instance": "Selecciona instància"
},
"network_status": {
"details": {
"driverallnodesqueried": "S'han cosultat tots els nodes",
"driverallnodesqueriedsomedead": "S'han consultat tots els nodes. Se n'han trobat alguns morts",
"driverawakenodesqueries": "S'han cosultat tots els nodes desperts",
"driverfailed": "No s'ha pogut connectar amb el controlador Z-Wave",
"driverready": "Iniciant el controlador Z-Wave",
"driverremoved": "El controlador s'ha eliminat",
"driverreset": "El controlador s'ha restablert",
"offline": "OZWDaemon fora de línia",
"ready": "A punt per connectar-se",
"started": "Connectat a MQTT",
"starting": "Connectant a MQTT",
"stopped": "OpenZWave aturat"
},
"offline": "Fora de línia",
"online": "En línia",
"starting": "Iniciant",
"unknown": "Desconegut"
},
"network": {
"header": "Gestió de la xarxa",
"introduction": "Gestiona les funcions de tota la xarxa.",
"node_count": "{count} nodes"
},
"node_query_stages": { "node_query_stages": {
"associations": "Actualitzant de grups d'associacions i membres", "associations": "Actualitzant de grups d'associacions i membres",
"cacheload": "Carregant informació del fitxer de memòria cau d'OpenZWave. Els nodes amb bateria romandran en aquesta fase fins que es despertin.", "cacheload": "Carregant informació del fitxer de memòria cau d'OpenZWave. Els nodes amb bateria romandran en aquesta fase fins que es despertin.",
@ -1698,6 +1760,14 @@
"title": "Informació d'actualització del node", "title": "Informació d'actualització del node",
"wakeup_header": "Instruccions en despertar de", "wakeup_header": "Instruccions en despertar de",
"wakeup_instructions_source": "Les instruccions en despertar provenen de la base de dades de dispositius de la comunitat OpenZWave." "wakeup_instructions_source": "Les instruccions en despertar provenen de la base de dades de dispositius de la comunitat OpenZWave."
},
"select_instance": {
"header": "Selecciona una instància d'OpenZWave",
"introduction": "Tens més d'una instància d'OpenZWave en funcionament. Quina instància vols gestionar?"
},
"services": {
"add_node": "Afegeix node",
"remove_node": "Elimina node"
} }
}, },
"person": { "person": {
@ -1763,7 +1833,7 @@
"headers": { "headers": {
"name": "Nom" "name": "Nom"
}, },
"introduction": "L'editor d'escenes et permet crear i editar escenes. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat el Home Assistant correctament.", "introduction": "L'editor d'escenes et permet crear i editar escenes. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat Home Assistant correctament.",
"learn_more": "Més informació sobre les escenes", "learn_more": "Més informació sobre les escenes",
"no_scenes": "No s'ha pogut trobar cap escena editable", "no_scenes": "No s'ha pogut trobar cap escena editable",
"only_editable": "Només es poden editar les escenes definides dins l'arxiu scenes.yaml.", "only_editable": "Només es poden editar les escenes definides dins l'arxiu scenes.yaml.",
@ -1810,7 +1880,7 @@
"headers": { "headers": {
"name": "Nom" "name": "Nom"
}, },
"introduction": "L'editor de scripts et permet crear i editar scripts. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat el Home Assistant correctament.", "introduction": "L'editor de scripts et permet crear i editar scripts. Vés a l'enllaç de sota per veure'n les instruccions i assegurar-te que has configurat Home Assistant correctament.",
"learn_more": "Més informació sobre els scripts", "learn_more": "Més informació sobre els scripts",
"no_scripts": "No hem trobat cap script editable", "no_scripts": "No hem trobat cap script editable",
"show_info": "Mostra informació sobre l'script", "show_info": "Mostra informació sobre l'script",
@ -1823,18 +1893,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Actualitza automatitzacions", "automation": "Actualitza automatitzacions",
"command_line": "Torna a carregar entitats de comandes",
"core": "Actualitza ubicació i personalitzacions", "core": "Actualitza ubicació i personalitzacions",
"filesize": "Torna a carregar entitats de mida de fitxer",
"filter": "Torna a carregar entitats de filtre",
"generic": "Torna a carregar entitats genèriques de càmera IP",
"generic_thermostat": "Torna a carregar entitats genèriques de termòstat",
"group": "Actualitza grups", "group": "Actualitza grups",
"heading": "Tornant a carregar la configuració", "heading": "Tornant a carregar la configuració",
"history_stats": "Torna a carregar entitats d'estadístiques històriques",
"homekit": "Torna a carregar HomeKit",
"input_boolean": "Actualitza entrades booleanes", "input_boolean": "Actualitza entrades booleanes",
"input_datetime": "Actualitza entrades de data i hora", "input_datetime": "Actualitza entrades de data i hora",
"input_number": "Actualitza entrades numèriques", "input_number": "Actualitza entrades numèriques",
"input_select": "Actualitza entrades de selecció", "input_select": "Actualitza entrades de selecció",
"input_text": "Actualitza entrades de text", "input_text": "Actualitza entrades de text",
"introduction": "Algunes parts de Home Assistant es poden actualitzar sense necessitat reiniciar-lo. Si prems actualitza s'esborrarà la configuració YAML actual i se'n carregarà la nova.", "introduction": "Algunes parts de Home Assistant es poden actualitzar sense necessitat reiniciar-lo. Si prems actualitza s'esborrarà la configuració YAML actual i se'n carregarà la nova.",
"min_max": "Torna a carregar entitats min/max",
"person": "Actualitza persones", "person": "Actualitza persones",
"ping": "Torna a carregar entitats de sensors binaris de ping",
"rest": "Torna a carregar entitats de repòs",
"scene": "Actualitza escenes", "scene": "Actualitza escenes",
"script": "Actualitza programes", "script": "Actualitza programes",
"statistics": "Torna a carregar entitats estadístiques",
"template": "Torna a carregar entitats de plantilla",
"trend": "Torna a carregar entitats de tendència",
"universal": "Torna a carregar entitats del reproductor universal",
"zone": "Actualitza zones" "zone": "Actualitza zones"
}, },
"server_management": { "server_management": {
@ -1876,6 +1960,7 @@
"last_scanned": "Últim escaneig", "last_scanned": "Últim escaneig",
"name": "Nom" "name": "Nom"
}, },
"never_scanned": "Mai escanejat",
"no_tags": "Sense etiquetes", "no_tags": "Sense etiquetes",
"write": "Escriu" "write": "Escriu"
}, },
@ -1885,6 +1970,8 @@
"create": "Crear", "create": "Crear",
"name": "Nom", "name": "Nom",
"password": "Contrasenya", "password": "Contrasenya",
"password_confirm": "Confirma la contrasenya",
"password_not_match": "Les contrasenyes no coincideixen",
"username": "Nom d'usuari" "username": "Nom d'usuari"
}, },
"caption": "Usuaris", "caption": "Usuaris",
@ -1901,7 +1988,9 @@
"group": "Grup", "group": "Grup",
"id": "ID", "id": "ID",
"name": "Nom", "name": "Nom",
"new_password": "Nova contrasenya",
"owner": "Propietari", "owner": "Propietari",
"password_changed": "La contrasenya s'ha canviat!",
"system_generated": "Generat pel sistema", "system_generated": "Generat pel sistema",
"system_generated_users_not_editable": "No es poden actualitzar usuaris generats pel sistema.", "system_generated_users_not_editable": "No es poden actualitzar usuaris generats pel sistema.",
"system_generated_users_not_removable": "No es poden eliminar usuaris generats pel sistema.", "system_generated_users_not_removable": "No es poden eliminar usuaris generats pel sistema.",
@ -2200,6 +2289,7 @@
"description": "Les plantilles es renderitzen mitjançant el motor Jinja2 amb algunes extensions específiques de Home Assistant.", "description": "Les plantilles es renderitzen mitjançant el motor Jinja2 amb algunes extensions específiques de Home Assistant.",
"editor": "Editor de plantilles", "editor": "Editor de plantilles",
"jinja_documentation": "Documentació sobre plantilles amb Jinja2", "jinja_documentation": "Documentació sobre plantilles amb Jinja2",
"reset": "Restableix a la plantilla de demostració",
"template_extensions": "Extensions de plantilla de Home Assistant", "template_extensions": "Extensions de plantilla de Home Assistant",
"title": "Plantilla", "title": "Plantilla",
"unknown_error_template": "Error desconegut renderitzant plantilla" "unknown_error_template": "Error desconegut renderitzant plantilla"
@ -2281,6 +2371,10 @@
"description": "La targeta botó et permet afegir botons per realitzar diferents tasques.", "description": "La targeta botó et permet afegir botons per realitzar diferents tasques.",
"name": "Botó" "name": "Botó"
}, },
"calendar": {
"description": "La targeta Calendari mostra un calendari que inclou visualitzacions de dia, setmana i llista",
"name": "Calendari"
},
"conditional": { "conditional": {
"card": "Targeta", "card": "Targeta",
"change_type": "Canvia el tipus", "change_type": "Canvia el tipus",
@ -2346,6 +2440,7 @@
"show_name": "Mostra nom?", "show_name": "Mostra nom?",
"show_state": "Mostra estat?", "show_state": "Mostra estat?",
"state": "Estat", "state": "Estat",
"state_color": "Color de les icones basat en l'estat?",
"tap_action": "Acció en tocar", "tap_action": "Acció en tocar",
"theme": "Tema", "theme": "Tema",
"title": "Títol", "title": "Títol",
@ -2735,6 +2830,7 @@
"intro": "Hola {name}, benvingut/uda a Home Assistant. Quin nom t'agradaria posar a la teva casa?", "intro": "Hola {name}, benvingut/uda a Home Assistant. Quin nom t'agradaria posar a la teva casa?",
"intro_location": "Voldirem saber la zona on vius. Aquesta informació servirà per poder mostrar certa informació i configurar automatitzacions relatives a la posició del sol. Aquestes dades mai es compartiran fora de la teva xarxa personal.", "intro_location": "Voldirem saber la zona on vius. Aquesta informació servirà per poder mostrar certa informació i configurar automatitzacions relatives a la posició del sol. Aquestes dades mai es compartiran fora de la teva xarxa personal.",
"intro_location_detect": "Et podem ajudar a completar aquesta informació fent una única sol·licitud a un servei extern.", "intro_location_detect": "Et podem ajudar a completar aquesta informació fent una única sol·licitud a un servei extern.",
"location_name": "Nom de la instal·lació de Home Assistant",
"location_name_default": "Casa" "location_name_default": "Casa"
}, },
"integration": { "integration": {

View File

@ -105,7 +105,7 @@
"triggered": "Spuštěno" "triggered": "Spuštěno"
}, },
"automation": { "automation": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Aktivní"
}, },
"binary_sensor": { "binary_sensor": {
@ -115,7 +115,7 @@
}, },
"cold": { "cold": {
"off": "Normální", "off": "Normální",
"on": "Chladné" "on": "Studený"
}, },
"connectivity": { "connectivity": {
"off": "Odpojeno", "off": "Odpojeno",
@ -139,7 +139,7 @@
}, },
"heat": { "heat": {
"off": "Normální", "off": "Normální",
"on": "Horké" "on": "Horký"
}, },
"lock": { "lock": {
"off": "Zamčeno", "off": "Zamčeno",
@ -191,8 +191,8 @@
} }
}, },
"calendar": { "calendar": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"camera": { "camera": {
"idle": "Nečinný", "idle": "Nečinný",
@ -205,7 +205,7 @@
"fan_only": "Pouze ventilátor", "fan_only": "Pouze ventilátor",
"heat": "Topení", "heat": "Topení",
"heat_cool": "Vytápění/Chlazení", "heat_cool": "Vytápění/Chlazení",
"off": "Neaktivní" "off": "Vypnuto"
}, },
"configurator": { "configurator": {
"configure": "Konfigurovat", "configure": "Konfigurovat",
@ -213,9 +213,9 @@
}, },
"cover": { "cover": {
"closed": "Zavřeno", "closed": "Zavřeno",
"closing": "Zavírá", "closing": "Zavírá se",
"open": "Otevřeno", "open": "Otevřeno",
"opening": "Otevírání", "opening": "Otvírá se",
"stopped": "Zastaveno" "stopped": "Zastaveno"
}, },
"default": { "default": {
@ -228,30 +228,30 @@
"not_home": "Pryč" "not_home": "Pryč"
}, },
"fan": { "fan": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"group": { "group": {
"closed": "Zavřeno", "closed": "Zavřeno",
"closing": "Zavírá", "closing": "Zavírá se",
"home": "Doma", "home": "Doma",
"locked": "Zamčeno", "locked": "Zamčeno",
"not_home": "Pryč", "not_home": "Pryč",
"off": "Neaktivní", "off": "Vypnuto",
"ok": "V pořádku", "ok": "V pořádku",
"on": "Aktivní", "on": "Zapnuto",
"open": "Otevřeno", "open": "Otevřeno",
"opening": "Otevírání", "opening": "Otvírá se",
"problem": "Problém", "problem": "Problém",
"stopped": "Zastaveno", "stopped": "Zastaveno",
"unlocked": "Odemčeno" "unlocked": "Odemčeno"
}, },
"input_boolean": { "input_boolean": {
"off": "Neaktivní", "off": "Neaktivní",
"on": "Aktivní" "on": "Zapnuto"
}, },
"light": { "light": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Aktivní"
}, },
"lock": { "lock": {
@ -260,8 +260,8 @@
}, },
"media_player": { "media_player": {
"idle": "Nečinný", "idle": "Nečinný",
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní", "on": "Zapnuto",
"paused": "Pozastaveno", "paused": "Pozastaveno",
"playing": "Přehrávání", "playing": "Přehrávání",
"standby": "Pohotovostní režim" "standby": "Pohotovostní režim"
@ -274,27 +274,27 @@
"problem": "Problém" "problem": "Problém"
}, },
"remote": { "remote": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"scene": { "scene": {
"scening": "Scenérie" "scening": "Scenérie"
}, },
"script": { "script": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"sensor": { "sensor": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"sun": { "sun": {
"above_horizon": "Nad horizontem", "above_horizon": "Nad horizontem",
"below_horizon": "Za horizontem" "below_horizon": "Za horizontem"
}, },
"switch": { "switch": {
"off": "Neaktivní", "off": "Vypnuto",
"on": "Aktivní" "on": "Zapnuto"
}, },
"timer": { "timer": {
"active": "aktivní", "active": "aktivní",
@ -306,8 +306,8 @@
"docked": "Ve stanici", "docked": "Ve stanici",
"error": "Chyba", "error": "Chyba",
"idle": "Nečinný", "idle": "Nečinný",
"off": "Off", "off": "Vypnuto",
"on": "On", "on": "Zapnuto",
"paused": "Pozastaveno", "paused": "Pozastaveno",
"returning": "Návrat do stanice" "returning": "Návrat do stanice"
}, },
@ -419,9 +419,16 @@
"unlock": "Odemknout" "unlock": "Odemknout"
}, },
"media_player": { "media_player": {
"browse_media": "Procházet média",
"media_next_track": "Další",
"media_play": "Přehrát",
"media_play_pause": "Přehrát/pozastavit",
"media_previous_track": "Předchozí",
"sound_mode": "Režim zvuku", "sound_mode": "Režim zvuku",
"source": "Zdroj", "source": "Zdroj",
"text_to_speak": "Převod textu na řeč" "text_to_speak": "Převod textu na řeč",
"turn_off": "Vypnout",
"turn_on": "Zapnout"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Zavřít" "dismiss": "Zavřít"
@ -554,6 +561,22 @@
"loading_history": "Historie stavu se načítá...", "loading_history": "Historie stavu se načítá...",
"no_history_found": "Historie stavu chybí." "no_history_found": "Historie stavu chybí."
}, },
"media-browser": {
"choose-source": "Zvolte zdroj",
"content-type": {
"album": "Album",
"artist": "Umělec",
"library": "Knihovna",
"playlist": "Seznam skladeb",
"server": "Server"
},
"media-player-browser": "Prohlížeč přehrávače médií",
"no_items": "Žádné položky",
"pick": "Vybrat",
"pick-media": "Vybrat média",
"play": "Přehrát",
"play-media": "Přehrát média"
},
"picture-upload": { "picture-upload": {
"label": "Obrázek", "label": "Obrázek",
"unsupported_format": "Nepodporovaný formát, prosím vyberte obrázek typu JPEG, PNG nebo GIF." "unsupported_format": "Nepodporovaný formát, prosím vyberte obrázek typu JPEG, PNG nebo GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {týden}\nother {týdnů}\n}" "week": "{count} {count, plural,\none {týden}\nother {týdnů}\n}"
}, },
"future": "Za {time}", "future": "Za {time}",
"just_now": "Právě teď",
"never": "Nikdy", "never": "Nikdy",
"past": "Před {time}" "past": "Před {time}"
}, },
@ -762,8 +786,8 @@
}, },
"duration": { "duration": {
"day": "{count} {count, plural,\none {den}\nfew {dny}\nother {dnů}\n}", "day": "{count} {count, plural,\none {den}\nfew {dny}\nother {dnů}\n}",
"hour": "{count} {count, plural,\n one {hodinou}\n other {hodiny}\n}", "hour": "{count} {count, plural,\n one {hodina}\n few {hodiny}\n other {hodin}\n}",
"minute": "{count} {count, plural,\none {minutou}\nother {minuty}\n}", "minute": "{count} {count, plural,\none {minuta}\nfew {minuty}\nother {minut}\n}",
"second": "{count} {count, plural,\none {sekunda}\nfew {sekundy}\nother {sekund}\n}", "second": "{count} {count, plural,\none {sekunda}\nfew {sekundy}\nother {sekund}\n}",
"week": "{count} {count, plural,\none {týden}\nfew {týdny}\nother {týdnů}\n}" "week": "{count} {count, plural,\none {týden}\nfew {týdny}\nother {týdnů}\n}"
}, },
@ -796,7 +820,7 @@
"link_profile_page": "stránka vašeho profilu" "link_profile_page": "stránka vašeho profilu"
}, },
"areas": { "areas": {
"caption": "Registr oblastí", "caption": "Oblasti",
"data_table": { "data_table": {
"area": "Oblast", "area": "Oblast",
"devices": "Zařízení" "devices": "Zařízení"
@ -805,7 +829,7 @@
"confirmation_text": "Všechna zařízení v této oblasti budou nastavena jako nepřiřazena.", "confirmation_text": "Všechna zařízení v této oblasti budou nastavena jako nepřiřazena.",
"confirmation_title": "Opravdu chcete tuto oblast smazat?" "confirmation_title": "Opravdu chcete tuto oblast smazat?"
}, },
"description": "Přehled všech oblastí ve vaší domácnosti.", "description": "Správa oblastí ve vaší domácnosti",
"editor": { "editor": {
"area_id": "ID oblasti", "area_id": "ID oblasti",
"create": "VYTVOŘIT", "create": "VYTVOŘIT",
@ -814,11 +838,11 @@
"name": "Název", "name": "Název",
"name_required": "Název je povinný", "name_required": "Název je povinný",
"unknown_error": "Neznámá chyba", "unknown_error": "Neznámá chyba",
"update": "UPRAVIT" "update": "Aktualizovat"
}, },
"picker": { "picker": {
"create_area": "Vytvořit oblast", "create_area": "Vytvořit oblast",
"header": "Registr oblastí", "header": "Oblasti",
"integrations_page": "Stránka integrací", "integrations_page": "Stránka integrací",
"introduction": "Oblasti se používají k uspořádání zařízení podle místa kde jsou. Tato informace bude použita k organizaci rozhraní, k nastavení oprávnění a v integraci s ostatnímy systémy.", "introduction": "Oblasti se používají k uspořádání zařízení podle místa kde jsou. Tato informace bude použita k organizaci rozhraní, k nastavení oprávnění a v integraci s ostatnímy systémy.",
"introduction2": "Pro přídání zařízení do oblasti přejděte na stránku integrací pomocí odkazu níže tam klikněte na nakonfigurovanou integraci abyste se dostali na kartu zažízení.", "introduction2": "Pro přídání zařízení do oblasti přejděte na stránku integrací pomocí odkazu níže tam klikněte na nakonfigurovanou integraci abyste se dostali na kartu zažízení.",
@ -827,7 +851,7 @@
}, },
"automation": { "automation": {
"caption": "Automatizace", "caption": "Automatizace",
"description": "Vytvářejte a upravujte automatizace", "description": "Správa automatizací",
"editor": { "editor": {
"actions": { "actions": {
"add": "Přidat akci", "add": "Přidat akci",
@ -899,7 +923,7 @@
"wait_template": "Šablona pro čekání" "wait_template": "Šablona pro čekání"
} }
}, },
"unsupported_action": "Nepodporovaná akce: {action}" "unsupported_action": "Akce {action} není podporována v uživatelském rozhraní"
}, },
"alias": "Název", "alias": "Název",
"conditions": { "conditions": {
@ -965,7 +989,7 @@
"zone": "Zóna" "zone": "Zóna"
} }
}, },
"unsupported_condition": "Nepodporovaná podmínka: {condition}" "unsupported_condition": "Podmínka {condition} není podporována v uživatelském rozhraní"
}, },
"default_name": "Nová automatizace", "default_name": "Nová automatizace",
"description": { "description": {
@ -1087,7 +1111,7 @@
"zone": "Zóna" "zone": "Zóna"
} }
}, },
"unsupported_platform": "Nepodporovaná platforma: {platform}" "unsupported_platform": "Platforma {platform} není podporována v uživatelském rozhraní"
}, },
"unsaved_confirm": "Máte neuložené změny. Opravdu chcete odejít?" "unsaved_confirm": "Máte neuložené změny. Opravdu chcete odejít?"
}, },
@ -1100,7 +1124,7 @@
"headers": { "headers": {
"name": "Název" "name": "Název"
}, },
"introduction": "Editor automatizací umožňuje vytvářet a upravovat automatizace. Přečtěte si prosím [pokyny] (https://home-assistant.io/docs/automation/editor/), abyste se ujistili, že jste aplikaci Home Assistant nakonfigurovali správně.", "introduction": "Editor automatizací umožňuje vytvářet a upravovat automatizace. Přečtěte si prosím [pokyny] (https://home-assistant.io/docs/automation/editor/), abyste se ujistili, že jste Home Assistant nakonfigurovali správně.",
"learn_more": "Další informace o automatizacích", "learn_more": "Další informace o automatizacích",
"no_automations": "Nemohli jsme najít žádné upravitelné automatizace", "no_automations": "Nemohli jsme najít žádné upravitelné automatizace",
"only_editable": "Upravitelné mohou být pouze automatizace definované v automations.yaml.", "only_editable": "Upravitelné mohou být pouze automatizace definované v automations.yaml.",
@ -1271,7 +1295,7 @@
}, },
"core": { "core": {
"caption": "Obecné", "caption": "Obecné",
"description": "Ověřte konfigurační soubor a spravujte server", "description": "Změny obecné konfigurace Home Assistant",
"section": { "section": {
"core": { "core": {
"core_config": { "core_config": {
@ -1291,7 +1315,7 @@
"unit_system_imperial": "Imperiální", "unit_system_imperial": "Imperiální",
"unit_system_metric": "Metrický" "unit_system_metric": "Metrický"
}, },
"header": "Konfigurace a správa serveru", "header": "Obecná konfigurace",
"introduction": "Moc dobře víme, že změna konfigurace může být velmi únavným procesem. Tato sekce se proto pokusí udělat váš život alespoň trochu jednodušší." "introduction": "Moc dobře víme, že změna konfigurace může být velmi únavným procesem. Tato sekce se proto pokusí udělat váš život alespoň trochu jednodušší."
} }
} }
@ -1314,10 +1338,11 @@
"warning": { "warning": {
"include_link": "zahrnout customize.yaml", "include_link": "zahrnout customize.yaml",
"include_sentence": "Zdá se, že configuration.yaml správně nefunguje", "include_sentence": "Zdá se, že configuration.yaml správně nefunguje",
"not_applied": "Změny zde provedené jsou zapsány, ale nebudou použity po opětovném načtení konfigurace, pokud není zahrnut do umístění." "not_applied": "Změny zde provedené jsou zapsány, ale nebudou použity při novém načtení konfigurace, pokud není \"customize\" konfigurace nastavena v globální konfiguraci."
} }
}, },
"devices": { "devices": {
"add_prompt": "Pomocí tohoto zařízení dosud nebyl přidán žádný {name}. Můžete ho přidat kliknutím na tlačítko + výše.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Když je něco spuštěno ..." "caption": "Když je něco spuštěno ..."
@ -1353,7 +1378,7 @@
"device_info": "Informace o zařízení", "device_info": "Informace o zařízení",
"device_not_found": "Zařízení nebylo nalezeno.", "device_not_found": "Zařízení nebylo nalezeno.",
"entities": { "entities": {
"add_entities_lovelace": "Přidat všechny entity zařízení do Lovelace", "add_entities_lovelace": "Přidat do Lovelace",
"disabled_entities": "+{count} {count, plural,\n one {zakázaná entita}\n other {zakázaných entit}\n}", "disabled_entities": "+{count} {count, plural,\n one {zakázaná entita}\n other {zakázaných entit}\n}",
"entities": "Entity", "entities": "Entity",
"hide_disabled": "Skrýt zakázané", "hide_disabled": "Skrýt zakázané",
@ -1378,8 +1403,8 @@
"update": "Aktualizovat" "update": "Aktualizovat"
}, },
"entities": { "entities": {
"caption": "Registr entit", "caption": "Entity",
"description": "Přehled všech známých entit", "description": "Správa známých entit",
"picker": { "picker": {
"disable_selected": { "disable_selected": {
"button": "Zakázat vybrané", "button": "Zakázat vybrané",
@ -1397,7 +1422,7 @@
"show_readonly": "Zobrazit entity jen pro čtení", "show_readonly": "Zobrazit entity jen pro čtení",
"show_unavailable": "Zobrazit nedostupné entity" "show_unavailable": "Zobrazit nedostupné entity"
}, },
"header": "Registr entit", "header": "Entity",
"headers": { "headers": {
"entity_id": "ID entity", "entity_id": "ID entity",
"integration": "Integrace", "integration": "Integrace",
@ -1405,7 +1430,7 @@
"status": "Stav" "status": "Stav"
}, },
"introduction": "Homa Assistant uchovává registr všech entit, které kdy viděl a mohou být jednoznačně identifikovány. Každá z těchto entit bude mít přiděleno ID, které bude rezervováno pouze pro tuto entitu.", "introduction": "Homa Assistant uchovává registr všech entit, které kdy viděl a mohou být jednoznačně identifikovány. Každá z těchto entit bude mít přiděleno ID, které bude rezervováno pouze pro tuto entitu.",
"introduction2": "Pomocí registru entit můžete přepsat název, změnit identifikátor entity nebo odebrat entitu. Poznámka: odebrání entity z registru entit nesmaže entitu. Pro smazání přejděte na stránku integrací pomocí odkazu níže.", "introduction2": "Pomocí registru entit můžete přepsat název, změnit identifikátor entity nebo odebrat entitu.",
"remove_selected": { "remove_selected": {
"button": "Odstranit vybrané", "button": "Odstranit vybrané",
"confirm_partly_text": "Můžete odebrat pouze {removable} z vybraných {selected} entit. Entity lze odebrat pouze v případě, že integrace již entity neposkytuje. Občas je třeba restartovat Home Assistant před tím, než je možné odstranit entity ze smazané integrace. Opravdu chcete odebrat odstranitelné entity?", "confirm_partly_text": "Můžete odebrat pouze {removable} z vybraných {selected} entit. Entity lze odebrat pouze v případě, že integrace již entity neposkytuje. Občas je třeba restartovat Home Assistant před tím, než je možné odstranit entity ze smazané integrace. Opravdu chcete odebrat odstranitelné entity?",
@ -1500,6 +1525,9 @@
"no_device": "Entity bez zařízení", "no_device": "Entity bez zařízení",
"no_devices": "Tato integrace nemá žádná zařízení.", "no_devices": "Tato integrace nemá žádná zařízení.",
"options": "Možnosti", "options": "Možnosti",
"reload": "Nově načíst",
"reload_confirm": "Integrace byla nově načtena",
"reload_restart_confirm": "Restartujte Home Assistant pro nové načtení této integrace",
"rename": "Přejmenovat", "rename": "Přejmenovat",
"restart_confirm": "Restartujte Home Assistant pro odstranění této integrace", "restart_confirm": "Restartujte Home Assistant pro odstranění této integrace",
"settings_button": "Upravit nastavení pro {integration}", "settings_button": "Upravit nastavení pro {integration}",
@ -1524,14 +1552,14 @@
}, },
"configure": "Konfigurovat", "configure": "Konfigurovat",
"configured": "Zkonfigurováno", "configured": "Zkonfigurováno",
"description": "Spravovat připojená zařízení a služby", "description": "Správa integrací",
"details": "Podrobnosti o integraci", "details": "Podrobnosti o integraci",
"discovered": "Objeveno", "discovered": "Objeveno",
"home_assistant_website": "stránky Home Assistant", "home_assistant_website": "stránky Home Assistant",
"ignore": { "ignore": {
"confirm_delete_ignore": "To způsobí, že se integrace znovu objeví ve vašich zjištěných integracích. Může to vyžadovat restartování nebo to může nějakou dobu trvat.", "confirm_delete_ignore": "To způsobí, že se integrace znovu objeví ve vašich zjištěných integracích. Může to vyžadovat restartování nebo to může nějakou dobu trvat.",
"confirm_delete_ignore_title": "Přestat ignorovat {name}?", "confirm_delete_ignore_title": "Přestat ignorovat {name}?",
"confirm_ignore": "Opravdu nechcete tuto integraci nastavit? Tuto akci můžete vrátit zpět klepnutím na 'Zobrazit ignorované integrace' v nabídce vpravo nahoře.", "confirm_ignore": "Opravdu nechcete tuto integraci nastavit? Tuto akci můžete vrátit zpět klepnutím na \"Zobrazit ignorované integrace\" v nabídce vpravo nahoře.",
"confirm_ignore_title": "Ignorovat objevený {name}?", "confirm_ignore_title": "Ignorovat objevený {name}?",
"hide_ignored": "Skrýt ignorované integrace", "hide_ignored": "Skrýt ignorované integrace",
"ignore": "Ignorovat", "ignore": "Ignorovat",
@ -1552,7 +1580,7 @@
"rename_input_label": "Název položky", "rename_input_label": "Název položky",
"search": "Hledat integraci" "search": "Hledat integraci"
}, },
"introduction": "Zde je možné konfigurovat vaše komponenty a Home Assistant.\nZ uživatelského rozhraní sice zatím není možné konfigurovat vše, ale pracujeme na tom.", "introduction": "Zde je možné konfigurovat vaše komponenty a Home Assistant.\nZatím není možné vše konfigurovat přímo z uživatelského rozhraní, ale pracujeme na tom.",
"logs": { "logs": {
"caption": "Logy", "caption": "Logy",
"clear": "Zrušit", "clear": "Zrušit",
@ -1573,7 +1601,7 @@
"cant_edit_yaml": "Dashboardy definované v YAML nelze upravovat z uživatelského rozhraní. Změňte je v configuration.yaml.", "cant_edit_yaml": "Dashboardy definované v YAML nelze upravovat z uživatelského rozhraní. Změňte je v configuration.yaml.",
"caption": "Dashboardy", "caption": "Dashboardy",
"conf_mode": { "conf_mode": {
"storage": "Řízeno UI", "storage": "Řízeno uživatelským rozhraním",
"yaml": "Soubor YAML" "yaml": "Soubor YAML"
}, },
"confirm_delete": "Opravdu chcete odstranit tento dashboard?", "confirm_delete": "Opravdu chcete odstranit tento dashboard?",
@ -1608,7 +1636,7 @@
"open": "Otevřít" "open": "Otevřít"
} }
}, },
"description": "Nakonfigurujte své Lovelace Dashboardy", "description": "Správa Lovelace Dashboardů",
"resources": { "resources": {
"cant_edit_yaml": "Používáte Lovelace v režimu YAML, proto nemůžete spravovat své zdroje prostřednictvím uživatelského rozhraní. Spravujte je v souboru configuration.yaml.", "cant_edit_yaml": "Používáte Lovelace v režimu YAML, proto nemůžete spravovat své zdroje prostřednictvím uživatelského rozhraní. Spravujte je v souboru configuration.yaml.",
"caption": "Zdroje", "caption": "Zdroje",
@ -1658,11 +1686,88 @@
"topic": "téma" "topic": "téma"
}, },
"ozw": { "ozw": {
"button": "Konfigurovat",
"common": { "common": {
"controller": "Ovladač",
"instance": "Instance",
"network": "Síť",
"node_id": "ID uzlu",
"ozw_instance": "Instance OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
}, },
"device_info": {
"node_failed": "Uzel selhal",
"stage": "Fáze",
"zwave_info": "Informace o Z-Wave"
},
"navigation": {
"network": "Síť",
"nodes": "Uzly",
"select_instance": "Vyberte instanci"
},
"network_status": {
"details": {
"driverallnodesqueried": "Všechny uzly byly zkontaktovány",
"driverallnodesqueriedsomedead": "Všechny uzly byly zkontaktovány. Některé uzly byly nalezeny mrtvé",
"driverawakenodesqueries": "Všechny probuzené uzly byly zkontaktovány",
"driverfailed": "Nepodařilo se připojit k ovladači Z-Wave",
"driverready": "Inicializuji ovladač Z-Wave",
"driverremoved": "Ovladač byl odstraněn",
"driverreset": "Ovladač byl resetován",
"offline": "OZWDaemon je offline",
"ready": "Připraveno k připojení",
"started": "Připojeno k MQTT",
"starting": "Připojování k MQTT",
"stopped": "OpenZWave zastaven"
},
"offline": "Offline",
"online": "Online",
"starting": "Spouštění",
"unknown": "Nezjištěno"
},
"network": {
"header": "Správa sítě",
"introduction": "Správa funkcí pro celou síť",
"node_count": "{count} uzlů"
},
"node_query_stages": {
"associations": "Obnovuji přidružené skupiny a členství",
"cacheload": "Načítám informace ze souboru mezipaměti OpenZWave. Uzly baterií zůstanou v této fázi, dokud se uzel neprobudí.",
"complete": "Proces komunikace je dokončen",
"configuration": "Získávám konfiguraci z uzlu",
"dynamic": "Získávám často se měnící hodnoty z uzlu",
"instances": "Získávám podrobnosti o tom, jaké instance nebo kanály zařízení podporuje",
"manufacturerspecific1": "Získávám z uzlu kody výrobce a produktů",
"manufacturerspecific2": "Získávám z uzlu další kódy výrobce a produktů",
"neighbors": "Získávám seznam sousedů uzlu",
"nodeinfo": "Získávám z uzlu podporované typy příkazů",
"nodeplusinfo": "Získávám informace o Z-Wave + z uzlu",
"probe": "Kontroluji, zda je uzel probuzený/živý",
"protocolinfo": "Získávám z ovladače Z-Wave základní schopnosti tohoto uzlu",
"session": "Získávám zřídka se měnící hodnoty z uzlu",
"static": "Získávám statické hodnoty ze zařízení",
"versions": "Získávám informace o verzích firmwaru a typech příkazů",
"wakeup": "Nastavuji podporu pro probouzecí fronty a zprávy"
},
"refresh_node": { "refresh_node": {
"step": "Krok" "battery_note": "Pokud je uzel napájen z baterie, nezapomeňte jej probudit, než budete pokračovat",
"complete": "Obnova uzlu dokončena",
"description": "Toto řekne OpenZWave, aby znovu provedl komunikaci s uzlem a aktualizoval typy příkazů, schopnosti a hodnoty uzlu.",
"node_status": "Stav uzlu",
"refreshing_description": "Aktualizuji informací o uzlu...",
"start_refresh_button": "Spustit Obnovení",
"step": "Krok",
"title": "Aktualizovat informace o uzlu",
"wakeup_header": "Pokyny pro probuzení pro",
"wakeup_instructions_source": "Pokyny k probuzení pocházejí z komunitní databáze zařízení OpenZWave."
},
"select_instance": {
"header": "Vyberte instanci OpenZWave",
"introduction": "Máte více než jednu instanci OpenZWave. Kterou instanci chcete spravovat?"
},
"services": {
"add_node": "Přidat uzel",
"remove_node": "Odebrat uzel"
} }
}, },
"person": { "person": {
@ -1671,7 +1776,7 @@
"confirm_delete": "Opravdu chcete odstranit tuto osobu?", "confirm_delete": "Opravdu chcete odstranit tuto osobu?",
"confirm_delete2": "Všechna zařízení patřící této osobě budou nastavena jako nepřiřazena.", "confirm_delete2": "Všechna zařízení patřící této osobě budou nastavena jako nepřiřazena.",
"create_person": "Vytvořit osobu", "create_person": "Vytvořit osobu",
"description": "Spravujte osoby, které Home Assistant sleduje.", "description": "Správa osob, které Home Assistant sleduje",
"detail": { "detail": {
"create": "Vytvořit", "create": "Vytvořit",
"delete": "Smazat", "delete": "Smazat",
@ -1694,7 +1799,7 @@
"scene": { "scene": {
"activated": "Aktivovaná scéna {name}.", "activated": "Aktivovaná scéna {name}.",
"caption": "Scény", "caption": "Scény",
"description": "Vytváření a úpravy scén", "description": "Správa scén",
"editor": { "editor": {
"default_name": "Nová scéna", "default_name": "Nová scéna",
"devices": { "devices": {
@ -1737,8 +1842,8 @@
} }
}, },
"script": { "script": {
"caption": "Skript", "caption": "Skripty",
"description": "Vytvářejte a upravujte skripty", "description": "Správa skriptů",
"editor": { "editor": {
"alias": "Název", "alias": "Název",
"default_name": "Nový skript", "default_name": "Nový skript",
@ -1787,20 +1892,34 @@
"description": "Restart a zastavení serveru Home Asistent", "description": "Restart a zastavení serveru Home Asistent",
"section": { "section": {
"reloading": { "reloading": {
"automation": "Znovu načíst automatizace", "automation": "Nově načíst automatizace",
"core": "Znovu načíst umístění a přizpůsobení", "command_line": "Nově načíst entity integrace Command line",
"group": "Znovu načíst skupiny", "core": "Nově načíst umístění a přizpůsobení",
"filesize": "Nově načíst entity integrace File size",
"filter": "Nově načíst entity integrace Filter",
"generic": "Nově načíst entity integrace Generic IP camera",
"generic_thermostat": "Nově načíst entity integrace Generic thermostat",
"group": "Nově načíst skupiny",
"heading": "Konfigurace se načítá", "heading": "Konfigurace se načítá",
"input_boolean": "Znovu načíst pomocníky - přepínače", "history_stats": "Nově načíst entity integrace History stats",
"input_datetime": "Znovu načíst pomocníky - data/časy", "homekit": "Nově načíst entity integrace HomeKit",
"input_number": "Znovu načíst pomocníky - čísla", "input_boolean": "Nově načíst pomocníky - přepínače",
"input_select": "Znovu načíst pomocníky - výběry", "input_datetime": "Nově načíst pomocníky - data/časy",
"input_text": "Znovu načíst pomocníky - texty", "input_number": "Nově načíst pomocníky - čísla",
"introduction": "Některé části Home Assistant lze načíst bez nutnosti restartování. Volba načtení zahodí jejich aktuální konfiguraci a načte novou.", "input_select": "Nově načíst pomocníky - výběry",
"person": "Znovu načíst osoby", "input_text": "Nově načíst pomocníky - texty",
"scene": "Znovu načíst scény", "introduction": "Některé části Home Assistant lze nově načíst bez nutnosti restartování. Nové načtení zahodí jejich aktuální konfiguraci a načte novou.",
"script": "Znovu načíst skripty", "min_max": "Nově načíst entity integrace Min/Max",
"zone": "Znovu načíst zóny" "person": "Nově načíst osoby",
"ping": "Nově načíst entity integrace Ping",
"rest": "Nově načíst entity integrace Rest",
"scene": "Nově načíst scény",
"script": "Nově načíst skripty",
"statistics": "Nově načíst entity integrace Statistics",
"template": "Nově načíst entity integrace Template",
"trend": "Nově načíst entity integrace Trend",
"universal": "Nově načíst entity integrace Universal media player",
"zone": "Nově načíst zóny"
}, },
"server_management": { "server_management": {
"confirm_restart": "Opravdu chcete restartovat Home Assistant?", "confirm_restart": "Opravdu chcete restartovat Home Assistant?",
@ -1841,6 +1960,7 @@
"last_scanned": "Naposledy naskenováno", "last_scanned": "Naposledy naskenováno",
"name": "Název" "name": "Název"
}, },
"never_scanned": "Nikdy naskenováno",
"no_tags": "Žádné značky", "no_tags": "Žádné značky",
"write": "Zapsat" "write": "Zapsat"
}, },
@ -1850,6 +1970,8 @@
"create": "Vytvořit", "create": "Vytvořit",
"name": "Jméno", "name": "Jméno",
"password": "Heslo", "password": "Heslo",
"password_confirm": "Potvrzení hesla",
"password_not_match": "Hesla se neshodují",
"username": "Uživatelské jméno" "username": "Uživatelské jméno"
}, },
"caption": "Uživatelé", "caption": "Uživatelé",
@ -1866,7 +1988,9 @@
"group": "Skupina", "group": "Skupina",
"id": "ID", "id": "ID",
"name": "Jméno", "name": "Jméno",
"new_password": "Nové heslo",
"owner": "Vlastník", "owner": "Vlastník",
"password_changed": "Heslo změněno!",
"system_generated": "Generovaný systémem", "system_generated": "Generovaný systémem",
"system_generated_users_not_editable": "Nelze aktualizovat uživatele generované systémem.", "system_generated_users_not_editable": "Nelze aktualizovat uživatele generované systémem.",
"system_generated_users_not_removable": "Nelze odebrat uživatele generované systémem.", "system_generated_users_not_removable": "Nelze odebrat uživatele generované systémem.",
@ -1950,7 +2074,7 @@
"create_group": "Zigbee Home Automation - Vytvoření skupiny", "create_group": "Zigbee Home Automation - Vytvoření skupiny",
"create_group_details": "Zadejte požadované podrobnosti pro vytvoření nové zigbee skupiny", "create_group_details": "Zadejte požadované podrobnosti pro vytvoření nové zigbee skupiny",
"creating_group": "Vytváření skupiny", "creating_group": "Vytváření skupiny",
"description": "Vytvoření a úprava Zigbee skupin", "description": "Správa skupin Zigbee",
"group_details": "Zde jsou všechny podrobnosti o vybrané skupině Zigbee.", "group_details": "Zde jsou všechny podrobnosti o vybrané skupině Zigbee.",
"group_id": "ID skupiny", "group_id": "ID skupiny",
"group_info": "Informace o skupině", "group_info": "Informace o skupině",
@ -2085,7 +2209,7 @@
"heal_network": "Vyléčit síť", "heal_network": "Vyléčit síť",
"heal_node": "Uzdravit uzel", "heal_node": "Uzdravit uzel",
"node_info": "Informace o uzlu", "node_info": "Informace o uzlu",
"print_node": "Otisk nodu", "print_node": "Otisk uzlu",
"refresh_entity": "Znovu načíst Entitu", "refresh_entity": "Znovu načíst Entitu",
"refresh_node": "Obnovit uzel", "refresh_node": "Obnovit uzel",
"remove_failed_node": "Odebrat selhaný uzel", "remove_failed_node": "Odebrat selhaný uzel",
@ -2165,6 +2289,7 @@
"description": "Šablony jsou vykreslovány pomocí Jinja2 šablonového enginu s některými specifickými rozšířeními pro Home Assistant.", "description": "Šablony jsou vykreslovány pomocí Jinja2 šablonového enginu s některými specifickými rozšířeními pro Home Assistant.",
"editor": "Editor šablon", "editor": "Editor šablon",
"jinja_documentation": "Dokumentace šablony Jinja2", "jinja_documentation": "Dokumentace šablony Jinja2",
"reset": "Obnovit ukázkovou šablonu",
"template_extensions": "Rozšíření šablony Home Assistant", "template_extensions": "Rozšíření šablony Home Assistant",
"title": "Šablony", "title": "Šablony",
"unknown_error_template": "Šablona vykreslování neznámých chyb" "unknown_error_template": "Šablona vykreslování neznámých chyb"
@ -2246,6 +2371,10 @@
"description": "Karta Tlačítko umožňuje přidat tlačítka k provádění úkolů.", "description": "Karta Tlačítko umožňuje přidat tlačítka k provádění úkolů.",
"name": "Tlačítko" "name": "Tlačítko"
}, },
"calendar": {
"description": "Karta Kalendář zobrazuje kalendář včetně zobrazení dnů, týdnů a seznamů",
"name": "Kalendář"
},
"conditional": { "conditional": {
"card": "Karta", "card": "Karta",
"change_type": "Změnit typ", "change_type": "Změnit typ",
@ -2311,6 +2440,7 @@
"show_name": "Zobrazit název?", "show_name": "Zobrazit název?",
"show_state": "Zobrazit stav?", "show_state": "Zobrazit stav?",
"state": "Stav", "state": "Stav",
"state_color": "Barevné ikony dle stavu?",
"tap_action": "Akce při stisknutí", "tap_action": "Akce při stisknutí",
"theme": "Motiv", "theme": "Motiv",
"title": "Název", "title": "Název",
@ -2336,7 +2466,7 @@
}, },
"iframe": { "iframe": {
"description": "Karta Webová stránka umožňuje vložit oblíbenou webovou stránku přímo do Home Assistanta.", "description": "Karta Webová stránka umožňuje vložit oblíbenou webovou stránku přímo do Home Assistanta.",
"name": "iFrame" "name": "Webová stránka"
}, },
"light": { "light": {
"description": "Karta Světlo umožňuje změnit jas světla.", "description": "Karta Světlo umožňuje změnit jas světla.",
@ -2412,13 +2542,13 @@
"edit_card": { "edit_card": {
"add": "Přidat kartu", "add": "Přidat kartu",
"confirm_cancel": "Opravdu chcete zahodit změny?", "confirm_cancel": "Opravdu chcete zahodit změny?",
"delete": "Odstranit", "delete": "Smazat kartu",
"duplicate": "Duplikovat Kartu", "duplicate": "Duplikovat Kartu",
"edit": "Upravit", "edit": "Upravit",
"header": "Konfigurace karty", "header": "Konfigurace karty",
"move": "Přesunout", "move": "Přesunout",
"options": "Více možností", "options": "Více možností",
"pick_card": "Vyberte kartu, kterou chcete přidat.", "pick_card": "Kterou kartu chcete přidat?",
"pick_card_view_title": "Kterou kartu byste chtěli přidat do svého {name} pohledu?", "pick_card_view_title": "Kterou kartu byste chtěli přidat do svého {name} pohledu?",
"show_code_editor": "Zobrazit editor kódu", "show_code_editor": "Zobrazit editor kódu",
"show_visual_editor": "Zobrazit vizuální editor", "show_visual_editor": "Zobrazit vizuální editor",
@ -2450,19 +2580,19 @@
"header": "Upravit UI", "header": "Upravit UI",
"menu": { "menu": {
"open": "Otevřít Lovelace menu", "open": "Otevřít Lovelace menu",
"raw_editor": "Editor zdrojového kódu" "raw_editor": "Editor kódu konfigurace"
}, },
"migrate": { "migrate": {
"header": "Konfigurace není kompatibilní", "header": "Konfigurace není kompatibilní",
"migrate": "Migrovat konfiguraci", "migrate": "Migrovat konfiguraci",
"para_migrate": "Home Assistant může automaticky přidávat ID ke všem kartám a pohledům stisknutím tlačítka \"Migrovat konfiguraci\".", "para_migrate": "Home Assistant může automaticky přidat ID ke všem vašim kartám a pohledům stisknutím tlačítka \"Migrovat konfiguraci\".",
"para_no_id": "Tento prvek nemá ID. Přidejte k tomuto prvku ID v 'ui-lovelace.yaml'." "para_no_id": "Tento prvek nemá ID. Přidejte k tomuto prvku ID v 'ui-lovelace.yaml'."
}, },
"move_card": { "move_card": {
"header": "Vyberte pohled, do kterého chcete kartu přesunout" "header": "Vyberte pohled, do kterého chcete kartu přesunout"
}, },
"raw_editor": { "raw_editor": {
"confirm_remove_config_text": "Pokud odeberete nastavení Lovelace, automaticky vygenerujeme vaše zobrazení Lovelace s vašimi oblastmi a zařízeními.", "confirm_remove_config_text": "Pokud odeberete konfiguraci uživatelského rozhraní Lovelace, automaticky vygenerujeme pohledy Lovelace s vašimi oblastmi a zařízeními.",
"confirm_remove_config_title": "Opravdu chcete odstranit nastavení Lovelace? Automaticky vygenerujeme vaše zobrazení Lovelace s vašimi oblastmi a zařízeními.", "confirm_remove_config_title": "Opravdu chcete odstranit nastavení Lovelace? Automaticky vygenerujeme vaše zobrazení Lovelace s vašimi oblastmi a zařízeními.",
"confirm_unsaved_changes": "Máte neuložené změny. Opravdu chcete odejít?", "confirm_unsaved_changes": "Máte neuložené změny. Opravdu chcete odejít?",
"confirm_unsaved_comments": "Vaše konfigurace obsahuje komentáře, které se neuloží. Chcete pokračovat?", "confirm_unsaved_comments": "Vaše konfigurace obsahuje komentáře, které se neuloží. Chcete pokračovat?",
@ -2481,7 +2611,7 @@
"close": "Zavřít", "close": "Zavřít",
"empty_config": "Začít s prázdným dashboardem", "empty_config": "Začít s prázdným dashboardem",
"header": "Převzít kontrolu nad vaší Lovelace UI", "header": "Převzít kontrolu nad vaší Lovelace UI",
"para": "Ve výchozím nastavení bude Home Assistant spravovat vaše uživatelské rozhraní aktualizovat jej při přidání nové entity nebo Lovelace komponenty. Pokud převezmete kontrolu, nebudeme již provádět změny automaticky za vás.", "para": "Tento dashboard momentálně spravuje Home Assistant. Je automaticky aktualizován při přidání nové entity nebo Lovelace komponenty. Pokud převezmete kontrolu, nebudeme již provádět změny automaticky za vás. Vždy si můžete vytvořit nový dashboard na hraní.",
"para_sure": "Opravdu chcete převzít kontrolu nad uživalským rozhraním ?", "para_sure": "Opravdu chcete převzít kontrolu nad uživalským rozhraním ?",
"save": "Převzít kontrolu", "save": "Převzít kontrolu",
"yaml_config": "Abyste mohli snadněji začít, zde aktuální konfigurace tohoto dashboardu:", "yaml_config": "Abyste mohli snadněji začít, zde aktuální konfigurace tohoto dashboardu:",
@ -2507,15 +2637,15 @@
}, },
"menu": { "menu": {
"close": "Zavřít", "close": "Zavřít",
"configure_ui": "Konfigurovat UI", "configure_ui": "Upravit Dashboard",
"exit_edit_mode": "Ukončit režim úprav uživatelského rozhraní", "exit_edit_mode": "Ukončit režim úprav uživatelského rozhraní",
"help": "Pomoc", "help": "Pomoc",
"refresh": "Obnovit", "refresh": "Obnovit",
"reload_resources": "Opětovné načtení prostředků" "reload_resources": "Nově načíst zdroje"
}, },
"reload_lovelace": "Znovu načíst Lovelace", "reload_lovelace": "Nově načíst Lovelace",
"reload_resources": { "reload_resources": {
"refresh_body": "Chcete-li dokončit opětovné načtení, musíte stránku aktualizovat, chcete ji nyní aktualizovat?", "refresh_body": "Chcete-li dokončit nové načtení, musíte stránku aktualizovat. Chcete ji nyní aktualizovat?",
"refresh_header": "Chcete aktualizovat stránku?" "refresh_header": "Chcete aktualizovat stránku?"
}, },
"unused_entities": { "unused_entities": {
@ -2616,7 +2746,7 @@
"data": { "data": {
"password": "Heslo API" "password": "Heslo API"
}, },
"description": "Zadejte API heslo v http config" "description": "Zadejte heslo pro API ve své HTTP konfiguraci"
}, },
"mfa": { "mfa": {
"data": { "data": {
@ -2700,6 +2830,7 @@
"intro": "Dobrý den, {name} , vítejte v Home Assistant. Jak byste chtěli pojmenovat svůj domov?", "intro": "Dobrý den, {name} , vítejte v Home Assistant. Jak byste chtěli pojmenovat svůj domov?",
"intro_location": "Rádi bychom věděli, kde žijete. Tyto informace pomohou při zobrazování informací a určování přesné polohy slunce. Tato data nejsou nikdy sdílena mimo vaši síť.", "intro_location": "Rádi bychom věděli, kde žijete. Tyto informace pomohou při zobrazování informací a určování přesné polohy slunce. Tato data nejsou nikdy sdílena mimo vaši síť.",
"intro_location_detect": "Můžeme vám pomoci vyplnit tyto informace jednorázovým požadavkem na externí službu.", "intro_location_detect": "Můžeme vám pomoci vyplnit tyto informace jednorázovým požadavkem na externí službu.",
"location_name": "Název vaší instalace Home Assistant",
"location_name_default": "Domov" "location_name_default": "Domov"
}, },
"integration": { "integration": {
@ -2830,7 +2961,7 @@
"shopping-list": { "shopping-list": {
"add_item": "Přidat položku", "add_item": "Přidat položku",
"clear_completed": "Vymazat nakoupené", "clear_completed": "Vymazat nakoupené",
"microphone_tip": "Klepněte na mikrofon vpravo nahoře a řekněte \"Add candy to my shopping list\"" "microphone_tip": "Klepněte na mikrofon vpravo nahoře a řekněte nebo napište \"Add candy to my shopping list\""
} }
}, },
"sidebar": { "sidebar": {

View File

@ -733,6 +733,9 @@
"no_area": "Dim Ardal", "no_area": "Dim Ardal",
"no_device": "Endidau heb ddyfeisiau", "no_device": "Endidau heb ddyfeisiau",
"no_devices": "Tydi'r integreiddad yma ddim efo dyfeisiadau.", "no_devices": "Tydi'r integreiddad yma ddim efo dyfeisiadau.",
"reload": "Ail-lwytho",
"reload_confirm": "Cafodd yr integreiddiad ei ail-lwytho",
"reload_restart_confirm": "Ailgychwyn Home Assistant i ddarfod yr integreiddiadau",
"restart_confirm": "Ailgychwyn Home Assistant i ddarfod dileu'r integreiddiad hwn" "restart_confirm": "Ailgychwyn Home Assistant i ddarfod dileu'r integreiddiad hwn"
}, },
"config_flow": { "config_flow": {
@ -783,6 +786,52 @@
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"
}, },
"ozw": {
"button": "Ffurfweddu",
"common": {
"controller": "Rheolwr",
"instance": "Enghraifft",
"network": "Rhwydwaith"
},
"navigation": {
"network": "Rhwydwaith",
"nodes": "Nodau",
"select_instance": "Dewis Enghraifft"
},
"network_status": {
"details": {
"driverallnodesqueried": "Holwyd pob nod",
"driverallnodesqueriedsomedead": "Holwyd pob nod. Cafwyd hyd i rai nodau yn farw",
"driverawakenodesqueries": "Holwyd pob nod effro",
"driverfailed": "Wedi methu cysylltu â rheolydd Z-Wave",
"driverready": "Cychwyn y rheolydd Z-Wave",
"driverremoved": "Mae'r gyrrwr wedi'i diddymu",
"driverreset": "Mae'r gyrrwr wedi cael ei ailosod",
"offline": "OZWDaemon all-lein",
"ready": "Barod i gysylltu",
"started": "Cysylltu â MQTT",
"starting": "Cysylltu â MQTT",
"stopped": "Stopiodd OpenZWave"
},
"offline": "All-lein",
"online": "Ar-lein",
"starting": "Cychwyn",
"unknown": "Anhysbys"
},
"network": {
"header": "Rheolaeth Rhwydwaith",
"introduction": "Rheoli swyddogaethau rhwydwaith-lydan",
"node_count": "nodau {count}"
},
"select_instance": {
"header": "Dewiswch Enghraifft OpenZWave",
"introduction": "Mae gennych fwy nag un enghraifft OpenZWave yn rhedeg. Pa enghraifft hoffech chi ei rheoli?"
},
"services": {
"add_node": "Ychwanegu Nod",
"remove_node": "Tynnu Nod"
}
},
"person": { "person": {
"caption": "Pobl", "caption": "Pobl",
"description": "Rheoli'r pobl mae Home Assistant yn tracio.", "description": "Rheoli'r pobl mae Home Assistant yn tracio.",
@ -838,11 +887,16 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Ail-lwytho awtomeiddiadau", "automation": "Ail-lwytho awtomeiddiadau",
"command_line": "Ail-lwytho endidau llinell orchymyn",
"core": "Ail-lwytho craidd", "core": "Ail-lwytho craidd",
"filter": "Ail-lwytho endidau hidlo",
"group": "Ail-lwytho grwpiau", "group": "Ail-lwytho grwpiau",
"heading": "Ffurfweddiad yn ail-lwytho", "heading": "Ffurfweddiad yn ail-lwytho",
"introduction": "Gall rhai rhannau o Home Assistant ail-lwytho heb orfod ailgychwyn. Bydd taro ail-lwytho yn dadlwytho eu cyfluniad cyfredol a llwytho'r un newydd.", "introduction": "Gall rhai rhannau o Home Assistant ail-lwytho heb orfod ailgychwyn. Bydd taro ail-lwytho yn dadlwytho eu cyfluniad cyfredol a llwytho'r un newydd.",
"script": "Ail-lwytho sgriptiau" "rest": "Ail-lwytho endidau gorffwys",
"script": "Ail-lwytho sgriptiau",
"statistics": "Ail-lwytho endidau ystadegau",
"universal": "Ail-lwytho endidau chwaraewyr cyfryngau cyffredinol"
}, },
"server_management": { "server_management": {
"heading": "Rheoli gweinydd", "heading": "Rheoli gweinydd",
@ -945,6 +999,7 @@
"title": "Cyflerau" "title": "Cyflerau"
}, },
"templates": { "templates": {
"reset": "Ailosod i dempled demo",
"title": "Templedi" "title": "Templedi"
} }
} }
@ -995,6 +1050,10 @@
"button": { "button": {
"description": "Mae'r cerdyn Botwm yn caniatáu ichi ychwanegu botymau i gyflawni tasgau." "description": "Mae'r cerdyn Botwm yn caniatáu ichi ychwanegu botymau i gyflawni tasgau."
}, },
"calendar": {
"description": "Mae'r cerdyn Calendr yn dangos calendr gan gynnwys gweddlun dydd, wythnos a restr",
"name": "Calendr"
},
"conditional": { "conditional": {
"card": "Cerdyn", "card": "Cerdyn",
"change_type": "Newid math", "change_type": "Newid math",
@ -1281,6 +1340,7 @@
"intro": "Helo {name}, croeso i Home Assistant. Sut hoffech enwi eich tŷ?", "intro": "Helo {name}, croeso i Home Assistant. Sut hoffech enwi eich tŷ?",
"intro_location": "Hoffem wybod ble rydych chi'n byw. Bydd y wybodaeth yn helpu i arddangos gwybodaeth a sefydlu awtomeiddiadau haul. Tydi'r data byth yn cael ei rannu thu allan i'ch rhwydwaith.", "intro_location": "Hoffem wybod ble rydych chi'n byw. Bydd y wybodaeth yn helpu i arddangos gwybodaeth a sefydlu awtomeiddiadau haul. Tydi'r data byth yn cael ei rannu thu allan i'ch rhwydwaith.",
"intro_location_detect": "Gallwn eich helpu i lenwi'r wybodaeth hon drwy wneud cais un-tro i wasanaeth allanol.", "intro_location_detect": "Gallwn eich helpu i lenwi'r wybodaeth hon drwy wneud cais un-tro i wasanaeth allanol.",
"location_name": "Enw eich gosodiad Home Assistant",
"location_name_default": "Hafan" "location_name_default": "Hafan"
}, },
"integration": { "integration": {

View File

@ -419,9 +419,12 @@
"unlock": "Entriegeln" "unlock": "Entriegeln"
}, },
"media_player": { "media_player": {
"media_play": "Abspielen",
"sound_mode": "Sound-Modus", "sound_mode": "Sound-Modus",
"source": "Quelle", "source": "Quelle",
"text_to_speak": "Text zum Sprechen" "text_to_speak": "Text zum Sprechen",
"turn_off": "Ausschalten",
"turn_on": "Einschalten"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Ausblenden" "dismiss": "Ausblenden"
@ -554,6 +557,17 @@
"loading_history": "Lade Zustandsverlauf...", "loading_history": "Lade Zustandsverlauf...",
"no_history_found": "Kein Zustandsverlauf gefunden." "no_history_found": "Kein Zustandsverlauf gefunden."
}, },
"media-browser": {
"choose-source": "Quelle wählen",
"content-type": {
"album": "Album",
"artist": "Künstler",
"library": "Bibliothek",
"playlist": "Playlist",
"server": "Server"
},
"play": "Abspielen"
},
"related-items": { "related-items": {
"area": "Bereich", "area": "Bereich",
"automation": "Teil der folgenden Automatisierungen", "automation": "Teil der folgenden Automatisierungen",
@ -574,6 +588,7 @@
"week": "{count} {count, plural,\none {Woche}\nother {Wochen}\n}" "week": "{count} {count, plural,\none {Woche}\nother {Wochen}\n}"
}, },
"future": "In {time}", "future": "In {time}",
"just_now": "Gerade jetzt",
"never": "Noch nie", "never": "Noch nie",
"past": "Vor {time}" "past": "Vor {time}"
}, },
@ -833,6 +848,9 @@
"name": "Aktion", "name": "Aktion",
"type_select": "Aktionstyp", "type_select": "Aktionstyp",
"type": { "type": {
"choose": {
"label": "Auswählen"
},
"condition": { "condition": {
"label": "Bedingung" "label": "Bedingung"
}, },
@ -852,6 +870,21 @@
"label": "Ereignis auslösen", "label": "Ereignis auslösen",
"service_data": "Dienstdaten" "service_data": "Dienstdaten"
}, },
"repeat": {
"label": "Wiederholen",
"type_select": "Wiederholungstyp",
"type": {
"count": {
"label": "Anzahl"
},
"until": {
"label": "Bis"
},
"while": {
"label": "Während"
}
}
},
"scene": { "scene": {
"label": "Szene aktivieren" "label": "Szene aktivieren"
}, },
@ -1298,7 +1331,7 @@
}, },
"cant_edit": "Du kannst nur Elemente bearbeiten, die in der Benutzeroberfläche erstellt wurden.", "cant_edit": "Du kannst nur Elemente bearbeiten, die in der Benutzeroberfläche erstellt wurden.",
"caption": "Geräte", "caption": "Geräte",
"confirm_delete": "Möchtest Du dieses Gerät wirklich löschen?", "confirm_delete": "Möchtest du dieses Gerät wirklich löschen?",
"confirm_rename_entity_ids": "Möchten Sie auch die Entitäts-IDs Ihrer Entitäten umbenennen?", "confirm_rename_entity_ids": "Möchten Sie auch die Entitäts-IDs Ihrer Entitäten umbenennen?",
"data_table": { "data_table": {
"area": "Bereich", "area": "Bereich",
@ -1370,7 +1403,7 @@
"introduction2": "Verwenden Sie die Entitätsregistrierung, um den Namen zu überschreiben, die Entität-ID zu ändern oder den Eintrag aus Home Assistant zu entfernen. Beachten Sie, dass das Entfernen des Entitätsregistrierungs-Eintrags die Entität nicht löscht. Folgen Sie dazu dem Link unten und entfernen Sie ihn in der Integrationsseite.", "introduction2": "Verwenden Sie die Entitätsregistrierung, um den Namen zu überschreiben, die Entität-ID zu ändern oder den Eintrag aus Home Assistant zu entfernen. Beachten Sie, dass das Entfernen des Entitätsregistrierungs-Eintrags die Entität nicht löscht. Folgen Sie dazu dem Link unten und entfernen Sie ihn in der Integrationsseite.",
"remove_selected": { "remove_selected": {
"button": "Ausgewählte entfernen", "button": "Ausgewählte entfernen",
"confirm_partly_text": "Du kannst nur {removable} der ausgewählten {selected} Entitäten entfernen. Entitäten können nur entfernt werden, wenn die Integration die Entitäten nicht mehr bereitstellt. Manchmal musst du Home Assistant neu starten, bevor du die Entitäten einer entfernten Integration entfernen kannst. Möchtest Du die entfernbaren Entitäten wirklich entfernen?", "confirm_partly_text": "Du kannst nur {removable} der ausgewählten {selected} Entitäten entfernen. Entitäten können nur entfernt werden, wenn die Integration die Entitäten nicht mehr bereitstellt. Manchmal musst du Home Assistant neu starten, bevor du die Entitäten einer entfernten Integration entfernen kannst. Möchtest du die entfernbaren Entitäten wirklich entfernen?",
"confirm_partly_title": "Es können nur {number} ausgewählte Objekte entfernt werden.", "confirm_partly_title": "Es können nur {number} ausgewählte Objekte entfernt werden.",
"confirm_text": "Du solltest sie aus deiner Lovelace-Konfiguration und deinen Automatisierungen entfernen, wenn sie diese Entitäten enthalten.", "confirm_text": "Du solltest sie aus deiner Lovelace-Konfiguration und deinen Automatisierungen entfernen, wenn sie diese Entitäten enthalten.",
"confirm_title": "Möchtest du {number} Entitäten entfernen?" "confirm_title": "Möchtest du {number} Entitäten entfernen?"
@ -1507,9 +1540,9 @@
"no_integrations": "Du hast anscheinend noch keine Integrationen konfiguriert. Klicke auf die Schaltfläche unten, um Deine erste Integration hinzuzufügen!", "no_integrations": "Du hast anscheinend noch keine Integrationen konfiguriert. Klicke auf die Schaltfläche unten, um Deine erste Integration hinzuzufügen!",
"none": "Noch nichts konfiguriert", "none": "Noch nichts konfiguriert",
"none_found": "Keine Integrationen gefunden", "none_found": "Keine Integrationen gefunden",
"none_found_detail": "Passe Deine Suchkriterien an.", "none_found_detail": "Passe deine Suchkriterien an.",
"note_about_integrations": "Nicht alle Integrationen können über die Benutzeroberfläche konfiguriert werden.", "note_about_integrations": "Nicht alle Integrationen können über die Benutzeroberfläche konfiguriert werden.",
"note_about_website_reference": "Weitere Informationen findest Du auf der ", "note_about_website_reference": "Weitere Informationen findest du auf der ",
"rename_dialog": "Bearbeite den Namen dieses Konfigurationseintrags", "rename_dialog": "Bearbeite den Namen dieses Konfigurationseintrags",
"rename_input_label": "Eintragsname", "rename_input_label": "Eintragsname",
"search": "Such-Integrationen" "search": "Such-Integrationen"
@ -1595,7 +1628,7 @@
}, },
"no_resources": "keine Ressourcen" "no_resources": "keine Ressourcen"
}, },
"refresh_body": "Die Seite muss aktualisiert werden, um das Entfernen abzuschließen. Möchtest Du sie jetzt aktualisieren?", "refresh_body": "Die Seite muss aktualisiert werden, um das Entfernen abzuschließen. Möchtest du sie jetzt aktualisieren?",
"refresh_header": "Möchtest du aktualisieren?", "refresh_header": "Möchtest du aktualisieren?",
"types": { "types": {
"css": "Stylesheet", "css": "Stylesheet",
@ -1620,8 +1653,23 @@
"topic": "Topic" "topic": "Topic"
}, },
"ozw": { "ozw": {
"common": {
"instance": "Instanz"
},
"device_info": { "device_info": {
"zwave_info": "Z-Wave Infos" "zwave_info": "Z-Wave Infos"
},
"navigation": {
"network": "Netzwerk",
"select_instance": "Instanz auswählen"
},
"network_status": {
"offline": "Offline",
"online": "Online",
"unknown": "Unbekannt"
},
"network": {
"header": "Netzwerkverwaltung"
} }
}, },
"person": { "person": {
@ -1778,6 +1826,15 @@
} }
} }
}, },
"tags": {
"detail": {
"name": "Name"
},
"headers": {
"name": "Name"
},
"never_scanned": "Nie gescannt"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Benutzer hinzufügen", "caption": "Benutzer hinzufügen",
@ -1938,7 +1995,7 @@
"name": "Name", "name": "Name",
"new_zone": "Neue Zone", "new_zone": "Neue Zone",
"passive": "Passiv", "passive": "Passiv",
"passive_note": "Passive Zonen sind im Frontend versteckt und werden nicht als Ort für Device Tracker verwendet. Dies ist nützlich, wenn Du sie nur für Automatisierungen verwenden möchtest.", "passive_note": "Passive Zonen sind im Frontend versteckt und werden nicht als Ort für Device Tracker verwendet. Dies ist nützlich, wenn du sie nur für Automatisierungen verwenden möchtest.",
"radius": "Radius", "radius": "Radius",
"required_error_msg": "Dieses Feld ist erforderlich", "required_error_msg": "Dieses Feld ist erforderlich",
"update": "Aktualisieren" "update": "Aktualisieren"
@ -1948,7 +2005,7 @@
"go_to_core_config": "Zur allgemeinen Konfiguration gehen?", "go_to_core_config": "Zur allgemeinen Konfiguration gehen?",
"home_zone_core_config": "Der Standort deiner Homezone kann auf der allgemeinen Konfigurationsseite bearbeitet werden. Der Radius der Homezone kann vom Frontend aus noch nicht bearbeitet werden. Möchtest du zur allgemeinen Konfiguration gehen?", "home_zone_core_config": "Der Standort deiner Homezone kann auf der allgemeinen Konfigurationsseite bearbeitet werden. Der Radius der Homezone kann vom Frontend aus noch nicht bearbeitet werden. Möchtest du zur allgemeinen Konfiguration gehen?",
"introduction": "Mit Zonen kannst du bestimmte Regionen auf der Erde angeben. Befindet sich eine Person in einer Zone, übernimmt der Zustand den Namen aus der Zone. Zonen können auch als Auslöser oder Bedingung in Automatisierungs-Setups verwendet werden.", "introduction": "Mit Zonen kannst du bestimmte Regionen auf der Erde angeben. Befindet sich eine Person in einer Zone, übernimmt der Zustand den Namen aus der Zone. Zonen können auch als Auslöser oder Bedingung in Automatisierungs-Setups verwendet werden.",
"no_zones_created_yet": "Es sieht so aus, als hättest Du noch keine Zonen erstellt." "no_zones_created_yet": "Es sieht so aus, als hättest du noch keine Zonen erstellt."
}, },
"zwave": { "zwave": {
"button": "Konfigurieren", "button": "Konfigurieren",
@ -2099,6 +2156,7 @@
"description": "Vorlagen werden durch die Jinja2-Template-Engine mit einigen für Home Assistant spezifischen Erweiterungen gerendert.", "description": "Vorlagen werden durch die Jinja2-Template-Engine mit einigen für Home Assistant spezifischen Erweiterungen gerendert.",
"editor": "Vorlageneditor", "editor": "Vorlageneditor",
"jinja_documentation": "Jinja2 Template Dokumentation", "jinja_documentation": "Jinja2 Template Dokumentation",
"reset": "Zurücksetzen auf Demo-Vorlage",
"template_extensions": "Home Assistant-Vorlagenerweiterungen", "template_extensions": "Home Assistant-Vorlagenerweiterungen",
"title": "Vorlage", "title": "Vorlage",
"unknown_error_template": "Unbekannter Fehler beim Rendern der Vorlage" "unknown_error_template": "Unbekannter Fehler beim Rendern der Vorlage"
@ -2180,6 +2238,9 @@
"description": "Mit der Schaltflächen-Karte kannst du Schaltflächen hinzufügen, um Aufgaben auszuführen.", "description": "Mit der Schaltflächen-Karte kannst du Schaltflächen hinzufügen, um Aufgaben auszuführen.",
"name": "Schaltfläche" "name": "Schaltfläche"
}, },
"calendar": {
"name": "Kalender"
},
"conditional": { "conditional": {
"card": "Karte", "card": "Karte",
"change_type": "Typ ändern", "change_type": "Typ ändern",
@ -2206,7 +2267,7 @@
"name": "Entität Filter" "name": "Entität Filter"
}, },
"entity": { "entity": {
"description": "Mit der Entitätskarte erhältst Du einen schnellen Überblick über den Status Ihrer Entität.", "description": "Mit der Entitätskarte erhältst du einen schnellen Überblick über den Status Ihrer Entität.",
"name": "Entität" "name": "Entität"
}, },
"gauge": { "gauge": {
@ -2233,7 +2294,7 @@
"icon_height": "Symbol Höhe", "icon_height": "Symbol Höhe",
"image": "Bildpfad", "image": "Bildpfad",
"manual": "Manuell", "manual": "Manuell",
"manual_description": "Möchtest du eine benutzerdefinierte Karte hinzufügen, oder den Yaml-Code von Hand bearbeiten?", "manual_description": "Möchtest du eine benutzerdefinierte Karte hinzufügen oder den YAML-Code von Hand bearbeiten?",
"maximum": "Maximum", "maximum": "Maximum",
"minimum": "Minimum", "minimum": "Minimum",
"name": "Name", "name": "Name",
@ -2416,8 +2477,8 @@
"para_sure": "Bist du dir sicher, dass du die Benutzeroberfläche selbst verwalten möchtest?", "para_sure": "Bist du dir sicher, dass du die Benutzeroberfläche selbst verwalten möchtest?",
"save": "Kontrolle übernehmen", "save": "Kontrolle übernehmen",
"yaml_config": "Um dir den Einstieg zu erleichtern, findest du hier die aktuelle Konfiguration dieses Dashboards:", "yaml_config": "Um dir den Einstieg zu erleichtern, findest du hier die aktuelle Konfiguration dieses Dashboards:",
"yaml_control": "Um die Kontrolle im YAML-Modus zu übernehmen, erstelle eine YAML-Datei mit dem Namen, den Du in Deiner Konfiguration für dieses Dashboard angegeben hast, oder mit der Standardeinstellung 'ui-lovelace.yaml'.", "yaml_control": "Um die Kontrolle im YAML-Modus zu übernehmen, erstelle eine YAML-Datei mit dem Namen, den du in Deiner Konfiguration für dieses Dashboard angegeben hast, oder mit der Standardeinstellung 'ui-lovelace.yaml'.",
"yaml_mode": "Du verwendest den YAML-Modus für dieses Dashboard. Dies bedeutet, dass Du Deine Lovelace-Konfiguration nicht über die Benutzeroberfläche ändern kannst. Wenn Du dieses Dashboard über die Benutzeroberfläche verwalten möchtest, entferne \"mode: yaml\" aus Deiner Lovelace-Konfiguration in \"configuration.yaml\"." "yaml_mode": "Du verwendest den YAML-Modus für dieses Dashboard. Dies bedeutet, dass Du Deine Lovelace-Konfiguration nicht über die Benutzeroberfläche ändern kannst. Wenn du dieses Dashboard über die Benutzeroberfläche verwalten möchtest, entferne \"mode: yaml\" aus Deiner Lovelace-Konfiguration in \"configuration.yaml\"."
}, },
"suggest_card": { "suggest_card": {
"add": "Zu Lovelace hinzufügen", "add": "Zu Lovelace hinzufügen",
@ -2442,8 +2503,8 @@
}, },
"reload_lovelace": "Benutzeroberfläche neu laden", "reload_lovelace": "Benutzeroberfläche neu laden",
"reload_resources": { "reload_resources": {
"refresh_body": "Du musst die Seite aktualisieren, um das Neuladen abzuschließen. Möchtest Du sie jetzt aktualisieren?", "refresh_body": "Du musst die Seite aktualisieren, um das Neuladen abzuschließen. Möchtest du sie jetzt aktualisieren?",
"refresh_header": "Möchtest Du aktualisieren?" "refresh_header": "Möchtest du aktualisieren?"
}, },
"unused_entities": { "unused_entities": {
"available_entities": "Dies sind die Entitäten, die du zur Verfügung hast, die aber noch nicht in deiner Lovelace-Benutzeroberfläche enthalten sind.", "available_entities": "Dies sind die Entitäten, die du zur Verfügung hast, die aber noch nicht in deiner Lovelace-Benutzeroberfläche enthalten sind.",
@ -2627,6 +2688,7 @@
"intro": "Hallo {name}, willkommen bei Home Assistant. Wie möchten Sie Ihre Haus benennen?", "intro": "Hallo {name}, willkommen bei Home Assistant. Wie möchten Sie Ihre Haus benennen?",
"intro_location": "Wir würden gerne wissen, wo Sie wohnen. Diese Daten helfen bei der Anzeige von Informationen und der Einrichtung von Sonnenstands-basierten Automatisierungen. Diese Daten werden niemals außerhalb Ihres Netzwerks weitergegeben.", "intro_location": "Wir würden gerne wissen, wo Sie wohnen. Diese Daten helfen bei der Anzeige von Informationen und der Einrichtung von Sonnenstands-basierten Automatisierungen. Diese Daten werden niemals außerhalb Ihres Netzwerks weitergegeben.",
"intro_location_detect": "Wir können helfen, diese Informationen auszufüllen, indem wir eine einmalige Anfrage an einen externen Dienstleister richten.", "intro_location_detect": "Wir können helfen, diese Informationen auszufüllen, indem wir eine einmalige Anfrage an einen externen Dienstleister richten.",
"location_name": "Name deiner Home Assistant Installation",
"location_name_default": "Home" "location_name_default": "Home"
}, },
"integration": { "integration": {
@ -2738,6 +2800,7 @@
"themes": { "themes": {
"accent_color": "Akzentfarbe", "accent_color": "Akzentfarbe",
"dark_mode": { "dark_mode": {
"auto": "Automatisch",
"dark": "Dunkel", "dark": "Dunkel",
"light": "Hell" "light": "Hell"
}, },

View File

@ -419,9 +419,16 @@
"unlock": "Ξεκλείδωμα" "unlock": "Ξεκλείδωμα"
}, },
"media_player": { "media_player": {
"browse_media": "Αναζήτηση πολυμέσων",
"media_next_track": "Επόμενο",
"media_play": "Αναπαραγωγή",
"media_play_pause": "Αναπαραγωγή/παύση",
"media_previous_track": "Προηγούμενο",
"sound_mode": "Λειτουργία ήχου", "sound_mode": "Λειτουργία ήχου",
"source": "Πηγή", "source": "Πηγή",
"text_to_speak": "Κείμενο προς εκφώνηση" "text_to_speak": "Κείμενο προς εκφώνηση",
"turn_off": "Απενεργοποίηση",
"turn_on": "Ενεργοποίηση"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Απόρριψη" "dismiss": "Απόρριψη"
@ -502,8 +509,11 @@
"error_required": "Υποχρεωτικό", "error_required": "Υποχρεωτικό",
"loading": "Φόρτωση", "loading": "Φόρτωση",
"menu": "Μενού", "menu": "Μενού",
"next": "Επόμενο",
"no": "Όχι", "no": "Όχι",
"overflow_menu": "Μενού υπερχείλισης", "overflow_menu": "Μενού υπερχείλισης",
"previous": "Προηγούμενο",
"refresh": "Ανανέωση",
"save": "Αποθήκευση", "save": "Αποθήκευση",
"successfully_deleted": "Η διαγραφή ολοκληρώθηκε με επιτυχία", "successfully_deleted": "Η διαγραφή ολοκληρώθηκε με επιτυχία",
"successfully_saved": "Αποθηκεύτηκε με επιτυχία", "successfully_saved": "Αποθηκεύτηκε με επιτυχία",
@ -551,6 +561,21 @@
"loading_history": "Φόρτωση ιστορικού κατάστασης …", "loading_history": "Φόρτωση ιστορικού κατάστασης …",
"no_history_found": "Δεν έχει βρεθεί ιστορικό κατάστασης." "no_history_found": "Δεν έχει βρεθεί ιστορικό κατάστασης."
}, },
"media-browser": {
"choose-source": "Επιλέξτε Πηγή",
"content-type": {
"album": "Άλμπουμ",
"artist": "Καλλιτέχνης",
"library": "Βιβλιοθήκη",
"server": "Διακομιστής"
},
"media-player-browser": "Πρόγραμμα περιήγησης πολυμέσων",
"no_items": "Χωρίς στοιχεία",
"pick": "Επιλέξετε",
"pick-media": "Επιλογή μέσων",
"play": "Αναπαραγωγή",
"play-media": "Αναπαραγωγή πολυμέσων"
},
"relative_time": { "relative_time": {
"duration": { "duration": {
"day": "{count} {count, plural,\n one {μέρα}\n other {μέρες}\n}", "day": "{count} {count, plural,\n one {μέρα}\n other {μέρες}\n}",
@ -560,6 +585,7 @@
"week": "{count} {count, plural,\n one {εβδομάδα}\n other {εβδομάδες}\n}" "week": "{count} {count, plural,\n one {εβδομάδα}\n other {εβδομάδες}\n}"
}, },
"future": "Σε {time}", "future": "Σε {time}",
"just_now": "Μόλις τώρα",
"never": "Ποτέ", "never": "Ποτέ",
"past": "{time} πριν" "past": "{time} πριν"
}, },
@ -976,6 +1002,9 @@
"sunrise": "Ανατολή ηλίου", "sunrise": "Ανατολή ηλίου",
"sunset": "Δύση ηλίου" "sunset": "Δύση ηλίου"
}, },
"tag": {
"label": "Ετικέτα"
},
"template": { "template": {
"label": "Πρότυπο", "label": "Πρότυπο",
"value_template": "Τιμή πρότυπου" "value_template": "Τιμή πρότυπου"
@ -1252,6 +1281,7 @@
"caption": "Συσκευές", "caption": "Συσκευές",
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη συσκευή;", "confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτή τη συσκευή;",
"confirm_rename_entity_ids": "Θέλετε επίσης να μετονομάσετε τα αναγνωριστικά οντότητας των οντοτήτων σας;", "confirm_rename_entity_ids": "Θέλετε επίσης να μετονομάσετε τα αναγνωριστικά οντότητας των οντοτήτων σας;",
"confirm_rename_entity_ids_warning": "Αυτό δεν θα αλλάξει καμία ρύθμιση παραμέτρων (όπως αυτοματισμούς, σενάρια, σκηνές, Lovelace) που χρησιμοποιεί αυτήν τη στιγμή αυτές τις οντότητες, θα πρέπει να τις ενημερώσετε μόνοι σας.",
"data_table": { "data_table": {
"area": "Περιοχή", "area": "Περιοχή",
"battery": "Μπαταρία", "battery": "Μπαταρία",
@ -1370,6 +1400,7 @@
"caption": "Ενσωματώσεις", "caption": "Ενσωματώσεις",
"config_entry": { "config_entry": {
"area": "Στην {area}", "area": "Στην {area}",
"delete": "Διαγραφή",
"delete_button": "Διαγραφή {integration}", "delete_button": "Διαγραφή {integration}",
"delete_confirm": "Είστε σίγουρος ότι θέλετε να διαγραφεί αυτή η ενοποίηση;", "delete_confirm": "Είστε σίγουρος ότι θέλετε να διαγραφεί αυτή η ενοποίηση;",
"device_unavailable": "συσκευή μη διαθέσιμη", "device_unavailable": "συσκευή μη διαθέσιμη",
@ -1381,8 +1412,11 @@
"no_area": "Καμία περιοχή", "no_area": "Καμία περιοχή",
"no_device": "Οντότητες χωρίς συσκευές", "no_device": "Οντότητες χωρίς συσκευές",
"no_devices": "Αυτή η ενοποίηση δεν έχει συσκευές.", "no_devices": "Αυτή η ενοποίηση δεν έχει συσκευές.",
"options": "Επιλογές",
"rename": "Μετονομασία",
"restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την κατάργηση αυτής της ενοποίησης", "restart_confirm": "Επανεκκινήστε το Home Assistant για να ολοκληρώσετε την κατάργηση αυτής της ενοποίησης",
"settings_button": "Επεξεργασία ρυθμίσεων για {integration}", "settings_button": "Επεξεργασία ρυθμίσεων για {integration}",
"system_options": "Επιλογές συστήματος",
"system_options_button": "Επιλογές συστήματος για {integration}", "system_options_button": "Επιλογές συστήματος για {integration}",
"unnamed_entry": "Ανώνυμη καταχώριση" "unnamed_entry": "Ανώνυμη καταχώριση"
}, },
@ -1420,8 +1454,11 @@
"integration_not_found": "Η ενσωμάτωση δε βρέθηκε.", "integration_not_found": "Η ενσωμάτωση δε βρέθηκε.",
"new": "Ρυθμίστε νέα ενοποίηση", "new": "Ρυθμίστε νέα ενοποίηση",
"none": "Δεν υπάρχει διαμόρφωση ακόμα", "none": "Δεν υπάρχει διαμόρφωση ακόμα",
"none_found": "Δεν βρέθηκαν ενσωματώσεις",
"none_found_detail": "Προσαρμόστε τα κριτήρια αναζήτησης.",
"note_about_integrations": "Δεν μπορούν όλες οι ενσωματώσεις να διαμορφωθούν από το UI ακόμη.", "note_about_integrations": "Δεν μπορούν όλες οι ενσωματώσεις να διαμορφωθούν από το UI ακόμη.",
"note_about_website_reference": "Περισσότερα είναι διαθέσιμα στο", "note_about_website_reference": "Περισσότερα είναι διαθέσιμα στο",
"rename_input_label": "Όνομα καταχώρησης",
"search": "Αναζήτηση ενσωματώσεων" "search": "Αναζήτηση ενσωματώσεων"
}, },
"introduction": "Εδώ είναι δυνατή η διαμόρφωση του Home Assistant και των εξαρτημάτων. Δεν είναι δυνατή η διαμόρφωση όλων από την διεπαφή χρήστη (UI) αλλά εργαζόμαστε πάνω σε αυτό.", "introduction": "Εδώ είναι δυνατή η διαμόρφωση του Home Assistant και των εξαρτημάτων. Δεν είναι δυνατή η διαμόρφωση όλων από την διεπαφή χρήστη (UI) αλλά εργαζόμαστε πάνω σε αυτό.",
@ -1443,8 +1480,10 @@
"cant_edit_default": "Δεν είναι δυνατή η επεξεργασία του τυπικού πίνακα ελέγχου Lovelace από τη διεπαφή χρήστη. Μπορείτε να το αποκρύψετε ορίζοντας έναν άλλο πίνακα ελέγχου ως προεπιλογή.", "cant_edit_default": "Δεν είναι δυνατή η επεξεργασία του τυπικού πίνακα ελέγχου Lovelace από τη διεπαφή χρήστη. Μπορείτε να το αποκρύψετε ορίζοντας έναν άλλο πίνακα ελέγχου ως προεπιλογή.",
"cant_edit_yaml": "Δεν είναι δυνατή η επεξεργασία πινάκων εργαλείων που ορίζονται στο YAML από το περιβάλλον εργασίας χρήστη. Αλλάξτε τα στο configuration.yaml.", "cant_edit_yaml": "Δεν είναι δυνατή η επεξεργασία πινάκων εργαλείων που ορίζονται στο YAML από το περιβάλλον εργασίας χρήστη. Αλλάξτε τα στο configuration.yaml.",
"caption": "Επισκόπηση", "caption": "Επισκόπηση",
"confirm_delete": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον πίνακα ελέγχου;",
"default_dashboard": "Αυτή είναι η προεπιλεγμένη επισκόπηση", "default_dashboard": "Αυτή είναι η προεπιλεγμένη επισκόπηση",
"detail": { "detail": {
"dismiss": "Κλείστε",
"icon": "Εικονίδιο", "icon": "Εικονίδιο",
"title": "Τίτλος", "title": "Τίτλος",
"title_required": "Απαιτείται τίτλος.", "title_required": "Απαιτείται τίτλος.",
@ -1452,7 +1491,8 @@
}, },
"picker": { "picker": {
"headers": { "headers": {
"default": "Προεπιλογή" "default": "Προεπιλογή",
"filename": νομα_αρχείου"
}, },
"open": "Άνοιγμα" "open": "Άνοιγμα"
} }
@ -1490,6 +1530,36 @@
"stage": "Στάδιο", "stage": "Στάδιο",
"zwave_info": "Πληροφορίες Z-Wave" "zwave_info": "Πληροφορίες Z-Wave"
}, },
"navigation": {
"network": "Δίκτυο",
"nodes": "Κόμβοι",
"select_instance": "Επιλέξτε στιγμιότυπο "
},
"network_status": {
"details": {
"driverallnodesqueried": "Όλοι οι κόμβοι έχουν ερωτηθεί.",
"driverallnodesqueriedsomedead": "Όλοι οι κόμβοι έχουν ερωτηθεί. Μερικοί κόμβοι βρέθηκαν να μην αποκρίνονται.",
"driverawakenodesqueries": "Όλοι οι ενεργοποιημένοι κόμβοι έχουν ερωτηθεί. ",
"driverfailed": "Αποτυχία σύνδεσης με τον ελεγκτή Z-Wave",
"driverready": "Προετοιμασία του ελεγκτή Z-Wave",
"driverremoved": "Το πρόγραμμα οδήγησης έχει αφαιρεθεί",
"driverreset": "Έγινε επαναφορά του προγράμματος οδήγησης",
"offline": "OZWDaemon εκτός σύνδεσης",
"ready": "Έτοιμος για σύνδεση",
"started": "Συνδεδεμένος με MQTT",
"starting": "Σύνδεση με MQTT",
"stopped": "Το OpenZWave σταμάτησε"
},
"offline": "Εκτός σύνδεσης",
"online": "Σε σύνδεση",
"starting": "Εκκίνηση",
"unknown": "Άγνωστο"
},
"network": {
"header": "Διαχείριση δικτύου",
"introduction": "Διαχείριση λειτουργιών δικτύου.",
"node_count": "{count} κόμβοι"
},
"node_query_stages": { "node_query_stages": {
"complete": "Η διαδικασία της συνέντευξης ολοκληρώθηκε", "complete": "Η διαδικασία της συνέντευξης ολοκληρώθηκε",
"configuration": "Λήψη τιμών διαμόρφωσης από τον κόμβο", "configuration": "Λήψη τιμών διαμόρφωσης από τον κόμβο",
@ -1511,6 +1581,14 @@
"step": "Βήμα", "step": "Βήμα",
"title": "Ανανέωση πληροφοριών κόμβου", "title": "Ανανέωση πληροφοριών κόμβου",
"wakeup_header": "Οδηγίες εκκίνησης απο" "wakeup_header": "Οδηγίες εκκίνησης απο"
},
"select_instance": {
"header": "Επιλέξτε ένα στιγμιότυπο OpenZWave",
"introduction": "Έχετε περισσότερα από ένα στιγμιότυπα OpenZWave σε ενέργεια. Ποιό στιγμιότυπο θέλετε να διαχειριστείτε;"
},
"services": {
"add_node": "Προσθήκη κόμβου",
"remove_node": "Κατάργηση κόμβου"
} }
}, },
"person": { "person": {
@ -1586,7 +1664,7 @@
}, },
"script": { "script": {
"caption": "Δέσμη ενεργειών", "caption": "Δέσμη ενεργειών",
"description": "Δημιουργήσετε και να επεξεργαστείτε δέσμες ενεργειών", "description": "Δημιουργήσετε και επεξεργαστείτε δέσμες ενεργειών",
"editor": { "editor": {
"alias": "Όνομα", "alias": "Όνομα",
"default_name": "Νέα δέσμη ενεργειών", "default_name": "Νέα δέσμη ενεργειών",
@ -1665,6 +1743,17 @@
} }
} }
}, },
"tags": {
"detail": {
"create": "Δημιουργία",
"create_and_write": "Δημιουργία και εγγραφή",
"delete": "Διαγραφή",
"description": "Περιγραφή",
"name": "Όνομα",
"new_tag": "Νέα ετικέτα",
"update": "Ενημέρωση"
}
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Προσθήκη χρήστη", "caption": "Προσθήκη χρήστη",
@ -1840,6 +1929,7 @@
"exclude_entity": "Εξαίρεση αυτής της οντότητας από τον Home Assistant", "exclude_entity": "Εξαίρεση αυτής της οντότητας από τον Home Assistant",
"group": "Ομάδα", "group": "Ομάδα",
"header": "Διαχείριση κόμβων Z-Wave", "header": "Διαχείριση κόμβων Z-Wave",
"introduction": "Εκτελέστε εντολές Z-Wave που επηρεάζουν έναν μόνο κόμβο. Επιλέξτε έναν κόμβο για να δείτε μια λίστα με τις διαθέσιμες εντολές.",
"max_associations": "Μέγιστες ενώσεις:", "max_associations": "Μέγιστες ενώσεις:",
"node_group_associations": "Κόμβοι συσχετίσεων ομάδων", "node_group_associations": "Κόμβοι συσχετίσεων ομάδων",
"node_protection": "Προστασία κόμβου", "node_protection": "Προστασία κόμβου",
@ -1944,6 +2034,7 @@
"description": "Τα πρότυπα μετατρέπονται χρησιμοποιώντας τη μηχανή πρότυπου Jinja2 με ορισμένες εξειδικευμένες επεκτάσεις του Home Assistant.", "description": "Τα πρότυπα μετατρέπονται χρησιμοποιώντας τη μηχανή πρότυπου Jinja2 με ορισμένες εξειδικευμένες επεκτάσεις του Home Assistant.",
"editor": "Πρόγραμμα επεξεργασίας προτύπων", "editor": "Πρόγραμμα επεξεργασίας προτύπων",
"jinja_documentation": "Έγγραφα πρότυπου Jinja2", "jinja_documentation": "Έγγραφα πρότυπου Jinja2",
"reset": "Επαναφορά στο πρότυπο επίδειξης",
"template_extensions": "Επεκτάσεις προτύπου Home Assistant", "template_extensions": "Επεκτάσεις προτύπου Home Assistant",
"title": "Πρότυπα", "title": "Πρότυπα",
"unknown_error_template": "Άγνωστο σφάλμα ερμηνείας προτύπου" "unknown_error_template": "Άγνωστο σφάλμα ερμηνείας προτύπου"
@ -2013,6 +2104,10 @@
"available_states": "Διαθέσιμες λειτουργίες", "available_states": "Διαθέσιμες λειτουργίες",
"name": "Πίνακας συναγερμών" "name": "Πίνακας συναγερμών"
}, },
"calendar": {
"description": "Η κάρτα \"Ημερολόγιο\" εμφανίζει ένα ημερολόγιο που περιλαμβάνει προβολές ημέρας, εβδομάδας και λίστας",
"name": "Ημερολόγιο"
},
"conditional": { "conditional": {
"card": "Κάρτα", "card": "Κάρτα",
"conditions": "Συνθήκες", "conditions": "Συνθήκες",
@ -2264,6 +2359,7 @@
"warning": { "warning": {
"entity_non_numeric": "Η οντότητα δεν είναι αριθμητική: {entity}", "entity_non_numeric": "Η οντότητα δεν είναι αριθμητική: {entity}",
"entity_not_found": "Η οντότητα δεν είναι διαθέσιμη: {entity}", "entity_not_found": "Η οντότητα δεν είναι διαθέσιμη: {entity}",
"entity_unavailable": "{entity} δεν είναι διαθέσιμο προς το παρόν",
"starting": "Το Home Assistant ξεκινά, ενδέχεται να μην είναι ακόμη διαθέσιμα όλα" "starting": "Το Home Assistant ξεκινά, ενδέχεται να μην είναι ακόμη διαθέσιμα όλα"
} }
}, },
@ -2424,6 +2520,7 @@
"intro": "Γεια σου {name}, καλώς ήρθες στο Home Assistant. Πώς θα ήθελες να αναφέρεσαι στο σπίτι σου;", "intro": "Γεια σου {name}, καλώς ήρθες στο Home Assistant. Πώς θα ήθελες να αναφέρεσαι στο σπίτι σου;",
"intro_location": "Θα θέλαμε να μάθουμε πού ζεις. Αυτές οι πληροφορίες θα βοηθήσουν στην προβολή πληροφοριών και στη ρύθμιση αυτοματισμών που βασίζονται στη θέση ηλίου. Αυτά τα δεδομένα δεν μοιράζονται ποτέ εκτός του δικτύου σας.", "intro_location": "Θα θέλαμε να μάθουμε πού ζεις. Αυτές οι πληροφορίες θα βοηθήσουν στην προβολή πληροφοριών και στη ρύθμιση αυτοματισμών που βασίζονται στη θέση ηλίου. Αυτά τα δεδομένα δεν μοιράζονται ποτέ εκτός του δικτύου σας.",
"intro_location_detect": "Μπορούμε να σε βοηθήσουμε να συμπληρώσεις αυτές τις πληροφορίες, κάνοντας μια εφάπαξ αίτηση σε μια εξωτερική υπηρεσία.", "intro_location_detect": "Μπορούμε να σε βοηθήσουμε να συμπληρώσεις αυτές τις πληροφορίες, κάνοντας μια εφάπαξ αίτηση σε μια εξωτερική υπηρεσία.",
"location_name": "Όνομα της εγκατάστασης σας του Home Assistant",
"location_name_default": "Σπίτι" "location_name_default": "Σπίτι"
}, },
"integration": { "integration": {

View File

@ -1525,6 +1525,9 @@
"no_device": "Entities without devices", "no_device": "Entities without devices",
"no_devices": "This integration has no devices.", "no_devices": "This integration has no devices.",
"options": "Options", "options": "Options",
"reload": "Reload",
"reload_confirm": "The integration was reloaded",
"reload_restart_confirm": "Restart Home Assistant to finish reloading this integration",
"rename": "Rename", "rename": "Rename",
"restart_confirm": "Restart Home Assistant to finish removing this integration", "restart_confirm": "Restart Home Assistant to finish removing this integration",
"settings_button": "Edit settings for {integration}", "settings_button": "Edit settings for {integration}",
@ -1890,19 +1893,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Reload automations", "automation": "Reload automations",
"command_line": "Reload command line entities",
"core": "Reload location & customizations", "core": "Reload location & customizations",
"filesize": "Reload file size entities",
"filter": "Reload filter entities",
"generic": "Reload generic IP camera entities",
"generic_thermostat": "Reload generic thermostat entities",
"group": "Reload groups", "group": "Reload groups",
"heading": "YAML configuration reloading", "heading": "YAML configuration reloading",
"history_stats": "Reload history stats entities",
"homekit": "Reload HomeKit",
"input_boolean": "Reload input booleans", "input_boolean": "Reload input booleans",
"input_datetime": "Reload input date times", "input_datetime": "Reload input date times",
"input_number": "Reload input numbers", "input_number": "Reload input numbers",
"input_select": "Reload input selects", "input_select": "Reload input selects",
"input_text": "Reload input texts", "input_text": "Reload input texts",
"introduction": "Some parts of Home Assistant can reload without requiring a restart. Hitting reload will unload their current YAML configuration and load the new one.", "introduction": "Some parts of Home Assistant can reload without requiring a restart. Hitting reload will unload their current YAML configuration and load the new one.",
"min_max": "Reload min/max entities",
"person": "Reload persons", "person": "Reload persons",
"ping": "Reload ping binary sensor entities",
"rest": "Reload rest entities",
"scene": "Reload scenes", "scene": "Reload scenes",
"script": "Reload scripts", "script": "Reload scripts",
"statistics": "Reload statistics entities",
"template": "Reload template entities", "template": "Reload template entities",
"trend": "Reload trend entities",
"universal": "Reload universal media player entities",
"zone": "Reload zones" "zone": "Reload zones"
}, },
"server_management": { "server_management": {
@ -1954,6 +1970,8 @@
"create": "Create", "create": "Create",
"name": "Name", "name": "Name",
"password": "Password", "password": "Password",
"password_confirm": "Confirm Password",
"password_not_match": "Passwords don't match",
"username": "Username" "username": "Username"
}, },
"caption": "Users", "caption": "Users",
@ -1970,7 +1988,9 @@
"group": "Group", "group": "Group",
"id": "ID", "id": "ID",
"name": "Name", "name": "Name",
"new_password": "New Password",
"owner": "Owner", "owner": "Owner",
"password_changed": "The password is changed!",
"system_generated": "System generated", "system_generated": "System generated",
"system_generated_users_not_editable": "Unable to update system generated users.", "system_generated_users_not_editable": "Unable to update system generated users.",
"system_generated_users_not_removable": "Unable to remove system generated users.", "system_generated_users_not_removable": "Unable to remove system generated users.",
@ -2420,6 +2440,7 @@
"show_name": "Show Name?", "show_name": "Show Name?",
"show_state": "Show State?", "show_state": "Show State?",
"state": "State", "state": "State",
"state_color": "Color icons based on state?",
"tap_action": "Tap Action", "tap_action": "Tap Action",
"theme": "Theme", "theme": "Theme",
"title": "Title", "title": "Title",

View File

@ -13,15 +13,9 @@
}, },
"panel": { "panel": {
"calendar": "Calendario", "calendar": "Calendario",
"config": "",
"developer_tools": "Herramientas para desarrolladores", "developer_tools": "Herramientas para desarrolladores",
"history": "",
"logbook": "",
"mailbox": "",
"map": "",
"profile": "Perfil", "profile": "Perfil",
"shopping_list": "Lista de compras", "shopping_list": "Lista de compras"
"states": ""
}, },
"state_attributes": { "state_attributes": {
"climate": { "climate": {
@ -1000,7 +994,6 @@
"start": "Inicio" "start": "Inicio"
}, },
"mqtt": { "mqtt": {
"label": "",
"payload": "Payload (opcional)", "payload": "Payload (opcional)",
"topic": "Topic" "topic": "Topic"
}, },
@ -1616,7 +1609,6 @@
"start_listening": "Comenzar a escuchar", "start_listening": "Comenzar a escuchar",
"stop_listening": "Deja de escuchar", "stop_listening": "Deja de escuchar",
"subscribe_to": "Tema para suscribirse", "subscribe_to": "Tema para suscribirse",
"title": "",
"topic": "tema" "topic": "tema"
}, },
"person": { "person": {
@ -1947,7 +1939,6 @@
}, },
"zwave": { "zwave": {
"button": "Configurar", "button": "Configurar",
"caption": "",
"common": { "common": {
"index": "Índice", "index": "Índice",
"instance": "Instancia", "instance": "Instancia",

View File

@ -419,9 +419,16 @@
"unlock": "Desbloquear" "unlock": "Desbloquear"
}, },
"media_player": { "media_player": {
"browse_media": "Explorar medios",
"media_next_track": "Siguiente",
"media_play": "Reproducir",
"media_play_pause": "Reproducir/pausa",
"media_previous_track": "Anterior",
"sound_mode": "Modo de sonido", "sound_mode": "Modo de sonido",
"source": "Fuente", "source": "Fuente",
"text_to_speak": "Texto para hablar" "text_to_speak": "Texto para hablar",
"turn_off": "Apagar",
"turn_on": "Encender"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Descartar" "dismiss": "Descartar"
@ -554,6 +561,22 @@
"loading_history": "Cargando historial de estado...", "loading_history": "Cargando historial de estado...",
"no_history_found": "No se encontró historial de estado." "no_history_found": "No se encontró historial de estado."
}, },
"media-browser": {
"choose-source": "Elige la fuente",
"content-type": {
"album": "Álbum",
"artist": "Artista",
"library": "Biblioteca",
"playlist": "Lista de reproducción",
"server": "Servidor"
},
"media-player-browser": "Navegador del Reproductor Multimedia",
"no_items": "No hay elementos",
"pick": "Elegir",
"pick-media": "Elegir medio",
"play": "Reproducir",
"play-media": "Reproducir medio"
},
"picture-upload": { "picture-upload": {
"label": "Imagen", "label": "Imagen",
"unsupported_format": "Formato no soportado, por favor, selecciona una imagen JPEG, PNG o GIF." "unsupported_format": "Formato no soportado, por favor, selecciona una imagen JPEG, PNG o GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {semana}\nother {semanas}\n}" "week": "{count} {count, plural,\none {semana}\nother {semanas}\n}"
}, },
"future": "En {time}", "future": "En {time}",
"just_now": "Ahora mismo",
"never": "Nunca", "never": "Nunca",
"past": "Hace {time}" "past": "Hace {time}"
}, },
@ -1318,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Todavía no se ha añadido ningún {name} usando este dispositivo. Puedes añadir uno pulsando en el botón + de arriba.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Cuando algo se activa...." "caption": "Cuando algo se activa...."
@ -1337,7 +1362,7 @@
"caption": "Dispositivos", "caption": "Dispositivos",
"confirm_delete": "¿Estás seguro de que quieres eliminar este dispositivo?", "confirm_delete": "¿Estás seguro de que quieres eliminar este dispositivo?",
"confirm_rename_entity_ids": "¿También quieres cambiar el nombre de los identificadores de entidad de tus entidades?", "confirm_rename_entity_ids": "¿También quieres cambiar el nombre de los identificadores de entidad de tus entidades?",
"confirm_rename_entity_ids_warning": "Esto no cambiará ninguna configuración (como automatizaciones, scripts, escenas, Lovelace) que estén utilizando actualmente estas entidades, tendrá que actualizarlas usted mismo.", "confirm_rename_entity_ids_warning": "Esto no cambiará ninguna configuración (como automatizaciones, scripts, escenas, Lovelace) que estén utilizando actualmente estas entidades, tendrás que actualizarlas tú mismo.",
"data_table": { "data_table": {
"area": "Área", "area": "Área",
"battery": "Batería", "battery": "Batería",
@ -1500,6 +1525,9 @@
"no_device": "Entidades sin dispositivos", "no_device": "Entidades sin dispositivos",
"no_devices": "Esta integración no tiene dispositivos.", "no_devices": "Esta integración no tiene dispositivos.",
"options": "Opciones", "options": "Opciones",
"reload": "Recargar",
"reload_confirm": "La integración se ha recargado",
"reload_restart_confirm": "Reinicia Home Assistant para terminar de recargar esta integración",
"rename": "Renombrar", "rename": "Renombrar",
"restart_confirm": "Reinicia Home Assistant para terminar de eliminar esta integración.", "restart_confirm": "Reinicia Home Assistant para terminar de eliminar esta integración.",
"settings_button": "Editar configuración para {integration}", "settings_button": "Editar configuración para {integration}",
@ -1658,7 +1686,11 @@
"topic": "tema" "topic": "tema"
}, },
"ozw": { "ozw": {
"button": "Configurar",
"common": { "common": {
"controller": "Controlador",
"instance": "Instancia",
"network": "Red",
"node_id": "ID del Nodo", "node_id": "ID del Nodo",
"ozw_instance": "Instancia OpenZWave", "ozw_instance": "Instancia OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "Etapa", "stage": "Etapa",
"zwave_info": "Información Z-Wave" "zwave_info": "Información Z-Wave"
}, },
"navigation": {
"network": "Red",
"nodes": "Nodos",
"select_instance": "Seleccionar Instancia"
},
"network_status": {
"details": {
"driverallnodesqueried": "Se han consultado todos los nodos.",
"driverallnodesqueriedsomedead": "Se han consultado todos los nodos. Se encontraron algunos nodos muertos",
"driverawakenodesqueries": "Se han consultado todos los nodos despiertos",
"driverfailed": "No se pudo conectar con el controlador Z-Wave",
"driverready": "Iniciando el controlador Z-Wave",
"driverremoved": "El controlador ha sido eliminado",
"driverreset": "El controlador se ha reiniciado",
"offline": "OZWDaemon desconectado",
"ready": "Listo para conectar",
"started": "Conectado a MQTT",
"starting": "Conectando con MQTT",
"stopped": "OpenZWave detenido"
},
"offline": "Desconectado",
"online": "En línea",
"starting": "Iniciando",
"unknown": "Desconocido"
},
"network": {
"header": "Administración de la Red",
"introduction": "Gestionar las funciones de toda la red.",
"node_count": "{count} nodos"
},
"node_query_stages": { "node_query_stages": {
"associations": "Refrescando grupos de asociaciones y miembros", "associations": "Refrescando grupos de asociaciones y miembros",
"cacheload": "Cargando información del archivo de caché de OpenZWave. Los nodos con batería permanecerán en esta etapa hasta que el nodo se active.", "cacheload": "Cargando información del archivo de caché de OpenZWave. Los nodos con batería permanecerán en esta etapa hasta que el nodo se active.",
@ -1698,6 +1760,14 @@
"title": "Refrescar Información del Nodo", "title": "Refrescar Información del Nodo",
"wakeup_header": "Instrucciones para despertar a", "wakeup_header": "Instrucciones para despertar a",
"wakeup_instructions_source": "Las instrucciones para despertarlo se obtienen de la base de datos de dispositivos de la comunidad OpenZWave." "wakeup_instructions_source": "Las instrucciones para despertarlo se obtienen de la base de datos de dispositivos de la comunidad OpenZWave."
},
"select_instance": {
"header": "Selecciona una instancia de OpenZWave",
"introduction": "Tienes más de una instancia de OpenZWave en ejecución. ¿Qué instancia te gustaría gestionar?"
},
"services": {
"add_node": "Añadir Nodo",
"remove_node": "Eliminar Nodo"
} }
}, },
"person": { "person": {
@ -1823,7 +1893,9 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Recargar automatizaciones", "automation": "Recargar automatizaciones",
"command_line": "Recargar entidades de línea de comandos",
"core": "Recargar ubicación y personalizaciones", "core": "Recargar ubicación y personalizaciones",
"filter": "Recargar entidades de filtro",
"group": "Recargar grupos", "group": "Recargar grupos",
"heading": "Recargando la configuración YAML", "heading": "Recargando la configuración YAML",
"input_boolean": "Recargar los campos booleanos", "input_boolean": "Recargar los campos booleanos",
@ -1833,8 +1905,12 @@
"input_text": "Recargar los campos de texto", "input_text": "Recargar los campos de texto",
"introduction": "Algunas partes de Home Assistant pueden recargarse sin necesidad de reiniciar. Al pulsar en recargar se descartará la configuración YAML actual y se cargará la nueva.", "introduction": "Algunas partes de Home Assistant pueden recargarse sin necesidad de reiniciar. Al pulsar en recargar se descartará la configuración YAML actual y se cargará la nueva.",
"person": "Recargar personas", "person": "Recargar personas",
"rest": "Recargar entidades rest",
"scene": "Recargar escenas", "scene": "Recargar escenas",
"script": "Recargar scripts", "script": "Recargar scripts",
"statistics": "Recargar entidades de estadísticas",
"template": "Recargar entidades de plantilla",
"universal": "Recargar entidades de reproductor multimedia universal",
"zone": "Recargar zonas" "zone": "Recargar zonas"
}, },
"server_management": { "server_management": {
@ -1876,6 +1952,7 @@
"last_scanned": "Última vez escaneada", "last_scanned": "Última vez escaneada",
"name": "Nombre" "name": "Nombre"
}, },
"never_scanned": "Nunca escaneado",
"no_tags": "Sin etiquetas", "no_tags": "Sin etiquetas",
"write": "Escribir" "write": "Escribir"
}, },
@ -2200,6 +2277,7 @@
"description": "Las plantillas se muestran utilizando el motor de plantillas Jinja2 con algunas extensiones específicas de Home Assistant.", "description": "Las plantillas se muestran utilizando el motor de plantillas Jinja2 con algunas extensiones específicas de Home Assistant.",
"editor": "Editor de plantillas", "editor": "Editor de plantillas",
"jinja_documentation": "Documentación de plantilla Jinja2", "jinja_documentation": "Documentación de plantilla Jinja2",
"reset": "Reiniciar a la plantilla de demostración",
"template_extensions": "Extensiones de plantilla de Home Assistant", "template_extensions": "Extensiones de plantilla de Home Assistant",
"title": "Plantillas", "title": "Plantillas",
"unknown_error_template": "Error desconocido al mostrar la plantilla" "unknown_error_template": "Error desconocido al mostrar la plantilla"
@ -2281,6 +2359,10 @@
"description": "La tarjeta Botón te permite agregar botones para realizar tareas.", "description": "La tarjeta Botón te permite agregar botones para realizar tareas.",
"name": "Botón" "name": "Botón"
}, },
"calendar": {
"description": "La tarjeta Calendario muestra un calendario que incluye vistas de día, semana y lista",
"name": "Calendario"
},
"conditional": { "conditional": {
"card": "Tarjeta", "card": "Tarjeta",
"change_type": "Cambiar el tipo", "change_type": "Cambiar el tipo",
@ -2735,6 +2817,7 @@
"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 a 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 a 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 haciendo una solicitud única a un servicio externo.", "intro_location_detect": "Podemos ayudarte a completar esta información haciendo una solicitud única a un servicio externo.",
"location_name": "Nombre de tu instalación de Home Assistant",
"location_name_default": "Casa" "location_name_default": "Casa"
}, },
"integration": { "integration": {

View File

@ -923,10 +923,6 @@
"at": "Kell", "at": "Kell",
"label": "Aeg" "label": "Aeg"
}, },
"webhook": {
"label": "",
"webhook_id": ""
},
"zone": { "zone": {
"enter": "Sisenemine", "enter": "Sisenemine",
"entity": "Asukohaga olem", "entity": "Asukohaga olem",

View File

@ -419,9 +419,16 @@
"unlock": "Déverrouiller" "unlock": "Déverrouiller"
}, },
"media_player": { "media_player": {
"browse_media": "Parcourir les médias",
"media_next_track": "Suivant",
"media_play": "Lecture",
"media_play_pause": "Lecture/pause",
"media_previous_track": "Précédent",
"sound_mode": "Mode sonore", "sound_mode": "Mode sonore",
"source": "Source", "source": "Source",
"text_to_speak": "Texte à lire" "text_to_speak": "Texte à lire",
"turn_off": "Éteindre",
"turn_on": "Allumer"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Ignorer" "dismiss": "Ignorer"
@ -554,6 +561,22 @@
"loading_history": "Chargement de l'historique des valeurs ...", "loading_history": "Chargement de l'historique des valeurs ...",
"no_history_found": "Aucun historique des valeurs trouvé." "no_history_found": "Aucun historique des valeurs trouvé."
}, },
"media-browser": {
"choose-source": "Choisissez la source",
"content-type": {
"album": "Album",
"artist": "Artiste",
"library": "Bibliothèque",
"playlist": "Liste de lecture",
"server": "Serveur"
},
"media-player-browser": "Lecteur multimédia",
"no_items": "Aucun éléments",
"pick": "Choisir",
"pick-media": "Choisissez un média",
"play": "Lecture",
"play-media": "Lire le média"
},
"picture-upload": { "picture-upload": {
"label": "Image", "label": "Image",
"unsupported_format": "Format non pris en charge, veuillez choisir une image JPEG, PNG ou GIF." "unsupported_format": "Format non pris en charge, veuillez choisir une image JPEG, PNG ou GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\nzero {semaine}\none {semaine}\nother {semaines}\n}" "week": "{count} {count, plural,\nzero {semaine}\none {semaine}\nother {semaines}\n}"
}, },
"future": "Dans {time}", "future": "Dans {time}",
"just_now": "Juste maintenant",
"never": "Jamais", "never": "Jamais",
"past": "Il y a {time}" "past": "Il y a {time}"
}, },
@ -1318,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Aucun {name} n'a encore été ajouté à l'aide de cet appareil. Vous pouvez en ajouter un en cliquant sur le bouton + ci-dessus.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Quand quelque chose est déclenché ..." "caption": "Quand quelque chose est déclenché ..."
@ -1394,7 +1419,7 @@
"filter": { "filter": {
"filter": "Filtre", "filter": "Filtre",
"show_disabled": "Afficher les entités désactivées", "show_disabled": "Afficher les entités désactivées",
"show_readonly": "Afficher les entités désactivées", "show_readonly": "Afficher les entités en lecture seule",
"show_unavailable": "Afficher les entités non disponibles" "show_unavailable": "Afficher les entités non disponibles"
}, },
"header": "Entités", "header": "Entités",
@ -1500,6 +1525,9 @@
"no_device": "Entités sans appareils", "no_device": "Entités sans appareils",
"no_devices": "Cette intégration n'a pas d'appareils.", "no_devices": "Cette intégration n'a pas d'appareils.",
"options": "Options", "options": "Options",
"reload": "Recharger",
"reload_confirm": "L'intégration a été rechargée",
"reload_restart_confirm": "Redémarrer Home Assistant pour finaliser le rechargement de cette intégration",
"rename": "Renommer", "rename": "Renommer",
"restart_confirm": "Redémarrer Home Assistant pour terminer la suppression de cette intégration", "restart_confirm": "Redémarrer Home Assistant pour terminer la suppression de cette intégration",
"settings_button": "Modifier les paramètres pour {integration}", "settings_button": "Modifier les paramètres pour {integration}",
@ -1658,7 +1686,11 @@
"topic": "sujet" "topic": "sujet"
}, },
"ozw": { "ozw": {
"button": "Configurer",
"common": { "common": {
"controller": "Contrôleur",
"instance": "Instance",
"network": "Réseau",
"node_id": "ID du nœud", "node_id": "ID du nœud",
"ozw_instance": "Instance Z-Wave", "ozw_instance": "Instance Z-Wave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "Étape", "stage": "Étape",
"zwave_info": "Informations Z-Wave" "zwave_info": "Informations Z-Wave"
}, },
"navigation": {
"network": "Réseau",
"nodes": "Nœuds",
"select_instance": "Sélectionnez une instance"
},
"network_status": {
"details": {
"driverallnodesqueried": "Tous les nœuds ont été interrogés",
"driverallnodesqueriedsomedead": "Tous les nœuds ont été interrogés. Certains nœuds ont été trouvés morts",
"driverawakenodesqueries": "Tous les nœuds éveillés ont été interrogés",
"driverfailed": "Échec de la connexion au contrôleur Z-Wave",
"driverready": "Initialisation du contrôleur Z-Wave",
"driverremoved": "Le pilote a été supprimé",
"driverreset": "Le pilote a été réinitialisé",
"offline": "OZWDaemon hors ligne",
"ready": "Prêt à se connecter",
"started": "Connecté à MQTT",
"starting": "Connexion à MQTT",
"stopped": "OpenZWave arrêté"
},
"offline": "Hors ligne",
"online": "En ligne",
"starting": "Démarrage",
"unknown": "Inconnu"
},
"network": {
"header": "Gestion du réseau",
"introduction": "Διαχείρηση λειτουργιών δικτύου",
"node_count": "{count} nœuds"
},
"node_query_stages": { "node_query_stages": {
"associations": "Rafraîchissement les associations et les membres", "associations": "Rafraîchissement les associations et les membres",
"cacheload": "Chargement des informations à partir du fichier de cache OpenZWave. Les nœuds de batterie resteront à cette étape jusqu'à ce que le nœud se réveille.", "cacheload": "Chargement des informations à partir du fichier de cache OpenZWave. Les nœuds de batterie resteront à cette étape jusqu'à ce que le nœud se réveille.",
@ -1698,6 +1760,14 @@
"title": "Actualiser les informations du nœud", "title": "Actualiser les informations du nœud",
"wakeup_header": "Instructions de réveil pour", "wakeup_header": "Instructions de réveil pour",
"wakeup_instructions_source": "Les instructions de réveil proviennent de la base de données de la communauté OpenZWave." "wakeup_instructions_source": "Les instructions de réveil proviennent de la base de données de la communauté OpenZWave."
},
"select_instance": {
"header": "Sélectionnez une instance OpenZWave",
"introduction": "Vous avez plus d'une instance OpenZWave en cours d'exécution. Quelle instance souhaitez-vous gérer ?"
},
"services": {
"add_node": "Ajouter un nœud",
"remove_node": "Supprimer le nœud"
} }
}, },
"person": { "person": {
@ -1823,18 +1893,24 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Recharger les automatisations", "automation": "Recharger les automatisations",
"command_line": "Recharger les entités de ligne de commande",
"core": "Recharger les emplacements et personnalisations", "core": "Recharger les emplacements et personnalisations",
"filter": "Recharger les entités de filtre",
"group": "Recharger les groupes", "group": "Recharger les groupes",
"heading": "Rechargement de la configuration", "heading": "Rechargement de la configuration",
"input_boolean": "Recharger les booléens d'entrée", "input_boolean": "Recharger les entrées booléennes (input boolean)",
"input_datetime": "Recharger les heures de date d'entrée", "input_datetime": "Recharger les entrées de date et heure (input date time)",
"input_number": "Recharger les numéros d'entrée", "input_number": "Recharger les entrées numériques (input number)",
"input_select": "Recharger les sélections d'entrée", "input_select": "Recharger les listes de sélection (input select)",
"input_text": "Recharger les textes d'entrée", "input_text": "Recharger les entrées de texte (input text)",
"introduction": "Certaines parties de Home Assistant peuvent être rechargées sans nécessiter de redémarrage. Le fait de cliquer sur recharger déchargera leur configuration actuelle et chargera la nouvelle.", "introduction": "Certaines parties de Home Assistant peuvent être rechargées sans nécessiter de redémarrage. Le fait de cliquer sur recharger déchargera leur configuration actuelle et chargera la nouvelle.",
"person": "Recharger les personnes", "person": "Recharger les personnes",
"rest": "Recharger les entités REST",
"scene": "Recharger les scènes", "scene": "Recharger les scènes",
"script": "Recharger les scripts", "script": "Recharger les scripts",
"statistics": "Recharger les entités de statistiques",
"template": "Recharger les entités modèles",
"universal": "Recharger les entités de lecteur média universel",
"zone": "Recharger les zones" "zone": "Recharger les zones"
}, },
"server_management": { "server_management": {
@ -1876,6 +1952,7 @@
"last_scanned": "Dernière analyse", "last_scanned": "Dernière analyse",
"name": "Nom" "name": "Nom"
}, },
"never_scanned": "Jamais scanné",
"no_tags": "Aucunes balises", "no_tags": "Aucunes balises",
"write": "Écrire" "write": "Écrire"
}, },
@ -2200,6 +2277,7 @@
"description": "Les modèles sont rendus à l'aide du moteur de modèles Jinja2 avec certaines extensions spécifiques de Home Assistant.", "description": "Les modèles sont rendus à l'aide du moteur de modèles Jinja2 avec certaines extensions spécifiques de Home Assistant.",
"editor": "Éditeur de modèles", "editor": "Éditeur de modèles",
"jinja_documentation": "Documentation de modèle Jinja2", "jinja_documentation": "Documentation de modèle Jinja2",
"reset": "Réinitialiser au modèle de démonstration",
"template_extensions": "Extensions de modèles de Home Assistant", "template_extensions": "Extensions de modèles de Home Assistant",
"title": "Modèle", "title": "Modèle",
"unknown_error_template": "Erreur inconnue lors du rendu du modèle" "unknown_error_template": "Erreur inconnue lors du rendu du modèle"
@ -2281,6 +2359,10 @@
"description": "La carte Bouton vous permet d'ajouter des boutons pour effectuer des tâches.", "description": "La carte Bouton vous permet d'ajouter des boutons pour effectuer des tâches.",
"name": "Bouton" "name": "Bouton"
}, },
"calendar": {
"description": "La carte Calendrier affiche un calendrier comprenant des vues par jour, par semaine et par liste",
"name": "Calendrier"
},
"conditional": { "conditional": {
"card": "Carte", "card": "Carte",
"change_type": "Changer le type", "change_type": "Changer le type",
@ -2735,6 +2817,7 @@
"intro": "Bonjour {name}, bienvenue dans Home Assistant. Comment voudriez-vous nommer votre maison?", "intro": "Bonjour {name}, bienvenue dans Home Assistant. Comment voudriez-vous nommer votre maison?",
"intro_location": "Nous aimerions savoir où vous habitez. Ces informations vous aideront à afficher des informations et à configurer des automatismes basés sur le soleil. Ces données ne sont jamais partagées en dehors de votre réseau.", "intro_location": "Nous aimerions savoir où vous habitez. Ces informations vous aideront à afficher des informations et à configurer des automatismes basés sur le soleil. Ces données ne sont jamais partagées en dehors de votre réseau.",
"intro_location_detect": "Nous pouvons vous aider à renseigner ces informations en adressant une demande unique à un service externe.", "intro_location_detect": "Nous pouvons vous aider à renseigner ces informations en adressant une demande unique à un service externe.",
"location_name": "Nom de votre installation Home Assistant",
"location_name_default": "Maison" "location_name_default": "Maison"
}, },
"integration": { "integration": {

View File

@ -195,10 +195,8 @@
}, },
"triggers": { "triggers": {
"add": "Trigger tafoegje", "add": "Trigger tafoegje",
"header": "",
"type": { "type": {
"homeassistant": { "homeassistant": {
"label": "",
"shutdown": "Ofslúte", "shutdown": "Ofslúte",
"start": "Opstarte" "start": "Opstarte"
}, },

View File

@ -308,6 +308,7 @@
"rename_dialog": "इस कॉन्फ़िगरेशन प्रविष्टि का नाम संपादित करें", "rename_dialog": "इस कॉन्फ़िगरेशन प्रविष्टि का नाम संपादित करें",
"rename_input_label": "प्रवेश का नाम" "rename_input_label": "प्रवेश का नाम"
}, },
"introduction": "In questa schermata è possibile configurare Home Assistant e i suoi componenti. Non è ancora possibile configurare tutto tramite l'interfaccia, ma ci stiamo lavorando.",
"logs": { "logs": {
"title": "लॉग्स" "title": "लॉग्स"
}, },
@ -363,6 +364,9 @@
} }
} }
}, },
"logbook": {
"showing_entries": "Visualizza gli inserimenti per"
},
"lovelace": { "lovelace": {
"cards": { "cards": {
"starting": { "starting": {
@ -370,6 +374,9 @@
"header": "होम असिस्टेंट शुरू हो रहा है ..." "header": "होम असिस्टेंट शुरू हो रहा है ..."
} }
}, },
"changed_toast": {
"message": "La configurazione della interfaccia di Lovelaceper questa dashboard è stata aggiornata, vuoi ricaricare la pagina per vedere i cambiamenti?"
},
"editor": { "editor": {
"card": { "card": {
"entity": { "entity": {

View File

@ -419,9 +419,16 @@
"unlock": "Sbloccato" "unlock": "Sbloccato"
}, },
"media_player": { "media_player": {
"browse_media": "Sfoglia i file multimediali",
"media_next_track": "Avanti",
"media_play": "Riproduci",
"media_play_pause": "Riproduci/pausa",
"media_previous_track": "Indietro",
"sound_mode": "Modalità audio", "sound_mode": "Modalità audio",
"source": "Fonte", "source": "Fonte",
"text_to_speak": "Testo da leggere" "text_to_speak": "Testo da leggere",
"turn_off": "Spegni",
"turn_on": "Accendi"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Rimuovi" "dismiss": "Rimuovi"
@ -554,6 +561,22 @@
"loading_history": "Caricamento storico...", "loading_history": "Caricamento storico...",
"no_history_found": "Nessuno storico trovato." "no_history_found": "Nessuno storico trovato."
}, },
"media-browser": {
"choose-source": "Scegli origine",
"content-type": {
"album": "Album",
"artist": "Artista",
"library": "Libreria",
"playlist": "Elenco di riproduzione",
"server": "Server"
},
"media-player-browser": "Lettore multimediale",
"no_items": "Nessun elemento",
"pick": "Scegli",
"pick-media": "Seleziona file multimediali",
"play": "Riproduci",
"play-media": "Riproduci file multimediali"
},
"picture-upload": { "picture-upload": {
"label": "Immagine", "label": "Immagine",
"unsupported_format": "Formato non supportato, scegliere un'immagine JPEG, PNG o GIF." "unsupported_format": "Formato non supportato, scegliere un'immagine JPEG, PNG o GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {settimana}\nother {settimane}\n}" "week": "{count} {count, plural,\none {settimana}\nother {settimane}\n}"
}, },
"future": "tra {time}", "future": "tra {time}",
"just_now": "Proprio ora",
"never": "Mai", "never": "Mai",
"past": "{time} fa" "past": "{time} fa"
}, },
@ -1318,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Nessun {name} è stato ancora aggiunto utilizzando questo dispositivo. Puoi aggiungerne uno facendo clic sul pulsante + sopra.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Quando qualcosa si attiva..." "caption": "Quando qualcosa si attiva..."
@ -1500,6 +1525,9 @@
"no_device": "Entità senza dispositivi", "no_device": "Entità senza dispositivi",
"no_devices": "Questa integrazione non ha dispositivi.", "no_devices": "Questa integrazione non ha dispositivi.",
"options": "Opzioni", "options": "Opzioni",
"reload": "Ricarica",
"reload_confirm": "L'integrazione è stata ricaricata",
"reload_restart_confirm": "Riavvia Home Assistant per completare il ricaricamento di questa integrazione",
"rename": "Rinomina", "rename": "Rinomina",
"restart_confirm": "Riavvia Home Assistant per completare la rimozione di questa integrazione", "restart_confirm": "Riavvia Home Assistant per completare la rimozione di questa integrazione",
"settings_button": "Modificare le impostazioni per {integration}.", "settings_button": "Modificare le impostazioni per {integration}.",
@ -1658,7 +1686,11 @@
"topic": "argomento" "topic": "argomento"
}, },
"ozw": { "ozw": {
"button": "Configura",
"common": { "common": {
"controller": "Controllore",
"instance": "Istanza",
"network": "Rete",
"node_id": "ID del nodo", "node_id": "ID del nodo",
"ozw_instance": "Istanza OpenZWave", "ozw_instance": "Istanza OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "Fase", "stage": "Fase",
"zwave_info": "Informazioni Z-Wave" "zwave_info": "Informazioni Z-Wave"
}, },
"navigation": {
"network": "Rete",
"nodes": "Nodi",
"select_instance": "Seleziona istanza"
},
"network_status": {
"details": {
"driverallnodesqueried": "Tutti i nodi sono stati interrogati.",
"driverallnodesqueriedsomedead": "Tutti i nodi sono stati interrogati. Alcuni nodi sono stati trovati morti",
"driverawakenodesqueries": "Tutti i nodi svegli sono stati interrogati",
"driverfailed": "Impossibile connettersi al controller Z-Wave",
"driverready": "Inizializzazione del controller Z-Wave",
"driverremoved": "Il driver è stato rimosso",
"driverreset": "Il driver è stato reimpostato",
"offline": "OZWDaemon non in linea",
"ready": "Pronto per la connessione",
"started": "Collegato a MQTT",
"starting": "In collegamento a MQTT",
"stopped": "OpenZWave si è fermato"
},
"offline": "Disconnesso",
"online": "In linea",
"starting": "In avvio",
"unknown": "Sconosciuto"
},
"network": {
"header": "Gestione della rete",
"introduction": "Gestisci le funzioni a livello di rete.",
"node_count": "{count} nodi"
},
"node_query_stages": { "node_query_stages": {
"associations": "Aggiornamento dell'associazione gruppi e appartenenze", "associations": "Aggiornamento dell'associazione gruppi e appartenenze",
"cacheload": "Caricamento delle informazioni dal file di cache di OpenZWave. I nodi a batteria rimarranno in questa fase fino a quando il nodo non si riattiva.", "cacheload": "Caricamento delle informazioni dal file di cache di OpenZWave. I nodi a batteria rimarranno in questa fase fino a quando il nodo non si riattiva.",
@ -1698,6 +1760,14 @@
"title": "Aggiorna le informazioni sul nodo", "title": "Aggiorna le informazioni sul nodo",
"wakeup_header": "Istruzioni di riattivazione per", "wakeup_header": "Istruzioni di riattivazione per",
"wakeup_instructions_source": "Le istruzioni di riattivazione provengono dal database dei dispositivi della comunità di OpenZWave." "wakeup_instructions_source": "Le istruzioni di riattivazione provengono dal database dei dispositivi della comunità di OpenZWave."
},
"select_instance": {
"header": "Seleziona un'istanza OpenZWave",
"introduction": "Hai più di un'istanza OpenZWave in esecuzione. Quale istanza vorresti gestire?"
},
"services": {
"add_node": "Aggiungi Nodo",
"remove_node": "Rimuovi nodo"
} }
}, },
"person": { "person": {
@ -1823,18 +1893,29 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Ricarica le Automazioni", "automation": "Ricarica le Automazioni",
"command_line": "Ricarica le entità della riga di comando",
"core": "Ricarica la Posizione e le Personalizzazioni", "core": "Ricarica la Posizione e le Personalizzazioni",
"filter": "Ricaricare le entità filtro",
"generic": "Ricaricare le entità delle generiche telecamere IP",
"generic_thermostat": "Ricaricare le entità termostati generiche",
"group": "Ricarica i Gruppi", "group": "Ricarica i Gruppi",
"heading": "Ricarica Configurazione YAML", "heading": "Ricarica Configurazione YAML",
"homekit": "Ricarica HomeKit",
"input_boolean": "Ricarica input booleani", "input_boolean": "Ricarica input booleani",
"input_datetime": "Ricarica input data e/o tempo", "input_datetime": "Ricarica input data e/o tempo",
"input_number": "Ricarica input numerici", "input_number": "Ricarica input numerici",
"input_select": "Ricarica input a discesa", "input_select": "Ricarica input a discesa",
"input_text": "Ricarica input testuali", "input_text": "Ricarica input testuali",
"introduction": "Alcune parti di Home Assistant possono essere ricaricate senza richiedere un riavvio. Premendo su Ricarica si rimuoverà la loro Configurazione YAML attuale e si caricherà la versione aggiornata.", "introduction": "Alcune parti di Home Assistant possono essere ricaricate senza richiedere un riavvio. Premendo su Ricarica si rimuoverà la loro Configurazione YAML attuale e si caricherà la versione aggiornata.",
"min_max": "Ricaricare le entità min/max",
"person": "Ricarica le persone", "person": "Ricarica le persone",
"rest": "Ricarica le entità della piattaforma rest",
"scene": "Ricarica le Scene", "scene": "Ricarica le Scene",
"script": "Ricarica gli Script", "script": "Ricarica gli Script",
"statistics": "Ricaricare le entità statistiche",
"template": "Ricaricare le entità modello",
"trend": "Ricaricare le entità di tendenza",
"universal": "Ricarica le entità del lettore multimediale universale",
"zone": "Ricarica le zone" "zone": "Ricarica le zone"
}, },
"server_management": { "server_management": {
@ -1876,6 +1957,7 @@
"last_scanned": "Ultima scansione", "last_scanned": "Ultima scansione",
"name": "Nome" "name": "Nome"
}, },
"never_scanned": "Mai scansionato",
"no_tags": "Nessuna etichetta", "no_tags": "Nessuna etichetta",
"write": "Scrivi" "write": "Scrivi"
}, },
@ -1885,6 +1967,8 @@
"create": "Crea", "create": "Crea",
"name": "Nome", "name": "Nome",
"password": "Password", "password": "Password",
"password_confirm": "Conferma la password",
"password_not_match": "Le password non corrispondono",
"username": "Nome utente" "username": "Nome utente"
}, },
"caption": "Utenti", "caption": "Utenti",
@ -1901,7 +1985,9 @@
"group": "Gruppo", "group": "Gruppo",
"id": "ID", "id": "ID",
"name": "Nome", "name": "Nome",
"new_password": "Nuova password",
"owner": "Proprietario", "owner": "Proprietario",
"password_changed": "La password è stata cambiata!",
"system_generated": "Generato dal sistema", "system_generated": "Generato dal sistema",
"system_generated_users_not_editable": "Impossibile aggiornare gli utenti generati dal sistema.", "system_generated_users_not_editable": "Impossibile aggiornare gli utenti generati dal sistema.",
"system_generated_users_not_removable": "Impossibile rimuovere gli utenti generati dal sistema.", "system_generated_users_not_removable": "Impossibile rimuovere gli utenti generati dal sistema.",
@ -2200,6 +2286,7 @@
"description": "Il rendering dei modelli viene eseguito utilizzando il motore di modelli Jinja2 con alcune estensioni specifiche di Home Assistant.", "description": "Il rendering dei modelli viene eseguito utilizzando il motore di modelli Jinja2 con alcune estensioni specifiche di Home Assistant.",
"editor": "Editor di modelli", "editor": "Editor di modelli",
"jinja_documentation": "Documentazione del modello Jinja2", "jinja_documentation": "Documentazione del modello Jinja2",
"reset": "Ripristina il modello di esempio",
"template_extensions": "Estensioni del modello Home Assistant", "template_extensions": "Estensioni del modello Home Assistant",
"title": "Modelli", "title": "Modelli",
"unknown_error_template": "Errore sconosciuto nel rendering del modello" "unknown_error_template": "Errore sconosciuto nel rendering del modello"
@ -2281,6 +2368,10 @@
"description": "La scheda Pulsante consente di aggiungere pulsanti per eseguire attività.", "description": "La scheda Pulsante consente di aggiungere pulsanti per eseguire attività.",
"name": "Pulsante" "name": "Pulsante"
}, },
"calendar": {
"description": "La scheda Calendario mostra un calendario che include le visualizzazioni per giorno, settimana ed elenco",
"name": "Calendario"
},
"conditional": { "conditional": {
"card": "Scheda", "card": "Scheda",
"change_type": "Cambia tipo", "change_type": "Cambia tipo",
@ -2346,6 +2437,7 @@
"show_name": "Mostrare il nome?", "show_name": "Mostrare il nome?",
"show_state": "Mostrare lo stato?", "show_state": "Mostrare lo stato?",
"state": "Stato", "state": "Stato",
"state_color": "Colorare le icone in base allo stato?",
"tap_action": "Tocca Azione", "tap_action": "Tocca Azione",
"theme": "Tema", "theme": "Tema",
"title": "Titolo", "title": "Titolo",
@ -2735,6 +2827,7 @@
"intro": "Salve {name}, benvenuto su Home Assistant. Come vorresti nominare la tua casa?", "intro": "Salve {name}, benvenuto su Home Assistant. Come vorresti nominare la tua casa?",
"intro_location": "Vorremmo sapere dove vivete. Queste informazioni aiuteranno a visualizzare informazioni e automazioni basate sul sole. Questi dati non vengono mai condivisi al di fuori della vostra rete.", "intro_location": "Vorremmo sapere dove vivete. Queste informazioni aiuteranno a visualizzare informazioni e automazioni basate sul sole. Questi dati non vengono mai condivisi al di fuori della vostra rete.",
"intro_location_detect": "Possiamo aiutarti a compilare queste informazioni effettuando una richiesta una volta a un servizio esterno.", "intro_location_detect": "Possiamo aiutarti a compilare queste informazioni effettuando una richiesta una volta a un servizio esterno.",
"location_name": "Nome della tua installazione di Home Assistant",
"location_name_default": "Casa" "location_name_default": "Casa"
}, },
"integration": { "integration": {

File diff suppressed because it is too large Load Diff

View File

@ -419,9 +419,16 @@
"unlock": "잠금 해제" "unlock": "잠금 해제"
}, },
"media_player": { "media_player": {
"browse_media": "미디어 찾아보기",
"media_next_track": "다음",
"media_play": "재생",
"media_play_pause": "재생 / 일시정지",
"media_previous_track": "이전",
"sound_mode": "사운드 모드", "sound_mode": "사운드 모드",
"source": "입력 소스", "source": "입력 소스",
"text_to_speak": "음성합성 내용 입력 (TTS)" "text_to_speak": "음성합성 내용 입력 (TTS)",
"turn_off": "끄기",
"turn_on": "켜기"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "해제" "dismiss": "해제"
@ -554,6 +561,22 @@
"loading_history": "상태 기록 내용 읽는 중...", "loading_history": "상태 기록 내용 읽는 중...",
"no_history_found": "상태 기록 내용이 없습니다." "no_history_found": "상태 기록 내용이 없습니다."
}, },
"media-browser": {
"choose-source": "소스 선택",
"content-type": {
"album": "앨범",
"artist": "아티스트",
"library": "라이브러리",
"playlist": "재생 목록",
"server": "서버"
},
"media-player-browser": "미디어 플레이어 브라우저",
"no_items": "항목 없음",
"pick": "선택",
"pick-media": "미디어 선택",
"play": "재생",
"play-media": "미디어 재생"
},
"picture-upload": { "picture-upload": {
"label": "그림", "label": "그림",
"unsupported_format": "지원되지 않는 형식입니다. JPEG, PNG 또는 GIF 이미지를 선택해주세요." "unsupported_format": "지원되지 않는 형식입니다. JPEG, PNG 또는 GIF 이미지를 선택해주세요."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {주}\nother {주}\n}" "week": "{count} {count, plural,\none {주}\nother {주}\n}"
}, },
"future": "{time} 후", "future": "{time} 후",
"just_now": "방금",
"never": "해당없음", "never": "해당없음",
"past": "{time} 전" "past": "{time} 전"
}, },
@ -899,7 +923,7 @@
"wait_template": "대기 템플릿" "wait_template": "대기 템플릿"
} }
}, },
"unsupported_action": "미지원 동작: {action}" "unsupported_action": "UI 미지원 동작: {action}"
}, },
"alias": "이름", "alias": "이름",
"conditions": { "conditions": {
@ -965,7 +989,7 @@
"zone": "지역" "zone": "지역"
} }
}, },
"unsupported_condition": "미지원 조건: {condition}" "unsupported_condition": "UI 미지원 조건: {condition}"
}, },
"default_name": "새로운 자동화", "default_name": "새로운 자동화",
"description": { "description": {
@ -1057,6 +1081,9 @@
"sunrise": "해돋이", "sunrise": "해돋이",
"sunset": "해넘이" "sunset": "해넘이"
}, },
"tag": {
"label": "태그"
},
"template": { "template": {
"label": "템플릿", "label": "템플릿",
"value_template": "값 템플릿" "value_template": "값 템플릿"
@ -1084,7 +1111,7 @@
"zone": "지역" "zone": "지역"
} }
}, },
"unsupported_platform": "미지원 플랫폼: {platform}" "unsupported_platform": "UI 미지원 플랫폼: {platform}"
}, },
"unsaved_confirm": "변경된 내용을 저장하지 않았습니다. 정말 이 페이지를 떠나시겠습니까?" "unsaved_confirm": "변경된 내용을 저장하지 않았습니다. 정말 이 페이지를 떠나시겠습니까?"
}, },
@ -1279,7 +1306,7 @@
"imperial_example": "화씨, 파운드", "imperial_example": "화씨, 파운드",
"internal_url": "내부 URL", "internal_url": "내부 URL",
"latitude": "위도", "latitude": "위도",
"location_name": "Home Assistant 이름", "location_name": "설치된 Home Assistant 이름",
"longitude": "경도", "longitude": "경도",
"metric_example": "섭씨, 킬로그램", "metric_example": "섭씨, 킬로그램",
"save_button": "저장", "save_button": "저장",
@ -1315,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "아직 이 기기로 추가 된 {name} 이(가) 없습니다. 위의 + 단추를 클릭하여 추가할 수 있습니다.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "뭔가 트리거 되었을 때...." "caption": "뭔가 트리거 되었을 때...."
@ -1334,6 +1362,7 @@
"caption": "기기", "caption": "기기",
"confirm_delete": "이 기기를 삭제하시겠습니까?", "confirm_delete": "이 기기를 삭제하시겠습니까?",
"confirm_rename_entity_ids": "구성요소의 ID 이름 또한 바꾸시겠습니까?", "confirm_rename_entity_ids": "구성요소의 ID 이름 또한 바꾸시겠습니까?",
"confirm_rename_entity_ids_warning": "현재 이러한 구성요소를 사용하고 있는 구성 (자동화, 스크립트, 씬, Lovelace 등)은 변경되지 않으므로 직접 업데이트해야 합니다.",
"data_table": { "data_table": {
"area": "영역", "area": "영역",
"battery": "배터리", "battery": "배터리",
@ -1496,6 +1525,9 @@
"no_device": "기기가 없는 구성요소", "no_device": "기기가 없는 구성요소",
"no_devices": "이 통합 구성요소는 설정해야 할 기기가 없습니다.", "no_devices": "이 통합 구성요소는 설정해야 할 기기가 없습니다.",
"options": "옵션", "options": "옵션",
"reload": "새로고침",
"reload_confirm": "통합 구성요소를 다시 읽어 들였습니다",
"reload_restart_confirm": "이 통합 구성요소를 다시 읽어 들일려면 Home Assistant 를 다시 시작해주세요",
"rename": "이름 변경", "rename": "이름 변경",
"restart_confirm": "통합 구성요소 제거 완료를 위해 Home Assistant 웹 페이지를 다시 불러옵니다", "restart_confirm": "통합 구성요소 제거 완료를 위해 Home Assistant 웹 페이지를 다시 불러옵니다",
"settings_button": "{integration} 설정 편집", "settings_button": "{integration} 설정 편집",
@ -1654,7 +1686,11 @@
"topic": "토픽" "topic": "토픽"
}, },
"ozw": { "ozw": {
"button": "설정",
"common": { "common": {
"controller": "컨트롤러",
"instance": "인스턴스",
"network": "네트워크",
"node_id": "노드 ID", "node_id": "노드 ID",
"ozw_instance": "OpenZWave 인스턴스", "ozw_instance": "OpenZWave 인스턴스",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1664,6 +1700,36 @@
"stage": "단계", "stage": "단계",
"zwave_info": "Z-Wave 정보" "zwave_info": "Z-Wave 정보"
}, },
"navigation": {
"network": "네트워크",
"nodes": "노드",
"select_instance": "인스턴스 선택"
},
"network_status": {
"details": {
"driverallnodesqueried": "모든 노드가 쿼리되었습니다",
"driverallnodesqueriedsomedead": "모든 노드가 쿼리되었습니다. 일부 노드는 죽은 것으로 발견되었습니다.",
"driverawakenodesqueries": "모든 절전모드 해제 노드가 쿼리되었습니다.",
"driverfailed": "Z-Wave 컨트롤러에 연결하지 못했습니다",
"driverready": "Z-Wave 컨트롤러 초기화 중",
"driverremoved": "드라이버가 제거되었습니다",
"driverreset": "드라이버가 재설정되었습니다",
"offline": "OZWDaemon 오프라인",
"ready": "연결할 준비가 되었습니다",
"started": "MQTT 에 연결됨",
"starting": "MQTT 에 연결 중",
"stopped": "OpenZWave 가 중지되었습니다"
},
"offline": "오프라인",
"online": "온라인",
"starting": "시작 중",
"unknown": "알 수 없음"
},
"network": {
"header": "네트워크 관리",
"introduction": "네트워크 전체 기능을 관리합니다.",
"node_count": "{count} 개 노드"
},
"node_query_stages": { "node_query_stages": {
"associations": "연결 그룹 및 구성원 자격 새로고침", "associations": "연결 그룹 및 구성원 자격 새로고침",
"cacheload": "OpenZWave 캐시 파일에서 정보를 읽어오기. 배터리 노드는 노드가 절전 해제 상태가 될 때까지 이 단계를 유지합니다.", "cacheload": "OpenZWave 캐시 파일에서 정보를 읽어오기. 배터리 노드는 노드가 절전 해제 상태가 될 때까지 이 단계를 유지합니다.",
@ -1694,6 +1760,14 @@
"title": "노드 정보 새로고침", "title": "노드 정보 새로고침",
"wakeup_header": "절전 해제 지침", "wakeup_header": "절전 해제 지침",
"wakeup_instructions_source": "절전 해제 지침은 OpenZWave 커뮤니티 기기 데이터베이스에서 제공됩니다." "wakeup_instructions_source": "절전 해제 지침은 OpenZWave 커뮤니티 기기 데이터베이스에서 제공됩니다."
},
"select_instance": {
"header": "OpenZWave 인스턴스 선택",
"introduction": "둘 이상의 OpenZWave 인스턴스가 실행 중입니다. 어떤 인스턴스를 관리하시겠습니까?"
},
"services": {
"add_node": "노드 추가",
"remove_node": "노드 제거"
} }
}, },
"person": { "person": {
@ -1819,7 +1893,9 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "자동화 다시 읽어오기", "automation": "자동화 다시 읽어오기",
"command_line": "명령줄 구성요소 다시 읽어오기",
"core": "위치 및 사용자화 다시 읽어오기", "core": "위치 및 사용자화 다시 읽어오기",
"filter": "필터 구성요소 다시로드",
"group": "그룹 다시 읽어오기", "group": "그룹 다시 읽어오기",
"heading": "YAML 구성 다시 읽어오기", "heading": "YAML 구성 다시 읽어오기",
"input_boolean": "논리입력 다시 읽어오기", "input_boolean": "논리입력 다시 읽어오기",
@ -1829,8 +1905,12 @@
"input_text": "문자입력 다시 읽어오기", "input_text": "문자입력 다시 읽어오기",
"introduction": "Home Assistant 의 일부 구성 내용은 재시작 없이 다시 읽어 들일 수 있습니다. 다시 읽어오기를 누르면 현재 사용 중인 YAML 구성 내용을 내리고 새로운 구성 내용을 읽어 들입니다.", "introduction": "Home Assistant 의 일부 구성 내용은 재시작 없이 다시 읽어 들일 수 있습니다. 다시 읽어오기를 누르면 현재 사용 중인 YAML 구성 내용을 내리고 새로운 구성 내용을 읽어 들입니다.",
"person": "구성원 다시 읽어오기", "person": "구성원 다시 읽어오기",
"rest": "REST 구성요소 다시 읽어오기",
"scene": "씬 다시 읽어오기", "scene": "씬 다시 읽어오기",
"script": "스크립트 다시 읽어오기", "script": "스크립트 다시 읽어오기",
"statistics": "통계 구성요소 다시 읽어오기",
"template": "템플릿 구성요소 다시 읽어오기",
"universal": "범용 미디어 플레이어 구성요소 다시 읽어오기",
"zone": "지역 다시 읽어오기" "zone": "지역 다시 읽어오기"
}, },
"server_management": { "server_management": {
@ -1850,6 +1930,32 @@
} }
} }
}, },
"tags": {
"add_tag": "태그 추가",
"automation_title": "{name} 태그가 검색되었습니다",
"caption": "태그",
"create_automation": "태그로 자동화 구성하기",
"description": "태그 관리",
"detail": {
"create": "만들기",
"create_and_write": "만들고 쓰기",
"delete": "삭제",
"description": "상세정보",
"name": "이름",
"new_tag": "새로운 태그",
"tag_id": "태그 ID",
"tag_id_placeholder": "비워두면 자동으로 생성됩니다",
"update": "업데이트"
},
"edit": "편집",
"headers": {
"last_scanned": "최근 검색 됨",
"name": "이름"
},
"never_scanned": "검색 된 적 없음",
"no_tags": "태그 없음",
"write": "쓰기"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "사용자 계정 만들기", "caption": "사용자 계정 만들기",
@ -2171,6 +2277,7 @@
"description": "템플릿은 Home Assistant 의 특정 확장기능의 일부로써, Jinja2 템플릿 엔진을 사용하여 구성됩니다.", "description": "템플릿은 Home Assistant 의 특정 확장기능의 일부로써, Jinja2 템플릿 엔진을 사용하여 구성됩니다.",
"editor": "템플릿 편집기", "editor": "템플릿 편집기",
"jinja_documentation": "Jinja2 템플릿 문서 보기", "jinja_documentation": "Jinja2 템플릿 문서 보기",
"reset": "데모 템플릿으로 재설정",
"template_extensions": "Home Assistant 템플릿 확장기능 문서 보기", "template_extensions": "Home Assistant 템플릿 확장기능 문서 보기",
"title": "템플릿", "title": "템플릿",
"unknown_error_template": "템플릿 구성 중 알 수 없는 오류가 발생했습니다" "unknown_error_template": "템플릿 구성 중 알 수 없는 오류가 발생했습니다"
@ -2252,6 +2359,10 @@
"description": "버튼 카드를 사용하면 작업을 수행할 수 있는 버튼을 추가할 수 있습니다.", "description": "버튼 카드를 사용하면 작업을 수행할 수 있는 버튼을 추가할 수 있습니다.",
"name": "버튼" "name": "버튼"
}, },
"calendar": {
"description": "캘린더 카드는 일, 주 및 목록 보기를 포함한 캘린더가 표시됩니다",
"name": "캘린더"
},
"conditional": { "conditional": {
"card": "카드", "card": "카드",
"change_type": "변경 유형", "change_type": "변경 유형",
@ -2706,6 +2817,7 @@
"intro": "{name} 님, 안녕하세요! Home Assistant 에 오신 것을 환영합니다. 집에 어떤 이름을 지어주시겠어요?", "intro": "{name} 님, 안녕하세요! Home Assistant 에 오신 것을 환영합니다. 집에 어떤 이름을 지어주시겠어요?",
"intro_location": "현재 살고 계시는 위치를 알려주세요. 이는 태양 위치를 기반으로 하는 자동화를 설정하는데 도움이 됩니다. 위치 정보는 외부 네트워크와 절대 공유되지 않습니다.", "intro_location": "현재 살고 계시는 위치를 알려주세요. 이는 태양 위치를 기반으로 하는 자동화를 설정하는데 도움이 됩니다. 위치 정보는 외부 네트워크와 절대 공유되지 않습니다.",
"intro_location_detect": "외부 서비스에 일회성 요청을 해서 위치 정보를 넣는데 도움을 드릴 수 있습니다.", "intro_location_detect": "외부 서비스에 일회성 요청을 해서 위치 정보를 넣는데 도움을 드릴 수 있습니다.",
"location_name": "설치된 Home Assistant 이름",
"location_name_default": "집" "location_name_default": "집"
}, },
"integration": { "integration": {

View File

@ -419,9 +419,16 @@
"unlock": "Entspären" "unlock": "Entspären"
}, },
"media_player": { "media_player": {
"browse_media": "Medien duerchgoen",
"media_next_track": "Nächst",
"media_play": "Spill",
"media_play_pause": "Spill/Pause",
"media_previous_track": "Viregt",
"sound_mode": "Toun Modus", "sound_mode": "Toun Modus",
"source": "Quell", "source": "Quell",
"text_to_speak": "Text zu Sprooch" "text_to_speak": "Text zu Sprooch",
"turn_off": "Ausschalten",
"turn_on": "Uschalten"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Verwerfen" "dismiss": "Verwerfen"
@ -554,6 +561,22 @@
"loading_history": "Lued Status Verlaaf", "loading_history": "Lued Status Verlaaf",
"no_history_found": "Keen Status Verlaaf fonnt" "no_history_found": "Keen Status Verlaaf fonnt"
}, },
"media-browser": {
"choose-source": "Quell auswielen",
"content-type": {
"album": "Album",
"artist": "Artist",
"library": "Bibliothéik",
"playlist": "Ofspilllëscht",
"server": "Server"
},
"media-player-browser": "Media Player Browser",
"no_items": "Keng Elementer",
"pick": "Auswielen",
"pick-media": "Media auswielen",
"play": "Spill",
"play-media": "Media ofspillen"
},
"picture-upload": { "picture-upload": {
"label": "Bild", "label": "Bild",
"unsupported_format": "Net ënnerstëtzte Format, wiel e JPEG, PNG oder GIF Bild." "unsupported_format": "Net ënnerstëtzte Format, wiel e JPEG, PNG oder GIF Bild."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {Woch}\nother {Wochen}\n}" "week": "{count} {count, plural,\none {Woch}\nother {Wochen}\n}"
}, },
"future": "An {time}", "future": "An {time}",
"just_now": "Grad eben",
"never": "Nie", "never": "Nie",
"past": "virun {time}" "past": "virun {time}"
}, },
@ -1057,6 +1081,9 @@
"sunrise": "Sonnenopgank", "sunrise": "Sonnenopgank",
"sunset": "Sonnenënnergank" "sunset": "Sonnenënnergank"
}, },
"tag": {
"label": "Tag"
},
"template": { "template": {
"label": "Modell", "label": "Modell",
"value_template": "Wäerte Modell" "value_template": "Wäerte Modell"
@ -1654,7 +1681,11 @@
"topic": "Sujet" "topic": "Sujet"
}, },
"ozw": { "ozw": {
"button": "Astellen",
"common": { "common": {
"controller": "Kontroller",
"instance": "Instanz",
"network": "Netzwierk",
"node_id": "Node ID", "node_id": "Node ID",
"ozw_instance": "OpenZWave Instanz", "ozw_instance": "OpenZWave Instanz",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1664,6 +1695,35 @@
"stage": "Stage", "stage": "Stage",
"zwave_info": "Z-Wave Info" "zwave_info": "Z-Wave Info"
}, },
"navigation": {
"network": "Netzwierk",
"nodes": "Nodes",
"select_instance": "Instanz auswielen"
},
"network_status": {
"details": {
"driverallnodesqueried": "All Nodes goufen ofgefrot",
"driverallnodesqueriedsomedead": "All Nodes goufen ofgefrot. Verschidde Nodes sin net méi ereechbar.",
"driverawakenodesqueries": "All waakreg Nodes goufen ofgefrot",
"driverfailed": "Feeler beim verbannen mam Z-Wave Kontroller",
"driverready": "Z-Wave Kontroller initialiséieren",
"driverremoved": "Den Driver gouf geläscht",
"driverreset": "Den Driver gouf zeréckgesat",
"offline": "OZWDaemon net ereechbar",
"ready": "Prett fir sech ze verbannen",
"started": "Mam MQTT verbonnen",
"starting": "Mam MQTT verbannen",
"stopped": "OpenZWave gestoppt"
},
"offline": "Offline",
"online": "Online",
"starting": "Start",
"unknown": "Onbekannt"
},
"network": {
"header": "Verwaltung vum Netzwierk",
"node_count": "{count} nodes"
},
"node_query_stages": { "node_query_stages": {
"associations": "Associatiounsgruppen a Memberen aktualiséieren", "associations": "Associatiounsgruppen a Memberen aktualiséieren",
"cacheload": "Lued Informatioune vun der OpenZWave Cache Datei. Batterie Nodes bleiwen op dëser Etapp bis de Node erwächt.", "cacheload": "Lued Informatioune vun der OpenZWave Cache Datei. Batterie Nodes bleiwen op dëser Etapp bis de Node erwächt.",
@ -1692,6 +1752,14 @@
"title": "Node Informatiounen aktualiséieren", "title": "Node Informatiounen aktualiséieren",
"wakeup_header": "Instruktioune fir d'erwäche vun", "wakeup_header": "Instruktioune fir d'erwäche vun",
"wakeup_instructions_source": "D'Instruktioune fir d'erwäche si vun der OpenZwave Communautéit Datebank." "wakeup_instructions_source": "D'Instruktioune fir d'erwäche si vun der OpenZwave Communautéit Datebank."
},
"select_instance": {
"header": "Eng OpenZWave Instanz auswielen",
"introduction": "Du hues méi wéi eng OpenZWave Instanz laafen. Wéieng Instanz wëlls du verwalten?"
},
"services": {
"add_node": "Node dobäisetzen",
"remove_node": "Node läschen"
} }
}, },
"person": { "person": {
@ -1846,6 +1914,25 @@
} }
} }
}, },
"tags": {
"add_tag": "Tag dobäisetzen",
"caption": "Tags",
"description": "Tags verwalten",
"detail": {
"create": "Erstellen",
"create_and_write": "Erstellen a schréiwen",
"delete": "Läschen",
"description": "Beschreiwung",
"name": "Numm",
"new_tag": "Neien tag",
"tag_id": "Tag id",
"update": "Aktualiséieren"
},
"headers": {
"last_scanned": "Läscht duerchsicht"
},
"no_tags": "Keng Tags"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Benotzer erstellen", "caption": "Benotzer erstellen",
@ -2167,6 +2254,7 @@
"description": "Modeller ginn mëttels Jinja2 template engine duergestallt mat e puer Home Assistant spezifesch Erweiderungen.", "description": "Modeller ginn mëttels Jinja2 template engine duergestallt mat e puer Home Assistant spezifesch Erweiderungen.",
"editor": "Modell Editeur", "editor": "Modell Editeur",
"jinja_documentation": "Jinja2 Modell Dokumentatioun", "jinja_documentation": "Jinja2 Modell Dokumentatioun",
"reset": "Op Demo Modell zeréck setzen",
"template_extensions": "Home Assistant Modell Erweiderungen", "template_extensions": "Home Assistant Modell Erweiderungen",
"title": "Modeller", "title": "Modeller",
"unknown_error_template": "Onbekannte Feeler beim duerstelle vum Modell" "unknown_error_template": "Onbekannte Feeler beim duerstelle vum Modell"
@ -2248,6 +2336,10 @@
"description": "Knäppchen Kaart erlaabt et Knäppchen mat Aktioune unzeweisen.", "description": "Knäppchen Kaart erlaabt et Knäppchen mat Aktioune unzeweisen.",
"name": "Knäppchen" "name": "Knäppchen"
}, },
"calendar": {
"description": "Kalenner Kaart weist ee Kalenner mat Deeg, Wochen an Lëschten un",
"name": "Kalenner"
},
"conditional": { "conditional": {
"card": "Kaart", "card": "Kaart",
"change_type": "Typ änneren", "change_type": "Typ änneren",
@ -2702,6 +2794,7 @@
"intro": "Hallo {name}, wëllkomm zu Home Assistant. Wéi wëllt dir äert Doheem benennen?", "intro": "Hallo {name}, wëllkomm zu Home Assistant. Wéi wëllt dir äert Doheem benennen?",
"intro_location": "Mir wëlle wësse wou dir wunnt. Dës Informatioun hëlleft fir Informatiounen unzeweisen an Automatiounen anzeriichten déi op d'Sonne baséieren. Dës Donnéeë ginn nimools ausserhalb vun ärem Netzwierk gedeelt.", "intro_location": "Mir wëlle wësse wou dir wunnt. Dës Informatioun hëlleft fir Informatiounen unzeweisen an Automatiounen anzeriichten déi op d'Sonne baséieren. Dës Donnéeë ginn nimools ausserhalb vun ärem Netzwierk gedeelt.",
"intro_location_detect": "Mir kënne beim Ausfëlle vun dësen Informatiounen hëllefen andeems eng eemoleg Demande bei engem externe Service ugefrot gëtt.", "intro_location_detect": "Mir kënne beim Ausfëlle vun dësen Informatiounen hëllefen andeems eng eemoleg Demande bei engem externe Service ugefrot gëtt.",
"location_name": "Numm vun denger Home Assistant Installatioun",
"location_name_default": "Doheem" "location_name_default": "Doheem"
}, },
"integration": { "integration": {

View File

@ -1616,13 +1616,33 @@
"button": { "button": {
"name": "Poga" "name": "Poga"
}, },
"calendar": {
"description": "Kalendāra kartītē tiek attēlots kalendārs ar dienas, nedēļas un saraksta skatiem",
"name": "Kalendārs"
},
"config": {
"optional": "Neobligāti",
"required": "Nepieciešams"
},
"entities": { "entities": {
"toggle": "Pārslēgt vienības." "toggle": "Pārslēgt vienības."
}, },
"entity": {
"description": "Vienības kartīte sniedz īsu pārskatu par jūsu vienības stāvokli.",
"name": "Vienība"
},
"generic": { "generic": {
"attribute": "Atribūts",
"double_tap_action": "Dubultpieskāriena darbība",
"icon": "Ikona", "icon": "Ikona",
"search": "Meklēt",
"tap_action": "Pieskariena darbība",
"url": "URL" "url": "URL"
}, },
"humidifier": {
"description": "Mitrinātāja kartīte ļauj kontrolēt jūsu mitrinātāja vienību, sniedzot iespēju pielāgot vienības mitrumu un režīmu.",
"name": "Mitrinātājs"
},
"iframe": { "iframe": {
"name": "iFrame" "name": "iFrame"
}, },
@ -1630,7 +1650,11 @@
"name": "Gaisma" "name": "Gaisma"
}, },
"map": { "map": {
"dark_mode": "Tumšais izskats?",
"default_zoom": "Noklusējuma mērogs", "default_zoom": "Noklusējuma mērogs",
"description": "Kartes kartīte ļauj attēlot vienības kartē.",
"geo_location_sources": "Ģeogrāfiskās atrašanās vietas avoti",
"hours_to_show": "Parādāmās stundas",
"name": "Karte", "name": "Karte",
"source": "Avots" "source": "Avots"
}, },
@ -1641,10 +1665,27 @@
"picture": { "picture": {
"name": "Attēls" "name": "Attēls"
}, },
"plant-status": {
"name": "Auga statuss"
},
"sensor": { "sensor": {
"name": "Sensors" "name": "Sensors"
},
"shopping-list": {
"name": "Iepirkumu saraksts"
},
"thermostat": {
"name": "Termostats"
},
"weather-forecast": {
"name": "Laikapstākļu prognoze",
"show_forecast": "Rādīt laikapstākļu prognozi"
} }
}, },
"cardpicker": {
"custom_card": "Pielāgota",
"no_description": "Apraksts nav pieejams."
},
"edit_card": { "edit_card": {
"add": "Pievienot kartīti", "add": "Pievienot kartīti",
"delete": "Dzēst kartīti", "delete": "Dzēst kartīti",

View File

@ -26,7 +26,6 @@
"state_attributes": { "state_attributes": {
"climate": { "climate": {
"fan_mode": { "fan_mode": {
"auto": "",
"off": "Av", "off": "Av",
"on": "På" "on": "På"
}, },
@ -51,14 +50,11 @@
}, },
"humidifier": { "humidifier": {
"mode": { "mode": {
"auto": "",
"away": "Borte", "away": "Borte",
"baby": "",
"boost": "Øke", "boost": "Øke",
"comfort": "Komfort", "comfort": "Komfort",
"eco": "Øko", "eco": "Øko",
"home": "Hjem", "home": "Hjem",
"normal": "",
"sleep": "Sove" "sleep": "Sove"
} }
} }
@ -114,7 +110,6 @@
"on": "Lavt" "on": "Lavt"
}, },
"cold": { "cold": {
"off": "",
"on": "Kald" "on": "Kald"
}, },
"connectivity": { "connectivity": {
@ -165,10 +160,6 @@
"off": "Borte", "off": "Borte",
"on": "Hjemme" "on": "Hjemme"
}, },
"problem": {
"off": "",
"on": ""
},
"safety": { "safety": {
"off": "Sikker", "off": "Sikker",
"on": "Usikker" "on": "Usikker"
@ -238,7 +229,6 @@
"locked": "Låst", "locked": "Låst",
"not_home": "Borte", "not_home": "Borte",
"off": "Av", "off": "Av",
"ok": "",
"on": "På", "on": "På",
"open": "Åpen", "open": "Åpen",
"opening": "Åpner", "opening": "Åpner",
@ -270,7 +260,6 @@
"home": "Hjemme" "home": "Hjemme"
}, },
"plant": { "plant": {
"ok": "",
"problem": "Problem" "problem": "Problem"
}, },
"remote": { "remote": {
@ -376,7 +365,6 @@
"low": "lav", "low": "lav",
"on_off": "På / av", "on_off": "På / av",
"operation": "Operasjon", "operation": "Operasjon",
"preset_mode": "",
"swing_mode": "Svingmodus", "swing_mode": "Svingmodus",
"target_humidity": "Ønsket luftfuktighet", "target_humidity": "Ønsket luftfuktighet",
"target_temperature": "Ønsket temperatur", "target_temperature": "Ønsket temperatur",
@ -419,9 +407,16 @@
"unlock": "Lås opp" "unlock": "Lås opp"
}, },
"media_player": { "media_player": {
"browse_media": "Bla gjennom medier",
"media_next_track": "Neste",
"media_play": "Spille",
"media_play_pause": "Spill av/pause",
"media_previous_track": "Forrige",
"sound_mode": "Lydmodus", "sound_mode": "Lydmodus",
"source": "Kilde", "source": "Kilde",
"text_to_speak": "Tekst til tale" "text_to_speak": "Tekst til tale",
"turn_off": "Slå av",
"turn_on": "Slå på"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Avvis" "dismiss": "Avvis"
@ -440,9 +435,7 @@
"timer": { "timer": {
"actions": { "actions": {
"cancel": "Avbryt", "cancel": "Avbryt",
"finish": "Ferdig", "finish": "Ferdig"
"pause": "",
"start": ""
} }
}, },
"vacuum": { "vacuum": {
@ -474,12 +467,10 @@
"e": "Ø", "e": "Ø",
"ene": "ØNØ", "ene": "ØNØ",
"ese": "ØSØ", "ese": "ØSØ",
"n": "",
"ne": "NØ", "ne": "NØ",
"nne": "NNØ", "nne": "NNØ",
"nnw": "NNV", "nnw": "NNV",
"nw": "NV", "nw": "NV",
"s": "",
"se": "SØ", "se": "SØ",
"sse": "SSØ", "sse": "SSØ",
"ssw": "SSV", "ssw": "SSV",
@ -554,6 +545,22 @@
"loading_history": "Laster statushistorikk...", "loading_history": "Laster statushistorikk...",
"no_history_found": "Ingen statushistorikk funnet." "no_history_found": "Ingen statushistorikk funnet."
}, },
"media-browser": {
"choose-source": "Velg kilde",
"content-type": {
"album": "Album",
"artist": "Artist",
"library": "Bibliotek",
"playlist": "Spilleliste",
"server": "Server"
},
"media-player-browser": "Nettleser for Mediespiller",
"no_items": "Ingen elementer",
"pick": "Velg",
"pick-media": "Velg Media",
"play": "Spille",
"play-media": "Spill media"
},
"picture-upload": { "picture-upload": {
"label": "Bilde", "label": "Bilde",
"unsupported_format": "Formatet støttes ikke, vennligst velge et JPEG-, PNG- eller GIF-bilde." "unsupported_format": "Formatet støttes ikke, vennligst velge et JPEG-, PNG- eller GIF-bilde."
@ -578,6 +585,7 @@
"week": "{count} {count, plural,\n one {uke}\n other {uker}\n}" "week": "{count} {count, plural,\n one {uke}\n other {uker}\n}"
}, },
"future": "om {time}", "future": "om {time}",
"just_now": "Akkurat nå",
"never": "Aldri", "never": "Aldri",
"past": "{time} siden" "past": "{time} siden"
}, },
@ -619,8 +627,7 @@
"generic": { "generic": {
"cancel": "Avbryt", "cancel": "Avbryt",
"close": "Lukk", "close": "Lukk",
"default_confirmation_title": "Er du sikker?", "default_confirmation_title": "Er du sikker?"
"ok": ""
}, },
"helper_settings": { "helper_settings": {
"generic": { "generic": {
@ -694,11 +701,8 @@
"commands": "Støvsugerkommandoer:", "commands": "Støvsugerkommandoer:",
"fan_speed": "Viftehastighet", "fan_speed": "Viftehastighet",
"locate": "Lokaliser", "locate": "Lokaliser",
"pause": "",
"return_home": "Returner hjem", "return_home": "Returner hjem",
"start": "",
"start_pause": "Start / Pause", "start_pause": "Start / Pause",
"status": "",
"stop": "Stopp" "stop": "Stopp"
} }
}, },
@ -745,7 +749,6 @@
"manuf": "av {manufacturer}", "manuf": "av {manufacturer}",
"no_area": "Intet område", "no_area": "Intet område",
"power_source": "Strømkilde", "power_source": "Strømkilde",
"quirk": "",
"services": { "services": {
"reconfigure": "Rekonfigurer ZHA-enhet (heal enhet). Bruk dette hvis du har problemer med enheten. Hvis den aktuelle enheten er en batteridrevet enhet, sørg for at den er våken og aksepterer kommandoer når du bruker denne tjenesten.", "reconfigure": "Rekonfigurer ZHA-enhet (heal enhet). Bruk dette hvis du har problemer med enheten. Hvis den aktuelle enheten er en batteridrevet enhet, sørg for at den er våken og aksepterer kommandoer når du bruker denne tjenesten.",
"remove": "Fjern en enhet fra Zigbee-nettverket.", "remove": "Fjern en enhet fra Zigbee-nettverket.",
@ -1029,9 +1032,7 @@
}, },
"homeassistant": { "homeassistant": {
"event": "Hendelse:", "event": "Hendelse:",
"label": "", "shutdown": "Slå av"
"shutdown": "Slå av",
"start": ""
}, },
"mqtt": { "mqtt": {
"label": "MQTT", "label": "MQTT",
@ -1045,7 +1046,6 @@
"value_template": "Verdi fra mal (valgfritt)" "value_template": "Verdi fra mal (valgfritt)"
}, },
"state": { "state": {
"for": "",
"from": "Fra", "from": "Fra",
"label": "Tilstand", "label": "Tilstand",
"to": "Til" "to": "Til"
@ -1074,10 +1074,6 @@
"at": "Klokken", "at": "Klokken",
"label": "Tid" "label": "Tid"
}, },
"webhook": {
"label": "",
"webhook_id": ""
},
"zone": { "zone": {
"enter": "Ankommer", "enter": "Ankommer",
"entity": "Entitet med posisjon", "entity": "Entitet med posisjon",
@ -1117,12 +1113,11 @@
"enable_ha_skill": "Aktivere Home Assistant-ferdigheten for Alexa", "enable_ha_skill": "Aktivere Home Assistant-ferdigheten for Alexa",
"enable_state_reporting": "Aktiver tilstandsrapportering", "enable_state_reporting": "Aktiver tilstandsrapportering",
"info": "Med Alexa-integrasjonen for Home Assistant Cloud vil du kunne kontrollere alle dine Home Assistant-enheter via hvilken som helst Alexa-aktivert enhet.", "info": "Med Alexa-integrasjonen for Home Assistant Cloud vil du kunne kontrollere alle dine Home Assistant-enheter via hvilken som helst Alexa-aktivert enhet.",
"info_state_reporting": "Hvis du aktiverer tilstandsrapportering, vil Home Assistant sende alle tilstandsendringer av utsatte enheter til Amazon. Dette lar deg alltid se de siste tilstandene i Alexa-appen og bruke tilstandsendringene til å lage rutiner.", "info_state_reporting": "Hvis du aktiverer tilstandsrapportering, vil Home Assistant sende alle tilstandsendringer av eksponerte entiteter til Amazon. Dette lar deg alltid se de siste tilstandene i Alexa-appen og bruke tilstandsendringene til å lage rutiner.",
"manage_entities": "Håndtér entiteter", "manage_entities": "Håndtér entiteter",
"state_reporting_error": "Kan ikke {enable_disable} rapportere status.", "state_reporting_error": "Kan ikke {enable_disable} rapportere status.",
"sync_entities": "Synkronisér entiteter", "sync_entities": "Synkronisér entiteter",
"sync_entities_error": "Kunne ikke synkronisere entiteter:", "sync_entities_error": "Kunne ikke synkronisere entiteter:"
"title": ""
}, },
"connected": "Tilkoblet", "connected": "Tilkoblet",
"connection_status": "Status for skytilkobling", "connection_status": "Status for skytilkobling",
@ -1136,12 +1131,11 @@
"enter_pin_hint": "Angi en PIN-kode for å bruke sikkerhetsenheter", "enter_pin_hint": "Angi en PIN-kode for å bruke sikkerhetsenheter",
"enter_pin_info": "Angi en PIN-kode for å samhandle med sikkerhetsenheter. Sikkerhetsanordninger er dører, garasjeporter og låser. Du vil bli bedt om å si/angi denne PIN-koden når du samhandler med slike enheter via Google Assistant.", "enter_pin_info": "Angi en PIN-kode for å samhandle med sikkerhetsenheter. Sikkerhetsanordninger er dører, garasjeporter og låser. Du vil bli bedt om å si/angi denne PIN-koden når du samhandler med slike enheter via Google Assistant.",
"info": "Med Google Assistant-integrasjonen for Home Assistant Cloud vil du kunne kontrollere alle dine Home Assistant-enheter via hvilken som helst Google Assistant-aktivert enhet.", "info": "Med Google Assistant-integrasjonen for Home Assistant Cloud vil du kunne kontrollere alle dine Home Assistant-enheter via hvilken som helst Google Assistant-aktivert enhet.",
"info_state_reporting": "Hvis du aktiverer tilstandsrapportering, vil Home Assistant sende alle tilstandsendringer av utsatte enheter til Google. Dette lar deg alltid se de nyeste delene av Google-appen.", "info_state_reporting": "Hvis du aktiverer tilstandsrapportering, vil Home Assistant sende alle tilstandsendringer av eksponerte entiteter til Google. Dette lar deg alltid se de siste tilstandene i Google-appen.",
"manage_entities": "Håndtér entiteter", "manage_entities": "Håndtér entiteter",
"security_devices": "Sikkerhetsenheter", "security_devices": "Sikkerhetsenheter",
"sync_entities": "Synkronisér entiteter til Google", "sync_entities": "Synkronisér entiteter til Google",
"sync_entities_404_message": "Kunne ikke synkronisere enhetene dine med Google, be Google 'Hei Google, synkroniser enhetene mine' for å synkronisere enhetene dine.", "sync_entities_404_message": "Kunne ikke synkronisere enhetene dine med Google, be Google 'Hei Google, synkroniser enhetene mine' for å synkronisere enhetene dine."
"title": ""
}, },
"integrations": "Integrasjoner", "integrations": "Integrasjoner",
"integrations_introduction": "Integrasjoner for Home Assistant Cloud lar deg koble til tjenester i skyen uten å måtte avsløre Home Assistant-forekomsten offentlig på internett.", "integrations_introduction": "Integrasjoner for Home Assistant Cloud lar deg koble til tjenester i skyen uten å måtte avsløre Home Assistant-forekomsten offentlig på internett.",
@ -1170,18 +1164,15 @@
"no_hooks_yet": "Ser ut som du ikke har noen webhooks ennå. Kom i gang ved å konfigurere en ", "no_hooks_yet": "Ser ut som du ikke har noen webhooks ennå. Kom i gang ved å konfigurere en ",
"no_hooks_yet_link_automation": "webhook-automasjon", "no_hooks_yet_link_automation": "webhook-automasjon",
"no_hooks_yet_link_integration": "webhook-basert integrasjon", "no_hooks_yet_link_integration": "webhook-basert integrasjon",
"no_hooks_yet2": " eller ved å opprette en ", "no_hooks_yet2": " eller ved å opprette en "
"title": ""
} }
}, },
"alexa": { "alexa": {
"banner": "Redigere hvilke entiteter som vises via dette grensesnittet er deaktivert fordi du har konfigurert entitetsfiltre i configuration.yaml.", "banner": "Redigere hvilke entiteter som vises via dette grensesnittet er deaktivert fordi du har konfigurert entitetsfilter i configuration.yaml.",
"expose": "Eksponer til Alexa", "expose": "Eksponer til Alexa",
"exposed_entities": "Eksponerte entiteter", "exposed_entities": "Eksponerte entiteter",
"not_exposed_entities": "Ikke-eksponerte entiteter", "not_exposed_entities": "Ikke-eksponerte entiteter"
"title": ""
}, },
"caption": "",
"description_features": "Kontroller borte fra hjemmet, integrer med Alexa og Google Assistant.", "description_features": "Kontroller borte fra hjemmet, integrer med Alexa og Google Assistant.",
"description_login": "Logget inn som {email}", "description_login": "Logget inn som {email}",
"description_not_login": "Ikke pålogget", "description_not_login": "Ikke pålogget",
@ -1213,13 +1204,12 @@
"title": "Glemt passord" "title": "Glemt passord"
}, },
"google": { "google": {
"banner": "Redigere hvilke entiteter som vises via dette grensesnittet er deaktivert fordi du har konfigurert entitetsfiltre i configuration.yaml.", "banner": "Redigere hvilke entiteter som vises via dette grensesnittet er deaktivert fordi du har konfigurert entitetsfilter i configuration.yaml.",
"disable_2FA": "Deaktiver totrinnsbekreftelse", "disable_2FA": "Deaktiver totrinnsbekreftelse",
"expose": "Eksponer til Google Assistant", "expose": "Eksponer til Google Assistant",
"exposed_entities": "Eksponerte entiteter", "exposed_entities": "Eksponerte entiteter",
"not_exposed_entities": "Ikke-eksponerte entiteter", "not_exposed_entities": "Ikke-eksponerte entiteter",
"sync_to_google": "Synkroniserer endringer til Google.", "sync_to_google": "Synkroniserer endringer til Google."
"title": ""
}, },
"login": { "login": {
"alert_email_confirm_necessary": "Du må bekrefte e-posten din før du logger inn.", "alert_email_confirm_necessary": "Du må bekrefte e-posten din før du logger inn.",
@ -1318,6 +1308,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Ingen {navn} er lagt til ved hjelp av denne enheten ennå. Du kan legge til en ved å klikke på + knappen ovenfor.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Når noe er utløst..." "caption": "Når noe er utløst..."
@ -1392,7 +1383,6 @@
"confirm_title": "Vil du aktivere {number} enheter?" "confirm_title": "Vil du aktivere {number} enheter?"
}, },
"filter": { "filter": {
"filter": "",
"show_disabled": "Vis deaktiverte entiteter", "show_disabled": "Vis deaktiverte entiteter",
"show_readonly": "Vis skrivebeskyttede enheter", "show_readonly": "Vis skrivebeskyttede enheter",
"show_unavailable": "Vis utilgjengelige enheter" "show_unavailable": "Vis utilgjengelige enheter"
@ -1401,8 +1391,7 @@
"headers": { "headers": {
"entity_id": "Entitets-ID", "entity_id": "Entitets-ID",
"integration": "Integrasjon", "integration": "Integrasjon",
"name": "Navn", "name": "Navn"
"status": ""
}, },
"introduction": "Home Assistant bygger opp et register over hver entitet den har sett som kan identifiseres unikt. Hver av disse entitetene vil ha en ID som er reservert kun til denne.", "introduction": "Home Assistant bygger opp et register over hver entitet den har sett som kan identifiseres unikt. Hver av disse entitetene vil ha en ID som er reservert kun til denne.",
"introduction2": "Bruk entitetsregistret til å overstyre navnet, endre id-en eller fjerne den fra Home Assistant.", "introduction2": "Bruk entitetsregistret til å overstyre navnet, endre id-en eller fjerne den fra Home Assistant.",
@ -1417,7 +1406,6 @@
"selected": "{number} valgte", "selected": "{number} valgte",
"status": { "status": {
"disabled": "Deaktivert", "disabled": "Deaktivert",
"ok": "",
"readonly": "Skrivebeskyttet", "readonly": "Skrivebeskyttet",
"restored": "Gjennopprettet", "restored": "Gjennopprettet",
"unavailable": "Utilgjengelig" "unavailable": "Utilgjengelig"
@ -1442,8 +1430,7 @@
"headers": { "headers": {
"editable": "Redigerbare", "editable": "Redigerbare",
"entity_id": "Entitets-ID", "entity_id": "Entitets-ID",
"name": "Navn", "name": "Navn"
"type": ""
}, },
"no_helpers": "Det ser ut som om du ikke har noen hjelpere ennå!" "no_helpers": "Det ser ut som om du ikke har noen hjelpere ennå!"
}, },
@ -1451,7 +1438,6 @@
"input_boolean": "Veksle", "input_boolean": "Veksle",
"input_datetime": "Dato og/eller klokkeslett", "input_datetime": "Dato og/eller klokkeslett",
"input_number": "Nummer", "input_number": "Nummer",
"input_select": "",
"input_text": "Tekst" "input_text": "Tekst"
} }
}, },
@ -1464,7 +1450,6 @@
"documentation": "Dokumentasjon", "documentation": "Dokumentasjon",
"frontend": "frontend", "frontend": "frontend",
"frontend_version": "Brukergrensesnittet-versjon: {version} - {type}", "frontend_version": "Brukergrensesnittet-versjon: {version} - {type}",
"home_assistant_logo": "",
"icons_by": "Ikoner fra", "icons_by": "Ikoner fra",
"integrations": "Integrasjoner", "integrations": "Integrasjoner",
"issues": "Problemer", "issues": "Problemer",
@ -1500,6 +1485,9 @@
"no_device": "Oppføringer uten enheter", "no_device": "Oppføringer uten enheter",
"no_devices": "Denne integrasjonen har ingen enheter.", "no_devices": "Denne integrasjonen har ingen enheter.",
"options": "Alternativer", "options": "Alternativer",
"reload": "Last inn på nytt",
"reload_confirm": "Integreringen ble lastet på nytt",
"reload_restart_confirm": "Start Home Assistant på nytt for å fullføre omlastingen av denne integreringen",
"rename": "Gi nytt navn", "rename": "Gi nytt navn",
"restart_confirm": "Start Home Assistant på nytt for å fullføre fjerningen av denne integrasjonen", "restart_confirm": "Start Home Assistant på nytt for å fullføre fjerningen av denne integrasjonen",
"settings_button": "Rediger innstillinger for {integration}", "settings_button": "Rediger innstillinger for {integration}",
@ -1592,7 +1580,6 @@
"title": "Tittel", "title": "Tittel",
"title_required": "Tittel er påkrevd.", "title_required": "Tittel er påkrevd.",
"update": "Oppdater", "update": "Oppdater",
"url": "",
"url_error_msg": "URLen skal inneholde en - og kan ikke inneholde mellomrom eller spesialtegn, bortsett fra _ og -" "url_error_msg": "URLen skal inneholde en - og kan ikke inneholde mellomrom eller spesialtegn, bortsett fra _ og -"
}, },
"picker": { "picker": {
@ -1620,17 +1607,12 @@
"new_resource": "Legg til ny ressurs", "new_resource": "Legg til ny ressurs",
"type": "Ressurstype", "type": "Ressurstype",
"update": "Oppdater", "update": "Oppdater",
"url": "",
"url_error_msg": "URL-adresse er et obligatorisk felt", "url_error_msg": "URL-adresse er et obligatorisk felt",
"warning_header": "Vær forsiktig!", "warning_header": "Vær forsiktig!",
"warning_text": "Det kan være farlig å legge til ressurser, sørg for at du kjenner kilden til ressursen og stoler på dem. Dårlige ressurser kan skade systemet ditt alvorlig." "warning_text": "Det kan være farlig å legge til ressurser, sørg for at du kjenner kilden til ressursen og stoler på dem. Dårlige ressurser kan skade systemet ditt alvorlig."
}, },
"picker": { "picker": {
"add_resource": "Legg til ressurs", "add_resource": "Legg til ressurs",
"headers": {
"type": "",
"url": ""
},
"no_resources": "Ingen ressurser" "no_resources": "Ingen ressurser"
}, },
"refresh_body": "Du må oppdatere siden for å fullføre fjerningen, vil du oppdatere nå?", "refresh_body": "Du må oppdatere siden for å fullføre fjerningen, vil du oppdatere nå?",
@ -1658,7 +1640,11 @@
"topic": "emne" "topic": "emne"
}, },
"ozw": { "ozw": {
"button": "Konfigurer",
"common": { "common": {
"controller": "Kontroller",
"instance": "Forekomst",
"network": "Nettverk",
"node_id": "Node-ID", "node_id": "Node-ID",
"ozw_instance": "OpenZWave Instance", "ozw_instance": "OpenZWave Instance",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1654,36 @@
"stage": "Scene", "stage": "Scene",
"zwave_info": "Z-Wave Info" "zwave_info": "Z-Wave Info"
}, },
"navigation": {
"network": "Nettverk",
"nodes": "Noder",
"select_instance": "Velg Forekomst"
},
"network_status": {
"details": {
"driverallnodesqueried": "Alle noder har blitt spurt",
"driverallnodesqueriedsomedead": "Alle noder har blitt spurt. Noen noder ble funnet døde",
"driverawakenodesqueries": "Alle våkne noder har blitt spurt",
"driverfailed": "Kunne ikke koble til Z-Wave-kontrolleren",
"driverready": "Initialiserer Z-Wave-kontrolleren",
"driverremoved": "Driveren er blitt fjernet",
"driverreset": "Driveren har blitt tilbakestilt",
"offline": "OZWDaemon frakoblet",
"ready": "Klar til å koble til",
"started": "Koblet til MQTT",
"starting": "Koble til MQTT",
"stopped": "OpenZWave stoppet"
},
"offline": "Frakoblet",
"online": "Online",
"starting": "Starter",
"unknown": "Ukjent"
},
"network": {
"header": "Nettverksadministrasjon",
"introduction": "Administrer funksjoner for hele nettverket.",
"node_count": "{count} noder"
},
"node_query_stages": { "node_query_stages": {
"associations": "Oppdatere tilknytningsgrupper og medlemskap", "associations": "Oppdatere tilknytningsgrupper og medlemskap",
"cacheload": "Laste inn informasjon fra Cachefilen for OpenZWave. Batterinoder vil bli på dette stadiet til noden våkner.", "cacheload": "Laste inn informasjon fra Cachefilen for OpenZWave. Batterinoder vil bli på dette stadiet til noden våkner.",
@ -1698,6 +1714,14 @@
"title": "Oppdater nodeinformasjon", "title": "Oppdater nodeinformasjon",
"wakeup_header": "Wakeup Instruksjoner for", "wakeup_header": "Wakeup Instruksjoner for",
"wakeup_instructions_source": "Wakeup-instruksjoner hentes fra OpenZWave-fellesskapets enhetsdatabase." "wakeup_instructions_source": "Wakeup-instruksjoner hentes fra OpenZWave-fellesskapets enhetsdatabase."
},
"select_instance": {
"header": "Velg en OpenZWave-forekomst",
"introduction": "Du har mer enn én OpenZWave-forekomst som kjører. Hvilken forekomst vil du administrere?"
},
"services": {
"add_node": "Legg til node",
"remove_node": "Fjern node"
} }
}, },
"person": { "person": {
@ -1823,18 +1847,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Last inn automasjoner på nytt", "automation": "Last inn automasjoner på nytt",
"command_line": "Last inn kommandolinje entiteter på nytt",
"core": "Last inn lokasjon og spesialtilpassinger på nytt", "core": "Last inn lokasjon og spesialtilpassinger på nytt",
"filesize": "Last inn filstørrelse entiteter på nytt",
"filter": "Last inn filter entiteter på nytt",
"generic": "Last inn generiske IP-kamera entiteter på nytt",
"generic_thermostat": "Last inn generiske termostat entiteter på nytt",
"group": "Last inn grupper på nytt", "group": "Last inn grupper på nytt",
"heading": "YAML -Konfigurasjon lastes på nytt", "heading": "YAML -Konfigurasjon lastes på nytt",
"input_boolean": "Last inn bolsk inndata på nytt", "history_stats": "Last inn historiske tilstander på nytt",
"input_datetime": "Last inn dato inndata på nytt", "homekit": "Last inn HomeKit på nytt",
"input_number": "Last inn nummer inndata på nytt", "input_boolean": "Last inn inndata bolsk på nytt",
"input_select": "Last inn valg inndata på nytt ", "input_datetime": "Last inn inndata datotid på nytt",
"input_text": "Last inn tekst inndata på nytt", "input_number": "Last inn numerisk inndata på nytt",
"input_select": "Last inn inndata valg på nytt",
"input_text": "Last inn inndata tekst på nytt",
"introduction": "Noen deler av Home Assistant kan laste inn uten å kreve omstart. Hvis du trykker last på nytt, vil du bytte den nåværende konfigurasjonen med den nye.", "introduction": "Noen deler av Home Assistant kan laste inn uten å kreve omstart. Hvis du trykker last på nytt, vil du bytte den nåværende konfigurasjonen med den nye.",
"min_max": "Last inn min/maks entiteter på nytt",
"person": "Last inn personer på nytt", "person": "Last inn personer på nytt",
"ping": "Last inn ping binære sensor entiteter på nytt",
"rest": "Last inn REST entiteter på nytt",
"scene": "Last inn scener på nytt", "scene": "Last inn scener på nytt",
"script": "Last inn skript på nytt", "script": "Last inn skript på nytt",
"statistics": "Last inn statistiske entiteter på nytt",
"template": "Laste inn mal entiteter på nytt",
"trend": "Laste inn trend entiteter på nytt",
"universal": "Laste inn universelle mediespiller entiteter på nytt",
"zone": "Last inn soner på nytt" "zone": "Last inn soner på nytt"
}, },
"server_management": { "server_management": {
@ -1876,6 +1914,7 @@
"last_scanned": "Sist skannet", "last_scanned": "Sist skannet",
"name": "Navn" "name": "Navn"
}, },
"never_scanned": "Aldri skannet",
"no_tags": "Ingen tagger", "no_tags": "Ingen tagger",
"write": "Skrive" "write": "Skrive"
}, },
@ -1885,6 +1924,8 @@
"create": "Opprett", "create": "Opprett",
"name": "Navn", "name": "Navn",
"password": "Passord", "password": "Passord",
"password_confirm": "Bekreft passord",
"password_not_match": "Passord samsvarer ikke",
"username": "Brukernavn" "username": "Brukernavn"
}, },
"caption": "Brukere", "caption": "Brukere",
@ -1892,7 +1933,6 @@
"editor": { "editor": {
"activate_user": "Aktiver bruker", "activate_user": "Aktiver bruker",
"active": "Aktiv", "active": "Aktiv",
"admin": "",
"caption": "Vis bruker", "caption": "Vis bruker",
"change_password": "Endre passord", "change_password": "Endre passord",
"confirm_user_deletion": "Er du sikker på at du vil slette {name} ?", "confirm_user_deletion": "Er du sikker på at du vil slette {name} ?",
@ -1901,7 +1941,9 @@
"group": "Gruppe", "group": "Gruppe",
"id": "Id", "id": "Id",
"name": "Navn", "name": "Navn",
"new_password": "Nytt passord",
"owner": "Eier", "owner": "Eier",
"password_changed": "Passordet er endret!",
"system_generated": "System opprettet", "system_generated": "System opprettet",
"system_generated_users_not_editable": "Kan ikke oppdatere systemopprettede brukere.", "system_generated_users_not_editable": "Kan ikke oppdatere systemopprettede brukere.",
"system_generated_users_not_removable": "Kan ikke fjerne systemopprettede brukere.", "system_generated_users_not_removable": "Kan ikke fjerne systemopprettede brukere.",
@ -1911,8 +1953,7 @@
"picker": { "picker": {
"headers": { "headers": {
"group": "Gruppe", "group": "Gruppe",
"name": "Navn", "name": "Navn"
"system": ""
} }
}, },
"users_privileges_note": "Brukere-gruppen er et pågående arbeid. Brukeren kan ikke administrere forekomsten via brukergrensesnittet. Vi reviderer fortsatt alle API-endepunkter for å sikre at de begrenser tilgangen til administratorer på riktig måte." "users_privileges_note": "Brukere-gruppen er et pågående arbeid. Brukeren kan ikke administrere forekomsten via brukergrensesnittet. Vi reviderer fortsatt alle API-endepunkter for å sikre at de begrenser tilgangen til administratorer på riktig måte."
@ -1932,7 +1973,6 @@
"description": "Legg til enheter i Zigbee-nettverket" "description": "Legg til enheter i Zigbee-nettverket"
}, },
"button": "Konfigurer", "button": "Konfigurer",
"caption": "",
"cluster_attributes": { "cluster_attributes": {
"attributes_of_cluster": "Attributter for den valgte klyngen", "attributes_of_cluster": "Attributter for den valgte klyngen",
"get_zigbee_attribute": "Hent ZigBee-attributt", "get_zigbee_attribute": "Hent ZigBee-attributt",
@ -2040,7 +2080,6 @@
"new_zone": "Ny sone", "new_zone": "Ny sone",
"passive": "Passiv", "passive": "Passiv",
"passive_note": "Passive soner er skjult i grensesnittet og brukes ikke som sted for enhetssporere. Dette er nyttig hvis du bare vil bruke dem til automasjoner.", "passive_note": "Passive soner er skjult i grensesnittet og brukes ikke som sted for enhetssporere. Dette er nyttig hvis du bare vil bruke dem til automasjoner.",
"radius": "",
"required_error_msg": "Dette feltet er påkrevd", "required_error_msg": "Dette feltet er påkrevd",
"update": "Oppdater" "update": "Oppdater"
}, },
@ -2154,11 +2193,11 @@
"data": "Hendelsesdata (YAML, valgfritt)", "data": "Hendelsesdata (YAML, valgfritt)",
"description": "Send ut en hendelse på hendelsesbussen", "description": "Send ut en hendelse på hendelsesbussen",
"documentation": "Hendelsesdokumentasjon.", "documentation": "Hendelsesdokumentasjon.",
"event_fired": "Hendelse {name} avfyrt", "event_fired": "Hendelse {name} utført",
"fire_event": "Utfør hendelse", "fire_event": "Utfør hendelse",
"listen_to_events": "Lytt til hendelser", "listen_to_events": "Lytt til hendelser",
"listening_to": "Lytte til", "listening_to": "Lytte til",
"notification_event_fired": "Hendelse {type} vellykket avfyrt!", "notification_event_fired": "Hendelsen {type} vellykket utløst!",
"start_listening": "Begynn å lytte", "start_listening": "Begynn å lytte",
"stop_listening": "Stopp lytting", "stop_listening": "Stopp lytting",
"subscribe_to": "Hendelse for å abonnere på", "subscribe_to": "Hendelse for å abonnere på",
@ -2170,7 +2209,6 @@
"call_service": "Tilkall tjeneste", "call_service": "Tilkall tjeneste",
"column_description": "Beskrivelse", "column_description": "Beskrivelse",
"column_example": "Eksempel", "column_example": "Eksempel",
"column_parameter": "",
"data": "Tjenestedata (YAML, valgfritt)", "data": "Tjenestedata (YAML, valgfritt)",
"description": "Service utviklingsverktøyet lar deg tilkalle alle tilgjengelige tjenester i Home Assistant.", "description": "Service utviklingsverktøyet lar deg tilkalle alle tilgjengelige tjenester i Home Assistant.",
"fill_example_data": "Fyll ut eksempeldata", "fill_example_data": "Fyll ut eksempeldata",
@ -2186,20 +2224,21 @@
"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.",
"entity": "Entitet", "entity": "Entitet",
"filter_attributes": "Filtrer attributter", "filter_attributes": "Filtrere attributter",
"filter_entities": "Filtrér entiteter", "filter_entities": "Filtrere entiteter",
"filter_states": "Filtrer tilstander", "filter_states": "Filtrere tilstander",
"more_info": "Mer info", "more_info": "Mer info",
"no_entities": "Ingen entiteter", "no_entities": "Ingen entiteter",
"set_state": "Sett tilstand", "set_state": "Sett tilstand",
"state": "Tilstand", "state": "Tilstand",
"state_attributes": "Tilstandsattributter (YAML, valgfritt)", "state_attributes": "Tilstandsattributter (YAML, valgfritt)",
"title": "Statuser" "title": "Tilstander"
}, },
"templates": { "templates": {
"description": "Maler blir rendret ved hjelp av Jinja2-malmotoren med noen spesifikke utvidelser for Home Assistant.", "description": "Maler blir rendret ved hjelp av Jinja2-malmotoren med noen spesifikke utvidelser for Home Assistant.",
"editor": "Maleditor", "editor": "Maleditor",
"jinja_documentation": "Jinja2 mal dokumentasjon", "jinja_documentation": "Jinja2 mal dokumentasjon",
"reset": "Tilbakestill til demomal",
"template_extensions": "Mal utvidelser for Home Assistant", "template_extensions": "Mal utvidelser for Home Assistant",
"title": "Mal", "title": "Mal",
"unknown_error_template": "Ukjent feil ved rendring av mal" "unknown_error_template": "Ukjent feil ved rendring av mal"
@ -2245,7 +2284,6 @@
}, },
"picture-elements": { "picture-elements": {
"call_service": "Tilkall tjeneste {name}", "call_service": "Tilkall tjeneste {name}",
"hold": "",
"more_info": "Vis mer info: {name}", "more_info": "Vis mer info: {name}",
"navigate_to": "Naviger til {location}", "navigate_to": "Naviger til {location}",
"tap": "Trykk:", "tap": "Trykk:",
@ -2281,6 +2319,10 @@
"description": "The Button card lar deg legge til knapper for å utføre oppgaver.", "description": "The Button card lar deg legge til knapper for å utføre oppgaver.",
"name": "Knapp" "name": "Knapp"
}, },
"calendar": {
"description": "Kalenderkortet viser en kalender som inkluderer dag, uke og listevisninger",
"name": "Kalender"
},
"conditional": { "conditional": {
"card": "Kort", "card": "Kort",
"change_type": "Endre type", "change_type": "Endre type",
@ -2303,7 +2345,7 @@
"toggle": "Aktivér/deaktivér entiteter." "toggle": "Aktivér/deaktivér entiteter."
}, },
"entity-filter": { "entity-filter": {
"description": "Entity Filter-kortet lar deg definere en liste over entiteter du bare vil spore når de er i en viss tilstand.", "description": "Entitetsfilter kortet lar deg definere en liste over entiteter du bare vil spore når de er i en viss tilstand.",
"name": "Entitetsfilter" "name": "Entitetsfilter"
}, },
"entity": { "entity": {
@ -2336,7 +2378,6 @@
"manual": "Manuell", "manual": "Manuell",
"manual_description": "Trenger du å legge til et tilpasset kort eller bare ønsker å skrive yaml manuelt?", "manual_description": "Trenger du å legge til et tilpasset kort eller bare ønsker å skrive yaml manuelt?",
"maximum": "Maksimalt", "maximum": "Maksimalt",
"minimum": "",
"name": "Navn", "name": "Navn",
"no_theme": "Ingen tema", "no_theme": "Ingen tema",
"refresh_interval": "Oppdateringsintervall", "refresh_interval": "Oppdateringsintervall",
@ -2346,11 +2387,11 @@
"show_name": "Vis navn?", "show_name": "Vis navn?",
"show_state": "Vis tilstand?", "show_state": "Vis tilstand?",
"state": "Tilstand", "state": "Tilstand",
"state_color": "Fargeikoner basert på tilstand?",
"tap_action": "Trykk handling", "tap_action": "Trykk handling",
"theme": "Tema", "theme": "Tema",
"title": "Tittel", "title": "Tittel",
"unit": "Betegnelse", "unit": "Betegnelse"
"url": ""
}, },
"glance": { "glance": {
"columns": "Kolonner", "columns": "Kolonner",
@ -2388,8 +2429,7 @@
}, },
"markdown": { "markdown": {
"content": "Innhold", "content": "Innhold",
"description": "Markdown-kortet brukes til å gjengi Markdown.", "description": "Markdown-kortet brukes til å gjengi Markdown."
"name": ""
}, },
"media-control": { "media-control": {
"description": "Media Control-kortet brukes til å vise mediespillerenheter på et grensesnitt med brukervennlige kontroller.", "description": "Media Control-kortet brukes til å vise mediespillerenheter på et grensesnitt med brukervennlige kontroller.",
@ -2400,7 +2440,7 @@
"name": "Bildeelementer" "name": "Bildeelementer"
}, },
"picture-entity": { "picture-entity": {
"description": "Picture Entity-kortet viser en entitet i form av et bilde. I stedet for bilder fra URL, kan det også vise bilde av kameraentiteter.", "description": "Bilde entitet kortet viser en entitet i form av et bilde. I stedet for bilder fra URL, kan det også vise bilde av kameraentiteter.",
"name": "Bildeoppføring" "name": "Bildeoppføring"
}, },
"picture-glance": { "picture-glance": {
@ -2418,8 +2458,7 @@
"sensor": { "sensor": {
"description": "Sensorkortet gir deg en rask oversikt over sensortilstanden din med en valgfri graf for å visualisere endring over tid.", "description": "Sensorkortet gir deg en rask oversikt over sensortilstanden din med en valgfri graf for å visualisere endring over tid.",
"graph_detail": "Detaljer for graf", "graph_detail": "Detaljer for graf",
"graph_type": "Graf type", "graph_type": "Graf type"
"name": ""
}, },
"shopping-list": { "shopping-list": {
"description": "På Shopping List-kortet kan du legge til, redigere, sjekke av og fjerne gjenstander fra handlelisten din.", "description": "På Shopping List-kortet kan du legge til, redigere, sjekke av og fjerne gjenstander fra handlelisten din.",
@ -2722,7 +2761,6 @@
"upstairs": "Oppe" "upstairs": "Oppe"
}, },
"unit": { "unit": {
"minutes_abbr": "",
"watching": "Ser på" "watching": "Ser på"
} }
} }
@ -2735,6 +2773,7 @@
"intro": "Hei {name}, velkommen til Home Assistant. Hva ønsker du å kalle hjemmet ditt?", "intro": "Hei {name}, velkommen til Home Assistant. Hva ønsker du å kalle hjemmet ditt?",
"intro_location": "Vi vil gjerne vite hvor du bor. Denne informasjonen vil bidra til å vise informasjon og sette opp automasjon basert på solen. Dette deles ikke ut av nettet ditt.", "intro_location": "Vi vil gjerne vite hvor du bor. Denne informasjonen vil bidra til å vise informasjon og sette opp automasjon basert på solen. Dette deles ikke ut av nettet ditt.",
"intro_location_detect": "Vi kan hjelpe deg med å fylle ut denne informasjonen ved å gjøre en engangsforespørsel til en ekstern tjeneste.", "intro_location_detect": "Vi kan hjelpe deg med å fylle ut denne informasjonen ved å gjøre en engangsforespørsel til en ekstern tjeneste.",
"location_name": "Navn på installasjonen av Home Assistant",
"location_name_default": "Hjem" "location_name_default": "Hjem"
}, },
"integration": { "integration": {
@ -2775,9 +2814,7 @@
}, },
"current_user": "Du er logget inn som {fullName}.", "current_user": "Du er logget inn som {fullName}.",
"dashboard": { "dashboard": {
"description": "Velg et standard instrumentbord for denne enheten.", "description": "Velg et standard instrumentbord for denne enheten."
"dropdown_label": "",
"header": ""
}, },
"force_narrow": { "force_narrow": {
"description": "Dette vil skjule sidepanelet som standard, tilsvarende opplevelsen på en mobil.", "description": "Dette vil skjule sidepanelet som standard, tilsvarende opplevelsen på en mobil.",

View File

@ -419,9 +419,16 @@
"unlock": "Ontgrendelen" "unlock": "Ontgrendelen"
}, },
"media_player": { "media_player": {
"browse_media": "Door media bladeren",
"media_next_track": "Volgende",
"media_play": "Speel",
"media_play_pause": "Afspelen/pauzeren",
"media_previous_track": "Vorige",
"sound_mode": "Geluidsmodus", "sound_mode": "Geluidsmodus",
"source": "Bron", "source": "Bron",
"text_to_speak": "Tekst naar spraak" "text_to_speak": "Tekst naar spraak",
"turn_off": "Uitschakelen",
"turn_on": "Inschakelen"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Sluiten" "dismiss": "Sluiten"
@ -554,6 +561,26 @@
"loading_history": "Geschiedenis laden ...", "loading_history": "Geschiedenis laden ...",
"no_history_found": "Geen geschiedenis gevonden" "no_history_found": "Geen geschiedenis gevonden"
}, },
"media-browser": {
"choose-source": "Kies bron",
"content-type": {
"album": "Album",
"artist": "Artiest",
"library": "Bibliotheek",
"playlist": "Afspeellijst",
"server": "Server"
},
"media-player-browser": "Mediaspeler-browser",
"no_items": "Niets gevonden",
"pick": "Kies",
"pick-media": "Kies Media",
"play": "Speel",
"play-media": "Media afspelen"
},
"picture-upload": {
"label": "Afbeelding",
"unsupported_format": "Niet-ondersteund formaat. Kies een JPEG-, PNG- of GIF-afbeelding."
},
"related-items": { "related-items": {
"area": "Gebied", "area": "Gebied",
"automation": "Onderdeel van de volgende automatiseringen", "automation": "Onderdeel van de volgende automatiseringen",
@ -574,6 +601,7 @@
"week": "{count} {count, plural,\none {week}\nother {weken}\n}" "week": "{count} {count, plural,\none {week}\nother {weken}\n}"
}, },
"future": "Over {time}", "future": "Over {time}",
"just_now": "Zojuist",
"never": "Nooit", "never": "Nooit",
"past": "{time} geleden" "past": "{time} geleden"
}, },
@ -656,6 +684,9 @@
"required_error_msg": "Dit veld is verplicht", "required_error_msg": "Dit veld is verplicht",
"yaml_not_editable": "De instellingen van deze entiteit kunnen niet worden bewerkt vanuit de gebruikersinterface. Alleen entiteiten die zijn ingesteld vanuit de gebruikersinterface, kunnen worden geconfigureerd vanuit de gebruikersinterface." "yaml_not_editable": "De instellingen van deze entiteit kunnen niet worden bewerkt vanuit de gebruikersinterface. Alleen entiteiten die zijn ingesteld vanuit de gebruikersinterface, kunnen worden geconfigureerd vanuit de gebruikersinterface."
}, },
"image_cropper": {
"crop": "Snijd bij"
},
"more_info_control": { "more_info_control": {
"dismiss": "Dialoogvenster sluiten", "dismiss": "Dialoogvenster sluiten",
"edit": "Entiteit bewerken", "edit": "Entiteit bewerken",
@ -892,7 +923,7 @@
"wait_template": "Wachtsjabloon" "wait_template": "Wachtsjabloon"
} }
}, },
"unsupported_action": "Niet-ondersteunde actie: {action}" "unsupported_action": "Geen UI-ondersteuning voor actie: {action}"
}, },
"alias": "Naam", "alias": "Naam",
"conditions": { "conditions": {
@ -958,7 +989,7 @@
"zone": "Zone" "zone": "Zone"
} }
}, },
"unsupported_condition": "Niet ondersteunde voorwaarde: {condition}" "unsupported_condition": "Geen UI-ondersteuning voor voorwaarde: {condition}"
}, },
"default_name": "Nieuwe automatisering", "default_name": "Nieuwe automatisering",
"description": { "description": {
@ -992,7 +1023,6 @@
"delete": "Verwijderen", "delete": "Verwijderen",
"delete_confirm": "Weet je zeker dat je dit item wilt verwijderen?", "delete_confirm": "Weet je zeker dat je dit item wilt verwijderen?",
"duplicate": "Dupliceren", "duplicate": "Dupliceren",
"header": "",
"introduction": "Triggers starten de verwerking van een automatiseringsregel. Het is mogelijk om meerdere triggers voor dezelfde regel op te geven. Zodra een trigger start, valideert Home Assistant de eventuele voorwaarden en roept hij de actie aan.", "introduction": "Triggers starten de verwerking van een automatiseringsregel. Het is mogelijk om meerdere triggers voor dezelfde regel op te geven. Zodra een trigger start, valideert Home Assistant de eventuele voorwaarden en roept hij de actie aan.",
"learn_more": "Meer informatie over triggers", "learn_more": "Meer informatie over triggers",
"name": "Trigger", "name": "Trigger",
@ -1022,7 +1052,6 @@
}, },
"homeassistant": { "homeassistant": {
"event": "Gebeurtenis:", "event": "Gebeurtenis:",
"label": "",
"shutdown": "Afsluiten", "shutdown": "Afsluiten",
"start": "Opstarten" "start": "Opstarten"
}, },
@ -1050,6 +1079,9 @@
"sunrise": "Zonsopkomst", "sunrise": "Zonsopkomst",
"sunset": "Zonsondergang" "sunset": "Zonsondergang"
}, },
"tag": {
"label": "Label"
},
"template": { "template": {
"label": "Sjabloon", "label": "Sjabloon",
"value_template": "Waardesjabloon" "value_template": "Waardesjabloon"
@ -1077,7 +1109,7 @@
"zone": "Zone" "zone": "Zone"
} }
}, },
"unsupported_platform": "Niet ondersteund platform: {platform}" "unsupported_platform": "Geen UI-ondersteuning voor platform: {platform}"
}, },
"unsaved_confirm": "Je hebt niet-opgeslagen wijzigingen. Weet je zeker dat je wilt afsluiten?" "unsaved_confirm": "Je hebt niet-opgeslagen wijzigingen. Weet je zeker dat je wilt afsluiten?"
}, },
@ -1308,6 +1340,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Er is nog geen {name} toegevoegd met dit apparaat. U kunt er één toevoegen door op de + knop hierboven te klikken.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Wanneer iets wordt getriggerd..." "caption": "Wanneer iets wordt getriggerd..."
@ -1327,6 +1360,7 @@
"caption": "Apparaten", "caption": "Apparaten",
"confirm_delete": "Weet je zeker dat je dit apparaat wilt verwijderen?", "confirm_delete": "Weet je zeker dat je dit apparaat wilt verwijderen?",
"confirm_rename_entity_ids": "Wil je ook de entiteits-ID's van je entiteiten hernoemen?", "confirm_rename_entity_ids": "Wil je ook de entiteits-ID's van je entiteiten hernoemen?",
"confirm_rename_entity_ids_warning": "Dit zal geen enkele configuratie veranderen (zoals automatiseringen, scripts, scènes, Lovelace) die momenteel deze entiteiten gebruikt, je zult ze zelf moeten updaten.",
"data_table": { "data_table": {
"area": "Gebied", "area": "Gebied",
"battery": "Batterij", "battery": "Batterij",
@ -1454,7 +1488,7 @@
"frontend": "Frontend", "frontend": "Frontend",
"frontend_version": "Frontend-versie: {version} - {type}", "frontend_version": "Frontend-versie: {version} - {type}",
"home_assistant_logo": "Home Assistant-logo", "home_assistant_logo": "Home Assistant-logo",
"icons_by": "Icons door", "icons_by": "Pictogrammen door",
"integrations": "Integraties", "integrations": "Integraties",
"issues": "Problemen", "issues": "Problemen",
"license": "Gepubliceerd onder de Apache 2.0-licentie", "license": "Gepubliceerd onder de Apache 2.0-licentie",
@ -1489,6 +1523,9 @@
"no_device": "Entiteiten zonder apparaten", "no_device": "Entiteiten zonder apparaten",
"no_devices": "Deze integratie heeft geen apparaten.", "no_devices": "Deze integratie heeft geen apparaten.",
"options": "Opties", "options": "Opties",
"reload": "Herlaad",
"reload_confirm": "De integratie is opnieuw geladen",
"reload_restart_confirm": "Start Home Assistant opnieuw om het opnieuw laden van deze integratie te voltooien",
"rename": "Naam wijzigen", "rename": "Naam wijzigen",
"restart_confirm": "Herstart Home Assistant om het verwijderen van deze integratie te voltooien", "restart_confirm": "Herstart Home Assistant om het verwijderen van deze integratie te voltooien",
"settings_button": "Instellingen bewerken voor {integration}", "settings_button": "Instellingen bewerken voor {integration}",
@ -1549,7 +1586,7 @@
"details": "Logboekdetails ({level})", "details": "Logboekdetails ({level})",
"load_full_log": "Laad volledige Home Assistant logboek", "load_full_log": "Laad volledige Home Assistant logboek",
"loading_log": "Foutenlogboek laden ...", "loading_log": "Foutenlogboek laden ...",
"multiple_messages": "bericht kwam voor het eerst om {time} en verschijnt {counter} malen", "multiple_messages": "bericht kwam voor het eerst om {time} en verschijnt {counter} keer",
"no_errors": "Er zijn geen fouten gerapporteerd.", "no_errors": "Er zijn geen fouten gerapporteerd.",
"no_issues": "Er zijn geen problemen!", "no_issues": "Er zijn geen problemen!",
"refresh": "Vernieuwen", "refresh": "Vernieuwen",
@ -1647,7 +1684,11 @@
"topic": "onderwerp" "topic": "onderwerp"
}, },
"ozw": { "ozw": {
"button": "Configureer",
"common": { "common": {
"controller": "Controller",
"instance": "Instantie",
"network": "Netwerk",
"node_id": "Knooppunt-ID", "node_id": "Knooppunt-ID",
"ozw_instance": "Instantie van OpenZWave", "ozw_instance": "Instantie van OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1656,6 +1697,75 @@
"node_failed": "Knoop gefaald", "node_failed": "Knoop gefaald",
"stage": "Stadium", "stage": "Stadium",
"zwave_info": "Z-Wave informatie" "zwave_info": "Z-Wave informatie"
},
"navigation": {
"network": "Netwerk",
"nodes": "Knooppunten",
"select_instance": "Instantie selecteren"
},
"network_status": {
"details": {
"driverallnodesqueried": "Alle knooppunten zijn opgevraagd",
"driverallnodesqueriedsomedead": "Alle knooppunten zijn opgevraagd. Sommige knooppunten werden dood aangetroffen",
"driverawakenodesqueries": "Alle knooppunten die wakker zijn, zijn opgevraagd",
"driverfailed": "Kan geen verbinding maken met de Z-Wave-controller",
"driverready": "Initialiseren van de Z-Wave-controller",
"driverremoved": "De driver is verwijderd",
"driverreset": "De driver is gereset",
"offline": "OZWDaemon offline",
"ready": "Klaar om te verbinden",
"started": "Verbonden met MQTT",
"starting": "Verbinding maken met MQTT",
"stopped": "OpenZWave is gestopt"
},
"offline": "Offline",
"online": "Online",
"starting": "Aan het starten",
"unknown": "Onbekend"
},
"network": {
"header": "Netwerkbeheer",
"introduction": "Beheer netwerkbrede functies.",
"node_count": "{count} knooppunten"
},
"node_query_stages": {
"associations": "Associatiegroepen en lidmaatschappen verversen",
"cacheload": "Informatie laden uit het OpenZWave-cachebestand. Knooppunten met batterij blijven in dit stadium totdat het knooppunt ontwaakt.",
"complete": "Het ondervragingsproces is voltooid",
"configuration": "Configuratiewaarden ophalen van het knooppunt",
"dynamic": "Het verkrijgen van frequent veranderende waarden uit het knooppunt",
"instances": "Details verkrijgen over welke instanties of kanalen een apparaat ondersteunt",
"manufacturerspecific1": "Verkrijgen van fabrikant- en productidentificatiecodes van het knooppunt",
"manufacturerspecific2": "Extra fabrikant- en product-ID-codes verkrijgen van het knooppunt",
"neighbors": "Een lijst ophalen met de buren van het knooppunt",
"nodeinfo": "Verkrijgen van ondersteunde commandoklassen van het knooppunt",
"nodeplusinfo": "Z-Wave+ informatie verkrijgen van het knooppunt",
"probe": "Controleren of het knooppunt wakker/levend is",
"protocolinfo": "Het verkrijgen van basis Z-Wave-mogelijkheden van dit knooppunt uit de controller",
"session": "Het verkrijgen van zelden veranderende waarden uit het knooppunt",
"static": "Statische waarden ophalen van het apparaat",
"versions": "Het verkrijgen van informatie over firmware en commandoklasseversies",
"wakeup": "Ondersteuning instellen voor waakwachtrijen en berichten"
},
"refresh_node": {
"battery_note": "Als het knooppunt op batterijen werkt, moet u het uit de sluimerstand halen voordat u verder gaat",
"complete": "Knooppunt vernieuwen voltooid",
"description": "Dit zal OpenZWave vertellen om een knooppunt opnieuw te ondervragen en de opdrachtklassen, mogelijkheden en waarden van het knooppunt bij te werken.",
"node_status": "Knooppuntstatus",
"refreshing_description": "Knooppuntinformatie vernieuwen...",
"start_refresh_button": "Start Vernieuwen",
"step": "Stap",
"title": "Vernieuw knooppuntinformatie",
"wakeup_header": "Wekinstructies voor",
"wakeup_instructions_source": "Wekinstructies zijn afkomstig uit de OpenZWave-gemeenschapsapparaatdatabase."
},
"select_instance": {
"header": "Selecteer een OpenZWave instantie",
"introduction": "Je hebt meer dan één OpenZWave instantie lopen. Welke instantie wil je beheren?"
},
"services": {
"add_node": "Knooppunt toevoegen",
"remove_node": "Knooppunt verwijderen"
} }
}, },
"person": { "person": {
@ -1781,18 +1891,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Herlaad automatiseringen", "automation": "Herlaad automatiseringen",
"command_line": "Herlaad opdrachtregel-entiteiten",
"core": "Herlaad locatie en aanpassingen", "core": "Herlaad locatie en aanpassingen",
"filesize": "Herlaad bestandsgrootte entiteiten",
"filter": "Herlaad filter-entiteiten",
"generic": "Herlaad generieke IP camera entiteiten",
"generic_thermostat": "Herlaad generieke thermostaat entiteiten",
"group": "Herlaad groepen", "group": "Herlaad groepen",
"heading": "Configuratie herladen", "heading": "Configuratie herladen",
"history_stats": "Herlaad historische statistieken entiteiten",
"homekit": "Herlaad HomeKit",
"input_boolean": "Herlaad input booleans", "input_boolean": "Herlaad input booleans",
"input_datetime": "Herlaad input date times", "input_datetime": "Herlaad input date times",
"input_number": "Herlaad input numbers", "input_number": "Herlaad input numbers",
"input_select": "Herlaad input selects", "input_select": "Herlaad input selects",
"input_text": "Herlaad input texts", "input_text": "Herlaad input texts",
"introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.", "introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.",
"min_max": "Herlaad min/max entiteiten",
"person": "Herlaad personen", "person": "Herlaad personen",
"ping": "Herlaad ping binaire sensor entiteiten",
"rest": "Herlaad rust-entiteiten",
"scene": "Herlaad scenes", "scene": "Herlaad scenes",
"script": "Herlaad scripts", "script": "Herlaad scripts",
"statistics": "Herlaad statistische entiteiten",
"template": "Herlaad sjabloon-entiteiten",
"trend": "Herlaad trend-entiteiten",
"universal": "Herlaad universele mediaspeler entiteiten",
"zone": "Herlaad zones" "zone": "Herlaad zones"
}, },
"server_management": { "server_management": {
@ -1812,12 +1936,40 @@
} }
} }
}, },
"tags": {
"add_tag": "Tag toevoegen",
"automation_title": "Tag {name} is gescand",
"caption": "Tags",
"create_automation": "Creëer automatisering met tag",
"description": "Beheer tags",
"detail": {
"create": "Creëer",
"create_and_write": "Creëer en schrijf",
"delete": "Verwijder",
"description": "Beschrijving",
"name": "Naam",
"new_tag": "Nieuwe tag",
"tag_id": "Tag-ID",
"tag_id_placeholder": "Automatisch gegenereerd wanneer leeg gelaten",
"update": "Werk bij"
},
"edit": "Bewerk",
"headers": {
"last_scanned": "Laatst gescand",
"name": "Naam"
},
"never_scanned": "Nooit gescand",
"no_tags": "Geen tags",
"write": "Schrijf"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Gebruiker toevoegen", "caption": "Gebruiker toevoegen",
"create": "Maken", "create": "Maken",
"name": "Naam", "name": "Naam",
"password": "Wachtwoord", "password": "Wachtwoord",
"password_confirm": "Bevestig wachtwoord",
"password_not_match": "Wachtwoorden komen niet overeen",
"username": "Gebruikersnaam" "username": "Gebruikersnaam"
}, },
"caption": "Gebruikers", "caption": "Gebruikers",
@ -1834,7 +1986,9 @@
"group": "Groep", "group": "Groep",
"id": "ID", "id": "ID",
"name": "Naam", "name": "Naam",
"new_password": "Nieuw wachtwoord",
"owner": "Eigenaar", "owner": "Eigenaar",
"password_changed": "Het wachtwoord is gewijzigd!",
"system_generated": "Gegenereerd door systeem", "system_generated": "Gegenereerd door systeem",
"system_generated_users_not_editable": "Kan door het systeem gegenereerde gebruikers niet bijwerken.", "system_generated_users_not_editable": "Kan door het systeem gegenereerde gebruikers niet bijwerken.",
"system_generated_users_not_removable": "Kan door het systeem gegenereerde gebruikers niet verwijderen.", "system_generated_users_not_removable": "Kan door het systeem gegenereerde gebruikers niet verwijderen.",
@ -2002,17 +2156,17 @@
}, },
"network_status": { "network_status": {
"network_started": "Z-Wave netwerk gestart", "network_started": "Z-Wave netwerk gestart",
"network_started_note_all_queried": "Alle nodes zijn opgevraagd.", "network_started_note_all_queried": "Alle knooppunten zijn opgevraagd.",
"network_started_note_some_queried": "Alle actieve nodes zijn opgevraagd. Inactieve nodes worden opgevraagd wanneer ze actief worden.", "network_started_note_some_queried": "Alle actieve knooppunten zijn opgevraagd. Inactieve knooppunten worden opgevraagd wanneer ze actief worden.",
"network_starting": "Z-Wave netwerk starten...", "network_starting": "Z-Wave netwerk starten...",
"network_starting_note": "Dit kan een tijdje duren, afhankelijk van de grootte van je netwerk.", "network_starting_note": "Dit kan een tijdje duren, afhankelijk van de grootte van je netwerk.",
"network_stopped": "Z-Wave netwerk gestopt" "network_stopped": "Z-Wave netwerk gestopt"
}, },
"node_config": { "node_config": {
"config_parameter": "Configuratie Parameter", "config_parameter": "Configuratie Parameter",
"config_value": "Configuratie Waarde", "config_value": "Configuratiewaarde",
"false": "Niet waar", "false": "Niet waar",
"header": "Node Configuratie Opties", "header": "Knooppunt Configuratie Opties",
"seconds": "Seconden", "seconds": "Seconden",
"set_config_parameter": "Stel de configuratieparameter in", "set_config_parameter": "Stel de configuratieparameter in",
"set_wakeup": "Activeringsinterval instellen", "set_wakeup": "Activeringsinterval instellen",
@ -2028,11 +2182,11 @@
"introduction": "Voer Z-Wave commando's uit die een enkel knooppunt beïnvloeden. Kies een knooppunt om een lijst met beschikbare commando's te zien.", "introduction": "Voer Z-Wave commando's uit die een enkel knooppunt beïnvloeden. Kies een knooppunt om een lijst met beschikbare commando's te zien.",
"max_associations": "Maximale associaties:", "max_associations": "Maximale associaties:",
"node_group_associations": "Knooppuntgroepassociaties", "node_group_associations": "Knooppuntgroepassociaties",
"node_protection": "Node beveiliging", "node_protection": "Knooppunt beveiliging",
"node_to_control": "Node om te besturen", "node_to_control": "Knooppunt om te besturen",
"nodes": "Knooppunten", "nodes": "Knooppunten",
"nodes_hint": "Selecteer knooppunt om de opties per knooppunt te bekijken", "nodes_hint": "Selecteer knooppunt om de opties per knooppunt te bekijken",
"nodes_in_group": "Andere nodes in deze groep:", "nodes_in_group": "Andere knooppunten in deze groep:",
"pooling_intensity": "Polling intensiteit", "pooling_intensity": "Polling intensiteit",
"protection": "Bescherming", "protection": "Bescherming",
"remove_broadcast": "Broadcast verwijderen", "remove_broadcast": "Broadcast verwijderen",
@ -2047,24 +2201,24 @@
"tail": "Staart" "tail": "Staart"
}, },
"services": { "services": {
"add_node": "Node toevoegen", "add_node": "Knooppunt toevoegen",
"add_node_secure": "Secure Node toevoegen", "add_node_secure": "Beveiligd knooppunt toevoegen",
"cancel_command": "Opdracht annuleren", "cancel_command": "Opdracht annuleren",
"heal_network": "Herstel Netwerk", "heal_network": "Herstel Netwerk",
"heal_node": "Herstel node", "heal_node": "Herstel knooppunt",
"node_info": "Node informatie", "node_info": "Knooppunt informatie",
"print_node": "Print node", "print_node": "Print knooppunt",
"refresh_entity": "Entiteit vernieuwen", "refresh_entity": "Entiteit vernieuwen",
"refresh_node": "Node verwijderen", "refresh_node": "Knooppunt verversen",
"remove_failed_node": "Verwijder gefaalde node", "remove_failed_node": "Verwijder gefaald knooppunt",
"remove_node": "Node verwijderen", "remove_node": "Knooppunt verwijderen",
"replace_failed_node": "Vervang gefaalde node", "replace_failed_node": "Vervang gefaald knooppunt",
"save_config": "Configuratie Opslaan", "save_config": "Configuratie Opslaan",
"soft_reset": "Soft Reset", "soft_reset": "Soft Reset",
"start_network": "Start netwerk", "start_network": "Start netwerk",
"stop_network": "Stop Netwerk", "stop_network": "Stop Netwerk",
"test_network": "Test Netwerk", "test_network": "Test Netwerk",
"test_node": "Test node" "test_node": "Test knooppunt"
}, },
"values": { "values": {
"header": "Knooppunt waarden" "header": "Knooppunt waarden"
@ -2133,6 +2287,7 @@
"description": "Sjablonen worden weergegeven met de Jinja2-sjabloonediter samen met enkele extensies van Home Assistant.", "description": "Sjablonen worden weergegeven met de Jinja2-sjabloonediter samen met enkele extensies van Home Assistant.",
"editor": "Sjabloonediter", "editor": "Sjabloonediter",
"jinja_documentation": "Jinja2-sjabloondocumentatie", "jinja_documentation": "Jinja2-sjabloondocumentatie",
"reset": "Resetten naar demosjabloon",
"template_extensions": "Home Assistant sjabloon extensiesHome Assistant", "template_extensions": "Home Assistant sjabloon extensiesHome Assistant",
"title": "Sjablonen", "title": "Sjablonen",
"unknown_error_template": "Onbekende fout bij weergave sjabloon" "unknown_error_template": "Onbekende fout bij weergave sjabloon"
@ -2214,6 +2369,10 @@
"description": "Met de Button-kaart kun je knoppen toevoegen om taken uit te voeren.", "description": "Met de Button-kaart kun je knoppen toevoegen om taken uit te voeren.",
"name": "Knop" "name": "Knop"
}, },
"calendar": {
"description": "De kalenderkaart toont een kalender met dag-, week- en lijstweergaven",
"name": "Kalender"
},
"conditional": { "conditional": {
"card": "Kaart", "card": "Kaart",
"change_type": "Wijzig type", "change_type": "Wijzig type",
@ -2279,6 +2438,7 @@
"show_name": "Naam weergeven?", "show_name": "Naam weergeven?",
"show_state": "Staat tonen?", "show_state": "Staat tonen?",
"state": "Toestand", "state": "Toestand",
"state_color": "Kleur pictogrammen op basis van status?",
"tap_action": "Tik Actie", "tap_action": "Tik Actie",
"theme": "Thema", "theme": "Thema",
"title": "Titel", "title": "Titel",
@ -2668,6 +2828,7 @@
"intro": "Hallo {name}, welkom bij Home Assistant. Welke naam wil je je huis geven?", "intro": "Hallo {name}, welkom bij Home Assistant. Welke naam wil je je huis geven?",
"intro_location": "We willen graag weten waar je woont. Deze informatie zal helpen bij het weergeven van informatie en het instellen van op de zon gebaseerde automatiseringen. Deze gegevens worden nooit gedeeld buiten je netwerk.", "intro_location": "We willen graag weten waar je woont. Deze informatie zal helpen bij het weergeven van informatie en het instellen van op de zon gebaseerde automatiseringen. Deze gegevens worden nooit gedeeld buiten je netwerk.",
"intro_location_detect": "Wij kunnen u helpen deze informatie in te vullen door eenmalig een verbinding te maken met een externe service.", "intro_location_detect": "Wij kunnen u helpen deze informatie in te vullen door eenmalig een verbinding te maken met een externe service.",
"location_name": "Naam van de Home Assistant installatie",
"location_name_default": "Huis" "location_name_default": "Huis"
}, },
"integration": { "integration": {

View File

@ -419,9 +419,16 @@
"unlock": "Odblokuj" "unlock": "Odblokuj"
}, },
"media_player": { "media_player": {
"browse_media": "Przeglądaj media",
"media_next_track": "Następny",
"media_play": "Odtwarzaj",
"media_play_pause": "Odtwarzaj/pauza",
"media_previous_track": "Poprzedni",
"sound_mode": "Tryb dźwięku", "sound_mode": "Tryb dźwięku",
"source": "Źródło", "source": "Źródło",
"text_to_speak": "Zamień tekst na mowę" "text_to_speak": "Zamień tekst na mowę",
"turn_off": "Wyłącz",
"turn_on": "Włącz"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Odrzuć" "dismiss": "Odrzuć"
@ -467,7 +474,7 @@
"humidity": "Wilgotność powietrza", "humidity": "Wilgotność powietrza",
"precipitation": "Opady", "precipitation": "Opady",
"temperature": "Temperatura", "temperature": "Temperatura",
"visibility": "Widoczność", "visibility": "Widzialność",
"wind_speed": "Prędkość wiatru" "wind_speed": "Prędkość wiatru"
}, },
"cardinal_direction": { "cardinal_direction": {
@ -554,6 +561,22 @@
"loading_history": "Ładowanie historii...", "loading_history": "Ładowanie historii...",
"no_history_found": "Nie znaleziono historii." "no_history_found": "Nie znaleziono historii."
}, },
"media-browser": {
"choose-source": "Wybierz źródło",
"content-type": {
"album": "Album",
"artist": "Artysta",
"library": "Biblioteka",
"playlist": "Lista odtwarzania",
"server": "Serwer"
},
"media-player-browser": "Przeglądarka odtwarzacza mediów",
"no_items": "Brak elementów",
"pick": "Wybierz",
"pick-media": "Wybierz media",
"play": "Odtwarzaj",
"play-media": "Odtwarzaj media"
},
"picture-upload": { "picture-upload": {
"label": "Obraz", "label": "Obraz",
"unsupported_format": "Nieobsługiwany format, wybierz obraz JPEG, PNG lub GIF." "unsupported_format": "Nieobsługiwany format, wybierz obraz JPEG, PNG lub GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\n one {tydzień}\n few {tygodnie}\n many {tygodni}\n other {tygodni}\n}" "week": "{count} {count, plural,\n one {tydzień}\n few {tygodnie}\n many {tygodni}\n other {tygodni}\n}"
}, },
"future": "Za {time}", "future": "Za {time}",
"just_now": "Właśnie teraz",
"never": "Nigdy", "never": "Nigdy",
"past": "{time} temu" "past": "{time} temu"
}, },
@ -1057,6 +1081,9 @@
"sunrise": "wschód słońca", "sunrise": "wschód słońca",
"sunset": "zachód słońca" "sunset": "zachód słońca"
}, },
"tag": {
"label": "Tag"
},
"template": { "template": {
"label": "Szablon", "label": "Szablon",
"value_template": "Szablon wartości" "value_template": "Szablon wartości"
@ -1315,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "{name} używające tego urządzenia nie zostały jeszcze dodane. Możesz je dodać, klikając przycisk + powyżej.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Wykonaj akcje..." "caption": "Wykonaj akcje..."
@ -1334,6 +1362,7 @@
"caption": "Urządzenia", "caption": "Urządzenia",
"confirm_delete": "Czy na pewno chcesz usunąć to urządzenie?", "confirm_delete": "Czy na pewno chcesz usunąć to urządzenie?",
"confirm_rename_entity_ids": "Czy chcesz także zmienić identyfikatory encji?", "confirm_rename_entity_ids": "Czy chcesz także zmienić identyfikatory encji?",
"confirm_rename_entity_ids_warning": "Nie zmieni to żadnej konfiguracji (jak automatyzacje, skrypty, sceny, Lovelace), która obecnie używa tych encji, będziesz musiał je zaktualizować samodzielnie.",
"data_table": { "data_table": {
"area": "Obszar", "area": "Obszar",
"battery": "Bateria", "battery": "Bateria",
@ -1496,6 +1525,9 @@
"no_device": "Encje bez urządzeń", "no_device": "Encje bez urządzeń",
"no_devices": "Ta integracja nie ma żadnych urządzeń.", "no_devices": "Ta integracja nie ma żadnych urządzeń.",
"options": "Opcje", "options": "Opcje",
"reload": "Wczytaj ponownie",
"reload_confirm": "Integracja została ponownie wczytana",
"reload_restart_confirm": "Uruchom ponownie Home Assistanta, aby dokończyć ponowne wczytywanie tej integracji",
"rename": "Zmień nazwę", "rename": "Zmień nazwę",
"restart_confirm": "Zrestartuj Home Assistanta, aby zakończyć usuwanie tej integracji", "restart_confirm": "Zrestartuj Home Assistanta, aby zakończyć usuwanie tej integracji",
"settings_button": "Edytuj ustawienia dla {integration}", "settings_button": "Edytuj ustawienia dla {integration}",
@ -1654,7 +1686,11 @@
"topic": "temat" "topic": "temat"
}, },
"ozw": { "ozw": {
"button": "Konfiguruj",
"common": { "common": {
"controller": "Kontroler",
"instance": "Instancja",
"network": "Sieć",
"node_id": "Identyfikator węzła", "node_id": "Identyfikator węzła",
"ozw_instance": "Instancja OpenZWave", "ozw_instance": "Instancja OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1664,6 +1700,36 @@
"stage": "Etap", "stage": "Etap",
"zwave_info": "Informacje Z-Wave" "zwave_info": "Informacje Z-Wave"
}, },
"navigation": {
"network": "Sieć",
"nodes": "Węzły",
"select_instance": "Wybierz instancję"
},
"network_status": {
"details": {
"driverallnodesqueried": "Wszystkie węzły zostały odpytane",
"driverallnodesqueriedsomedead": "Wszystkie węzły zostały odpytane. Niektóre węzły zostały znalezione martwe.",
"driverawakenodesqueries": "Wszystkie wybudzone węzły zostały odpytane",
"driverfailed": "Nie udało się połączyć z kontrolerem Z-Wave",
"driverready": "Inicjalizacja kontrolera Z-Wave",
"driverremoved": "Sterownik został usunięty",
"driverreset": "Sterownik został zresetowany",
"offline": "OZWDaemon jest offline",
"ready": "Gotowy do połączenia",
"started": "Połączono z MQTT",
"starting": "Łączenie się z MQTT",
"stopped": "OpenZWave zatrzymany"
},
"offline": "Offline",
"online": "Online",
"starting": "Uruchamianie",
"unknown": "Nieznany"
},
"network": {
"header": "Zarządzanie siecią",
"introduction": "Zarządzaj funkcjami w całej sieci.",
"node_count": "{count} węzłów"
},
"node_query_stages": { "node_query_stages": {
"associations": "Odświeżanie grup skojarzeń i członkostwa", "associations": "Odświeżanie grup skojarzeń i członkostwa",
"cacheload": "Ładowanie informacji z pliku pamięci podręcznej OpenZWave. Węzły baterii pozostaną na tym etapie, dopóki węzeł się nie wybudzi.", "cacheload": "Ładowanie informacji z pliku pamięci podręcznej OpenZWave. Węzły baterii pozostaną na tym etapie, dopóki węzeł się nie wybudzi.",
@ -1694,6 +1760,14 @@
"title": "Odświeżanie informacji o węźle", "title": "Odświeżanie informacji o węźle",
"wakeup_header": "Instrukcje budzenia dla", "wakeup_header": "Instrukcje budzenia dla",
"wakeup_instructions_source": "Instrukcje budzenia pochodzą z bazy danych urządzeń społeczności OpenZWave." "wakeup_instructions_source": "Instrukcje budzenia pochodzą z bazy danych urządzeń społeczności OpenZWave."
},
"select_instance": {
"header": "Wybierz instancję OpenZWave",
"introduction": "Masz uruchomionych więcej niż jedną instancję OpenZWave. Którą instancją chcesz zarządzać?"
},
"services": {
"add_node": "Dodaj węzeł",
"remove_node": "Usuń węzeł"
} }
}, },
"person": { "person": {
@ -1819,18 +1893,24 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Automatyzacje", "automation": "Automatyzacje",
"command_line": "Encje komponentu linia komend",
"core": "Lokalizacja i dostosowywanie", "core": "Lokalizacja i dostosowywanie",
"filter": "Encje komponentu filtr",
"group": "Grupy", "group": "Grupy",
"heading": "Ponowne wczytanie konfiguracji", "heading": "Ponowne wczytanie konfiguracji YAML",
"input_boolean": "Pomocnicy typu przełącznik", "input_boolean": "Pomocnicy typu przełącznik",
"input_datetime": "Pomocnicy typu data i czas", "input_datetime": "Pomocnicy typu data i czas",
"input_number": "Pomocnicy typu numer", "input_number": "Pomocnicy typu numer",
"input_select": "Pomocnicy typu pole wyboru", "input_select": "Pomocnicy typu pole wyboru",
"input_text": "Pomocnicy typu tekst", "input_text": "Pomocnicy typu tekst",
"introduction": "Niektóre fragmenty konfiguracji można przeładować bez ponownego uruchamiania. Poniższe przyciski pozwalają na ponowne wczytanie konfiguracji.", "introduction": "Niektóre fragmenty konfiguracji można przeładować bez ponownego uruchamiania. Poniższe przyciski pozwalają na ponowne wczytanie danej części konfiguracji YAML.",
"person": "Osoby", "person": "Osoby",
"rest": "Encje komponentu rest",
"scene": "Sceny", "scene": "Sceny",
"script": "Skrypty", "script": "Skrypty",
"statistics": "Encje komponentu statystyka",
"template": "Szablony encji",
"universal": "Encje komponentu uniwersalny odtwarzacz mediów",
"zone": "Strefy" "zone": "Strefy"
}, },
"server_management": { "server_management": {
@ -1850,6 +1930,32 @@
} }
} }
}, },
"tags": {
"add_tag": "Dodaj tag",
"automation_title": "Tag {name} jest skanowany",
"caption": "Tagi",
"create_automation": "Utwórz automatyzację z tagiem",
"description": "Zarządzaj tagami",
"detail": {
"create": "Stwórz",
"create_and_write": "Stwórz i zapisz",
"delete": "Usuń",
"description": "Opis",
"name": "Nazwa",
"new_tag": "Nowy tag",
"tag_id": "Identyfikator tagu",
"tag_id_placeholder": "Generowany automatycznie, gdy pole pozostawione puste",
"update": "Aktualizuj"
},
"edit": "Edytuj",
"headers": {
"last_scanned": "Ostatnie skanowanie",
"name": "Nazwa"
},
"never_scanned": "Nigdy nie zeskanowany",
"no_tags": "Brak tagów",
"write": "Zapisz"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Dodaj użytkownika", "caption": "Dodaj użytkownika",
@ -2171,6 +2277,7 @@
"description": "Szablony są renderowane przy użyciu silnika szablonów Jinja2 z kilkoma specyficznymi rozszerzeniami Home Assistanta.", "description": "Szablony są renderowane przy użyciu silnika szablonów Jinja2 z kilkoma specyficznymi rozszerzeniami Home Assistanta.",
"editor": "Edytor szablonów", "editor": "Edytor szablonów",
"jinja_documentation": "Dokumentacja szablonów Jinja2", "jinja_documentation": "Dokumentacja szablonów Jinja2",
"reset": "Zresetuj do szablonu demonstracyjnego",
"template_extensions": "Rozszerzenia szablonów Home Assistanta", "template_extensions": "Rozszerzenia szablonów Home Assistanta",
"title": "Szablon", "title": "Szablon",
"unknown_error_template": "Nieznany błąd podczas renderowania szablonu." "unknown_error_template": "Nieznany błąd podczas renderowania szablonu."
@ -2252,6 +2359,10 @@
"description": "Karta przycisku umożliwia dodawanie przycisków do wykonywania zadań.", "description": "Karta przycisku umożliwia dodawanie przycisków do wykonywania zadań.",
"name": "Przycisk" "name": "Przycisk"
}, },
"calendar": {
"description": "Karta kalendarza wyświetla kalendarz zawierający widoki dnia, tygodnia i listy",
"name": "Kalendarz"
},
"conditional": { "conditional": {
"card": "Karta", "card": "Karta",
"change_type": "Zmień typ", "change_type": "Zmień typ",
@ -2448,7 +2559,7 @@
"move_right": "Przesuń widok w prawo", "move_right": "Przesuń widok w prawo",
"tab_badges": "Odznaki", "tab_badges": "Odznaki",
"tab_settings": "Ustawienia", "tab_settings": "Ustawienia",
"tab_visibility": "Widoczność", "tab_visibility": "Widzialność",
"visibility": { "visibility": {
"select_users": "Wybierz, którzy użytkownicy powinni mieć dostęp do tego widoku" "select_users": "Wybierz, którzy użytkownicy powinni mieć dostęp do tego widoku"
} }
@ -2706,6 +2817,7 @@
"intro": "{name}, witamy w Home Assistant. Jak chcesz nazwać swój dom?", "intro": "{name}, witamy w Home Assistant. Jak chcesz nazwać swój dom?",
"intro_location": "Chcielibyśmy wiedzieć, gdzie mieszkasz. Te dane pomogą w wyświetlaniu informacji i konfigurowaniu automatyki opartej na położeniu słońca. Te dane nigdy nie będą udostępniane poza Twoją sieć lokalną.", "intro_location": "Chcielibyśmy wiedzieć, gdzie mieszkasz. Te dane pomogą w wyświetlaniu informacji i konfigurowaniu automatyki opartej na położeniu słońca. Te dane nigdy nie będą udostępniane poza Twoją sieć lokalną.",
"intro_location_detect": "Możemy pomóc Ci wprowadzić te informacje, wysyłając jednorazowe zapytanie do usługi zewnętrznej.", "intro_location_detect": "Możemy pomóc Ci wprowadzić te informacje, wysyłając jednorazowe zapytanie do usługi zewnętrznej.",
"location_name": "Nazwa instalacji Home Assistanta",
"location_name_default": "Dom" "location_name_default": "Dom"
}, },
"integration": { "integration": {

View File

@ -419,6 +419,10 @@
"unlock": "Destrancar" "unlock": "Destrancar"
}, },
"media_player": { "media_player": {
"media_next_track": "Próximo",
"media_play": "Tocar",
"media_play_pause": "Tocar/pausar",
"media_previous_track": "Anterior",
"sound_mode": "Modo de som", "sound_mode": "Modo de som",
"source": "Fonte", "source": "Fonte",
"text_to_speak": "Texto para falar" "text_to_speak": "Texto para falar"
@ -554,6 +558,19 @@
"loading_history": "Carregando histórico do estado ...", "loading_history": "Carregando histórico do estado ...",
"no_history_found": "Histórico de estado não encontrado." "no_history_found": "Histórico de estado não encontrado."
}, },
"media-browser": {
"content-type": {
"album": "Álbum",
"artist": "Artista",
"library": "Biblioteca",
"playlist": "Lista de reprodução",
"server": "Servidor"
},
"play": "Tocar"
},
"picture-upload": {
"label": "Imagem"
},
"related-items": { "related-items": {
"area": "Área", "area": "Área",
"automation": "Parte das seguintes automações", "automation": "Parte das seguintes automações",
@ -1022,7 +1039,6 @@
}, },
"homeassistant": { "homeassistant": {
"event": "Evento:", "event": "Evento:",
"label": "",
"shutdown": "Desligar", "shutdown": "Desligar",
"start": "Iniciar" "start": "Iniciar"
}, },
@ -1050,6 +1066,9 @@
"sunrise": "Nascer do sol", "sunrise": "Nascer do sol",
"sunset": "Pôr do Sol" "sunset": "Pôr do Sol"
}, },
"tag": {
"label": "Etiqueta"
},
"template": { "template": {
"label": "Modelo", "label": "Modelo",
"value_template": "Valor modelo" "value_template": "Valor modelo"
@ -1489,6 +1508,8 @@
"no_device": "Entidades sem dispositivos", "no_device": "Entidades sem dispositivos",
"no_devices": "Esta integração não possui dispositivos.", "no_devices": "Esta integração não possui dispositivos.",
"options": "Opções", "options": "Opções",
"reload": "Recarregar",
"reload_confirm": "A integração foi recarregada",
"rename": "Renomear", "rename": "Renomear",
"restart_confirm": "Reinicie o Home Assistant para concluir a remoção dessa integração", "restart_confirm": "Reinicie o Home Assistant para concluir a remoção dessa integração",
"settings_button": "Editar configurações para {integration}", "settings_button": "Editar configurações para {integration}",
@ -1643,11 +1664,12 @@
"start_listening": "Começar a ouvir", "start_listening": "Começar a ouvir",
"stop_listening": "Parar de ouvir", "stop_listening": "Parar de ouvir",
"subscribe_to": "Evento para se inscrever", "subscribe_to": "Evento para se inscrever",
"title": "",
"topic": "tópico" "topic": "tópico"
}, },
"ozw": { "ozw": {
"common": { "common": {
"instance": "Instância",
"network": "Rede",
"node_id": "ID do Nó", "node_id": "ID do Nó",
"ozw_instance": "Instância OpenZWave", "ozw_instance": "Instância OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1656,6 +1678,25 @@
"node_failed": "Falha no nó", "node_failed": "Falha no nó",
"stage": "Estágio", "stage": "Estágio",
"zwave_info": "Informações de Z-Wave" "zwave_info": "Informações de Z-Wave"
},
"navigation": {
"network": "Rede",
"nodes": "Nós",
"select_instance": "Selecione a instância"
},
"network_status": {
"details": {
"driverreset": "O driver foi reiniciado",
"ready": "Pronto para conectar",
"started": "Conectado ao MQTT",
"starting": "Conectando-se ao MQTT",
"stopped": "OpenZWave parado"
},
"starting": "Iniciando",
"unknown": "Desconhecido"
},
"network": {
"header": "Gerenciamento de Rede"
} }
}, },
"person": { "person": {
@ -1782,6 +1823,7 @@
"reloading": { "reloading": {
"automation": "Recarregar as automações", "automation": "Recarregar as automações",
"core": "Recarregar localização & customizações", "core": "Recarregar localização & customizações",
"filter": "Recarregar entidades de filtro",
"group": "Recarregar os grupos", "group": "Recarregar os grupos",
"heading": "Recarregando a configuração YAML", "heading": "Recarregando a configuração YAML",
"input_boolean": "Recarregar entradas de booleano", "input_boolean": "Recarregar entradas de booleano",
@ -1793,6 +1835,7 @@
"person": "Recarregar pessoas", "person": "Recarregar pessoas",
"scene": "Recarregar cenas", "scene": "Recarregar cenas",
"script": "Recarregar os scripts", "script": "Recarregar os scripts",
"template": "Recarregar entidades de modelo",
"zone": "Recarregar zonas" "zone": "Recarregar zonas"
}, },
"server_management": { "server_management": {
@ -1812,6 +1855,17 @@
} }
} }
}, },
"tags": {
"caption": "Etiquetas",
"detail": {
"create": "Criar",
"name": "Nome"
},
"edit": "Editar",
"headers": {
"name": "Nome"
}
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Adicionar Usuário", "caption": "Adicionar Usuário",
@ -1986,7 +2040,6 @@
}, },
"zwave": { "zwave": {
"button": "Configurar", "button": "Configurar",
"caption": "",
"common": { "common": {
"index": "Índice", "index": "Índice",
"instance": "Instância", "instance": "Instância",
@ -2214,6 +2267,9 @@
"description": "O cartão Botão permite adicionar botões para executar tarefas.", "description": "O cartão Botão permite adicionar botões para executar tarefas.",
"name": "Botão" "name": "Botão"
}, },
"calendar": {
"name": "Calendário"
},
"conditional": { "conditional": {
"card": "Cartão", "card": "Cartão",
"change_type": "Alterar tipo", "change_type": "Alterar tipo",
@ -2668,6 +2724,7 @@
"intro": "Olá {name}, seja bem-vindo ao Home Assistant. Como você gostaria de nomear sua casa?", "intro": "Olá {name}, seja bem-vindo ao Home Assistant. Como você gostaria de nomear sua casa?",
"intro_location": "Nós gostaríamos de saber onde você mora. Essa informação ajudará na exibição de informações e na configuração de automações baseadas no sol. Esses dados nunca são compartilhados fora da sua rede.", "intro_location": "Nós gostaríamos de saber onde você mora. Essa informação ajudará na exibição de informações e na configuração de automações baseadas no sol. Esses dados nunca são compartilhados fora da sua rede.",
"intro_location_detect": "Podemos ajudá-lo a preencher essas informações fazendo uma solicitação única para um serviço externo.", "intro_location_detect": "Podemos ajudá-lo a preencher essas informações fazendo uma solicitação única para um serviço externo.",
"location_name": "Nome da instalação do Home Assistant",
"location_name_default": "Casa" "location_name_default": "Casa"
}, },
"integration": { "integration": {

View File

@ -1111,8 +1111,7 @@
"manage_entities": "Gerir Entidades", "manage_entities": "Gerir Entidades",
"state_reporting_error": "Indisponível para {enable_disable} reportar estado.", "state_reporting_error": "Indisponível para {enable_disable} reportar estado.",
"sync_entities": "Sincronizar Entidades", "sync_entities": "Sincronizar Entidades",
"sync_entities_error": "Falha na sincronização das entidades:", "sync_entities_error": "Falha na sincronização das entidades:"
"title": ""
}, },
"connected": "Ligado", "connected": "Ligado",
"connection_status": "Estado da ligação na cloud", "connection_status": "Estado da ligação na cloud",
@ -1130,8 +1129,7 @@
"manage_entities": "Gerir Entidades", "manage_entities": "Gerir Entidades",
"security_devices": "Dispositivos de segurança", "security_devices": "Dispositivos de segurança",
"sync_entities": "Sincronizar entidades com o Google", "sync_entities": "Sincronizar entidades com o Google",
"sync_entities_404_message": "Falha ao sincronizar suas entidades com o Google, peça ao Google 'Ok Google, sincronize os meus dispositivos' para sincronizar suas entidades.", "sync_entities_404_message": "Falha ao sincronizar suas entidades com o Google, peça ao Google 'Ok Google, sincronize os meus dispositivos' para sincronizar suas entidades."
"title": ""
}, },
"integrations": "Integrações", "integrations": "Integrações",
"integrations_introduction": "As integrações para o Home Assistant Cloud permitem-lhe ligar-se aos serviços na nuvem sem ter de expor publicamente o seu Home Assistant na Internet.", "integrations_introduction": "As integrações para o Home Assistant Cloud permitem-lhe ligar-se aos serviços na nuvem sem ter de expor publicamente o seu Home Assistant na Internet.",
@ -1160,8 +1158,7 @@
"no_hooks_yet": "Parece que você ainda não tem webhooks. Comece, configurando um", "no_hooks_yet": "Parece que você ainda não tem webhooks. Comece, configurando um",
"no_hooks_yet_link_automation": "automação de webhook", "no_hooks_yet_link_automation": "automação de webhook",
"no_hooks_yet_link_integration": "integração baseada em webhook", "no_hooks_yet_link_integration": "integração baseada em webhook",
"no_hooks_yet2": " ou criando um ", "no_hooks_yet2": " ou criando um "
"title": ""
} }
}, },
"alexa": { "alexa": {
@ -1195,7 +1192,6 @@
}, },
"forgot_password": { "forgot_password": {
"check_your_email": "Verifique o seu e-mail para obter instruções sobre como redefinir a sua palavra-passe.", "check_your_email": "Verifique o seu e-mail para obter instruções sobre como redefinir a sua palavra-passe.",
"email": "",
"email_error_msg": "E-mail inválido", "email_error_msg": "E-mail inválido",
"instructions": "Introduza o seu endereço de e-mail e nós lhe enviaremos um link para redefinir sua password.", "instructions": "Introduza o seu endereço de e-mail e nós lhe enviaremos um link para redefinir sua password.",
"send_reset_email": "Enviar e-mail de redefinição", "send_reset_email": "Enviar e-mail de redefinição",
@ -1215,7 +1211,6 @@
"alert_email_confirm_necessary": "É necessário confirmar o seu e-mail antes de fazer login.", "alert_email_confirm_necessary": "É necessário confirmar o seu e-mail antes de fazer login.",
"alert_password_change_required": "É necessário alterar a sua password antes de fazer login.", "alert_password_change_required": "É necessário alterar a sua password antes de fazer login.",
"dismiss": "Fechar", "dismiss": "Fechar",
"email": "",
"email_error_msg": "E-mail inválido", "email_error_msg": "E-mail inválido",
"forgot_password": "Esqueceu-se da palavra-passe?", "forgot_password": "Esqueceu-se da palavra-passe?",
"introduction": "O Home Assistant Cloud fornece uma conexão remota segura à sua instância enquanto estiver fora de casa. Também permite que você se conecte com serviços que apenas utilizam a nuvem: Amazon Alexa e Google Assistant.", "introduction": "O Home Assistant Cloud fornece uma conexão remota segura à sua instância enquanto estiver fora de casa. Também permite que você se conecte com serviços que apenas utilizam a nuvem: Amazon Alexa e Google Assistant.",
@ -1451,7 +1446,6 @@
"description": "Ver informações sobre a instalação do Home Assistant", "description": "Ver informações sobre a instalação do Home Assistant",
"developed_by": "Desenvolvido por um punhado de pessoas incríveis.", "developed_by": "Desenvolvido por um punhado de pessoas incríveis.",
"documentation": "Documentação", "documentation": "Documentação",
"frontend": "",
"frontend_version": "Versão frontend: {version} - {type}", "frontend_version": "Versão frontend: {version} - {type}",
"home_assistant_logo": "Logotipo do Home Assistant", "home_assistant_logo": "Logotipo do Home Assistant",
"icons_by": "Ícones por", "icons_by": "Ícones por",

View File

@ -419,9 +419,16 @@
"unlock": "Открыть" "unlock": "Открыть"
}, },
"media_player": { "media_player": {
"browse_media": "Просмотр медиа",
"media_next_track": "Следующий",
"media_play": "Воспроизведение",
"media_play_pause": "Воспроизведение / пауза",
"media_previous_track": "Предыдущий",
"sound_mode": "Режим звука", "sound_mode": "Режим звука",
"source": "Источник", "source": "Источник",
"text_to_speak": "Воспроизвести текст" "text_to_speak": "Воспроизвести текст",
"turn_off": "Выключить",
"turn_on": "Включить"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Закрыть" "dismiss": "Закрыть"
@ -554,6 +561,22 @@
"loading_history": "Загрузка истории...", "loading_history": "Загрузка истории...",
"no_history_found": "История не найдена." "no_history_found": "История не найдена."
}, },
"media-browser": {
"choose-source": "Выбрать источник",
"content-type": {
"album": "Альбом",
"artist": "Исполнитель",
"library": "Библиотека",
"playlist": "Плейлист",
"server": "Сервер"
},
"media-player-browser": "Браузер медиаплеера",
"no_items": "Нет элементов",
"pick": "Выбрать",
"pick-media": "Выбрать Медиа",
"play": "Воспроизведение",
"play-media": "Воспроизведение Медиа"
},
"picture-upload": { "picture-upload": {
"label": "Изображение", "label": "Изображение",
"unsupported_format": "Неподдерживаемый формат. Выберите изображение в формате JPEG, PNG или GIF." "unsupported_format": "Неподдерживаемый формат. Выберите изображение в формате JPEG, PNG или GIF."
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\none {нед.}\nother {нед.}\n}" "week": "{count} {count, plural,\none {нед.}\nother {нед.}\n}"
}, },
"future": "через {time}", "future": "через {time}",
"just_now": "Сейчас",
"never": "Никогда", "never": "Никогда",
"past": "{time} назад" "past": "{time} назад"
}, },
@ -1153,11 +1177,11 @@
"remote": { "remote": {
"access_is_being_prepared": "Удалённый доступ подготавливается. Мы сообщим Вам, когда он будет готов.", "access_is_being_prepared": "Удалённый доступ подготавливается. Мы сообщим Вам, когда он будет готов.",
"certificate_info": "Информация о сертификате", "certificate_info": "Информация о сертификате",
"info": "Home Assistant Cloud обеспечивает безопасное удалённое подключение к Вашему серверу, даже если Вы находитесь вдали от дома.", "info": "Home Assistant Cloud обеспечивает безопасное подключение к Вашему серверу, даже если Вы находитесь вдали от дома.",
"instance_is_available": "Ваш Home Assistant доступен по адресу", "instance_is_available": "Ваш Home Assistant доступен по адресу",
"instance_will_be_available": "Ваш Home Assistant будет доступен по адресу", "instance_will_be_available": "Ваш Home Assistant будет доступен по адресу",
"link_learn_how_it_works": "Узнайте, как это работает", "link_learn_how_it_works": "Узнайте, как это работает",
"title": "Удалённое управление" "title": "Удалённый доступ"
}, },
"sign_out": "Выйти", "sign_out": "Выйти",
"thank_you_note": "Спасибо за то, что стали частью Home Assistant Cloud. Именно благодаря таким людям, как Вы, мы можем сделать все возможное для того, чтобы домашняя автоматизация была максимально удобной для всех. Спасибо!", "thank_you_note": "Спасибо за то, что стали частью Home Assistant Cloud. Именно благодаря таким людям, как Вы, мы можем сделать все возможное для того, чтобы домашняя автоматизация была максимально удобной для всех. Спасибо!",
@ -1228,7 +1252,7 @@
"email": "Адрес электронной почты", "email": "Адрес электронной почты",
"email_error_msg": "Неверный адрес электронной почты.", "email_error_msg": "Неверный адрес электронной почты.",
"forgot_password": "забыли пароль?", "forgot_password": "забыли пароль?",
"introduction": "Home Assistant Cloud обеспечивает безопасное удалённое подключение к Вашему серверу, даже если Вы находитесь вдали от дома. Также это даёт возможность подключения к функциям облачных сервисов Amazon Alexa и Google Assistant.", "introduction": "Home Assistant Cloud обеспечивает безопасный доступ к Вашему серверу, даже если Вы находитесь вдали от дома. Также это даёт возможность подключения к функциям облачных сервисов Amazon Alexa и Google Assistant.",
"introduction2": "Услуга предоставляется нашим партнером ", "introduction2": "Услуга предоставляется нашим партнером ",
"introduction2a": ", компанией от основателей Home Assistant и Hass.io.", "introduction2a": ", компанией от основателей Home Assistant и Hass.io.",
"introduction3": "Home Assistant Cloud предлагает одноразовый бесплатный пробный период продолжительностью один месяц. Для активации пробного периода платёжная информация не требуется.", "introduction3": "Home Assistant Cloud предлагает одноразовый бесплатный пробный период продолжительностью один месяц. Для активации пробного периода платёжная информация не требуется.",
@ -1318,11 +1342,12 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "Нажмите кнопку \"+\", чтобы создать {name} с использованием этого устройства.",
"automation": { "automation": {
"actions": { "actions": {
"caption": "Когда что-то происходит..." "caption": "Когда что-то происходит..."
}, },
"automations": "Автоматизация", "automations": "Автоматизации",
"conditions": { "conditions": {
"caption": "Сделать что-то, только если..." "caption": "Сделать что-то, только если..."
}, },
@ -1354,7 +1379,7 @@
"device_not_found": "Устройство не найдено", "device_not_found": "Устройство не найдено",
"entities": { "entities": {
"add_entities_lovelace": "Добавить объекты в Lovelace UI", "add_entities_lovelace": "Добавить объекты в Lovelace UI",
"disabled_entities": "+{count} {count, plural,\n one {скрытый объект}\n other {скрытых объектов}\n}", "disabled_entities": "Показать {count} {count, plural,\n one {скрытый объект}\n other {скрытых объектов}\n}",
"entities": "Объекты", "entities": "Объекты",
"hide_disabled": "Не показывать скрытые", "hide_disabled": "Не показывать скрытые",
"none": "У этого устройства нет объектов" "none": "У этого устройства нет объектов"
@ -1500,6 +1525,9 @@
"no_device": "Объекты без устройств", "no_device": "Объекты без устройств",
"no_devices": "Эта интеграция не имеет устройств", "no_devices": "Эта интеграция не имеет устройств",
"options": "Настройки", "options": "Настройки",
"reload": "Перезагрузить",
"reload_confirm": "Перезагрузка интеграции выполнена",
"reload_restart_confirm": "Перезапустите Home Assistant, чтобы завершить перезагрузку этой интеграции",
"rename": "Переименовать", "rename": "Переименовать",
"restart_confirm": "Перезапустите Home Assistant, чтобы завершить удаление этой интеграции", "restart_confirm": "Перезапустите Home Assistant, чтобы завершить удаление этой интеграции",
"settings_button": "Настройки интеграции {integration}", "settings_button": "Настройки интеграции {integration}",
@ -1658,7 +1686,11 @@
"topic": "Топик" "topic": "Топик"
}, },
"ozw": { "ozw": {
"button": "Настройки",
"common": { "common": {
"controller": "Контроллер",
"instance": "Экземпляр",
"network": "Сеть",
"node_id": "ID узла", "node_id": "ID узла",
"ozw_instance": "Экземпляр OpenZWave", "ozw_instance": "Экземпляр OpenZWave",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "Этап", "stage": "Этап",
"zwave_info": "Информация о Z-Wave" "zwave_info": "Информация о Z-Wave"
}, },
"navigation": {
"network": "Сеть",
"nodes": "Узлы",
"select_instance": "Выбор экземпляра"
},
"network_status": {
"details": {
"driverallnodesqueried": "Все узлы опрошены",
"driverallnodesqueriedsomedead": "Все узлы опрошены. В сети обнаружены мертвые узлы",
"driverawakenodesqueries": "Все активные узлы опрошены",
"driverfailed": "Не удалось подключиться к контроллеру Z-Wave",
"driverready": "Инициализация контроллера Z-Wave",
"driverremoved": "Драйвер удален",
"driverreset": "Драйвер сброшен",
"offline": "OZWDaemon не в сети",
"ready": "Готов к подключению",
"started": "Подключен к MQTT",
"starting": "Подключение к MQTT",
"stopped": "OpenZWave остановлен"
},
"offline": "Не в сети",
"online": "В сети",
"starting": "Запускается",
"unknown": "Неизвестно"
},
"network": {
"header": "Управление сетью",
"introduction": "Управление сетевыми функциями.",
"node_count": "{count} узлов"
},
"node_query_stages": { "node_query_stages": {
"associations": "Обновление ассоциативных групп и членства", "associations": "Обновление ассоциативных групп и членства",
"cacheload": "Загрузка информации из кеш-файла OpenZWave. Узлы батареи останутся на этом этапе, пока узел не проснется.", "cacheload": "Загрузка информации из кеш-файла OpenZWave. Узлы батареи останутся на этом этапе, пока узел не проснется.",
@ -1698,6 +1760,14 @@
"title": "Обновить информацию об узле", "title": "Обновить информацию об узле",
"wakeup_header": "Инструкции по пробуждению для", "wakeup_header": "Инструкции по пробуждению для",
"wakeup_instructions_source": "Инструкции по пробуждению взяты из базы данных устройств сообщества OpenZWave." "wakeup_instructions_source": "Инструкции по пробуждению взяты из базы данных устройств сообщества OpenZWave."
},
"select_instance": {
"header": "Выберите экземпляр OpenZWave",
"introduction": "У Вас работает более одного экземпляра OpenZWave. Каким экземпляром Вы хотите управлять?"
},
"services": {
"add_node": "Добавить узел",
"remove_node": "Удалить узел"
} }
}, },
"person": { "person": {
@ -1823,18 +1893,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "Перезагрузить автоматизации", "automation": "Перезагрузить автоматизации",
"command_line": "Перезагрузить объекты интеграции \"Command Line\"",
"core": "Обновить местоположение и кастомизацию", "core": "Обновить местоположение и кастомизацию",
"filesize": "Перезагрузить объекты интеграции \"File Size\"",
"filter": "Перезагрузить объекты интеграции \"Filter\"",
"generic": "Перезагрузить объекты интеграции \"Generic IP Camera\"",
"generic_thermostat": "Перезагрузить объекты интеграции \"Generic Thermostat\"",
"group": "Перезагрузить группы", "group": "Перезагрузить группы",
"heading": "Перезагрузка конфигурации YAML", "heading": "Перезагрузка конфигурации YAML",
"history_stats": "Перезагрузить объекты интеграции \"History Stats\"",
"homekit": "Перезагрузить HomeKit",
"input_boolean": "Перезагрузить вспомогательные переключатели", "input_boolean": "Перезагрузить вспомогательные переключатели",
"input_datetime": "Перезагрузить вспомогательные элементы ввода даты и времени", "input_datetime": "Перезагрузить вспомогательные элементы ввода даты и времени",
"input_number": "Перезагрузить вспомогательные элементы ввода чисел", "input_number": "Перезагрузить вспомогательные элементы ввода чисел",
"input_select": "Перезагрузить вспомогательные выпадающие списки", "input_select": "Перезагрузить вспомогательные выпадающие списки",
"input_text": "Перезагрузить вспомогательные элементы ввода текста", "input_text": "Перезагрузить вспомогательные элементы ввода текста",
"introduction": "Некоторые компоненты Home Assistant можно перезагрузить без необходимости перезапуска всей системы. Перезагрузка выгружает текущую конфигурацию YAML и загружает новую.", "introduction": "Некоторые компоненты Home Assistant можно перезагрузить без необходимости перезапуска всей системы. Перезагрузка выгружает текущую конфигурацию YAML и загружает новую.",
"min_max": "Перезагрузить объекты интеграции \"Min/Max\"",
"person": "Перезагрузить персоны", "person": "Перезагрузить персоны",
"ping": "Перезагрузить объекты интеграции \"Ping (ICMP)\"",
"rest": "Перезагрузить объекты интеграции \"REST\"",
"scene": "Перезагрузить сцены", "scene": "Перезагрузить сцены",
"script": "Перезагрузить сценарии", "script": "Перезагрузить сценарии",
"statistics": "Перезагрузить объекты интеграции \"Statistics\"",
"template": "Перезагрузить объекты шаблонов",
"trend": "Перезагрузить объекты интеграции \"Trend\"",
"universal": "Перезагрузить объекты интеграции \"Universal Media Player\"",
"zone": "Перезагрузить зоны" "zone": "Перезагрузить зоны"
}, },
"server_management": { "server_management": {
@ -1876,6 +1960,7 @@
"last_scanned": "Последнее считывание", "last_scanned": "Последнее считывание",
"name": "Название" "name": "Название"
}, },
"never_scanned": "Сканирование ещё не выполнялось",
"no_tags": "Нет меток", "no_tags": "Нет меток",
"write": "Записать" "write": "Записать"
}, },
@ -1885,6 +1970,8 @@
"create": "Добавить", "create": "Добавить",
"name": "Имя", "name": "Имя",
"password": "Пароль", "password": "Пароль",
"password_confirm": "Подтвердите пароль",
"password_not_match": "Пароли не совпадают",
"username": "Логин" "username": "Логин"
}, },
"caption": "Пользователи", "caption": "Пользователи",
@ -1901,7 +1988,9 @@
"group": "Группа", "group": "Группа",
"id": "ID", "id": "ID",
"name": "Имя", "name": "Имя",
"new_password": "Новый пароль",
"owner": "Владелец", "owner": "Владелец",
"password_changed": "Пароль изменен",
"system_generated": "Системный", "system_generated": "Системный",
"system_generated_users_not_editable": "Системные пользователи защищены от редактирования", "system_generated_users_not_editable": "Системные пользователи защищены от редактирования",
"system_generated_users_not_removable": "Системные пользователи защищены от удаления", "system_generated_users_not_removable": "Системные пользователи защищены от удаления",
@ -2200,6 +2289,7 @@
"description": "Здесь Вы можете протестировать поведение шаблонов. В Home Assistant используется шаблонизатор Jinja2 с некоторыми специальными расширениями.", "description": "Здесь Вы можете протестировать поведение шаблонов. В Home Assistant используется шаблонизатор Jinja2 с некоторыми специальными расширениями.",
"editor": "Редактор шаблонов", "editor": "Редактор шаблонов",
"jinja_documentation": "Узнайте больше о шаблонизаторе Jinja2", "jinja_documentation": "Узнайте больше о шаблонизаторе Jinja2",
"reset": "Вернуться к демонстрационному шаблону",
"template_extensions": "Узнайте больше о шаблонах Home Assistant", "template_extensions": "Узнайте больше о шаблонах Home Assistant",
"title": "Шаблоны", "title": "Шаблоны",
"unknown_error_template": "Неизвестная ошибка при визуализации шаблона." "unknown_error_template": "Неизвестная ошибка при визуализации шаблона."
@ -2281,6 +2371,10 @@
"description": "Позволяет добавлять кнопки для выполнения каких-либо задач.", "description": "Позволяет добавлять кнопки для выполнения каких-либо задач.",
"name": "Кнопка" "name": "Кнопка"
}, },
"calendar": {
"description": "Отображает календарь, включая день, неделю и списки задач.",
"name": "Календарь"
},
"conditional": { "conditional": {
"card": "Карточка", "card": "Карточка",
"change_type": "Изменить тип", "change_type": "Изменить тип",
@ -2346,6 +2440,7 @@
"show_name": "Название", "show_name": "Название",
"show_state": "Состояние", "show_state": "Состояние",
"state": "Состояние", "state": "Состояние",
"state_color": "Изменять цвет значка в зависимости от состояния",
"tap_action": "При нажатии", "tap_action": "При нажатии",
"theme": "Тема", "theme": "Тема",
"title": "Название", "title": "Название",
@ -2735,6 +2830,7 @@
"intro": "Добро пожаловать, {name}! Как Вы хотите назвать свой Home Assistant?", "intro": "Добро пожаловать, {name}! Как Вы хотите назвать свой Home Assistant?",
"intro_location": "Мы хотели бы знать, где Вы живете. Это поможет нам правильно отображать информацию и позволит Вам настраивать автоматизацию на основе данных о рассвете и закате. Эти данные никогда не будут переданы за пределы Вашей локальной сети.", "intro_location": "Мы хотели бы знать, где Вы живете. Это поможет нам правильно отображать информацию и позволит Вам настраивать автоматизацию на основе данных о рассвете и закате. Эти данные никогда не будут переданы за пределы Вашей локальной сети.",
"intro_location_detect": "Мы можем помочь Вам заполнить эту информацию, сделав однократный запрос во внешнюю службу.", "intro_location_detect": "Мы можем помочь Вам заполнить эту информацию, сделав однократный запрос во внешнюю службу.",
"location_name": "Название для Вашего Home Assistant",
"location_name_default": "Home Assistant" "location_name_default": "Home Assistant"
}, },
"integration": { "integration": {

View File

@ -833,6 +833,15 @@
"name": "Akcija", "name": "Akcija",
"type_select": "Vrsta ukrepa", "type_select": "Vrsta ukrepa",
"type": { "type": {
"choose": {
"add_option": "Dodaj možnost",
"conditions": "Pogoji",
"default": "Privzeta dejanja",
"label": "Izberite",
"option": "Možnost {number}",
"remove_option": "Odstranite možnost",
"sequence": "Akcije"
},
"condition": { "condition": {
"label": "Stanje" "label": "Stanje"
}, },
@ -852,6 +861,24 @@
"label": "Požarni dogodek", "label": "Požarni dogodek",
"service_data": "Podatki storitve" "service_data": "Podatki storitve"
}, },
"repeat": {
"label": "Ponovite",
"sequence": "Akcije",
"type_select": "Vrsta ponovite",
"type": {
"count": {
"label": "Števec"
},
"until": {
"conditions": "Dokler pogoji",
"label": "Dokler"
},
"while": {
"conditions": "Medtem pogoji",
"label": "Medtem"
}
}
},
"scene": { "scene": {
"label": "Aktivirajte sceno" "label": "Aktivirajte sceno"
}, },
@ -1619,6 +1646,33 @@
"title": "MQTT", "title": "MQTT",
"topic": "tema" "topic": "tema"
}, },
"ozw": {
"common": {
"node_id": "ID vozlišča",
"ozw_instance": "OpenZWave primerek",
"zwave": "Z-Wave"
},
"device_info": {
"node_failed": "Vozlišče ni uspelo",
"stage": "Stopnja",
"zwave_info": "Z-Wave Informacije"
},
"node_query_stages": {
"complete": "Postopek intervjuja je končan",
"configuration": "Pridobitev konfiguracijskih vrednosti iz vozlišča",
"dynamic": "Pridobivanje pogosto spreminjajočih se vrednosti iz vozlišča",
"session": "Pridobitev redko spreminjajočih se vrednosti iz vozlišča"
},
"refresh_node": {
"battery_note": "Če vozlišče napaja baterijo, se pred nadaljevanjem prepričajte, da ga zbudite",
"complete": "Osveževanje vozlišča je končano",
"refreshing_description": "Osveževanje informacij o vozlišču ...",
"start_refresh_button": "Začni osveževanje",
"title": "Osveži podatke o vozlišču",
"wakeup_header": "Navodila za bujenje za",
"wakeup_instructions_source": "Navodila za prebujanje so pridobljena iz podatkovne zbirke naprav OpenZWave."
}
},
"person": { "person": {
"add_person": "Dodaj osebo", "add_person": "Dodaj osebo",
"caption": "Osebe", "caption": "Osebe",
@ -2387,6 +2441,9 @@
"para_migrate": "Home Assistant lahko za vas samodejno doda ID na vse vaše kartice in poglede s pritiskom na gumb »Preseli konfiguracijo«.", "para_migrate": "Home Assistant lahko za vas samodejno doda ID na vse vaše kartice in poglede s pritiskom na gumb »Preseli konfiguracijo«.",
"para_no_id": "Ta element nima ID-ja. Prosimo, dodajte ID tega elementa v 'ui-lovelace.yaml'." "para_no_id": "Ta element nima ID-ja. Prosimo, dodajte ID tega elementa v 'ui-lovelace.yaml'."
}, },
"move_card": {
"header": "Izberite pogled, na katerega želite premakniti kartico"
},
"raw_editor": { "raw_editor": {
"confirm_remove_config_text": "Samodejno bomo ustvarili vaše poglede uporabniškega vmesnika Lovelace z vašimi območji in napravami, če odstranite konfiguracijo uporabniškega vmesnika Lovelace.", "confirm_remove_config_text": "Samodejno bomo ustvarili vaše poglede uporabniškega vmesnika Lovelace z vašimi območji in napravami, če odstranite konfiguracijo uporabniškega vmesnika Lovelace.",
"confirm_remove_config_title": "Ali ste prepričani, da želite odstraniti konfiguracijo uporabniškega vmesnika Lovelace? Samodejno bomo ustvarili vaše poglede uporabniškega vmesnika Lovelace z vašimi območji in napravami.", "confirm_remove_config_title": "Ali ste prepričani, da želite odstraniti konfiguracijo uporabniškega vmesnika Lovelace? Samodejno bomo ustvarili vaše poglede uporabniškega vmesnika Lovelace z vašimi območji in napravami.",
@ -2414,6 +2471,10 @@
"yaml_control": "Če želite prevzeti nadzor v načinu YAML, ustvarite datoteko YAML z imenom, ki ste ga določili v konfiguraciji za to nadzorno ploščo, ali privzeto 'ui-lovelace.yaml'.", "yaml_control": "Če želite prevzeti nadzor v načinu YAML, ustvarite datoteko YAML z imenom, ki ste ga določili v konfiguraciji za to nadzorno ploščo, ali privzeto 'ui-lovelace.yaml'.",
"yaml_mode": "Za to nadzorno ploščo uporabljate način YAML, kar pomeni, da ne morete spremeniti konfiguracije Lovelace iz uporabniškega vmesnika. Če želite upravljati to nadzorno ploščo iz uporabniškega vmesnika, iz konfiguracije Lovelace v 'config.yaml.' Odstranite 'mode: yaml'." "yaml_mode": "Za to nadzorno ploščo uporabljate način YAML, kar pomeni, da ne morete spremeniti konfiguracije Lovelace iz uporabniškega vmesnika. Če želite upravljati to nadzorno ploščo iz uporabniškega vmesnika, iz konfiguracije Lovelace v 'config.yaml.' Odstranite 'mode: yaml'."
}, },
"select_view": {
"dashboard_label": "Nadzorna plošča",
"header": "Izberite pogled"
},
"suggest_card": { "suggest_card": {
"add": "Dodaj v uporabniški vmesnik Lovelace", "add": "Dodaj v uporabniški vmesnik Lovelace",
"create_own": "Izberite drugačno karto", "create_own": "Izberite drugačno karto",
@ -2731,10 +2792,18 @@
"header": "Samodejno zapri povezavo" "header": "Samodejno zapri povezavo"
}, },
"themes": { "themes": {
"accent_color": "Barva poudarkov",
"dark_mode": {
"auto": "Samodejno",
"dark": "Temni način",
"light": "Svetli način"
},
"dropdown_label": "Tema", "dropdown_label": "Tema",
"error_no_theme": "Teme niso na voljo.", "error_no_theme": "Teme niso na voljo.",
"header": "Tema", "header": "Tema",
"link_promo": "Preberite več o temah" "link_promo": "Preberite več o temah",
"primary_color": "Primarna barva",
"reset": "Ponastavi"
}, },
"vibrate": { "vibrate": {
"description": "V tej napravi omogočite ali onemogočite vibracije pri krmiljenju naprav.", "description": "V tej napravi omogočite ali onemogočite vibracije pri krmiljenju naprav.",

View File

@ -419,9 +419,16 @@
"unlock": "Lås upp" "unlock": "Lås upp"
}, },
"media_player": { "media_player": {
"browse_media": "Bläddra bland media",
"media_next_track": "Nästa",
"media_play": "Spela",
"media_play_pause": "Spela/pausa",
"media_previous_track": "Föregående",
"sound_mode": "Ljudläge", "sound_mode": "Ljudläge",
"source": "Källa", "source": "Källa",
"text_to_speak": "Text till tal" "text_to_speak": "Text till tal",
"turn_off": "Stäng av",
"turn_on": "Sätt på"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "Avfärda" "dismiss": "Avfärda"
@ -554,6 +561,26 @@
"loading_history": "Laddar historik...", "loading_history": "Laddar historik...",
"no_history_found": "Ingen historik hittad." "no_history_found": "Ingen historik hittad."
}, },
"media-browser": {
"choose-source": "Välj källa",
"content-type": {
"album": "Album",
"artist": "Artist",
"library": "Bibliotek",
"playlist": "Spellista",
"server": "Server"
},
"media-player-browser": "Bläddrare för mediaspelare",
"no_items": "Inga objekt",
"pick": "Välj",
"pick-media": "Välj media",
"play": "Spela",
"play-media": "Spela media"
},
"picture-upload": {
"label": "Bild",
"unsupported_format": "Formated stöds inte, vänligen välj en JPEG, PNG eller GIF-bild."
},
"related-items": { "related-items": {
"area": "Område", "area": "Område",
"automation": "Del av följande automatiseringar", "automation": "Del av följande automatiseringar",
@ -574,6 +601,7 @@
"week": "{count} {count, plural,\none {vecka}\nother {veckor}\n}" "week": "{count} {count, plural,\none {vecka}\nother {veckor}\n}"
}, },
"future": "{time} sedan", "future": "{time} sedan",
"just_now": "Nyss",
"never": "Aldrig", "never": "Aldrig",
"past": "{time} sedan" "past": "{time} sedan"
}, },
@ -656,6 +684,9 @@
"required_error_msg": "Det här fältet krävs", "required_error_msg": "Det här fältet krävs",
"yaml_not_editable": "Inställningar för denna entitet kan inte ändras från användargränssnittet. Enbart entiteter uppsatta från användargränssnittet är konfigurerbara från användargränssnittet." "yaml_not_editable": "Inställningar för denna entitet kan inte ändras från användargränssnittet. Enbart entiteter uppsatta från användargränssnittet är konfigurerbara från användargränssnittet."
}, },
"image_cropper": {
"crop": "Beskär"
},
"more_info_control": { "more_info_control": {
"dismiss": "Avfärda", "dismiss": "Avfärda",
"edit": "Redigera entitet", "edit": "Redigera entitet",
@ -1050,6 +1081,9 @@
"sunrise": "Soluppgång", "sunrise": "Soluppgång",
"sunset": "Solnedgång" "sunset": "Solnedgång"
}, },
"tag": {
"label": "Etikett"
},
"template": { "template": {
"label": "Mall", "label": "Mall",
"value_template": "Värdemall" "value_template": "Värdemall"
@ -1111,8 +1145,7 @@
"manage_entities": "Hantera Entiteter", "manage_entities": "Hantera Entiteter",
"state_reporting_error": "Det går inte att {enable_disable} rapportera tillståndet.", "state_reporting_error": "Det går inte att {enable_disable} rapportera tillståndet.",
"sync_entities": "Synkronisera Entiteter", "sync_entities": "Synkronisera Entiteter",
"sync_entities_error": "Det gick inte att synkronisera entiteter:", "sync_entities_error": "Det gick inte att synkronisera entiteter:"
"title": ""
}, },
"connected": "Ansluten", "connected": "Ansluten",
"connection_status": "Status för molnanslutning", "connection_status": "Status för molnanslutning",
@ -1160,16 +1193,14 @@
"no_hooks_yet": "Det verkar som du inte har några webhooks ännu. Kom igång genom att konfigurera en ", "no_hooks_yet": "Det verkar som du inte har några webhooks ännu. Kom igång genom att konfigurera en ",
"no_hooks_yet_link_automation": "webhook automation", "no_hooks_yet_link_automation": "webhook automation",
"no_hooks_yet_link_integration": "webhook-baserad integration", "no_hooks_yet_link_integration": "webhook-baserad integration",
"no_hooks_yet2": " eller genom att skapa en ", "no_hooks_yet2": " eller genom att skapa en "
"title": ""
} }
}, },
"alexa": { "alexa": {
"banner": "Redigering av vilka entiteter som visas via det här användargränssnittet är inaktiverat eftersom du har konfigurerat entitetsfilter i configuration.yaml.", "banner": "Redigering av vilka entiteter som visas via det här användargränssnittet är inaktiverat eftersom du har konfigurerat entitetsfilter i configuration.yaml.",
"expose": "Exponera för Alexa", "expose": "Exponera för Alexa",
"exposed_entities": "Exponerade entiteter", "exposed_entities": "Exponerade entiteter",
"not_exposed_entities": "Ej exponerade entiteter", "not_exposed_entities": "Ej exponerade entiteter"
"title": ""
}, },
"caption": "Home Assistant Cloud", "caption": "Home Assistant Cloud",
"description_features": "Styra även när du inte är hemma, integrera med Alexa och Google Assistant.", "description_features": "Styra även när du inte är hemma, integrera med Alexa och Google Assistant.",
@ -1489,6 +1520,9 @@
"no_device": "Entitet utan enheter", "no_device": "Entitet utan enheter",
"no_devices": "Denna integration har inga enheter.", "no_devices": "Denna integration har inga enheter.",
"options": "Alternativ", "options": "Alternativ",
"reload": "Ladda om",
"reload_confirm": "Integrationen laddades om",
"reload_restart_confirm": "Starta om Home Assistant för att slutföra omladdningen av denna integration",
"rename": "Döp om", "rename": "Döp om",
"restart_confirm": "Starta om Home Assistant för att slutföra borttagningen av denna integration", "restart_confirm": "Starta om Home Assistant för att slutföra borttagningen av denna integration",
"settings_button": "Redigera inställningar för {integration}", "settings_button": "Redigera inställningar för {integration}",
@ -1656,6 +1690,53 @@
"node_failed": "Noden misslyckades", "node_failed": "Noden misslyckades",
"stage": "Steg", "stage": "Steg",
"zwave_info": "Z-Wave info" "zwave_info": "Z-Wave info"
},
"navigation": {
"network": "Nätverk",
"nodes": "Noder",
"select_instance": "Välj instans"
},
"network_status": {
"details": {
"driverfailed": "Det gick inte att ansluta till Z-Wave-styrenheten",
"driverready": "Initierar Z-Wave-styrenheten",
"offline": "OZWDaemon offline",
"ready": "Redo att ansluta",
"started": "Ansluten till MQTT",
"starting": "Ansluter till MQTT",
"stopped": "OpenZWave har stoppats"
}
},
"network": {
"header": "Nätverkshantering",
"introduction": "Hantera nätverksövergripande funktioner.",
"node_count": "{count} noder"
},
"node_query_stages": {
"configuration": "Hämtar konfigurationsvärden från noden",
"dynamic": "Hämtar värden som ofta ändras från noden",
"neighbors": "Hämtar en lista av nodens grannar",
"nodeplusinfo": "Hämtar Z-Wave+-information från noden",
"probe": "Kontrollera om noden är vaken / levande",
"session": "Hämtar värden som sällan ändras från noden",
"static": "Hämtar statiska värden från enheten"
},
"refresh_node": {
"complete": "Uppdatering av noden klar",
"node_status": "Nodstatus",
"refreshing_description": "Uppdaterar information om noderna...",
"step": "Steg",
"title": "Uppdatera information om noderna",
"wakeup_header": "Väckningsinstruktioner för",
"wakeup_instructions_source": "Väckningsinstruktioner hämtas från OpenZWave community-databasen."
},
"select_instance": {
"header": "Välj en OpenZWave-instans",
"introduction": "Du har mer än en OpenZWave-instans som körs. Vilken instans vill du hantera?"
},
"services": {
"add_node": "Lägg till nod",
"remove_node": "Ta bort nod"
} }
}, },
"person": { "person": {
@ -1793,6 +1874,7 @@
"person": "Ladda om personer", "person": "Ladda om personer",
"scene": "Ladda om scenarier", "scene": "Ladda om scenarier",
"script": "Ladda om skript", "script": "Ladda om skript",
"template": "Ladda om mallar för entiteter",
"zone": "Ladda om zoner" "zone": "Ladda om zoner"
}, },
"server_management": { "server_management": {
@ -1812,6 +1894,26 @@
} }
} }
}, },
"tags": {
"add_tag": "Lägg till etikett",
"caption": "Etiketter",
"description": "Hantera etiketter",
"detail": {
"create": "Skapa",
"create_and_write": "Skapa och redigera",
"delete": "Ta bort",
"description": "Beskrivning",
"tag_id": "Etikett-ID",
"tag_id_placeholder": "Autogenereras när det lämnas tomt",
"update": "Uppdatera"
},
"headers": {
"last_scanned": "Senast skannad"
},
"never_scanned": "Aldrig skannad",
"no_tags": "Inga etiketter",
"write": "Redigera"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "Lägg till användare", "caption": "Lägg till användare",
@ -2133,6 +2235,7 @@
"description": "Mallar tolkas med hjälp av Jinja2 template engine med vissa Home Assistant-specifika tillägg.", "description": "Mallar tolkas med hjälp av Jinja2 template engine med vissa Home Assistant-specifika tillägg.",
"editor": "Mallredigerare", "editor": "Mallredigerare",
"jinja_documentation": "Malldokumentation för Jinja2", "jinja_documentation": "Malldokumentation för Jinja2",
"reset": "Återställ till demomall",
"template_extensions": "Mallutökningar för Home Assistant", "template_extensions": "Mallutökningar för Home Assistant",
"title": "Mallar", "title": "Mallar",
"unknown_error_template": "Okänt fel vid rendering av mall" "unknown_error_template": "Okänt fel vid rendering av mall"
@ -2214,6 +2317,10 @@
"description": "Knappkortet låter dig lägga till knappar för att utföra uppgifter.", "description": "Knappkortet låter dig lägga till knappar för att utföra uppgifter.",
"name": "Knapp" "name": "Knapp"
}, },
"calendar": {
"description": "Kalenderkortet visar en kalender med dag-, vecka- och listvyer",
"name": "Kalender"
},
"conditional": { "conditional": {
"card": "Kort", "card": "Kort",
"change_type": "Ändra typ", "change_type": "Ändra typ",
@ -2268,8 +2375,6 @@
"image": "Bildsökväg", "image": "Bildsökväg",
"manual": "Manuell", "manual": "Manuell",
"manual_description": "Behöver du lägga till ett anpassat kort eller vill du bara skriva yaml manuellt?", "manual_description": "Behöver du lägga till ett anpassat kort eller vill du bara skriva yaml manuellt?",
"maximum": "",
"minimum": "",
"name": "Namn", "name": "Namn",
"no_theme": "Inget tema", "no_theme": "Inget tema",
"refresh_interval": "Uppdateringsintervall", "refresh_interval": "Uppdateringsintervall",
@ -2668,6 +2773,7 @@
"intro": "Hej {name}, välkommen till Home Assistant. Hur skulle du vilja namnge ditt hem?", "intro": "Hej {name}, välkommen till Home Assistant. Hur skulle du vilja namnge ditt hem?",
"intro_location": "Vi skulle vilja veta var du bor. Den här informationen hjälper dig att visa information och ställa in solbaserade automatiseringar. Dessa data delas aldrig utanför nätverket.", "intro_location": "Vi skulle vilja veta var du bor. Den här informationen hjälper dig att visa information och ställa in solbaserade automatiseringar. Dessa data delas aldrig utanför nätverket.",
"intro_location_detect": "Vi kan hjälpa dig att fylla i denna information genom att göra en engångsförfrågan till en extern tjänst.", "intro_location_detect": "Vi kan hjälpa dig att fylla i denna information genom att göra en engångsförfrågan till en extern tjänst.",
"location_name": "Namn på din Home Assistant-installation",
"location_name_default": "Hem" "location_name_default": "Hem"
}, },
"integration": { "integration": {

View File

@ -613,7 +613,7 @@
"generic": { "generic": {
"cancel": "İptal", "cancel": "İptal",
"close": "kapat", "close": "kapat",
"default_confirmation_title": "Emin misin?", "default_confirmation_title": "Emin misiniz?",
"ok": "Tamam" "ok": "Tamam"
}, },
"helper_settings": { "helper_settings": {
@ -1069,7 +1069,7 @@
"picker": { "picker": {
"add_automation": "Otomasyon ekle", "add_automation": "Otomasyon ekle",
"delete_automation": "Otomasyonu sil", "delete_automation": "Otomasyonu sil",
"delete_confirm": "Bu otomasyonu silmek istediğinizden emin misin?", "delete_confirm": "Bu otomasyonu silmek istediğinizden emin misiniz?",
"edit_automation": "Otomasyonu düzenle", "edit_automation": "Otomasyonu düzenle",
"header": "Otomasyon Düzenleyici", "header": "Otomasyon Düzenleyici",
"headers": { "headers": {
@ -1736,7 +1736,7 @@
"zone": "Bölgeleri yeniden yükle" "zone": "Bölgeleri yeniden yükle"
}, },
"server_management": { "server_management": {
"confirm_restart": "Home Assistant'ı yeniden başlatmak istediğinizden emin misin?", "confirm_restart": "Home Assistant'ı yeniden başlatmak istediğinizden emin misiniz?",
"confirm_stop": "Home Assistant'ı durdurmak istediğinizden emin misin?", "confirm_stop": "Home Assistant'ı durdurmak istediğinizden emin misin?",
"heading": "Sunucu yönetimi", "heading": "Sunucu yönetimi",
"introduction": "Home Assistant sunucunuzu kontrol edin.. Home Assistant üzerinden", "introduction": "Home Assistant sunucunuzu kontrol edin.. Home Assistant üzerinden",

View File

@ -419,9 +419,16 @@
"unlock": "解锁" "unlock": "解锁"
}, },
"media_player": { "media_player": {
"browse_media": "浏览媒体",
"media_next_track": "下一曲",
"media_play": "播放",
"media_play_pause": "播放/暂停",
"media_previous_track": "上一曲",
"sound_mode": "声音模式", "sound_mode": "声音模式",
"source": "信号源", "source": "信号源",
"text_to_speak": "要朗读的文本" "text_to_speak": "要朗读的文本",
"turn_off": "关闭",
"turn_on": "打开"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "忽略" "dismiss": "忽略"
@ -554,6 +561,22 @@
"loading_history": "正在加载历史状态...", "loading_history": "正在加载历史状态...",
"no_history_found": "没有找到历史状态。" "no_history_found": "没有找到历史状态。"
}, },
"media-browser": {
"choose-source": "选择媒体源",
"content-type": {
"album": "专辑",
"artist": "艺术家",
"library": "媒体库",
"playlist": "播放列表",
"server": "服务器"
},
"media-player-browser": "媒体播放浏览器",
"no_items": "没有项目",
"pick": "选定",
"pick-media": "选定媒体",
"play": "播放",
"play-media": "播放媒体"
},
"picture-upload": { "picture-upload": {
"label": "图片", "label": "图片",
"unsupported_format": "格式不受支持,请选择 JPEG、PNG 或 GIF 图像。" "unsupported_format": "格式不受支持,请选择 JPEG、PNG 或 GIF 图像。"
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\n one {周}\n other {周}\n}" "week": "{count} {count, plural,\n one {周}\n other {周}\n}"
}, },
"future": "{time}后", "future": "{time}后",
"just_now": "刚刚",
"never": "从未", "never": "从未",
"past": "{time}前" "past": "{time}前"
}, },
@ -899,7 +923,7 @@
"wait_template": "等待模板" "wait_template": "等待模板"
} }
}, },
"unsupported_action": "不支持的操作: {action}" "unsupported_action": "图形界面暂不支持操作:{action}"
}, },
"alias": "名称", "alias": "名称",
"conditions": { "conditions": {
@ -965,7 +989,7 @@
"zone": "地点" "zone": "地点"
} }
}, },
"unsupported_condition": "不支持环境条件:{condition}" "unsupported_condition": "图形界面暂不支持环境条件:{condition}"
}, },
"default_name": "新建自动化", "default_name": "新建自动化",
"description": { "description": {
@ -1057,6 +1081,9 @@
"sunrise": "日出", "sunrise": "日出",
"sunset": "日落" "sunset": "日落"
}, },
"tag": {
"label": "标签"
},
"template": { "template": {
"label": "自定义模板", "label": "自定义模板",
"value_template": "自定义值" "value_template": "自定义值"
@ -1084,7 +1111,7 @@
"zone": "地点" "zone": "地点"
} }
}, },
"unsupported_platform": "不支持平台:{platform}" "unsupported_platform": "图形界面暂不支持平台:{platform}"
}, },
"unsaved_confirm": "有更改尚未保存,确定离开页面吗?" "unsaved_confirm": "有更改尚未保存,确定离开页面吗?"
}, },
@ -1315,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "尚未使用此设备添加任何{name}。您可以点击上方的 + 按钮来添加。",
"automation": { "automation": {
"actions": { "actions": {
"caption": "满足条件时执行:" "caption": "满足条件时执行:"
@ -1334,6 +1362,7 @@
"caption": "设备", "caption": "设备",
"confirm_delete": "您确定要删除此设备吗?", "confirm_delete": "您确定要删除此设备吗?",
"confirm_rename_entity_ids": "是否要重命名实体的实体 ID", "confirm_rename_entity_ids": "是否要重命名实体的实体 ID",
"confirm_rename_entity_ids_warning": "此操作不会改变正在使用这些实体的配置如自动化、脚本、场景、Lovelace您必须手动更新它们。",
"data_table": { "data_table": {
"area": "区域", "area": "区域",
"battery": "电量", "battery": "电量",
@ -1496,6 +1525,9 @@
"no_device": "无设备关联的实体", "no_device": "无设备关联的实体",
"no_devices": "此集成没有设备。", "no_devices": "此集成没有设备。",
"options": "选项", "options": "选项",
"reload": "重载",
"reload_confirm": "集成已重新加载",
"reload_restart_confirm": "重启 Home Assistant 以完成此集成的重载",
"rename": "重命名", "rename": "重命名",
"restart_confirm": "重启 Home Assistant 以完成此集成的删除", "restart_confirm": "重启 Home Assistant 以完成此集成的删除",
"settings_button": "编辑{integration}设置", "settings_button": "编辑{integration}设置",
@ -1654,7 +1686,11 @@
"topic": "主题(Topic)" "topic": "主题(Topic)"
}, },
"ozw": { "ozw": {
"button": "配置",
"common": { "common": {
"controller": "控制器",
"instance": "实例",
"network": "网络",
"node_id": "节点 ID", "node_id": "节点 ID",
"ozw_instance": "OpenZWave 实例", "ozw_instance": "OpenZWave 实例",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1664,6 +1700,36 @@
"stage": "阶段", "stage": "阶段",
"zwave_info": "Z-Wave 信息" "zwave_info": "Z-Wave 信息"
}, },
"navigation": {
"network": "网络",
"nodes": "节点",
"select_instance": "选择实例"
},
"network_status": {
"details": {
"driverallnodesqueried": "已查询所有节点",
"driverallnodesqueriedsomedead": "已查询所有节点。发现部分节点断开",
"driverawakenodesqueries": "已查询所有唤醒节点",
"driverfailed": "无法连接到 Z-Wave 控制器",
"driverready": "正在初始化 Z-Wave 控制器",
"driverremoved": "驱动程序已被删除",
"driverreset": "驱动程序已重置",
"offline": "OZWDaemon 离线",
"ready": "准备就绪,可以连接",
"started": "已连接到 MQTT",
"starting": "正在连接 MQTT",
"stopped": "OpenZWave 已停止"
},
"offline": "离线",
"online": "在线",
"starting": "正在启动",
"unknown": "未知"
},
"network": {
"header": "网络管理",
"introduction": "管理网络功能。",
"node_count": "{count} 个节点"
},
"node_query_stages": { "node_query_stages": {
"associations": "正在刷新关联组和成员", "associations": "正在刷新关联组和成员",
"cacheload": "正在从 OpenZWave 缓存文件加载信息。电池供电的节点将停留在此阶段,直到节点唤醒。", "cacheload": "正在从 OpenZWave 缓存文件加载信息。电池供电的节点将停留在此阶段,直到节点唤醒。",
@ -1694,6 +1760,14 @@
"title": "刷新节点信息", "title": "刷新节点信息",
"wakeup_header": "唤醒方法:", "wakeup_header": "唤醒方法:",
"wakeup_instructions_source": "唤醒方法来自 OpenZWave 社区设备数据库。" "wakeup_instructions_source": "唤醒方法来自 OpenZWave 社区设备数据库。"
},
"select_instance": {
"header": "选择一个 OpenZWave 实例",
"introduction": "您正在运行多个 OpenZWave 实例。您要管理哪个实例?"
},
"services": {
"add_node": "添加节点",
"remove_node": "删除节点"
} }
}, },
"person": { "person": {
@ -1819,18 +1893,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "重载自动化", "automation": "重载自动化",
"command_line": "重载命令行实体",
"core": "重载位置和自定义", "core": "重载位置和自定义",
"filesize": "重载文件大小实体",
"filter": "重载 filter 实体",
"generic": "重载通用 IP 摄像机实体",
"generic_thermostat": "重载通用恒温器实体",
"group": "重载分组", "group": "重载分组",
"heading": "配置重载", "heading": "配置重载",
"history_stats": "重载历史记录统计实体",
"homekit": "重载 HomeKit",
"input_boolean": "重载二元选择器", "input_boolean": "重载二元选择器",
"input_datetime": "重载日期选择器", "input_datetime": "重载日期选择器",
"input_number": "重载数值选择器", "input_number": "重载数值选择器",
"input_select": "重载多项选择器", "input_select": "重载多项选择器",
"input_text": "重载文字输入", "input_text": "重载文字输入",
"introduction": "Home Assistant 中的部分配置可以直接重载,而无需重启服务。点击重载按钮将重新载入新的配置。", "introduction": "Home Assistant 中的部分配置可以直接重载,而无需重启服务。点击重载按钮将重新载入新的配置。",
"min_max": "重载最小值/最大值实体",
"person": "重载人员", "person": "重载人员",
"ping": "重载 ping 二元传感器实体",
"rest": "重载 REST 实体",
"scene": "重载场景", "scene": "重载场景",
"script": "重载脚本", "script": "重载脚本",
"statistics": "重载 statistics 实体",
"template": "重载模板实体",
"trend": "重载 trend 实体",
"universal": "重载通用媒体播放器实体",
"zone": "重载地点" "zone": "重载地点"
}, },
"server_management": { "server_management": {
@ -1850,12 +1938,40 @@
} }
} }
}, },
"tags": {
"add_tag": "添加标签",
"automation_title": "扫描到标签 {name}",
"caption": "标签",
"create_automation": "通过标签创建自动化",
"description": "管理标签",
"detail": {
"create": "创建",
"create_and_write": "创建并写入",
"delete": "删除",
"description": "描述",
"name": "名称",
"new_tag": "新建标签",
"tag_id": "标签 ID",
"tag_id_placeholder": "留空则自动生成",
"update": "更新"
},
"edit": "编辑",
"headers": {
"last_scanned": "上次扫描",
"name": "名称"
},
"never_scanned": "从未扫描",
"no_tags": "没有标签",
"write": "写入"
},
"users": { "users": {
"add_user": { "add_user": {
"caption": "添加用户", "caption": "添加用户",
"create": "创建", "create": "创建",
"name": "名字", "name": "名字",
"password": "密码", "password": "密码",
"password_confirm": "确认密码",
"password_not_match": "密码不匹配",
"username": "用户名" "username": "用户名"
}, },
"caption": "用户", "caption": "用户",
@ -1872,7 +1988,9 @@
"group": "群组", "group": "群组",
"id": "ID", "id": "ID",
"name": "名称", "name": "名称",
"new_password": "新密码",
"owner": "所有者", "owner": "所有者",
"password_changed": "密码已更改!",
"system_generated": "系统生成", "system_generated": "系统生成",
"system_generated_users_not_editable": "无法更新系统生成的用户。", "system_generated_users_not_editable": "无法更新系统生成的用户。",
"system_generated_users_not_removable": "无法删除系统生成的用户。", "system_generated_users_not_removable": "无法删除系统生成的用户。",
@ -2171,6 +2289,7 @@
"description": "模板使用 jinja2 模板引擎和一些 Home Assistant 特定的插件进行渲染。", "description": "模板使用 jinja2 模板引擎和一些 Home Assistant 特定的插件进行渲染。",
"editor": "模板编辑器", "editor": "模板编辑器",
"jinja_documentation": "Jinja2 模板文档", "jinja_documentation": "Jinja2 模板文档",
"reset": "重置为演示模板",
"template_extensions": "Home Assistant 模板插件", "template_extensions": "Home Assistant 模板插件",
"title": "模板", "title": "模板",
"unknown_error_template": "渲染模板时发生了未知错误" "unknown_error_template": "渲染模板时发生了未知错误"
@ -2252,6 +2371,10 @@
"description": "“按钮”卡片用于添加按钮来执行任务。", "description": "“按钮”卡片用于添加按钮来执行任务。",
"name": "按钮" "name": "按钮"
}, },
"calendar": {
"description": "“日历”卡片显示一个日历,其包括日视图、周视图和列表视图。",
"name": "日历"
},
"conditional": { "conditional": {
"card": "卡片", "card": "卡片",
"change_type": "更改类型", "change_type": "更改类型",
@ -2317,6 +2440,7 @@
"show_name": "显示名称?", "show_name": "显示名称?",
"show_state": "显示状态?", "show_state": "显示状态?",
"state": "状态", "state": "状态",
"state_color": "使图标根据状态变色?",
"tap_action": "点击动作", "tap_action": "点击动作",
"theme": "主题", "theme": "主题",
"title": "标题", "title": "标题",
@ -2706,6 +2830,7 @@
"intro": "{name},您好!欢迎来到 Home Assistant。您想怎样命名您的家呢", "intro": "{name},您好!欢迎来到 Home Assistant。您想怎样命名您的家呢",
"intro_location": "我们想知道您住在哪里。这将用于显示资讯以及设置基于太阳的自动化。此数据永远不会在您的网络以外共享。", "intro_location": "我们想知道您住在哪里。这将用于显示资讯以及设置基于太阳的自动化。此数据永远不会在您的网络以外共享。",
"intro_location_detect": "我们可以通过向外部服务发出一个一次性请求来帮助您填写此信息。", "intro_location_detect": "我们可以通过向外部服务发出一个一次性请求来帮助您填写此信息。",
"location_name": "Home Assistant 安装的名称",
"location_name_default": "我的家" "location_name_default": "我的家"
}, },
"integration": { "integration": {

View File

@ -419,9 +419,16 @@
"unlock": "解鎖" "unlock": "解鎖"
}, },
"media_player": { "media_player": {
"browse_media": "瀏覽媒體",
"media_next_track": "下一首",
"media_play": "播放",
"media_play_pause": "播放/暫停",
"media_previous_track": "上一首",
"sound_mode": "音效模式", "sound_mode": "音效模式",
"source": "來源", "source": "來源",
"text_to_speak": "所要閱讀的文字" "text_to_speak": "所要閱讀的文字",
"turn_off": "關閉",
"turn_on": "開啟"
}, },
"persistent_notification": { "persistent_notification": {
"dismiss": "關閉" "dismiss": "關閉"
@ -554,6 +561,22 @@
"loading_history": "正在載入狀態歷史...", "loading_history": "正在載入狀態歷史...",
"no_history_found": "找不到狀態歷史。" "no_history_found": "找不到狀態歷史。"
}, },
"media-browser": {
"choose-source": "選擇來源",
"content-type": {
"album": "專輯",
"artist": "演唱者",
"library": "媒體庫",
"playlist": "播放列表",
"server": "伺服器"
},
"media-player-browser": "媒體播放器瀏覽器",
"no_items": "沒有項目",
"pick": "選擇",
"pick-media": "選擇媒體",
"play": "播放",
"play-media": "播放媒體"
},
"picture-upload": { "picture-upload": {
"label": "照片", "label": "照片",
"unsupported_format": "不支援的格式,請選擇 JPEG、PNG 或 GIF 圖檔。" "unsupported_format": "不支援的格式,請選擇 JPEG、PNG 或 GIF 圖檔。"
@ -578,6 +601,7 @@
"week": "{count} {count, plural,\n one {週}\n other {週}\n}" "week": "{count} {count, plural,\n one {週}\n other {週}\n}"
}, },
"future": "{time}後", "future": "{time}後",
"just_now": "現在",
"never": "未執行", "never": "未執行",
"past": "{time}前" "past": "{time}前"
}, },
@ -1318,6 +1342,7 @@
} }
}, },
"devices": { "devices": {
"add_prompt": "此設備尚未添加任何 {name}。可點選上方的 + 按鈕進行新增。",
"automation": { "automation": {
"actions": { "actions": {
"caption": "當某物件被觸發時..." "caption": "當某物件被觸發時..."
@ -1500,6 +1525,9 @@
"no_device": "物件沒有設備", "no_device": "物件沒有設備",
"no_devices": "此整合沒有任何設備。", "no_devices": "此整合沒有任何設備。",
"options": "選項", "options": "選項",
"reload": "重新載入",
"reload_confirm": "整合已重新載入",
"reload_restart_confirm": "重啟 Home Assistant 以為重整合重新載入",
"rename": "重新命名", "rename": "重新命名",
"restart_confirm": "重啟 Home Assistant 以完成此整合移動", "restart_confirm": "重啟 Home Assistant 以完成此整合移動",
"settings_button": "編輯 {integration} 設定", "settings_button": "編輯 {integration} 設定",
@ -1658,7 +1686,11 @@
"topic": "主題" "topic": "主題"
}, },
"ozw": { "ozw": {
"button": "設定",
"common": { "common": {
"controller": "控制器",
"instance": "設備",
"network": "網路",
"node_id": "節點 ID", "node_id": "節點 ID",
"ozw_instance": "OpenZWave 設備", "ozw_instance": "OpenZWave 設備",
"zwave": "Z-Wave" "zwave": "Z-Wave"
@ -1668,6 +1700,36 @@
"stage": "階段", "stage": "階段",
"zwave_info": "Z-Wave 資訊" "zwave_info": "Z-Wave 資訊"
}, },
"navigation": {
"network": "網路",
"nodes": "節點",
"select_instance": "選擇設備"
},
"network_status": {
"details": {
"driverallnodesqueried": "已查詢所有節點。",
"driverallnodesqueriedsomedead": "所有節點已進行查詢,部分節點已失效",
"driverawakenodesqueries": "所有喚醒節點已進行查詢。",
"driverfailed": "連線至 Z-Wave 控制器失敗",
"driverready": "初始化 Z-Wave 控制器",
"driverremoved": "驅動器已移除",
"driverreset": "驅動器已重置",
"offline": "OZWDaemon 離線",
"ready": "準備連線",
"started": "已連線至 MQTT",
"starting": "連線至 MQTT",
"stopped": "OpenZWave 已停止"
},
"offline": "離線",
"online": "線上",
"starting": "開始",
"unknown": "未知"
},
"network": {
"header": "網路管理",
"introduction": "管理網路方面功能。",
"node_count": "{count} 個節點"
},
"node_query_stages": { "node_query_stages": {
"associations": "更新相關群組與成員", "associations": "更新相關群組與成員",
"cacheload": "由 OpenZwave 暫存檔載入資訊。電池供電節點將會保持此階段直到節點喚醒。", "cacheload": "由 OpenZwave 暫存檔載入資訊。電池供電節點將會保持此階段直到節點喚醒。",
@ -1698,6 +1760,14 @@
"title": "更新節點資訊", "title": "更新節點資訊",
"wakeup_header": "喚醒說明", "wakeup_header": "喚醒說明",
"wakeup_instructions_source": "喚醒說明為來自 OpenZWave 社群的設備資料庫。" "wakeup_instructions_source": "喚醒說明為來自 OpenZWave 社群的設備資料庫。"
},
"select_instance": {
"header": "選擇 OpenZWave 設備",
"introduction": "超過一個以上的 OpenZWave 設備執行中,要管理哪個設備?"
},
"services": {
"add_node": "新增節點",
"remove_node": "移除節點"
} }
}, },
"person": { "person": {
@ -1823,18 +1893,32 @@
"section": { "section": {
"reloading": { "reloading": {
"automation": "重新載入自動化", "automation": "重新載入自動化",
"command_line": "重新載入命令列物件",
"core": "重新載入座標與自訂化", "core": "重新載入座標與自訂化",
"filesize": "重新載入檔案大小物件",
"filter": "重新載入過濾器物件",
"generic": "重新載入通用 IP 攝影機物件",
"generic_thermostat": "重新載入通用溫控器物件",
"group": "重新載入群組", "group": "重新載入群組",
"heading": "YAML 設定新載入中", "heading": "YAML 設定新載入中",
"history_stats": "重新載入歷史狀態物件",
"homekit": "重新載入 Homekit",
"input_boolean": "重新載入輸入 boolean", "input_boolean": "重新載入輸入 boolean",
"input_datetime": "重新載入輸入日期時間", "input_datetime": "重新載入輸入日期時間",
"input_number": "重新載入輸入數字", "input_number": "重新載入輸入數字",
"input_select": "重新載入輸入選擇", "input_select": "重新載入輸入選擇",
"input_text": "重新載入輸入文字", "input_text": "重新載入輸入文字",
"introduction": "Home Assistant 中部分設定無須重啟即可重新載入生效。點選重新載入按鈕,即可解除目前 YAML 設定,並重新載入最新設定。", "introduction": "Home Assistant 中部分設定無須重啟即可重新載入生效。點選重新載入按鈕,即可解除目前 YAML 設定,並重新載入最新設定。",
"min_max": "重新載入最低/最高物件",
"person": "重新載入人員", "person": "重新載入人員",
"ping": "重新載入 Pung 二進位傳感器物件",
"rest": "重新載入剩餘物件",
"scene": "重新載入場景", "scene": "重新載入場景",
"script": "重新載入腳本", "script": "重新載入腳本",
"statistics": "重新載入統計資訊物件",
"template": "重新載入範例物件",
"trend": "重新載入趨勢物件",
"universal": "重新載入通用媒體播放器物件",
"zone": "重新載入區域" "zone": "重新載入區域"
}, },
"server_management": { "server_management": {
@ -1876,6 +1960,7 @@
"last_scanned": "最後掃描時間", "last_scanned": "最後掃描時間",
"name": "名稱" "name": "名稱"
}, },
"never_scanned": "從未掃描",
"no_tags": "無標籤", "no_tags": "無標籤",
"write": "編寫" "write": "編寫"
}, },
@ -1885,6 +1970,8 @@
"create": "新增", "create": "新增",
"name": "名稱", "name": "名稱",
"password": "密碼", "password": "密碼",
"password_confirm": "確認密碼",
"password_not_match": "密碼不相符",
"username": "使用者名稱" "username": "使用者名稱"
}, },
"caption": "用戶", "caption": "用戶",
@ -1901,7 +1988,9 @@
"group": "群組", "group": "群組",
"id": "ID", "id": "ID",
"name": "名稱", "name": "名稱",
"new_password": "新密碼",
"owner": "擁有者", "owner": "擁有者",
"password_changed": "密碼已變更!",
"system_generated": "系統產生", "system_generated": "系統產生",
"system_generated_users_not_editable": "無法更新系統產生用戶", "system_generated_users_not_editable": "無法更新系統產生用戶",
"system_generated_users_not_removable": "無法移除系統產生用戶", "system_generated_users_not_removable": "無法移除系統產生用戶",
@ -2200,6 +2289,7 @@
"description": "模版使用 Jinja2 模板引擎及 Home Assistant 特殊擴充進行模板渲染。", "description": "模版使用 Jinja2 模板引擎及 Home Assistant 特殊擴充進行模板渲染。",
"editor": "模板編輯器", "editor": "模板編輯器",
"jinja_documentation": "Jinja2 模版文件", "jinja_documentation": "Jinja2 模版文件",
"reset": "重置示範範模板",
"template_extensions": "Home Assistant 模板擴充", "template_extensions": "Home Assistant 模板擴充",
"title": "模板", "title": "模板",
"unknown_error_template": "未知渲染模版錯誤" "unknown_error_template": "未知渲染模版錯誤"
@ -2281,6 +2371,10 @@
"description": "按鈕面板可供新增按鈕以執行任務。", "description": "按鈕面板可供新增按鈕以執行任務。",
"name": "按鈕面板" "name": "按鈕面板"
}, },
"calendar": {
"description": "行事曆面板可顯示包含日、週及列表的行事曆",
"name": "行事曆"
},
"conditional": { "conditional": {
"card": "面板", "card": "面板",
"change_type": "變更類別", "change_type": "變更類別",
@ -2346,6 +2440,7 @@
"show_name": "顯示名稱?", "show_name": "顯示名稱?",
"show_state": "顯示狀態?", "show_state": "顯示狀態?",
"state": "狀態", "state": "狀態",
"state_color": "以色彩顯示狀態?",
"tap_action": "點選觸發", "tap_action": "點選觸發",
"theme": "主題", "theme": "主題",
"title": "標題", "title": "標題",
@ -2735,6 +2830,7 @@
"intro": "{name}你好,歡迎使用 Home Assistant。為您的家庭取個名字吧", "intro": "{name}你好,歡迎使用 Home Assistant。為您的家庭取個名字吧",
"intro_location": "希望能夠提供您所居住的區域,資料將協助所顯示的資訊內容、設定以日出日落為基礎的自動化。此資料將絕不會與外部網路進行分享。", "intro_location": "希望能夠提供您所居住的區域,資料將協助所顯示的資訊內容、設定以日出日落為基礎的自動化。此資料將絕不會與外部網路進行分享。",
"intro_location_detect": "設定可以藉由一次性請求外部服務、以協助您填寫此項資料。", "intro_location_detect": "設定可以藉由一次性請求外部服務、以協助您填寫此項資料。",
"location_name": "Home Assistant 安裝名稱",
"location_name_default": "首頁" "location_name_default": "首頁"
}, },
"integration": { "integration": {