Compare commits

...

11 Commits

Author SHA1 Message Date
Zack Arnett
bd316a36a0 Password manager? 2020-08-10 15:15:21 -05:00
Joakim Sørensen
1eac9fa1cd Set header and tab color (#6582) 2020-08-10 16:42:55 +02:00
Joakim Sørensen
7f819f0020 Set min width (#6583) 2020-08-10 16:23:14 +02:00
Bram Kragten
dec1f99a5f Fix hassio panel dark mode (#6569) 2020-08-10 09:36:01 +02:00
HomeAssistant Azure
c705e74fc8 [ci skip] Translation update 2020-08-10 00:32:35 +00:00
HomeAssistant Azure
01df10f93e [ci skip] Translation update 2020-08-09 00:32:33 +00:00
HomeAssistant Azure
9877f08cf4 [ci skip] Translation update 2020-08-08 00:32:34 +00:00
Ludeeus
02791c51ae Bumped version to 20200807.1 2020-08-07 14:00:10 +00:00
Joakim Sørensen
49683326e6 Reorder to not break jinja templates (#6564) 2020-08-07 15:59:22 +02:00
Joakim Sørensen
947773a82e Add diagnostics toggle (#6525)
* Add diagnostics toggle

* No need to check

* Expected blank line between class members

* Mimic the profile page

* Move settings-row to components and use button

* Update src/components/ha-settings-row.ts

Co-authored-by: Bram Kragten <mail@bramkragten.nl>

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
2020-08-07 08:47:25 -05:00
Zack Arnett
2a229df624 Change English/default naming of configure ui (#6555) 2020-08-07 08:42:38 -05:00
29 changed files with 639 additions and 119 deletions

View File

@@ -28,15 +28,7 @@ export class HassioMain extends urlSyncMixin(ProvideHassLitMixin(LitElement)) {
protected firstUpdated(changedProps: PropertyValues) {
super.firstUpdated(changedProps);
applyThemesOnElement(
this.parentElement,
this.hass.themes,
(atLeastVersion(this.hass.config.version, 0, 114)
? this.hass.selectedTheme?.theme
: ((this.hass.selectedTheme as unknown) as string)) ||
this.hass.themes.default_theme,
this.hass.selectedTheme
);
this._applyTheme();
// Paulus - March 17, 2019
// We went to a single hass-toggle-menu event in HA 0.90. However, the
@@ -73,6 +65,17 @@ export class HassioMain extends urlSyncMixin(ProvideHassLitMixin(LitElement)) {
makeDialogManager(this, this.shadowRoot!);
}
protected updated(changedProps: PropertyValues) {
super.updated(changedProps);
const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
if (!oldHass) {
return;
}
if (oldHass.themes !== this.hass.themes) {
this._applyTheme();
}
}
protected render() {
return html`
<hassio-router
@@ -83,6 +86,36 @@ export class HassioMain extends urlSyncMixin(ProvideHassLitMixin(LitElement)) {
></hassio-router>
`;
}
private _applyTheme() {
let themeName: string;
let options: Partial<HomeAssistant["selectedTheme"]> | undefined;
if (atLeastVersion(this.hass.config.version, 0, 114)) {
themeName =
this.hass.selectedTheme?.theme ||
(this.hass.themes.darkMode && this.hass.themes.default_dark_theme
? this.hass.themes.default_dark_theme!
: this.hass.themes.default_theme);
options = this.hass.selectedTheme;
if (themeName === "default" && options?.dark === undefined) {
options = {
...this.hass.selectedTheme,
dark: this.hass.themes.darkMode,
};
}
} else {
themeName = (this.hass.selectedTheme as unknown) as string;
}
applyThemesOnElement(
this.parentElement,
this.hass.themes,
themeName,
options
);
}
}
declare global {

View File

@@ -17,7 +17,12 @@ import {
setSupervisorOption,
SupervisorOptions,
} from "../../../src/data/hassio/supervisor";
import { showConfirmationDialog } from "../../../src/dialogs/generic/show-dialog-box";
import "../../../src/components/ha-switch";
import {
showConfirmationDialog,
showAlertDialog,
} from "../../../src/dialogs/generic/show-dialog-box";
import "../../../src/components/ha-settings-row";
import { haStyle } from "../../../src/resources/styles";
import { HomeAssistant } from "../../../src/types";
import { hassioStyle } from "../resources/hassio-style";
@@ -55,6 +60,26 @@ class HassioSupervisorInfo extends LitElement {
: ""}
</tbody>
</table>
<div class="options">
<ha-settings-row>
<span slot="heading">
Share Diagnostics
</span>
<span slot="description">
Share crash reports and diagnostic information.
<button
class="link"
@click=${this._diagnosticsInformationDialog}
>
Learn more
</button>
</span>
<ha-switch
.checked=${this.supervisorInfo.diagnostics}
@change=${this._toggleDiagnostics}
></ha-switch>
</ha-settings-row>
</div>
${this._errors
? html` <div class="errors">Error: ${this._errors}</div> `
: ""}
@@ -111,7 +136,8 @@ class HassioSupervisorInfo extends LitElement {
box-sizing: border-box;
height: calc(100% - 47px);
}
.info {
.info,
.options {
width: 100%;
}
.info td:nth-child(2) {
@@ -121,6 +147,12 @@ class HassioSupervisorInfo extends LitElement {
color: var(--error-color);
margin-top: 16px;
}
ha-settings-row {
padding: 0;
}
button.link {
color: var(--primary-color);
}
`,
];
}
@@ -181,6 +213,40 @@ class HassioSupervisorInfo extends LitElement {
this._errors = `Error joining beta channel, ${err.body?.message || err}`;
}
}
private async _diagnosticsInformationDialog() {
await showAlertDialog(this, {
title: "Help Improve Home Assistant",
text: html`Would you want to automatically share crash reports and
diagnostic information when the supervisor encounters unexpected errors?
<br /><br />
This will allow us to fix the problems, the information is only
accessible to the Home Assistant Core team and will not be shared with
others.
<br /><br />
The data does not include any private/sensetive information and you can
disable this in settings at any time you want.`,
});
}
private async _toggleDiagnostics() {
try {
const data: SupervisorOptions = {
diagnostics: !this.supervisorInfo?.diagnostics,
};
await setSupervisorOption(this.hass, data);
const eventdata = {
success: true,
response: undefined,
path: "option",
};
fireEvent(this, "hass-api-called", eventdata);
} catch (err) {
this._errors = `Error changing supervisor setting, ${
err.body?.message || err
}`;
}
}
}
declare global {

View File

@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup(
name="home-assistant-frontend",
version="20200807.0",
version="20200807.1",
description="The Home Assistant frontend",
url="https://github.com/home-assistant/home-assistant-polymer",
author="The Home Assistant Authors",

View File

@@ -37,6 +37,24 @@ export class HaFormString extends LitElement implements HaFormElement {
}
}
protected firstUpdated(): void {
if (this.schema.name.includes("password")) {
const stepInput = document.createElement("input");
stepInput.setAttribute("type", "password");
stepInput.setAttribute("name", "password");
stepInput.setAttribute("autocomplete", "on");
stepInput.onkeyup = (ev) => this._externalValueChanged(ev, this);
document.documentElement.appendChild(stepInput);
} else if (this.schema.name.includes("username")) {
const stepInput = document.createElement("input");
stepInput.setAttribute("type", "text");
stepInput.setAttribute("name", "username");
stepInput.setAttribute("autocomplete", "on");
stepInput.onkeyup = (ev) => this._externalValueChanged(ev, this);
document.documentElement.appendChild(stepInput);
}
}
protected render(): TemplateResult {
return this.schema.name.includes("password")
? html`
@@ -81,11 +99,21 @@ export class HaFormString extends LitElement implements HaFormElement {
if (this.data === value) {
return;
}
fireEvent(this, "value-changed", {
value,
});
}
private _externalValueChanged(ev: Event, el): void {
const value = (ev.target as PaperInputElement).value;
if (this.data === value) {
return;
}
el.shadowRoot!.querySelector("paper-input").value = value;
}
private get _stringType(): string {
if (this.schema.format) {
if (["email", "url"].includes(this.schema.format)) {

View File

@@ -0,0 +1,59 @@
import {
css,
CSSResult,
customElement,
html,
LitElement,
property,
SVGTemplateResult,
} from "lit-element";
import "@polymer/paper-item/paper-item-body";
@customElement("ha-settings-row")
export class HaSettingsRow extends LitElement {
@property({ type: Boolean, reflect: true }) public narrow!: boolean;
@property({ type: Boolean, attribute: "three-line" })
public threeLine = false;
protected render(): SVGTemplateResult {
return html`
<style>
paper-item-body {
padding-right: 16px;
}
</style>
<paper-item-body
?two-line=${!this.threeLine}
?three-line=${!this.threeLine}
>
<slot name="heading"></slot>
<div secondary><slot name="description"></slot></div>
</paper-item-body>
<slot></slot>
`;
}
static get styles(): CSSResult {
return css`
:host {
display: flex;
padding: 0 16px;
align-content: normal;
align-self: auto;
align-items: center;
}
:host([narrow]) {
align-items: normal;
flex-direction: column;
border-top: 1px solid var(--divider-color);
padding-bottom: 8px;
}
`;
}
}
declare global {
interface HTMLElementTagNameMap {
"ha-settings-row": HaSettingsRow;
}
}

View File

@@ -31,6 +31,7 @@ export interface CreateSessionResponse {
export interface SupervisorOptions {
channel?: "beta" | "dev" | "stable";
diagnostics?: boolean;
addons_repositories?: string[];
}

View File

@@ -47,12 +47,12 @@
background-color: var(--primary-background-color);
}
@media (prefers-color-scheme: dark) {
#ha-init-skeleton::before {
background-color: #1c1c1c;
}
html {
background-color: #111111;
}
#ha-init-skeleton::before {
background-color: #1c1c1c;
}
}
</style>
</head>

View File

@@ -342,6 +342,7 @@ export class HuiDialogEditView extends LitElement {
css`
h2 {
display: block;
color: var(--primary-text-color);
line-height: normal;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
@@ -380,6 +381,7 @@ export class HuiDialogEditView extends LitElement {
}
paper-tabs {
--paper-tabs-selection-bar-color: var(--primary-color);
color: var(--primary-text-color);
text-transform: uppercase;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
padding: 0 20px;
@@ -411,6 +413,12 @@ export class HuiDialogEditView extends LitElement {
margin: 12px 16px;
flex-wrap: wrap;
}
@media all and (min-width: 600px) {
ha-dialog {
--mdc-dialog-min-width: 600px;
}
}
`,
];
}

View File

@@ -14,7 +14,7 @@ import {
getOptimisticFrontendUserDataCollection,
} from "../../data/frontend";
import { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
@customElement("ha-advanced-mode-row")
class AdvancedModeRow extends LitElement {

View File

@@ -9,7 +9,7 @@ import { fireEvent } from "../../common/dom/fire_event";
import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
@customElement("ha-force-narrow-row")
class HaForcedNarrowRow extends LitElement {

View File

@@ -13,7 +13,7 @@ import {
import { EventsMixin } from "../../mixins/events-mixin";
import LocalizeMixin from "../../mixins/localize-mixin";
import "../../styles/polymer-ha-style";
import "./ha-settings-row";
import "../../components/ha-settings-row";
/*
* @appliesMixin EventsMixin

View File

@@ -13,7 +13,7 @@ import "../../components/ha-paper-dropdown-menu";
import { fetchDashboards, LovelaceDashboard } from "../../data/lovelace";
import { setDefaultPanel } from "../../data/panel";
import { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
@customElement("ha-pick-dashboard-row")
class HaPickDashboardRow extends LitElement {

View File

@@ -6,7 +6,7 @@ import { PolymerElement } from "@polymer/polymer/polymer-element";
import "../../components/ha-paper-dropdown-menu";
import { EventsMixin } from "../../mixins/events-mixin";
import LocalizeMixin from "../../mixins/localize-mixin";
import "./ha-settings-row";
import "../../components/ha-settings-row";
/*
* @appliesMixin LocalizeMixin

View File

@@ -12,7 +12,7 @@ import {
css,
} from "lit-element";
import { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
import { fireEvent } from "../../common/dom/fire_event";
import "../../components/ha-formfield";
import "../../components/ha-radio";

View File

@@ -6,7 +6,7 @@ import { PolymerElement } from "@polymer/polymer/polymer-element";
import { isComponentLoaded } from "../../common/config/is_component_loaded";
import { pushSupported } from "../../components/ha-push-notifications-toggle";
import LocalizeMixin from "../../mixins/localize-mixin";
import "./ha-settings-row";
import "../../components/ha-settings-row";
/*
* @appliesMixin LocalizeMixin

View File

@@ -11,7 +11,7 @@ import {
showAlertDialog,
showConfirmationDialog,
} from "../../dialogs/generic/show-dialog-box";
import "./ha-settings-row";
import "../../components/ha-settings-row";
/*
* @appliesMixin EventsMixin

View File

@@ -9,7 +9,7 @@ import { fireEvent, HASSDomEvent } from "../../common/dom/fire_event";
import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import type { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
declare global {
// for fire event

View File

@@ -10,7 +10,7 @@ import "../../components/ha-switch";
import type { HaSwitch } from "../../components/ha-switch";
import { forwardHaptic } from "../../data/haptics";
import type { HomeAssistant } from "../../types";
import "./ha-settings-row";
import "../../components/ha-settings-row";
@customElement("ha-set-vibrate-row")
class HaSetVibrateRow extends LitElement {

View File

@@ -1,48 +0,0 @@
import { html } from "@polymer/polymer/lib/utils/html-tag";
/* eslint-plugin-disable lit */
import { PolymerElement } from "@polymer/polymer/polymer-element";
class HaSettingsRow extends PolymerElement {
static get template() {
return html`
<style>
:host {
display: flex;
padding: 0 16px;
align-content: normal;
align-self: auto;
align-items: center;
}
:host([narrow]) {
align-items: normal;
flex-direction: column;
border-top: 1px solid var(--divider-color);
padding-bottom: 8px;
}
paper-item-body {
padding-right: 16px;
}
</style>
<paper-item-body two-line$="[[!threeLine]]" three-line$="[[threeLine]]">
<slot name="heading"></slot>
<div secondary><slot name="description"></slot></div>
</paper-item-body>
<slot></slot>
`;
}
static get properties() {
return {
narrow: {
type: Boolean,
reflectToAttribute: true,
},
threeLine: {
type: Boolean,
value: false,
},
};
}
}
customElements.define("ha-settings-row", HaSettingsRow);

View File

@@ -1890,7 +1890,7 @@
"confirm_delete_existing_cards_text": "Are you sure you want to delete your ''{name}'' view? The view contains {number} cards that will be deleted. This action cannot be undone."
},
"menu": {
"configure_ui": "Configure UI",
"configure_ui": "Edit Dashboard",
"help": "Help",
"refresh": "Refresh",
"reload_resources": "Reload resources",

View File

@@ -798,7 +798,7 @@
"confirmation_text": "Tots els dispositius d'aquesta àrea quedaran sense assignar.",
"confirmation_title": "Estàs segur que vols eliminar aquesta àrea?"
},
"description": "Visió general de totes les àrees de la casa.",
"description": "Gestiona les àrees de la casa",
"editor": {
"area_id": "ID d'àrea",
"create": "Crea",
@@ -820,7 +820,7 @@
},
"automation": {
"caption": "Automatització",
"description": "Crea i edita automatitzacions",
"description": "Gestiona les automatitzacions",
"editor": {
"actions": {
"add": "Afegir acció",
@@ -837,9 +837,9 @@
"add_option": "Afegeix opció",
"conditions": "Condicions",
"default": "Accions per defecte",
"label": "Triar",
"label": "Tria",
"option": "Opció {number}",
"remove_option": "Eliminar opció",
"remove_option": "Elimina opció",
"sequence": "Accions"
},
"condition": {
@@ -862,19 +862,19 @@
"service_data": "Dades de servei"
},
"repeat": {
"label": "Repetir",
"label": "Repeteix",
"sequence": "Accions",
"type_select": "Tipus de repetició",
"type": {
"count": {
"label": "Comptar"
"label": "Compta"
},
"until": {
"conditions": "Fins a les condicions",
"conditions": "Condicions de \"Fins que\"",
"label": "Fins que"
},
"while": {
"conditions": "Mentre que les condicions",
"conditions": "Condicions de \"Mentre\"",
"label": "Mentre"
}
}
@@ -1368,7 +1368,7 @@
},
"entities": {
"caption": "Entitats",
"description": "Visió general de totes les entitats conegudes.",
"description": "Gestiona les entitats conegudes",
"picker": {
"disable_selected": {
"button": "Desactiva seleccionada/es",
@@ -1420,7 +1420,7 @@
"header": "Configuració de Home Assistant",
"helpers": {
"caption": "Ajudants",
"description": "Possibles elements útils per a construir automatitzacions.",
"description": "Gestiona elements útils per a construir automatitzacions",
"dialog": {
"add_helper": "Afegeix ajudant",
"add_platform": "Afegeix {platform}",
@@ -1448,7 +1448,7 @@
"built_using": "Creat utilitzant",
"caption": "Informació",
"custom_uis": "Interfícies d'usuari personalitzades:",
"description": "Informació de la instal·lació de Home Assistant",
"description": "Consulta informació de la teva instal·lació de Home Assistant",
"developed_by": "Desenvolupat per un munt de gent fantàstica.",
"documentation": "Documentació",
"frontend": "frontend-ui",
@@ -1513,7 +1513,7 @@
},
"configure": "Configurar",
"configured": "Configurades",
"description": "Gestiona i configura les integracions",
"description": "Gestiona les integracions",
"details": "Detalls de la integració",
"discovered": "Descobertes",
"home_assistant_website": "lloc web de Home Assistant",
@@ -1541,7 +1541,7 @@
"rename_input_label": "Nom de l'entrada",
"search": "Cerca integracions"
},
"introduction": "Aquí pots configurar Home Assistant i els seus components. Encara no és possible configurar-ho tot des de la interfície d'usuari, però hi estem treballant.",
"introduction": "Aquí pots configurar Home Assistant i els teus components. Encara no és possible configurar-ho tot des de la interfície d'usuari, però hi estem treballant.",
"logs": {
"caption": "Registres",
"clear": "Esborra",
@@ -1597,7 +1597,7 @@
"open": "Obrir"
}
},
"description": "Configura els teus panells Lovelace",
"description": "Gestiona els teus panells Lovelace",
"resources": {
"cant_edit_yaml": "Estàs utilitzant Lovelace en mode YAML per tant no pots gestionar els recursos des de la interfície d'usuari. Els pots gestionar des del fitxer 'configuration.yaml'.",
"caption": "Recursos",
@@ -1648,7 +1648,7 @@
},
"ozw": {
"common": {
"node_id": "Node ID",
"node_id": "ID del node",
"ozw_instance": "Instància OpenZWave",
"zwave": "Z-Wave"
},
@@ -1664,7 +1664,7 @@
"confirm_delete": "Estàs segur que vols eliminar aquesta persona?",
"confirm_delete2": "Tots els dispositius vinculats a aquesta persona quedaran sense assignar.",
"create_person": "Crea persona",
"description": "Gestiona a quines persones fa seguiment Home Assistant.",
"description": "Gestiona les persones a qui Home Assistant fa seguiment",
"detail": {
"create": "Crea",
"delete": "Elimina",
@@ -1687,7 +1687,7 @@
"scene": {
"activated": "Escena {name} activada.",
"caption": "Escenes",
"description": "Crea i edita escenes",
"description": "Gestiona les escenes",
"editor": {
"default_name": "Nova escena",
"devices": {
@@ -1731,7 +1731,7 @@
},
"script": {
"caption": "Programació (scripts)",
"description": "Crea i edita programes (scripts)",
"description": "Gestiona els programes (scripts)",
"editor": {
"alias": "Nom",
"default_name": "Nou script",
@@ -1918,7 +1918,7 @@
"create_group": "Domòtica Zigbee (ZHA) - Creació de grups",
"create_group_details": "Introdueix els detalls necessaris per crear un nou grup Zigbee",
"creating_group": "Creant grup",
"description": "Crea i modifica grups Zigbee",
"description": "Gestiona els grups Zigbee",
"group_details": "Detalls del grup Zigbee seleccionat.",
"group_id": "ID del grup",
"group_info": "Informació del grup",
@@ -1961,7 +1961,7 @@
"configured_in_yaml": "Les zones configurades mitjançant configuration.yaml no es poden editar des de la UI.",
"confirm_delete": "Estàs segur que vols eliminar aquesta zona?",
"create_zone": "Crea zona",
"description": "Gestiona les zones en les quals es fa seguiment de persones.",
"description": "Gestiona les zones en les quals vols fer seguiment de persones",
"detail": {
"create": "Crea",
"delete": "Elimina",
@@ -2475,7 +2475,7 @@
},
"menu": {
"close": "Tanca",
"configure_ui": "Configurar la interfície d'usuari",
"configure_ui": "Edita panell",
"exit_edit_mode": "Surt del mode d'edició d'interfície",
"help": "Ajuda",
"refresh": "Actualitzar",
@@ -2777,7 +2777,7 @@
"header": "Tanca la connexió automàticament"
},
"themes": {
"accent_color": "Color accent",
"accent_color": "Color d'èmfasi",
"dark_mode": {
"auto": "Auto",
"dark": "Fosc",

View File

@@ -2475,7 +2475,7 @@
},
"menu": {
"close": "Close",
"configure_ui": "Configure UI",
"configure_ui": "Edit Dashboard",
"exit_edit_mode": "Exit UI edit mode",
"help": "Help",
"refresh": "Refresh",

View File

@@ -201,7 +201,7 @@
},
"climate": {
"cool": "Frío",
"dry": "Seco",
"dry": "Deshumidificador",
"fan_only": "Sólo ventilador",
"heat": "Calor",
"heat_cool": "Calor/Frío",
@@ -2475,7 +2475,7 @@
},
"menu": {
"close": "Cerrar",
"configure_ui": "Configurar la interfaz de usuario",
"configure_ui": "Editar panel de control",
"exit_edit_mode": "Salir del modo de edición de la interfaz de usuario",
"help": "Ayuda",
"refresh": "Actualizar",

View File

@@ -798,7 +798,7 @@
"confirmation_text": "Tälle alueelle kuuluvien laitteiden osoitus poistetaan.",
"confirmation_title": "Haluatko varmasti poistaa tämän alueen?"
},
"description": "Yleiskuva kaikista kotisi alueista.",
"description": "Hallinnoi kotisi alueita",
"editor": {
"area_id": "Alueen tunnus",
"create": "Luo",
@@ -833,6 +833,15 @@
"name": "Toiminta",
"type_select": "Toiminnon tyyppi",
"type": {
"choose": {
"add_option": "Lisää vaihtoehto",
"conditions": "Ehdot",
"default": "Oletustoiminnot",
"label": "Valitse",
"option": "Vaihtoehto {number}",
"remove_option": "Poista vaihtoehto",
"sequence": "Toiminnot"
},
"condition": {
"label": "Ehto"
},
@@ -852,6 +861,24 @@
"label": "Lähetä tapahtuma",
"service_data": "Palvelun data"
},
"repeat": {
"label": "Toista",
"sequence": "Toiminnot",
"type_select": "Toistotyyppi",
"type": {
"count": {
"label": "Laske"
},
"until": {
"conditions": "Kunnes ehdot",
"label": "Kunnes"
},
"while": {
"conditions": "Sillä aikaa, kun ehdot",
"label": "Sillä aikaa"
}
}
},
"scene": {
"label": "Aktivoi tilanne"
},
@@ -1341,7 +1368,7 @@
},
"entities": {
"caption": "Kohteet",
"description": "Yleiskuva kaikista tunnetuista entiteeteistä.",
"description": "Hallitse kohteita",
"picker": {
"disable_selected": {
"button": "Poista valitut käytöstä",
@@ -1619,6 +1646,18 @@
"title": "MQTT",
"topic": "aihe"
},
"ozw": {
"common": {
"node_id": "Solmun tunnus",
"ozw_instance": "OpenZWave-instanssi",
"zwave": "Z-Wave"
},
"device_info": {
"node_failed": "Solmu epäonnistui",
"stage": "Vaihe",
"zwave_info": "Z-Wave-tiedot"
}
},
"person": {
"add_person": "Lisää henkilö",
"caption": "Henkilöt",
@@ -1711,6 +1750,7 @@
"queued": "Jonon pituus"
},
"modes": {
"description": "Moodi hallitsee sitä, mitä tapahtuu, kun skripti käynnistetään, kun se edelleen toimii yhdestä tai useammasta aiemmasta kutsusta. Katso lisätietoja {documentation_link} .",
"documentation": "skriptin dokumentaatio",
"label": "Tila",
"parallel": "Rinnakkain",
@@ -2386,6 +2426,9 @@
"para_migrate": "Home Assistant voi lisätä ID:t kaikkiin kortteihisi ja näkymiin automaattisesti painamalla 'Tuo vanhat asetukset'-nappia.",
"para_no_id": "Elementillä ei ole ID. Lisää ID elementille 'ui-lovelace.yaml'-tiedostossa."
},
"move_card": {
"header": "Valitse näkymä, johon kortti siirretään"
},
"raw_editor": {
"confirm_remove_config_text": "Lovelace käyttöliittymän näkymät luodaan automaattisesti alueistasi ja laitteistasi, jos poistat nykyisen määrityksen.",
"confirm_remove_config_title": "Haluatko varmasti poistaa Lovelace-käyttöliittymän asetukset? Lovelace käyttöliittymän asetukset luodaan automaattisesti alueistasi ja laitteistasi.",
@@ -2413,6 +2456,10 @@
"yaml_control": "Jos haluat hallita YAML-tilaa, luo YAML-tiedosto, jonka nimi on määritetty tämän kojelaudan kokoonpanossa, tai oletusarvoinen 'ui-lovelace.yaml'.",
"yaml_mode": "Käytät YAML-tilaa, mikä tarkoittaa, että et voi muuttaa Lovelace-asetuksia käyttöliittymästä. Jos haluat muuttaa Lovelacea käyttöliittymästä, poista 'mode: yaml' Lovelace-määrityksestäsi tiedostossa 'configuration.yaml'."
},
"select_view": {
"dashboard_label": "Kojelauta",
"header": "Valitse näkymä"
},
"suggest_card": {
"add": "Lisää Lovelace-käyttöliittymään",
"create_own": "Valitse toinen kortti",
@@ -2730,10 +2777,18 @@
"header": "Sulje yhteys automaattisesti"
},
"themes": {
"accent_color": "Korostusväri",
"dark_mode": {
"auto": "Automaattinen",
"dark": "Tumma",
"light": "Vaalea"
},
"dropdown_label": "Teema",
"error_no_theme": "Ei teemoja käytettävissä.",
"header": "Teema",
"link_promo": "Lisätietoja teemoista"
"link_promo": "Lisätietoja teemoista",
"primary_color": "Ensisijainen väri",
"reset": "Nollaa"
},
"vibrate": {
"description": "Ota tämän laitteen värinä käyttöön tai poista se käytöstä, kun ohjaat laitteita.",

View File

@@ -1 +1,228 @@
{}
{
"panel": {
"config": "Konfiguraasje",
"history": "Skiednis",
"mailbox": "Postfak",
"map": "Kaart",
"shopping_list": "Boadskiplist"
},
"state_attributes": {
"climate": {
"fan_mode": {
"off": "Út"
}
}
},
"state_badge": {
"person": {
"home": "Thús"
}
},
"state": {
"alarm_control_panel": {
"triggered": "Aktivearre"
},
"binary_sensor": {
"cold": {
"on": "Kâld"
},
"connectivity": {
"on": "Ferbûn"
},
"default": {
"on": "Oan"
},
"door": {
"off": "Ticht",
"on": "Iepen"
},
"garage_door": {
"off": "Ticht",
"on": "Iepen"
},
"gas": {
"off": "Net detektearre"
},
"motion": {
"on": "Detekteare"
},
"opening": {
"off": "Ticht"
},
"presence": {
"on": "Thús"
},
"vibration": {
"on": "Detekteare"
},
"window": {
"off": "Ticht"
}
},
"calendar": {
"on": "Oan"
},
"camera": {
"recording": "Opnimme"
},
"climate": {
"cool": "Kuolje",
"dry": "Droech",
"heat": "Ferwaarmje"
},
"cover": {
"open": "Iepen"
},
"default": {
"off": "Út",
"unavailable": "Net beskikber",
"unknown": "Ûnbekend"
},
"device_tracker": {
"not_home": "Fuort"
},
"fan": {
"on": "Oan"
},
"group": {
"home": "Thús",
"locked": "Beskoattele",
"open": "Iepen",
"stopped": "Stoppe"
},
"light": {
"off": "Út"
},
"lock": {
"locked": "Beskoattele"
},
"media_player": {
"playing": "Ôfspylje"
},
"script": {
"off": "Út"
},
"sensor": {
"off": "Út",
"on": "Oan"
},
"switch": {
"on": "Oan"
},
"weather": {
"sunny": "Sinnich"
},
"zwave": {
"default": {
"dead": "Net berikber",
"initializing": "Inisjalisearje",
"sleeping": "Sliept"
},
"query_stage": {
"dead": "Net berikber ({query_stage})"
}
}
},
"ui": {
"common": {
"loading": "Oan it laden"
},
"dialogs": {
"zha_device_info": {
"zha_device_card": {
"device_name_placeholder": "Feroarje apparaatnamme"
}
}
},
"duration": {
"day": "{count} {count, plural,\none {dei}\nother {dagen}\n}",
"second": "{count} {count, plural,\none {sekonde}\nother {sekonden}\n}",
"week": "{count} {count, plural,\none {wike}\nother {wiken}\n}"
},
"panel": {
"config": {
"automation": {
"editor": {
"actions": {
"type": {
"choose": {
"add_option": "Opsje tafoegje"
}
}
},
"triggers": {
"add": "Trigger tafoegje",
"header": "",
"type": {
"homeassistant": {
"label": "",
"shutdown": "Ofslúte",
"start": "Opstarte"
},
"mqtt": {
"payload": "Payload (opsjoneel)"
},
"state": {
"from": "Fan",
"to": "Nei"
}
}
}
}
},
"helpers": {
"types": {
"input_boolean": "Skeakelje",
"input_number": "Nûmer"
}
},
"info": {
"description": "Ynformaasje oer dyn Home Assistant ynstallaasje"
},
"lovelace": {
"description": "Konfigurearje dyn Lovelace-dashboards",
"resources": {
"detail": {
"warning_header": "Wês foarsichtich!"
}
}
},
"script": {
"description": "Meitsje en bewurkje scripts"
},
"zha": {
"groups": {
"description": "Meitsje en bewurkje Zigbee groepen"
}
},
"zwave": {
"node_config": {
"config_value": "Konfiguraasje wearde"
}
}
},
"lovelace": {
"editor": {
"select_view": {
"dashboard_label": "Dashboard"
}
},
"menu": {
"configure_ui": "Konfigurearje UI"
}
},
"mailbox": {
"playback_title": "Berjocht ôfspylje"
},
"profile": {
"themes": {
"dark_mode": {
"dark": "Tsjuster",
"light": "ljocht"
},
"primary_color": "Primêre kleur"
}
}
}
}
}

View File

@@ -833,6 +833,13 @@
"name": "Actie",
"type_select": "Type actie",
"type": {
"choose": {
"add_option": "Optie toevoegen",
"conditions": "Voorwaarden",
"label": "Kies",
"remove_option": "Verwijder optie",
"sequence": "Acties"
},
"condition": {
"label": "Voorwaarde"
},
@@ -2412,6 +2419,9 @@
"yaml_control": "Om de controle over te nemen in de YAML-modus, maak je een YAML-bestand met de naam die je hebt opgegeven in je configuratie voor dit dashboard, of de standaard 'ui-lovelace.yaml'.",
"yaml_mode": "Je gebruikt de YAML-modus, wat betekent dat je jouw Lovelace-configuratie niet vanuit de gebruikersinterface kunt wijzigen. Als je Lovelace vanuit de gebruikersinterface wilt wijzigen, verwijder dan 'mode: yaml' uit de Lovelace-configuratie in 'configuration.yaml'."
},
"select_view": {
"dashboard_label": "Dashboard"
},
"suggest_card": {
"add": "Voeg toe aan de Lovelace gebruikersinterface",
"create_own": "Kies een andere kaart",
@@ -2729,10 +2739,15 @@
"header": "Verbinding automatisch verbreken"
},
"themes": {
"dark_mode": {
"dark": "Donker",
"light": "Licht"
},
"dropdown_label": "Thema",
"error_no_theme": "Geen thema's beschikbaar.",
"header": "Thema",
"link_promo": "Meer informatie over thema's"
"link_promo": "Meer informatie over thema's",
"primary_color": "Primaire kleur"
},
"vibrate": {
"description": "Schakel trillingen op dit apparaat in of uit wanneer u apparaten bestuurt.",

View File

@@ -834,11 +834,12 @@
"type_select": "Тип действия",
"type": {
"choose": {
"add_option": "Добавить опцию",
"add_option": "Добавить вариант",
"conditions": "Условия",
"default": "Действия по умолчанию",
"option": "Опция {number}",
"remove_option": "Удалить опцию",
"label": "Выбор",
"option": "{number} вариант",
"remove_option": "Удалить вариант",
"sequence": "Действия"
},
"condition": {
@@ -860,6 +861,24 @@
"label": "Создание события",
"service_data": "Данные"
},
"repeat": {
"label": "Повтор",
"sequence": "Действия",
"type_select": "Режим повторений",
"type": {
"count": {
"label": "Счётчик"
},
"until": {
"conditions": "Действия будут выполняться в цикле до тех пор, когда начнут соблюдаться эти условия",
"label": "До"
},
"while": {
"conditions": "Действия будут выполняться в цикле, пока соблюдаются эти условия",
"label": "Пока"
}
}
},
"scene": {
"label": "Активировать сцену"
},
@@ -2456,7 +2475,7 @@
},
"menu": {
"close": "Закрыть",
"configure_ui": "Настройка интерфейса",
"configure_ui": "Изменить панель",
"exit_edit_mode": "Выход из режима редактирования интерфейса",
"help": "Справка",
"refresh": "Обновить",

View File

@@ -96,7 +96,7 @@
"armed": "Etkin",
"armed_away": "Etkin dışarıda",
"armed_custom_bypass": "Özel alarm atlatması",
"armed_home": "Etkin evde",
"armed_home": "Evdeyim modu kuruldu",
"armed_night": "Etkin gece",
"arming": "Etkinleşiyor",
"disarmed": "Etkisiz",
@@ -581,6 +581,7 @@
},
"dialogs": {
"config_entry_system_options": {
"enable_new_entities_description": "Devre dışı bırakılırsa, {integration} için yeni keşfedilen varlıklar otomatik olarak Home Assistant'a eklenmez.",
"enable_new_entities_label": "Yeni eklenen varlıkları etkinleştir.",
"title": "{integration} için Sistem Seçenekleri",
"update": "Güncelle"
@@ -692,11 +693,14 @@
}
},
"mqtt_device_debug_info": {
"deserialize": "MQTT mesajlarını JSON olarak ayrıştırma yap",
"entities": "Varlıklar",
"no_entities": "Varlık yok",
"no_triggers": "Tetikleyici yok",
"payload_display": "Yük ekranı",
"recent_messages": "{n} , en son alınan mesaj (lar)",
"show_as_yaml": "YAML olarak göster",
"title": "{device} hata ayıklama bilgisi",
"triggers": "Tetikleyiciler"
},
"options_flow": {
@@ -726,6 +730,7 @@
"confirmations": {
"remove": "Cihazı kaldırmak istediğinize emin misiniz?"
},
"device_signature": "Zigbee cihaz imzası",
"last_seen": "Son görülen",
"manuf": "{manufacturer} tarafından",
"no_area": "Alan Yok",
@@ -733,7 +738,8 @@
"quirk": "Orijinal",
"services": {
"remove": "Bir cihazı Zigbee ağından kaldır.",
"updateDeviceName": "Aygıt kayıt defterinde bu aygıt için özel bir ad ayarlayın."
"updateDeviceName": "Aygıt kayıt defterinde bu aygıt için özel bir ad ayarlayın.",
"zigbee_information": "Cihazın Zigbee bilgilerini görüntüleyin."
},
"unknown": "Bilinmeyen",
"zha_device_card": {
@@ -775,7 +781,7 @@
},
"config": {
"advanced_mode": {
"hint_enable": "Eksik yapılandırma seçenekleri? Gelişmiş modunu etkinleştir",
"hint_enable": "Yapılandırma seçenekleri eksik mi? Gelişmiş modu etkinleştirin",
"link_profile_page": "profil sayfanız"
},
"areas": {
@@ -821,6 +827,15 @@
"name": "Aksiyon",
"type_select": "Aksiyon türü",
"type": {
"choose": {
"add_option": "Seçenek ekle",
"conditions": "Koşullar",
"default": "Varsayılan eylemler",
"label": "Seç",
"option": "Seçenek {number}",
"remove_option": "Seçeneği kaldır",
"sequence": "Aksiyonlar"
},
"condition": {
"label": "Durum"
},
@@ -840,6 +855,15 @@
"label": "Olayı Çalıştır",
"service_data": "Hizmet verisi"
},
"repeat": {
"sequence": "Aksiyonlar",
"type": {
"until": {
"conditions": "Koşullara kadar",
"label": "Kadar"
}
}
},
"scene": {
"label": "Sahneyi etkinleştir"
},
@@ -1220,7 +1244,7 @@
"save_button": "Kaydet",
"time_zone": "Saat dilimi",
"unit_system": "Birim Sistemi",
"unit_system_imperial": "ımperial",
"unit_system_imperial": "Imperial",
"unit_system_metric": "Metrik"
},
"header": "Yapılandırma ve sunucu kontrolü",
@@ -1465,7 +1489,7 @@
"note_about_website_reference": "Daha fazlası için",
"rename_dialog": "Bu yapılandırma girişinin adını düzenleyin",
"rename_input_label": "Varlık adı",
"search": "Entegrasyonları ara"
"search": "Entegrasyon ara"
},
"introduction": "Buradan bileşenlerinizi ve Home Assistant'ınızı yapılandırabilirsiniz. Herşeyi kullanıcı arayüzü ile ayarlamak henüz mümkün değil fakat üzerinde çalışıyoruz",
"logs": {
@@ -1569,6 +1593,18 @@
"title": "MQTT",
"topic": "konu"
},
"ozw": {
"common": {
"node_id": "Düğüm Kimliği",
"ozw_instance": "OpenZWave Örneği",
"zwave": "Z-Wave"
},
"device_info": {
"node_failed": "Düğüm Başarısız",
"stage": "Sahne",
"zwave_info": "Z-Wave Bilgisi"
}
},
"person": {
"add_person": "Kişi ekle",
"caption": "Kişiler",
@@ -1752,6 +1788,7 @@
"zha": {
"add_device_page": {
"discovered_text": "Cihazlar keşfedildikten sonra burada görünecektir.",
"discovery_text": "Keşfedilen cihazlar burada görünecektir. Cihaz (lar) ınız için talimatları izleyin ve cihazları eşleştirme moduna getirin.",
"header": "Zigbee Ev Otomasyonu - Cihaz Ekle",
"no_devices_found": "Hiçbir cihaz bulunamadı, eşleştirme modunda olduklarından emin olun ve keşfetme sırasında cihazıık tutun.",
"pairing_mode": "Cihazlarınızın eşleme modunda olduğundan emin olun. Bunun nasıl yapılacağı konusunda cihazınızın talimatlarını kontrol edin.",
@@ -1916,6 +1953,7 @@
"set_protection": "Korumayı Ayarla"
},
"ozw_log": {
"introduction": "Günlüğü görüntüleyin. 0 minimum (yükler tüm günlük) ve 1000 maksimum. Yük statik bir günlük gösterir ve kuyruk günlüğün son belirtilen satır sayısı ile otomatik güncelleştirme gösterir.",
"last_log_lines": "Son günlük satırı sayısı",
"load": "Yük",
"tail": "Kuyruk"
@@ -2278,6 +2316,9 @@
"para_migrate": "'Ayarları aktar' düğmesine bastığınız zaman Home Assistant tüm kartlarınıza ve görünümlerinize otomatik olarak kimlik atayabilir.",
"para_no_id": "Bu öğenin bir kimliği yok. Lütfen 'ui-lovelace.yaml' dosyasında bu elemente bir kimlik ekleyin."
},
"move_card": {
"header": "Kartı taşımak için bir görünüm seçin"
},
"raw_editor": {
"confirm_remove_config_text": "Lovelace kullanıcı arayüzü yapılandırmanızı kaldırırsanız, Lovelace kullanıcı arayüzü, görünümleriniz alanlarınız ve cihazlarınız otomatik olarak oluşturulacatır.",
"confirm_remove_config_title": "Lovelace UI yapılandırmanızı kaldırmak istediğinizden emin misiniz? Lovelace kullanıcı arayüzü görünümlerinizi alanlarınız ve cihazlarınızla otomatik olarak oluşturacağız.",
@@ -2303,6 +2344,10 @@
"save": "Kontrol altına al",
"yaml_mode": "Bu gösterge tablosu için YAML modunu kullanıyorsunuz. Bunun anlamı, Lovelace yapılandırmanızı kullanıcı arayüzünden değiştiremezsiniz. Bu gösterge tablosunu kullanıcı arayüzünden yönetmek istiyorsanız, 'configuration: yaml' içindeki Lovelace yapılandırmanızdan 'mode: yaml' öğesini kaldırın."
},
"select_view": {
"dashboard_label": "Gösterge Paneli",
"header": "Bir görünüm seçin"
},
"suggest_card": {
"add": "Lovelace kullanıcı arayüzüne ekle",
"create_own": "Farklı kart seç",
@@ -2500,13 +2545,16 @@
},
"page-onboarding": {
"core-config": {
"button_detect": "Tespit",
"button_detect": "Algıla",
"finish": "Sonraki",
"intro": "Merhaba {name} , Home Assistant'a hoş geldin. Evini nasıl adlandırmak istersin?",
"location_name_default": "Evde"
"intro_location": "Nerede yaşadığınızı bilmek isteriz. Bu bilgiler, güneşe dayalı bilgilerin görüntülenmesine ve otomasyonların kurulmasına yardımcı olacaktır. Bu veriler asla ağınızın dışında paylaşılmaz.",
"intro_location_detect": "Harici bir hizmete tek seferlik talepte bulunarak bu bilgileri doldurmanıza yardımcı olabiliriz.",
"location_name_default": "Evim"
},
"integration": {
"finish": "Bitir",
"intro": "Cihazlar ve hizmetler, Home Asistant'ta entegrasyonlar olarak temsil edilir. Bunları şimdi kurabilir veya daha sonra yapılandırma ekranından yapabilirsiniz.",
"more_integrations": "Daha fazla"
},
"user": {
@@ -2564,6 +2612,7 @@
"create_failed": "Erişim anahtarı oluşturulamadı.",
"created_at": "{date} tarihinde oluşturuldu",
"delete_failed": "Erişim anahtarı silinemedi.",
"description": "Komut dosyalarınızın Home Assistant örneğinizle etkileşime girmesine izin vermek için uzun ömürlü erişim jetonları oluşturun. Her bir jeton, oluşturulduktan sonra 10 yıl süreyle geçerli olacaktır. Aşağıdaki uzun ömürlü erişim jetonları şu anda aktif.",
"empty_state": "Henüz uzun ömürlü erişim anahtarınız yok.",
"header": "Uzun ömürlü erişim anahtarları",
"last_used": "En son {date} tarihinde {location} konumundan kullanıldı",
@@ -2583,7 +2632,7 @@
"confirm_disable": "{name} adlı öğeyi devre dışı bırakmak istediğinizden emin misiniz?",
"disable": "Devre dışı bırak",
"enable": "Etkinleştir",
"header": "Çoklu-faktör Kimlik Doğrulama Modülleri"
"header": "Çok Faktör Kimlik Doğrulama Modülleri"
},
"push_notifications": {
"description": "Bu cihaza bildirimler gönder",
@@ -2605,14 +2654,22 @@
"token_title": "{clientId} için yenileme anahtarı"
},
"suspend": {
"description": "5 dakika boyunca gizlendikten sonra sunucu bağlantısı kapatılsın mı?",
"description": "5 dakika boyunca aktif olmayınca sunucu ile bağlantı kapatılsın mı?",
"header": "Bağlantıyı otomatik olarak kapat"
},
"themes": {
"accent_color": "Vurgu rengi",
"dark_mode": {
"auto": "Otomatik",
"dark": "Karanlık",
"light": "Işık"
},
"dropdown_label": "Tema",
"error_no_theme": "Kullanılabilir tema yok.",
"header": "Tema",
"link_promo": "Temalar hakkında bilgi edinin"
"link_promo": "Temalar hakkında bilgi edinin",
"primary_color": "Birincil renk",
"reset": "Sıfırla"
},
"vibrate": {
"description": "Cihazları kontrol ederken bu cihazdaki titreşimi etkinleştirin veya devre dışı bırakın.",

View File

@@ -918,7 +918,7 @@
},
"mqtt": {
"label": "MQTT",
"payload": "Phụ tải (tùy chọn)",
"payload": "Nội dung (tùy chọn)",
"topic": "Chủ đề"
},
"numeric_state": {