如何以角度使用来自另一个语言环境的资产?

Pan*_*nda 6 locale typescript angular-i18n angular

我正在使用@angular/localize 以三种语言使用我的应用程序,但在部署服务器时遇到了麻烦。原因是即使所有语言环境都使用相同的资产,它们也会被下载并为每个资产进行部署。

这就是为什么我试图删除除一个语言环境之外的所有资源的原因。我使用脚本并删除了文件夹本身。但是现在我希望其他语言环境使用来自 en-US 的资产,而不是像他们现在所做的那样说找不到 404。

目前有没有办法实现这一目标?

我的语言环境配置是这样的:

"i18n": {
        "sourceLocale": "en-US",
        "locales": {
          "fr":  "src/locale/messages.fr.xtb",
          "pt": "src/locale/messages.pt.xtb",
          "hi": "src/locale/messages.hi.xtb",
        }
      },
Run Code Online (Sandbox Code Playgroud)

并检查服务我正在使用此配置:

"prod-hi": {
                "fileReplacements": [
                    {
                      "replace": "src/environments/environment.ts",
                      "with": "src/environments/environment.prod.ts"
                    }
                  ],
                "optimization": true,
                "outputHashing": "all",
                "sourceMap": false,
                "extractCss": true,
                "namedChunks": false,
                "extractLicenses": true,
                "vendorChunk": false,
                "buildOptimizer": true,
                "deleteOutputPath": false,
                "assets": [],
                "localize": ["hi"]
              },
Run Code Online (Sandbox Code Playgroud)

Min*_*nus 1

在“本地”配置中,您可以使用资产配置来忽略/删除不需要的所有资产。并仍然输出到资产文件夹:

"assets": [
 {
   "glob": "**/*",
   "input": "src/assets/",
   "ignore": [
      "**/hi/*",
      "**/en/*"
   ],
   "output": "/assets/"
 }
]
Run Code Online (Sandbox Code Playgroud)

这取自: https: //angular.io/guide/workspace-config#assets-configuration