我正在使用@ ngx-translate在我创建的Angular 5应用中进行语言处理。该应用程序有两个功能模块,一个是延迟加载的,另一个是预先加载的。
问题是翻译管道在预先加载的模块中运行良好,但在延迟加载的模块中运行不正常。我该如何解决这个问题?
答案 0 :(得分:6)
在我的lazyload模块中,我必须将它添加到导入:
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
也在lazyloaded组件中我做了类似的事情:
import {TranslateService} from '@ngx-translate/core';
在构造函数中:
private translate: TranslateService
最后onInit:
this.translate.use(language);
它工作得很好。
答案 1 :(得分:5)
我也一直在努力解决同样的问题,但尚未找到可行的答案。
Angular的好心人正在研究i18n,但这可能需要更多时间。
虽然不理想,但您可能需要查看以下文章:
“如何使用ngx-translate为每个延迟加载的模块拆分i18n文件?”@ frogeret https://medium.com/@TuiZ/how-to-split-your-i18n-file-per-lazy-loaded-module-with-ngx-translate-3caef57a738f
答案 2 :(得分:0)
您可以查看适用于Angular和Ionic应用的ngstack/translate库。还提供对延迟加载,页面标题翻译,自定义管道和许多其他强大功能的支持。