Angular перевод не работает с angular 9 - PullRequest
0 голосов
/ 20 июня 2020

У меня есть приложение Angular9 . Помимо app.module.ts есть еще один модуль, custom.module.ts . Вот пакет

. json

"@angular/cdk": "^9.2.4",
"@angular/common": "9.1.11",
"@angular/compiler": "9.1.11",
"@angular/core": "9.1.11",

Для перевода

1) Я добавил @ngx-translate/core и @ngx-translate/http-loader

"@ngx-translate/core": "10.0.2",
"@ngx-translate/http-loader": "^5.0.0",

2) затем в app.module.ts под imports

TranslateModule.forRoot({
      loader: {
           provide: TranslateLoader,
           useFactory: HttpLoaderFactory,
           deps: [HttpClient]
      }
}),

и

// required for AOT compilation
export function HttpLoaderFactory(http: HttpClient): any {
    return new TranslateHttpLoader(http, "./assets/i18n/");
}

То же, что я сделал для моего custom.module.ts .

3) app.component.ts

// Add languages
this.translateService.addLangs(["en", "nb", "sv"]);

// Use a language
this.translateService.setDefaultLang("en");
this.translateService.use("en");

4) файлов в assets / i18n / en. json

{
    "noSelectMessage": "Select to see detail."
}

и теперь, где я использую traslate pipe в компоненте custom.moule.ts

<span>{{'noSelectMessage' | translate}}</span>

он показывает то же noSelectMessage

и если я проверяю вкладку с исходным кодом в браузере, нет i18n папка под активами.

В чем может быть проблема?

1 Ответ

0 голосов
/ 25 июня 2020

Я использовал службу перевода в компоненте custom.module.ts и в custom.module.ts файле, который я делал

TranslateModule.forRoot({
      loader: {
           provide: TranslateLoader,
           useFactory: HttpLoaderFactory,
           deps: [HttpClient]
      }
}),

все, что мне нужно сделать, это просто импортировать TranslateModule для поддержки канала перевода.

...