angular - Transloco translateService.translate 在 app.component.ts 中不起作用

标签 angular typescript translation transloco

如果我在我的 app.component.ts 构造函数中输入以下内容,它不起作用。

alert(this.translateService.translate('navigation.dashboard'));

但是,如果我在子模块中输入相同的代码,它可以正常工作。

这是我的 .json 文件:

    "navigation": {
    "dashboard": "Dashboard"
   }

在我的 app.module.ts 中,也导入了 TranslocoRootModule。

import { TranslocoRootModule } from './transloco/transloco-root.module';

imports: [
 ...  
 HttpClientModule,
 TranslocoRootModule
],

我错过了什么吗?

最佳答案

我也遇到了这个问题。我意识到,当我试图获取翻译时,transloco 文件(即 json 文件)尚未加载。似乎发出 HTTP 请求的顺序不允许在组件加载之前加载所有翻译 json 文件。

这意味着,如果您在不同的页面上,然后通过 Angular 导航到该页面,它将/将会工作(因为翻译文件已加载)。这似乎只是当前页面刷新的问题。

为了解决这个问题,这是我所做的:

...
constructor(private translocoService: TranslocoService,
  private translocoHttpLoader: TranslocoHttpLoader ...) {
...
}

ngOnInit(): void {
...
this.translocoHttpLoader.getTranslation(this.translocoService.getActiveLang())).subscribe(translation => {
  alert(translation.navigation.dashboard);
})
...
}

希望这个例子对您有所帮助。

关于angular - Transloco translateService.translate 在 app.component.ts 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65182178/

相关文章:

java - 在不同端口的同一个 tomcat 上部署 Angular 5 和 spring boot 应用程序

Angular (5) httpclient observe 和 responseType : 'blob'

javascript - 如何创建具有多个可能相互冲突的要求的 .d.ts 文件

PHP iconv() 将 "ä"转换为 "ae"但它应该是 "a"

php - 如何从 Wordpress 插件 PHP 文件自动生成 POT 文件?

javascript - 进行 DomSanitizer API 调用时不使用基本属性?

angular - 类型错误 : Converting circular structure to JSON property 'name' closes the circle

javascript - Angular2 http调用使测试执行两次

javascript - JSDoc/TSDoc 中有没有一种方法可以链接到代码片段?

Django 1.5.5 始终显示原始 (en) 字符串(不翻译)