Проблемы с обнаружением языка i18next и интеграцией с хапи - PullRequest
0 голосов
/ 06 ноября 2018

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

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

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

0 голосов
/ 06 ноября 2018

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

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

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

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

В i18следующий языковой детектор срабатывает здесь ... так при инициализации / загрузке и при потенциальном изменении языка

Надеюсь, это поможет.

...