From f80f83fabd47e5a2f3400bf80cd92f28542f7204 Mon Sep 17 00:00:00 2001 From: Rick Mogstad Date: Wed, 28 Apr 2021 11:57:32 -0700 Subject: [PATCH 1/5] Fix browser language detection for region specific languages (#8982) --- src/util/hass-translation.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/util/hass-translation.ts b/src/util/hass-translation.ts index 694af2ee4ee9..fd22d34bcfdd 100644 --- a/src/util/hass-translation.ts +++ b/src/util/hass-translation.ts @@ -88,19 +88,18 @@ export function getLocalLanguage() { if (language) { return language; } + if (locale.includes("-")) { + language = findAvailableLanguage(locale.split("-")[0]); + if (language) { + return language; + } + } } } language = findAvailableLanguage(navigator.language); if (language) { return language; } - if (navigator.language && navigator.language.includes("-")) { - language = findAvailableLanguage(navigator.language.split("-")[0]); - if (language) { - return language; - } - } - // Final fallback return "en"; } From 25cd7c7defb33ed2aac6003fef941f70655ee142 Mon Sep 17 00:00:00 2001 From: Rick Mogstad Date: Wed, 28 Apr 2021 15:03:33 -0700 Subject: [PATCH 2/5] CR feedback --- src/util/hass-translation.ts | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/util/hass-translation.ts b/src/util/hass-translation.ts index fd22d34bcfdd..8f8f93a52eee 100644 --- a/src/util/hass-translation.ts +++ b/src/util/hass-translation.ts @@ -36,9 +36,21 @@ export function findAvailableLanguage(language: string) { return LOCALE_LOOKUP[langLower]; } - return Object.keys(translationMetadata.translations).find( + let translation = Object.keys(translationMetadata.translations).find( (lang) => lang.toLowerCase() === langLower ); + if (translation) { + return translation; + } + + if (language.includes("-")) { + translation = findAvailableLanguage(language.split("-")[0]); + if (translation) { + return translation; + } + } + + return null; } /** @@ -88,12 +100,6 @@ export function getLocalLanguage() { if (language) { return language; } - if (locale.includes("-")) { - language = findAvailableLanguage(locale.split("-")[0]); - if (language) { - return language; - } - } } } language = findAvailableLanguage(navigator.language); From 440f8c2a9f4b553e5e968ff23f1c4c02384d4aba Mon Sep 17 00:00:00 2001 From: rmogstad Date: Thu, 29 Apr 2021 08:37:36 -0700 Subject: [PATCH 3/5] Update src/util/hass-translation.ts Co-authored-by: Bram Kragten --- src/util/hass-translation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/hass-translation.ts b/src/util/hass-translation.ts index 8f8f93a52eee..6c143d2ac52d 100644 --- a/src/util/hass-translation.ts +++ b/src/util/hass-translation.ts @@ -50,7 +50,7 @@ export function findAvailableLanguage(language: string) { } } - return null; + return undefined; } /** From 61170556ac39140f36ce8fcc38f4a8e0cb3172a8 Mon Sep 17 00:00:00 2001 From: rmogstad Date: Thu, 29 Apr 2021 12:58:47 -0700 Subject: [PATCH 4/5] Update src/util/hass-translation.ts Co-authored-by: Bram Kragten --- src/util/hass-translation.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/util/hass-translation.ts b/src/util/hass-translation.ts index 6c143d2ac52d..ff11c791bb7e 100644 --- a/src/util/hass-translation.ts +++ b/src/util/hass-translation.ts @@ -44,10 +44,7 @@ export function findAvailableLanguage(language: string) { } if (language.includes("-")) { - translation = findAvailableLanguage(language.split("-")[0]); - if (translation) { - return translation; - } + return findAvailableLanguage(language.split("-")[0]); } return undefined; From e651b7f3349b1ff7d34fe44e7e394b3aa472124a Mon Sep 17 00:00:00 2001 From: rmogstad Date: Thu, 29 Apr 2021 13:17:24 -0700 Subject: [PATCH 5/5] Update src/util/hass-translation.ts Co-authored-by: Bram Kragten --- src/util/hass-translation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/hass-translation.ts b/src/util/hass-translation.ts index ff11c791bb7e..a203ec894ea8 100644 --- a/src/util/hass-translation.ts +++ b/src/util/hass-translation.ts @@ -36,7 +36,7 @@ export function findAvailableLanguage(language: string) { return LOCALE_LOOKUP[langLower]; } - let translation = Object.keys(translationMetadata.translations).find( + const translation = Object.keys(translationMetadata.translations).find( (lang) => lang.toLowerCase() === langLower ); if (translation) {