如何使用单个 Service Worker 来安装多语言 Angular PWA?

2023-12-23

我已经准备了本地化语言版本的应用程序。为此,我使用了原生 Angular i18n 模块,它准备了两个应用程序包,每个包都有适当的语言。

该应用程序的每个版本都可以在我的 nginx 服务器上的单独位置下使用:

  • myapp.com/en/...
  • myapp.com/pl/...

我希望我的申请能够安装一次作为 PWA 并使用(单个?)服务工作者提供两种语言版本。

不幸的是我现在能做的就是@Angular/PWA 模块是为每个应用程序提供单独的服务工作人员,这强制单独安装我的应用程序的每种语言版本。

我的问题是:有什么方法可以让应用程序按照我描述的方式工作@angular/pwa 或 Workbox?

// 顺便说一句,有点令人惊讶的是 Angular 的创建者没有强调 @angular/localize 与 @angular/pwa 的集成。


每种语言都有 N 个应用程序。它们托管在不同的域上。它们实际上是不同的应用程序。因此,即使您将所有这些都安装在一个 URL 中,您也可以安装所有这些。

作为将一个域与不同应用程序一起使用的一种选择,您可以创建一个包含所有语言及其相应 JS 文件的配置,或者为 index.html 创建一个解析器。然后,您需要创建自己的工作程序,它将在页面加载时插入正确的脚本(您不能在运行中执行此操作,因为 JS 代码已经加载)。这将加载适当的应用程序。我想,每个应用程序都有你的工作人员。

如果您打算将 i18n 工具作为混合应用在 Google 商店中发布,您可能需要考虑切换它。

作为另一个选项,您可以为 WebView 提供一个层,并根据用户选择的语言加载不同的 URL。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用单个 Service Worker 来安装多语言 Angular PWA? 的相关文章

  • Angular:先完全安装 Service Worker

    我正在用 Angular 编写一个 PWA 需要准备好从单页加载中离线 Service Worker 生命周期的文档指定 Worker 已安装但不会立即激活 https developers google com web fundament
  • Angular 2\4 哈希 url 保留index.html

    背景 Angular 4 ng cli RouterModule useHash true 当我使用浏览到我的应用程序时http server index html它决定http server url 中省略了index html 此外 每
  • 单击上一页的按钮路由到该页面后如何刷新页面

    我有 2 个页面 一个主页和一个页面 2 当我单击主页上的按钮时 它会路由到 page2 现在 单击主页上的按钮后 当我到达第 2 页时 它应该刷新 因为我的项目中存在一些缓存问题 我在ngoninit上添加了window location
  • 澳大利亚的 Facebook Open Graph 区域设置

    我正在尝试为澳大利亚网站添加 og locale 标签 但 Facebook 的 linter 告诉我有一个错误 根据文档 并假设正确的内容应该是什么 我已将其添加到我的页面标题中 Facebook 的 linter http develo
  • 如何让Angular2绑定innerHTML中的组件

    我想创建一个组件myApp它将把控制器上的属性中的 HTML 嵌入到其模板中 但是 其中一些 HTML 可能包含其他组件选择器 import InfoComponent from Component selector myApp templ
  • Angular 2 runOutsideAngular 仍然改变 UI

    从我的理解来看runOutsideAngular https angular io docs ts latest api core index NgZone class html runOutsideAngular anchor 如果我需要
  • nginx设置问题

    我知道这不是一个直接的编程问题 但是 stackoverflow 上的人似乎能够回答任何问题 我有一台运行 Centos 5 2 64 位的服务器 非常强大的双核 2 服务器 具有 4GB 内存 它主要提供静态文件 Flash 和图片 当我
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • 如何使用降级 Module() 引导应用程序与 ui-router 混合

    我正在使用 ui router 混合 https github com ui router angular hybrid https github com ui router angular hybrid 引导 经典 方式 我们在数据网格中
  • D3、TS 和 Angular 2

    我正在尝试将 D3 v4 与 Angular 2 Typescript 一起使用 我目前正在研究 D3 v4 我能够遵循 stackoverflow 中类似问题的一些答案 但没有成功 我已经导入了大部分 D3 库及其类型 我使用的是 TS
  • Angular4 屏蔽输入中的字符而不更改其值

    如何屏蔽输入中除 Angular 4 中最后四个字符之外的所有字符 即显示 而不更改实际值 例如 输入文本框中的数字应类似于 1234 且值应为 7671234 使用指令 Directive selector stringHide expo
  • 在哪里存储角度中的 JWT 令牌?

    我正在使用 Django 和 Angular 构建一个应用程序 目前 我正在本地存储上存储后端发出的 JWT 但是 我担心 XSS 攻击 我应该使用仅 HTTP 的 cookie 来存储令牌吗 我还考虑将令牌存储在我的身份验证服务类中的变量
  • 聆听 Angular 2 中的元素可见性

    我正在为我的网络应用程序使用 Bootstrap 和 Angular 2 v4 我想监听指令中的元素以了解可见性变化 我的元素有一个可以隐藏其子元素的父元素hidden sm up我需要在每次隐藏或显示时触发一个函数 div hidden
  • 使用 PM2 将节点作为服务运行 - 连接被拒绝

    我正在关注this https www digitalocean com community tutorials how to set up a node js application for production on ubuntu 16
  • 有谁知道在 Angular 2 应用程序中使用的简单日期选择器?

    有谁知道在 Angular 2 应用程序中使用的简单日期选择器 我似乎无法让 jquery ui datepicker 工作 有谁知道一个容易实施的方法 我尝试过 html date 但它不适用于所有浏览器 我正在使用带有 html5 和
  • Angular 2 - ng 构建与 webpack 构建

    我想了解构建和部署 Angular 2 Web 应用程序的最佳方法是什么 我最终需要将其作为 Web 捆绑资源提供给我的 dropwizard 应用程序 我试图了解是否应该保留 ng build 并使用它来生成我的 dist 文件夹 或者我
  • 角度 2 通道数组到自定义验证器(模板驱动形式)

    我需要将一个对象数组传递给 a2 自定义验证器 然后我想根据该数组中的记录验证模板驱动表单字段的值 但是我无法检索验证器内的对象 我唯一能看到的是它的名称作为字符串 如有任何帮助 我们将不胜感激
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • WordPress 3.0 .htaccess 到 nginx 重写规则的转换

    RewriteEngine On RewriteBase BASE uploaded files RewriteRule files index php L RewriteCond REQUEST URI wp content plugin
  • 空安全 AppLocalization 字符串的最佳方法

    Question 我在用AppLocalizations of context myString在我的 null safe flutter 应用程序中国际化字符串 我的 IDE 告诉我AppLocalizations of context

