Add language selection, based on tornoz's work

This commit is contained in:
Raphaël Jakse 2016-04-03 17:23:13 +02:00
parent fc280ba500
commit b285e078eb
3 changed files with 36 additions and 8 deletions

View File

@ -45,14 +45,6 @@
<script src="alert.js"></script>
<script src="touch2click.js"></script>
<script src="trivabble.js"></script>
<script>
(function () {
var script = document.createElement("script");
script.src = "l10n/js/" + libD.lang + ".js";
script.onerror = trivabble.l10nError;
document.getElementsByTagName("head")[0].appendChild(script);
})();
</script>
</head>
<body>
<div id="menu">
@ -67,6 +59,17 @@
<p><label><input type="checkbox" id="tiles-sound" checked="checked" /><span data-l10n="text-content">Sound of the tiles</span></label></p>
<p><label><input type="checkbox" id="msg-sound" checked="checked" /><span data-l10n="text-content">Sound of messages</span></label></p>
</div>
<div id="lang-selection">
<label>
<span data-l10n="text-content">Interface language: </span>
<select id="select-lang">
<option value="en">English</option>
<option value="fr">Français</option>
<option value="br">Brezhoneg</option>
</select>
</label>
</div>
</div>
<div id="content">

View File

@ -375,6 +375,10 @@ td.blink {
font-size:small
}
#lang-selection {
font-size:small;
}
#prefs-sound input, #prefs-sound label {
vertical-align:middle
}

View File

@ -958,6 +958,11 @@
trivabble.run();
};
function langSelectionChange(e) {
localStorage.trivabbleLang = e.target.value;
location.reload();
}
function initGlobals() {
board = document.getElementById("board");
rack = document.getElementById("rack");
@ -1075,6 +1080,20 @@
startGame(localStorage.trivabbleGameNumber);
}
function initLang() {
var lang = localStorage.trivabbleLang || libD.lang;
libD.lang = lang;
var langSel = document.getElementById("select-lang");
langSel.value = lang;
langSel.onchange = langSelectionChange;
var script = document.createElement("script");
script.src = "l10n/js/" + lang + ".js";
script.onerror = trivabble.l10nError;
document.getElementsByTagName("head")[0].appendChild(script);
}
trivabble.run = function () {
initGlobals();
initEvents();
@ -1084,4 +1103,6 @@
};
trivabble.l10nError = trivabble.run;
window.addEventListener("DOMContentLoaded", initLang);
}());