Repository: angular
Issue: enable whitespace preservation marker in XLIFF files by default
Labels: breaking changes,area: i18n,P3

# 🐞 bug report

### Affected Package

The issue is caused by package `@angular/localize` / `@angular-devkit/build-angular`

### Is this a regression?

No

### Description

Localization files XLF (versions 1 & 2) are XML based and should default to using `xml:space="preserve"` rather than just allowing a user to specify the flag. There seems to be some concern https://github.com/angular/angular/issues/38679#issuecomment-688827241 that readers might not support a namespaced attribute, but it's highly likely that a tool is not using a hand rolled XML parser and the attribute would be not cause an error (it may be ignored). Rather than speculate that this might be an error I suggest we change the default and see what breaks. I would imagine nothing would break and I was slightly expecting this not to be the default for some Google internal tooling that possibly messes with the whitespace, but didn't break on the namespaced attribute, but I don't know if Google uses this code path internally.

The `xml:space="preserve"` attribute probably _should_ also belong on the `<target />` and `<source />` tags where `preserveWhitespace` is used https://github.com/angular/angular/blob/47d9b6d72dab9d60c96bc1c3604219f6385649ea/packages/localize/src/tools/src/extract/translation_files/xliff2_translation_serializer.ts#L78 to allow a user to use an xml formatter to normalize / edit whitespace on the file where it is not relevant.

Finally, while I'm suggesting changes to existing functionality `@angular-devkit/build-angular` was mentioned because there is no way to specify the formatOptions to the `@angular-devkit/build-angular:extract-i18n` builder https://github.com/angular/angular-cli/blob/d7494c4d8dfa8f30b36412aab7e5fd1f9f08ac23/packages/angular_devkit/build_angular/src/extract-i18n/index.ts#L67 and I would argue https://github.com/angular/angular/pull/38737 still hasn't _actually_ been fixed (since only users not using the builder can use the option added). I can open a PR against `@angular-devkit/build-angular` but I wanted to talk through the default first since if the default is changed I wouldn't need to add an option to the builder (I could add an option to disable the default if this does turn out to be something readers can't understand and users need an escape hatch)  


## 🌍  Your Environment

**Angular Version:**
<pre><code>
Angular CLI: 11.0.4
Node: 15.4.0
OS: linux x64

Angular: 11.0.4
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1100.4
@angular-devkit/build-angular   0.1100.4
@angular-devkit/core            11.0.4
@angular-devkit/schematics      11.0.4
@angular/cdk                    11.0.2
@angular/material               11.0.2
@schematics/angular             11.0.4
@schematics/update              0.1100.4
rxjs                            6.6.3
typescript                      4.0.5
</code></pre>

cc: @petebacondarwin continuing from https://github.com/angular/angular/issues/39654#issuecomment-747097793