我正在使用ngx-translate
软件包来国际化我的角度应用程序。使用这样的翻译管道翻译文本
{{ 'title' | translate }}
问题是,当我尝试在应用程序的其他模块中使用此管道时,它会出错。找不到管道翻译
我尝试使用SharedModule
来解决问题,并且可以正常工作,但是,我认为只有在有很多要使用翻译的模块时,总是仅将SharedModule用于翻译才很烦人
有什么方法可以使翻译管道全球化吗? 这样我就可以使用模块中任何组件的翻译了
答案 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 { }