Как включить установку мультиязычного Angular PWA с одним работником службы? - PullRequest
7 голосов
/ 01 мая 2020

Я подготовил приложения с локализованными языковыми версиями. Для этой цели я использовал native Angular i18n модуль , который подготовил два пакета приложений с соответствующим языком в каждом.

Каждая версия приложения доступна в отдельном месте на моем nginx сервер:

  • myapp.com / ru /...
  • myapp.com / pl /...

Я бы хотел, чтобы мое приложение было установлено один раз в качестве PWA и предоставляло обе языковые версии с использованием (одного?) Сервисного работника.

К сожалению, все, что я мог сделать сейчас с @ angular / pwa module , - это обеспечить отдельных сервисных работников для каждого приложения, что вызывает отдельные установки для каждой языковой версии моего приложения.

У меня вопрос такой: Есть ли способ для приложения работать так, как я описал, используя @ angular / pwa или Workbox ?

// Кстати, это немного удивительно, что создатели Angular не выдвинули на первый план интеграцию @ angular / localize с @ angular / pwa.

1 Ответ

1 голос
/ 11 мая 2020

У вас есть N приложений для каждого языка. Они размещены на разных доменах. Они на самом деле разные приложения. Поэтому, даже если вы установите все из них по одному URL, вы сможете установить все из них.

В качестве варианта использования одного домена с различными приложениями вы можете создать конфигурацию со всеми языками и соответствующими им JS файлы, или создайте парсер для индекса. html. Затем вам нужно создать своего собственного работника, который будет вставлять правильные сценарии при загрузке страницы (вы не можете сделать это на go, так как код JS уже будет загружен). Это загрузит соответствующее приложение. И там у вас есть рабочие для каждого приложения, я думаю.

Возможно, вы захотите переключить свой инструмент i18n, если вы собираетесь опубликовать его в Google Store как гибридное приложение.

Как другое вы можете предоставить слой для вашего WebView и загружать разные URL в зависимости от выбранного языка.

...