如何在Google App Engine上部署Angular多语言应用程序

时间:2019-06-30 13:34:28

标签: angular google-app-engine internationalization angular-i18n

我已经用angular/clii18n multilanguage support(以及英语,西班牙语,法语的翻译)构建了Angular 8应用程序。

这样我就可以多次构建我的应用程序,每种语言都可以构建一个应用程序,并且构建文件保存在dist/my-app/endist/my-app/esdist/my-app/fr等中……

现在,我想在Google App Engine上部署我的应用程序,但是我不明白我应该做什么/配置以部署我的所有lang特定版本的应用程序。

我已经在GAE上发布了我的默认(英文)版本,并且可以运行,但是我不知道如何/在何处部署所有其他版本(es,fr等)。

我应该使用调度文件吗?最好的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以将dist/my-app视为与AppEngine有关的根文件夹。

  • 在此文件夹内添加index.html(以根据浏览器首选项或通过用户选择来重定向到默认语言环境)。
  • 在GAE中将整个文件夹部署为一个应用程序。
  • 每个本地化的应用都将是子文件夹,然后由GAE充当https:///xxxx.appspot.com/en/ ...

要构建具有多个语言环境的多个应用程序,请选中Angular official docs

每个href应设置为语言环境:

"baseHref": "/en/",

然后,更新app.yaml和处理程序以服务所有子文件夹。

例如,它应该类似于:

handlers:
- url: /fr/(.+)
  static_files: app/fr/index.html
  upload: app/fr/index.html
- url: /en/(.+)
  static_files: app/en/index.html
  upload: app/en/index.html
- url: /(.+)
  static_files: app/index.html
  upload: app/index.html
- url: /
  static_files: app/index.html
  upload: app/index.html

但是我不是处理程序正则表达式的专家,所以我敢肯定可以对其进行优化。

Deploy文件夹应如下所示:

deploy
  app.yaml
  app
    index.html // page to propose user to select locale or auto redirect
    fr
      index.html
      bundles.js...
    en
      index.html
      bundles.js...