使用 i18n 模块维护节点 js app 中的本地化

轻量级简单翻译模块,带有动态 json 存储。支持普通的 vanilla node.js 应用程序,并且应该使用任何框架(如 express,restify 和更多)来公开传递 res 和 req 对象的 app.use() 方法。在 app 和 templates 中使用常见的__(’…’)语法。在与 webtranslateit json 格式兼容的 json 文件中存储语言文件。首次在应用中使用时,即时添加新字符串。无需额外解析。

表达+ i18n-node + cookieParser 并避免并发问题

// usual requirements
var express = require('express'),
    i18n = require('i18n'),
    app = module.exports = express();

i18n.configure({
  // setup some locales - other locales default to en silently
  locales: ['en', 'ru', 'de'],

  // sets a custom cookie name to parse locale settings from
  cookie: 'yourcookiename',

  // where to store json files - defaults to './locales'
  directory: __dirname + '/locales'
});

app.configure(function () {
  // you will need to use cookieParser to expose cookies to req.cookies
  app.use(express.cookieParser());

  // i18n init parses req for language headers, cookies, etc.
  app.use(i18n.init);

});

// serving homepage
app.get('/', function (req, res) {
  res.send(res.__('Hello World'));
});

// starting server
if (!module.parent) {
  app.listen(3000);
}