如何全球化ngx-translate的翻译管道?

时间:2019-07-18 01:20:48

标签: javascript angular pipe ngx-translate

我正在使用ngx-translate软件包来国际化我的角度应用程序。使用这样的翻译管道翻译文本

{{ 'title' | translate }}

问题是,当我尝试在应用程序的其他模块中使用此管道时,它会出错。找不到管道翻译

我尝试使用SharedModule来解决问题,并且可以正常工作,但是,我认为只有在有很多要使用翻译的模块时,总是仅将SharedModule用于翻译才很烦人

有什么方法可以使翻译管道全球化吗? 这样我就可以使用模块中任何组件的翻译了

1 个答案:

答案 0 :(得分:0)

您的主模块需要导入Splash Screen,也可以像下面这样制作单独的模块并将其导入到主模块中:

TranslateModule.forRoot(transLoader)

所有子模块都需要导入:import { NgModule } from '@angular/core'; import { TranslateModule, TranslateLoader } from '@ngx-translate/core'; import { AngularFirestore } from '@angular/fire/firestore'; import { FirestoreTranslateLoader } from "./firestore-translate-loader"; export function AngularFireFactory(db: AngularFirestore) { return new FirestoreTranslateLoader(db); } const transLoader = { loader: { provide: TranslateLoader, useFactory: AngularFireFactory, deps: [AngularFirestore] } } @NgModule({ declarations: [], imports: [ TranslateModule.forRoot(transLoader), ], }) export class TranslModule { } ,而无需调用TranslateModule。或像下面这样将其粘贴到.forRoot()

SharedModule

关于我的工厂装载程序,如果您需要从firebase下载翻译:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateModule } from '@ngx-translate/core';

@NgModule({
    declarations: [],
    imports: [
        CommonModule,
        TranslateModule,
    ],
    exports: [
        CommonModule,
        TranslateModule,
    ]
})
export class SharedModule { }