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 b11007465f38..7c8998aa2179 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 37e839cc837c..043c61e784ba 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 778a4258d487..6f92dbc9ba34 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 3ea02c95d4fc..2a1c2db7b4cd 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 6aa81b50122d..898ee60cff3e 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 91464b34819d..17c029fdafc8 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 c054a8417e3b..a0aebc0d4775 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 f7a976e11556..0b31b83030ff 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 e627c20673be..66be784eb892 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 c033c0dfd717..911934784ecf 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 12dc9c588a6c..b53f6110749c 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 22b5e8273fdf..000000000000 --- 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 000000000000..2fa5d3bf1f56 --- /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 46fc89a84f1b..6f5fc8a8b065 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 276d2f7e6458..000000000000 --- 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 000000000000..c4a3d8fed5fc --- /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 2e6c8a5dc633..bd26de067a78 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 d83f0ecde350..a09ee7bf8f03 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 1612548882d3..aa7ecdebe12a 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 6f92dbc9ba34..bac990dfb529 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 9462e4a6e469..6d8a1f020237 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 25a8a191cf54..4e1ac7db7fb4 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 7c9b423aadb5..1aa8ddb20209 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 81a71557ebd6..7b1e550f7d87 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 da9d7d05f90b..f716c4001833 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 9ee342e9a8d3..5e5e7b7cb442 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 06a46bed0fb5..84aae1096968 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 e6fd121ba573..977ee77bf4fc 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 ed092bfc18ea..acea505b3922 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 598dad7849b4..3fbafb6dd3ba 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 61ec41b7545a..07d65addcbe4 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 79f3282b9c42..78e30fb99923 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 ec603c23e7dd..11aabcbc7468 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 a03ff35d9f3a..a00a3ee8b993 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 6f6f9e0a16be..91f0762f5f80 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 abc1c240ec6f..0539807d1d9a 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 9134ed77f7ec..561a1434579b 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 03d5eb4737b6..1bc88e96473e 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 eb70eb3e2f23..82a3d10eab32 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 01cca1f4c7e0..5b3ec44043d7 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 c9e3928ceda5..f0788933c645 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 e31ff766c12d..a34e0e4dd96a 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 22ded1d6a4ea..3f3547b3e24a 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 2b5ecef9ed60..9a47c977c274 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 177dc4155864..29e86406b393 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 fba75b364964..28f7b1d79a0b 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 8421aca745db..33d9fb04958b 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 d66dcfc91a21..4c1bc01dc533 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 3871e86832f5..756977e70741 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 099f70ac1ccc..6ee17e450126 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 f0043e13efdc..2da28f10ed38 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 4f371eccbdaf..0734e3e2d9c0 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 659dbea2a445..e6b245e612a0 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 e3e0401f7aa2..db97ed5e26f2 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ 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",