ngx-translate - 合并不同模块的翻译文件

时间:2018-03-06 09:39:26

标签: javascript angular angular-cli ngx-translate

我在@ ngx-translate的项目中使用angular-cli。该应用程序具有延迟加载的模块和一个带有组件的共享模块(不是延迟加载)。 语言文件按模块分开。问题是当我在延迟加载的组件中使用共享组件时, 共享组件从延迟加载的模块(feature.xx.json)的转换文件中获取字符串,而不是从app模块(core.xx.json)获取。所以我应该在每个功能模块的翻译文件中声明共享组件的字符串。

我想,共享模块总是使用app模块(core.xx.json)的翻译文件或者自己的翻译文件。

app.module.ts

    export function createTranslateLoader(http: HttpClient) {
        return new TranslateHttpLoader(http, './assets/i18n/core.','.json'); 
    }
    ...
    imports [ 
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [HttpClient]
            },
            isolate: false
        }),
        ...
    ]

shared.module.ts

    imports: [
        TranslateModule,
        ...]

功能模块

    export function createTranslateLoader(http: HttpClient) {
        return new TranslateHttpLoader(http, './assets/i18n/feature.', '.json');
    }
    ...
    imports: [
        ...
        SharedModule,
        TranslateModule.forChild({
            loader: {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [HttpClient]
            },
        isolate: true
        })] 

0 个答案:

没有答案