In Node.js è semplice gestire gli URL in modo da localizzare le route di ExpressJS.
Possiamo usare il parametro :lang([a-z]{2})?
che prevede un codice alfabetico di due lettere della lingua corrente ed è reso opzionale dal modificatore ?
finale.
Un esempio pratico:
'use strict';
const app = require('expresss')();
const locales = require('./lib/i18n');
app.get('/:lang([a-z]{2})?', (req, res) => {
let lang = req.params.lang;
if(locales.hasOwnProperty(lang)) {
let locale = locales[lang];
// Localizziamo la view
}
});
La route di cui sopra seleziona ad esempio sito.tld, sito.tld/en o sito.tld/de. Il file di localizzazione può essere definito come segue:
'use strict';
module.exports = {
it: {
title: 'Ciao mondo'
},
en: {
title: 'Hello world'
},
de: {
title: 'Hallo Welt'
}
};