## E2E tests There are four different sets of e2e tests in this folder. They are all testing different translation scenarios, but they are all built with IVY enabled. ### runtime Translations are provided at runtime by calling `loadTranslations()` in the polyfill.ts ### de and fr The application is built (into the `dist` folder) and then two sets of translations (`src/locales/messages.(de|fr).json`) are used to generate two copies of the app, which have been translated (compile-time inlined). These translated apps are stored in `tmp/translations/(de|fr)`. ### legacy The legacy `ng xi18n` tool extracts the messages from the Angular templates, into the XLIFF 1.2 format with legacy message ids (`tmp/legacy-locales/messages.legacy.xlf`). The translation file is modified to apply a simple translation. The app must be compiled using the `i18nLegacyMessageIdFormat` option set to ensure that the correct message ids are used to match those in the translation files. The app is translated using the compile-time inlining tool to generate a copy that has the translated message in it. ## Hosting Since the CLI hosts from and in-memory file-system the compile-time inliner is not able to translate the output files. So the `de`, `fr` and `legacy` apps must be statically built to disk and translated there. Since the translated app is now on disk, we cannot use the CLI to serve it. Instead we use a simple static HTTP server instead.