Merge pull request #569 from dermotduffy/googlehub-no-work
Fix card breakage on Nest hub devices
This commit is contained in:
@@ -8,17 +8,31 @@ const languages: any = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function localize(string: string, search = '', replace = ''): string {
|
export function localize(string: string, search = '', replace = ''): string {
|
||||||
// Get the browser language.
|
const canonicalizeLanguage = (language?: string | null): string | null => {
|
||||||
let lang = localStorage
|
if (!language) {
|
||||||
.getItem('selectedLanguage')
|
return null;
|
||||||
?.replace(/['"]+/g, '')
|
}
|
||||||
.replace('-', '_');
|
return language.replace('-', '_');
|
||||||
|
};
|
||||||
|
|
||||||
// If that's not specified, try to find the Home Assistant language.
|
// Try the HA language first...
|
||||||
|
let lang;
|
||||||
|
const HALanguage = localStorage.getItem('selectedLanguage');
|
||||||
|
if (HALanguage) {
|
||||||
|
const selectedLanguage = canonicalizeLanguage(JSON.parse(HALanguage));
|
||||||
|
if (selectedLanguage) {
|
||||||
|
lang = selectedLanguage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Then fall back to the browser language.
|
||||||
if (!lang) {
|
if (!lang) {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
for (const language of navigator.languages) {
|
||||||
const hass = (document.querySelector('home-assistant') as any)?.hass;
|
const canonicalLanguage = canonicalizeLanguage(language);
|
||||||
lang = hass.selectedLanguage || hass.language;
|
if (canonicalLanguage && canonicalLanguage in languages) {
|
||||||
|
lang = language;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Default to English is there's still no language setting.
|
// Default to English is there's still no language setting.
|
||||||
|
|||||||
Reference in New Issue
Block a user