Skip to content

Instantly share code, notes, and snippets.

@airyland
Forked from hanksudo/i18n-express-jade-app.js
Created December 21, 2013 04:16

Revisions

  1. @hanksudo hanksudo created this gist Jul 14, 2013.
    49 changes: 49 additions & 0 deletions i18n-express-jade-app.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@

    /**
    * Module dependencies.
    */

    var express = require('express')
    , routes = require('./routes')
    , user = require('./routes/user')
    , http = require('http')
    , path = require('path')
    , i18n = require('i18n');

    // i18n configure
    i18n.configure({
    locales: ['en', 'de'],
    cookie: 'yourcookiename',
    directory: __dirname + '/locales'
    });

    var app = express();

    // all environments
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.cookieParser());
    app.use(express.methodOverride());
    app.use(i18n.init); // Should always before app.route
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));

    // development only
    if ('development' == app.get('env')) {
    app.use(express.errorHandler());
    }

    app.get('/', function (req, res) {
    res.render('index', {
    'name': 'Hank',
    'result': res.__n('Result: %d cat', 'Result: %d cats', 3)
    });
    });

    http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
    });
    6 changes: 6 additions & 0 deletions index.jade
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    extends layout

    block content
    h1 #{__('Hello')} #{name}
    h2= __('Hello %s', 'Hank')
    p #{result}