Skip to content
Snippets Groups Projects
Commit ed1d183d authored by Alice Poggioli's avatar Alice Poggioli
Browse files

We can set the language given by the navigator's user.

parent 8f5143f7
No related branches found
No related tags found
1 merge request!104Feature/internationalization
const port = 9000;
const port = 9001;
const browserSyncPort = 3000;
const distPath = 'www';
const fs = require('fs')
const path = require('path')
// express server
const { join } = require('path');
const express = require('express');
const app = express();
const default_lang = 'en'
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
}
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) {
return userLanguage
}
}
}
}
app
.use(express.static(distPath))
// .use('/src', express.static(join(__dirname, 'src')))
.get(/^[^.]*$/, (req, rep) =>
rep.sendFile(join(__dirname, distPath, '/index-fr.html'))
.get(/^[^.]*$/, (req, rep) => {
var langRequired = matchLanguage(getAvailableLanguage(), parseLanguageData(req.headers["accept-language"]))
console.log('langRequired : ', langRequired)
rep.sendFile(join(__dirname, distPath, `/index-${langRequired}.html`))
}
)
.listen(port);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment