Ionic3 Не удалось найти трубу 'translate' - PullRequest
0 голосов
/ 27 июня 2018

Привет, прошло много дней с тех пор, как я безуспешно пытался решить эту проблему. Когда я пытаюсь использовать конвейерный перевод, я получаю эту ошибку

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

Я использую угловой 5.

это версии, которые я использую для перевода

"@ngx-translate/core": "^9.1.1",
"@ngx-translate/http-loader": "^2.0.1",

установка в минуту

npm install @ngx-translate/core @ngx-translate/http-loader --save

Это моя страница Home.html

<h2>{{"HELLO" | translate }}</h2>

JSON-файл для перевода:

assets/i18n/en.json

{
"HELLO": "hello"
}

assets/i18n/it.json

{
"HELLO": "ciao"
}

в экспорте я использовал 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]
  }
}),
],

И это мой конструктор app.component.ts

constructor(..., translate: TranslateService) {
     translate.setDefaultLang('en');
     ...
}

1 Ответ

0 голосов
/ 27 июня 2018

Мы можем видеть, что у вас есть субмодуль AdminPannelPageModule, где на самом деле выдается ошибка. Вы также должны отметить TranslateModule в этом модуле, но пропустите forRoot(). Так в вашем AdminPannelModule:

imports: [
  ....
  TranslateModule
],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...