Add analytics translations (#15821)

* Add analytics translations

* Move translations to panels

* Fix learn more link
This commit is contained in:
Paul Bottein
2023-03-17 16:26:53 +01:00
committed by GitHub
parent dd08909fef
commit c0c83d3721
5 changed files with 102 additions and 53 deletions

View File

@@ -9,18 +9,7 @@ import "./ha-settings-row";
import "./ha-switch";
import type { HaSwitch } from "./ha-switch";
const ADDITIONAL_PREFERENCES = [
{
key: "usage",
title: "Usage",
description: "Details of what you use with Home Assistant",
},
{
key: "statistics",
title: "Statistical data",
description: "Counts containing total number of datapoints",
},
];
const ADDITIONAL_PREFERENCES = ["usage", "statistics"] as const;
declare global {
interface HASSDomEvents {
@@ -34,15 +23,25 @@ export class HaAnalytics extends LitElement {
@property({ attribute: false }) public analytics?: Analytics;
@property({ attribute: "translation_key_panel" }) public translationKeyPanel:
| "page-onboarding"
| "config" = "config";
protected render(): TemplateResult {
const loading = this.analytics === undefined;
const baseEnabled = !loading && this.analytics!.preferences.base;
return html`
<ha-settings-row>
<span slot="heading" data-for="base"> Basic analytics </span>
<span slot="heading" data-for="base">
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.base.title`
)}
</span>
<span slot="description" data-for="base">
This includes information about your system.
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.base.description`
)}
</span>
<ha-switch
@change=${this._handleRowClick}
@@ -57,25 +56,30 @@ export class HaAnalytics extends LitElement {
(preference) =>
html`
<ha-settings-row>
<span slot="heading" data-for=${preference.key}>
${preference.title}
<span slot="heading" data-for=${preference}>
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.${preference}.title`
)}
</span>
<span slot="description" data-for=${preference.key}>
${preference.description}
<span slot="description" data-for=${preference}>
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.${preference}.description`
)}
</span>
<span>
<ha-switch
@change=${this._handleRowClick}
.checked=${this.analytics?.preferences[preference.key]}
.preference=${preference.key}
name=${preference.key}
.checked=${this.analytics?.preferences[preference]}
.preference=${preference}
name=${preference}
>
</ha-switch>
${!baseEnabled
? html`
<paper-tooltip animation-delay="0" position="right">
You need to enable basic analytics for this option to be
available
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.need_base_enabled`
)}
</paper-tooltip>
`
: ""}
@@ -84,9 +88,15 @@ export class HaAnalytics extends LitElement {
`
)}
<ha-settings-row>
<span slot="heading" data-for="diagnostics"> Diagnostics </span>
<span slot="heading" data-for="diagnostics">
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.diagnostics.title`
)}
</span>
<span slot="description" data-for="diagnostics">
Share crash reports when unexpected errors occur.
${this.hass.localize(
`ui.panel.${this.translationKeyPanel}.analytics.preferences.diagnostics.description`
)}
</span>
<ha-switch
@change=${this._handleRowClick}
@@ -132,7 +142,7 @@ export class HaAnalytics extends LitElement {
preferences[preference] = target.checked;
if (
ADDITIONAL_PREFERENCES.some((entry) => entry.key === preference) &&
ADDITIONAL_PREFERENCES.some((entry) => entry === preference) &&
target.checked
) {
preferences.base = true;