Open
Description
🐞 bug report
I can't use a translation file for en-US:
i18n": {
"locales": {
"en-US": {
"baseHref": "delete/us/en_us",
"translation": "messages.en-us.xlf"
}
}
}
Description
- Our app is translated into 40+ languages
- We want our translation department to be responsible for all strings
- We want to ignore the strings our developers have written in the HTML files
- Therefore we need one build per messages.xlf file and no build for the "sourceLocale"
- At the moment we are forced to manually copy the strings from the messages.en-us.xlf file back into our HTML every time our translation department makes a change to en-US
Possible solutions:
- Allow
"translation"
as a property of"sourceLocale"
"sourceLocale": {
"code": "en-US",
"translation": "messages.en-us.xlf"
}
- Add option to prevent the build of the source locale
🔬 Minimal Reproduction
https://github.com/MartinJaskulla/angular-issue-38316
🔥 Exception or Error
An unhandled exception occurred: An i18n locale ('en-US') cannot both be a source locale and provide a translation.
🌍 Your Environment
Angular Version:
Angular CLI: 9.0.7
Node: 12.13.1
OS: darwin x64
Angular: 9.0.7
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.900.7
@angular-devkit/build-angular 0.900.7
@angular-devkit/build-optimizer 0.900.7
@angular-devkit/build-webpack 0.900.7
@angular-devkit/core 9.0.7
@angular-devkit/schematics 9.0.7
@angular/localize 9.1.12
@ngtools/webpack 9.0.7
@schematics/angular 9.0.7
@schematics/update 0.900.7
rxjs 6.5.5
typescript 3.7.5
webpack 4.41.2
Anything else relevant?
I know that there are several workarounds. For example we could provide a non-existent source locale "sourceLocale": "aa-aa"
and delete the build afterwards. However our app is very big and we want to save the build time.
Furthermore our actual setup is more complex than the example provided above. For example the translations for the same locale e.g. my-app.com/de/en-US and my-app.com/us/en-US can be different. It would be useful for angular.json to provide some sort of nesting of the locales.