Ionic3无法找到管道"翻译"

ale*_*ini 10 ionic-framework ngx-translate ionic3 angular

嗨,几天以来我试图解决这个问题但没有成功.当我尝试使用管道翻译时,我得到了这个错误

Error: Uncaught (in promise): Error: Template parse errors:
The pipe 'translate' could not be found ("
<ion-content padding>
<h2>{{[ERROR ->]"HELLO" | translate }}</h2>
</ion-content>
"): ng:///AdminPannelPageModule/AdminPannelPage.html@11:8
Run Code Online (Sandbox Code Playgroud)

我正在使用角5.

这些是我用于翻译的版本

"@ngx-translate/core": "^9.1.1",
"@ngx-translate/http-loader": "^2.0.1",
Run Code Online (Sandbox Code Playgroud)

Npm安装

npm install @ngx-translate/core @ngx-translate/http-loader --save
Run Code Online (Sandbox Code Playgroud)

这是我的Home.html页面

<h2>{{"HELLO" | translate }}</h2>
Run Code Online (Sandbox Code Playgroud)

用于翻译的JSON文件:

assets/i18n/en.json

{
"HELLO": "hello"
}

assets/i18n/it.json

{
"HELLO": "ciao"
}
Run Code Online (Sandbox Code Playgroud)

在导出我使用export function setTranslateLoader (http: HttpClient)而不是使用export function setTranslateLoader (http: Http)因为如果不是它给了我这个错误:Argument of type 'Http' is not assignable to parameter of type 'HttpClient '. Property 'handler' is missing in type 'Http'.

在app.module.ts中有我的导入

import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { HttpClientModule, HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';

export function setTranslateLoader(http: HttpClient) {
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}


@NgModule({
imports: [
HttpClientModule,
IonicModule.forRoot(MyApp),
TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: (setTranslateLoader),
    deps: [HttpClient]
  }
}),
],
Run Code Online (Sandbox Code Playgroud)

这是我的app.component.ts构造函数

constructor(..., translate: TranslateService) {
     translate.setDefaultLang('en');
     ...
}
Run Code Online (Sandbox Code Playgroud)

AJT*_*T82 12

我们可以看到你有一个子模块AdminPannelPageModule,实际上抛出了错误.您还需要TranslateModule在该模块中进行标记,但请跳过forRoot().所以在你的AdminPannelModule:

imports: [
  ....
  TranslateModule
],
Run Code Online (Sandbox Code Playgroud)