随机推荐

  • Pyspark - 多列聚合

    我有如下数据 文件名 babynames csv year name percent sex 1880 John 0 081541 boy 1880 William 0 080511 boy 1880 James 0 050057 boy
  • 如何使用wait\notify处理器?

    我正在运行 nifi 实例 1 2 0 我只是尝试使用 Wait Notify 处理器并参考以下内容http ijokarumawak github io nifi 2017 02 02 nifi notify batch why merg
  • Go符文类型解释

    我在 Go 中找到了符文类型 并且有一个简单的问题但值得解释一下 我发现它是int32的别名 目的是区分数字和字符值 http golang org pkg builtin rune http golang org pkg builtin
  • 如何使用 Moq 模拟会话对象集合

    我在用shanselmann 的 MvcMockHelper http www hanselman com blog ASPNETMVCSessionAtMix08TDDAndMvcMockHelpers aspx我正在使用 Moq 来模拟
  • Mysql 使用Where 进行选择,如果where 条件不存在则默认

    我有表 Product 和 ProductDetails 在 ProductDetails 中 我有包含多种语言的产品描述的行 按 lang 列区分 并非每个产品都有每种语言的描述 如何进行选择以选择指定语言的描述 通过Where prod
  • 如何根据用户输入的值创建验证范围?

    我想在单元格 A1 中创建一个验证范围 此验证允许用户输入从 1 到 x 的值 而 x 指的是用户在 B1 中输入的值 例如 如果用户在 B1 中输入值100 那么我们只能在单元格 A1 中输入1到100 我想知道如何在 C 中做到这一点
  • 访问 Angular Material 表中的输入字段

    几天来我一直在尝试从角度材质表内的输入字段获取数据 我基本上是用来自 API 的值填充表格 但是每当我们没有获得任何日期时 在我的情况下 课程没有设置预定日期 我会插入一个文本框 其中应显示该值这样用户就可以为该特定课程设置日期 Like
  • Orange Hrm 3.1-向选项卡添加新的菜单标题

    我是 symfony 框架的新手 我使用的是 Orangehrm 3 1 1 我在第二级选项卡中添加了一个新的菜单标题 但我不知道如何导航到特定的 href 链接 请帮我完成步骤 这是我通过数据库添加菜单项的方法 要在 Orangehrm
  • 如何在 Android CalendarView 上仅显示特定月份?

    我想在 CardView 上显示特定月份without下一个和上一个箭头用于导航日历 如果我想显示 2010 年 2 月 用户必须只能看到 2010 年 2 月 他们无法查看下个月或上个月 我跟着this https stackoverfl
  • 通过回溯分割字符串

    我正在尝试编写一个代码 将无空格的字符串分割成有意义的单词 但是当我给出像 arealways 这样的句子时 它返回 a real ways 而我想要的是 are 总是 我的字典包含所有这些词 我怎样才能编写一个不断回溯直到找到最佳匹配的代
  • 在R中绘制图形G=(V,E)

    我想通过 ggplot 或一些 R 内置函数在 R 中绘制标准 G V E 图 我有一个包含顶点坐标的数据框 gt V x y 1 589 3438 6422 883 2 8762 6921 7789 147 3 7973 0883 455
  • 样式显示在 Firefox、Opera、Safari 中不起作用 -(IE7 可以)

    我有绝对的定位div我想在用户单击链接时显示 这onclick链接的调用一个 js 函数 该函数将 div 的显示设置为阻止 也尝试过 inline table cell inline table ETC 这在 IE7 中效果很好 但在我尝
  • 语法高亮显示:Eclipse 如何做到如此快?

    我用 Java 为 Android 开发了一个语法荧光笔 它运行良好 但问题是处理大文件时速度可能会很慢 所以我想知道像 Eclipse 和 Gedit Ubuntu 这样的源代码编辑器如何快速突出显示您刚刚编写的内容 例如 如果您在编写
  • 任何人都知道用 *[class] 标记一个类的目的是什么

    今天我收到了一位客户发来的文件 该文件是电子邮件模板 在移动版本的 css 中 所有类规范均以 class 开头 e g class centertext somespec 0 有人知道将其添加到课程中的目的是什么吗 thanks 有一个雅
  • Base64 编码:非法 Base64 字符 3c

    我正在尝试将 xml 格式的数据解码为字节base64我遇到了问题 我的方法是在java中 它需要一个String数据并将其转换为bytes就像下面这样 String data string of data in xml format by
  • 将 Common Lisp 代码移植到 Clojure

    将 Common Lisp 应用程序移植到 Clojure 有多实用 更具体地说 Common Lisp 中存在哪些 Clojure 中不存在的功能 需要重写 有一个clojure org 上的列表 http clojure org lis
  • Go中如何进行除法运算

    我正在尝试用 Go 进行简单的除法 fmt Println 3 10 这会打印 0 而不是 0 3 这有点奇怪 有人可以分享一下这背后的原因是什么吗 我想在 Go 中执行不同的算术运算 Thanks 二元运算的操作数3 10是无类型常量 规
  • 了解 RTF 并使用 vb.net 进行编辑

    我的 vb net 表单中有这个 RichTextbox 我想当用户单击按钮时 例如加粗所选文本 我将如何执行此操作 另外 我不想使用标准的 vb net 表达式 例如RichTextBox1 SelectedText Font Bold
  • QString 的最大大小

    我在 Ubuntu 16 04 64 位架构上使用 Qt 5 9 我有一个要求 我需要从一个文件中获取输入 该文件的字符范围在 10 8 范围内 不幸的是 将文件分成几部分并进行处理并不是一种选择 因为我需要文件中的全部数据来操作我的代码
  • 如何使用单个 Service Worker 来安装多语言 Angular PWA?

    我已经准备了本地化语言版本的应用程序 为此 我使用了原生 Angular i18n 模块 它准备了两个应用程序包 每个包都有适当的语言 该应用程序的每个版本都可以在我的 nginx 服务器上的单独位置下使用 myapp com en mya