J'utilise @ ngx-translate pour la gestion de la langue dans une application Angular 5 que je crée. L'application dispose de deux modules de fonctionnalités, l'un chargé et l'autre chargé.
Le problème est que le tuyau de translation fonctionne bien dans le module chargé d'avance, mais pas dans le module chargé paresseux. Comment puis-je résoudre ce problème?
J'ai également lutté avec le même problème et je n'ai pas encore trouvé de réponse réalisable.
Les personnes de Angular travaillent sur i18n, mais cela risque de prendre plus de temps.
Bien que cela ne soit pas idéal, vous pouvez consulter l'article suivant:
“Comment diviser votre fichier i18n par module chargé paresseux avec ngx-translate?” @Frogeret https://medium.com/@TuiZ/how-to-split-your-i18n-file-per-lazy-loaded- module-with-ngx-translate-3caef57a738f
Dans mes modules lazyload, je devais ajouter ceci aux importations:
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
aussi en composant lazyloaded j'ai fait quelque chose comme ça:
import {TranslateService} from '@ngx-translate/core';
en constructeur:
private translate: TranslateService
et enfin onInit:
this.translate.use(language);
Et cela fonctionne très bien.
Vous pouvez vérifier la bibliothèque ngstack/translate qui fonctionne pour les applications Angular et Ionic. Prend également en charge le chargement paresseux, les traductions de titre de page, les pipes personnalisées et de nombreuses autres fonctionnalités intéressantes.