I am working on a large project using angular 6. This project needs significant i18n integration. I am trying to make the right decision as to how to proceed.
The way I see it is that I can choose between:
- ngx-translate (https://github.com/ngx-translate/core)
- Angular i18n (https://angular.io/guide/i18n)
I am leaning toward choosing option 2; Angular's i18n. This is because it is Angular's own built in package and that just sits better with me. Apparently it is also better for SEO and marginally better for performance without any work around. Also, now it is released I think ngx-translate might be deprecated. Lot's of info here: Angular 5 internationalization.
However here are my reservations:
- Apparently Angular's version is quite new / still catching up (https://github.com/ngx-translate/core/issues/495). Is it too new to take on?
- Apparently I have to have a separate website build for each language (https://angular.io/guide/i18n#template-translations)??? I really don't think that would be a good thing. Is that right? or is it a case that template files are dynamically inserted each time? I know that with ngx-translate the translated words are just stored in .json files - I like the neatness of that. I don't think we want a bunch of different website builds.
Is there a way to do live language switching with angular i18n? i.e. switching language on the page without reloading / refetching data from the server? Is that what they call JIT?
Has Anyone tried https://github.com/robisim74/angular-l10n? looks very good also.