freakish
freakish

Reputation: 56467

internationalization in Node.js, Express, i18n

I'm using Node.js together with Express framework and i18n module. So I use

var i18n = require('i18n');
app.configure(function() {
    [...]
    app.use(i18n.init);
    app.use(app.router);
});

in my app settings. Everything works fine, but what I really need is to force i18n to use the langauage I want. The scenario is as follows: when user is not logged in, then i18n searches for the langauage in accept-language header and it is ok. But when user is logged in, then I want to hold chosen langauage somewhere in user settings, retrieve it and force i18n module to use this langauage. How to do this (assuming I already know how to save/retrieve the langauge into/from db)?

Upvotes: 8

Views: 12455

Answers (2)

staackuser2
staackuser2

Reputation: 12412

This was just released yesterday, but it sounds like it will hit the issue you are running into: locale

Upvotes: 1

freakish
freakish

Reputation: 56467

Ach, sorry. I should wait a bit and inspect the i18n module. It seems that module provides to functions

i18n.getLocale();

which retrieves current language and

i18n.setLocale('en');

which sets locale as we want. The documentation really should mention this. It is important, I hope the answer helps someone. :)

Upvotes: 12

Related Questions