mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-29 12:16:39 +00:00
commit
d29eacb268
@ -170,6 +170,8 @@ const createAppConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
||||
chunkFilename: genChunkFilename(isProdBuild, isStatsBuild),
|
||||
path: latestBuild ? paths.output : paths.output_es5,
|
||||
publicPath: latestBuild ? "/frontend_latest/" : "/frontend_es5/",
|
||||
// For workerize loader
|
||||
globalObject: "self",
|
||||
},
|
||||
resolve,
|
||||
};
|
||||
@ -210,6 +212,8 @@ const createDemoConfig = ({ isProdBuild, latestBuild, isStatsBuild }) => {
|
||||
latestBuild ? "frontend_latest" : "frontend_es5"
|
||||
),
|
||||
publicPath: latestBuild ? "/frontend_latest/" : "/frontend_es5/",
|
||||
// For workerize loader
|
||||
globalObject: "self",
|
||||
},
|
||||
};
|
||||
};
|
||||
@ -255,6 +259,8 @@ const createCastConfig = ({ isProdBuild, latestBuild }) => {
|
||||
latestBuild ? "frontend_latest" : "frontend_es5"
|
||||
),
|
||||
publicPath: latestBuild ? "/frontend_latest/" : "/frontend_es5/",
|
||||
// For workerize loader
|
||||
globalObject: "self",
|
||||
},
|
||||
};
|
||||
};
|
||||
|
@ -170,9 +170,11 @@
|
||||
"webpack-cli": "^3.3.0",
|
||||
"webpack-dev-server": "^3.2.1",
|
||||
"webpack-manifest-plugin": "^2.0.4",
|
||||
"workbox-webpack-plugin": "^4.1.1"
|
||||
"workbox-webpack-plugin": "^4.1.1",
|
||||
"workerize-loader": "^1.1.0"
|
||||
},
|
||||
"_comment": "Polymer fixed to 3.1 because 3.2 throws on logbook page",
|
||||
"_comment_2": "Fix in https://github.com/Polymer/polymer/pull/5569",
|
||||
"resolutions": {
|
||||
"@webcomponents/webcomponentsjs": "^2.2.10",
|
||||
"@vaadin/vaadin-lumo-styles": "^1.4.2",
|
||||
|
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="home-assistant-frontend",
|
||||
version="20190822.0",
|
||||
version="20190825.0",
|
||||
description="The Home Assistant frontend",
|
||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||
author="The Home Assistant Authors",
|
||||
|
@ -1,96 +0,0 @@
|
||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||
import { EventsMixin } from "../mixins/events-mixin";
|
||||
|
||||
let loaded = null;
|
||||
|
||||
const tagWhiteList = ["svg", "path", "ha-icon"];
|
||||
|
||||
/*
|
||||
* @appliesMixin EventsMixin
|
||||
*/
|
||||
class HaMarkdown extends EventsMixin(PolymerElement) {
|
||||
static get properties() {
|
||||
return {
|
||||
content: {
|
||||
observer: "_render",
|
||||
type: String,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
connectedCallback() {
|
||||
super.connectedCallback();
|
||||
// 0 = not loaded, 1 = success, 2 = error
|
||||
this._scriptLoaded = 0;
|
||||
this._renderScheduled = false;
|
||||
this._resize = () => this.fire("iron-resize");
|
||||
|
||||
if (!loaded) {
|
||||
loaded = import(/* webpackChunkName: "load_markdown" */ "../resources/load_markdown");
|
||||
}
|
||||
loaded
|
||||
.then(
|
||||
({ marked, filterXSS }) => {
|
||||
this.marked = marked;
|
||||
this.filterXSS = filterXSS;
|
||||
this._scriptLoaded = 1;
|
||||
},
|
||||
() => {
|
||||
this._scriptLoaded = 2;
|
||||
}
|
||||
)
|
||||
.then(() => this._render());
|
||||
}
|
||||
|
||||
_render() {
|
||||
if (this._scriptLoaded === 0 || this._renderScheduled) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._renderScheduled = true;
|
||||
|
||||
// debounce it to next microtask.
|
||||
Promise.resolve().then(() => {
|
||||
this._renderScheduled = false;
|
||||
|
||||
if (this._scriptLoaded === 1) {
|
||||
this.innerHTML = this.filterXSS(
|
||||
this.marked(this.content, {
|
||||
breaks: true,
|
||||
gfm: true,
|
||||
tables: true,
|
||||
}),
|
||||
{
|
||||
onIgnoreTag: (tag, html) =>
|
||||
tagWhiteList.indexOf(tag) >= 0 ? html : null,
|
||||
}
|
||||
);
|
||||
this._resize();
|
||||
|
||||
const walker = document.createTreeWalker(
|
||||
this,
|
||||
1 /* SHOW_ELEMENT */,
|
||||
null,
|
||||
false
|
||||
);
|
||||
|
||||
while (walker.nextNode()) {
|
||||
const node = walker.currentNode;
|
||||
|
||||
// Open external links in a new window
|
||||
if (node.tagName === "A" && node.host !== document.location.host) {
|
||||
node.target = "_blank";
|
||||
|
||||
// Fire a resize event when images loaded to notify content resized
|
||||
} else if (node.tagName === "IMG") {
|
||||
node.addEventListener("load", this._resize);
|
||||
}
|
||||
}
|
||||
} else if (this._scriptLoaded === 2) {
|
||||
this.innerText = this.content;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define("ha-markdown", HaMarkdown);
|
64
src/components/ha-markdown.ts
Normal file
64
src/components/ha-markdown.ts
Normal file
@ -0,0 +1,64 @@
|
||||
import { UpdatingElement, property, customElement } from "lit-element";
|
||||
// eslint-disable-next-line import/no-webpack-loader-syntax
|
||||
// @ts-ignore
|
||||
// tslint:disable-next-line: no-implicit-dependencies
|
||||
import markdownWorker from "workerize-loader!../resources/markdown_worker";
|
||||
import { fireEvent } from "../common/dom/fire_event";
|
||||
|
||||
let worker: any | undefined;
|
||||
|
||||
@customElement("ha-markdown")
|
||||
class HaMarkdown extends UpdatingElement {
|
||||
@property() public content = "";
|
||||
|
||||
protected update(changedProps) {
|
||||
super.update(changedProps);
|
||||
|
||||
if (!worker) {
|
||||
worker = markdownWorker();
|
||||
}
|
||||
|
||||
this._render();
|
||||
}
|
||||
|
||||
private async _render() {
|
||||
this.innerHTML = await worker.renderMarkdown(this.content, {
|
||||
breaks: true,
|
||||
gfm: true,
|
||||
tables: true,
|
||||
});
|
||||
|
||||
this._resize();
|
||||
|
||||
const walker = document.createTreeWalker(
|
||||
this,
|
||||
1 /* SHOW_ELEMENT */,
|
||||
null,
|
||||
false
|
||||
);
|
||||
|
||||
while (walker.nextNode()) {
|
||||
const node = walker.currentNode;
|
||||
|
||||
// Open external links in a new window
|
||||
if (
|
||||
node.nodeName === "A" &&
|
||||
(node as HTMLAnchorElement).host !== document.location.host
|
||||
) {
|
||||
(node as HTMLAnchorElement).target = "_blank";
|
||||
|
||||
// Fire a resize event when images loaded to notify content resized
|
||||
} else if (node.nodeName === "IMG") {
|
||||
node.addEventListener("load", this._resize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private _resize = () => fireEvent(this, "iron-resize");
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
"ha-markdown": HaMarkdown;
|
||||
}
|
||||
}
|
@ -127,6 +127,7 @@ class HaMenuButton extends LitElement {
|
||||
position: relative;
|
||||
}
|
||||
.dot {
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
background-color: var(--accent-color);
|
||||
width: 12px;
|
||||
|
@ -116,11 +116,11 @@ class HUIRoot extends LitElement {
|
||||
@iron-select="${this._deselect}"
|
||||
slot="dropdown-content"
|
||||
>
|
||||
<paper-item @click="${this.lovelace!.enableFullEditMode}"
|
||||
>${this.hass!.localize(
|
||||
<paper-item @tap="${this.lovelace!.enableFullEditMode}">
|
||||
${this.hass!.localize(
|
||||
"ui.panel.lovelace.editor.menu.raw_editor"
|
||||
)}</paper-item
|
||||
>
|
||||
)}
|
||||
</paper-item>
|
||||
</paper-listbox>
|
||||
</paper-menu-button>
|
||||
</app-toolbar>
|
||||
@ -154,7 +154,7 @@ class HUIRoot extends LitElement {
|
||||
aria-label=${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.refresh"
|
||||
)}
|
||||
@click="${this._handleRefresh}"
|
||||
@tap="${this._handleRefresh}"
|
||||
>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.refresh"
|
||||
@ -169,7 +169,7 @@ class HUIRoot extends LitElement {
|
||||
aria-label=${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.unused_entities"
|
||||
)}
|
||||
@click="${this._handleUnusedEntities}"
|
||||
@tap="${this._handleUnusedEntities}"
|
||||
>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.unused_entities"
|
||||
@ -180,20 +180,20 @@ class HUIRoot extends LitElement {
|
||||
aria-label=${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.configure_ui"
|
||||
)}
|
||||
@click="${this._editModeEnable}"
|
||||
>${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.configure_ui"
|
||||
)}</paper-item
|
||||
@tap="${this._editModeEnable}"
|
||||
>
|
||||
${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.configure_ui"
|
||||
)}
|
||||
</paper-item>
|
||||
<paper-item
|
||||
aria-label=${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.help"
|
||||
)}
|
||||
@click="${this._handleHelp}"
|
||||
>${this.hass!.localize(
|
||||
"ui.panel.lovelace.menu.help"
|
||||
)}</paper-item
|
||||
@tap="${this._handleHelp}"
|
||||
>
|
||||
${this.hass!.localize("ui.panel.lovelace.menu.help")}
|
||||
</paper-item>
|
||||
</paper-listbox>
|
||||
</paper-menu-button>
|
||||
</app-toolbar>
|
||||
|
@ -136,7 +136,7 @@ class HaPanelProfile extends LitElement {
|
||||
? html`
|
||||
<ha-advanced-mode-card
|
||||
.hass=${this.hass}
|
||||
coreUserData=${this._coreUserData}
|
||||
.coreUserData=${this._coreUserData}
|
||||
></ha-advanced-mode-card>
|
||||
`
|
||||
: ""}
|
||||
|
@ -1,5 +0,0 @@
|
||||
import marked_ from "marked";
|
||||
import filterXSS_ from "xss";
|
||||
|
||||
export const marked = marked_;
|
||||
export const filterXSS = filterXSS_;
|
10
src/resources/markdown_worker.ts
Normal file
10
src/resources/markdown_worker.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import marked from "marked";
|
||||
// @ts-ignore
|
||||
import filterXSS from "xss";
|
||||
|
||||
export const renderMarkdown = (content: string, markedOptions: object) =>
|
||||
filterXSS(marked(content, markedOptions), {
|
||||
onIgnoreTag(tag, html) {
|
||||
return ["svg", "path", "ha-icon"].indexOf(tag) !== -1 ? html : null;
|
||||
},
|
||||
});
|
@ -141,7 +141,8 @@
|
||||
"high_demand": "Alta Demanda",
|
||||
"heat_pump": "Bomba de Calor",
|
||||
"gas": "Gas",
|
||||
"manual": "Manual"
|
||||
"manual": "Manual",
|
||||
"heat_cool": "Calentar\/Enfriar"
|
||||
},
|
||||
"configurator": {
|
||||
"configure": "Configurar",
|
||||
@ -323,6 +324,9 @@
|
||||
},
|
||||
"mqtt": {
|
||||
"title": ""
|
||||
},
|
||||
"info": {
|
||||
"title": "Información"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -589,7 +593,46 @@
|
||||
"zwave": {
|
||||
"caption": "",
|
||||
"description": "Administrar su red Z-Wave",
|
||||
"network_management": {
|
||||
"header": "Gestión de la red Z-Wave",
|
||||
"introduction": "Ejecute comandos que afectan a la red Z-Wave. No recibirá comentarios sobre si la mayoría de los comandos tuvieron éxito, pero puede consultar el registro OZW para intentar averiguarlo."
|
||||
},
|
||||
"network_status": {
|
||||
"network_stopped": "Red Z-Wave detenida",
|
||||
"network_starting": "Iniciando la Red Z-Wave...",
|
||||
"network_starting_note": "Esto puede llevar un tiempo dependiendo del tamaño de su red.",
|
||||
"network_started": "Red Z-Wave iniciada",
|
||||
"network_started_note_some_queried": "Los nodos despiertos han sido consultados. Los nodos dormidos serán consultados cuando se despierten.",
|
||||
"network_started_note_all_queried": "Todos los nodos han sido consultados."
|
||||
},
|
||||
"services": {
|
||||
"start_network": "Iniciar red",
|
||||
"stop_network": "Detener red",
|
||||
"test_network": "Red de prueba",
|
||||
"save_config": "Guardar configuración",
|
||||
"add_node_secure": "Agregar nodo seguro",
|
||||
"add_node": "Agregar nodo",
|
||||
"remove_node": "Eliminar nodo",
|
||||
"cancel_command": "Cancelar comando"
|
||||
},
|
||||
"common": {
|
||||
"value": "Valor",
|
||||
"instance": "Instancia",
|
||||
"index": "Índice",
|
||||
"unknown": "desconocido",
|
||||
"wakeup_interval": "Intervalo de activación"
|
||||
},
|
||||
"values": {
|
||||
"header": "Valores del nodo"
|
||||
},
|
||||
"node_config": {
|
||||
"header": "Opciones de configuración del nodo",
|
||||
"seconds": "segundos",
|
||||
"set_wakeup": "Establecer intervalo de activación",
|
||||
"config_parameter": "Parámetro de configuración",
|
||||
"config_value": "Valor de configuración",
|
||||
"true": "Verdadero",
|
||||
"false": "Falso",
|
||||
"set_config_parameter": "Establecer parámetro de configuración"
|
||||
}
|
||||
},
|
||||
@ -702,7 +745,10 @@
|
||||
"unavailable": "Esta entidad no está disponible actualmente.",
|
||||
"default_name": "Nueva Área",
|
||||
"delete": "ELIMINAR",
|
||||
"update": "ACTUALIZAR"
|
||||
"update": "ACTUALIZAR",
|
||||
"enabled_label": "Habilitar entidad",
|
||||
"enabled_cause": "Deshabilitado por {cause}.",
|
||||
"enabled_description": "Las entidades deshabilitadas no serán agregadas a Home Assistant."
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -714,6 +760,34 @@
|
||||
"device_tracker_picked": "Dispositivo de seguimiento",
|
||||
"device_tracker_pick": "Elegir dispositivo para rastrear"
|
||||
}
|
||||
},
|
||||
"server_control": {
|
||||
"caption": "Control del servidor",
|
||||
"description": "Reinicie y detenga el servidor de Home Assistant",
|
||||
"section": {
|
||||
"validation": {
|
||||
"heading": "Validación de la configuración",
|
||||
"introduction": "Valide su configuración si recientemente realizó algunos cambios en su configuración y quiere asegurarse de que sea válida",
|
||||
"check_config": "Verificar configuración",
|
||||
"valid": "¡Configuración valida!",
|
||||
"invalid": "Configuración inválida"
|
||||
},
|
||||
"reloading": {
|
||||
"heading": "Recarga de configuración",
|
||||
"introduction": "Algunas partes de Home Assistant pueden volver a cargarse sin necesidad de reiniciar. Al pulsar recargar descargará su configuración actual y cargará la nueva.",
|
||||
"core": "Recargar núcleo",
|
||||
"group": "Recargar grupos",
|
||||
"automation": "Recargar automatizaciones",
|
||||
"script": "Recargar scripts",
|
||||
"scene": "Recargar escenas"
|
||||
},
|
||||
"server_management": {
|
||||
"heading": "Administración del servidor",
|
||||
"introduction": "Controle su servidor Home Assistant ... desde Home Assistant.",
|
||||
"restart": "Reiniciar",
|
||||
"stop": "Detener"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"profile": {
|
||||
@ -784,6 +858,11 @@
|
||||
"step_done": "Configuración realizada para {step}",
|
||||
"close": "Cerrar",
|
||||
"submit": "Enviar"
|
||||
},
|
||||
"logout": "Cerrar sesión",
|
||||
"force_narrow": {
|
||||
"header": "Ocultar siempre la barra lateral",
|
||||
"description": "Esto ocultará la barra lateral de forma predeterminada, similar a la experiencia móvil."
|
||||
}
|
||||
},
|
||||
"page-authorize": {
|
||||
@ -1216,6 +1295,19 @@
|
||||
"updater": {
|
||||
"title": "Instrucciones de actualización"
|
||||
}
|
||||
},
|
||||
"options_flow": {
|
||||
"form": {
|
||||
"header": "Opciones"
|
||||
},
|
||||
"success": {
|
||||
"description": "Opciones guardadas con éxito."
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "Opciones del sistema",
|
||||
"enable_new_entities_label": "Habilitar entidades recién agregadas.",
|
||||
"enable_new_entities_description": "Si está deshabilitado, las entidades recién descubiertas no se agregarán automáticamente a Home Assistant."
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1296,6 +1388,14 @@
|
||||
"home": "En Casa",
|
||||
"sleep": "Dormir",
|
||||
"activity": "Actividad"
|
||||
},
|
||||
"hvac_action": {
|
||||
"off": "Desactivado",
|
||||
"heating": "Calentando",
|
||||
"cooling": "Enfriando",
|
||||
"drying": "Secando",
|
||||
"idle": "Inactivo",
|
||||
"fan": "Ventilador"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -1303,5 +1403,12 @@
|
||||
"system-admin": "Administradores",
|
||||
"system-users": "Usuarios",
|
||||
"system-read-only": "Usuarios de solo lectura"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "Usuario",
|
||||
"integration": "Integración",
|
||||
"config_entry": "Entrada de configuración"
|
||||
}
|
||||
}
|
||||
}
|
@ -621,7 +621,7 @@
|
||||
"value": "Valeur",
|
||||
"instance": "Instance",
|
||||
"index": "Indice",
|
||||
"unknown": "Inconnu",
|
||||
"unknown": "inconnu",
|
||||
"wakeup_interval": "Intervalle de réveil"
|
||||
},
|
||||
"values": {
|
||||
@ -629,7 +629,7 @@
|
||||
},
|
||||
"node_config": {
|
||||
"header": "Options de configuration du nœud",
|
||||
"seconds": "Secondes",
|
||||
"seconds": "secondes",
|
||||
"set_wakeup": "Définir l'intervalle de réveil",
|
||||
"config_parameter": "Paramètre de configuration",
|
||||
"config_value": "Valeur de configuration",
|
||||
@ -1409,7 +1409,8 @@
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "Utilisateur",
|
||||
"integration": "Intégration"
|
||||
"integration": "Intégration",
|
||||
"config_entry": "Paramètre de configuration"
|
||||
}
|
||||
}
|
||||
}
|
@ -762,7 +762,7 @@
|
||||
},
|
||||
"server_control": {
|
||||
"caption": "בקרת שרת",
|
||||
"description": "שליטה על שרת ה Home Assistant",
|
||||
"description": "אתחל וכבה את שרת ה Home Assistant",
|
||||
"section": {
|
||||
"validation": {
|
||||
"heading": "בדיקת הקונפיגורציה",
|
||||
@ -859,7 +859,7 @@
|
||||
},
|
||||
"logout": "התנתק",
|
||||
"force_narrow": {
|
||||
"header": "הסתר תמיד את הסרגל הצדדי",
|
||||
"header": "הסתר תמיד את הסרגל הצידי",
|
||||
"description": "פעולה זו תסתיר את הסרגל הצדדי כברירת מחדל, בדומה לחוויה בנייד."
|
||||
}
|
||||
},
|
||||
@ -1293,6 +1293,14 @@
|
||||
"updater": {
|
||||
"title": "הוראות עדכון"
|
||||
}
|
||||
},
|
||||
"options_flow": {
|
||||
"success": {
|
||||
"description": "האפשרויות נשמרו בהצלחה."
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "אפשרויות מערכת"
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1388,5 +1396,11 @@
|
||||
"system-admin": "מנהלים",
|
||||
"system-users": "משתמשים",
|
||||
"system-read-only": "משתמשים לקריאה בלבד"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "משתמש",
|
||||
"integration": "אינטגרציה"
|
||||
}
|
||||
}
|
||||
}
|
@ -747,7 +747,10 @@
|
||||
"unavailable": "이 구성요소는 현재 사용할 수 없습니다.",
|
||||
"default_name": "새로운 영역",
|
||||
"delete": "삭제",
|
||||
"update": "업데이트"
|
||||
"update": "업데이트",
|
||||
"enabled_label": "구성요소 활성화",
|
||||
"enabled_cause": "{cause} 에 의해 비활성화 되었습니다.",
|
||||
"enabled_description": "비활성화 된 구성요소는 Home Assistant 에 추가되지 않습니다."
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -1302,6 +1305,11 @@
|
||||
"success": {
|
||||
"description": "옵션이 성공적으로 저장되었습니다."
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "시스템 옵션",
|
||||
"enable_new_entities_label": "새로 추가된 구성요소를 활성화합니다.",
|
||||
"enable_new_entities_description": "비활성화한 경우 새로 검색된 구성요소는 Home Assistant 에 자동으로 추가되지 않습니다."
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1397,5 +1405,12 @@
|
||||
"system-admin": "관리자",
|
||||
"system-users": "사용자",
|
||||
"system-read-only": "읽기 전용 사용자"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "사용자",
|
||||
"integration": "통합 구성요소",
|
||||
"config_entry": "구성 항목"
|
||||
}
|
||||
}
|
||||
}
|
@ -698,7 +698,10 @@
|
||||
"unavailable": "Denne eininga er for augeblinken ikkje tilgjengeleg.",
|
||||
"default_name": "Nytt område",
|
||||
"delete": "SLETT",
|
||||
"update": "OPPDATER"
|
||||
"update": "OPPDATER",
|
||||
"enabled_label": "Aktiver oppføringa",
|
||||
"enabled_cause": "Deaktivert av {cause} .",
|
||||
"enabled_description": "Deaktiverte eininga kjem ikkje til å verta lagt til i Home Assistant"
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
|
@ -278,7 +278,7 @@
|
||||
"unknown": "niezn",
|
||||
"unavailable": "niedos",
|
||||
"error": "błąd",
|
||||
"entity_not_found": "brak"
|
||||
"entity_not_found": "Nie znaleziono jednostki"
|
||||
},
|
||||
"alarm_control_panel": {
|
||||
"armed": "uzbr",
|
||||
@ -397,10 +397,10 @@
|
||||
},
|
||||
"customize": {
|
||||
"caption": "Dostosowywanie",
|
||||
"description": "Dostosuj swoje encje",
|
||||
"description": "Dostosuj swoje jednostki",
|
||||
"picker": {
|
||||
"header": "Dostosowywanie",
|
||||
"introduction": "Dostosuj atrybuty encji. Dodawane\/edytowane dostosowywania zostaną wprowadzone natychmiast. Usunięte dostosowania zostaną uwzględnione, gdy encja zostanie zaktualizowana."
|
||||
"introduction": "Ulepsz atrybuty poszczególnych jednostek. Dodane\/edytowane dostosowania zaczną obowiązywać natychmiast. Usunięte dostosowania zostaną zastosowane po zaktualizowaniu encji."
|
||||
}
|
||||
},
|
||||
"automation": {
|
||||
@ -475,7 +475,7 @@
|
||||
},
|
||||
"zone": {
|
||||
"label": "Strefa",
|
||||
"entity": "Encja z lokalizacją",
|
||||
"entity": "jednostka z lokalizacją",
|
||||
"zone": "Strefa",
|
||||
"event": "Zdarzenie:",
|
||||
"enter": "Wprowadź",
|
||||
@ -508,7 +508,7 @@
|
||||
"add": "Dodaj warunek",
|
||||
"duplicate": "Duplikuj",
|
||||
"delete": "Usuń",
|
||||
"delete_confirm": "Jesteś pewien, że chcesz usunąć?",
|
||||
"delete_confirm": "Czy chcesz usunąć?",
|
||||
"unsupported_condition": "Stan nieobsługiwany: {condition}",
|
||||
"type_select": "Typ warunku",
|
||||
"type": {
|
||||
@ -542,7 +542,7 @@
|
||||
},
|
||||
"zone": {
|
||||
"label": "Strefa",
|
||||
"entity": "Encja z lokalizacją",
|
||||
"entity": "Jednostka z lokalizacją",
|
||||
"zone": "Strefa"
|
||||
}
|
||||
},
|
||||
@ -629,13 +629,13 @@
|
||||
},
|
||||
"node_config": {
|
||||
"header": "Opcje konfiguracji węzła",
|
||||
"seconds": "sekund",
|
||||
"seconds": "sekundy",
|
||||
"set_wakeup": "Ustaw interwał wybudzenia",
|
||||
"config_parameter": "Parametr",
|
||||
"config_value": "Wartość",
|
||||
"true": "Prawda",
|
||||
"false": "Fałsz",
|
||||
"set_config_parameter": "Ustaw parametr"
|
||||
"set_config_parameter": "Ustaw parametr konfiguracji"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
@ -676,14 +676,14 @@
|
||||
"none": "Nic jeszcze nie zostało skonfigurowane",
|
||||
"config_entry": {
|
||||
"no_devices": "Ta integracja nie ma żadnych urządzeń.",
|
||||
"no_device": "Encje bez urządzeń",
|
||||
"no_device": "Jednostki bez urządzeń",
|
||||
"delete_confirm": "Czy na pewno chcesz usunąć tę integrację?",
|
||||
"restart_confirm": "Zrestartuj Home Assistant'a, aby zakończyć usuwanie tej integracji",
|
||||
"manuf": "przez: {manufacturer}",
|
||||
"via": "Połączony przez",
|
||||
"firmware": "Oprogramowanie: {version}",
|
||||
"device_unavailable": "urządzenie niedostępne",
|
||||
"entity_unavailable": "encja niedostępna",
|
||||
"entity_unavailable": "jednostka niedostępna",
|
||||
"no_area": "brak",
|
||||
"hub": "Połączony przez"
|
||||
},
|
||||
@ -734,20 +734,23 @@
|
||||
}
|
||||
},
|
||||
"entity_registry": {
|
||||
"caption": "Rejestr encji",
|
||||
"description": "Przegląd wszystkich znanych encji",
|
||||
"caption": "Rejestr jednostek",
|
||||
"description": "Przegląd wszystkich znanych jednostek.",
|
||||
"picker": {
|
||||
"header": "Rejestr encji",
|
||||
"unavailable": "(niedostępna)",
|
||||
"introduction": "Home Assistant prowadzi rejestr każdego podmiotu, jaki kiedykolwiek widział, i który można jednoznacznie zidentyfikować. Każda z tych jednostek będzie miała przypisany identyfikator podmiotu, który będzie zarezerwowany tylko dla tego podmiotu.",
|
||||
"introduction2": "Użyj rejestru jednostek, aby nadpisać nazwę, zmienić identyfikator jednostki lub usunąć wpis z Home Assistant. Uwaga: usunięcie wpisu rejestru jednostki nie spowoduje usunięcia encji. Aby to zrobić, kliknij poniższy link i usuń go ze strony integracji.",
|
||||
"header": "Rejestr jednostek",
|
||||
"unavailable": "(niedostępne)",
|
||||
"introduction": "Home Assistant prowadzi rejestr wszystkich jednostek, które kiedykolwiek widział, które można jednoznacznie zidentyfikować. Każda z tych jednostek będzie miała przypisany ID jednostki, który będzie zarezerwowany tylko dla tej jednostki.",
|
||||
"introduction2": "Użyj rejestru jednostek, aby zastąpić nazwę, zmienić ID jednostki lub usunąć wpis z Home Assistant. Uwaga usunięcie wpisu z rejestru jednostek nie spowoduje usunięcia jednostki. Aby to zrobić, kliknij poniższy link i usuń go ze strony integracji.",
|
||||
"integrations_page": "Strona integracji"
|
||||
},
|
||||
"editor": {
|
||||
"unavailable": "Ta encja nie jest obecnie dostępna.",
|
||||
"unavailable": "Ten jednostka nie jest obecnie dostępna.",
|
||||
"default_name": "Nowy obszar",
|
||||
"delete": "USUŃ",
|
||||
"update": "UAKTUALNIJ"
|
||||
"update": "UAKTUALNIJ",
|
||||
"enabled_label": "Włącz jednostkę",
|
||||
"enabled_cause": "Wyłączone przez {cause}.",
|
||||
"enabled_description": "Wyłączone jednostki nie zostaną dodane do Home Assistant."
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -772,13 +775,13 @@
|
||||
"invalid": "Konfiguracja nieprawidłowa"
|
||||
},
|
||||
"reloading": {
|
||||
"heading": "Przeładowanie konfiguracji",
|
||||
"introduction": "Niektóre części Home Assistant'a można przeładować bez konieczności ponownego uruchomienia. Kliknięcie przeładuj spowoduje ponowne wczytanie konfiguracji.",
|
||||
"core": "Przeładuj rdzeń",
|
||||
"group": "Przeładuj grupy",
|
||||
"automation": "Przeładuj automatyzacje",
|
||||
"script": "Przeładuj skrypty",
|
||||
"scene": "Przeładuj sceny"
|
||||
"heading": "Ponowne załadowanie konfiguracji",
|
||||
"introduction": "Niektóre części Home Assistant można przeładować bez konieczności ponownego uruchamiania. Naciśnięcie przycisku przeładowania spowoduje zwolnienie bieżącej konfiguracji i załadowanie nowej.",
|
||||
"core": "Załaduj ponownie rdzeń",
|
||||
"group": "Załaduj ponownie grupy",
|
||||
"automation": "Załaduj ponownie automatyzacje",
|
||||
"script": "Załaduj ponownie skrypty",
|
||||
"scene": "Załaduj ponownie sceny"
|
||||
},
|
||||
"server_management": {
|
||||
"heading": "Zarządzanie serwerem",
|
||||
@ -1038,7 +1041,7 @@
|
||||
},
|
||||
"save_config": {
|
||||
"header": "Przejmij kontrolę nad interfejsem użytkownika Lovelace",
|
||||
"para": "Domyślnie Home Assistant będzie zarządzać interfejsem użytkownika, aktualizując go, gdy pojawią się nowe encje lub komponenty Lovelace. Jeśli przejmiesz kontrolę, Home Assistant nie będzie już automatycznie wprowadzać dla ciebie zmian.",
|
||||
"para": "Domyślnie asystent domowy będzie utrzymywał interfejs użytkownika, aktualizując go, gdy pojawią się nowe elementy lub komponenty Lovelace. Jeśli przejmiesz kontrolę, nie będziemy już dokonywać zmian automatycznie.",
|
||||
"para_sure": "Czy na pewno chcesz przejąć kontrolę nad interfejsem użytkownika?",
|
||||
"cancel": "Nieważne",
|
||||
"save": "Przejmuję kontrolę"
|
||||
@ -1055,13 +1058,13 @@
|
||||
},
|
||||
"menu": {
|
||||
"configure_ui": "Konfiguracja interfejsu użytkownika",
|
||||
"unused_entities": "Nieużywane encje",
|
||||
"unused_entities": "Nieużywane jednostki",
|
||||
"help": "Pomoc",
|
||||
"refresh": "Odśwież"
|
||||
},
|
||||
"warning": {
|
||||
"entity_not_found": "Ta encja nie jest dostępna: {entity}",
|
||||
"entity_non_numeric": "Ta encja nie jest numeryczna: {entity}"
|
||||
"entity_not_found": "Ta jednostka jest niedostępna: {entity}",
|
||||
"entity_non_numeric": "Ta jednostka nie jest numeryczna: {entity}"
|
||||
},
|
||||
"changed_toast": {
|
||||
"message": "Zaktualizowano konfigurację Lovelace, czy chcesz odświeżyć?",
|
||||
@ -1246,7 +1249,7 @@
|
||||
"components": {
|
||||
"entity": {
|
||||
"entity-picker": {
|
||||
"entity": "Encja"
|
||||
"entity": "Jednostka"
|
||||
}
|
||||
},
|
||||
"service-picker": {
|
||||
@ -1280,7 +1283,7 @@
|
||||
"more_info_settings": {
|
||||
"save": "Zapisz",
|
||||
"name": "Nadpisanie nazwy",
|
||||
"entity_id": "Identyfikator encji"
|
||||
"entity_id": "ID jednostki"
|
||||
},
|
||||
"more_info_control": {
|
||||
"script": {
|
||||
@ -1300,8 +1303,13 @@
|
||||
"header": "Opcje"
|
||||
},
|
||||
"success": {
|
||||
"description": "Opcje zapisane pomyślnie."
|
||||
"description": "Opcje pomyślnie zapisane."
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "Opcje systemu",
|
||||
"enable_new_entities_label": "Włącz nowo dodane jednostki.",
|
||||
"enable_new_entities_description": "Jeśli wyłączone, nowo odkryte jednostki nie będą automatycznie dodawane do Home Assistant."
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1397,5 +1405,12 @@
|
||||
"system-admin": "Administratorzy",
|
||||
"system-users": "Użytkownicy",
|
||||
"system-read-only": "Użytkownicy (tylko odczyt)"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "Użytkownik",
|
||||
"integration": "Integracja",
|
||||
"config_entry": "Wpis konfiguracji"
|
||||
}
|
||||
}
|
||||
}
|
@ -749,7 +749,7 @@
|
||||
"delete": "УДАЛИТЬ",
|
||||
"update": "ОБНОВИТЬ",
|
||||
"enabled_label": "Включить объект",
|
||||
"enabled_cause": "Отключен {cause} .",
|
||||
"enabled_cause": "Отключен {cause}.",
|
||||
"enabled_description": "Отключенные объекты не будут добавлены в Home Assistant."
|
||||
}
|
||||
},
|
||||
@ -1063,7 +1063,7 @@
|
||||
"refresh": "Обновить"
|
||||
},
|
||||
"warning": {
|
||||
"entity_not_found": "Объект недоступен: {entity}",
|
||||
"entity_not_found": "Объект {entity} недоступен.",
|
||||
"entity_non_numeric": "Объект не является числом: {entity}"
|
||||
},
|
||||
"changed_toast": {
|
||||
|
@ -747,7 +747,10 @@
|
||||
"unavailable": "Ta entiteta trenutno ni na voljo.",
|
||||
"default_name": "Novo območje",
|
||||
"delete": "BRISANJE",
|
||||
"update": "POSODOBITEV"
|
||||
"update": "POSODOBITEV",
|
||||
"enabled_label": "Omogoči entiteto",
|
||||
"enabled_cause": "Onemogočeno zaradi {cause}.",
|
||||
"enabled_description": "Onemogočeni subjekti ne bodo dodani v Home Assistant-a."
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -1302,6 +1305,11 @@
|
||||
"success": {
|
||||
"description": "Možnosti so uspešno shranjene."
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "Sistemske možnosti",
|
||||
"enable_new_entities_label": "Omogočite novo dodane subjekte.",
|
||||
"enable_new_entities_description": "Če je onemogočeno, novo odkrite entitete ne bodo samodejno dodane v Home Assistant."
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1397,5 +1405,12 @@
|
||||
"system-admin": "Skrbniki",
|
||||
"system-users": "Uporabniki",
|
||||
"system-read-only": "Uporabniki \"samo za branje\""
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "Uporabnik",
|
||||
"integration": "Integracija",
|
||||
"config_entry": "Vnos konfiguracije"
|
||||
}
|
||||
}
|
||||
}
|
@ -747,7 +747,10 @@
|
||||
"unavailable": "Denna enhet är inte tillgänglig för tillfället.",
|
||||
"default_name": "Nytt område",
|
||||
"delete": "RADERA",
|
||||
"update": "UPPDATERA"
|
||||
"update": "UPPDATERA",
|
||||
"enabled_label": "Aktivera enhet",
|
||||
"enabled_cause": "Inaktiverad på grund av {cause}.",
|
||||
"enabled_description": "Inaktiverade enheter kommer ej läggas till i Home Assistant."
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -1302,6 +1305,11 @@
|
||||
"success": {
|
||||
"description": "Inställningar sparade"
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "Inställningar",
|
||||
"enable_new_entities_label": "Aktivera nyligen tillagda enheter.",
|
||||
"enable_new_entities_description": "Nyupptäckta enheter kommer ej läggas till automatiskt i Home Assistant om de är inaktiverade."
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1397,5 +1405,11 @@
|
||||
"system-admin": "Administratörer",
|
||||
"system-users": "Användare",
|
||||
"system-read-only": "Användare med läsbehörighet"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "Användare",
|
||||
"integration": "Integration"
|
||||
}
|
||||
}
|
||||
}
|
@ -747,7 +747,10 @@
|
||||
"unavailable": "該物件目前不可用。",
|
||||
"default_name": "新分區",
|
||||
"delete": "刪除",
|
||||
"update": "更新"
|
||||
"update": "更新",
|
||||
"enabled_label": "啟用物件",
|
||||
"enabled_cause": "由 {cause} 關閉。",
|
||||
"enabled_description": "關閉的物件將不會新增至 Home Assistant。"
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
@ -1302,6 +1305,11 @@
|
||||
"success": {
|
||||
"description": "選項已儲存。"
|
||||
}
|
||||
},
|
||||
"config_entry_system_options": {
|
||||
"title": "系統選項",
|
||||
"enable_new_entities_label": "啟用新增之物件。",
|
||||
"enable_new_entities_description": "關閉後,新發現的物件將不會自動新增至 Home Assistant。"
|
||||
}
|
||||
},
|
||||
"auth_store": {
|
||||
@ -1397,5 +1405,12 @@
|
||||
"system-admin": "管理員",
|
||||
"system-users": "用戶",
|
||||
"system-read-only": "唯讀用戶"
|
||||
},
|
||||
"config_entry": {
|
||||
"disabled_by": {
|
||||
"user": "使用者",
|
||||
"integration": "整合",
|
||||
"config_entry": "設定物件"
|
||||
}
|
||||
}
|
||||
}
|
@ -8639,7 +8639,7 @@ loader-utils@^0.2.16:
|
||||
json5 "^0.5.0"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
loader-utils@^1.0.2, loader-utils@^1.1.0:
|
||||
loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
|
||||
integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
|
||||
@ -14362,6 +14362,13 @@ worker-farm@^1.5.2:
|
||||
dependencies:
|
||||
errno "~0.1.7"
|
||||
|
||||
workerize-loader@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/workerize-loader/-/workerize-loader-1.1.0.tgz#d3a634390dcb685cc1ee292cd1fffeef0a646044"
|
||||
integrity sha512-cU2jPVE3AzzVxOonBe9lCCO//qwE9s/K4a9njFVRLueznzNDNND5vGHVorGuzK6xvamdDOZ9+g7CPIc7QKzucQ==
|
||||
dependencies:
|
||||
loader-utils "^1.2.3"
|
||||
|
||||
wrap-ansi@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
|
||||
|
Loading…
x
Reference in New Issue
Block a user