diff --git a/src/octoprint/static/js/app/helpers.js b/src/octoprint/static/js/app/helpers.js index 81c3b9c9..ef4a4d6f 100644 --- a/src/octoprint/static/js/app/helpers.js +++ b/src/octoprint/static/js/app/helpers.js @@ -865,3 +865,16 @@ var sizeObservable = function(observable) { } }) }; + +var getQueryParameterByName = function(name, url) { + // from http://stackoverflow.com/a/901144/2028598 + if (!url) { + url = window.location.href; + } + name = name.replace(/[\[\]]/g, "\\$&"); + var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, " ")); +}; diff --git a/src/octoprint/static/js/app/main.js b/src/octoprint/static/js/app/main.js index a870ecc7..127643b5 100644 --- a/src/octoprint/static/js/app/main.js +++ b/src/octoprint/static/js/app/main.js @@ -13,6 +13,11 @@ $(function() { OctoPrint.options.baseurl = BASEURL; OctoPrint.options.apikey = UI_API_KEY; + var l10n = getQueryParameterByName("l10n"); + if (l10n) { + OctoPrint.options.locale = l10n; + } + OctoPrint.socket.onMessage("connected", function(data) { var payload = data.data; OctoPrint.options.apikey = payload.apikey;