From 081e375927a58294bccd56a774d17898c90ae9cc Mon Sep 17 00:00:00 2001 From: LordGrey Date: Sat, 30 May 2020 16:40:51 +0200 Subject: [PATCH] Show used language, if nothing stored locally --- assets/webconfig/js/content_index.js | 9 +++--- assets/webconfig/js/ui_utils.js | 43 ++++++++++++++++++++++++---- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/assets/webconfig/js/content_index.js b/assets/webconfig/js/content_index.js index bd84f93c..8d29fa86 100644 --- a/assets/webconfig/js/content_index.js +++ b/assets/webconfig/js/content_index.js @@ -56,7 +56,7 @@ $(document).ready(function () { updateSessions(); }); // end cmd-serverinfo - // Update language + // Update language selection $("#language-select").on('changed.bs.select',function (e, clickedIndex, isSelected, previousValue){ var newLang = availLang[clickedIndex-1]; if (newLang !== storedLang) @@ -64,12 +64,11 @@ $(document).ready(function () { setStorage("langcode", newLang); reload(); } - }); $("#language-select").selectpicker( { - container: 'body', title: availLangText[availLang.indexOf(getStorage("langcode"))] + container: 'body' }); $(".bootstrap-select").click(function () { @@ -83,7 +82,9 @@ $(document).ready(function () { $(".bootstrap-select").click(function(e){ e.stopPropagation(); }); - + + //End language selection + $(window.hyperion).on("cmd-sessions-update", function (event) { window.serverInfo.sessions = event.response.data; updateSessions(); diff --git a/assets/webconfig/js/ui_utils.js b/assets/webconfig/js/ui_utils.js index 2cf22a9d..b5fd0da0 100644 --- a/assets/webconfig/js/ui_utils.js +++ b/assets/webconfig/js/ui_utils.js @@ -180,13 +180,44 @@ function updateHyperionInstanceListing() function initLanguageSelection() { - for (var i = 0; i < availLang.length; i++) - { - $("#language-select").append(''); - } + // Initialise language selection list with languages supported + for (var i = 0; i < availLang.length; i++) + { + $("#language-select").append(''); + } - $("#language-select").val(availLang.indexOf(storedLang)); - $("#language-select").selectpicker("refresh"); + var langLocale = storedLang; + + // If no language has been set, resolve browser locale + if ( langLocale === 'auto' ) + { + langLocale = $.i18n().locale.substring(0,2); + } + + // Resolve text for language code + var langText = 'Please Select'; + + //Test, if language is supported by hyperion + langIdx = availLang.indexOf(langLocale) + if ( langIdx > -1 ) + { + langText = availLangText[langIdx]; + } + else + { + // If language is not supported by hyperion, try fallback language + langLocale = $.i18n().options.fallbackLocale.substring(0,2); + langIdx = availLang.indexOf(langLocale) + if ( langIdx > -1 ) + { + langText = availLangText[langIdx]; + } + } + //console.log("langLocale: ", langLocale, "langText: ", langText); + + $('#language-select').prop('title', langText); + $("#language-select").val(langIdx); + $("#language-select").selectpicker("refresh"); } function updateUiOnInstance(inst)