automatically select proper download file based on accept-language header

This commit is contained in:
Justin Cooper 2018-11-09 15:25:08 -06:00
parent 8db88973cc
commit 8fc99fc639
3 changed files with 23 additions and 3 deletions

View file

@ -12,3 +12,4 @@ TODO
- [ ] help page
- [ ] setup travis for generate_downloads.rb
- [ ] update header to latest version (different logo)
- [ ] deploy accounts, and update url to accounts production in download.js

View file

@ -26,7 +26,7 @@ layout: default
<label class="language-select">
<select>
{% for language in page.files %}
<option value="{{ language[1] }}">
<option value="{{ language[1] }}" data-locale={{ language[0] }}>
{% case language[0] %}
{% when 'en' %}
ENGLISH

View file

@ -1,8 +1,27 @@
document.addEventListener('DOMContentLoaded',function() {
var languageSelect = document.querySelector(".language-select select");
languageSelect.onchange=languageSelectHandler;
languageSelect.onchange = languageSelectHandler;
var script = document.createElement('script');
script.src = '//accounts.adafruit.vm/users/locale?callback=setLocale';
document.head.appendChild(script);
},false);
function languageSelectHandler(event) {
document.querySelector(".download-button").href = event.target.value;
var languageSelect = document.querySelector(".language-select select");
document.querySelector(".download-button").href = languageSelect.value;
}
function setLocale(response) {
var languages = response.languages.join(' ')
var languageSelect = document.querySelector(".language-select select");
var options = languageSelect.options;
for (var i = 0; i < options.length; i++) {
if (languages.includes(options[i].dataset.locale)) {
options[i].selected = true;
languageSelect.onchange();
}
}
}