Проблемы с определением языка i18next и интеграцией с hapi

Пытаюсь написать новый плагин детектора языка для i18next для интеграции с hapi. Существующий плагин hapi-i18next довольно старый (он использует очень старую версию i18next, 1.7.10) и поэтому в основном бесполезен. А в документации API i18next довольно расплывчато описано, как писать новые плагины и что именно представляет собой процесс определения языка. Он запускается каждый раз, когда запускается функция t ()? он должен быть асинхронным? Кто-нибудь еще недавно интегрировал hapi с i18next? Я понимаю, что это довольно общий характер, но я не уверен, куда еще обратиться.


person steev    schedule 06.11.2018    source источник


Ответы (2)


До сих пор никогда не использовал hapi, но, похоже, hapi сильно изменился после версии 8 (что на самом деле использовалось здесь )

Я не знаю, поддерживается ли этот проект ...

Возможно, вы могли бы попробовать создать новый плагин hapi-i18next ... (было не так уж много код)

Чтобы создать плагин languageDetector, это не должно быть большим делом ... начните здесь и продолжайте, сравнивая, как выражает язык обнаружение работает

В i18next срабатывает languageDetector

person adrai    schedule 06.11.2018

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

person steev    schedule 30.05.2019