私が作成しているAngular 5アプリの言語処理に@ ngx-translateを使用しています。このアプリには、遅延読み込みと熱心読み込みの2つの機能モジュールがあります。
問題は、変換パイプがeager-loadedモジュールでは正常に機能するが、lazy-loadedモジュールでは機能しないことです。どうすれば修正できますか?
私も同じ問題に取り組んできましたが、まだ実現可能な答えを見つけることができていません。
Angularの親切な人々はi18nで作業していますが、これにはさらに時間がかかる場合があります。
理想的ではありませんが、次の記事をチェックすることをお勧めします。
「ngx-translateで遅延読み込みされたモジュールごとにi18nファイルを分割する方法は?」 @frogeret https://medium.com/@TuiZ/how-to-split-your-i18n-file-per-lazy-loaded-module-with-ngx-translate-3caef57a738f
私のレイジーロードモジュールでは、これをインポートに追加する必要がありました:
TranslateModule.forChild({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
遅延ロードされたコンポーネントでも私はそのようなことをしました:
import {TranslateService} from '@ngx-translate/core';
コンストラクタで:
private translate: TranslateService
そして最後にonInit:
this.translate.use(language);
そして、それはうまく機能しています。
AngularおよびIonicアプリで機能する ngstack/translate ライブラリを確認できます。遅延読み込み、ページタイトルの翻訳、カスタムパイプ、その他の多くの優れた機能もサポートしています。