mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-31 21:17:47 +00:00
Merge branch 'dev' of github.com:home-assistant/frontend into restore-addon
This commit is contained in:
commit
31c66fed6e
@ -52,6 +52,7 @@ module.exports.terserOptions = (latestBuild) => ({
|
|||||||
|
|
||||||
module.exports.babelOptions = ({ latestBuild }) => ({
|
module.exports.babelOptions = ({ latestBuild }) => ({
|
||||||
babelrc: false,
|
babelrc: false,
|
||||||
|
compact: false,
|
||||||
presets: [
|
presets: [
|
||||||
!latestBuild && [
|
!latestBuild && [
|
||||||
"@babel/preset-env",
|
"@babel/preset-env",
|
||||||
@ -79,12 +80,6 @@ module.exports.babelOptions = ({ latestBuild }) => ({
|
|||||||
].filter(Boolean),
|
].filter(Boolean),
|
||||||
});
|
});
|
||||||
|
|
||||||
// Are already ES5, cause warnings when babelified.
|
|
||||||
module.exports.babelExclude = () => [
|
|
||||||
require.resolve("@mdi/js/mdi.js"),
|
|
||||||
require.resolve("hls.js"),
|
|
||||||
];
|
|
||||||
|
|
||||||
const outputPath = (outputRoot, latestBuild) =>
|
const outputPath = (outputRoot, latestBuild) =>
|
||||||
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
|
path.resolve(outputRoot, latestBuild ? "frontend_latest" : "frontend_es5");
|
||||||
|
|
||||||
|
@ -57,7 +57,6 @@ const createRollupConfig = ({
|
|||||||
babel({
|
babel({
|
||||||
...bundle.babelOptions({ latestBuild }),
|
...bundle.babelOptions({ latestBuild }),
|
||||||
extensions,
|
extensions,
|
||||||
exclude: bundle.babelExclude(),
|
|
||||||
babelHelpers: isWDS ? "inline" : "bundled",
|
babelHelpers: isWDS ? "inline" : "bundled",
|
||||||
}),
|
}),
|
||||||
string({
|
string({
|
||||||
|
@ -47,7 +47,6 @@ const createWebpackConfig = ({
|
|||||||
rules: [
|
rules: [
|
||||||
{
|
{
|
||||||
test: /\.m?js$|\.ts$/,
|
test: /\.m?js$|\.ts$/,
|
||||||
exclude: bundle.babelExclude(),
|
|
||||||
use: {
|
use: {
|
||||||
loader: "babel-loader",
|
loader: "babel-loader",
|
||||||
options: bundle.babelOptions({ latestBuild }),
|
options: bundle.babelOptions({ latestBuild }),
|
||||||
|
194
hassio/src/dialogs/hardware/dialog-hassio-hardware.ts
Executable file
194
hassio/src/dialogs/hardware/dialog-hassio-hardware.ts
Executable file
@ -0,0 +1,194 @@
|
|||||||
|
import { mdiClose } from "@mdi/js";
|
||||||
|
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||||
|
import { customElement, property, state } from "lit/decorators";
|
||||||
|
import memoizeOne from "memoize-one";
|
||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import "../../../../src/common/search/search-input";
|
||||||
|
import { compare } from "../../../../src/common/string/compare";
|
||||||
|
import "../../../../src/components/ha-dialog";
|
||||||
|
import "../../../../src/components/ha-expansion-panel";
|
||||||
|
import { HassioHardwareInfo } from "../../../../src/data/hassio/hardware";
|
||||||
|
import { dump } from "../../../../src/resources/js-yaml-dump";
|
||||||
|
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
|
||||||
|
import { HomeAssistant } from "../../../../src/types";
|
||||||
|
import { HassioHardwareDialogParams } from "./show-dialog-hassio-hardware";
|
||||||
|
|
||||||
|
const _filterDevices = memoizeOne(
|
||||||
|
(showAdvanced: boolean, hardware: HassioHardwareInfo, filter: string) =>
|
||||||
|
hardware.devices
|
||||||
|
.filter(
|
||||||
|
(device) =>
|
||||||
|
(showAdvanced ||
|
||||||
|
["tty", "gpio", "input"].includes(device.subsystem)) &&
|
||||||
|
(device.by_id?.toLowerCase().includes(filter) ||
|
||||||
|
device.name.toLowerCase().includes(filter) ||
|
||||||
|
device.dev_path.toLocaleLowerCase().includes(filter) ||
|
||||||
|
JSON.stringify(device.attributes)
|
||||||
|
.toLocaleLowerCase()
|
||||||
|
.includes(filter))
|
||||||
|
)
|
||||||
|
.sort((a, b) => compare(a.name, b.name))
|
||||||
|
);
|
||||||
|
|
||||||
|
@customElement("dialog-hassio-hardware")
|
||||||
|
class HassioHardwareDialog extends LitElement {
|
||||||
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
|
@state() private _dialogParams?: HassioHardwareDialogParams;
|
||||||
|
|
||||||
|
@state() private _filter?: string;
|
||||||
|
|
||||||
|
public showDialog(params: HassioHardwareDialogParams) {
|
||||||
|
this._dialogParams = params;
|
||||||
|
}
|
||||||
|
|
||||||
|
public closeDialog() {
|
||||||
|
this._dialogParams = undefined;
|
||||||
|
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||||
|
}
|
||||||
|
|
||||||
|
protected render(): TemplateResult {
|
||||||
|
if (!this._dialogParams) {
|
||||||
|
return html``;
|
||||||
|
}
|
||||||
|
|
||||||
|
const devices = _filterDevices(
|
||||||
|
this.hass.userData?.showAdvanced || false,
|
||||||
|
this._dialogParams.hardware,
|
||||||
|
(this._filter || "").toLowerCase()
|
||||||
|
);
|
||||||
|
|
||||||
|
return html`
|
||||||
|
<ha-dialog
|
||||||
|
open
|
||||||
|
scrimClickAction
|
||||||
|
hideActions
|
||||||
|
@closed=${this.closeDialog}
|
||||||
|
.heading=${true}
|
||||||
|
>
|
||||||
|
<div class="header" slot="heading">
|
||||||
|
<h2>
|
||||||
|
${this._dialogParams.supervisor.localize("dialog.hardware.title")}
|
||||||
|
</h2>
|
||||||
|
<mwc-icon-button dialogAction="close">
|
||||||
|
<ha-svg-icon .path=${mdiClose}></ha-svg-icon>
|
||||||
|
</mwc-icon-button>
|
||||||
|
<search-input
|
||||||
|
autofocus
|
||||||
|
no-label-float
|
||||||
|
.filter=${this._filter}
|
||||||
|
@value-changed=${this._handleSearchChange}
|
||||||
|
.label=${this._dialogParams.supervisor.localize(
|
||||||
|
"dialog.hardware.search"
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
</search-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
${devices.map(
|
||||||
|
(device) =>
|
||||||
|
html`<ha-expansion-panel
|
||||||
|
.header=${device.name}
|
||||||
|
.secondary=${device.by_id || undefined}
|
||||||
|
outlined
|
||||||
|
>
|
||||||
|
<div class="device-property">
|
||||||
|
<span>
|
||||||
|
${this._dialogParams!.supervisor.localize(
|
||||||
|
"dialog.hardware.subsystem"
|
||||||
|
)}:
|
||||||
|
</span>
|
||||||
|
<span>${device.subsystem}</span>
|
||||||
|
</div>
|
||||||
|
<div class="device-property">
|
||||||
|
<span>
|
||||||
|
${this._dialogParams!.supervisor.localize(
|
||||||
|
"dialog.hardware.device_path"
|
||||||
|
)}:
|
||||||
|
</span>
|
||||||
|
<code>${device.dev_path}</code>
|
||||||
|
</div>
|
||||||
|
${device.by_id
|
||||||
|
? html` <div class="device-property">
|
||||||
|
<span>
|
||||||
|
${this._dialogParams!.supervisor.localize(
|
||||||
|
"dialog.hardware.id"
|
||||||
|
)}:
|
||||||
|
</span>
|
||||||
|
<code>${device.by_id}</code>
|
||||||
|
</div>`
|
||||||
|
: ""}
|
||||||
|
<div class="attributes">
|
||||||
|
<span>
|
||||||
|
${this._dialogParams!.supervisor.localize(
|
||||||
|
"dialog.hardware.attributes"
|
||||||
|
)}:
|
||||||
|
</span>
|
||||||
|
<pre>${dump(device.attributes, { indent: 2 })}</pre>
|
||||||
|
</div>
|
||||||
|
</ha-expansion-panel>`
|
||||||
|
)}
|
||||||
|
</ha-dialog>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
private _handleSearchChange(ev: CustomEvent) {
|
||||||
|
this._filter = ev.detail.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static get styles(): CSSResultGroup {
|
||||||
|
return [
|
||||||
|
haStyle,
|
||||||
|
haStyleDialog,
|
||||||
|
css`
|
||||||
|
mwc-icon-button {
|
||||||
|
position: absolute;
|
||||||
|
right: 16px;
|
||||||
|
top: 10px;
|
||||||
|
text-decoration: none;
|
||||||
|
color: var(--primary-text-color);
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin: 18px 42px 0 18px;
|
||||||
|
color: var(--primary-text-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
ha-expansion-panel {
|
||||||
|
margin: 4px 0;
|
||||||
|
}
|
||||||
|
pre,
|
||||||
|
code {
|
||||||
|
background-color: var(--markdown-code-background-color, none);
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
padding: 16px;
|
||||||
|
overflow: auto;
|
||||||
|
line-height: 1.45;
|
||||||
|
font-family: var(--code-font-family, monospace);
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
font-size: 85%;
|
||||||
|
padding: 0.2em 0.4em;
|
||||||
|
}
|
||||||
|
search-input {
|
||||||
|
margin: 0 16px;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.device-property {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.attributes {
|
||||||
|
margin-top: 12px;
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface HTMLElementTagNameMap {
|
||||||
|
"dialog-hassio-hardware": HassioHardwareDialog;
|
||||||
|
}
|
||||||
|
}
|
19
hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts
Normal file
19
hassio/src/dialogs/hardware/show-dialog-hassio-hardware.ts
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import { fireEvent } from "../../../../src/common/dom/fire_event";
|
||||||
|
import { HassioHardwareInfo } from "../../../../src/data/hassio/hardware";
|
||||||
|
import { Supervisor } from "../../../../src/data/supervisor/supervisor";
|
||||||
|
|
||||||
|
export interface HassioHardwareDialogParams {
|
||||||
|
supervisor: Supervisor;
|
||||||
|
hardware: HassioHardwareInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const showHassioHardwareDialog = (
|
||||||
|
element: HTMLElement,
|
||||||
|
dialogParams: HassioHardwareDialogParams
|
||||||
|
): void => {
|
||||||
|
fireEvent(element, "show-dialog", {
|
||||||
|
dialogTag: "dialog-hassio-hardware",
|
||||||
|
dialogImport: () => import("./dialog-hassio-hardware"),
|
||||||
|
dialogParams,
|
||||||
|
});
|
||||||
|
};
|
@ -22,6 +22,7 @@ import {
|
|||||||
import { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
|
import { HassDialog } from "../../../../src/dialogs/make-dialog-manager";
|
||||||
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
|
import { haStyle, haStyleDialog } from "../../../../src/resources/styles";
|
||||||
import { HomeAssistant } from "../../../../src/types";
|
import { HomeAssistant } from "../../../../src/types";
|
||||||
|
import { fileDownload } from "../../../../src/util/file_download";
|
||||||
import "../../components/supervisor-snapshot-content";
|
import "../../components/supervisor-snapshot-content";
|
||||||
import type { SupervisorSnapshotContent } from "../../components/supervisor-snapshot-content";
|
import type { SupervisorSnapshotContent } from "../../components/supervisor-snapshot-content";
|
||||||
import { HassioSnapshotDialogParams } from "./show-dialog-hassio-snapshot";
|
import { HassioSnapshotDialogParams } from "./show-dialog-hassio-snapshot";
|
||||||
@ -288,12 +289,11 @@ class HassioSnapshotDialog
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const a = document.createElement("a");
|
fileDownload(
|
||||||
a.href = signedPath.path;
|
this,
|
||||||
a.download = `home_assistant_snapshot_${slugify(this._computeName)}.tar`;
|
signedPath.path,
|
||||||
this.shadowRoot!.appendChild(a);
|
`home_assistant_snapshot_${slugify(this._computeName)}.tar`
|
||||||
a.click();
|
);
|
||||||
this.shadowRoot!.removeChild(a);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private get _computeName() {
|
private get _computeName() {
|
||||||
|
@ -97,16 +97,23 @@ class HassioIngressView extends LitElement {
|
|||||||
title: requestedAddon,
|
title: requestedAddon,
|
||||||
});
|
});
|
||||||
await nextRender();
|
await nextRender();
|
||||||
history.back();
|
navigate("/hassio/store", { replace: true });
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!addonInfo.ingress) {
|
if (!addonInfo.version) {
|
||||||
|
await showAlertDialog(this, {
|
||||||
|
text: this.supervisor.localize("my.error_addon_not_installed"),
|
||||||
|
title: addonInfo.name,
|
||||||
|
});
|
||||||
|
await nextRender();
|
||||||
|
navigate(`/hassio/addon/${addonInfo.slug}/info`, { replace: true });
|
||||||
|
} else if (!addonInfo.ingress) {
|
||||||
await showAlertDialog(this, {
|
await showAlertDialog(this, {
|
||||||
text: this.supervisor.localize("my.error_addon_no_ingress"),
|
text: this.supervisor.localize("my.error_addon_no_ingress"),
|
||||||
title: addonInfo.name,
|
title: addonInfo.name,
|
||||||
});
|
});
|
||||||
await nextRender();
|
await nextRender();
|
||||||
history.back();
|
navigate(`/hassio/addon/${addonInfo.slug}/info`, { replace: true });
|
||||||
} else {
|
} else {
|
||||||
navigate(`/hassio/ingress/${addonInfo.slug}`, { replace: true });
|
navigate(`/hassio/ingress/${addonInfo.slug}`, { replace: true });
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,6 @@ import "@material/mwc-button";
|
|||||||
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 "@material/mwc-list/mwc-list-item";
|
||||||
import { mdiDotsVertical } from "@mdi/js";
|
import { mdiDotsVertical } from "@mdi/js";
|
||||||
import { dump } from "js-yaml";
|
|
||||||
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||||
import { customElement, property } from "lit/decorators";
|
import { customElement, property } from "lit/decorators";
|
||||||
import memoizeOne from "memoize-one";
|
import memoizeOne from "memoize-one";
|
||||||
@ -41,8 +40,8 @@ import {
|
|||||||
roundWithOneDecimal,
|
roundWithOneDecimal,
|
||||||
} from "../../../src/util/calculate";
|
} from "../../../src/util/calculate";
|
||||||
import "../components/supervisor-metric";
|
import "../components/supervisor-metric";
|
||||||
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 { showHassioHardwareDialog } from "../dialogs/hardware/show-dialog-hassio-hardware";
|
||||||
import { hassioStyle } from "../resources/hassio-style";
|
import { hassioStyle } from "../resources/hassio-style";
|
||||||
|
|
||||||
@customElement("hassio-host-info")
|
@customElement("hassio-host-info")
|
||||||
@ -229,20 +228,19 @@ class HassioHostInfo extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async _showHardware(): Promise<void> {
|
private async _showHardware(): Promise<void> {
|
||||||
|
let hardware;
|
||||||
try {
|
try {
|
||||||
const content = await fetchHassioHardwareInfo(this.hass);
|
hardware = await fetchHassioHardwareInfo(this.hass);
|
||||||
showHassioMarkdownDialog(this, {
|
|
||||||
title: this.supervisor.localize("system.host.hardware"),
|
|
||||||
content: `<pre>${dump(content, { indent: 2 })}</pre>`,
|
|
||||||
});
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
showAlertDialog(this, {
|
await showAlertDialog(this, {
|
||||||
title: this.supervisor.localize(
|
title: this.supervisor.localize(
|
||||||
"system.host.failed_to_get_hardware_list"
|
"system.host.failed_to_get_hardware_list"
|
||||||
),
|
),
|
||||||
text: extractApiErrorMessage(err),
|
text: extractApiErrorMessage(err),
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
showHassioHardwareDialog(this, { supervisor: this.supervisor, hardware });
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _hostReboot(ev: CustomEvent): Promise<void> {
|
private async _hostReboot(ev: CustomEvent): Promise<void> {
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
"*.ts": () => "tsc -p tsconfig.json",
|
|
||||||
"*.{js,ts}": "eslint --fix",
|
"*.{js,ts}": "eslint --fix",
|
||||||
"!(/translations)*.{js,ts,json,css,md,html}": "prettier --write",
|
"!(/translations)*.{js,ts,json,css,md,html}": "prettier --write",
|
||||||
};
|
};
|
||||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="home-assistant-frontend",
|
name="home-assistant-frontend",
|
||||||
version="20210601.1",
|
version="20210603.0",
|
||||||
description="The Home Assistant frontend",
|
description="The Home Assistant frontend",
|
||||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||||
author="The Home Assistant Authors",
|
author="The Home Assistant Authors",
|
||||||
|
@ -14,12 +14,17 @@ class HaExpansionPanel extends LitElement {
|
|||||||
|
|
||||||
@property() header?: string;
|
@property() header?: string;
|
||||||
|
|
||||||
|
@property() secondary?: string;
|
||||||
|
|
||||||
@query(".container") private _container!: HTMLDivElement;
|
@query(".container") private _container!: HTMLDivElement;
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
return html`
|
return html`
|
||||||
<div class="summary" @click=${this._toggleContainer}>
|
<div class="summary" @click=${this._toggleContainer}>
|
||||||
<slot name="header">${this.header}</slot>
|
<slot class="header" name="header">
|
||||||
|
${this.header}
|
||||||
|
<slot class="secondary" name="secondary">${this.secondary}</slot>
|
||||||
|
</slot>
|
||||||
<ha-svg-icon
|
<ha-svg-icon
|
||||||
.path=${mdiChevronDown}
|
.path=${mdiChevronDown}
|
||||||
class="summary-icon ${classMap({ expanded: this.expanded })}"
|
class="summary-icon ${classMap({ expanded: this.expanded })}"
|
||||||
@ -106,6 +111,16 @@ class HaExpansionPanel extends LitElement {
|
|||||||
.container.expanded {
|
.container.expanded {
|
||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.secondary {
|
||||||
|
display: block;
|
||||||
|
color: var(--secondary-text-color);
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,14 +7,14 @@ import { afterNextRender } from "../common/util/render-status";
|
|||||||
import { FrontendLocaleData } from "../data/translation";
|
import { FrontendLocaleData } from "../data/translation";
|
||||||
import { getValueInPercentage, normalize } from "../util/calculate";
|
import { getValueInPercentage, normalize } from "../util/calculate";
|
||||||
|
|
||||||
|
// Workaround for https://github.com/home-assistant/frontend/issues/6467
|
||||||
|
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
||||||
|
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Workaround for https://github.com/home-assistant/frontend/issues/6467
|
|
||||||
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
||||||
|
|
||||||
@customElement("ha-gauge")
|
@customElement("ha-gauge")
|
||||||
export class Gauge extends LitElement {
|
export class Gauge extends LitElement {
|
||||||
@property({ type: Number }) public min = 0;
|
@property({ type: Number }) public min = 0;
|
||||||
|
@ -14,12 +14,17 @@ interface HassioHardwareAudioList {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface HardwareDevice {
|
||||||
|
attributes: Record<string, string>;
|
||||||
|
by_id: null | string;
|
||||||
|
dev_path: string;
|
||||||
|
name: string;
|
||||||
|
subsystem: string;
|
||||||
|
sysfs: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface HassioHardwareInfo {
|
export interface HassioHardwareInfo {
|
||||||
serial: string[];
|
devices: HardwareDevice[];
|
||||||
input: string[];
|
|
||||||
disk: string[];
|
|
||||||
gpio: string[];
|
|
||||||
audio: Record<string, unknown>;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const fetchHassioHardwareAudio = async (
|
export const fetchHassioHardwareAudio = async (
|
||||||
|
@ -23,11 +23,6 @@ class MoreInfoPerson extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-attributes
|
|
||||||
.hass=${this.hass}
|
|
||||||
.stateObj=${this.stateObj}
|
|
||||||
extra-filters="id,user_id,editable"
|
|
||||||
></ha-attributes>
|
|
||||||
${this.stateObj.attributes.latitude && this.stateObj.attributes.longitude
|
${this.stateObj.attributes.latitude && this.stateObj.attributes.longitude
|
||||||
? html`
|
? html`
|
||||||
<ha-map
|
<ha-map
|
||||||
@ -51,6 +46,11 @@ class MoreInfoPerson extends LitElement {
|
|||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
|
<ha-attributes
|
||||||
|
.hass=${this.hass}
|
||||||
|
.stateObj=${this.stateObj}
|
||||||
|
extra-filters="id,user_id,editable"
|
||||||
|
></ha-attributes>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,11 +17,6 @@ class MoreInfoTimer extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<ha-attributes
|
|
||||||
.hass=${this.hass}
|
|
||||||
.stateObj=${this.stateObj}
|
|
||||||
extra-filters="remaining"
|
|
||||||
></ha-attributes>
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
${this.stateObj.state === "idle" || this.stateObj.state === "paused"
|
${this.stateObj.state === "idle" || this.stateObj.state === "paused"
|
||||||
? html`
|
? html`
|
||||||
@ -57,6 +52,11 @@ class MoreInfoTimer extends LitElement {
|
|||||||
`
|
`
|
||||||
: ""}
|
: ""}
|
||||||
</div>
|
</div>
|
||||||
|
<ha-attributes
|
||||||
|
.hass=${this.hass}
|
||||||
|
.stateObj=${this.stateObj}
|
||||||
|
extra-filters="remaining"
|
||||||
|
></ha-attributes>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,6 +48,9 @@
|
|||||||
window.providersPromise = fetch("/auth/providers", {
|
window.providersPromise = fetch("/auth/providers", {
|
||||||
credentials: "same-origin",
|
credentials: "same-origin",
|
||||||
});
|
});
|
||||||
|
if (!window.globalThis) {
|
||||||
|
window.globalThis = window;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -71,6 +71,9 @@
|
|||||||
import("<%= latestAppJS %>");
|
import("<%= latestAppJS %>");
|
||||||
window.customPanelJS = "<%= latestCustomPanelJS %>";
|
window.customPanelJS = "<%= latestCustomPanelJS %>";
|
||||||
window.latestJS = true;
|
window.latestJS = true;
|
||||||
|
if (!window.globalThis) {
|
||||||
|
window.globalThis = window;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
{% for extra_module in extra_modules -%}
|
{% for extra_module in extra_modules -%}
|
||||||
|
@ -80,6 +80,9 @@
|
|||||||
window.stepsPromise = fetch("/api/onboarding", {
|
window.stepsPromise = fetch("/api/onboarding", {
|
||||||
credentials: "same-origin",
|
credentials: "same-origin",
|
||||||
});
|
});
|
||||||
|
if (!window.globalThis) {
|
||||||
|
window.globalThis = window;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
@ -24,6 +24,7 @@ import {
|
|||||||
import "../../../../../layouts/hass-tabs-subpage";
|
import "../../../../../layouts/hass-tabs-subpage";
|
||||||
import { haStyle } from "../../../../../resources/styles";
|
import { haStyle } from "../../../../../resources/styles";
|
||||||
import type { HomeAssistant, Route } from "../../../../../types";
|
import type { HomeAssistant, Route } from "../../../../../types";
|
||||||
|
import { fileDownload } from "../../../../../util/file_download";
|
||||||
import "../../../ha-config-section";
|
import "../../../ha-config-section";
|
||||||
import { showZWaveJSAddNodeDialog } from "./show-dialog-zwave_js-add-node";
|
import { showZWaveJSAddNodeDialog } from "./show-dialog-zwave_js-add-node";
|
||||||
import { showZWaveJSRemoveNodeDialog } from "./show-dialog-zwave_js-remove-node";
|
import { showZWaveJSRemoveNodeDialog } from "./show-dialog-zwave_js-remove-node";
|
||||||
@ -312,12 +313,7 @@ class ZWaveJSConfigDashboard extends LitElement {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const a = document.createElement("a");
|
fileDownload(this, signedPath.path, `zwave_js_dump.jsonl`);
|
||||||
a.href = signedPath.path;
|
|
||||||
a.download = `zwave_js_dump.jsonl`;
|
|
||||||
this.shadowRoot!.appendChild(a);
|
|
||||||
a.click();
|
|
||||||
this.shadowRoot!.removeChild(a);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static get styles(): CSSResultGroup {
|
static get styles(): CSSResultGroup {
|
||||||
|
@ -36,7 +36,9 @@ export class HaPickThemeRow extends LitElement {
|
|||||||
const hasThemes =
|
const hasThemes =
|
||||||
this.hass.themes.themes && Object.keys(this.hass.themes.themes).length;
|
this.hass.themes.themes && Object.keys(this.hass.themes.themes).length;
|
||||||
const curTheme =
|
const curTheme =
|
||||||
this.hass.selectedTheme?.theme || this.hass.themes.default_theme;
|
this.hass.selectedTheme?.theme || this.hass.themes.darkMode
|
||||||
|
? this.hass.themes.default_dark_theme || this.hass.themes.default_theme
|
||||||
|
: this.hass.themes.default_theme;
|
||||||
|
|
||||||
const themeSettings = this.hass.selectedTheme;
|
const themeSettings = this.hass.selectedTheme;
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
// For localize
|
// For localize
|
||||||
import "@formatjs/intl-getcanonicallocales/polyfill";
|
|
||||||
import "lit/polyfill-support";
|
|
||||||
import "core-js";
|
import "core-js";
|
||||||
|
import "regenerator-runtime/runtime";
|
||||||
|
import "lit/polyfill-support";
|
||||||
|
import "@formatjs/intl-getcanonicallocales/polyfill";
|
||||||
// To use comlink under ES5
|
// To use comlink under ES5
|
||||||
import "proxy-polyfill";
|
import "proxy-polyfill";
|
||||||
import "regenerator-runtime/runtime";
|
|
||||||
import "unfetch/polyfill";
|
import "unfetch/polyfill";
|
||||||
|
|
||||||
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
|
// Source: https://github.com/jserz/js_piece/blob/master/DOM/ParentNode/append()/append().md
|
||||||
@ -32,3 +32,16 @@ import "unfetch/polyfill";
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
|
})([Element.prototype, Document.prototype, DocumentFragment.prototype]);
|
||||||
|
|
||||||
|
// Source: https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNames
|
||||||
|
if (Element.prototype.getAttributeNames === undefined) {
|
||||||
|
Element.prototype.getAttributeNames = function () {
|
||||||
|
const attributes = this.attributes;
|
||||||
|
const length = attributes.length;
|
||||||
|
const result = new Array(length);
|
||||||
|
for (let i = 0; i < length; i++) {
|
||||||
|
result[i] = attributes[i].name;
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
const isSafari14 = /^((?!chrome|android).)*version\/14\.0\s.*safari/i.test(
|
const isSafari14 = /^((?!chrome|android).)*version\/14\.0\s.*safari/i.test(
|
||||||
navigator.userAgent
|
navigator.userAgent
|
||||||
);
|
);
|
||||||
|
|
||||||
if (isSafari14) {
|
if (isSafari14) {
|
||||||
const origAttachShadow = window.Element.prototype.attachShadow;
|
const origAttachShadow = window.Element.prototype.attachShadow;
|
||||||
window.Element.prototype.attachShadow = function (init) {
|
window.Element.prototype.attachShadow = function (init) {
|
||||||
|
@ -1155,7 +1155,7 @@
|
|||||||
"section": {
|
"section": {
|
||||||
"validation": {
|
"validation": {
|
||||||
"heading": "Configuration validation",
|
"heading": "Configuration validation",
|
||||||
"introduction": "Validate your configuration if you recently made some changes to your configuration and want to make sure that it is all valid",
|
"introduction": "Validate your configuration if you recently made some changes to your configuration and want to make sure that it is all valid.",
|
||||||
"check_config": "Check configuration",
|
"check_config": "Check configuration",
|
||||||
"valid": "Configuration valid!",
|
"valid": "Configuration valid!",
|
||||||
"invalid": "Configuration invalid"
|
"invalid": "Configuration invalid"
|
||||||
@ -3814,6 +3814,8 @@
|
|||||||
"faq_link": "[%key:ui::panel::my::faq_link%]",
|
"faq_link": "[%key:ui::panel::my::faq_link%]",
|
||||||
"error": "[%key:ui::panel::my::error%]",
|
"error": "[%key:ui::panel::my::error%]",
|
||||||
"error_addon_not_found": "Add-on not found",
|
"error_addon_not_found": "Add-on not found",
|
||||||
|
"error_addon_not_started": "The requested add-on are not running. Please start it first",
|
||||||
|
"error_addon_not_installed": "The requested add-on is not installed. Please install it first",
|
||||||
"error_addon_no_ingress": "The requested add-on does not support ingress"
|
"error_addon_no_ingress": "The requested add-on does not support ingress"
|
||||||
},
|
},
|
||||||
"system": {
|
"system": {
|
||||||
@ -3989,6 +3991,14 @@
|
|||||||
"password": "Password",
|
"password": "Password",
|
||||||
"protected": "The snapshot is password protected, please provide the password for it.",
|
"protected": "The snapshot is password protected, please provide the password for it.",
|
||||||
"restore_in_progress": "Restore in progress"
|
"restore_in_progress": "Restore in progress"
|
||||||
|
},
|
||||||
|
"hardware": {
|
||||||
|
"title": "Hardware",
|
||||||
|
"search": "Search hardware",
|
||||||
|
"subsystem": "Subsystem",
|
||||||
|
"id": "ID",
|
||||||
|
"attributes": "Attributes",
|
||||||
|
"device_path": "Device path"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
14
src/util/file_download.ts
Normal file
14
src/util/file_download.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
export const fileDownload = (
|
||||||
|
element: HTMLElement,
|
||||||
|
href: string,
|
||||||
|
filename: string
|
||||||
|
): void => {
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.target = "_blank";
|
||||||
|
a.href = href;
|
||||||
|
a.download = filename;
|
||||||
|
|
||||||
|
element.shadowRoot!.appendChild(a);
|
||||||
|
a.dispatchEvent(new MouseEvent("click"));
|
||||||
|
element.shadowRoot!.removeChild(a);
|
||||||
|
};
|
0
src/util/is_safari.ts
Normal file
0
src/util/is_safari.ts
Normal file
@ -351,6 +351,9 @@
|
|||||||
"create_blocked_not_running": "Създаването на снапшот в момента не е възможно, тъй като системата е в състояние {state}.",
|
"create_blocked_not_running": "Създаването на снапшот в момента не е възможно, тъй като системата е в състояние {state}.",
|
||||||
"create_snapshot": "Създаване на снапшот",
|
"create_snapshot": "Създаване на снапшот",
|
||||||
"created": "Създаден",
|
"created": "Създаден",
|
||||||
|
"delete_selected": "Изтриване на избраните снапшоти",
|
||||||
|
"delete_snapshot_confirm": "Изтрий",
|
||||||
|
"delete_snapshot_title": "Изтриване на снапшот",
|
||||||
"description": "Снапшотите ви позволяват лесно да архивирате и възстановявате всички данни от вашия екземпляр на Home Assistant.",
|
"description": "Снапшотите ви позволяват лесно да архивирате и възстановявате всички данни от вашия екземпляр на Home Assistant.",
|
||||||
"enter_password": "Моля, въведете парола.",
|
"enter_password": "Моля, въведете парола.",
|
||||||
"folder": {
|
"folder": {
|
||||||
@ -369,6 +372,7 @@
|
|||||||
"password_protected": "защитен с парола",
|
"password_protected": "защитен с парола",
|
||||||
"password_protection": "Защита с парола",
|
"password_protection": "Защита с парола",
|
||||||
"security": "Сигурност",
|
"security": "Сигурност",
|
||||||
|
"selected": "{number} избрани",
|
||||||
"type": "Тип",
|
"type": "Тип",
|
||||||
"upload_snapshot": "Качване на снапшот"
|
"upload_snapshot": "Качване на снапшот"
|
||||||
},
|
},
|
||||||
@ -494,7 +498,7 @@
|
|||||||
"heating": "{name} отопление",
|
"heating": "{name} отопление",
|
||||||
"high": "високо",
|
"high": "високо",
|
||||||
"low": "ниско",
|
"low": "ниско",
|
||||||
"on_off": "Вкл. / Изкл",
|
"on_off": "Вкл. / Изкл.",
|
||||||
"operation": "Режим",
|
"operation": "Режим",
|
||||||
"preset_mode": "Предварително зададени настройки",
|
"preset_mode": "Предварително зададени настройки",
|
||||||
"swing_mode": "Режим на люлеене",
|
"swing_mode": "Режим на люлеене",
|
||||||
@ -874,6 +878,7 @@
|
|||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Ако е изключено, новооткритите обекти за {integration} няма да бъдат автоматично добавяни в Home Assistant",
|
"enable_new_entities_description": "Ако е изключено, новооткритите обекти за {integration} няма да бъдат автоматично добавяни в Home Assistant",
|
||||||
"enable_new_entities_label": "Активирай новодобавените обекти.",
|
"enable_new_entities_label": "Активирай новодобавените обекти.",
|
||||||
|
"restart_home_assistant": "Трябва да рестартирате Home Assistant, за да влязат в сила промените.",
|
||||||
"title": "Системни опции за {integration}",
|
"title": "Системни опции за {integration}",
|
||||||
"update": "Актуализация"
|
"update": "Актуализация"
|
||||||
},
|
},
|
||||||
@ -2093,7 +2098,7 @@
|
|||||||
"confirm_delete_ignore_title": "Да се спре ли игнорирането на {name}?",
|
"confirm_delete_ignore_title": "Да се спре ли игнорирането на {name}?",
|
||||||
"confirm_ignore": "Наистина ли не искате да настроите тази интеграция? Можете да отмените това, като кликнете върху „Показване на игнорирани интеграции“ в менюто горе вдясно.",
|
"confirm_ignore": "Наистина ли не искате да настроите тази интеграция? Можете да отмените това, като кликнете върху „Показване на игнорирани интеграции“ в менюто горе вдясно.",
|
||||||
"hide_ignored": "Скриване на игнорираните интеграции",
|
"hide_ignored": "Скриване на игнорираните интеграции",
|
||||||
"ignore": "Игнорирайте",
|
"ignore": "Игнориране",
|
||||||
"ignored": "Игнорирана",
|
"ignored": "Игнорирана",
|
||||||
"show_ignored": "Показване на игнорираните интеграции",
|
"show_ignored": "Показване на игнорираните интеграции",
|
||||||
"stop_ignore": "Спрете да игнорирате"
|
"stop_ignore": "Спрете да игнорирате"
|
||||||
|
@ -284,7 +284,7 @@
|
|||||||
"refresh": "Actualitza",
|
"refresh": "Actualitza",
|
||||||
"release_notes": "Notes de la versió",
|
"release_notes": "Notes de la versió",
|
||||||
"reload": "Torna a carregar",
|
"reload": "Torna a carregar",
|
||||||
"reset_defaults": "Restableix als valors per defecte",
|
"reset_defaults": "Restableix els valors per defecte",
|
||||||
"reset_options": "Opcions de reinici",
|
"reset_options": "Opcions de reinici",
|
||||||
"restart": "Reinicia",
|
"restart": "Reinicia",
|
||||||
"restart_name": "Reinicia {name}",
|
"restart_name": "Reinicia {name}",
|
||||||
@ -368,6 +368,8 @@
|
|||||||
"error": "S'ha produït un error desconegut",
|
"error": "S'ha produït un error desconegut",
|
||||||
"error_addon_no_ingress": "El complement sol·licitat no admet ingress",
|
"error_addon_no_ingress": "El complement sol·licitat no admet ingress",
|
||||||
"error_addon_not_found": "No s'ha trobat el complement",
|
"error_addon_not_found": "No s'ha trobat el complement",
|
||||||
|
"error_addon_not_installed": "El complement sol·licitat no està instal·lat. Instal·la'l primer",
|
||||||
|
"error_addon_not_started": "El complement sol·licitat no s'està executant. Inicia'l primer",
|
||||||
"faq_link": "Preguntes freqüents de My Home Assistant",
|
"faq_link": "Preguntes freqüents de My Home Assistant",
|
||||||
"not_supported": "La instància de Home Assistant no admet aquesta redirecció. Consulta {link} per veure les redireccions compatibles i en quina versió es van introduir."
|
"not_supported": "La instància de Home Assistant no admet aquesta redirecció. Consulta {link} per veure les redireccions compatibles i en quina versió es van introduir."
|
||||||
},
|
},
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Comprova la configuració",
|
"check_config": "Comprova la configuració",
|
||||||
"heading": "Validació de la configuració",
|
"heading": "Validació de la configuració",
|
||||||
"introduction": "Valida la configuració si recentment has fet algun canvi a la configuració i vols assegurar-te de que sigui vàlida.",
|
"introduction": "Valida la configuració si recentment n'has fet algun canvi i vols assegurar-te de que sigui vàlida.",
|
||||||
"invalid": "Configuració invàlida",
|
"invalid": "Configuració invàlida",
|
||||||
"valid": "Configuració vàlida!"
|
"valid": "Configuració vàlida!"
|
||||||
}
|
}
|
||||||
@ -3714,7 +3716,7 @@
|
|||||||
},
|
},
|
||||||
"page-authorize": {
|
"page-authorize": {
|
||||||
"abort_intro": "S'ha avortat l'inici de sessió",
|
"abort_intro": "S'ha avortat l'inici de sessió",
|
||||||
"authorizing_client": "Esteu a punt de permetre l'accés a la vostra instància de Home Assistant al client {clientId}.",
|
"authorizing_client": "Estàs a punt de concedir al client {clientId} l'accés a la teva instància de Home Assistant.",
|
||||||
"form": {
|
"form": {
|
||||||
"error": "Error: {error}",
|
"error": "Error: {error}",
|
||||||
"next": "Següent",
|
"next": "Següent",
|
||||||
@ -3808,7 +3810,7 @@
|
|||||||
"working": "Si us plau, espereu"
|
"working": "Si us plau, espereu"
|
||||||
},
|
},
|
||||||
"initializing": "S'està inicialitzant",
|
"initializing": "S'està inicialitzant",
|
||||||
"logging_in_to_with": "S'escriuen els registes amb **{authProviderName}** a **{locationName}**.",
|
"logging_in_to_with": "Iniciant sessió a **{locationName}** amb **{authProviderName}**.",
|
||||||
"logging_in_with": "Iniciant sessió amb **{authProviderName}**.",
|
"logging_in_with": "Iniciant sessió amb **{authProviderName}**.",
|
||||||
"pick_auth_provider": "O bé inicieu sessió amb"
|
"pick_auth_provider": "O bé inicieu sessió amb"
|
||||||
},
|
},
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Nastala neznámá chyba",
|
"error": "Nastala neznámá chyba",
|
||||||
"error_addon_no_ingress": "Požadovaný doplněk nepodporuje ingress",
|
"error_addon_no_ingress": "Požadovaný doplněk nepodporuje ingress",
|
||||||
"error_addon_not_found": "Doplněk nebyl nalezen",
|
"error_addon_not_found": "Doplněk nebyl nalezen",
|
||||||
|
"error_addon_not_installed": "Požadovaný doplněk není nainstalován. Nejprve jej prosím nainstalujte",
|
||||||
|
"error_addon_not_started": "Požadovaný doplněk není spuštěn. Nejprve jej prosím spusťte",
|
||||||
"faq_link": "Časté dotazy týkající se My Home Assistant",
|
"faq_link": "Časté dotazy týkající se My Home Assistant",
|
||||||
"not_supported": "Toto přesměrování není vaší instancí Home Assistant podporováno. Zkontrolujte {link} pro podporovaná přesměrování a verzi, ve které byla zavedena."
|
"not_supported": "Toto přesměrování není vaší instancí Home Assistant podporováno. Zkontrolujte {link} pro podporovaná přesměrování a verzi, ve které byla zavedena."
|
||||||
},
|
},
|
||||||
@ -929,8 +931,11 @@
|
|||||||
},
|
},
|
||||||
"dialogs": {
|
"dialogs": {
|
||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Pokud je zakázáno, nově objevené entity pro {integration} nebudou automaticky přidány do Home Assistant.",
|
"enable_new_entities_description": "Pokud se mají automaticky přidat nově objevená zařízení integrace {integration}.",
|
||||||
"enable_new_entities_label": "Povolit nově přidané entity.",
|
"enable_new_entities_label": "Povolit nově přidané entity.",
|
||||||
|
"enable_polling_description": "Má-li Home Assistant automaticky zjišťovat aktualizace entit integrace {integration}.",
|
||||||
|
"enable_polling_label": "Povolit dotazování na aktualizace.",
|
||||||
|
"restart_home_assistant": "Aby se změny projevily, je třeba restartovat Home Assistant.",
|
||||||
"title": "Upravit nastavení pro {integration}",
|
"title": "Upravit nastavení pro {integration}",
|
||||||
"update": "Aktualizovat"
|
"update": "Aktualizovat"
|
||||||
},
|
},
|
||||||
@ -1164,7 +1169,7 @@
|
|||||||
},
|
},
|
||||||
"types": {
|
"types": {
|
||||||
"navigation": "Navigovat",
|
"navigation": "Navigovat",
|
||||||
"reload": "Znovu načíst",
|
"reload": "Nově načíst",
|
||||||
"server_control": "Server"
|
"server_control": "Server"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2073,7 +2078,8 @@
|
|||||||
"scripts": "Skripty",
|
"scripts": "Skripty",
|
||||||
"unknown_error": "Neznámá chyba",
|
"unknown_error": "Neznámá chyba",
|
||||||
"unnamed_device": "Nepojmenované zařízení",
|
"unnamed_device": "Nepojmenované zařízení",
|
||||||
"update": "Aktualizovat"
|
"update": "Aktualizovat",
|
||||||
|
"update_device_error": "Aktualizace zařízení se nezdařila"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Entity",
|
"caption": "Entity",
|
||||||
@ -2206,6 +2212,7 @@
|
|||||||
"depends_on_cloud": "Závisí na cloudu",
|
"depends_on_cloud": "Závisí na cloudu",
|
||||||
"device_unavailable": "Zařízení není dostupné",
|
"device_unavailable": "Zařízení není dostupné",
|
||||||
"devices": "{count} {count, plural,\n one {zařízení}\n other {zařízení}\n}",
|
"devices": "{count} {count, plural,\n one {zařízení}\n other {zařízení}\n}",
|
||||||
|
"disable_error": "Povolení nebo zakázání integrace se nezdařilo",
|
||||||
"disable_restart_confirm": "Restartujte Home Assistant pro dokončení odstranění této integrace",
|
"disable_restart_confirm": "Restartujte Home Assistant pro dokončení odstranění této integrace",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "Opravdu chcete zakázat tuto položku konfigurace? Její zařízení a entity budou zakázány.",
|
"disable_confirm": "Opravdu chcete zakázat tuto položku konfigurace? Její zařízení a entity budou zakázány.",
|
||||||
@ -2217,6 +2224,7 @@
|
|||||||
},
|
},
|
||||||
"disabled_cause": "Zakázáno {cause}"
|
"disabled_cause": "Zakázáno {cause}"
|
||||||
},
|
},
|
||||||
|
"disabled_polling": "Automatické dotazování na aktualizovaná data je zakázáno",
|
||||||
"documentation": "Dokumentace",
|
"documentation": "Dokumentace",
|
||||||
"enable_restart_confirm": "Restartujte Home Assistant pro dokončení přidání této integrace",
|
"enable_restart_confirm": "Restartujte Home Assistant pro dokončení přidání této integrace",
|
||||||
"entities": "{count} {count, plural,\n one {entita}\n other {entit}\n}",
|
"entities": "{count} {count, plural,\n one {entita}\n other {entit}\n}",
|
||||||
@ -2713,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Zkontrolujte konfiguraci",
|
"check_config": "Zkontrolujte konfiguraci",
|
||||||
"heading": "Ověření konfigurace",
|
"heading": "Ověření konfigurace",
|
||||||
"introduction": "Pokud jste nedávno provedli změny konfigurace a chcete se ujistit, že je vše v pořádku, můžete zde konfiguraci ověřit",
|
"introduction": "Pokud jste nedávno provedli nějaké změny v konfiguraci a chcete se ujistit, že jsou všechny platné, proveďte ověření konfigurace.",
|
||||||
"invalid": "Konfigurace není v pořádku!",
|
"invalid": "Konfigurace není v pořádku!",
|
||||||
"valid": "Konfigurace je v pořádku!"
|
"valid": "Konfigurace je v pořádku!"
|
||||||
}
|
}
|
||||||
@ -2928,6 +2936,7 @@
|
|||||||
"follow_device_instructions": "Podle pokynů dodaných se zařízením aktivujte párování na zařízení.",
|
"follow_device_instructions": "Podle pokynů dodaných se zařízením aktivujte párování na zařízení.",
|
||||||
"inclusion_failed": "Uzel nelze přidat. Další informace najdete v protokolech.",
|
"inclusion_failed": "Uzel nelze přidat. Další informace najdete v protokolech.",
|
||||||
"inclusion_finished": "Uzel byl přidán.",
|
"inclusion_finished": "Uzel byl přidán.",
|
||||||
|
"interview_failed": "Komunikace se zařízením se nezdařila. V logách mohou být k dispozici další informace.",
|
||||||
"introduction": "Tento průvodce vás provede přidáním uzlu do vaší sítě Z-Wave.",
|
"introduction": "Tento průvodce vás provede přidáním uzlu do vaší sítě Z-Wave.",
|
||||||
"secure_inclusion_warning": "Zabezpečená zařízení vyžadují větší šířku pásma; příliš mnoho zabezpečených zařízení může zpomalit vaši síť Z-Wave. Bezpečné začlenění doporučujeme používat pouze u zařízení, která to vyžadují, jako jsou zámky nebo otvírače garážových vrat.",
|
"secure_inclusion_warning": "Zabezpečená zařízení vyžadují větší šířku pásma; příliš mnoho zabezpečených zařízení může zpomalit vaši síť Z-Wave. Bezpečné začlenění doporučujeme používat pouze u zařízení, která to vyžadují, jako jsou zámky nebo otvírače garážových vrat.",
|
||||||
"start_inclusion": "Zahájit začlenění",
|
"start_inclusion": "Zahájit začlenění",
|
||||||
@ -3092,7 +3101,7 @@
|
|||||||
"heal_node": "Uzdravit uzel",
|
"heal_node": "Uzdravit uzel",
|
||||||
"node_info": "Informace o uzlu",
|
"node_info": "Informace o uzlu",
|
||||||
"print_node": "Otisk uzlu",
|
"print_node": "Otisk uzlu",
|
||||||
"refresh_entity": "Znovu načíst Entitu",
|
"refresh_entity": "Nově načíst Entitu",
|
||||||
"refresh_node": "Obnovit uzel",
|
"refresh_node": "Obnovit uzel",
|
||||||
"remove_failed_node": "Odebrat selhaný uzel",
|
"remove_failed_node": "Odebrat selhaný uzel",
|
||||||
"remove_node": "Odebrat uzel",
|
"remove_node": "Odebrat uzel",
|
||||||
@ -3157,6 +3166,7 @@
|
|||||||
"copy_id": "Zkopírovat ID do schránky",
|
"copy_id": "Zkopírovat ID do schránky",
|
||||||
"current_entities": "Současné entity",
|
"current_entities": "Současné entity",
|
||||||
"description1": "Nastavte stav zařízení v Home Assistant.",
|
"description1": "Nastavte stav zařízení v Home Assistant.",
|
||||||
|
"description2": "Pokud entita patří k zařízení, neprobíhá s tímto zařízením žádná skutečná komunikace.",
|
||||||
"entity": "Entita",
|
"entity": "Entita",
|
||||||
"filter_attributes": "Filtrovat atributy",
|
"filter_attributes": "Filtrovat atributy",
|
||||||
"filter_entities": "Filtrovat entity",
|
"filter_entities": "Filtrovat entity",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Ein unbekannter Fehler ist aufgetreten.",
|
"error": "Ein unbekannter Fehler ist aufgetreten.",
|
||||||
"error_addon_no_ingress": "Das angeforderte Add-on unterstützt keinen Ingress",
|
"error_addon_no_ingress": "Das angeforderte Add-on unterstützt keinen Ingress",
|
||||||
"error_addon_not_found": "Add-on nicht gefunden",
|
"error_addon_not_found": "Add-on nicht gefunden",
|
||||||
|
"error_addon_not_installed": "Das angeforderte Add-on ist nicht installiert. Bitte installiere es zuerst",
|
||||||
|
"error_addon_not_started": "Das angeforderte Add-on läuft nicht. Bitte starte es zuerst",
|
||||||
"faq_link": "Häufig gestellten Fragen zu Home Assistant",
|
"faq_link": "Häufig gestellten Fragen zu Home Assistant",
|
||||||
"not_supported": "Diese Weiterleitung wird von deiner Home Assistant-Instanz nicht unterstützt. Überprüfe den {link} auf die unterstützten Weiterleitungen und die Version, in der sie eingeführt wurden."
|
"not_supported": "Diese Weiterleitung wird von deiner Home Assistant-Instanz nicht unterstützt. Überprüfe den {link} auf die unterstützten Weiterleitungen und die Version, in der sie eingeführt wurden."
|
||||||
},
|
},
|
||||||
@ -385,8 +387,13 @@
|
|||||||
"create_blocked_not_running": "Das Erstellen eines Snapshots ist derzeit nicht möglich, da sich das System im Zustand {state} befindet.",
|
"create_blocked_not_running": "Das Erstellen eines Snapshots ist derzeit nicht möglich, da sich das System im Zustand {state} befindet.",
|
||||||
"create_snapshot": "Datensicherung erstellen",
|
"create_snapshot": "Datensicherung erstellen",
|
||||||
"created": "Erstellt",
|
"created": "Erstellt",
|
||||||
|
"delete_selected": "Ausgewählten Snapshot löschen",
|
||||||
|
"delete_snapshot_confirm": "löschen",
|
||||||
|
"delete_snapshot_text": "Möchtest du {number} {number, plural,\n one {den Snapshot}\n other {die Snapshots}\n} löschen?",
|
||||||
|
"delete_snapshot_title": "Snapshot löschen",
|
||||||
"description": "Datensicherungen ermöglichen dir das leichte Speichern und Wiederherstellen von allen Daten aus Home Assistant.",
|
"description": "Datensicherungen ermöglichen dir das leichte Speichern und Wiederherstellen von allen Daten aus Home Assistant.",
|
||||||
"enter_password": "Bitte Passwort eingeben.",
|
"enter_password": "Bitte Passwort eingeben.",
|
||||||
|
"failed_to_delete": "Löschen fehlgeschlagen",
|
||||||
"folder": {
|
"folder": {
|
||||||
"addons/local": "Lokale Add-ons",
|
"addons/local": "Lokale Add-ons",
|
||||||
"homeassistant": "Home Assistant-Konfiguration",
|
"homeassistant": "Home Assistant-Konfiguration",
|
||||||
@ -403,6 +410,8 @@
|
|||||||
"password_protected": "Passwort geschützt",
|
"password_protected": "Passwort geschützt",
|
||||||
"password_protection": "Passwortschutz",
|
"password_protection": "Passwortschutz",
|
||||||
"security": "Sicherheit",
|
"security": "Sicherheit",
|
||||||
|
"select_type": "Wähle aus, was wiederhergestellt werden soll",
|
||||||
|
"selected": "{number} ausgewählt",
|
||||||
"type": "Typ",
|
"type": "Typ",
|
||||||
"upload_snapshot": "Datensicherung hochladen"
|
"upload_snapshot": "Datensicherung hochladen"
|
||||||
},
|
},
|
||||||
@ -720,6 +729,9 @@
|
|||||||
"no_match": "Keine übereinstimmende Bereiche gefunden",
|
"no_match": "Keine übereinstimmende Bereiche gefunden",
|
||||||
"show_areas": "Bereiche anzeigen"
|
"show_areas": "Bereiche anzeigen"
|
||||||
},
|
},
|
||||||
|
"attributes": {
|
||||||
|
"expansion_header": "Attribute"
|
||||||
|
},
|
||||||
"blueprint-picker": {
|
"blueprint-picker": {
|
||||||
"add_user": "Benutzer hinzufügen",
|
"add_user": "Benutzer hinzufügen",
|
||||||
"remove_user": "Benutzer entfernen",
|
"remove_user": "Benutzer entfernen",
|
||||||
@ -921,6 +933,9 @@
|
|||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Wenn deaktiviert werden neu erkannte Entitäten für {integration} nicht automatisch zu Home Assistant hinzugefügt.",
|
"enable_new_entities_description": "Wenn deaktiviert werden neu erkannte Entitäten für {integration} nicht automatisch zu Home Assistant hinzugefügt.",
|
||||||
"enable_new_entities_label": "Neu hinzugefügte Entitäten aktivieren.",
|
"enable_new_entities_label": "Neu hinzugefügte Entitäten aktivieren.",
|
||||||
|
"enable_polling_description": "Ob Home Assistant automatisch {integration} Entitäten nach Updates abfragen soll.",
|
||||||
|
"enable_polling_label": "Aktiviere Polling für Updates.",
|
||||||
|
"restart_home_assistant": "Du musst Home Assistant neu starten, damit deine Änderungen wirksam werden.",
|
||||||
"title": "Einstellungen für {integration}",
|
"title": "Einstellungen für {integration}",
|
||||||
"update": "Aktualisieren"
|
"update": "Aktualisieren"
|
||||||
},
|
},
|
||||||
@ -1719,6 +1734,7 @@
|
|||||||
"title": "Alexa"
|
"title": "Alexa"
|
||||||
},
|
},
|
||||||
"connected": "Verbunden",
|
"connected": "Verbunden",
|
||||||
|
"connecting": "Verbinde...",
|
||||||
"connection_status": "Cloud-Verbindungsstatus",
|
"connection_status": "Cloud-Verbindungsstatus",
|
||||||
"fetching_subscription": "Abo wird abgerufen ...",
|
"fetching_subscription": "Abo wird abgerufen ...",
|
||||||
"google": {
|
"google": {
|
||||||
@ -2062,7 +2078,8 @@
|
|||||||
"scripts": "Skripte",
|
"scripts": "Skripte",
|
||||||
"unknown_error": "Unbekannter Fehler",
|
"unknown_error": "Unbekannter Fehler",
|
||||||
"unnamed_device": "Unbenanntes Gerät",
|
"unnamed_device": "Unbenanntes Gerät",
|
||||||
"update": "Aktualisieren"
|
"update": "Aktualisieren",
|
||||||
|
"update_device_error": "Aktualisieren des Geräts fehlgeschlagen"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Entitäten",
|
"caption": "Entitäten",
|
||||||
@ -2195,6 +2212,7 @@
|
|||||||
"depends_on_cloud": "Abhängig von der Cloud",
|
"depends_on_cloud": "Abhängig von der Cloud",
|
||||||
"device_unavailable": "Gerät nicht verfügbar",
|
"device_unavailable": "Gerät nicht verfügbar",
|
||||||
"devices": "{count} {count, plural,\n one {Gerät}\n other {Geräte}\n}",
|
"devices": "{count} {count, plural,\n one {Gerät}\n other {Geräte}\n}",
|
||||||
|
"disable_error": "Aktivieren oder Deaktivieren der Integration fehlgeschlagen",
|
||||||
"disable_restart_confirm": "Home Assistant neu starten, um das Deaktivieren dieser Integration abzuschließen",
|
"disable_restart_confirm": "Home Assistant neu starten, um das Deaktivieren dieser Integration abzuschließen",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "Möchtest du diesen Konfigurationseintrag wirklich deaktivieren? Die Geräte und Entitäten werden deaktiviert.",
|
"disable_confirm": "Möchtest du diesen Konfigurationseintrag wirklich deaktivieren? Die Geräte und Entitäten werden deaktiviert.",
|
||||||
@ -2206,6 +2224,7 @@
|
|||||||
},
|
},
|
||||||
"disabled_cause": "Deaktiviert durch {cause}."
|
"disabled_cause": "Deaktiviert durch {cause}."
|
||||||
},
|
},
|
||||||
|
"disabled_polling": "Automatisches Abfragen nach aktualisierten Daten deaktiviert",
|
||||||
"documentation": "Dokumentation",
|
"documentation": "Dokumentation",
|
||||||
"enable_restart_confirm": "Home Assistant neu starten, um das Aktivieren dieser Integration abzuschließen",
|
"enable_restart_confirm": "Home Assistant neu starten, um das Aktivieren dieser Integration abzuschließen",
|
||||||
"entities": "{count} {count, plural,\none {Entität}\nother {Entitäten}\n}",
|
"entities": "{count} {count, plural,\none {Entität}\nother {Entitäten}\n}",
|
||||||
@ -2959,6 +2978,7 @@
|
|||||||
},
|
},
|
||||||
"logs": {
|
"logs": {
|
||||||
"log_level": "Protokollstufe",
|
"log_level": "Protokollstufe",
|
||||||
|
"log_level_changed": "Log Level geändert auf: {level}",
|
||||||
"subscribed_to_logs": "Abonniert Z-Wave JS-Protokollnachrichten ...",
|
"subscribed_to_logs": "Abonniert Z-Wave JS-Protokollnachrichten ...",
|
||||||
"title": "Z-Wave JS Protokolle"
|
"title": "Z-Wave JS Protokolle"
|
||||||
},
|
},
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "An unknown error occurred",
|
"error": "An unknown error occurred",
|
||||||
"error_addon_no_ingress": "The requested add-on does not support ingress",
|
"error_addon_no_ingress": "The requested add-on does not support ingress",
|
||||||
"error_addon_not_found": "Add-on not found",
|
"error_addon_not_found": "Add-on not found",
|
||||||
|
"error_addon_not_installed": "The requested add-on is not installed. Please install it first",
|
||||||
|
"error_addon_not_started": "The requested add-on are not running. Please start it first",
|
||||||
"faq_link": "My Home Assistant FAQ",
|
"faq_link": "My Home Assistant FAQ",
|
||||||
"not_supported": "This redirect is not supported by your Home Assistant instance. Check the {link} for the supported redirects and the version they where introduced."
|
"not_supported": "This redirect is not supported by your Home Assistant instance. Check the {link} for the supported redirects and the version they where introduced."
|
||||||
},
|
},
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Check configuration",
|
"check_config": "Check configuration",
|
||||||
"heading": "Configuration validation",
|
"heading": "Configuration validation",
|
||||||
"introduction": "Validate your configuration if you recently made some changes to your configuration and want to make sure that it is all valid",
|
"introduction": "Validate your configuration if you recently made some changes to your configuration and want to make sure that it is all valid.",
|
||||||
"invalid": "Configuration invalid",
|
"invalid": "Configuration invalid",
|
||||||
"valid": "Configuration valid!"
|
"valid": "Configuration valid!"
|
||||||
}
|
}
|
||||||
|
@ -367,6 +367,8 @@
|
|||||||
"my": {
|
"my": {
|
||||||
"error": "Ha ocurrido un error desconocido",
|
"error": "Ha ocurrido un error desconocido",
|
||||||
"error_addon_not_found": "Complemento no encontrado",
|
"error_addon_not_found": "Complemento no encontrado",
|
||||||
|
"error_addon_not_installed": "El complemento solicitado no está instalado. Por favor instálelo primero",
|
||||||
|
"error_addon_not_started": "El complemento solicitado no se están ejecutando. Por favor inícielo antes.",
|
||||||
"faq_link": "Mis preguntas frecuentes de Home Assistant",
|
"faq_link": "Mis preguntas frecuentes de Home Assistant",
|
||||||
"not_supported": "Esta redirección no está soportada por su instancia de Home Assistant. Consulte las redirecciones soportadas y la versión en la que fueron introducidas en {link}."
|
"not_supported": "Esta redirección no está soportada por su instancia de Home Assistant. Consulte las redirecciones soportadas y la versión en la que fueron introducidas en {link}."
|
||||||
},
|
},
|
||||||
@ -2031,7 +2033,8 @@
|
|||||||
"scripts": "Scripts",
|
"scripts": "Scripts",
|
||||||
"unknown_error": "Error desconocido",
|
"unknown_error": "Error desconocido",
|
||||||
"unnamed_device": "Dispositivo sin nombre",
|
"unnamed_device": "Dispositivo sin nombre",
|
||||||
"update": "Actualizar"
|
"update": "Actualizar",
|
||||||
|
"update_device_error": "Error al actualizar el dispositivo"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Entidades",
|
"caption": "Entidades",
|
||||||
@ -2163,6 +2166,7 @@
|
|||||||
"depends_on_cloud": "Depende de la nube",
|
"depends_on_cloud": "Depende de la nube",
|
||||||
"device_unavailable": "Dispositivo no disponible",
|
"device_unavailable": "Dispositivo no disponible",
|
||||||
"devices": "{count} {count, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
"devices": "{count} {count, plural,\n one {dispositivo}\n other {dispositivos}\n}",
|
||||||
|
"disable_error": "Ha fallado la habilitación o deshabilitación de la integración",
|
||||||
"disable_restart_confirm": "Reinicie Home Assistant para terminar de deshabilitar esta integración",
|
"disable_restart_confirm": "Reinicie Home Assistant para terminar de deshabilitar esta integración",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "¿Está seguro de que desea deshabilitar esta entrada de configuración? Sus dispositivos y entidades serán deshabilitados.",
|
"disable_confirm": "¿Está seguro de que desea deshabilitar esta entrada de configuración? Sus dispositivos y entidades serán deshabilitados.",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Se ha producido un error desconocido",
|
"error": "Se ha producido un error desconocido",
|
||||||
"error_addon_no_ingress": "El complemento solicitado no admite la entrada",
|
"error_addon_no_ingress": "El complemento solicitado no admite la entrada",
|
||||||
"error_addon_not_found": "Complemento no encontrado",
|
"error_addon_not_found": "Complemento no encontrado",
|
||||||
|
"error_addon_not_installed": "El complemento solicitado no está instalado. Por favor instálalo primero",
|
||||||
|
"error_addon_not_started": "El complemento solicitado no se está ejecutando. Por favor, inícialo primero",
|
||||||
"faq_link": "Preguntas frecuentes sobre mi Home Assistant",
|
"faq_link": "Preguntas frecuentes sobre mi Home Assistant",
|
||||||
"not_supported": "Esta redirección no es compatible con tu instancia de Home Assistant. Consulta el {link} para conocer las redirecciones admitidas y la versión en la que se introdujeron."
|
"not_supported": "Esta redirección no es compatible con tu instancia de Home Assistant. Consulta el {link} para conocer las redirecciones admitidas y la versión en la que se introdujeron."
|
||||||
},
|
},
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Verificar configuración",
|
"check_config": "Verificar configuración",
|
||||||
"heading": "Validación de la configuración",
|
"heading": "Validación de la configuración",
|
||||||
"introduction": "Valida tu configuración si has realizado cambios recientemente y quieres asegurarte de que son correctos",
|
"introduction": "Valida tu configuración si has realizado cambios recientemente en ella y quieres asegurarte de que son correctos",
|
||||||
"invalid": "Configuración no válida",
|
"invalid": "Configuración no válida",
|
||||||
"valid": "¡Configuración valida!"
|
"valid": "¡Configuración valida!"
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Viga",
|
"error": "Viga",
|
||||||
"error_addon_no_ingress": "Valitud lisandmoodul ei toeta ingressi",
|
"error_addon_no_ingress": "Valitud lisandmoodul ei toeta ingressi",
|
||||||
"error_addon_not_found": "Lisandmoodulit ei leitud",
|
"error_addon_not_found": "Lisandmoodulit ei leitud",
|
||||||
|
"error_addon_not_installed": "Soovitud lisandmoodul pole pigaldatud. Alustamiseks paigalda see",
|
||||||
|
"error_addon_not_started": "Soovitud lisandmoodul ei tööta. Alustamiseks käivita see",
|
||||||
"faq_link": "KKK viide",
|
"faq_link": "KKK viide",
|
||||||
"not_supported": "pole toetatud"
|
"not_supported": "pole toetatud"
|
||||||
},
|
},
|
||||||
@ -929,7 +931,7 @@
|
|||||||
},
|
},
|
||||||
"dialogs": {
|
"dialogs": {
|
||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Kas lisada äsja avastatud sidumise {integration} olemed automaatselt Home Assistant'i.",
|
"enable_new_entities_description": "Kas lisada äsja avastatud sidumise {integration} olemeid automaatselt Home Assistant'i.",
|
||||||
"enable_new_entities_label": "Luba äsja lisatud olemid.",
|
"enable_new_entities_label": "Luba äsja lisatud olemid.",
|
||||||
"enable_polling_description": "Kas Home Assistant peaks automaatselt küsitlema {integration} üksusi uuenduste saamiseks.",
|
"enable_polling_description": "Kas Home Assistant peaks automaatselt küsitlema {integration} üksusi uuenduste saamiseks.",
|
||||||
"enable_polling_label": "Luba värskenduste jaoks küsitlus.",
|
"enable_polling_label": "Luba värskenduste jaoks küsitlus.",
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Kontrolli seadeid",
|
"check_config": "Kontrolli seadeid",
|
||||||
"heading": "Seadete kontrollimine",
|
"heading": "Seadete kontrollimine",
|
||||||
"introduction": "Kontrolli oma seadeid kui oled neis hiljuti muutusi teinud ja tahad veenduda, et kõik on korrektne",
|
"introduction": "Kontrolli oma seadeid kui oled neis hiljuti muutusi teinud ja tahad veenduda, et kõik on korrektne.",
|
||||||
"invalid": "Konfiguratsioon on vigane",
|
"invalid": "Konfiguratsioon on vigane",
|
||||||
"valid": "Konfiguratsioon on korrektne!"
|
"valid": "Konfiguratsioon on korrektne!"
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -368,6 +368,8 @@
|
|||||||
"error": "Si è verificato un errore sconosciuto",
|
"error": "Si è verificato un errore sconosciuto",
|
||||||
"error_addon_no_ingress": "Il componente aggiuntivo richiesto non supporta l'ingresso",
|
"error_addon_no_ingress": "Il componente aggiuntivo richiesto non supporta l'ingresso",
|
||||||
"error_addon_not_found": "Componente aggiuntivo non trovato",
|
"error_addon_not_found": "Componente aggiuntivo non trovato",
|
||||||
|
"error_addon_not_installed": "Il componente aggiuntivo richiesto non è installato. Si prega di installarlo prima di proseguire",
|
||||||
|
"error_addon_not_started": "Il componente aggiuntivo non è in esecuzione. Si prega di avviarlo prima di proseguire",
|
||||||
"faq_link": "My Home Assistant FAQ",
|
"faq_link": "My Home Assistant FAQ",
|
||||||
"not_supported": "Questo reindirizzamento non è supportato dall'istanza di Home Assistant. Controlla il {link} per i reindirizzamenti supportati e la versione in cui sono stati introdotti."
|
"not_supported": "Questo reindirizzamento non è supportato dall'istanza di Home Assistant. Controlla il {link} per i reindirizzamenti supportati e la versione in cui sono stati introdotti."
|
||||||
},
|
},
|
||||||
@ -411,7 +413,7 @@
|
|||||||
"select_type": "Seleziona cosa ripristinare",
|
"select_type": "Seleziona cosa ripristinare",
|
||||||
"selected": "{number} selezionato/i",
|
"selected": "{number} selezionato/i",
|
||||||
"type": "Tipo di istantanea",
|
"type": "Tipo di istantanea",
|
||||||
"upload_snapshot": "Invia istantanea"
|
"upload_snapshot": "Aggiungi istantanea"
|
||||||
},
|
},
|
||||||
"store": {
|
"store": {
|
||||||
"missing_addons": "Componenti aggiuntivi mancanti? Abilita la modalità avanzata nella pagina del tuo profilo utente",
|
"missing_addons": "Componenti aggiuntivi mancanti? Abilita la modalità avanzata nella pagina del tuo profilo utente",
|
||||||
@ -2076,7 +2078,8 @@
|
|||||||
"scripts": "Script",
|
"scripts": "Script",
|
||||||
"unknown_error": "Errore sconosciuto",
|
"unknown_error": "Errore sconosciuto",
|
||||||
"unnamed_device": "Dispositivo senza nome",
|
"unnamed_device": "Dispositivo senza nome",
|
||||||
"update": "Aggiorna"
|
"update": "Aggiorna",
|
||||||
|
"update_device_error": "Aggiornamento del dispositivo non riuscito"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Entità",
|
"caption": "Entità",
|
||||||
@ -2209,6 +2212,7 @@
|
|||||||
"depends_on_cloud": "Dipende dal cloud",
|
"depends_on_cloud": "Dipende dal cloud",
|
||||||
"device_unavailable": "Dispositivo non disponibile",
|
"device_unavailable": "Dispositivo non disponibile",
|
||||||
"devices": "{count} {count, plural, \none {dispositivo}\nother {dispositivi}\n}",
|
"devices": "{count} {count, plural, \none {dispositivo}\nother {dispositivi}\n}",
|
||||||
|
"disable_error": "Abilitazione o disabilitazione dell'integrazione non riuscita",
|
||||||
"disable_restart_confirm": "Riavvia Home Assistant per terminare la disabilitazione di questa integrazione",
|
"disable_restart_confirm": "Riavvia Home Assistant per terminare la disabilitazione di questa integrazione",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "Sei sicuro di voler disabilitare questa voce di configurazione? I suoi dispositivi ed entità saranno disabilitati.",
|
"disable_confirm": "Sei sicuro di voler disabilitare questa voce di configurazione? I suoi dispositivi ed entità saranno disabilitati.",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "알 수 없는 오류가 발생했습니다",
|
"error": "알 수 없는 오류가 발생했습니다",
|
||||||
"error_addon_no_ingress": "해당 애드온은 인그레스를 지원하지 않습니다.",
|
"error_addon_no_ingress": "해당 애드온은 인그레스를 지원하지 않습니다.",
|
||||||
"error_addon_not_found": "애드온을 찾을 수 없습니다",
|
"error_addon_not_found": "애드온을 찾을 수 없습니다",
|
||||||
|
"error_addon_not_installed": "해당 애드온은 설치되어있지 않습니다. 애드온을 설치해주세요.",
|
||||||
|
"error_addon_not_started": "해당 애드온은 실행중이지 않습니다. 애드온을 실행해주세요.",
|
||||||
"faq_link": "내 Home Assistant 자주 묻는 질문",
|
"faq_link": "내 Home Assistant 자주 묻는 질문",
|
||||||
"not_supported": "이 리디렉션은 Home Assistant 인스턴스에서 지원되지 않습니다. {link}에서 지원되는 리디렉션과 리디렉션이 도입된 버전을 확인해주세요."
|
"not_supported": "이 리디렉션은 Home Assistant 인스턴스에서 지원되지 않습니다. {link}에서 지원되는 리디렉션과 리디렉션이 도입된 버전을 확인해주세요."
|
||||||
},
|
},
|
||||||
@ -387,7 +389,7 @@
|
|||||||
"created": "생성됨",
|
"created": "생성됨",
|
||||||
"delete_selected": "선택한 스냅샷 삭제",
|
"delete_selected": "선택한 스냅샷 삭제",
|
||||||
"delete_snapshot_confirm": "삭제",
|
"delete_snapshot_confirm": "삭제",
|
||||||
"delete_snapshot_text": "{number} {number, plural,\n one{개의 스냅샷}\n other{개의 스냅샷}\n}를 삭제하시겠습니까?",
|
"delete_snapshot_text": "{number} {number, plural,\n one{개의 스냅샷}\n other{개의 스냅샷}\n} 삭제하시겠습니까?",
|
||||||
"delete_snapshot_title": "스냅샷 삭제",
|
"delete_snapshot_title": "스냅샷 삭제",
|
||||||
"description": "스냅숏을 사용하면 Home Assistant 인스턴스의 모든 데이터를 쉽게 백업하고 복원할 수 있습니다.",
|
"description": "스냅숏을 사용하면 Home Assistant 인스턴스의 모든 데이터를 쉽게 백업하고 복원할 수 있습니다.",
|
||||||
"enter_password": "비밀번호를 입력해주세요.",
|
"enter_password": "비밀번호를 입력해주세요.",
|
||||||
@ -2076,7 +2078,8 @@
|
|||||||
"scripts": "스크립트",
|
"scripts": "스크립트",
|
||||||
"unknown_error": "알 수 없는 오류",
|
"unknown_error": "알 수 없는 오류",
|
||||||
"unnamed_device": "이름이 없는 기기",
|
"unnamed_device": "이름이 없는 기기",
|
||||||
"update": "업데이트"
|
"update": "업데이트",
|
||||||
|
"update_device_error": "장치 업데이트 실패"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "구성요소",
|
"caption": "구성요소",
|
||||||
@ -2209,6 +2212,7 @@
|
|||||||
"depends_on_cloud": "클라우드 서비스",
|
"depends_on_cloud": "클라우드 서비스",
|
||||||
"device_unavailable": "기기 사용불가",
|
"device_unavailable": "기기 사용불가",
|
||||||
"devices": "{count} {count, plural,\none{개의 기기}\nother{개의 기기}\n}",
|
"devices": "{count} {count, plural,\none{개의 기기}\nother{개의 기기}\n}",
|
||||||
|
"disable_error": "통합구성요소 활성화 혹은 비활성화 실패",
|
||||||
"disable_restart_confirm": "이 통합 구성요소를 비활성화하려면 Home Assistant를 다시 시작해주세요",
|
"disable_restart_confirm": "이 통합 구성요소를 비활성화하려면 Home Assistant를 다시 시작해주세요",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "이 구성 항목을 비활성화하시겠습니까? 해당 기기 및 구성요소가 비활성화됩니다.",
|
"disable_confirm": "이 구성 항목을 비활성화하시겠습니까? 해당 기기 및 구성요소가 비활성화됩니다.",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "En ukjent feil har oppstått",
|
"error": "En ukjent feil har oppstått",
|
||||||
"error_addon_no_ingress": "Det etterspurte tillegget støtter ikke inngang",
|
"error_addon_no_ingress": "Det etterspurte tillegget støtter ikke inngang",
|
||||||
"error_addon_not_found": "Tillegget ble ikke funnet",
|
"error_addon_not_found": "Tillegget ble ikke funnet",
|
||||||
|
"error_addon_not_installed": "Det forespurte tillegget er ikke installert. Vennligst installer den først",
|
||||||
|
"error_addon_not_started": "Det valgte tillegget kjører ikke. Vennligst start den først",
|
||||||
"faq_link": "Vanlige spørsmål om Min Home Assistant",
|
"faq_link": "Vanlige spørsmål om Min Home Assistant",
|
||||||
"not_supported": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Se på {link} for viderekoblinger som støttes, og hvilken versjon de ble introdusert."
|
"not_supported": "Denne viderekoblingen støttes ikke av Home Assistant-forekomsten. Se på {link} for viderekoblinger som støttes, og hvilken versjon de ble introdusert."
|
||||||
},
|
},
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Sjekk konfigurasjonen",
|
"check_config": "Sjekk konfigurasjonen",
|
||||||
"heading": "Validering av konfigurasjon",
|
"heading": "Validering av konfigurasjon",
|
||||||
"introduction": "Valider konfigurasjonen hvis du nylig har gjort endringer i konfigurasjonen og vil forsikre deg om at den er gyldig",
|
"introduction": "Bekreft konfigurasjonen hvis du nylig har gjort noen endringer i konfigurasjonen og vil være sikker på at den er gyldig.",
|
||||||
"invalid": "Ugyldig konfigurasjon",
|
"invalid": "Ugyldig konfigurasjon",
|
||||||
"valid": "Gyldig konfigurasjon"
|
"valid": "Gyldig konfigurasjon"
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Er is een onbekende fout opgetreden",
|
"error": "Er is een onbekende fout opgetreden",
|
||||||
"error_addon_no_ingress": "De gevraagde add-on ondersteunt geen ingress",
|
"error_addon_no_ingress": "De gevraagde add-on ondersteunt geen ingress",
|
||||||
"error_addon_not_found": "Invoegtoepassing niet gevonden",
|
"error_addon_not_found": "Invoegtoepassing niet gevonden",
|
||||||
|
"error_addon_not_installed": "De gevraagde add-on is niet geïnstalleerd. Gelieve deze eerst te installeren",
|
||||||
|
"error_addon_not_started": "De gevraagde add-on is niet actief. Start deze a.u.b. eerst",
|
||||||
"faq_link": "My Home Assistant FAQ",
|
"faq_link": "My Home Assistant FAQ",
|
||||||
"not_supported": "Deze redirect wordt niet ondersteund door uw Home Assistant instantie. Controleer de {link} voor de ondersteunde redirects en de versie waarin ze zijn geïntroduceerd."
|
"not_supported": "Deze redirect wordt niet ondersteund door uw Home Assistant instantie. Controleer de {link} voor de ondersteunde redirects en de versie waarin ze zijn geïntroduceerd."
|
||||||
},
|
},
|
||||||
@ -2076,7 +2078,8 @@
|
|||||||
"scripts": "Scripts",
|
"scripts": "Scripts",
|
||||||
"unknown_error": "Onbekende fout",
|
"unknown_error": "Onbekende fout",
|
||||||
"unnamed_device": "Naamloos apparaat",
|
"unnamed_device": "Naamloos apparaat",
|
||||||
"update": "Bijwerken"
|
"update": "Bijwerken",
|
||||||
|
"update_device_error": "Updaten van het apparaat mislukt"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Entiteiten",
|
"caption": "Entiteiten",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Wystąpił nieznany błąd",
|
"error": "Wystąpił nieznany błąd",
|
||||||
"error_addon_no_ingress": "Żądany dodatek nie obsługuje osadzania",
|
"error_addon_no_ingress": "Żądany dodatek nie obsługuje osadzania",
|
||||||
"error_addon_not_found": "Nie znaleziono dodatku",
|
"error_addon_not_found": "Nie znaleziono dodatku",
|
||||||
|
"error_addon_not_installed": "Żądany dodatek nie jest zainstalowany. Najpierw go zainstaluj.",
|
||||||
|
"error_addon_not_started": "Żądany dodatek nie jest uruchomiony. Proszę najpierw go uruchomić.",
|
||||||
"faq_link": "Mój Home Assistant - często zadawane pytania",
|
"faq_link": "Mój Home Assistant - często zadawane pytania",
|
||||||
"not_supported": "To przekierowanie nie jest obsługiwane przez Twoją instancję Home Assistanta. Sprawdź {link} aby znaleźć obsługiwane przekierowania i wersję, w której zostały wprowadzone."
|
"not_supported": "To przekierowanie nie jest obsługiwane przez Twoją instancję Home Assistanta. Sprawdź {link} aby znaleźć obsługiwane przekierowania i wersję, w której zostały wprowadzone."
|
||||||
},
|
},
|
||||||
@ -929,8 +931,11 @@
|
|||||||
},
|
},
|
||||||
"dialogs": {
|
"dialogs": {
|
||||||
"config_entry_system_options": {
|
"config_entry_system_options": {
|
||||||
"enable_new_entities_description": "Jeśli wyłączone, nowo wykryte encje integracji {integration} nie będą automatycznie dodawane do Home Assistanta.",
|
"enable_new_entities_description": "Jeśli nowo odkryte urządzenia dla integracji {integration} powinny zostać dodane automatycznie.",
|
||||||
"enable_new_entities_label": "Włącz dodawanie nowych encji.",
|
"enable_new_entities_label": "Włącz dodawanie nowych encji.",
|
||||||
|
"enable_polling_description": "Czy Home Assistant powinien automatycznie odpytywać encje {integration} w poszukiwaniu aktualizacji.",
|
||||||
|
"enable_polling_label": "Włącz odpytywanie o aktualizacje.",
|
||||||
|
"restart_home_assistant": "Aby zmiany zostały wprowadzone, musisz ponownie uruchomić Home Assistanta.",
|
||||||
"title": "Opcje systemowe dla {integration}",
|
"title": "Opcje systemowe dla {integration}",
|
||||||
"update": "Aktualizuj"
|
"update": "Aktualizuj"
|
||||||
},
|
},
|
||||||
@ -2073,7 +2078,8 @@
|
|||||||
"scripts": "Skrypty",
|
"scripts": "Skrypty",
|
||||||
"unknown_error": "Nieznany błąd",
|
"unknown_error": "Nieznany błąd",
|
||||||
"unnamed_device": "Nienazwane urządzenie",
|
"unnamed_device": "Nienazwane urządzenie",
|
||||||
"update": "Aktualizuj"
|
"update": "Aktualizuj",
|
||||||
|
"update_device_error": "Aktualizacja urządzenia nie powiodła się"
|
||||||
},
|
},
|
||||||
"entities": {
|
"entities": {
|
||||||
"caption": "Rejestr encji",
|
"caption": "Rejestr encji",
|
||||||
@ -2206,6 +2212,7 @@
|
|||||||
"depends_on_cloud": "Zależny od chmury",
|
"depends_on_cloud": "Zależny od chmury",
|
||||||
"device_unavailable": "Urządzenie niedostępne",
|
"device_unavailable": "Urządzenie niedostępne",
|
||||||
"devices": "{count} {count, plural,\n one {urządzenie}\n few {urządzenia}\n many {urządzeń}\n other {urządzeń}\n}",
|
"devices": "{count} {count, plural,\n one {urządzenie}\n few {urządzenia}\n many {urządzeń}\n other {urządzeń}\n}",
|
||||||
|
"disable_error": "Nie udało się włączyć lub wyłączyć integracji",
|
||||||
"disable_restart_confirm": "Zrestartuj Home Assistanta, aby zakończyć wyłączanie tej integracji",
|
"disable_restart_confirm": "Zrestartuj Home Assistanta, aby zakończyć wyłączanie tej integracji",
|
||||||
"disable": {
|
"disable": {
|
||||||
"disable_confirm": "Czy na pewno chcesz wyłączyć ten wpis w konfiguracji? Jego urządzenia i instancje zostaną wyłączone.",
|
"disable_confirm": "Czy na pewno chcesz wyłączyć ten wpis w konfiguracji? Jego urządzenia i instancje zostaną wyłączone.",
|
||||||
@ -2217,6 +2224,7 @@
|
|||||||
},
|
},
|
||||||
"disabled_cause": "Wyłączone przez {cause}."
|
"disabled_cause": "Wyłączone przez {cause}."
|
||||||
},
|
},
|
||||||
|
"disabled_polling": "Automatyczne odpytywanie o zaktualizowane dane jest wyłączone",
|
||||||
"documentation": "Dokumentacja",
|
"documentation": "Dokumentacja",
|
||||||
"enable_restart_confirm": "Uruchom ponownie Home Assistanta, aby dokończyć uruchamianie tej integracji",
|
"enable_restart_confirm": "Uruchom ponownie Home Assistanta, aby dokończyć uruchamianie tej integracji",
|
||||||
"entities": "{count} {count, plural,\n one {encja}\n few {encje}\n many {encji}\n other {encji}\n}",
|
"entities": "{count} {count, plural,\n one {encja}\n few {encje}\n many {encji}\n other {encji}\n}",
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "Произошла неизвестная ошибка",
|
"error": "Произошла неизвестная ошибка",
|
||||||
"error_addon_no_ingress": "Дополнение не поддерживает ingress.",
|
"error_addon_no_ingress": "Дополнение не поддерживает ingress.",
|
||||||
"error_addon_not_found": "Дополнение не найдено.",
|
"error_addon_not_found": "Дополнение не найдено.",
|
||||||
|
"error_addon_not_installed": "Запрошенное дополнение не установлено. Сначала нужно установить его.",
|
||||||
|
"error_addon_not_started": "Запрашиваемое дополнение не запущено. Сначала нужно запустить его.",
|
||||||
"faq_link": "часто задаваемыми вопросами по My Home Assistant",
|
"faq_link": "часто задаваемыми вопросами по My Home Assistant",
|
||||||
"not_supported": "Это перенаправление не поддерживается Вашим Home Assistant. Ознакомьтесь с {link}, чтобы узнать поддерживаемые перенаправления и версии, в которых они были добавлены."
|
"not_supported": "Это перенаправление не поддерживается Вашим Home Assistant. Ознакомьтесь с {link}, чтобы узнать поддерживаемые перенаправления и версии, в которых они были добавлены."
|
||||||
},
|
},
|
||||||
@ -400,17 +402,17 @@
|
|||||||
"ssl": "SSL"
|
"ssl": "SSL"
|
||||||
},
|
},
|
||||||
"folders": "Папки",
|
"folders": "Папки",
|
||||||
"full_snapshot": "Полный",
|
"full_snapshot": "Все файлы",
|
||||||
"name": "Название",
|
"name": "Название",
|
||||||
"no_snapshots": "Не найдено ни одного снимка",
|
"no_snapshots": "Не найдено ни одного снимка",
|
||||||
"partial_snapshot": "Выборочный",
|
"partial_snapshot": "Выбрать из списка",
|
||||||
"password": "Пароль",
|
"password": "Пароль",
|
||||||
"password_protected": "защищено паролем",
|
"password_protected": "защищено паролем",
|
||||||
"password_protection": "Защита паролем",
|
"password_protection": "Защита паролем",
|
||||||
"security": "Безопасность",
|
"security": "Безопасность",
|
||||||
"select_type": "Выберите что нужно восстановить",
|
"select_type": "Выберите что нужно восстановить из этого снимка файловой системы",
|
||||||
"selected": "Выбрано: {number}",
|
"selected": "Выбрано: {number}",
|
||||||
"type": "Тип снимка",
|
"type": "Выберите что должен включать в себя снимок файловой системы",
|
||||||
"upload_snapshot": "Загрузить снимок на сервер"
|
"upload_snapshot": "Загрузить снимок на сервер"
|
||||||
},
|
},
|
||||||
"store": {
|
"store": {
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "Начать проверку",
|
"check_config": "Начать проверку",
|
||||||
"heading": "Проверка конфигурации",
|
"heading": "Проверка конфигурации",
|
||||||
"introduction": "Проверьте файлы конфигурации, если Вы внесли в них изменения.",
|
"introduction": "Выполните проверку конфигурации, если в неё были внесены изменения и Вы хотите убедиться в её работоспособности.",
|
||||||
"invalid": "Ошибка в конфигурации",
|
"invalid": "Ошибка в конфигурации",
|
||||||
"valid": "Конфигурация выполнена верно"
|
"valid": "Конфигурация выполнена верно"
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "发生未知错误",
|
"error": "发生未知错误",
|
||||||
"error_addon_no_ingress": "请求的加载项不支持 ingress",
|
"error_addon_no_ingress": "请求的加载项不支持 ingress",
|
||||||
"error_addon_not_found": "未找到加载项",
|
"error_addon_not_found": "未找到加载项",
|
||||||
|
"error_addon_not_installed": "请求的加载项尚未安装,请先安装",
|
||||||
|
"error_addon_not_started": "请求的加载项未运行,请先运行",
|
||||||
"faq_link": "我的 Home Assistant 常见问题",
|
"faq_link": "我的 Home Assistant 常见问题",
|
||||||
"not_supported": "您的 Home Assistant 不支持此重定向。请查阅{link}以获取受支持的重定向及其引入的版本。"
|
"not_supported": "您的 Home Assistant 不支持此重定向。请查阅{link}以获取受支持的重定向及其引入的版本。"
|
||||||
},
|
},
|
||||||
@ -1806,7 +1808,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"alexa": {
|
"alexa": {
|
||||||
"banner": "由于您在 configuration.yaml 中配置了实体过滤器,无法通过此 UI 修改要开放的实体。",
|
"banner": "无法通过此 UI 修改要开放的实体,因为您在 configuration.yaml 中配置了实体过滤器。",
|
||||||
"dont_expose_entity": "使实体不可发现",
|
"dont_expose_entity": "使实体不可发现",
|
||||||
"expose": "向Alexa发送你的位置",
|
"expose": "向Alexa发送你的位置",
|
||||||
"expose_entity": "使实体可发现",
|
"expose_entity": "使实体可发现",
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "检查配置",
|
"check_config": "检查配置",
|
||||||
"heading": "配置检查",
|
"heading": "配置检查",
|
||||||
"introduction": "此处可以帮助您检验最新修改的配置文件有效性",
|
"introduction": "此处可以帮助您检验最新修改的配置文件的有效性。",
|
||||||
"invalid": "配置无效",
|
"invalid": "配置无效",
|
||||||
"valid": "配置有效!"
|
"valid": "配置有效!"
|
||||||
}
|
}
|
||||||
|
@ -368,6 +368,8 @@
|
|||||||
"error": "發生未知錯誤",
|
"error": "發生未知錯誤",
|
||||||
"error_addon_no_ingress": "所要求的附加元件不支援 ingress",
|
"error_addon_no_ingress": "所要求的附加元件不支援 ingress",
|
||||||
"error_addon_not_found": "找不到附加元件",
|
"error_addon_not_found": "找不到附加元件",
|
||||||
|
"error_addon_not_installed": "所要求的附加元件未安裝,請先進行安裝。",
|
||||||
|
"error_addon_not_started": "所要求的附加元件未執行,請先進行啟動。",
|
||||||
"faq_link": "Home Assistant 常見問答集",
|
"faq_link": "Home Assistant 常見問答集",
|
||||||
"not_supported": "Home Assistant 不支援此重新導向。點選 {link} 獲取支援之重新導向與版本。"
|
"not_supported": "Home Assistant 不支援此重新導向。點選 {link} 獲取支援之重新導向與版本。"
|
||||||
},
|
},
|
||||||
@ -2719,7 +2721,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"check_config": "檢查設定內容",
|
"check_config": "檢查設定內容",
|
||||||
"heading": "設定驗證",
|
"heading": "設定驗證",
|
||||||
"introduction": "如果您對設定進行了一些更改、並且想確保設定有無錯誤,可以選擇驗證設定內容。",
|
"introduction": "如果您對設定進行了部分更改、並且想確保設定有無錯誤,可以選擇驗證設定內容。",
|
||||||
"invalid": "設定無效",
|
"invalid": "設定無效",
|
||||||
"valid": "設定檔內容檢查正確"
|
"valid": "設定檔內容檢查正確"
|
||||||
}
|
}
|
||||||
|
12
yarn.lock
12
yarn.lock
@ -4041,9 +4041,9 @@ async-each@^1.0.0, async-each@^1.0.1:
|
|||||||
integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==
|
integrity sha512-6xrbvN0MOBKSJDdonmSSz2OwFSgxRaVtBDes26mj9KIGtDo+g9xosFRSC+i1gQh2oAN/tQ62AI/pGZGQjVOiRg==
|
||||||
|
|
||||||
async-limiter@~1.0.0:
|
async-limiter@~1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8"
|
resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
|
||||||
integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==
|
integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
|
||||||
|
|
||||||
async-settle@^1.0.0:
|
async-settle@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
@ -13503,9 +13503,9 @@ write@1.0.3:
|
|||||||
mkdirp "^0.5.1"
|
mkdirp "^0.5.1"
|
||||||
|
|
||||||
ws@^6.2.1:
|
ws@^6.2.1:
|
||||||
version "6.2.1"
|
version "6.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
|
||||||
integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
|
integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
|
||||||
dependencies:
|
dependencies:
|
||||||
async-limiter "~1.0.0"
|
async-limiter "~1.0.0"
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user