Как обслуживать различные Angular локали при разработке с использованием ng serve? - PullRequest
2 голосов
/ 14 марта 2020

Я разрабатываю приложение на двух разных языках (fa / en), используя Angular Интернационализация (i18n) .

  • Цель состоит в том, чтобы развернуть два разных встраивается в подпапки на сервере (example.com/en/...)
  • Эти сборки отличаются не только переводом, но и стилями и направлениями компоновки.

Я могу обслуживать любую из локализаций (языков) следующим образом

  "architect": {
    "build": {
      ...
      ,
      "configurations": {
      ...
        },
        "fa": {
          "localize": ["fa"],
          "baseHref": "/fa/"
        },
        "en": {
          "localize": ["en"],
          "baseHref": "/en/"
        }
      }
    },
    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "app:build"
      },
      "configurations": {
        "production": {
          "browserTarget": "app:build:production"
        },
        "en": {
          "browserTarget": "app:build:en"
        },
        "fa": {
          "browserTarget": "app:build:fa"
        }
      }
    },
    "extract-i18n": {
      "builder": "@angular-devkit/build-angular:extract-i18n",
      "options": {
        "browserTarget": "app:build"
      }
    },
    ...
  }

А потом ng serve --configuration=en работает и у меня это на http://localhost:4200/en/... Но Мне нужно обслуживать оба языка одновременно Во время разработки нужно работать над стилями и правильной версткой и проверять переводы. Если я пытаюсь сделать это в конфигурации сборки "localize": ["fa","en"], я получаю следующую ошибку:

An unhandled exception occurred: The development server only supports localizing a single locale per build

Лучшее, что я получил, - это запуск ng serve .. несколько раз на разных порты иметь два экземпляра сервера разработки в разных локалях, но это довольно уродливо. Я надеюсь на лучшее решение.

1 Ответ

0 голосов
/ 09 апреля 2020

В Angular 9 сервер разработки (ng serve) может использоваться только с одной локалью.

Однако вы все равно можете обслуживать каждую локаль на разных портах, выполнив две отдельные команды:

ng serve --configuration=fa --port 4200

ng serve --configuration=en --port 4201

Надеемся, что они представят несколько вариантов локали для сборок разработки в Angular 10 ?

...