2017-08-30 5 views
3

実行時にAngularロケールを変更するための調査を行っていて、このスレッドが見つかりました:How to set locale in DatePipe in Angular 2?
実行時にロケールを変更する方法がない場合もありますか?私は、ロケールに応じて数値、日付、言語をフォーマットするいくつかのパイプを備えたアプリケーションを持っていますが、ランタイム中に変更する能力を持たずに、各ロケール用の多くのカスタムパイプを実装するのはばかげています。
どのような解決策をお探しですか?実行時にロケールをAngularで変更しますか?

答えて

5

今日は@angular/materialbeta.10にアップグレードしており、DatePickerがLOCALE_IDを使用しているため、これを検索していますか?私は代替案も探していて運がなかった。

アングル4 i18nアプローチは、異なる言語の異なるバンドルを生成するコンパイラに基づいているため、runtimeソリューションはそのアーキテクチャでサポートされていないようです。 runtime翻訳の変更をサポートするために、Angular 6コンパイラでの作業が行われています。

当面はngx-translateが好きですが、それらはlangの変更を購読してディレクティブに登録されているDOMノードを更新するようですが、自分のTranslateDirectiveに基づいて独自のDateFormatパイプを構築する予定ですが、 LOCALE_IDを使用しているため、実行時にその動作を変更する機会はないと思います。おそらく、拡張とカスタマイズのための新しいエクスポートされたリソースがあります(私はchangelogで何かを読んでいました)ので、翻訳したいコンポーネントを詳しく調べる必要があるかもしれません。

ngx-translateのアプローチをとった場合は、githubで新しいパイプをビルドしてみましょう;

関連する問題