i18n-node

Super simple i18n library with express middleware and Mustache syntax

npm install i18n-node
31 downloads in the last week
45 downloads in the last month

I18n node

Super simple i18n library with express middleware and Mustache syntax.

Installation

$ npm install i18n-node

Features

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

Why

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.

Locales

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.

Examples

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.use(i18n.middleware());
    app.use(app.router);
});

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