Newer
Older
const port = 9001;
const distPath = "www";
const fs = require("fs");
const path = require("path");
const { join } = require("path");
const express = require("express");
//By defaut the language should be english.
const default_lang = "en";
/**
* Get the languages of the user's navigator and covert it in a array of exploitable datas.
function parseLanguageData(stringData) {
var arrayData = stringData
.split(",")
.map(element => element.split(/[-;]/).shift());
arrayData.push(default_lang);
return arrayData;
function getAvailableLanguage() {
const langs = fs
.readdirSync(distPath)
.filter(f => path.basename(f, ".yml").match(/^index-[a-z]{2}\.html/))
.map(f => f.match(/^index-([a-z]{2})\.html/)[1]);
return langs;
/**
* Compare the languages possibles with the languages avalaible and return the matched language.
* @param {array} availableLanguages
* @param {array} userLanguages
function matchLanguage(availableLanguages, userLanguages) {
for (let index = 0; index < userLanguages.length; index++) {
const userLanguage = userLanguages[index];
for (let index = 0; index < availableLanguages.length; index++) {
const availableLanguage = availableLanguages[index];
if (userLanguage === availableLanguage) {
}
}
}
}
//JSON object to be added to language's cookie
let langAsked = {
langIndice: null
};
.use(express.static(distPath))
// .use('/src', express.static(join(__dirname, 'src')))
//Route for adding lang's cookie
// res.cookie("langData", langAsked);
.get(/^[^.]*$/, (req, rep) => {
if (langAsked.langIndice == null) {
var langRequired = matchLanguage(
getAvailableLanguage(),
parseLanguageData(req.headers["accept-language"])
);
langAsked = {
langIndice: langRequired
};
rep.cookie("langData", langAsked);
console.log("langAsked", langAsked)
} else {
var langRequired = langAsked.langIndice;
}
rep.sendFile(join(__dirname, distPath, `/index-${langRequired}.html`));
})
.listen(port);
// browser sync