Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upng xi18n not working for library #17140
Comments
Hi @multimike77, thanks for reporting this. The docs seems to be incorrect as i18n extraction is only supported at application level. |
Thanks, I thought already that it could be like this. Then I will adjust my expectations for now. Overall scenrio would be like that:
From what I understood from the docs around i18n and ivy in Angular 9, i18n tags are extracted when used in an application. But like this, every application which uses the library will need to provide own translations for the texts used in the library components. This is of course not ideal in regards to reusability. |
@clydin would know more about this topic.
I think there are two sides of this, you can also say that the library author shouldn't be responsible for the translations themselves, but only provide a way to localise the library. Though I do understand that this feature might be useful in some cases. |
In the next few weeks (hopefully) I will be working on new translation extraction tooling that understands the new
|
In our case it's like several shared components and libraries which are used in multiple applications created by different teams throughout the company. The texts and translations for the library components should only be done once and be the same across the applications.
This sounds promising @petebacondarwin ! |
@petebacondarwin just to know about timings, are we going to see library extraction tool for angular 10 or before? |
That's my plan! But it will be tight. |
@petebacondarwin: Is there a way to track the progress for these features? |
@michaelhunziker - I have not made much progress. You can follow the various PRs that are in flight can be seen at https://github.com/angular/angular/pulls?q=is%3Apr+is%3Aopen+label%3A%22comp%3A+i18n%22+ |
@petebacondarwin - is there a way I could use a cmd like localize-translate to do what ng xi18n does? I tried below command, but it still requires -t which is looking for translated files and don't have these files yet. I want to extract i18n attributes in the HTML to messages.xlf. I need to do this in Angular 10.0.3 (localize-extract is not supported). It is okay if just HTML messages get into the messages.xlf file. Please let me know if there is a work around? node_modules/.bin/localize-translate --root=dist/libs/my-lib --source=bundles/**/* -o projects/libs/my-lib/src/locale/ |
@sistla001 - yes. It is called tsc -p tsconfig.app.json
node_modules/.bin/localize-extract -s "out-tsc/**/*.js" -f xlf -o message.xlf |
yeah, but localize-extract is not included with cli 10.0.3, is there an equivalent command that I can use in 10.0.3 library project? |
It is available in |
Command (mark with an
x
)Is this a regression?
No. Related functionaliy only available with new i18n capabilities of angular 9.Description
I want to use ng xi18n command to extract messages for i18n tags which are part of a library project which is part of a monrepo setup created by the cli. According to docs athttps://angular.io/cli/xi18n this is supposed to be possible
ng new lib-i18n
ng add @angular/localize
ng g library my-lib
ng xi18n my-lib
: Result will beAn unhandled exception occurred: Project 'my-lib' does not support the 'extract-i18n' target.
After adding corresponding extract-i18n target in angular.json, error output as below.
I created a minimal demo project which incorporates the scenario describe above. It is located here:
https://github.com/multimike77/lib-i18n-issue
Checkout and run
npm install
. Then runng xi18n my-lib
and it should produce error as below.Anything else relevant?