Complete service translation support in service dev tools (#17399)

This commit is contained in:
Franck Nijhof 2023-07-24 17:43:31 +02:00 committed by GitHub
parent 17c9e91092
commit 5ed767804c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -58,6 +58,9 @@ class HaPanelDevService extends LitElement {
protected firstUpdated(params) {
super.firstUpdated(params);
this.hass.loadBackendTranslation("services");
this.hass.loadBackendTranslation("selector");
const serviceParam = extractSearchParam("service");
if (serviceParam) {
this._serviceData = {
@ -95,6 +98,14 @@ class HaPanelDevService extends LitElement {
const isValid = this._isValid(this._serviceData, fields, target);
const domain = this._serviceData?.service
? computeDomain(this._serviceData?.service)
: undefined;
const serviceName = this._serviceData?.service
? computeObjectId(this._serviceData?.service)
: undefined;
return html`
<div class="content">
<p>
@ -251,8 +262,16 @@ class HaPanelDevService extends LitElement {
(field) =>
html` <tr>
<td><pre>${field.key}</pre></td>
<td>${field.description}</td>
<td>${field.example}</td>
<td>
${this.hass.localize(
`component.${domain}.services.${serviceName}.fields.${field.key}.description`
) || field.description}
</td>
<td>
${this.hass.localize(
`component.${domain}.services.${serviceName}.fields.${field.key}.example`
) || field.example}
</td>
</tr>`
)}
</table>
@ -430,6 +449,14 @@ class HaPanelDevService extends LitElement {
this.hass.services,
this._serviceData?.service
);
const domain = this._serviceData?.service
? computeDomain(this._serviceData?.service)
: undefined;
const serviceName = this._serviceData?.service
? computeObjectId(this._serviceData?.service)
: undefined;
const example = {};
fields.forEach((field) => {
if (field.example) {
@ -437,7 +464,10 @@ class HaPanelDevService extends LitElement {
try {
value = load(field.example);
} catch (err: any) {
value = field.example;
value =
this.hass.localize(
`component.${domain}.services.${serviceName}.fields.${field.key}.example`
) || field.example;
}
example[field.key] = value;
}