在Angular 5中使用延迟加载模块@ ngx-translate

时间:2018-01-24 08:47:31

标签: angular5 ngx-translate

我正在使用@ ngx-translate在我创建的Angular 5应用中进行语言处理。该应用程序有两个功能模块,一个是延迟加载的,另一个是预先加载的。

问题是翻译管道在预先加载的模块中运行良好,但在延迟加载的模块中运行不正常。我该如何解决这个问题?

3 个答案:

答案 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库。还提供对延迟加载,页面标题翻译,自定义管道和许多其他强大功能的支持。