Я закончил тем, что написал хапи-сервер расширение , а не плагин, и модуль, запускаемый при запуске, который украшает объект хапи-сервера инициализированным i18next
объектом. Расширение устанавливается для запуска onPreHandler
, и оно в основном клонирует объект i18next, присоединяет этот экземпляр к объекту запроса и определяет язык (из заголовка запроса или из параметра запроса), а затем устанавливает клонированный экземпляр на этот язык. Таким образом, всякий раз, когда обработчик маршрута использует функцию t()
, прикрепленную к экземпляру, который прикреплен к текущему запросу, мы знаем, что будем переводить на нужный язык. Обратите внимание, что это все еще для Hapi 16 (мне нужно скоро портировать на 17/18) ...