extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public lovelace?: LovelaceConfig;
- @property() public elementType: "row" | "card" = "card";
-
@internalProperty() private _yaml?: string;
- @internalProperty() private _config?: LovelaceCardConfig | LovelaceRowConfig;
+ @internalProperty() private _config?: T;
- @internalProperty() private _configElement?:
- | LovelaceCardEditor
- | LovelaceRowEditor;
+ @internalProperty() private _configElement?: LovelaceGenericElementEditor;
- @internalProperty() private _configElType?: string;
+ @internalProperty() private _configElementType?: string;
@internalProperty() private _GUImode = true;
@@ -108,11 +93,11 @@ export class HuiElementEditor extends LitElement {
this._setConfig();
}
- public get value(): LovelaceCardConfig | LovelaceRowConfig | undefined {
+ public get value(): T | undefined {
return this._config;
}
- public set value(config: LovelaceCardConfig | LovelaceRowConfig | undefined) {
+ public set value(config: T | undefined) {
if (this._config && deepEqual(config, this._config)) {
return;
}
@@ -122,7 +107,7 @@ export class HuiElementEditor extends LitElement {
this._setConfig();
}
- private _setConfig() {
+ private _setConfig(): void {
if (!this._error) {
try {
this._updateConfigElement();
@@ -131,8 +116,9 @@ export class HuiElementEditor extends LitElement {
this._error = err.message;
}
}
+
fireEvent(this, "config-changed", {
- config: this.value!,
+ config: this.value! as any,
error: this._error,
guiModeAvailable: !(this.hasWarning || this.hasError),
});
@@ -175,6 +161,16 @@ export class HuiElementEditor extends LitElement {
}
}
+ protected async getConfigElement(): Promise<
+ LovelaceGenericElementEditor | undefined
+ > {
+ return undefined;
+ }
+
+ protected get configElementType(): string | undefined {
+ return this.value ? (this.value as any).type : undefined;
+ }
+
protected render(): TemplateResult {
return html`
@@ -228,8 +224,9 @@ export class HuiElementEditor extends LitElement {
`;
}
- protected updated(changedProperties) {
+ protected updated(changedProperties: PropertyValues) {
super.updated(changedProperties);
+
if (this._configElement && changedProperties.has("hass")) {
this._configElement.hass = this.hass;
}
@@ -245,10 +242,10 @@ export class HuiElementEditor extends LitElement {
private _handleUIConfigChanged(ev: UIConfigChangedEvent) {
ev.stopPropagation();
const config = ev.detail.config;
- this.value = config;
+ this.value = (config as unknown) as T;
}
- private _handleYAMLChanged(ev) {
+ private _handleYAMLChanged(ev: CustomEvent) {
ev.stopPropagation();
const newYaml = ev.detail.value;
if (newYaml !== this.yaml) {
@@ -261,69 +258,43 @@ export class HuiElementEditor extends LitElement {
return;
}
- let type: string;
-
- if (
- this.elementType === "row" &&
- !this.value.type &&
- "entity" in this.value
- ) {
- type = GENERIC_ROW_TYPE;
- } else {
- type = this.value.type!;
- }
+ let configElement: LovelaceGenericElementEditor | undefined;
- let configElement = this._configElement;
try {
this._error = undefined;
this._warnings = undefined;
- if (this._configElType !== type) {
+ if (this._configElementType !== this.configElementType) {
// If the type has changed, we need to load a new GUI editor
- if (!type) {
- throw new Error(`No ${this.elementType} type defined`);
- }
-
- let elClass:
- | LovelaceCardConstructor
- | LovelaceRowConstructor
- | undefined;
- if (this.elementType === "card") {
- elClass = await getCardElementClass(type);
- } else if (this.elementType === "row" && type !== GENERIC_ROW_TYPE) {
- elClass = await getRowElementClass(type);
+ if (!this.configElementType) {
+ throw new Error(`No type defined`);
}
+ this._configElementType = this.configElementType;
+
this._loading = true;
- // Check if a GUI editor exists
- if (elClass && elClass.getConfigElement) {
- configElement = await elClass.getConfigElement();
- } else if (this.elementType === "row" && type === GENERIC_ROW_TYPE) {
- configElement = document.createElement(
- "hui-generic-entity-row-editor"
+ configElement = await this.getConfigElement();
+
+ if (!configElement) {
+ throw new Error(
+ `No visual editor available for: ${this.configElementType}`
);
- } else {
- configElement = undefined;
- throw new GUISupportError(`No visual editor available for: ${type}`);
}
- this._configElement = configElement;
- this._configElType = type;
-
- // Perform final setup
- this._configElement.hass = this.hass;
- if ("lovelace" in this._configElement) {
- this._configElement.lovelace = this.lovelace;
+ configElement.hass = this.hass;
+ if ("lovelace" in configElement) {
+ configElement.lovelace = this.lovelace;
}
- this._configElement.addEventListener("config-changed", (ev) =>
+ configElement.addEventListener("config-changed", (ev) =>
this._handleUIConfigChanged(ev as UIConfigChangedEvent)
);
+
+ this._configElement = configElement;
}
// Setup GUI editor and check that it can handle the current config
try {
- // @ts-ignore
this._configElement!.setConfig(this.value);
} catch (err) {
throw new GUISupportError(
@@ -379,9 +350,3 @@ export class HuiElementEditor extends LitElement {
`;
}
}
-
-declare global {
- interface HTMLElementTagNameMap {
- "hui-element-editor": HuiElementEditor;
- }
-}
diff --git a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
index 0e6a42bdb840..f24359cb425f 100644
--- a/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
+++ b/src/panels/lovelace/editor/hui-entities-card-row-editor.ts
@@ -25,6 +25,14 @@ import { sortableStyles } from "../../../resources/ha-sortable-style";
import { HomeAssistant } from "../../../types";
import { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
+declare global {
+ interface HASSDomEvents {
+ "entities-changed": {
+ entities: LovelaceRowConfig[];
+ };
+ }
+}
+
@customElement("hui-entities-card-row-editor")
export class HuiEntitiesCardRowEditor extends LitElement {
@property({ attribute: false }) protected hass?: HomeAssistant;
@@ -232,8 +240,13 @@ export class HuiEntitiesCardRowEditor extends LitElement {
}
private _editRow(ev: CustomEvent): void {
- fireEvent(this, "edit-row", {
- index: (ev.currentTarget as any).index,
+ const index = (ev.currentTarget as any).index;
+ fireEvent(this, "edit-detail-element", {
+ subElementConfig: {
+ index,
+ type: "row",
+ elementConfig: this.entities![index],
+ },
});
}
diff --git a/src/panels/lovelace/editor/hui-sub-element-editor.ts b/src/panels/lovelace/editor/hui-sub-element-editor.ts
new file mode 100644
index 000000000000..c382ed057000
--- /dev/null
+++ b/src/panels/lovelace/editor/hui-sub-element-editor.ts
@@ -0,0 +1,132 @@
+import "@material/mwc-button";
+import "@material/mwc-icon-button";
+import { mdiArrowLeft } from "@mdi/js";
+import {
+ css,
+ CSSResult,
+ customElement,
+ html,
+ internalProperty,
+ LitElement,
+ property,
+ query,
+ TemplateResult,
+} from "lit-element";
+import { fireEvent, HASSDomEvent } from "../../../common/dom/fire_event";
+import "../../../components/ha-svg-icon";
+import type { HomeAssistant } from "../../../types";
+import type { LovelaceRowConfig } from "../entity-rows/types";
+import type { LovelaceHeaderFooterConfig } from "../header-footer/types";
+import "./entity-row-editor/hui-row-element-editor";
+import "./header-footer-editor/hui-header-footer-element-editor";
+import type { HuiElementEditor } from "./hui-element-editor";
+import type { GUIModeChangedEvent, SubElementEditorConfig } from "./types";
+
+declare global {
+ interface HASSDomEvents {
+ "go-back": undefined;
+ }
+}
+
+@customElement("hui-sub-element-editor")
+export class HuiSubElementEditor extends LitElement {
+ public hass!: HomeAssistant;
+
+ @property({ attribute: false }) public config!: SubElementEditorConfig;
+
+ @internalProperty() private _guiModeAvailable = true;
+
+ @internalProperty() private _guiMode = true;
+
+ @query(".editor") private _editorElement?: HuiElementEditor<
+ LovelaceRowConfig | LovelaceHeaderFooterConfig
+ >;
+
+ protected render(): TemplateResult {
+ return html`
+
+ ${this.config.type === "row"
+ ? html`
+
+ `
+ : this.config.type === "header" || this.config.type === "footer"
+ ? html`
+
+ `
+ : ""}
+ `;
+ }
+
+ private _goBack(): void {
+ fireEvent(this, "go-back");
+ }
+
+ private _toggleMode(): void {
+ this._editorElement?.toggleMode();
+ }
+
+ private _handleGUIModeChanged(ev: HASSDomEvent): void {
+ ev.stopPropagation();
+ this._guiMode = ev.detail.guiMode;
+ this._guiModeAvailable = ev.detail.guiModeAvailable;
+ }
+
+ private _handleConfigChanged(ev: CustomEvent): void {
+ this._guiModeAvailable = ev.detail.guiModeAvailable;
+ }
+
+ static get styles(): CSSResult {
+ return css`
+ .header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+ .back-title {
+ display: flex;
+ align-items: center;
+ font-size: 18px;
+ }
+ `;
+ }
+}
+
+declare global {
+ interface HTMLElementTagNameMap {
+ "hui-sub-element-editor": HuiSubElementEditor;
+ }
+}
diff --git a/src/panels/lovelace/editor/lovelace-headerfooters.ts b/src/panels/lovelace/editor/lovelace-headerfooters.ts
new file mode 100644
index 000000000000..0aa0ccc8a149
--- /dev/null
+++ b/src/panels/lovelace/editor/lovelace-headerfooters.ts
@@ -0,0 +1,12 @@
+import {
+ mdiChartBellCurveCumulative,
+ mdiGestureTapButton,
+ mdiImageArea,
+} from "@mdi/js";
+import { HeaderFooter } from "./types";
+
+export const headerFooterElements: HeaderFooter[] = [
+ { type: "graph", icon: mdiChartBellCurveCumulative },
+ { type: "buttons", icon: mdiGestureTapButton },
+ { type: "picture", icon: mdiImageArea },
+];
diff --git a/src/panels/lovelace/editor/types.ts b/src/panels/lovelace/editor/types.ts
index 51edca3cfebb..3f657062a69f 100644
--- a/src/panels/lovelace/editor/types.ts
+++ b/src/panels/lovelace/editor/types.ts
@@ -14,7 +14,8 @@ import {
LovelaceViewConfig,
ShowViewConfig,
} from "../../../data/lovelace";
-import { EntityConfig } from "../entity-rows/types";
+import { EntityConfig, LovelaceRowConfig } from "../entity-rows/types";
+import { LovelaceHeaderFooterConfig } from "../header-footer/types";
export interface YamlChangedEvent extends Event {
detail: {
@@ -72,10 +73,25 @@ export interface Card {
isCustom?: boolean;
}
+export interface HeaderFooter {
+ type: string;
+ icon?: string;
+}
+
export interface CardPickTarget extends EventTarget {
config: LovelaceCardConfig;
}
+export interface SubElementEditorConfig {
+ index?: number;
+ elementConfig?: LovelaceRowConfig | LovelaceHeaderFooterConfig;
+ type: string;
+}
+
+export interface EditSubElementEvent {
+ subElementConfig: SubElementEditorConfig;
+}
+
export const actionConfigStruct = object({
action: string(),
navigation_path: optional(string()),
diff --git a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
index 8a500d2499d2..d9e0ea7b77d4 100644
--- a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
+++ b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts
@@ -110,6 +110,7 @@ export class HuiUnusedEntities extends LitElement {
>
diff --git a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
index 46e5a1e88c9b..3d3ab67e60a8 100644
--- a/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
+++ b/src/panels/lovelace/entity-rows/hui-input-datetime-entity-row.ts
@@ -57,9 +57,7 @@ class HuiInputDatetimeEntityRow extends LitElement implements LovelaceRow {
? html`
diff --git a/src/panels/lovelace/ha-panel-lovelace.ts b/src/panels/lovelace/ha-panel-lovelace.ts
index e7baf8a427af..a955e5905695 100644
--- a/src/panels/lovelace/ha-panel-lovelace.ts
+++ b/src/panels/lovelace/ha-panel-lovelace.ts
@@ -184,7 +184,7 @@ class LovelacePanel extends LitElement {
message: this.hass!.localize("ui.panel.lovelace.changed_toast.message"),
action: {
action: () => this._fetchConfig(false),
- text: this.hass!.localize("ui.panel.lovelace.changed_toast.refresh"),
+ text: this.hass!.localize("ui.common.refresh"),
},
duration: 0,
dismissable: false,
diff --git a/src/panels/lovelace/header-footer/hui-graph-header-footer.ts b/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
index 30fda681c451..9e9132c18233 100644
--- a/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
+++ b/src/panels/lovelace/header-footer/hui-graph-header-footer.ts
@@ -13,10 +13,11 @@ import {
import "../../../components/ha-circular-progress";
import { fetchRecent } from "../../../data/history";
import { HomeAssistant } from "../../../types";
+import { findEntities } from "../common/find-entites";
import { coordinates } from "../common/graph/coordinates";
import { hasConfigOrEntityChanged } from "../common/has-changed";
import "../components/hui-graph-base";
-import { LovelaceHeaderFooter } from "../types";
+import { LovelaceHeaderFooter, LovelaceHeaderFooterEditor } from "../types";
import { GraphHeaderFooterConfig } from "./types";
const MINUTE = 60000;
@@ -25,8 +26,40 @@ const DAY = 86400000;
@customElement("hui-graph-header-footer")
export class HuiGraphHeaderFooter extends LitElement
implements LovelaceHeaderFooter {
- public static getStubConfig(): Record {
- return {};
+ public static async getConfigElement(): Promise {
+ await import(
+ /* webpackChunkName: "hui-graph-footer-editor" */ "../editor/config-elements/hui-graph-footer-editor"
+ );
+ return document.createElement("hui-graph-footer-editor");
+ }
+
+ public static getStubConfig(
+ hass: HomeAssistant,
+ entities: string[],
+ entitiesFallback: string[]
+ ): GraphHeaderFooterConfig {
+ const includeDomains = ["sensor"];
+ const maxEntities = 1;
+ const entityFilter = (stateObj: HassEntity): boolean => {
+ return (
+ !isNaN(Number(stateObj.state)) &&
+ !!stateObj.attributes.unit_of_measurement
+ );
+ };
+
+ const foundEntities = findEntities(
+ hass,
+ maxEntities,
+ entities,
+ entitiesFallback,
+ includeDomains,
+ entityFilter
+ );
+
+ return {
+ type: "graph",
+ entity: foundEntities[0] || "",
+ };
}
@property({ attribute: false }) public hass?: HomeAssistant;
diff --git a/src/panels/lovelace/hui-editor.ts b/src/panels/lovelace/hui-editor.ts
index 84a9f86fe19a..24909716a756 100644
--- a/src/panels/lovelace/hui-editor.ts
+++ b/src/panels/lovelace/hui-editor.ts
@@ -173,8 +173,8 @@ class LovelaceFullConfigEditor extends LitElement {
text: this.hass.localize(
"ui.panel.lovelace.editor.raw_editor.confirm_unsaved_changes"
),
- dismissText: this.hass!.localize("ui.common.no"),
- confirmText: this.hass!.localize("ui.common.yes"),
+ dismissText: this.hass!.localize("ui.common.leave"),
+ confirmText: this.hass!.localize("ui.common.stay"),
}))
) {
return;
@@ -217,8 +217,8 @@ class LovelaceFullConfigEditor extends LitElement {
text: this.hass.localize(
"ui.panel.lovelace.editor.raw_editor.confirm_remove_config_text"
),
- confirmText: this.hass.localize("ui.common.yes"),
- dismissText: this.hass.localize("ui.common.no"),
+ confirmText: this.hass.localize("ui.common.remove"),
+ dismissText: this.hass.localize("ui.common.cancel"),
confirm: () => this._removeConfig(),
});
return;
diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts
index 77f0ca41990e..9f14c9c9b66f 100644
--- a/src/panels/lovelace/hui-root.ts
+++ b/src/panels/lovelace/hui-root.ts
@@ -284,15 +284,13 @@ class HUIRoot extends LitElement {
? html`
${this.hass!.localize(
- "ui.panel.lovelace.menu.refresh"
- )}${this.hass!.localize("ui.common.refresh")}
location.reload(),
});
}
@@ -805,7 +805,8 @@ class HUIRoot extends LitElement {
margin-left: max(env(safe-area-inset-left), 12px);
margin-right: env(safe-area-inset-right);
}
- ha-tabs, paper-tabs {
+ ha-tabs,
+ paper-tabs {
--paper-tabs-selection-bar-color: var(--text-primary-color, #fff);
text-transform: uppercase;
}
diff --git a/src/panels/lovelace/types.ts b/src/panels/lovelace/types.ts
index b6e52a3d1c63..437fd58fa206 100644
--- a/src/panels/lovelace/types.ts
+++ b/src/panels/lovelace/types.ts
@@ -49,6 +49,16 @@ export interface LovelaceCardConstructor extends Constructor {
getConfigElement?: () => LovelaceCardEditor;
}
+export interface LovelaceHeaderFooterConstructor
+ extends Constructor {
+ getStubConfig?: (
+ hass: HomeAssistant,
+ entities: string[],
+ entitiesFallback: string[]
+ ) => LovelaceHeaderFooterConfig;
+ getConfigElement?: () => LovelaceHeaderFooterEditor;
+}
+
export interface LovelaceRowConstructor extends Constructor {
getConfigElement?: () => LovelaceRowEditor;
}
@@ -59,15 +69,22 @@ export interface LovelaceHeaderFooter extends HTMLElement {
setConfig(config: LovelaceHeaderFooterConfig): void;
}
-export interface LovelaceCardEditor extends HTMLElement {
- hass?: HomeAssistant;
- lovelace?: LovelaceConfig;
+export interface LovelaceCardEditor extends LovelaceGenericElementEditor {
setConfig(config: LovelaceCardConfig): void;
- refreshYamlEditor?: (focus: boolean) => void;
}
-export interface LovelaceRowEditor extends HTMLElement {
- hass?: HomeAssistant;
+export interface LovelaceHeaderFooterEditor
+ extends LovelaceGenericElementEditor {
+ setConfig(config: LovelaceHeaderFooterConfig): void;
+}
+
+export interface LovelaceRowEditor extends LovelaceGenericElementEditor {
setConfig(config: LovelaceRowConfig): void;
+}
+
+export interface LovelaceGenericElementEditor extends HTMLElement {
+ hass?: HomeAssistant;
+ lovelace?: LovelaceConfig;
+ setConfig(config: any): void;
refreshYamlEditor?: (focus: boolean) => void;
}
diff --git a/src/panels/lovelace/views/hui-masonry-view.ts b/src/panels/lovelace/views/hui-masonry-view.ts
index 23d9833c4c69..6fa5a249f056 100644
--- a/src/panels/lovelace/views/hui-masonry-view.ts
+++ b/src/panels/lovelace/views/hui-masonry-view.ts
@@ -84,9 +84,10 @@ export class MasonryView extends LitElement implements LovelaceViewElement {
${this.lovelace?.editMode
? html`
true,
() => false
);
- assert.equal(await createSessionPromise, false);
+ assert.strictEqual(await createSessionPromise, false);
});
});
diff --git a/translations/frontend/ca.json b/translations/frontend/ca.json
index d01bda86ab18..c3bd018477c1 100644
--- a/translations/frontend/ca.json
+++ b/translations/frontend/ca.json
@@ -21,7 +21,7 @@
"map": "Mapa",
"media_browser": "Navegador multimèdia",
"profile": "Perfil",
- "shopping_list": "Llista de compres",
+ "shopping_list": "Llista de la compra",
"states": "Visualització general"
},
"state_attributes": {
@@ -520,6 +520,7 @@
"previous": "Anterior",
"refresh": "Actualitza",
"save": "Desa",
+ "skip": "Omet",
"successfully_deleted": "S'ha eliminat correctament",
"successfully_saved": "S'ha desat correctament",
"undo": "Desfés",
@@ -1212,7 +1213,7 @@
"trigger": "Disparador"
},
"event": {
- "context_user_pick": "Afegeix usuari",
+ "context_user_pick": "Selecciona usuari",
"context_user_picked": "Esdeveniment cridat per usuari",
"context_users": "Limita-ho als esdeveniments disparats per",
"event_data": "Dades de l'esdeveniment",
@@ -1311,6 +1312,22 @@
"only_editable": "Només es poden editar les automatitzacions definides dins l'arxiu automations.yaml.",
"pick_automation": "Selecciona l'automatització a editar",
"show_info_automation": "Mostra informació sobre l'automatització"
+ },
+ "thingtalk": {
+ "create": "Crea automatització",
+ "link_devices": {
+ "ambiguous_entities": "Un o més dispositius tenen més d'una entitat coincident. Escull la que vulguis utilitzar.",
+ "header": "Genial! Ara hem d'enllaçar alguns dispositius",
+ "unknown_placeholder": "Marcador desconegut"
+ },
+ "task_selection": {
+ "error_empty": "Introdueix alguna ordre o prem a omet.",
+ "error_unsupported": "No hem pogut crear una automatització per a això (encara?).",
+ "for_example": "Per exemple:",
+ "header": "Crea una nova automatització",
+ "introduction": "Escriu a continuació el que hauria de fer l'automatització i intentarem convertir-ho en una automatització de Home Assistant.",
+ "language_note": "Nota: ara per are només s'admet en anglès"
+ }
}
},
"cloud": {
@@ -2119,7 +2136,7 @@
"sequence_sentence": "Seqüència d'accions de l'script."
},
"picker": {
- "add_script": "Crea un script nou",
+ "add_script": "Afegeix script",
"edit_script": "Edita l'script",
"header": "Editor de scripts",
"headers": {
@@ -3302,6 +3319,9 @@
"header": "Vibra"
}
},
+ "shopping_list": {
+ "start_conversation": "Inicia conversa"
+ },
"shopping-list": {
"add_item": "Afegir article",
"clear_completed": "Elimina els completats",
diff --git a/translations/frontend/cs.json b/translations/frontend/cs.json
index 13f081a26a28..6bcb2e4b096a 100644
--- a/translations/frontend/cs.json
+++ b/translations/frontend/cs.json
@@ -520,6 +520,7 @@
"previous": "Předchozí",
"refresh": "Obnovit",
"save": "Uložit",
+ "skip": "Přeskočit",
"successfully_deleted": "Úspěšně smazáno",
"successfully_saved": "Úspěšně uloženo",
"undo": "Zpět",
@@ -1212,7 +1213,7 @@
"trigger": "Spouštěč"
},
"event": {
- "context_user_pick": "Přidat uživatele",
+ "context_user_pick": "Vyberte uživatele",
"context_user_picked": "Uživatel, který spustil událost",
"context_users": "Omezit na události spuštěné",
"event_data": "Data události",
@@ -1311,6 +1312,22 @@
"only_editable": "Upravitelné mohou být pouze automatizace definované v automations.yaml.",
"pick_automation": "Vyberte automatizaci, kterou chcete upravit",
"show_info_automation": "Zobrazit informace o automatizaci"
+ },
+ "thingtalk": {
+ "create": "Vytvořit automatizaci",
+ "link_devices": {
+ "ambiguous_entities": "Jedno nebo více zařízení má více než jednu odpovídající entitu, prosím vyberte tu, kterou chcete použít.",
+ "header": "Skvěle! Nyní musíme propojit některá zařízení",
+ "unknown_placeholder": "Neznámý zástupný symbol"
+ },
+ "task_selection": {
+ "error_empty": "Zadejte příkaz nebo klepněte na Přeskočit.",
+ "error_unsupported": "Nedokázali jsme vytvořit automatizaci (zatím?).",
+ "for_example": "Například:",
+ "header": "Vytvoření nové automatizace",
+ "introduction": "Zadejte níže, co by tato automatizace měla dělat, a my se ji pokusíme převést na automatizaci Home Assistant.",
+ "language_note": "Poznámka: Prozatím je podporována pouze angličtina."
+ }
}
},
"cloud": {
@@ -1488,7 +1505,7 @@
},
"core": {
"caption": "Obecné",
- "description": "Změny obecné konfigurace Home Assistant",
+ "description": "Změny obecného nastavení Home Assistant",
"section": {
"core": {
"core_config": {
@@ -1508,7 +1525,7 @@
"unit_system_imperial": "Imperiální",
"unit_system_metric": "Metrický"
},
- "header": "Obecná konfigurace",
+ "header": "Obecná nastavení",
"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šší."
}
}
@@ -1656,7 +1673,7 @@
"clear": "Vymazat",
"filtering_by": "Filtrování podle"
},
- "header": "Konfigurace Home Assistant",
+ "header": "Nastavení Home Assistant",
"helpers": {
"caption": "Pomocníci",
"description": "Správa prvků, které mohou pomoci při vytváření automatizací",
@@ -1834,7 +1851,7 @@
"picker": {
"add_dashboard": "Přidat dashboard",
"headers": {
- "conf_mode": "Metoda konfigurace",
+ "conf_mode": "Metoda nastavení",
"default": "Výchozí",
"filename": "Název souboru",
"require_admin": "Pouze správce",
@@ -1945,7 +1962,7 @@
"node_count": "{count} uzlů"
},
"node_config": {
- "header": "Konfigurace uzlu",
+ "header": "Nastavení uzlu",
"help_source": "Popisy parametrů konfigurace a text nápovědy poskytuje projekt OpenZWave.",
"introduction": "Spravujte různé konfigurační parametry pro uzel Z-Wave.",
"wakeup_help": "Uzly napájené z baterie musí být vzhůru, aby mohly změnit svou konfiguraci. Pokud uzel není vzhůru, OpenZWave se pokusí aktualizovat konfiguraci uzlu při příštím probuzení, což může být o několik hodin (nebo dní) později. Zařízení probudíte takto:"
@@ -2119,7 +2136,7 @@
"sequence_sentence": "Posloupnost akcí tohoto skriptu."
},
"picker": {
- "add_script": "Vytvořit skript",
+ "add_script": "Přidat skript",
"edit_script": "Upravit skript",
"header": "Editor skriptů",
"headers": {
@@ -2146,7 +2163,7 @@
"generic": "Nově načíst entity integrace Generic IP camera",
"generic_thermostat": "Nově načíst entity integrace Generic thermostat",
"group": "Nově načíst skupiny, skupiny entit a notifikační služby",
- "heading": "Konfigurace se načítá",
+ "heading": "Konfigurace z YAML se načítá",
"history_stats": "Nově načíst entity integrace History stats",
"homekit": "Nově načíst entity integrace HomeKit",
"input_boolean": "Nově načíst pomocníky - přepínače",
@@ -2388,9 +2405,9 @@
"update": "Aktualizovat"
},
"edit_home_zone": "Poloměr domovské zóny zatím nelze upravit z frontendu. Z frontendu se dá změnit jen poloha domovské zóny.",
- "edit_home_zone_narrow": "Poloměr domovské zóny zatím nelze upravit z rozhraní. Umístění lze změnit z obecné konfigurace.",
+ "edit_home_zone_narrow": "Poloměr domovské zóny zatím nelze upravit z rozhraní. Umístění lze změnit z obecného nastavení.",
"go_to_core_config": "Přejít na obecnou konfiguraci?",
- "home_zone_core_config": "Umístění vaší domovské zóny lze upravit na stránce obecné konfigurace. Poloměr domovské zóny zatím nelze upravit z rozhraní. Chcete přejít na obecnou konfiguraci?",
+ "home_zone_core_config": "Umístění vaší domovské zóny lze upravit na stránce obecného nastavení. Poloměr domovské zóny zatím nelze upravit z rozhraní. Chcete přejít na obecnou konfiguraci?",
"introduction": "Zóny umožňují určit určité oblasti na zemi. Když je osoba v zóně, stav převezme název ze zóny. Zóny lze také použít jako aktivační událost nebo podmínku v nastavení automatizace.",
"no_zones_created_yet": "Vypadá to, že nejsou vytvořené žádné zóny."
},
@@ -2422,7 +2439,7 @@
"config_parameter": "Konfigurační parametr",
"config_value": "Konfigurační hodnota",
"false": "False",
- "header": "Možnosti konfigurace uzlu",
+ "header": "Možnosti nastavení uzlu",
"seconds": "sekund",
"set_config_parameter": "Nastavte konfigurační parametr",
"set_wakeup": "Nastavit interval probuzení",
@@ -2618,7 +2635,7 @@
}
},
"changed_toast": {
- "message": "Konfigurace Lovelace pro tento dashboard byla aktualizována, chcete obnovit stránku?",
+ "message": "Nastavení Lovelace pro tento dashboard bylo aktualizováno, chcete obnovit stránku?",
"refresh": "Obnovit"
},
"editor": {
@@ -2875,7 +2892,7 @@
"show_code_editor": "Zobrazit editor kódu",
"show_visual_editor": "Zobrazit vizuální editor",
"toggle_editor": "Přepnout Editor",
- "typed_header": "{type} Konfigurace karty",
+ "typed_header": "Nastavení karty {type}",
"unsaved_changes": "Změny nejsou uloženy"
},
"edit_lovelace": {
@@ -2936,7 +2953,7 @@
"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 ?",
"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 je aktuální konfigurace tohoto dashboardu:",
"yaml_control": "Chcete-li převzít kontrolu v režimu YAML, vytvořte soubor YAML s názvem, který jste uvedli ve své konfiguraci pro tento dashboard nebo výchozí 'ui-lovelace.yaml'.",
"yaml_mode": "Používáte režim YAML, což znamená, že nemůžete změnit konfiguraci Lovelace z uživatelského rozhraní. Pokud chcete měnit Lovelace z uživatelského rozhraní, odstraňte 'mode: yaml' z vaší konfigurace Lovelace v 'configuration.yaml.'"
},
@@ -3302,6 +3319,9 @@
"header": "Vibrovat"
}
},
+ "shopping_list": {
+ "start_conversation": "Zahájit konverzaci"
+ },
"shopping-list": {
"add_item": "Přidat položku",
"clear_completed": "Vymazat nakoupené",
@@ -3310,7 +3330,7 @@
},
"sidebar": {
"done": "Hotovo",
- "external_app_configuration": "Konfigurace aplikace",
+ "external_app_configuration": "Nastavení aplikace",
"sidebar_toggle": "Přepínač postranního panelu"
}
}
diff --git a/translations/frontend/de.json b/translations/frontend/de.json
index cd53a3ef5284..ed0995ea2309 100644
--- a/translations/frontend/de.json
+++ b/translations/frontend/de.json
@@ -520,6 +520,7 @@
"previous": "Vorher",
"refresh": "Aktualisieren",
"save": "Speichern",
+ "skip": "Überspringen",
"successfully_deleted": "Erfolgreich gelöscht",
"successfully_saved": "Erfolgreich gespeichert",
"undo": "Rückgängig machen",
@@ -798,6 +799,7 @@
"dismiss": "Dialog ausblenden",
"edit": "Entität bearbeiten",
"history": "Verlauf",
+ "last_changed": "Zuletzt geändert",
"last_updated": "Letztes Update",
"person": {
"create_zone": "Zone vom aktuellen Standort erstellen"
@@ -1076,7 +1078,7 @@
"wait_template": "Warte-Template"
}
},
- "unsupported_action": "Nicht unterstützte Aktion: {action}"
+ "unsupported_action": "Keine UI-Unterstützung für Aktion: {action}"
},
"alias": "Name",
"conditions": {
@@ -1204,7 +1206,7 @@
"trigger": "Auslöser"
},
"event": {
- "context_user_pick": "Benutzer hinzufügen",
+ "context_user_pick": "Benutzer auswählen",
"context_user_picked": "Ereignis auslösender Benutzer",
"context_users": "Auf Ereignisse beschränken, die ausgelöst wurden durch",
"event_data": "Ereignisdaten",
@@ -1303,6 +1305,20 @@
"only_editable": "Nur Automatisierungen in automations.yaml sind editierbar.",
"pick_automation": "Wähle eine Automatisierung zum Bearbeiten",
"show_info_automation": "Informationen über die Automatisierung anzeigen"
+ },
+ "thingtalk": {
+ "create": "Automatisierung erstellen",
+ "link_devices": {
+ "header": "Großartig! Jetzt müssen wir einige Geräte verknüpfen",
+ "unknown_placeholder": "Unbekannter Platzhalter"
+ },
+ "task_selection": {
+ "error_empty": "Gib einen Befehl ein oder tippe auf Überspringen.",
+ "error_unsupported": "Dafür konnten wir (noch?) keine Automatisierung erstellen.",
+ "for_example": "Zum Beispiel:",
+ "header": "Eine neue Automatisierung erstellen",
+ "language_note": "Hinweis: Im Moment wird nur Englisch unterstützt."
+ }
}
},
"cloud": {
@@ -2721,6 +2737,9 @@
"description": "Die Glance-Karte ist nützlich, um mehrere Sensoren in einer kompakten Übersicht zu gruppieren.",
"name": "Glance"
},
+ "grid": {
+ "name": "Raster"
+ },
"history-graph": {
"description": "Mit der Verlaufsdiagramm-Karte kannst du für jedes der aufgelisteten Objekte ein Diagramm anzeigen.",
"name": "History Graph"
@@ -3260,6 +3279,9 @@
"header": "Vibrieren"
}
},
+ "shopping_list": {
+ "start_conversation": "Konversation starten"
+ },
"shopping-list": {
"add_item": "Artikel hinzufügen",
"clear_completed": "Abgehakte entfernen",
diff --git a/translations/frontend/el.json b/translations/frontend/el.json
index 43f34c5af5f0..e7b661bc1945 100644
--- a/translations/frontend/el.json
+++ b/translations/frontend/el.json
@@ -520,6 +520,7 @@
"previous": "Προηγούμενο",
"refresh": "Ανανέωση",
"save": "Αποθήκευση",
+ "skip": "Παράλειψη",
"successfully_deleted": "Η διαγραφή ολοκληρώθηκε με επιτυχία",
"successfully_saved": "Αποθηκεύτηκε με επιτυχία",
"undo": "Αναίρεση",
@@ -1212,7 +1213,7 @@
"trigger": "Έναυσμα"
},
"event": {
- "context_user_pick": "Προσθήκη χρήστη",
+ "context_user_pick": "Επιλογή χρήστη",
"context_user_picked": "Συμβάν πυροδότησης χρήστη",
"context_users": "Περιορισμός σε συμβάντα που ενεργοποιούνται από",
"event_data": "Δεδομένα συμβάντος",
@@ -1311,6 +1312,22 @@
"only_editable": "Μόνο οι αυτοματισμοί που ορίζονται στο automations.yaml είναι επεξεργάσιμοι.",
"pick_automation": "Επιλέξτε αυτοματισμό για επεξεργασία",
"show_info_automation": "Εμφάνιση πληροφοριών σχετικά με τον αυτοματισμό"
+ },
+ "thingtalk": {
+ "create": "Δημιουργία αυτοματισμού",
+ "link_devices": {
+ "ambiguous_entities": "Μία ή περισσότερες συσκευές έχουν περισσότερες από μία οντότητες που ταιριάζουν, επιλέξτε αυτήν που θέλετε να χρησιμοποιήσετε.",
+ "header": "Τέλεια! Τώρα πρέπει να συνδέσουμε ορισμένες συσκευές",
+ "unknown_placeholder": "Άγνωστο σύμβολο κράτησης θέσης"
+ },
+ "task_selection": {
+ "error_empty": "Εισαγάγετε μια εντολή ή πατήστε Παράλειψη.",
+ "error_unsupported": "Δεν μπορούσαμε να δημιουργήσουμε έναν αυτοματισμό για αυτό (ακόμα;).",
+ "for_example": "Για παράδειγμα:",
+ "header": "Δημιουργία νέου αυτοματισμού",
+ "introduction": "Πληκτρολογήστε παρακάτω τι πρέπει να κάνει αυτός ο αυτοματισμός και θα προσπαθήσουμε να τον μετατρέψουμε σε αυτοματισμό του Home Assistant.",
+ "language_note": "Σημείωση: Μόνο τα Αγγλικά υποστηρίζονται προς το παρόν."
+ }
}
},
"cloud": {
@@ -3302,6 +3319,9 @@
"header": "Δόνηση"
}
},
+ "shopping_list": {
+ "start_conversation": "Έναρξη συζήτησης"
+ },
"shopping-list": {
"add_item": "Προσθήκη στοιχείου",
"clear_completed": "Καθαρισμός Ολοκληρώθηκε",
diff --git a/translations/frontend/en.json b/translations/frontend/en.json
index fcd8eb9604e6..e9272055ff0d 100644
--- a/translations/frontend/en.json
+++ b/translations/frontend/en.json
@@ -511,16 +511,23 @@
"continue": "Continue",
"copied": "Copied",
"delete": "Delete",
+ "disable": "Disable",
+ "enable": "Enable",
"error_required": "Required",
+ "leave": "Leave",
"loading": "Loading",
"menu": "Menu",
"next": "Next",
"no": "No",
+ "not_now": "Not now",
"overflow_menu": "Overflow menu",
"previous": "Previous",
"refresh": "Refresh",
+ "remove": "Remove",
+ "rename": "Rename",
"save": "Save",
"skip": "Skip",
+ "stay": "Stay",
"successfully_deleted": "Successfully deleted",
"successfully_saved": "Successfully saved",
"undo": "Undo",
@@ -624,7 +631,7 @@
"season": "Season",
"track": "Track",
"tv_show": "TV Show",
- "url": "Url",
+ "url": "URL",
"video": "Video"
},
"content-type": {
@@ -721,8 +728,10 @@
"confirm_delete": "Are you sure you want to delete this entry?",
"delete": "Delete",
"enabled_cause": "Disabled by {cause}.",
+ "enabled_delay_confirm": "The enabled entities will be added to Home Assistant in {delay} seconds",
"enabled_description": "Disabled entities will not be added to Home Assistant.",
"enabled_label": "Enable entity",
+ "enabled_restart_confirm": "Restart Home Assistant to finish enabling the entities",
"entity_id": "Entity ID",
"icon": "Icon",
"icon_error": "Icons should be in the format 'prefix:iconname', e.g. 'mdi:home'",
@@ -795,6 +804,11 @@
},
"more_info_control": {
"controls": "Controls",
+ "cover": {
+ "close_tile_cover": "Close cover tilt",
+ "open_tilt_cover": "Open cover tilt",
+ "stop_cover": "Stop cover from moving"
+ },
"details": "Details",
"dismiss": "Dismiss dialog",
"edit": "Edit entity",
@@ -1421,7 +1435,7 @@
"will_be_auto_renewed": "Will be automatically renewed"
},
"dialog_cloudhook": {
- "available_at": "The webhook is available at the following url:",
+ "available_at": "The webhook is available at the following URL:",
"close": "Close",
"confirm_disable": "Are you sure you want to disable this webhook?",
"copied_to_clipboard": "Copied to clipboard",
@@ -1627,12 +1641,12 @@
"disable_selected": {
"button": "Disable selected",
"confirm_text": "Disabled entities will not be added to Home Assistant.",
- "confirm_title": "Do you want to disable {number} entities?"
+ "confirm_title": "Do you want to disable {number} {number, plural,\n one {entity}\n other {entities}\n}?"
},
"enable_selected": {
"button": "Enable selected",
"confirm_text": "This will make them available in Home Assistant again if they are now disabled.",
- "confirm_title": "Do you want to enable {number} entities?"
+ "confirm_title": "Do you want to enable {number} {number, plural,\n one {entity}\n other {entities}\n}?"
},
"filter": {
"filter": "Filter",
@@ -1654,9 +1668,9 @@
"remove_selected": {
"button": "Remove selected",
"confirm_partly_text": "You can only remove {removable} of the selected {selected} entities. Entities can only be removed when the integration is no longer providing the entities. Sometimes you have to restart Home Assistant before you can remove the entities of a removed integration. Are you sure you want to remove the removable entities?",
- "confirm_partly_title": "Only {number} selected entities can be removed.",
+ "confirm_partly_title": "Only {number} {number, plural,\n one {selected entity}\n other {selected entities}\n} can be removed.",
"confirm_text": "You should remove them from your Lovelace config and automations if they contain these entities.",
- "confirm_title": "Do you want to remove {number} entities?"
+ "confirm_title": "Do you want to remove {number} {number, plural,\n one {entity}\n other {entities}\n}?"
},
"search": "Search entities",
"selected": "{number} selected",
@@ -1720,6 +1734,42 @@
"server": "server",
"source": "Source:",
"system_health_error": "System Health component is not loaded. Add 'system_health:' to configuration.yaml",
+ "system_health": {
+ "checks": {
+ "cloud": {
+ "alexa_enabled": "Alexa Enabled",
+ "can_reach_cert_server": "Reach Certificate Server",
+ "can_reach_cloud": "Reach Home Assistant Cloud",
+ "can_reach_cloud_auth": "Reach Authentication Server",
+ "google_enabled": "Google Enabled",
+ "logged_in": "Logged In",
+ "relayer_connected": "Relayer Connected",
+ "remote_connected": "Remote Connected",
+ "remote_enabled": "Remote Enabled",
+ "subscription_expiration": "Subscription Expiration"
+ },
+ "homeassistant": {
+ "arch": "CPU Architecture",
+ "dev": "Development",
+ "docker": "Docker",
+ "hassio": "HassOS",
+ "installation_type": "Installation Type",
+ "os_name": "Operating System Name",
+ "os_version": "Operating System Version",
+ "python_version": "Python Version",
+ "timezone": "Timezone",
+ "version": "Version",
+ "virtualenv": "Virtual Environment"
+ },
+ "lovelace": {
+ "dashboards": "Dashboards",
+ "mode": "Mode",
+ "resources": "Resources"
+ }
+ },
+ "manage": "Manage",
+ "more_info": "more info"
+ },
"title": "Info"
},
"integration_panel_move": {
@@ -1845,7 +1895,7 @@
"title": "Title",
"title_required": "Title is required.",
"update": "Update",
- "url": "Url",
+ "url": "URL",
"url_error_msg": "The URL should contain a - and cannot contain spaces or special characters, except for _ and -"
},
"picker": {
@@ -1873,8 +1923,8 @@
"new_resource": "Add new resource",
"type": "Resource type",
"update": "Update",
- "url": "Url",
- "url_error_msg": "Url is a required field",
+ "url": "URL",
+ "url_error_msg": "URL is a required field",
"warning_header": "Be cautious!",
"warning_text": "Adding resources can be dangerous, make sure you know the source of the resource and trust them. Bad resources could seriously harm your system."
},
@@ -1882,11 +1932,11 @@
"add_resource": "Add resource",
"headers": {
"type": "Type",
- "url": "Url"
+ "url": "URL"
},
"no_resources": "No resources"
},
- "refresh_body": "You have to refresh the page to complete the removal, do you want to refresh now?",
+ "refresh_body": "You have to refresh the page to complete the removal. Do you want to refresh now?",
"refresh_header": "Do you want to refresh?",
"types": {
"css": "Stylesheet",
@@ -2136,7 +2186,7 @@
"sequence_sentence": "The sequence of actions of this script."
},
"picker": {
- "add_script": "Create new script",
+ "add_script": "Add script",
"edit_script": "Edit script",
"header": "Script Editor",
"headers": {
@@ -2210,6 +2260,8 @@
"add_tag": "Add tag",
"automation_title": "Tag {name} is scanned",
"caption": "Tags",
+ "confirm_remove": "Are you sure you want to remove tag {tag}?",
+ "confirm_remove_title": "Remove tag?",
"create_automation": "Create automation with tag",
"description": "Manage tags",
"detail": {
@@ -2635,7 +2687,7 @@
}
},
"changed_toast": {
- "message": "The Lovelace UI configuration for this dashboard was updated, refresh to see changes?",
+ "message": "The Lovelace UI configuration for this dashboard was updated. Refresh to see changes?",
"refresh": "Refresh"
},
"editor": {
@@ -2647,11 +2699,11 @@
"navigate": "Navigate",
"none": "No Action",
"toggle": "Toggle",
- "url": "Url"
+ "url": "URL"
},
"editor_service_data": "Service data can only be entered in the code editor",
"navigation_path": "Navigation Path",
- "url_path": "Url Path"
+ "url_path": "URL Path"
},
"card": {
"alarm-panel": {
@@ -2769,7 +2821,7 @@
"theme": "Theme",
"title": "Title",
"unit": "Unit",
- "url": "Url"
+ "url": "URL"
},
"glance": {
"columns": "Columns",
@@ -2872,11 +2924,18 @@
"entity": "Entity",
"no_description": "No description available."
},
+ "common": {
+ "add": "Add",
+ "clear": "Clear",
+ "edit": "Edit",
+ "none": "None"
+ },
"edit_badges": {
"panel_mode": "These badges will not be displayed because this view is in \"Panel Mode\"."
},
"edit_card": {
"add": "Add Card",
+ "clear": "Clear",
"confirm_cancel": "Are you sure you want to cancel?",
"delete": "Delete card",
"duplicate": "Duplicate card",
@@ -2917,6 +2976,22 @@
}
},
"header": "Edit UI",
+ "header-footer": {
+ "choose_header_footer": "Choose a {type}",
+ "footer": "Footer",
+ "header": "Header",
+ "types": {
+ "buttons": {
+ "name": "Buttons"
+ },
+ "graph": {
+ "name": "Graph"
+ },
+ "picture": {
+ "name": "Picture"
+ }
+ }
+ },
"menu": {
"open": "Open Lovelace UI menu",
"raw_editor": "Raw configuration editor"
@@ -2961,6 +3036,13 @@
"dashboard_label": "Dashboard",
"header": "Choose a view"
},
+ "sub-element-editor": {
+ "types": {
+ "footer": "Footer Editor",
+ "header": "Header Editor",
+ "row": "Entity Row Editor"
+ }
+ },
"suggest_card": {
"add": "Add to Lovelace UI",
"create_own": "Pick different card",
@@ -2985,7 +3067,7 @@
},
"reload_lovelace": "Reload UI",
"reload_resources": {
- "refresh_body": "You have to refresh the page to complete the reload, do you want to refresh now?",
+ "refresh_body": "You have to refresh the page to complete the reload. Do you want to refresh now?",
"refresh_header": "Do you want to refresh?"
},
"unused_entities": {
diff --git a/translations/frontend/es.json b/translations/frontend/es.json
index 39739448a24c..d69e7cfc8529 100644
--- a/translations/frontend/es.json
+++ b/translations/frontend/es.json
@@ -520,6 +520,7 @@
"previous": "Anterior",
"refresh": "Actualizar",
"save": "Guardar",
+ "skip": "Omitir",
"successfully_deleted": "Eliminado correctamente",
"successfully_saved": "Guardado correctamente",
"undo": "Deshacer",
@@ -1212,7 +1213,7 @@
"trigger": "Desencadenante"
},
"event": {
- "context_user_pick": "Añadir usuario",
+ "context_user_pick": "Seleccionar usuario",
"context_user_picked": "Evento desencadenado por usuario",
"context_users": "Límite a eventos desencadenados por",
"event_data": "Datos del evento",
@@ -1311,6 +1312,22 @@
"only_editable": "Solo las automatizaciones definidas en automations.yaml son editables.",
"pick_automation": "Elije la automatización para editar",
"show_info_automation": "Mostrar información sobre la automatización"
+ },
+ "thingtalk": {
+ "create": "Crear automatización",
+ "link_devices": {
+ "ambiguous_entities": "Uno o más dispositivos tienen más de una entidad coincidente, selecciona la que deseas utilizar.",
+ "header": "¡Excelente! Ahora necesitamos vincular algunos dispositivos",
+ "unknown_placeholder": "Marcador de posición desconocido"
+ },
+ "task_selection": {
+ "error_empty": "Introduce un comando o pulsa omitir.",
+ "error_unsupported": "No hemos podido crear una automatización para eso (¿todavía?).",
+ "for_example": "Por ejemplo:",
+ "header": "Crear una nueva automatización",
+ "introduction": "Escribe a continuación lo que debe hacer esta automatización, e intentaremos convertirlo en una automatización de Home Assistant.",
+ "language_note": "Nota: Solo se admite Inglés por ahora."
+ }
}
},
"cloud": {
@@ -2119,7 +2136,7 @@
"sequence_sentence": "La secuencia de acciones de este script."
},
"picker": {
- "add_script": "Crear nuevo script",
+ "add_script": "Añadir script",
"edit_script": "Editar script",
"header": "Editor de scripts",
"headers": {
@@ -3302,6 +3319,9 @@
"header": "Vibrar"
}
},
+ "shopping_list": {
+ "start_conversation": "Iniciar conversación"
+ },
"shopping-list": {
"add_item": "Añadir artículo",
"clear_completed": "Borrado completado",
diff --git a/translations/frontend/et.json b/translations/frontend/et.json
index e5d8675d11bb..5f0c6023d63a 100644
--- a/translations/frontend/et.json
+++ b/translations/frontend/et.json
@@ -520,6 +520,7 @@
"previous": "Eelmine",
"refresh": "Värskenda",
"save": "Salvesta",
+ "skip": "Jäta vahele",
"successfully_deleted": "Edukalt kustutatud",
"successfully_saved": "Edukalt salvestatud",
"undo": "Ennista",
@@ -571,7 +572,7 @@
"no_history_found": "Oleku ajalugu ei leitud"
},
"logbook": {
- "by": "poolt",
+ "by": "allikas:",
"by_service": "teenuse poolt",
"entries_not_found": "Logiraamatu kandeid ei leitud.",
"messages": {
@@ -670,9 +671,9 @@
"duration": {
"day": "{count} {count, plural,\n one {päev}\n other {päeva}\n}",
"hour": "{count} {count, plural,\n one {tund}\n other {tunni}\n}",
- "minute": "{count} {count, plural,\n one {minut}\n other {minutit}\n}",
+ "minute": "{count} {count, plural,\n one {minut}\n other {minuti}\n}",
"second": "{count} {count, plural,\n one {sekund}\n other {sekundit}\n}",
- "week": "{count} {count, plural,\n one {nädal}\n other {nädalat}\n}"
+ "week": "{count} {count, plural,\n one {nädala}\n other {nädala}\n}"
},
"future": "{time} pärast",
"future_duration": {
@@ -939,8 +940,8 @@
},
"duration": {
"day": "{count} {count, plural,\n one {päev}\n other {päeva}\n}",
- "hour": "{count} {count, plural,\n one {tund}\n other {tundi}\n}",
- "minute": "{count} {count, plural,\n one {minut}\n other {minutit}\n}",
+ "hour": "{count} {count, plural,\n one {tund}\n other {tunni}\n}",
+ "minute": "{count} {count, plural,\n one {minut}\n other {minuti}\n}",
"second": "{count} {count, plural,\n one {sekund}\n other {sekundit}\n}",
"week": "{count} {count, plural,\n one {nädal}\n other {nädalat}\n}"
},
@@ -1212,7 +1213,7 @@
"trigger": "Päästik"
},
"event": {
- "context_user_pick": "Lisa kasutaja",
+ "context_user_pick": "Vali kasutaja",
"context_user_picked": "Kasutaja kes vallandas sündmuse",
"context_users": "Piira sündmustega mille on käivitanud",
"event_data": "Sündmuse andmed",
@@ -1311,6 +1312,22 @@
"only_editable": "Ainult automations.yaml failis defineeritud automatiseeringud on muudetavad.",
"pick_automation": "Vali muudetav automatiseering",
"show_info_automation": "Kuva automatiseeringu teave"
+ },
+ "thingtalk": {
+ "create": "Loo automatiseering",
+ "link_devices": {
+ "ambiguous_entities": "Ühel või mitmel seadmel on mitu sobivat olemit, palun vali see, mida soovid kasutada.",
+ "header": "Suurepärane! Nüüd peame lisama mõned seadmed",
+ "unknown_placeholder": "Tundmatu kohatäide"
+ },
+ "task_selection": {
+ "error_empty": "Sisesta käsk või vajuta Jäta vahele.",
+ "error_unsupported": "Me ei saanud selle jaoks (veel?) automaatiseeringut luua .",
+ "for_example": "Näiteks:",
+ "header": "Loo uus automatiseering",
+ "introduction": "Sisesta allpool, mida see automaatiseering peaks tegema, ja proovime selle teisendada Home Assistanti automaatiseeringuks.",
+ "language_note": "Märkus. Praegu toetatakse ainult inglise keelt."
+ }
}
},
"cloud": {
@@ -3280,7 +3297,7 @@
"token_title": "Ajutine juurdepääsutõend {clientId} jaoks"
},
"suspend": {
- "description": "Kas sulgeda ühenduse serveriga pärast 5-minutilist jõudeolekut ?",
+ "description": "Kas sulgeda ühendus serveriga pärast 5-minutilist jõudeolekut ?",
"header": "Sule ühendus automaatselt"
},
"themes": {
@@ -3302,6 +3319,9 @@
"header": "Vibreeri"
}
},
+ "shopping_list": {
+ "start_conversation": "Alusta vestlust"
+ },
"shopping-list": {
"add_item": "Lisa toode",
"clear_completed": "Tühjenda täidetud",
diff --git a/translations/frontend/fr.json b/translations/frontend/fr.json
index be701d7cc477..452ea459a343 100644
--- a/translations/frontend/fr.json
+++ b/translations/frontend/fr.json
@@ -520,6 +520,7 @@
"previous": "Précédent",
"refresh": "Rafraîchir",
"save": "Enregistrer",
+ "skip": "Passer",
"successfully_deleted": "Supprimé avec succès",
"successfully_saved": "Enregistré avec succès",
"undo": "Annuler",
@@ -1311,6 +1312,22 @@
"only_editable": "Seules les automatisations définies dans automations.yaml sont modifiables.",
"pick_automation": "Choisissez l'automatisation à modifier",
"show_info_automation": "Afficher des informations sur l'automatisation"
+ },
+ "thingtalk": {
+ "create": "Créer l’automatisation",
+ "link_devices": {
+ "ambiguous_entities": "Un ou plusieurs appareils ont plus d’une entrée correspondante, veuillez choisir celle que vous souhaitez utiliser.",
+ "header": "Super ! Maintenant nous allons lier quelques appareils",
+ "unknown_placeholder": "Espace réservé introuvable"
+ },
+ "task_selection": {
+ "error_empty": "Entrez une commande ou appuyez sur ignorer.",
+ "error_unsupported": "Nous n'avons pas pu créer une automatisation pour cela (pour le moment ?).",
+ "for_example": "Par exemple : ",
+ "header": "Créer une nouvelle automatisation",
+ "introduction": "Tapez ci-dessous ce que cette automatisation devrait faire, et nous allons essayer de la convertir en une automatisation Home Assistant.",
+ "language_note": "Remarque: pour l'instant, seul l'anglais est pris en charge."
+ }
}
},
"cloud": {
@@ -2759,6 +2776,10 @@
"description": "La carte Coup d'œil est utile pour regrouper plusieurs capteurs dans une vue d'ensemble compacte.",
"name": "Coup d'œil"
},
+ "grid": {
+ "description": "La carte Grille vous permet d’afficher plusieurs cartes dans une grille.",
+ "name": "Grille"
+ },
"history-graph": {
"description": "La carte Graphique historique vous permet d'afficher un graphique pour chacune des entités répertoriées.",
"name": "Graphique Historique"
@@ -3298,6 +3319,9 @@
"header": "Vibrer"
}
},
+ "shopping_list": {
+ "start_conversation": "Démarrer la conversation"
+ },
"shopping-list": {
"add_item": "Ajouter un élément",
"clear_completed": "Supprimer les éléments complétés",
diff --git a/translations/frontend/he.json b/translations/frontend/he.json
index 4a183d7c0cae..75635792bf6e 100644
--- a/translations/frontend/he.json
+++ b/translations/frontend/he.json
@@ -543,7 +543,7 @@
"device": "מכשיר",
"no_area": "אין אזור",
"show_devices": "הצג התקנים",
- "toggle": "החלף מצב"
+ "toggle": "בורר מצבים"
},
"entity": {
"entity-picker": {
@@ -799,7 +799,7 @@
"confirmations": {
"remove": "האם אתה בטוח שברצונך למחוק מכשיר זה?"
},
- "device_signature": "חתימת מכשיר Zigbee",
+ "device_signature": "חתימת התקן Zigbee",
"last_seen": "נראה לאחרונה",
"manuf": "לפי {manufacturer}",
"no_area": "ללא אזור",
@@ -809,7 +809,7 @@
"reconfigure": "הגדר מחדש את המכשיר ה- ZHA (ריפוי מכשיר). השתמש בזה אם אתה נתקל בבעיות במכשיר. אם המכשיר המדובר הוא מכשיר המונע על ידי סוללה, אנא וודא שהוא דלוק ומקבל פקודות בעת השימוש בשירות זה.",
"remove": "הסר מכשיר מרשת ה-Zigbee",
"updateDeviceName": "הגדר שם מותאם אישית עבור מכשיר זה במאגר ההתקנים.",
- "zigbee_information": "הצגת מידע Zigbee עבור המכשיר."
+ "zigbee_information": "הצגת מידע Zigbee עבור ההתקן."
},
"unknown": "לא ידוע",
"zha_device_card": {
@@ -1408,7 +1408,7 @@
},
"cant_edit": "באפשרותך לערוך פריטים שנוצרו בממשק המשתמש בלבד.",
"caption": "התקנים",
- "confirm_delete": "האם אתה בטוח שברצונך למחוק מכשיר זה?",
+ "confirm_delete": "האם אתה בטוח שברצונך למחוק התקן זה?",
"confirm_rename_entity_ids": "האם אתה רוצה גם לשנות את המזהים של הישויות שלך?",
"confirm_rename_entity_ids_warning": "שינוי זה לא ישפיע על התצורה (כמו אוטומציות, קבצי Script, סצנות, Lovelace) המשתמשת כעת בישויות אלה, יהיה עליך לעדכן אותן בעצמך.",
"data_table": {
@@ -1423,7 +1423,7 @@
},
"delete": "מחיקה",
"description": "ניהול התקנים מחוברים",
- "device_info": "פרטי מכשיר",
+ "device_info": "פרטי התקן",
"device_not_found": "המכשיר לא נמצא.",
"entities": {
"add_entities_lovelace": "הוסף לממשק Lovelace",
@@ -1523,7 +1523,7 @@
"no_helpers": "נראה שאין לך עדיין עזרים!"
},
"types": {
- "input_boolean": "החלף מצב",
+ "input_boolean": "בורר מצבים",
"input_datetime": "תאריך ו/או שעה",
"input_number": "מספר",
"input_select": "תיבת בחירה",
@@ -1627,7 +1627,7 @@
"rename_input_label": "שם ישות",
"search": "חיפוש אינטגרציות"
},
- "introduction": "כאן ניתן להגדיר את הרכיבים ואת ה Home Assistant. לא הכל ניתן להגדיר את ממשק המשתמש עדיין, אבל אנחנו עובדים על זה.",
+ "introduction": "כאן ניתן להגדיר את הרכיבים ואת ה-Home Assistant. לא הכל ניתן להגדיר עם ממשק המשתמש עדיין, אבל אנחנו עובדים על זה.",
"logs": {
"caption": "יומנים",
"clear": "נקה",
@@ -1927,7 +1927,7 @@
"confirm_restart": "האם אתה בטוח שברצונך להפעיל מחדש את Home Assistant?",
"confirm_stop": "האם אתה בטוח שברצונך לעצור את Home Assistant?",
"heading": "ניהול שרת",
- "introduction": "לשלוט על שרת הHome Assistant שלך... מHome Assistant.",
+ "introduction": "לשלוט על שרת Home Assistant שלך... מ-Home Assistant.",
"restart": "אתחל",
"stop": "עצור"
},
@@ -1998,7 +1998,7 @@
},
"picker": {
"headers": {
- "group": "קְבוּצָה",
+ "group": "קבוצה",
"name": "שם",
"system": "מערכת"
}
@@ -2007,11 +2007,11 @@
},
"zha": {
"add_device_page": {
- "discovered_text": "מכשירים יופיעו כאן לאחר שהתגלו.",
+ "discovered_text": "התקנים יופיעו כאן לאחר שהתגלו.",
"discovery_text": ". המכשירים שהתגלו יופיעו כאן. עקוב אחר ההוראות עבור ההתקנים שלך והצב את ההתקנים במצב תיאום.",
"header": "אוטומציית Zigbee - הוספת התקנים",
"no_devices_found": "לא נמצאו התקנים כלשהם, וודא שהם במצב צימוד והקפד שיהיו פעילים בזמן החיפוש.",
- "pairing_mode": "ודא שהמכשירים שלך במצב צימוד. בדוק את הוראות המכשיר שלך כיצד לבצע זאת.",
+ "pairing_mode": "ודא שההתקנים שלך נמצאים במצב צימוד. בדוק את הוראות ההתקן כיצד לבצע זאת.",
"search_again": "חפש שוב",
"spinner": "מחפש מכשירי ZHA Zigbee..."
},
@@ -2178,7 +2178,7 @@
"entities": "ישויות היחידה",
"entity_info": "מידע על הישות",
"exclude_entity": "אל תכלול ישות זו ב Home Assistant",
- "group": "קְבוּצָה",
+ "group": "קבוצה",
"header": "ניהול יחידות Z-Wave",
"introduction": "הפעל פקודות Z-Wave המשפיעות על יחידה בודדת. בחר יחידה כדי לראות רשימה של פקודות זמינות.",
"max_associations": "כמות קישורים מקסימלי:",
@@ -2384,6 +2384,7 @@
"calendar": {
"calendar_entities": "ישויות לוח שנה",
"inital_view": "תצוגה ראשונית",
+ "name": "לוח שנה",
"views": {
"dayGridDay": "יום",
"dayGridMonth": "חודש",
@@ -2590,7 +2591,7 @@
"pick_card_view_title": "איזה כרטיס ברצונך להוסיף לתצוגת {name}?",
"show_code_editor": "הצג עורך קוד",
"show_visual_editor": "הצג עורך ויזואלי",
- "toggle_editor": "החלף מצב עורך",
+ "toggle_editor": "עורך בורר מצבים",
"typed_header": "תצורת כרטיס {type}",
"unsaved_changes": "יש לך שינויים שלא נשמרו"
},
@@ -2914,7 +2915,7 @@
},
"current_user": "אתה מחובר כעת כ- {fullName} .",
"dashboard": {
- "description": "בחר לוח בקרה ברירת מחדל עבור מכשיר זה.",
+ "description": "בחר לוח בקרה ברירת מחדל עבור התקן זה.",
"dropdown_label": "לוח בקרה",
"header": "לוח בקרה"
},
diff --git a/translations/frontend/hu.json b/translations/frontend/hu.json
index f341422100fb..4171c520023d 100644
--- a/translations/frontend/hu.json
+++ b/translations/frontend/hu.json
@@ -520,6 +520,7 @@
"previous": "Előző",
"refresh": "Frissítés",
"save": "Mentés",
+ "skip": "Kihagyás",
"successfully_deleted": "Sikeresen törölve",
"successfully_saved": "Sikeresen elmentve",
"undo": "Visszavonás",
@@ -1311,6 +1312,15 @@
"only_editable": "Csak az automations.yaml fájlban megadott automatizálások szerkeszthetők.",
"pick_automation": "Válassz ki egy automatizálást szerkesztésre",
"show_info_automation": "Információk megjelenítése az automatizálásról"
+ },
+ "thingtalk": {
+ "create": "Automatizálás létrehozása",
+ "task_selection": {
+ "error_empty": "Írj be egy parancsot, vagy koppints a kihagyásra.",
+ "for_example": "Például:",
+ "header": "Új automatizálás létrehozása",
+ "language_note": "Megjegyzés: Egyelőre csak az angol nyelv támogatott."
+ }
}
},
"cloud": {
@@ -3302,6 +3312,9 @@
"header": "Rezgés"
}
},
+ "shopping_list": {
+ "start_conversation": "Beszélgetés indítása"
+ },
"shopping-list": {
"add_item": "Tétel hozzáadása",
"clear_completed": "Bejelöltek törlése",
diff --git a/translations/frontend/it.json b/translations/frontend/it.json
index e375bbb61bfc..0f4c0e04b791 100644
--- a/translations/frontend/it.json
+++ b/translations/frontend/it.json
@@ -520,6 +520,7 @@
"previous": "Indietro",
"refresh": "Aggiorna",
"save": "Salva",
+ "skip": "Salta",
"successfully_deleted": "Cancellato con successo",
"successfully_saved": "Salvataggio riuscito",
"undo": "Annulla",
@@ -1212,7 +1213,7 @@
"trigger": "Attivazione"
},
"event": {
- "context_user_pick": "Aggiungi utente",
+ "context_user_pick": "Seleziona utente",
"context_user_picked": "Evento di attivazione dell'utente",
"context_users": "Limita agli eventi attivati da",
"event_data": "Dati dell'Evento",
@@ -1311,6 +1312,22 @@
"only_editable": "Solo le automazioni definite in automations.yaml sono modificabili.",
"pick_automation": "Scegli l'Automazione da modificare",
"show_info_automation": "Mostra informazioni sull'automazione"
+ },
+ "thingtalk": {
+ "create": "Crea automazione",
+ "link_devices": {
+ "ambiguous_entities": "Uno o più dispositivi hanno più di un'entità corrispondente, scegliere quello che si desidera utilizzare.",
+ "header": "Fantastico! Ora dobbiamo collegare alcuni dispositivi",
+ "unknown_placeholder": "Segnaposto sconosciuto"
+ },
+ "task_selection": {
+ "error_empty": "Immettere un comando o toccare Salta.",
+ "error_unsupported": "Non siamo riusciti a creare un'automazione per questo (ancora?).",
+ "for_example": "Per esempio:",
+ "header": "Crea una nuova automazione",
+ "introduction": "Digitare sotto ciò che questa automazione dovrebbe fare, e proveremo a convertirlo in un'automazione Home Assistant.",
+ "language_note": "Nota: per il momento è supportato solo l'inglese."
+ }
}
},
"cloud": {
@@ -3302,6 +3319,9 @@
"header": "Vibrazione"
}
},
+ "shopping_list": {
+ "start_conversation": "Avvia conversazione"
+ },
"shopping-list": {
"add_item": "Aggiungi articolo",
"clear_completed": "Cancellazione completata",
diff --git a/translations/frontend/lb.json b/translations/frontend/lb.json
index 4cb7556cc1c6..e6f9adf16ea0 100644
--- a/translations/frontend/lb.json
+++ b/translations/frontend/lb.json
@@ -520,6 +520,7 @@
"previous": "Virdrun",
"refresh": "Aktualiséieren",
"save": "Späicheren",
+ "skip": "Iwwersprangen",
"successfully_deleted": "Erfollegräich geläscht.",
"successfully_saved": "Erfollegräich gespäichert.",
"undo": "Réckgängeg maachen",
@@ -709,9 +710,9 @@
"enabled_description": "Deaktivéiert Entitéiten ginn net am Home Assistant bäigesat.",
"enabled_label": "Entitéit aktivéieren",
"entity_id": "ID vun der Entitéit",
- "icon": "Ikon iwwerschreiwen",
+ "icon": "Ikon",
"icon_error": "Ikonen sollten am format 'prefix:numm' sinn, Beispill: 'mdi:home'",
- "name": "Numm iwwerschreiwen",
+ "name": "Numm",
"note": "Note: dëst funktionéiert villäicht nach net mat all Integratioun.",
"unavailable": "Dës Entitéit ass net erreechbar fir de Moment.",
"update": "Aktualiséieren"
@@ -1190,7 +1191,7 @@
"trigger": "Ausléiser"
},
"event": {
- "context_user_pick": "Benotzer erstellen",
+ "context_user_pick": "Benotzer auswielen",
"context_user_picked": "Benotzer deen den Evenement gestart huet",
"context_users": "Op Evenementer limitéieren déi ausgeléist goufen duerch ",
"event_data": "Evenement Donnée",
@@ -1289,6 +1290,22 @@
"only_editable": "Nëmmen Automatiounen déi am automations.yaml séfinéiert sinn kënnen editéiert ginn.",
"pick_automation": "Automatismus fir ze änneren auswielen",
"show_info_automation": "Informatiounen vum Automatisme uweisen"
+ },
+ "thingtalk": {
+ "create": "Automatisme erstellen",
+ "link_devices": {
+ "ambiguous_entities": "Een oder méi Apparater hunn méi wéi eng passend Entitéit, Wiel déi aus déi soll benotzt ginn.",
+ "header": "Super! Elo musse nach e puer Apparater verbonne ginn",
+ "unknown_placeholder": "Onbekannte Plazhaler"
+ },
+ "task_selection": {
+ "error_empty": "Gëff ee Kommando an oder klick op Iwwersprangen.",
+ "error_unsupported": "Mir konnten (nach?) keen Automatisme fir dëst erstellen.",
+ "for_example": "Zum Beispill:",
+ "header": "Nei Automatisme erstellen",
+ "introduction": "Gëff ënnendran an wat déi Automatisme maache sollt, a mir probéieren et an eng Home Assistant Automatisme ëmzewandelen.",
+ "language_note": "Nott: Nëmmen Englesch gëtt fir de Moment ënnerstëtzt."
+ }
}
},
"cloud": {
@@ -1541,7 +1558,7 @@
"caption": "Apparater",
"confirm_delete": "Sécher fir dësen Appara ze läsche?",
"confirm_rename_entity_ids": "Wëllt Dir och d'Entitéiten-ID vun Ären Entitéiten ëmbenennen?",
- "confirm_rename_entity_ids_warning": "Dëst ännert keng Konfiguratioun (wéi Automatisatisme, Skripte, Szene, Lovelace) déi aktuell dës Entitéite benotzt, du muss se selwer aktualiséieren.",
+ "confirm_rename_entity_ids_warning": "Dëst ännert keng Konfiguratioun (wéi Automatisatisme, Skripte, Szene, Tableau de Bord) déi aktuell dës Entitéite benotzt, du muss se selwer aktualiséieren fir dass sie déi nei Entitéiten ID's benotzen.",
"data_table": {
"area": "Beräich",
"battery": "Batterie",
@@ -2128,7 +2145,7 @@
"input_text": "Agab Text frësch lueden",
"introduction": "E puer Deeler vum Home Assistant kënne frësch geluede ginn ouni datt een Neistart néideg ass. Klick op nei luede fir di aktuell Konfiguratioun z'entlueden an di nei Konfiguratioun ze lueden.",
"min_max": "Min/Max Entitéite frësch lueden",
- "mqtt": "MQTT Entitéiten frësch lueden",
+ "mqtt": "Manuell konfiguréiert MQTT Entitéiten frësch lueden",
"person": "Persoune frësch lueden",
"ping": "Ping Binär Sensor Entitéite frësch lueden",
"reload": "{domain} frësh lueden",
@@ -2920,7 +2937,7 @@
},
"view": {
"panel_mode": {
- "description": "Dëst stellt déi éischt Kaart op voller Breet duer; aner Kaarte ginn net duergestallt.",
+ "description": "Dëst stellt déi éischt Kaart op voller Breet duer. Aner Kaarte oder Badge ginn net duergestallt.",
"title": "Panel Modus?",
"warning_multiple_cards": "Dës Usiicht enthält méi wéi eng Kaart, mee eng Panneau Usiicht kann nëmmen 1 Kaart uweisen."
}
@@ -3271,6 +3288,9 @@
"header": "Vibréieren"
}
},
+ "shopping_list": {
+ "start_conversation": "Ënnerhalung starten"
+ },
"shopping-list": {
"add_item": "Objet dobäisetze",
"clear_completed": "Fäerdeg Elementer ewechhuelen",
diff --git a/translations/frontend/nb.json b/translations/frontend/nb.json
index 3e407f4c2a06..d8dac3fc6e7e 100644
--- a/translations/frontend/nb.json
+++ b/translations/frontend/nb.json
@@ -520,6 +520,7 @@
"previous": "Forrige",
"refresh": "Oppdater",
"save": "Lagre",
+ "skip": "Hopp over",
"successfully_deleted": "Sletting vellykket",
"successfully_saved": "Lagring vellykket",
"undo": "Angre",
@@ -1212,7 +1213,7 @@
"trigger": "Utløser"
},
"event": {
- "context_user_pick": "Legg til bruker",
+ "context_user_pick": "Velg bruker",
"context_user_picked": "Bruker avfyrer hendelse",
"context_users": "Begrens til hendelser utløst av",
"event_data": "Hendelse data",
@@ -1311,6 +1312,22 @@
"only_editable": "Bare automasjoner definert i automations.yaml kan redigeres.",
"pick_automation": "Velg automasjon for å redigere",
"show_info_automation": "Vis informasjon om automasjon"
+ },
+ "thingtalk": {
+ "create": "Opprett automatisering",
+ "link_devices": {
+ "ambiguous_entities": "En eller flere enheter har mer enn en samsvarende entitet. Velg den du vil bruke.",
+ "header": "Flott! Nå må vi koble til noen enheter",
+ "unknown_placeholder": "Ukjent plassholder"
+ },
+ "task_selection": {
+ "error_empty": "Skriv inn en kommando, eller trykk hopp over.",
+ "error_unsupported": "Vi kunne ikke lage en automatisering for det (ennå?)",
+ "for_example": "For eksempel:",
+ "header": "Opprette en ny automatisering",
+ "introduction": "Skriv nedenfor hva denne automasjonen skal gjøre, og vi vil prøve å konvertere den til en Home Assistant-automatisering.",
+ "language_note": "Merk: Bare engelsk støttes foreløpig."
+ }
}
},
"cloud": {
@@ -2119,7 +2136,7 @@
"sequence_sentence": "Sekvensen av handlingene til dette skriptet."
},
"picker": {
- "add_script": "Opprett nytt skript",
+ "add_script": "Legg til skript",
"edit_script": "Rediger skript",
"header": "Skriptredigering",
"headers": {
@@ -3302,6 +3319,9 @@
"header": "Vibrere"
}
},
+ "shopping_list": {
+ "start_conversation": "Start samtale"
+ },
"shopping-list": {
"add_item": "Legg til",
"clear_completed": "Fjern fullførte",
diff --git a/translations/frontend/nl.json b/translations/frontend/nl.json
index 798cca340e17..654265289881 100644
--- a/translations/frontend/nl.json
+++ b/translations/frontend/nl.json
@@ -520,6 +520,7 @@
"previous": "Vorige",
"refresh": "Vernieuwen",
"save": "Opslaan",
+ "skip": "Overslaan",
"successfully_deleted": "Succesvol verwijderd",
"successfully_saved": "Succesvol opgeslagen",
"undo": "Ongedaan maken",
@@ -891,6 +892,7 @@
"zone": "Herlaad zones"
},
"server_control": {
+ "perform_action": "{action} Server",
"restart": "Herstarten",
"stop": "Stop"
}
@@ -1211,7 +1213,7 @@
"trigger": "Trigger"
},
"event": {
- "context_user_pick": "Gebruiker toevoegen",
+ "context_user_pick": "Selecteer gebruiker",
"context_user_picked": "Gebeurtenis door gebruiker",
"context_users": "Limiet voor gebeurtenissen die zijn geactiveerd door",
"event_data": "Gebeurtenisdata",
@@ -1310,6 +1312,22 @@
"only_editable": "Alleen automatiseringen in automations.yaml kunnen worden bewerkt.",
"pick_automation": "Kies te bewerken automatisering",
"show_info_automation": "Informatie weergeven over automatisering"
+ },
+ "thingtalk": {
+ "create": "Creëer automatisering",
+ "link_devices": {
+ "ambiguous_entities": "Een of meer apparaten hebben meer dan één overeenkomende entiteit. Kies het apparaat dat u wilt gebruiken.",
+ "header": "Geweldig! Nu moeten we enkele apparaten koppelen",
+ "unknown_placeholder": "Onbekende tijdelijke aanduiding"
+ },
+ "task_selection": {
+ "error_empty": "Voer een commando in of druk op overslaan.",
+ "error_unsupported": "Daar konden we (nog) geen automatisering voor maken.",
+ "for_example": "Bijvoorbeeld:",
+ "header": "Creëer een nieuwe automatisering",
+ "introduction": "Typ hieronder wat deze automatisering zou moeten doen, en we zullen proberen om het om te zetten in een Home Assistant automatisering.",
+ "language_note": "Opmerking: voorlopig wordt alleen Engels ondersteund."
+ }
}
},
"cloud": {
@@ -2118,7 +2136,7 @@
"sequence_sentence": "De reeks van acties in dit script."
},
"picker": {
- "add_script": "Maak een nieuw script",
+ "add_script": "Voeg script toe",
"edit_script": "Bewerk script",
"header": "Script Editor",
"headers": {
@@ -3301,6 +3319,9 @@
"header": "Trillen"
}
},
+ "shopping_list": {
+ "start_conversation": "Gesprek starten"
+ },
"shopping-list": {
"add_item": "Item toevoegen",
"clear_completed": "Wissen voltooid",
diff --git a/translations/frontend/pl.json b/translations/frontend/pl.json
index 0ead10bb4989..f0a69ac830d8 100644
--- a/translations/frontend/pl.json
+++ b/translations/frontend/pl.json
@@ -520,6 +520,7 @@
"previous": "Poprzedni",
"refresh": "Odśwież",
"save": "Zapisz",
+ "skip": "Pomiń",
"successfully_deleted": "Pomyślnie usunięto",
"successfully_saved": "Pomyślnie zapisano",
"undo": "Cofnij",
@@ -1212,7 +1213,7 @@
"trigger": "Wyzwalacz"
},
"event": {
- "context_user_pick": "Dodaj użytkownika",
+ "context_user_pick": "Wybierz użytkownika",
"context_user_picked": "Użytkownik wywołujący zdarzenie",
"context_users": "Tylko zdarzenia wywołane przez",
"event_data": "Dane zdarzenia",
@@ -1311,6 +1312,22 @@
"only_editable": "Tylko automatyzacje zdefiniowane w pliku automations.yaml są edytowalne.",
"pick_automation": "Wybierz automatyzację do edycji",
"show_info_automation": "Pokaż informacje o automatyzacji"
+ },
+ "thingtalk": {
+ "create": "Utwórz automatyzację",
+ "link_devices": {
+ "ambiguous_entities": "Co najmniej jedno urządzenie ma więcej niż jedną pasującą encję. Wybierz tę, której chcesz użyć.",
+ "header": "Wspaniale! Teraz musimy podłączyć jakieś urządzenia",
+ "unknown_placeholder": "Nieznany symbol zastępczy"
+ },
+ "task_selection": {
+ "error_empty": "Wprowadź polecenie lub naciśnij \"Pomiń\"",
+ "error_unsupported": "Nie mogliśmy (jeszcze?) utworzyć takiej automatyzacji",
+ "for_example": "Na przykład:",
+ "header": "Utwórz nową automatyzację",
+ "introduction": "Wpisz poniżej, co ma robić ta automatyzacja, a my spróbujemy przekształcić ją w automatyzację Home Assistant.",
+ "language_note": "Uwaga: obecnie obsługiwany jest tylko język angielski."
+ }
}
},
"cloud": {
@@ -2119,7 +2136,7 @@
"sequence_sentence": "Sekwencja akcji tego skryptu."
},
"picker": {
- "add_script": "Utwórz nowy skrypt",
+ "add_script": "Dodaj skrypt",
"edit_script": "Edytuj skrypt",
"header": "Edytor skryptów",
"headers": {
@@ -3302,6 +3319,9 @@
"header": "Wibracja"
}
},
+ "shopping_list": {
+ "start_conversation": "Rozpocznij rozmowę"
+ },
"shopping-list": {
"add_item": "Dodaj element",
"clear_completed": "Wyczyść ukończone",
diff --git a/translations/frontend/ru.json b/translations/frontend/ru.json
index fb617dd7ec04..20beb21b55f0 100644
--- a/translations/frontend/ru.json
+++ b/translations/frontend/ru.json
@@ -520,6 +520,7 @@
"previous": "Назад",
"refresh": "Обновить",
"save": "Сохранить",
+ "skip": "Пропустить",
"successfully_deleted": "Успешно удалено",
"successfully_saved": "Успешно сохранено",
"undo": "Отменить",
@@ -1212,7 +1213,7 @@
"trigger": "Триггер"
},
"event": {
- "context_user_pick": "Добавить пользователя",
+ "context_user_pick": "Выберите пользователя",
"context_user_picked": "Пользователь, вызывающий события",
"context_users": "Ограничить событиями, вызванными",
"event_data": "Данные события",
@@ -1311,6 +1312,22 @@
"only_editable": "Доступны для редактирования только автоматизации из automations.yaml.",
"pick_automation": "Выберите автоматизацию для редактирования",
"show_info_automation": "Показать информацию об автоматизации"
+ },
+ "thingtalk": {
+ "create": "Создать автоматизацию",
+ "link_devices": {
+ "ambiguous_entities": "Одно или несколько устройств имеют более одного совпадающего объекта, выберите то, которое Вы хотите использовать.",
+ "header": "Прекрасно! Теперь нам нужно связать некоторые устройства",
+ "unknown_placeholder": "Неизвестный заполнитель"
+ },
+ "task_selection": {
+ "error_empty": "Введите текст автоматизации или нажмите \"Пропустить\".",
+ "error_unsupported": "Мы не могли создать для этого автоматизацию (пока?).",
+ "for_example": "Например:",
+ "header": "Новая автоматизация",
+ "introduction": "Введите ниже, что должна делать эта автоматизация, и мы попытаемся преобразовать текст в автоматизацию Home Assistant.",
+ "language_note": "Примечание: пока поддерживается только английский язык."
+ }
}
},
"cloud": {
@@ -3302,6 +3319,9 @@
"header": "Вибрация"
}
},
+ "shopping_list": {
+ "start_conversation": "Начать диалог"
+ },
"shopping-list": {
"add_item": "Добавить элемент",
"clear_completed": "Очистить завершенные",
diff --git a/translations/frontend/sl.json b/translations/frontend/sl.json
index de735df35512..45213ce1ab9f 100644
--- a/translations/frontend/sl.json
+++ b/translations/frontend/sl.json
@@ -520,6 +520,7 @@
"previous": "Prejšnji",
"refresh": "Osveži",
"save": "Shrani",
+ "skip": "Preskoči",
"successfully_deleted": "Uspešno odstranjeno",
"successfully_saved": "Shranjeno",
"undo": "Razveljavi",
@@ -1311,6 +1312,14 @@
"only_editable": "Urejajo se lahko samo avtomatizacije, definirane v automations.yaml.",
"pick_automation": "Izberite avtomatizacijo za urejanje",
"show_info_automation": "Prikaži informacije o avtomatizaciji"
+ },
+ "thingtalk": {
+ "create": "Ustvari avtomatizacijo",
+ "task_selection": {
+ "error_empty": "Vnesite ukaz ali tapnite preskoči.",
+ "for_example": "Na primer:",
+ "header": "Ustvari novo avtomatizacijo"
+ }
}
},
"cloud": {
@@ -1922,8 +1931,15 @@
"network_status": {
"details": {
"driverallnodesqueried": "Poizvedena so bila vsa vozlišča",
+ "driverfailed": "Povezava s krmilnikom Z-Wave ni uspela",
+ "driverready": "Inicializacija krmilnika Z-Wave",
+ "driverremoved": "Gonilnik je odstranjen",
+ "driverreset": "Gonilnik je bil ponastavljen",
+ "offline": "OZWDaemon nedosegljiv",
+ "ready": "Pripravljen za povezavo",
"started": "Povezan z MQTT",
- "starting": "Povezovanje z MQTT"
+ "starting": "Povezovanje z MQTT",
+ "stopped": "Omrežje Z-Wave ustavljen"
},
"offline": "Brez povezave",
"online": "Povezan",
@@ -1936,7 +1952,9 @@
"node_count": "{count} vozlišč"
},
"node_config": {
- "header": "Konfiguracija vozlišča"
+ "header": "Konfiguracija vozlišča",
+ "help_source": "Opisi konfiguracijskih parametrov in besedilo pomoči zagotavlja projekt OpenZWave.",
+ "introduction": "Upravljajte različne konfiguracijske parametre za vozlišče Z-Wave."
},
"node_metadata": {
"product_manual": "Priročnik za izdelek"
@@ -1952,6 +1970,8 @@
"not_found": "Vozlišča ni mogoče najti"
},
"nodes_table": {
+ "failed": "Neuspešno",
+ "id": "ID",
"manufacturer": "Proizvajalec",
"model": "Model",
"zwave_plus": "Z-Wave Plus"
@@ -3271,6 +3291,9 @@
"header": "Vibriraj"
}
},
+ "shopping_list": {
+ "start_conversation": "Začni pogovor"
+ },
"shopping-list": {
"add_item": "Dodaj potrebščino",
"clear_completed": "Počisti dokončane",
diff --git a/translations/frontend/zh-Hans.json b/translations/frontend/zh-Hans.json
index 0e6f1cafd5a8..b4a59900a792 100644
--- a/translations/frontend/zh-Hans.json
+++ b/translations/frontend/zh-Hans.json
@@ -520,6 +520,7 @@
"previous": "上一步",
"refresh": "刷新",
"save": "保存",
+ "skip": "跳过",
"successfully_deleted": "已成功删除",
"successfully_saved": "保存成功",
"undo": "撤消",
@@ -1212,7 +1213,7 @@
"trigger": "触发条件"
},
"event": {
- "context_user_pick": "添加用户",
+ "context_user_pick": "选择用户",
"context_user_picked": "用户触发事件",
"context_users": "仅限以下用户触发事件",
"event_data": "事件数据",
@@ -1311,6 +1312,22 @@
"only_editable": "只能编辑 automations.yaml 中的自动化。",
"pick_automation": "选择要编辑的自动化",
"show_info_automation": "显示有关自动化的信息"
+ },
+ "thingtalk": {
+ "create": "创建自动化",
+ "link_devices": {
+ "ambiguous_entities": "有些设备有多个匹配的实体,请选择要使用的实体。",
+ "header": "很好!现在我们需要链接设备",
+ "unknown_placeholder": "未知占位符"
+ },
+ "task_selection": {
+ "error_empty": "请输入命令或点击“跳过”。",
+ "error_unsupported": "目前无法创建这样的自动化。",
+ "for_example": "例如:",
+ "header": "创建新的自动化",
+ "introduction": "请在下方输入这个自动化要实现什么功能,Home Assistant 会尝试将其转换为自动化。",
+ "language_note": "注意:目前只支持英文。"
+ }
}
},
"cloud": {
@@ -3302,6 +3319,9 @@
"header": "振动"
}
},
+ "shopping_list": {
+ "start_conversation": "开始对话"
+ },
"shopping-list": {
"add_item": "添加项目",
"clear_completed": "清除已完成项目",
diff --git a/translations/frontend/zh-Hant.json b/translations/frontend/zh-Hant.json
index 3ed39e5d51c7..79e3a98630e9 100644
--- a/translations/frontend/zh-Hant.json
+++ b/translations/frontend/zh-Hant.json
@@ -520,6 +520,7 @@
"previous": "上一步",
"refresh": "更新",
"save": "儲存",
+ "skip": "略過",
"successfully_deleted": "成功刪除",
"successfully_saved": "成功儲存",
"undo": "撤消",
@@ -1212,7 +1213,7 @@
"trigger": "觸發自動化"
},
"event": {
- "context_user_pick": "新增用戶",
+ "context_user_pick": "選擇用戶",
"context_user_picked": "用戶觸發事件",
"context_users": "限制觸發事件",
"event_data": "事件資料",
@@ -1311,6 +1312,22 @@
"only_editable": "僅有於 automations.yaml 內定義的自動化、方能進行編輯。",
"pick_automation": "選擇欲編輯的自動化",
"show_info_automation": "顯示關於自動化資訊"
+ },
+ "thingtalk": {
+ "create": "新增自動化",
+ "link_devices": {
+ "ambiguous_entities": "相符的實體具有一個以上的實體,請選擇所要使用的實體。",
+ "header": "太好了!現在我們需要連結一些設備",
+ "unknown_placeholder": "未知 Placeholder"
+ },
+ "task_selection": {
+ "error_empty": "輸入命令或點選忽略。",
+ "error_unsupported": "(尚)無法為此新增自動化。",
+ "for_example": "範例;",
+ "header": "新增自動化",
+ "introduction": "於下方輸入自動化內容,Home Assistant 將會試著將其轉換成自動化。",
+ "language_note": "注意:目前僅支援英文。"
+ }
}
},
"cloud": {
@@ -3302,6 +3319,9 @@
"header": "震動"
}
},
+ "shopping_list": {
+ "start_conversation": "開始對話"
+ },
"shopping-list": {
"add_item": "新加入清單",
"clear_completed": "清理完成",