Express, Koa, Hapi locale parser that powers gengo.js.
This module parses the accept-language header from Express, Koa, or Hapi and returns the appropriate locale.
See the beautifully generated documenation at GitHub.
$ npm i --save gengojs-accept
import express from 'express';
import accept from 'gengojs-accept/express';
let app = express();
app.use(accept());
app.use('/', function(req, res, next){
console.log(req.getLocale());
});
// ...
import Hapi from 'hapi';
import accept from 'gengojs-accept/hapi';
let server = new Hapi.Server();
server.connection({
port:3000
})
server.register(accept(), function(error){
if(error) console.log(error);
});
server.route({
method: 'GET',
path: '/',
handler: function (request, reply) {
console.log(request.accept.getLocale());
reply();
}
});
// ...
Note: I have not tested Koa's v1.0.0 API but in theory it should work. Please report any bugs if encountered or create a pull request to add tests.
import Koa from 'koa';
import accept from 'gengojs-accept/koa';
let app = new Koa();
app.use(accept());
app.use('/', function (self, next){
console.log(self.accept.getLocale());
// or
console.log(self.request.accept.getLocale());
// or
console.log(self.response.accept.getLocale());
});
// ...
import accept from 'gengojs-accept';
// pass the request object from express or hapi
// or the 'ctx'/'self' context from koa;
let currentLocale = accept(req || ctx, options).getLocale();
{
"check": true,
"default": "en-US",
"supported": [
"en-US"
],
"keys": {
"cookie": "locale",
"query": "locale"
},
"detect": {
"header": true,
"cookie": false,
"query": false,
"url": false,
"domain": false,
"subdomain": false
}
}