Translated developer tools events page (#4033)

* Translated developer tools events page

* Implemented translations (alert on empty event type, notification on firing an event), Removed unnecessary translation key-value pairs

* Added falsely removed key-value pairs
This commit is contained in:
springstan 2019-10-17 23:17:39 +02:00 committed by Bram Kragten
parent f5e3a9ad40
commit 982966c8d9
4 changed files with 75 additions and 18 deletions

View File

@ -11,12 +11,14 @@ import "../../../resources/ha-style";
import "./events-list"; import "./events-list";
import "./event-subscribe-card"; import "./event-subscribe-card";
import { EventsMixin } from "../../../mixins/events-mixin"; import { EventsMixin } from "../../../mixins/events-mixin";
import LocalizeMixin from "../../../mixins/localize-mixin";
const ERROR_SENTINEL = {}; const ERROR_SENTINEL = {};
/* /*
* @appliesMixin EventsMixin * @appliesMixin EventsMixin
* @appliesMixin LocalizeMixin
*/ */
class HaPanelDevEvent extends EventsMixin(PolymerElement) { class HaPanelDevEvent extends EventsMixin(LocalizeMixin(PolymerElement)) {
static get template() { static get template() {
return html` return html`
<style include="ha-style iron-flex iron-positioning"></style> <style include="ha-style iron-flex iron-positioning"></style>
@ -54,21 +56,26 @@ class HaPanelDevEvent extends EventsMixin(PolymerElement) {
<div class$="[[computeFormClasses(narrow)]]"> <div class$="[[computeFormClasses(narrow)]]">
<div class="flex"> <div class="flex">
<p> <p>
Fire an event on the event bus. [[localize( 'ui.panel.developer-tools.tabs.events.description' )]]
<a <a
href="https://www.home-assistant.io/docs/configuration/events/" href="https://www.home-assistant.io/docs/configuration/events/"
target="_blank" target="_blank"
>Events Documentation.</a >[[localize( 'ui.panel.developer-tools.tabs.events.documentation'
)]]</a
> >
</p> </p>
<div class="ha-form"> <div class="ha-form">
<paper-input <paper-input
label="Event Type" label="[[localize(
'ui.panel.developer-tools.tabs.events.type'
)]]"
autofocus autofocus
required required
value="{{eventType}}" value="{{eventType}}"
></paper-input> ></paper-input>
<p>Event Data (YAML, optional)</p> <p>
[[localize( 'ui.panel.developer-tools.tabs.events.data' )]]
</p>
<ha-code-editor <ha-code-editor
mode="yaml" mode="yaml"
value="[[eventData]]" value="[[eventData]]"
@ -76,13 +83,17 @@ class HaPanelDevEvent extends EventsMixin(PolymerElement) {
on-value-changed="_yamlChanged" on-value-changed="_yamlChanged"
></ha-code-editor> ></ha-code-editor>
<mwc-button on-click="fireEvent" raised disabled="[[!validJSON]]" <mwc-button on-click="fireEvent" raised disabled="[[!validJSON]]"
>Fire Event</mwc-button >[[localize( 'ui.panel.developer-tools.tabs.events.fire_event'
)]]</mwc-button
> >
</div> </div>
</div> </div>
<div> <div>
<div class="header">Available Events</div> <div class="header">
[[localize( 'ui.panel.developer-tools.tabs.events.available_events'
)]]
</div>
<events-list <events-list
on-event-selected="eventSelected" on-event-selected="eventSelected"
hass="[[hass]]" hass="[[hass]]"
@ -143,13 +154,21 @@ class HaPanelDevEvent extends EventsMixin(PolymerElement) {
fireEvent() { fireEvent() {
if (!this.eventType) { if (!this.eventType) {
alert("Event type is a mandatory field"); alert(
this.hass.localize(
"ui.panel.developer-tools.tabs.events.alert_event_type"
)
);
return; return;
} }
this.hass.callApi("POST", "events/" + this.eventType, this.parsedJSON).then( this.hass.callApi("POST", "events/" + this.eventType, this.parsedJSON).then(
function() { function() {
this.fire("hass-notification", { this.fire("hass-notification", {
message: "Event " + this.eventType + " successful fired!", message: this.hass.localize(
"ui.panel.developer-tools.tabs.events.notification_event_fired",
"type",
this.eventType
),
}); });
}.bind(this) }.bind(this)
); );

View File

@ -37,12 +37,20 @@ class EventSubscribeCard extends LitElement {
protected render(): TemplateResult { protected render(): TemplateResult {
return html` return html`
<ha-card header="Listen to events"> <ha-card
header=${this.hass!.localize(
"ui.panel.developer-tools.tabs.events.listen_to_events"
)}
>
<form> <form>
<paper-input <paper-input
.label=${this._subscribed .label=${this._subscribed
? "Listening to" ? this.hass!.localize(
: "Event to subscribe to"} "ui.panel.developer-tools.tabs.events.listening_to"
)
: this.hass!.localize(
"ui.panel.developer-tools.tabs.events.subscribe_to"
)}
.disabled=${this._subscribed !== undefined} .disabled=${this._subscribed !== undefined}
.value=${this._eventType} .value=${this._eventType}
@value-changed=${this._valueChanged} @value-changed=${this._valueChanged}
@ -52,14 +60,24 @@ class EventSubscribeCard extends LitElement {
@click=${this._handleSubmit} @click=${this._handleSubmit}
type="submit" type="submit"
> >
${this._subscribed ? "Stop listening" : "Start listening"} ${this._subscribed
? this.hass!.localize(
"ui.panel.developer-tools.tabs.events.stop_listening"
)
: this.hass!.localize(
"ui.panel.developer-tools.tabs.events.start_listening"
)}
</mwc-button> </mwc-button>
</form> </form>
<div class="events"> <div class="events">
${this._events.map( ${this._events.map(
(ev) => html` (ev) => html`
<div class="event"> <div class="event">
Event ${ev.id} fired ${this.hass!.localize(
"ui.panel.developer-tools.tabs.events.event_fired",
"name",
ev.id
)}
${format_time( ${format_time(
new Date(ev.event.time_fired), new Date(ev.event.time_fired),
this.hass!.language this.hass!.language

View File

@ -2,11 +2,13 @@ import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element"; import { PolymerElement } from "@polymer/polymer/polymer-element";
import { EventsMixin } from "../../../mixins/events-mixin"; import { EventsMixin } from "../../../mixins/events-mixin";
import LocalizeMixin from "../../../mixins/localize-mixin";
/* /*
* @appliesMixin EventsMixin * @appliesMixin EventsMixin
* @appliesMixin LocalizeMixin
*/ */
class EventsList extends EventsMixin(PolymerElement) { class EventsList extends EventsMixin(LocalizeMixin(PolymerElement)) {
static get template() { static get template() {
return html` return html`
<style> <style>
@ -29,8 +31,11 @@ class EventsList extends EventsMixin(PolymerElement) {
<template is="dom-repeat" items="[[events]]" as="event"> <template is="dom-repeat" items="[[events]]" as="event">
<li> <li>
<a href="#" on-click="eventSelected">{{event.event}}</a> <a href="#" on-click="eventSelected">{{event.event}}</a>
<span> (</span><span>{{event.listener_count}}</span <span>
><span> listeners)</span> [[localize(
"ui.panel.developer-tools.tabs.events.count_listeners", "count",
event.listener_count )]]</span
>
</li> </li>
</template> </template>
</ul> </ul>

View File

@ -1779,7 +1779,22 @@
"title": "Logs" "title": "Logs"
}, },
"events": { "events": {
"title": "Events" "title": "Events",
"description": "Fire an event on the event bus.",
"documentation": "Events Documentation.",
"type": "Event Type",
"data": "Event Data (YAML, optional)",
"fire_event": "Fire Event",
"event_fired": "Event {name} fired",
"available_events": "Available Events",
"count_listeners": " ({count} listeners)",
"listen_to_events": "Listen to events",
"listening_to": "Listening to",
"subscribe_to": "Event to subscribe to",
"start_listening": "Start listening",
"stop_listening": "Stop listening",
"alert_event_type": "Event type is a mandatory field",
"notification_event_fired": "Event {type} successful fired!"
}, },
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"