У меня есть приложение 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 папка под активами.
В чем может быть проблема?