globalize-express v1.4.0
globalize-express
The globalize middleware for the express framework
Install
npm install globalize-expressLoad
// load modules
var express = require('express'),
globalizeExpress = require("globalize-express");##Using with Express.js
Use as a middleware
// Add as a middleware to your express app
var app = express();
app.use(globalizeExpress(config));List of configuration options
var config = {
// list of supported locales
locales:['en', 'ja'],
// locale chosen if the requested locales was not found in the 'locales' array
defaultLocale: 'en',
// A custom cookie name which may contain the locale to use
cookieName: null,
// location of all the locale json files on disk
messages: __dirname + '/locales',
// An OPTIONAL array of cldr data to load into globalize
// Checkout: https://github.com/jquery/globalize#2-cldr-content
// If this property is not provided, globalize-express will dynamically load
// all possible cldr-data for the locales listed above.
localeData: [
],
// Set this to true if running in development mode. This will delete cache before every access for localized string
devMode: false
};Inside Your Express View
The middleware adds a Globalize object to the request object of your app. You can use this as shown here:
module.exports = {
index: function(req, res) {
res.render("index", {
title: req.Globalize.formatMessage("My Site Title"),
desc: req.Globalize.formatMessage("My Site Description")
});
}
};For more info on the API for Globalize, checkout jquery/Globalize
What locale does the Globalize object use?
For every individual request that your express app receives, the Globalize object selects the locale in the following manner (and priority):
- It looks for a
langquery parameter in the URL (For example:http://yoursite.com?lang=jawould force the gloablize-express middleware to use japanese locale) - It then looks for a cookie with the name
langin the browser cookie that was sent back (if you have configured cookies) - Finally, it auto-detects the client browser locale based on the
accept-languageheader property.
Depending on what was found first, it uses that as its locale to return appropriate strings.
NOTE: if the locale selected was not in the config.locales array, then it will fall back to the config.defaultLocale locale
Example
There is a working express.js example app provided in this repo. Please go through the example/README.md file to see instructions on how to run the example.