From a5bdf096dc129bd81c842d170eaae11a306b6d80 Mon Sep 17 00:00:00 2001 From: yosilevy <37745463+yosilevy@users.noreply.github.com> Date: Sat, 2 Feb 2019 07:33:26 +0200 Subject: [PATCH 1/6] Marked Arabic as RTL + added a bunch of lovelace menu entries to label files (#2650) * Marked Arabic as RTL + added a bunch of lovelace menu entries to label files * Refactor keys - added menus --- .../editor/card-editor/hui-edit-card.ts | 3 +-- src/panels/lovelace/hui-root.ts | 20 ++++++++++++++----- src/translations/en.json | 10 +++++++++- src/translations/translationMetadata.json | 3 ++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/panels/lovelace/editor/card-editor/hui-edit-card.ts b/src/panels/lovelace/editor/card-editor/hui-edit-card.ts index b11007465f..7c8998aa21 100644 --- a/src/panels/lovelace/editor/card-editor/hui-edit-card.ts +++ b/src/panels/lovelace/editor/card-editor/hui-edit-card.ts @@ -453,8 +453,7 @@ export class HuiEditCard extends LitElement { flex: auto; } .content hui-card-preview { - margin-top: 0; - margin-left: 24px; + margin: 0 24px; flex: 490px; max-width: 490px; } diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts index 37e839cc83..043c61e784 100644 --- a/src/panels/lovelace/hui-root.ts +++ b/src/panels/lovelace/hui-root.ts @@ -168,7 +168,9 @@ class HUIRoot extends LitElement { slot="dropdown-content" > Raw config editor${this.hass!.localize( + "ui.panel.lovelace.editor.menu.raw_editor" + )} @@ -206,19 +208,27 @@ class HUIRoot extends LitElement { ${this._yamlMode ? html` Refresh${this.hass!.localize( + "ui.panel.lovelace.menu.refresh" + )} ` : ""} Unused entities${this.hass!.localize( + "ui.panel.lovelace.menu.unused_entities" + )} ${this.hass!.localize( - "ui.panel.lovelace.editor.configure_ui" + "ui.panel.lovelace.menu.configure_ui" + )} + ${this.hass!.localize( + "ui.panel.lovelace.menu.help" )} - Help diff --git a/src/translations/en.json b/src/translations/en.json index 778a4258d4..6f92dbc9ba 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -823,9 +823,17 @@ "add_item": "Add item" } }, + "menu": { + "configure_ui": "Configure UI", + "unused_entities": "Unused entities", + "help": "Help", + "refresh": "Refresh" + }, "editor": { "header": "Edit UI", - "configure_ui": "Configure UI", + "menu": { + "raw_editor": "Raw config editor" + }, "edit_view": { "header": "View Configuration", "add": "Add view", diff --git a/src/translations/translationMetadata.json b/src/translations/translationMetadata.json index 3ea02c95d4..2a1c2db7b4 100644 --- a/src/translations/translationMetadata.json +++ b/src/translations/translationMetadata.json @@ -1,6 +1,7 @@ { "ar": { - "nativeName": "العربية" + "nativeName": "العربية", + "isRTL": true }, "bg": { "nativeName": "Български" From 4921686bdf109f20d2e5d78f55cf381942f1187b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 2 Feb 2019 09:42:22 -0800 Subject: [PATCH 2/6] Hash translation files (#2652) * Hash translation files * Fix rebuild while develop runs --- gulp/tasks/translations.js | 32 ++++++++++++++++++++++++-------- package.json | 1 + yarn.lock | 5 +++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/gulp/tasks/translations.js b/gulp/tasks/translations.js index 6aa81b5012..898ee60cff 100755 --- a/gulp/tasks/translations.js +++ b/gulp/tasks/translations.js @@ -1,20 +1,27 @@ +const del = require("del"); const path = require("path"); const gulp = require("gulp"); const foreach = require("gulp-foreach"); const hash = require("gulp-hash"); +const hashFilename = require("gulp-hash-filename"); const merge = require("gulp-merge-json"); const minify = require("gulp-jsonminify"); const rename = require("gulp-rename"); const transform = require("gulp-json-transform"); -const isDemo = process.env.DEMO === "1"; - const inDir = "translations"; const workDir = "build-translations"; const fullDir = workDir + "/full"; const coreDir = workDir + "/core"; const outDir = workDir + "/output"; +String.prototype.rsplit = function(sep, maxsplit) { + var split = this.split(sep); + return maxsplit + ? [split.slice(0, -maxsplit).join(sep)].concat(split.slice(-maxsplit)) + : split; +}; + // Panel translations which should be split from the core translations. These // should mirror the fragment definitions in polymer.json, so that we load // additional resources at equivalent points. @@ -95,6 +102,12 @@ function lokalise_transform(data, original) { return output; } +let taskName = "clean-translations"; +gulp.task(taskName, function() { + return del([`${outDir}/**/*.json`]); +}); +tasks.push(taskName); + /** * This task will build a master translation file, to be used as the base for * all languages. This starts with src/translations/en.json, and replaces all @@ -104,8 +117,8 @@ function lokalise_transform(data, original) { * project is buildable immediately after merging new translation keys, since * the Lokalise update to translations/en.json will not happen immediately. */ -let taskName = "build-master-translation"; -gulp.task(taskName, function() { +taskName = "build-master-translation"; +gulp.task(taskName, ["clean-translations"], function() { return gulp .src("src/translations/en.json") .pipe( @@ -207,6 +220,7 @@ gulp.task(taskName, splitTasks, function() { }) ) .pipe(minify()) + .pipe(hashFilename()) .pipe( rename((filePath) => { if (filePath.dirname === "core") { @@ -231,7 +245,7 @@ gulp.task(taskName, ["build-flattened-translations"], function() { hash({ algorithm: "md5", hashLength: 32, - template: isDemo ? "<%= name %>.json" : "<%= name %>-<%= hash %>.json", + template: "<%= name %>.json", }) ) .pipe(hash.manifest("translationFingerprints.json")) @@ -241,8 +255,10 @@ gulp.task(taskName, ["build-flattened-translations"], function() { // all translation fragment fingerprints under the translation name key const newData = {}; Object.entries(data).forEach(([key, value]) => { - const parts = key.split("/"); - let translation = key; + const [path, _md5] = key.rsplit("-", 1); + // let translation = key; + let translation = path; + const parts = translation.split("/"); if (parts.length === 2) { translation = parts[1]; } @@ -251,7 +267,7 @@ gulp.task(taskName, ["build-flattened-translations"], function() { fingerprints: {}, }; } - newData[translation].fingerprints[key] = value; + newData[translation].fingerprints[path] = value; }); return newData; }) diff --git a/package.json b/package.json index 91464b3481..17c029fdaf 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "es6-object-assign": "^1.1.0", "eslint-import-resolver-webpack": "^0.10.1", "fecha": "^3.0.0", + "gulp-hash-filename": "^2.0.1", "home-assistant-js-websocket": "^3.2.4", "intl-messageformat": "^2.2.0", "jquery": "^3.3.1", diff --git a/yarn.lock b/yarn.lock index c054a8417e..a0aebc0d47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7019,6 +7019,11 @@ gulp-foreach@^0.1.0: gulp-util "~2.2.14" through2 "~0.6.3" +gulp-hash-filename@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gulp-hash-filename/-/gulp-hash-filename-2.0.1.tgz#c30656261a9b622d636766e48b8297125b4ddde8" + integrity sha512-pMg5owb8Dt0wqjgPx/TFbU3c5ckD16rrgo0BTm9PQ3pVC1Zsgw7AYx1+DP2t31JoUTeN1/dPuXNWnCNvN/wj7A== + gulp-hash@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/gulp-hash/-/gulp-hash-4.2.2.tgz#2cf4ad081ef7a65393a51e3df58f514f388f4523" From 79183bb6ea3f41e62581d4575792a877d04aa266 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 2 Feb 2019 13:23:48 -0800 Subject: [PATCH 3/6] Cleanups (#2658) * Import voice dialog only when needed * Import ha-sidebar when we have first painted the page. * Add css on LitElement for custom cards * Import polyfill on first update * Cleanup of imports * TS conversion more info mixin * Migrate auth mixin to TS * Lint --- src/components/ha-start-voice-button.js | 7 +++- src/data/ws-user.ts | 16 +++---- src/dialogs/ha-voice-command-dialog.js | 4 ++ src/entrypoints/app.js | 10 ----- src/layouts/app/auth-mixin.js | 44 -------------------- src/layouts/app/auth-mixin.ts | 55 +++++++++++++++++++++++++ src/layouts/app/home-assistant.ts | 5 ++- src/layouts/app/more-info-mixin.js | 23 ----------- src/layouts/app/more-info-mixin.ts | 34 +++++++++++++++ src/layouts/home-assistant-main.ts | 13 +----- 10 files changed, 110 insertions(+), 101 deletions(-) delete mode 100644 src/layouts/app/auth-mixin.js create mode 100644 src/layouts/app/auth-mixin.ts delete mode 100644 src/layouts/app/more-info-mixin.js create mode 100644 src/layouts/app/more-info-mixin.ts diff --git a/src/components/ha-start-voice-button.js b/src/components/ha-start-voice-button.js index f7a976e115..0b31b83030 100644 --- a/src/components/ha-start-voice-button.js +++ b/src/components/ha-start-voice-button.js @@ -5,6 +5,7 @@ import { PolymerElement } from "@polymer/polymer/polymer-element"; import EventsMixin from "../mixins/events-mixin"; import isComponentLoaded from "../common/config/is_component_loaded"; +import { fireEvent } from "../common/dom/fire_event"; /* * @appliesMixin EventsMixin @@ -43,7 +44,11 @@ class HaStartVoiceButton extends EventsMixin(PolymerElement) { } handleListenClick() { - this.fire("hass-start-voice"); + fireEvent(this, "show-dialog", { + dialogImport: () => + import(/* webpackChunkName: "voice-command-dialog" */ "../dialogs/ha-voice-command-dialog"), + dialogTag: "ha-voice-command-dialog", + }); } } diff --git a/src/data/ws-user.ts b/src/data/ws-user.ts index e627c20673..66be784eb8 100644 --- a/src/data/ws-user.ts +++ b/src/data/ws-user.ts @@ -1,20 +1,14 @@ import { - createCollection, getUser, Connection, + getCollection, } from "home-assistant-js-websocket"; import { User } from "../types"; +export const userCollection = (conn: Connection) => + getCollection(conn, "_usr", () => getUser(conn) as Promise, undefined); + export const subscribeUser = ( conn: Connection, onChange: (user: User) => void -) => - createCollection( - "_usr", - // the getUser command is mistyped in current verrsion of HAWS. - // Fixed in 3.2.5 - () => (getUser(conn) as unknown) as Promise, - undefined, - conn, - onChange - ); +) => userCollection(conn).subscribe(onChange); diff --git a/src/dialogs/ha-voice-command-dialog.js b/src/dialogs/ha-voice-command-dialog.js index c033c0dfd7..911934784e 100644 --- a/src/dialogs/ha-voice-command-dialog.js +++ b/src/dialogs/ha-voice-command-dialog.js @@ -159,6 +159,10 @@ class HaVoiceCommandDialog extends DialogMixin(PolymerElement) { return ["dialogOpenChanged(opened)"]; } + showDialog() { + this.opened = true; + } + initRecognition() { /* eslint-disable new-cap */ this.recognition = new webkitSpeechRecognition(); diff --git a/src/entrypoints/app.js b/src/entrypoints/app.js index 12dc9c588a..b53f611074 100644 --- a/src/entrypoints/app.js +++ b/src/entrypoints/app.js @@ -1,9 +1,6 @@ // Load polyfill first so HTML imports start resolving /* eslint-disable import/first */ import "../resources/html-import/polyfill"; -import "@polymer/app-route/app-location"; -import "@polymer/app-route/app-route"; -import "@polymer/iron-flex-layout/iron-flex-layout-classes"; import "@polymer/paper-styles/typography"; import { setPassiveTouchGestures } from "@polymer/polymer/lib/utils/settings"; @@ -16,13 +13,6 @@ import "../components/ha-iconset-svg"; import "../layouts/app/home-assistant"; -/* polyfill for paper-dropdown */ -setTimeout( - () => - import(/* webpackChunkName: "polyfill-web-animations-next" */ "web-animations-js/web-animations-next-lite.min"), - 2000 -); - setPassiveTouchGestures(true); /* LastPass createElement workaround. See #428 */ document.createElement = Document.prototype.createElement; diff --git a/src/layouts/app/auth-mixin.js b/src/layouts/app/auth-mixin.js deleted file mode 100644 index 22b5e8273f..0000000000 --- a/src/layouts/app/auth-mixin.js +++ /dev/null @@ -1,44 +0,0 @@ -import { afterNextRender } from "@polymer/polymer/lib/utils/render-status"; -import { getUser } from "home-assistant-js-websocket"; -import { clearState } from "../../util/ha-pref-storage"; -import { askWrite } from "../../common/auth/token_storage"; -import { subscribeUser } from "../../data/ws-user"; - -export default (superClass) => - class extends superClass { - firstUpdated(changedProps) { - super.firstUpdated(changedProps); - this.addEventListener("hass-logout", () => this._handleLogout()); - // HACK :( We don't have a way yet to trigger an update of `subscribeUser` - this.addEventListener("hass-refresh-current-user", () => - getUser(this.hass.connection).then((user) => this._updateHass({ user })) - ); - } - - hassConnected() { - super.hassConnected(); - subscribeUser(this.hass.connection, (user) => this._updateHass({ user })); - - afterNextRender(null, () => { - if (askWrite()) { - const el = document.createElement("ha-store-auth-card"); - this.shadowRoot.appendChild(el); - this.provideHass(el); - import(/* webpackChunkName: "ha-store-auth-card" */ "../../dialogs/ha-store-auth-card"); - } - }); - } - - async _handleLogout() { - try { - await this.hass.auth.revoke(); - this.hass.connection.close(); - clearState(); - document.location.href = "/"; - } catch (err) { - // eslint-disable-next-line - console.error(err); - alert("Log out failed"); - } - } - }; diff --git a/src/layouts/app/auth-mixin.ts b/src/layouts/app/auth-mixin.ts new file mode 100644 index 0000000000..2fa5d3bf1f --- /dev/null +++ b/src/layouts/app/auth-mixin.ts @@ -0,0 +1,55 @@ +import { clearState } from "../../util/ha-pref-storage"; +import { askWrite } from "../../common/auth/token_storage"; +import { subscribeUser, userCollection } from "../../data/ws-user"; +import { Constructor, LitElement } from "lit-element"; +import { HassBaseEl } from "./hass-base-mixin"; + +declare global { + // for fire event + interface HASSDomEvents { + "hass-refresh-current-user": undefined; + } +} + +export default (superClass: Constructor) => + class extends superClass { + protected firstUpdated(changedProps) { + super.firstUpdated(changedProps); + this.addEventListener("hass-logout", () => this._handleLogout()); + this.addEventListener("hass-refresh-current-user", () => { + userCollection(this.hass!.connection).refresh(); + }); + } + + protected hassConnected() { + super.hassConnected(); + subscribeUser(this.hass!.connection, (user) => + this._updateHass({ user }) + ); + + if (askWrite()) { + this.updateComplete + .then(() => + import(/* webpackChunkName: "ha-store-auth-card" */ "../../dialogs/ha-store-auth-card") + ) + .then(() => { + const el = document.createElement("ha-store-auth-card"); + this.shadowRoot!.appendChild(el); + this.provideHass(el); + }); + } + } + + private async _handleLogout() { + try { + await this.hass!.auth.revoke(); + this.hass!.connection.close(); + clearState(); + document.location.href = "/"; + } catch (err) { + // tslint:disable-next-line + console.error(err); + alert("Log out failed"); + } + } + }; diff --git a/src/layouts/app/home-assistant.ts b/src/layouts/app/home-assistant.ts index 46fc89a84f..6f5fc8a8b0 100644 --- a/src/layouts/app/home-assistant.ts +++ b/src/layouts/app/home-assistant.ts @@ -1,10 +1,10 @@ import "@polymer/app-route/app-location"; -import "@polymer/iron-flex-layout/iron-flex-layout-classes"; import { html, LitElement, PropertyDeclarations, PropertyValues, + css, } from "lit-element"; import "../home-assistant-main"; @@ -27,6 +27,7 @@ import { Route, HomeAssistant } from "../../types"; import { navigate } from "../../common/navigate"; (LitElement.prototype as any).html = html; +(LitElement.prototype as any).css = css; const ext = (baseClass: T, mixins): T => mixins.reduceRight((base, mixin) => mixin(base), baseClass); @@ -82,6 +83,8 @@ export class HomeAssistantAppEl extends ext(HassBaseMixin(LitElement), [ protected firstUpdated(changedProps) { super.firstUpdated(changedProps); setTimeout(registerServiceWorker, 1000); + /* polyfill for paper-dropdown */ + import(/* webpackChunkName: "polyfill-web-animations-next" */ "web-animations-js/web-animations-next-lite.min"); } protected updated(changedProps: PropertyValues): void { diff --git a/src/layouts/app/more-info-mixin.js b/src/layouts/app/more-info-mixin.js deleted file mode 100644 index 276d2f7e64..0000000000 --- a/src/layouts/app/more-info-mixin.js +++ /dev/null @@ -1,23 +0,0 @@ -import { afterNextRender } from "@polymer/polymer/lib/utils/render-status"; - -export default (superClass) => - class extends superClass { - firstUpdated(changedProps) { - super.firstUpdated(changedProps); - this.addEventListener("hass-more-info", (e) => this._handleMoreInfo(e)); - - // Load it once we are having the initial rendering done. - afterNextRender(null, () => - import(/* webpackChunkName: "more-info-dialog" */ "../../dialogs/ha-more-info-dialog") - ); - } - - async _handleMoreInfo(ev) { - if (!this.__moreInfoEl) { - this.__moreInfoEl = document.createElement("ha-more-info-dialog"); - this.shadowRoot.appendChild(this.__moreInfoEl); - this.provideHass(this.__moreInfoEl); - } - this._updateHass({ moreInfoEntityId: ev.detail.entityId }); - } - }; diff --git a/src/layouts/app/more-info-mixin.ts b/src/layouts/app/more-info-mixin.ts new file mode 100644 index 0000000000..c4a3d8fed5 --- /dev/null +++ b/src/layouts/app/more-info-mixin.ts @@ -0,0 +1,34 @@ +import { Constructor, LitElement } from "lit-element"; + +import { HassBaseEl } from "./hass-base-mixin"; + +declare global { + // for fire event + interface HASSDomEvents { + "hass-more-info": { + entityId: string; + }; + } +} + +export default (superClass: Constructor) => + class extends superClass { + private _moreInfoEl?: any; + + protected firstUpdated(changedProps) { + super.firstUpdated(changedProps); + this.addEventListener("hass-more-info", (e) => this._handleMoreInfo(e)); + + // Load it once we are having the initial rendering done. + import(/* webpackChunkName: "more-info-dialog" */ "../../dialogs/ha-more-info-dialog"); + } + + private async _handleMoreInfo(ev) { + if (!this._moreInfoEl) { + this._moreInfoEl = document.createElement("ha-more-info-dialog"); + this.shadowRoot!.appendChild(this._moreInfoEl); + this.provideHass(this._moreInfoEl); + } + this._updateHass({ moreInfoEntityId: ev.detail.entityId }); + } + }; diff --git a/src/layouts/home-assistant-main.ts b/src/layouts/home-assistant-main.ts index 2e6c8a5dc6..bd26de067a 100644 --- a/src/layouts/home-assistant-main.ts +++ b/src/layouts/home-assistant-main.ts @@ -22,9 +22,6 @@ import { HomeAssistant, Route } from "../types"; import { fireEvent } from "../common/dom/fire_event"; import { PolymerChangedEvent } from "../polymer-types"; -import(/* webpackChunkName: "ha-sidebar" */ "../components/ha-sidebar"); -import(/* webpackChunkName: "voice-command-dialog" */ "../dialogs/ha-voice-command-dialog"); - const NON_SWIPABLE_PANELS = ["kiosk", "map"]; class HomeAssistantMain extends LitElement { @@ -51,7 +48,6 @@ class HomeAssistantMain extends LitElement { return html` - { if (this._narrow) { this.drawer.open(); @@ -97,9 +95,6 @@ class HomeAssistantMain extends LitElement { fireEvent(this, "hass-dock-sidebar", { dock: false }); } }); - this.addEventListener("hass-start-voice", () => { - (this.voiceDialog as any).opened = true; - }); } protected updated(changedProps: PropertyValues) { @@ -125,10 +120,6 @@ class HomeAssistantMain extends LitElement { return this.shadowRoot!.querySelector("app-drawer")!; } - private get voiceDialog() { - return this.shadowRoot!.querySelector("ha-voice-command-dialog")!; - } - static get styles(): CSSResult { return css` :host { From 86b353e627587e7cc89cd17f47961d205226e376 Mon Sep 17 00:00:00 2001 From: yosilevy <37745463+yosilevy@users.noreply.github.com> Date: Sat, 2 Feb 2019 23:36:33 +0200 Subject: [PATCH 4/6] History+logbook positioning update + RTL fixes + label refactor (#2659) --- src/panels/history/ha-panel-history.js | 20 ++++++++++++++++++++ src/panels/logbook/ha-panel-logbook.js | 18 ++++++++++++++++++ src/translations/en.json | 3 ++- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/panels/history/ha-panel-history.js b/src/panels/history/ha-panel-history.js index d83f0ecde3..a09ee7bf8f 100644 --- a/src/panels/history/ha-panel-history.js +++ b/src/panels/history/ha-panel-history.js @@ -18,6 +18,7 @@ import "../../resources/ha-style"; import formatDate from "../../common/datetime/format_date"; import LocalizeMixin from "../../mixins/localize-mixin"; +import { computeRTL } from "../../common/util/compute_rtl"; /* * @appliesMixin LocalizeMixin @@ -37,6 +38,15 @@ class HaPanelHistory extends LocalizeMixin(PolymerElement) { paper-dropdown-menu { max-width: 100px; + margin-top: 13px; + margin-right: 16px; + --paper-input-container-label-floating: { + padding-bottom: 10px; + } + } + + :host([rtl]) paper-dropdown-menu { + text-align: right; } paper-item { @@ -158,6 +168,12 @@ class HaPanelHistory extends LocalizeMixin(PolymerElement) { type: String, value: "date", }, + + rtl: { + type: Boolean, + reflectToAttribute: true, + computed: "_computeRTL(hass)", + }, }; } @@ -198,6 +214,10 @@ class HaPanelHistory extends LocalizeMixin(PolymerElement) { return 1; } } + + _computeRTL(hass) { + return computeRTL(hass); + } } customElements.define("ha-panel-history", HaPanelHistory); diff --git a/src/panels/logbook/ha-panel-logbook.js b/src/panels/logbook/ha-panel-logbook.js index 1612548882..aa7ecdebe1 100644 --- a/src/panels/logbook/ha-panel-logbook.js +++ b/src/panels/logbook/ha-panel-logbook.js @@ -18,6 +18,7 @@ import "./ha-logbook"; import formatDate from "../../common/datetime/format_date"; import LocalizeMixin from "../../mixins/localize-mixin"; +import { computeRTL } from "../../common/util/compute_rtl"; /* * @appliesMixin LocalizeMixin @@ -52,6 +53,13 @@ class HaPanelLogbook extends LocalizeMixin(PolymerElement) { paper-dropdown-menu { max-width: 100px; margin-right: 16px; + --paper-input-container-label-floating: { + padding-bottom: 10px; + } + } + + :host([rtl]) paper-dropdown-menu { + text-align: right; } paper-item { @@ -205,6 +213,12 @@ class HaPanelLogbook extends LocalizeMixin(PolymerElement) { datePicker: { type: Object, }, + + rtl: { + type: Boolean, + reflectToAttribute: true, + computed: "_computeRTL(hass)", + }, }; } @@ -242,6 +256,10 @@ class HaPanelLogbook extends LocalizeMixin(PolymerElement) { refreshLogbook() { this.shadowRoot.querySelector("ha-logbook-data").refreshLogbook(); } + + _computeRTL(hass) { + return computeRTL(hass); + } } customElements.define("ha-panel-logbook", HaPanelLogbook); diff --git a/src/translations/en.json b/src/translations/en.json index 6f92dbc9ba..bac990dfb5 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -808,7 +808,8 @@ "period": "Period" }, "logbook": { - "showing_entries": "[%key:ui::panel::history::showing_entries%]" + "showing_entries": "[%key:ui::panel::history::showing_entries%]", + "period": "Period" }, "lovelace": { "cards": { From 72aa98fe5c20fc62ef9d36095460f06517ad7f4d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 2 Feb 2019 13:49:25 -0800 Subject: [PATCH 5/6] Update translations --- translations/bg.json | 4 +++- translations/ca.json | 35 ++++++++++++++++++++++++--- translations/cs.json | 4 +++- translations/da.json | 4 +++- translations/de.json | 4 +++- translations/el.json | 4 +++- translations/en.json | 7 ++++-- translations/es.json | 4 +++- translations/et.json | 4 +++- translations/fi.json | 4 +++- translations/fr.json | 4 +++- translations/he.json | 50 ++++++++++++++++++++++++++++++++++++++- translations/hr.json | 4 +++- translations/hu.json | 4 +++- translations/it.json | 4 +++- translations/ko.json | 4 +++- translations/lb.json | 4 +++- translations/lv.json | 4 +++- translations/nb.json | 4 +++- translations/nl.json | 4 +++- translations/nn.json | 4 +++- translations/pl.json | 4 +++- translations/pt-BR.json | 4 +++- translations/pt.json | 4 +++- translations/ro.json | 3 ++- translations/ru.json | 4 +++- translations/sk.json | 4 +++- translations/sl.json | 4 +++- translations/sv.json | 46 ++++++++++++++++++++++++++++------- translations/tr.json | 4 +++- translations/uk.json | 4 +++- translations/zh-Hans.json | 4 +++- translations/zh-Hant.json | 4 +++- 33 files changed, 210 insertions(+), 43 deletions(-) diff --git a/translations/bg.json b/translations/bg.json index 9462e4a6e4..6d8a1f0202 100644 --- a/translations/bg.json +++ b/translations/bg.json @@ -753,7 +753,6 @@ "migrate": "Мигриране на конфигурация" }, "header": "Редактиране на потребителския интерфейс", - "configure_ui": "Конфигуриране на потребителския интерфейс", "edit_view": { "header": "Конфигурация на изглед", "add": "Добавяне на изглед", @@ -767,6 +766,9 @@ "cancel": "Няма значение", "save": "Поемете контрола" } + }, + "menu": { + "configure_ui": "Конфигуриране на потребителския интерфейс" } } }, diff --git a/translations/ca.json b/translations/ca.json index 25a8a191cf..4e1ac7db7f 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -433,6 +433,14 @@ "hours": "Hores", "minutes": "Minuts", "seconds": "Segons" + }, + "geo_location": { + "label": "Geolocalització", + "source": "Font", + "zone": "Zona", + "event": "Esdeveniment:", + "enter": "Entrar", + "leave": "Sortir" } } }, @@ -565,7 +573,18 @@ }, "zha": { "caption": "ZHA", - "description": "Gestiona la xarxa domòtica ZIgbee" + "description": "Gestiona la xarxa domòtica ZIgbee", + "services": { + "reconfigure": "Reconfigura el dispositiu ZHA (dispositiu curatiu). Utilitza-ho si tens problemes amb el dispositiu. Si el dispositiu en qüestió està alimentat per bateria, assegura't que estigui despert i accepti ordres quan utilitzis aquest servei." + } + }, + "area_registry": { + "caption": "Registre d'àrees", + "description": "Visió general de totes les àrees de la casa." + }, + "entity_registry": { + "caption": "Registre d'entitats", + "description": "Visió general de totes les entitats conegudes." } }, "profile": { @@ -734,6 +753,11 @@ "checked_items": "Articles seleccionats", "clear_items": "Esborrar els articles seleccionats", "add_item": "Afegir element" + }, + "empty_state": { + "title": "Benvingut\/da a casa", + "no_devices": "Aquesta pàgina et permet controlar els teus dispositius, però sembla que encara no en tens cap configurat. Vés a la pàgina d'integracions per començar.", + "go_to_integrations_page": "Vés a la pàgina d'integracions." } }, "editor": { @@ -753,7 +777,6 @@ "migrate": "Migrar la configuració" }, "header": "Editar la interfície d'usuari (UI)", - "configure_ui": "Configurar la interfície d'usuari", "edit_view": { "header": "Configuració de la visualització", "add": "Afegeix visualització", @@ -767,6 +790,9 @@ "cancel": "M'ho he repensat", "save": "Prendre el control" } + }, + "menu": { + "configure_ui": "Configurar la interfície d'usuari" } } }, @@ -999,7 +1025,10 @@ "weblink": "Enllaços web", "zwave": "Z-Wave", "vacuum": "Aspiradora", - "zha": "ZHA" + "zha": "ZHA", + "hassio": "Hass.io", + "homeassistant": "Home Assistant", + "lovelace": "Lovelace" }, "attribute": { "weather": { diff --git a/translations/cs.json b/translations/cs.json index 7c9b423aad..1aa8ddb202 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -743,7 +743,6 @@ "migrate": "Migrovat konfiguraci" }, "header": "Upravit UI", - "configure_ui": "Konfigurovat UI", "edit_view": { "header": "Zobrazit konfiguraci", "add": "Přidat pohled", @@ -757,6 +756,9 @@ "cancel": "Zahodit změnu", "save": "Převzít kontrolu" } + }, + "menu": { + "configure_ui": "Konfigurovat UI" } } }, diff --git a/translations/da.json b/translations/da.json index 81a71557eb..7b1e550f7d 100644 --- a/translations/da.json +++ b/translations/da.json @@ -743,7 +743,6 @@ "migrate": "Migrer opsætning" }, "header": "Rediger UI", - "configure_ui": "Konfigurer UI", "edit_view": { "header": "Vis konfiguration", "add": "Tilføje visning", @@ -757,6 +756,9 @@ "cancel": "Glem det", "save": "tag kontrol" } + }, + "menu": { + "configure_ui": "Konfigurer UI" } } }, diff --git a/translations/de.json b/translations/de.json index da9d7d05f9..f716c40018 100644 --- a/translations/de.json +++ b/translations/de.json @@ -753,7 +753,6 @@ "migrate": "Konfiguration migrieren" }, "header": "Benutzeroberfläche bearbeiten", - "configure_ui": "Benutzeroberfläche konfigurieren", "edit_view": { "header": "Konfiguration anzeigen", "add": "Ansicht hinzufügen", @@ -767,6 +766,9 @@ "cancel": "Abbrechen", "save": "Kontrolle übernehmen" } + }, + "menu": { + "configure_ui": "Benutzeroberfläche konfigurieren" } } }, diff --git a/translations/el.json b/translations/el.json index 9ee342e9a8..5e5e7b7cb4 100644 --- a/translations/el.json +++ b/translations/el.json @@ -753,7 +753,6 @@ "migrate": "Ρυθμίσεις μετεγκατάστασης" }, "header": "Επεξεργασία περιβάλλοντος χρήστη", - "configure_ui": "Διαμορφώστε το περιβάλλον χρήστη", "edit_view": { "header": "Ρυθμίσεις", "add": "Προσθήκη προβολής", @@ -767,6 +766,9 @@ "cancel": "Δεν πειράζει", "save": "Πάρτε τον έλεγχο" } + }, + "menu": { + "configure_ui": "Διαμορφώστε το περιβάλλον χρήστη" } } }, diff --git a/translations/en.json b/translations/en.json index 06a46bed0f..84aae10969 100644 --- a/translations/en.json +++ b/translations/en.json @@ -777,7 +777,6 @@ "migrate": "Migrate config" }, "header": "Edit UI", - "configure_ui": "Configure UI", "edit_view": { "header": "View Configuration", "add": "Add view", @@ -791,6 +790,9 @@ "cancel": "Never mind", "save": "Take control" } + }, + "menu": { + "configure_ui": "Configure UI" } } }, @@ -1026,7 +1028,8 @@ "zha": "ZHA", "hassio": "Hass.io", "homeassistant": "Home Assistant", - "lovelace": "Lovelace" + "lovelace": "Lovelace", + "system_health": "System Health" }, "attribute": { "weather": { diff --git a/translations/es.json b/translations/es.json index e6fd121ba5..977ee77bf4 100644 --- a/translations/es.json +++ b/translations/es.json @@ -753,7 +753,6 @@ "migrate": "Migrar configuración" }, "header": "Editar la interfaz de usuario", - "configure_ui": "Configurar la interfaz de usuario", "edit_view": { "header": "Ver configuración", "add": "Añadir vista", @@ -767,6 +766,9 @@ "cancel": "No importa", "save": "Tomar el control" } + }, + "menu": { + "configure_ui": "Configurar la interfaz de usuario" } } }, diff --git a/translations/et.json b/translations/et.json index ed092bfc18..acea505b39 100644 --- a/translations/et.json +++ b/translations/et.json @@ -737,13 +737,15 @@ "delete": "Kustuta" }, "header": "Muuda kasutajaliidest", - "configure_ui": "Seadista kasutajaliidest", "edit_view": { "header": "Vaata seadeid", "add": "Lisa vaade", "edit": "Muuda vaadet", "delete": "Kustuta vaade" } + }, + "menu": { + "configure_ui": "Seadista kasutajaliidest" } } }, diff --git a/translations/fi.json b/translations/fi.json index 598dad7849..3fbafb6dd3 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -741,7 +741,6 @@ "migrate": "Tuo vanhat asetukset" }, "header": "Muokkaa käyttöliittymää", - "configure_ui": "Määrittele käyttöliittymä", "edit_view": { "header": "Näytä asetukset", "add": "Lisää näkymä", @@ -755,6 +754,9 @@ "cancel": "Antaa olla", "save": "Ota hallintaan" } + }, + "menu": { + "configure_ui": "Määrittele käyttöliittymä" } } }, diff --git a/translations/fr.json b/translations/fr.json index 61ec41b754..07d65addcb 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -749,7 +749,6 @@ "migrate": "Migrer la configuration" }, "header": "Modifier l'interface utilisateur", - "configure_ui": "Configurer l'interface utilisateur", "edit_view": { "header": "Voir la configuration", "add": "Ajouter la vue", @@ -763,6 +762,9 @@ "cancel": "Oublie ce que j'ai dit, c'est pas grave.", "save": "Prenez le contrôle" } + }, + "menu": { + "configure_ui": "Configurer l'interface utilisateur" } } }, diff --git a/translations/he.json b/translations/he.json index 79f3282b9c..78e30fb999 100644 --- a/translations/he.json +++ b/translations/he.json @@ -427,6 +427,20 @@ "webhook": { "label": "Webhook", "webhook_id": "Webhook ID" + }, + "time_pattern": { + "label": "תבנית זמן", + "hours": "שעות", + "minutes": "דקות", + "seconds": "שניות" + }, + "geo_location": { + "label": "מיקום גיאוגרפי", + "source": "מקור", + "zone": "אזור", + "event": "אירוע:", + "enter": "כניסה", + "leave": "יציאה" } } }, @@ -556,6 +570,20 @@ "device_unavailable": "התקן אינו זמין", "entity_unavailable": "ישות לא זמינה" } + }, + "zha": { + "description": "ניהול רשת Zigbee לאוטומציה ביתית", + "services": { + "reconfigure": "התקן מחדש את התקן ה ZHA. השתמש באפשרות זו אם אתה נתקל בבעיות בהתקן. אם ההתקן המדובר הוא התקן המופעל באמצעות סוללות, ודא שהוא ער ויכול לקבל פקודות בעת שימוש בשירות זה." + } + }, + "area_registry": { + "caption": "מאגר האזורים", + "description": "סקירה של כל האזורים בביתך." + }, + "entity_registry": { + "caption": "מאגר הישויות", + "description": "סקירה של כל הישויות המוכרות" } }, "profile": { @@ -724,6 +752,11 @@ "checked_items": "פריטים מסומנים", "clear_items": "נקה פריטים מסומנים", "add_item": "הוסף פריט" + }, + "empty_state": { + "title": "ברוך הבא הביתה", + "no_devices": "דף זה מאפשר לך לשלוט במכשירים שלך, אך נראה שעדיין לא הוגדרו מכשירים. עבור אל דף האינטגרציות כדי להתחיל.", + "go_to_integrations_page": "עבור אל דף האינטגרציות." } }, "editor": { @@ -743,7 +776,6 @@ "migrate": "הגר הגדרה" }, "header": "ערוך UI", - "configure_ui": "הגדר UI", "edit_view": { "header": "הצג הגדרות", "add": "הוסף תצוגה", @@ -757,6 +789,9 @@ "cancel": "לא משנה", "save": "קח שליטה" } + }, + "menu": { + "configure_ui": "הגדר UI" } } }, @@ -926,6 +961,19 @@ "save": "שמור", "name": "שם", "entity_id": "מזהה ישות" + }, + "more_info_control": { + "script": { + "last_action": "פעולה אחרונה" + }, + "sun": { + "elevation": "גובה", + "rising": "זורחת", + "setting": "שוקעת" + }, + "updater": { + "title": "הוראות עדכון" + } } }, "auth_store": { diff --git a/translations/hr.json b/translations/hr.json index ec603c23e7..11aabcbc74 100644 --- a/translations/hr.json +++ b/translations/hr.json @@ -725,7 +725,6 @@ "migrate": "Migriraj konfiguraciju" }, "header": "Uredi UI", - "configure_ui": "Konfiguriraj UI", "edit_view": { "header": "Pogledaj konfiguraciju", "add": "Dodaj prikaz", @@ -739,6 +738,9 @@ "cancel": "Nema veze", "save": "Preuzmi kontrolu" } + }, + "menu": { + "configure_ui": "Konfiguriraj UI" } } }, diff --git a/translations/hu.json b/translations/hu.json index a03ff35d9f..a00a3ee8b9 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -753,7 +753,6 @@ "migrate": "Konfiguráció áttelepítése" }, "header": "Felhasználói felület szerkesztése", - "configure_ui": "Felhasználói felület konfigurálása", "edit_view": { "header": "Nézet konfigurálása", "add": "Nézet hozzáadása", @@ -767,6 +766,9 @@ "cancel": "Mégsem", "save": "Irányítás átvétele" } + }, + "menu": { + "configure_ui": "Felhasználói felület konfigurálása" } } }, diff --git a/translations/it.json b/translations/it.json index 6f6f9e0a16..91f0762f5f 100644 --- a/translations/it.json +++ b/translations/it.json @@ -753,7 +753,6 @@ "migrate": "Esporta configurazione" }, "header": "Modifica dell'interfaccia utente", - "configure_ui": "Configurare l'interfaccia utente", "edit_view": { "header": "Visualizza configurazione", "add": "Aggiungi vista", @@ -767,6 +766,9 @@ "cancel": "Rinuncia", "save": "Prendere il controllo" } + }, + "menu": { + "configure_ui": "Configurare l'interfaccia utente" } } }, diff --git a/translations/ko.json b/translations/ko.json index abc1c240ec..0539807d1d 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -753,7 +753,6 @@ "migrate": "설정 마이그레이션" }, "header": "UI 편집", - "configure_ui": "UI 구성", "edit_view": { "header": "구성 보기", "add": "뷰 추가", @@ -767,6 +766,9 @@ "cancel": "아닙니다", "save": "직접 관리할게요" } + }, + "menu": { + "configure_ui": "UI 구성" } } }, diff --git a/translations/lb.json b/translations/lb.json index 9134ed77f7..561a143457 100644 --- a/translations/lb.json +++ b/translations/lb.json @@ -777,7 +777,6 @@ "migrate": "Konfiguratioun migréieren" }, "header": "UI änneren", - "configure_ui": "UI konfiguréieren", "edit_view": { "header": "Konfiguratioun kucken", "add": "Vue dobäisetzen", @@ -791,6 +790,9 @@ "cancel": "Vergiess et", "save": "Kontroll iwwerhuelen" } + }, + "menu": { + "configure_ui": "UI konfiguréieren" } } }, diff --git a/translations/lv.json b/translations/lv.json index 03d5eb4737..1bc88e9647 100644 --- a/translations/lv.json +++ b/translations/lv.json @@ -753,7 +753,6 @@ "migrate": "Pārvietot konfigurāciju" }, "header": "Rediģēt lietotāja interfeisu", - "configure_ui": "Konfigurēt lietotāja interfeisu", "edit_view": { "header": "Skatīt konfigurāciju", "add": "Pievienot skatu", @@ -767,6 +766,9 @@ "cancel": "Nekas", "save": "Pārņemt kontroli" } + }, + "menu": { + "configure_ui": "Konfigurēt lietotāja interfeisu" } } }, diff --git a/translations/nb.json b/translations/nb.json index eb70eb3e2f..82a3d10eab 100644 --- a/translations/nb.json +++ b/translations/nb.json @@ -753,7 +753,6 @@ "migrate": "Overfør konfigurasjon" }, "header": "Rediger brukergrensesnitt", - "configure_ui": "Konfigurer brukergrensesnitt", "edit_view": { "header": "Vis konfigurasjon", "add": "Legg til visning", @@ -767,6 +766,9 @@ "cancel": "Glem det", "save": "Ta kontroll" } + }, + "menu": { + "configure_ui": "Konfigurer brukergrensesnitt" } } }, diff --git a/translations/nl.json b/translations/nl.json index 01cca1f4c7..5b3ec44043 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -753,7 +753,6 @@ "migrate": "Configuratie migreren" }, "header": "Bewerk UI", - "configure_ui": "Configureer UI", "edit_view": { "header": "Bekijk de configuratie", "add": "Weergave toevoegen", @@ -767,6 +766,9 @@ "cancel": "Laat maar", "save": "Neem over" } + }, + "menu": { + "configure_ui": "Configureer UI" } } }, diff --git a/translations/nn.json b/translations/nn.json index c9e3928ced..f0788933c6 100644 --- a/translations/nn.json +++ b/translations/nn.json @@ -743,7 +743,6 @@ "migrate": "Overfør konfigurasjon" }, "header": "Rediger brukargrensesnitt", - "configure_ui": "Konfigurer brukargrensesnitt", "edit_view": { "header": "Vis konfigurasjon", "add": "Legg til side", @@ -757,6 +756,9 @@ "cancel": "Gløym det", "save": "Ta kontroll" } + }, + "menu": { + "configure_ui": "Konfigurer brukargrensesnitt" } } }, diff --git a/translations/pl.json b/translations/pl.json index e31ff766c1..a34e0e4dd9 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -777,7 +777,6 @@ "migrate": "Migracja konfiguracji" }, "header": "Edycja interfejsu użytkownika", - "configure_ui": "Konfiguracja interfejsu użytkownika", "edit_view": { "header": "Konfiguracja widoku", "add": "Dodaj widok", @@ -791,6 +790,9 @@ "cancel": "Nieważne", "save": "Przejmuję kontrolę" } + }, + "menu": { + "configure_ui": "Konfiguracja interfejsu użytkownika" } } }, diff --git a/translations/pt-BR.json b/translations/pt-BR.json index 22ded1d6a4..3f3547b3e2 100644 --- a/translations/pt-BR.json +++ b/translations/pt-BR.json @@ -743,7 +743,6 @@ "migrate": "Migrar configuração" }, "header": "Editar “interface” do usuário", - "configure_ui": "Configurar “interface” do usuário", "edit_view": { "header": "Configurações", "add": "Editar visualização", @@ -757,6 +756,9 @@ "cancel": "Nunca", "save": "Assuma o controle" } + }, + "menu": { + "configure_ui": "Configurar “interface” do usuário" } } }, diff --git a/translations/pt.json b/translations/pt.json index 2b5ecef9ed..9a47c977c2 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -743,7 +743,6 @@ "migrate": "Migrar configuração" }, "header": "Editar UI", - "configure_ui": "Configurar UI", "edit_view": { "header": "Ver configuração", "add": "Acrescentar vista", @@ -757,6 +756,9 @@ "cancel": "Cancelar", "save": "Assumir o controle" } + }, + "menu": { + "configure_ui": "Configurar UI" } } }, diff --git a/translations/ro.json b/translations/ro.json index 177dc41558..29e86406b3 100644 --- a/translations/ro.json +++ b/translations/ro.json @@ -927,7 +927,8 @@ "updater": "Updater", "weblink": "Legătură web", "zwave": "Z-Wave", - "vacuum": "Aspirator" + "vacuum": "Aspirator", + "system_health": "Stare Sistem" }, "attribute": { "weather": { diff --git a/translations/ru.json b/translations/ru.json index fba75b3649..28f7b1d79a 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -777,7 +777,6 @@ "migrate": "Перенести настройки" }, "header": "Редактирование интерфейса", - "configure_ui": "Настройка интерфейса", "edit_view": { "header": "Настройки вкладки", "add": "Добавить вкладку", @@ -791,6 +790,9 @@ "cancel": "Оставить как есть", "save": "Получить контроль" } + }, + "menu": { + "configure_ui": "Настройка интерфейса" } } }, diff --git a/translations/sk.json b/translations/sk.json index 8421aca745..33d9fb0495 100644 --- a/translations/sk.json +++ b/translations/sk.json @@ -753,7 +753,6 @@ "migrate": "Migrovať konfiguráciu" }, "header": "Upraviť používateľské rozhranie", - "configure_ui": "Konfigurovať používateľské rozhranie", "edit_view": { "header": "Konfigurácia zobrazenia", "add": "Pridať zobrazenie", @@ -767,6 +766,9 @@ "cancel": "Nevadí", "save": "Prevziať kontrolu" } + }, + "menu": { + "configure_ui": "Konfigurovať používateľské rozhranie" } } }, diff --git a/translations/sl.json b/translations/sl.json index d66dcfc91a..4c1bc01dc5 100644 --- a/translations/sl.json +++ b/translations/sl.json @@ -753,7 +753,6 @@ "migrate": "Migriraj nastavitve" }, "header": "Uredi UI", - "configure_ui": "Konfiguriraj UI", "edit_view": { "header": "Prikaži konfiguracijo", "add": "Dodaj pogled", @@ -767,6 +766,9 @@ "cancel": "Pozabi", "save": "Prevzemite nadzor" } + }, + "menu": { + "configure_ui": "Konfiguriraj UI" } } }, diff --git a/translations/sv.json b/translations/sv.json index 3871e86832..756977e707 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -345,7 +345,7 @@ }, "customize": { "caption": "Anpassning", - "description": "Anpassa dina enheter" + "description": "Anpassa dina entiteter" }, "automation": { "caption": "Automationer", @@ -418,7 +418,7 @@ }, "zone": { "label": "Zon", - "entity": "Enhet med position", + "entity": "Entitet med position", "zone": "Zon", "event": "Händelse", "enter": "Ankommer", @@ -433,6 +433,14 @@ "hours": "Timmar", "minutes": "Minuter", "seconds": "Sekunder" + }, + "geo_location": { + "label": "Geolocation", + "source": "Källa", + "zone": "Zon", + "event": "Händelse:", + "enter": "Ankomma", + "leave": "Lämna" } } }, @@ -476,7 +484,7 @@ }, "zone": { "label": "Zon", - "entity": "Enhet med position", + "entity": "Entitet med position", "zone": "Zon" } } @@ -565,7 +573,18 @@ }, "zha": { "caption": "ZHA", - "description": "Zigbee Home Automation nätverkhantering" + "description": "Zigbee Home Automation nätverkhantering", + "services": { + "reconfigure": "Återkonfigurera ZHA-enheten (läka enheten). Använd det här om du har problem med enheten. Om den aktuella enheten är en batteridriven enhet, se till att den är vaken och accepterar kommandon när du använder den här tjänsten." + } + }, + "area_registry": { + "caption": "Områdesregister", + "description": "Oversikt över alla områden i ditt hem" + }, + "entity_registry": { + "caption": "Entitetsregister", + "description": "Översikt över alla kända entiteter" } }, "profile": { @@ -734,6 +753,11 @@ "checked_items": "Markerade objekt", "clear_items": "Rensa avbockade objekt", "add_item": "Lägg till objekt" + }, + "empty_state": { + "title": "Välkommen hem", + "no_devices": "På den här sidan kan du styra dina enheter, men det ser ut som om du inte har några enheter ännu. Gå till integrationssidan för att komma igång.", + "go_to_integrations_page": "Gå till integrationssidan." } }, "editor": { @@ -753,7 +777,6 @@ "migrate": "Migrera konfigurationen" }, "header": "Ändra användargränssnittet", - "configure_ui": "Konfigurera användargränssnittet", "edit_view": { "header": "Visa konfiguration", "add": "Lägg till vy", @@ -767,6 +790,9 @@ "cancel": "Glöm det", "save": "Ta kontroll" } + }, + "menu": { + "configure_ui": "Konfigurera användargränssnittet" } } }, @@ -901,7 +927,7 @@ "components": { "entity": { "entity-picker": { - "entity": "Enhet" + "entity": "Entitet" } }, "service-picker": { @@ -935,7 +961,7 @@ "more_info_settings": { "save": "Spara", "name": "Namn", - "entity_id": "Enhets-ID" + "entity_id": "Entitets-ID" }, "more_info_control": { "script": { @@ -999,7 +1025,11 @@ "weblink": "Webblänk", "zwave": "Z-Wave", "vacuum": "Dammsugare", - "zha": "ZHA" + "zha": "ZHA", + "hassio": "Hass.io", + "homeassistant": "Home Assistant", + "lovelace": "Lovelace", + "system_health": "Systemhälsa" }, "attribute": { "weather": { diff --git a/translations/tr.json b/translations/tr.json index 099f70ac1c..6ee17e4501 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -655,7 +655,6 @@ "migrate": "Ayarları aktar" }, "header": "Kullanıcı arayüzünü düzenle", - "configure_ui": "Kullanıcı arayüzünü ayarla", "edit_view": { "header": "Ayarları görüntüle", "add": "Görünüm ekle", @@ -669,6 +668,9 @@ "cancel": "Boşver", "save": "Kontrol altına al" } + }, + "menu": { + "configure_ui": "Kullanıcı arayüzünü ayarla" } } }, diff --git a/translations/uk.json b/translations/uk.json index f0043e13ef..2da28f10ed 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -671,7 +671,6 @@ "migrate": "Перенесення конфігурації" }, "header": "Редагування інтерфейсу", - "configure_ui": "Налаштувати інтерфейс користувача", "edit_view": { "header": "Перегляд Конфігурації", "add": "Додати вигляд", @@ -685,6 +684,9 @@ "cancel": "Неважливо", "save": "Взяти під контроль" } + }, + "menu": { + "configure_ui": "Налаштувати інтерфейс користувача" } } }, diff --git a/translations/zh-Hans.json b/translations/zh-Hans.json index 4f371eccbd..0734e3e2d9 100644 --- a/translations/zh-Hans.json +++ b/translations/zh-Hans.json @@ -751,7 +751,6 @@ "migrate": "迁移配置" }, "header": "编辑 UI", - "configure_ui": "配置 UI", "edit_view": { "header": "查看配置", "add": "添加视图", @@ -765,6 +764,9 @@ "cancel": "没关系", "save": "自行编辑" } + }, + "menu": { + "configure_ui": "配置 UI" } } }, diff --git a/translations/zh-Hant.json b/translations/zh-Hant.json index 659dbea2a4..e6b245e612 100644 --- a/translations/zh-Hant.json +++ b/translations/zh-Hant.json @@ -777,7 +777,6 @@ "migrate": "遷移設定" }, "header": "編輯 UI", - "configure_ui": "設定 UI", "edit_view": { "header": "檢視設定", "add": "新增視圖", @@ -791,6 +790,9 @@ "cancel": "我再想想", "save": "自行編輯" } + }, + "menu": { + "configure_ui": "設定 UI" } } }, From 83aaf4699c45f35d232fda28f1e351ddccc1712d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 2 Feb 2019 13:49:31 -0800 Subject: [PATCH 6/6] Bumped version to 20190202.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e3e0401f7a..db97ed5e26 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20190201.0", + version="20190202.0", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors",