<label>
<span data-l10n="text-content">Board language: </span>
<select id="board-lang">
- <option value="en">English</option>
<option value="fr">French</option>
- <option value="de">German</option>
- <option value="es">Spanish</option>
</select>
</label>
</div>
const VERSION = 202005011900;
- const langName = {"de": "German", "en": "English", "es": "Spanish", "fr": "French"};
-
const Conf = window.TrivabbleConf || {};
function setConf(parameterName, defaultValue) {
let board;
let rack;
const boardCells = [];
+ let langName;
let scoreOf;
let bag;
set("boardLang", data.boardLang);
}
+ if (data.langName) {
+ langName = data.langName;
+ createLangBoardSelect(langName);
+ }
+
if (data.letterValues) {
scoreOf = data.letterValues;
}
}
}
+ trivabble.run();
+ };
+
+ function createLangBoardSelect(langName) {
+
var newLangName = [];
for (const key in langName) {
newLangName.push({"key": key, "value": _(langName[key])});
}
newLangName = newLangName.sort((a, b) => (a.value > b.value) ? 1 : ((b.value > a.value) ? -1 : 0));
+
const select = document.getElementById("board-lang");
+
+ for (var i = select.options.length - 1; i >=0; i--) {
+ select.remove(i);
+ }
+
for (var i = 0; i < newLangName.length; i++) {
- select.options[i] = new Option(newLangName[i].value, newLangName[i].key);
+ select.add(new Option(newLangName[i].value, newLangName[i].key));
}
- select.value = localStorage.trivabbleBoardLang;
- trivabble.run();
- };
+ select.value = localStorage.trivabbleBoardLang;
+ }
function langSelectionChange(e) {
localStorage.trivabbleLang = e.target.value;
module.exports = {
+ code: "de",
+ name: "German",
+
/*
102 jetons:
- 0 point: Joker *2
*/
module.exports = {
+
+ code: "en",
+ name: "English",
+
/*
100 jetons:
- 0 point: Blank *2
*/
module.exports = {
+
+ code: "es",
+ name: "Spanish",
+
/*
100 jetons:
- 0 point: Comodin *2
*/
module.exports = {
-/*
- 102 jetons
- - 0 point : Joker *2
- - 1 point : E *15, A *9, I *8, N *6, O *6, R *6, S *6, T *6, U *6, L *5
- - 2 points : D *3, M *3, G *2
- - 3 points : B *2, C *2, P *2
- - 4 points : F *2, H *2, V *2
- - 8 points : J *1, Q *1
- - 10 points : K *1, W *1, X *1, Y *1, Z *1
- */
+
+ code: "fr",
+ name: "French",
+
+ /*
+ 102 jetons
+ - 0 point : Joker *2
+ - 1 point : E *15, A *9, I *8, N *6, O *6, R *6, S *6, T *6, U *6, L *5
+ - 2 points : D *3, M *3, G *2
+ - 3 points : B *2, C *2, P *2
+ - 4 points : F *2, H *2, V *2
+ - 8 points : J *1, Q *1
+ - 10 points : K *1, W *1, X *1, Y *1, Z *1
+ */
bag: [
" ", " ", // Jokers
/* eslint-disable quote-props */
/* Manage multi language board */
-const boardPieces = {
- "de": require ("./lang/de.js"),
- "en": require ("./lang/en.js"),
- "es": require ("./lang/es.js"),
- "fr": require ("./lang/fr.js")
-};
+var boardPieces = {};
+var langName = {};
+var langFiles = fs.readdirSync("./lang");
+ for (var i in langFiles) {
+ const data = require("./lang/" + langFiles[i]);
+ boardPieces[data.code] = data;
+ langName[data.code] = data.name;
+}
const defaultLang = "fr";
/* eslint-enable quote-props */
Game.prototype.init = function (lang) {
this.board = newBoard();
this.lang = lang || defaultLang;
+ this.langName = langName;
this.bag = boardPieces[this.lang].bag.slice();
this.letterValues = boardPieces[this.lang].letterValues;
this.racks = {};
return {
board: this.board,
lang: this.lang,
+ langName: this.langName,
bag: this.bag,
racks: this.racks,
scores: this.scores,
const game = new Game();
game.board = obj.board || newBoard();
game.lang = obj.lang || defaultLang;
+ game.langName = obj.langName;
game.bag = boardPieces[game.lang].bag.slice();
game.letterValues = boardPieces[game.lang].letterValues;
game.racks = obj.racks || {};
gameNumber: gameNumber,
playerName: playerName,
boardLang: game.lang,
+ langName: langName,
currentPlayer: game.currentPlayer,
rack: game.getPlayerRack(playerName),
board: game.board,
currentPlayer: game.currentPlayer,
gameNumber: gameNumber,
boardLang: game.lang,
+ langName: langName,
letterValues: game.letterValues,
rack: game.getPlayerRack(message.playerName),
board: game.board,