使用 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);
}