globalize-express v1.4.0
globalize-express
The globalize middleware for the express framework
Install
npm install globalize-express
Load
// 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
lang
query parameter in the URL (For example:http://yoursite.com?lang=ja
would force the gloablize-express middleware to use japanese locale) - It then looks for a cookie with the name
lang
in the browser cookie that was sent back (if you have configured cookies) - Finally, it auto-detects the client browser locale based on the
accept-language
header 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.