Locale.js 658 B

123456789101112131415161718192021222324
  1. 'use strict'
  2. /** @typedef {import('@adonisjs/framework/src/Request')} Request */
  3. /** @typedef {import('@adonisjs/framework/src/Response')} Response */
  4. /** @typedef {import('@adonisjs/framework/src/View')} View */
  5. class Locale {
  6. /**
  7. * @param {object} ctx
  8. * @param {Request} ctx.request
  9. * @param {Function} next
  10. */
  11. async handle ({ request, session, view }, next) {
  12. if (session.get('locale') === null) {
  13. session.put('locale', 'en')
  14. session.put('locale', request.language(['en', 'de', 'nl']))
  15. }
  16. view.share({
  17. currentLocale: session.get('locale')
  18. })
  19. await next()
  20. }
  21. }
  22. module.exports = Locale