@erboladaiorg/voluptate-provident

2.2.26 • Public • Published

@erboladaiorg/voluptate-provident

Locale and language detection for Hapi Server.

main workflow Coverage Status dependencies Status Maintainability node code style License Status

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 @erboladaiorg/voluptate-provident

Usage

Register the plugin with Hapi server like this:

const Hapi = require('@hapi/hapi');
const HapiLocale = require('@erboladaiorg/voluptate-provident');

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().

Readme

Keywords

Package Sidebar

Install

npm i @erboladaiorg/voluptate-provident

Weekly Downloads

403

Version

2.2.26

License

MIT

Unpacked Size

55 kB

Total Files

116

Last publish

Collaborators

  • diepminhb311