Node.js6 min read

Internationalization (i18n)

Add multi-language support. Learn i18n library.

Sarah Chen
December 19, 2025
0.0k0

Internationalization (i18n)

Setup

npm install i18n
const i18n = require('i18n');

i18n.configure({
  locales: ['en', 'es', 'fr'],
  defaultLocale: 'en',
  directory: __dirname + '/locales'
});

app.use(i18n.init);

Translation Files

// locales/en.json
{
  "welcome": "Welcome",
  "greeting": "Hello, %s!"
}

// locales/es.json
{
  "welcome": "Bienvenido",
  "greeting": "¡Hola, %s!"
}

Using Translations

app.get('/', (req, res) => {
  res.json({
    welcome: req.__('welcome'),
    greeting: req.__('greeting', 'John')
  });
});

app.get('/lang/:locale', (req, res) => {
  res.cookie('language', req.params.locale);
  req.setLocale(req.params.locale);
  res.redirect('/');
});

Key Takeaway

Store translations in JSON files. Detect language from headers or cookies. Format dates and numbers by locale.

#Node.js#i18n#Localization#Internationalization