我正在使用ngx-translate
库进行翻译。在我的组件中(延迟加载的路由),当我设置以下内容时,它可以正常工作:
constructor( public translate:TranslateService ) {
this.translate.setDefaultLang( this.langService.lang );
this.translate.use( this.langService.lang );
}
我有自己的 LangService ,用于保存用户选择的语言。我将其设置为lang
属性,并在其中使用TranslateService:
lang:string = "fa";
constructor(public translate: TranslateService) {
// this works
console.log(this.lang);
// this doesn't work
this.translate.setDefaultLang( this.lang );
this.translate.use( this.lang );
}
现在,我只是将LangService注入到我的组件中,但是翻译不起作用。有想法吗?
注意:我将TranslateModule导入了SharedModule,并在其他延迟加载的模块中导入了该SharedModule。
答案 0 :(得分:0)
您是否将TranslateModule添加到SharedModule中的导出数组?
您的自定义LangService是否在根目录中提供?
这里是一个例子:
1-您的自定义服务:
@Injectable({
providedIn: 'root'
})
export class CustomTranslateService {
constructor(private translate: TranslateService) {}
}
2-将TranslateModule添加到SharedModule中的导出数组。
3-在组件中注入自定义服务:
@Component({
selector: 'app-footer',
templateUrl: './footer.component.html',
styleUrls: ['./footer.component.scss']
})
export class FooterComponent implements OnInit {
constructor(private translate: CustomTranslateService) {
}
ngOnInit(): void {
// Use it here...
}
}