Super simple i18n library with express middleware and Mustache syntax

npm install i18n-node
3 downloads in the last day
4 downloads in the last week
45 downloads in the last month

I18n node

Super simple i18n library with express middleware and Mustache syntax.


$ npm install i18n-node


  • Based on Mustache syntax (full partials support)
  • Reads translations from file system
  • Simple
  • Automatically detects locale
  • Easy translation method
  • Post processors


We wanted a simple i18n library built on top of the logic-less template syntax provided by Mustache. Most libraries use sprintf, which is awesome, but it requires a specific order of data, which isn't desirable in our case.


All locales must conform to the locale format ll_CC, where ll is a two-letter language code, and CC is a two-letter country code. For instance, en_US represents U.S. English.


An example of a locale file could be:

    "common:hello": "Hello {{name}}!"
var I18n = require('i18n-node');
var i18n = new I18n({
    directory: __dirname + '/locales/'
i18n.t('en_US', 'common:hello', {
    name: 'guest'
}); // => "Hello guest!"

Using Middleware

var I18n = require('i18n-node');
var express = require('express');
var app = express();
var i18n = new I18n({
    directory: __dirname + '/locales/'

app.configure(function () {

app.get('/', function (req, res) {
    res.send(req.t('common:hello', {
        name: 'guest'

Future Stuff

  • Singular/plural support
  • Number formatting across locales taking imperial countries into account
  • Unit tests!

Hope you like it!

npm loves you