To enable multilanguage support in ExpressJS we have to define how our application handles route parameters.
We can use the following parameter:
:lang([a-z]{2})?
which matches a two-letters language code and it's made optional by the ? modifier. An example:
'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];
      // Passing the current locale to the view
    }  
});
The above route matches site.tld, site.tld/en or site.tld/de. We can define our locales as follows:
'use strict';
module.exports = {
    it: {
      title: 'Ciao mondo'
    },
    en: {
       title: 'Hello world'
    },
    de: {
        title: 'Hallo Welt'
    }
};