有没有一种方式可以使 Web Manifest 本地化?即有多个翻译的名称、描述等...。
我已经想到了几种潜在的解决方案,但它们各自都有相当大的缺点...
潜在方案1(首选但不确定是否可行):根据url中的语言环境(例如 example.com/en/foo),加载相对应的manifest。
例如: - 对于 example.com/en/foo,加载 example.com/en/manifest.json - 对于 example.com/jp/foo,加载 example.com/jp/manifest.json
缺点: - 我认为这并不能真正起作用,因为一个网站只能有一个manifest(就我所知道的),而且我非常确定它需要在根目录下。 - 即使这是可能的,考虑到我的应用是静态托管的SPA,我不太确定如何实现它,即在manifest被浏览器加载之前,我无法动态更新链接到manifest的文件。也许我可以相对于URI加载manifest,但我不是100%确定这会起作用。
潜在方案2:托管多个版本的PWA(子域名或TLD)... 例如: - en.example.com/example.com - jp.example.com/example.jp - 等等...
由于manifest是通过构建过程生成的,通过将多个部署步骤添加到流水线中,这实际上非常容易实现。然后我将使用每个部署的环境变量来确定要插入manifest中的文本。
缺点: - 应用程序语言的切换不可能(这是客户的一个非常重要的特性)。 - 无论实现起来有多“容易”,它看起来都不正确。
我已经想到了几种潜在的解决方案,但它们各自都有相当大的缺点...
潜在方案1(首选但不确定是否可行):根据url中的语言环境(例如 example.com/en/foo),加载相对应的manifest。
例如: - 对于 example.com/en/foo,加载 example.com/en/manifest.json - 对于 example.com/jp/foo,加载 example.com/jp/manifest.json
缺点: - 我认为这并不能真正起作用,因为一个网站只能有一个manifest(就我所知道的),而且我非常确定它需要在根目录下。 - 即使这是可能的,考虑到我的应用是静态托管的SPA,我不太确定如何实现它,即在manifest被浏览器加载之前,我无法动态更新链接到manifest的文件。也许我可以相对于URI加载manifest,但我不是100%确定这会起作用。
潜在方案2:托管多个版本的PWA(子域名或TLD)... 例如: - en.example.com/example.com - jp.example.com/example.jp - 等等...
由于manifest是通过构建过程生成的,通过将多个部署步骤添加到流水线中,这实际上非常容易实现。然后我将使用每个部署的环境变量来确定要插入manifest中的文本。
缺点: - 应用程序语言的切换不可能(这是客户的一个非常重要的特性)。 - 无论实现起来有多“容易”,它看起来都不正确。
example.com
,我的应用程序将使用 JavaScript 将用户重定向到example.com/en
。因此,即使我可以相对于 en 加载清单,也为时已晚,因为在重定向用户之前,清单已经加载了。为您的努力点赞 :-D - Ben Careymanifest.webmanifest
? - Justin