【问题标题】:Angular internationalization serve in development modeAngular 国际化服务于开发模式
【发布时间】:2021-06-09 06:35:05
【问题描述】:

我想体验 angular i18n (https://angular.io/guide/i18n#build-from-the-command-line)。 我可以使用一种语言环境为我的应用程序提供服务,这没关系。但我无法调试应用程序,因为这是捆绑的。

我正在使用 Angular 12

问题 如何在普通开发人员模式下使用国际化 (i18n)(没有捆绑应用程序)?或者也许有一个选项可以在没有 i18n 的情况下进行配置,并且只在生产模式下使用 i18n 来构建应用程序?

angular.json

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "pomodoro-app": {
      "projectType": "application",
      "schematics": {
        "@schematics/angular:component": {
          "style": "scss"
        },
        "@schematics/angular:application": {
          "strict": true
        }
      },
      "root": "",
      "sourceRoot": "src",
      "prefix": "pom",

      "i18n": {
        "sourceLocale": "en-US",
        "locales": {
          "pl": {
            "translation": "src/locale/messages.pl.xlf"
          },
          "en": {
            "translation": "src/locale/messages.en.xlf"
          }
        }
      },
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "localize": true,
            "outputPath": "dist",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "tsconfig.app.json",
            "assets": ["src/favicon.ico", "src/assets"],
            "styles": ["src/styles/styles.scss"],
            "scripts": [],
            "aot": true,
            "optimization": {
              "fonts": false
            }
          },
          "configurations": {
            "production": {
              "optimization": true,
              "sourceMap": false,
              "namedChunks": false,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {...},
                {...}
              ],
              "fileReplacements": [...],
              "outputHashing": "all"
            },
            "development": {
              "buildOptimizer": false,
              "optimization": false,
              "vendorChunk": true,
              "extractLicenses": false,
              "sourceMap": true,
              "namedChunks": true
            },
            "en": {
              "localize": ["en"],
              "baseHref": "/en/"
            },
            "pl": {
              "localize": ["pl"],
              "baseHref": "/pl/"
            }
          },
          "defaultConfiguration": "production"
        },
        "serve": {
          "builder": "@angular-devkit/build-angular:dev-server",
          "options": {
            "browserTarget": "pomodoro-app:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "pomodoro-app:build:production"
            },
            "en": {
              "browserTarget": "pomodoro-app:build:en"
            },
            "pl": {
              "browserTarget": "pomodoro-app:build:pl"
            }
          },
          "defaultConfiguration": "development"
        },
        "extract-i18n": {
          "builder": "@angular-devkit/build-angular:extract-i18n",
          "options": {
            "browserTarget": "pomodoro-app:build"
          }
        },
        "test": {...}
        }
      }
    }
  },
  "defaultProject": "pomodoro-app",
  "cli": {
    "defaultCollection": "@ngrx/schematics"
  }
}

附: 我已经检查了文档和实时示例 (https://angular.io/generated/live-examples/i18n/stackblitz.html),但我找不到可以帮助我解决这个问题的东西。

【问题讨论】:

    标签: angular angular-i18n angular12 angular-localize


    【解决方案1】:

    我找到了解决方案,angular.json 配置中的 build 和 serve 部分有问题:

    这里是差异

    ...
        "build": {
              "configurations": {
                "development-en": {
                  "buildOptimizer": false,
                  "optimization": false,
                  "vendorChunk": false,
                  "extractLicenses": false,
                  "sourceMap": true,
                  "localize": ["en"],
                  "baseHref": "/en/"
                },
                "development-pl": {
                  "buildOptimizer": false,
                  "optimization": false,
                  "vendorChunk": false,
                  "extractLicenses": false,
                  "sourceMap": true,
                  "localize": ["pl"],
                  "baseHref": "/pl/"
                },
               ... 
          },
    ...
        "serve": {
            ...
            "configurations": {
                  "development-en": {
                      "buildOptimizer": false,
                      "optimization": false,
                      "vendorChunk": false,
                      "extractLicenses": false,
                      "sourceMap": true,
                      "localize": ["en"],
                      "baseHref": "/en/"
                    },
                   "development-pl": {
                      "buildOptimizer": false,
                      "optimization": false,
                      "vendorChunk": false,
                      "extractLicenses": false,
                      "sourceMap": true,
                      "localize": ["pl"],
                      "baseHref": "/pl/"
                },
            }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-29
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 2017-06-09
      • 2017-09-16
      • 2020-06-11
      • 2021-07-15
      相关资源
      最近更新 更多