@ryniaubenpm/officia-incidunt-dolor
v1.0.0
Published
Locale and language detection for Hapi Server.
Downloads
6
Maintainers
Keywords
Readme
@ryniaubenpm/officia-incidunt-dolor
Locale and language detection for Hapi Server.
Evaluates locale information from accept-language
header and query or path parameter.
Decorates Hapi request object with request.getLocale()
available in all route handlers.
Priority of evaluation:
(1) locale
query parameter (if provided),
(2) locale
path parameter (if provided),
(3) accept-language
http request header,
(4) fallback locale (the first locale in locales
list).
Decorated method request.getLocale()
can be renamed.
Query and path parameters locale
can be renamed or switched off.
Tested with
- Hapi 18/19/20 on Node 12/14/15
- Hapi 18 on Node 10
Install
npm install @ryniaubenpm/officia-incidunt-dolor
Usage
Register the plugin with Hapi server like this:
const Hapi = require('@hapi/hapi');
const HapiLocale = require('@ryniaubenpm/officia-incidunt-dolor');
const server = new Hapi.Server({
port: 3000,
});
const provision = async () => {
await server.register({
plugin: HapiLocale,
options: {
locales: ['de', 'en'], // your supported locales
}
});
await server.start();
};
provision();
In your route handler, do something like this:
server.route({
method: 'GET',
path: '/test',
handler: function (request, h) {
const locale = request.getLocale();
// ...
}
});
Options
The plugin provides the following options:
| Option | Default | Description |
|-----------|-------------|-------------|
| locales
| []
| Your list of supported locales, e.g., ['de', 'en']
or ['en-US', 'es-ES']
. |
| query
| locale
| Name of query parameter to evaluate. Set to false
to switch off. |
| path
| locale
| Name of path parameter to evaluate. Set to false
to switch off. |
| method
| getLocale
| Name of method for request decoration, i.e., request.getLocale()
. |